본문 바로가기

반응형

AMBA

(4)
[Verilog HDL] 19. 제어 가능한 ALU IP 만들기 - register file 수정 레지스터 map을 정의했으면 이에 맞게 register file을 만들어 주어야 한다. 이전에 만든 register file은 일반적인 register file이었고 이번에는 SFR의 목적에 맞게 수정해 주어야 한다. 전 장에서 만든 레지스터 맵을 보면 CPU가 read/write 할 수 있는 레지스터도 있고 ALU의 동작 상태에 따라 ALU에서 write하는 레지스터도 있다. 이러한 레지스터는 status와 result에 해당한다. 이런 특수한 목적에 맞게 수정된 register file은 아래와 같다. module regfile #( parameter ADDR_WIDTH=8, parameter DATA_WIDTH=16 ) ( input wire CLK, input wire RSTn, input wir..
[Verilog HDL] 16. FSM을 이용한 APB register file 설계 자 드디어 APB inteface를 갖는 register file을 설계할 때가 되었다. APB interface logic을 설계하기 위해서 우리는 FSM에 대해서 배울 것이다. FSM은 Finite State Machine의 약자로 하드웨어의 제어 로직을 만들 때 많이 사용하는 구조이다. 어떤 기능을 하는 하드웨어 로직을 제어 하기 위해서는 그 하드웨어가 어떤 상태에 있는지를 정의할 수 있어야 한다. 그래야 각 상태별로 필요한 제어 신호를 만들어 낼 수 있다. FSM은 유한한 하드웨어 상태를 정의하고 입/출력과 현재 상태에 따라 필요한 제어신호를 만들고 다음 상태는 어떤 상태가 되는지를 정의하는 하드웨어 로직이다. 우리가 설계하고자 하는 FSM의 목적은 APB bus protocol을 register..
[Verilog HDL] 14. APB interface APB는 주로 peripheral device같은 작은 디바이스를 버스에 연결하기 위하여 사용되는 AMBA bus 표준의 하나이다. Protocol이 간단하기 때문에 구현하는 로직도 작아 파워도 적게 소모되는 장점이 있다. 하지만 고속 데이터 전송에는 적합하지 않기 때문에 주로 hardware IP의 레지스터를 읽고 쓰는데 사용되는 protocol이다. APB protocol spec은 아래 링크에서 받아 볼 수 있다. https://web.eecs.umich.edu/~prabal/teaching/eecs373-f12/readings/ARM_AMBA3_APB.pdf 앞서 설계한 레지스터 파일은 IP 안에 포함되게 되는데 이를 버스에 연결하려면 APB interface를 구현해야 한다. APB interf..
[Verilog HDL] 12. IP, Bus, SoC 지금 까지 설계한 ALU는 특정 기능을 하는 하드웨어 블록이다. 이를 SoC에서 활용할 수 있을 때 우리는 이러한 하드웨어 블록을 IP (Intellectual Property)라고 한다. 소프트웨어와 구별하기 위하여 hardware IP라고도 한다. 그럼 이러한 IP는 SoC 에서 어떻게 이용할까? 기본적으로 IP를 제어하는 또 다른 IP가 필요한데 보통 CPU가 이러한 역할을 담당한다. CPU는 bus를 통해 IP에 access하여 IP에 할당된 특정 주소에 읽고 쓰기를 할 수 있다. 여기서 bus라고 하는 것은 SoC 또는 embedded system에서 데이터가 이동하는 통로이다. CPU나 ALU같은 hardware IP들은 bus를 통해 서로 연결된다. bus를 통해 데이터를 주고 받으려면 서로..

반응형