본문 바로가기

실전! Verilog HDL RTL Design

[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를 통해 데이터를 주고 받으려면 서로 주고 받는 데이터 형식을 약속하여 일치시켜야 한다. 이를 bus protocol이라고 하는데 대표적인 bus protocol에는 ARM사에서 개발한 AMBA(Advanced Microcontroller Bus Archiecture)가 있다. AMBA에는 AXI, AHB, APB등 각종 응용에 맞는 bus protocol이 표준으로 정의되어 있다. 

ALU IP를 완성하려면 이처럼 특정 bus protocol을 지원하는 bus interface를 만들고 이를 통해 ALU 를 제어할 수 있는 레지스터 파일을 만들어야 한다. 레지스터 파일은 레지스터 들의 묶음을 말하는데, 이처럼 특정 기능을 제어하기 위한 레지스터 파일를 Special Function Register 즉 SFR이라고 부르기도 한다.

SFR을 제어하기 위한 bus interface에는 보통 APB를 많이 사용한다. SoC에서 외부 기기들과 인터페이스 하거나 주요 기능이 아닌 가벼운 기능을 하는 IP들을 Peripheral IP라고 부르기도 한다. APB는 이러한 peripheral IP를 제어하기 위해 고안된 bus interface이다.  다음 장에는 APB를 지원하는 bus interface와 이를 통해 ALU를 제어하기 위한 register file을 설계해 보겠다. 

 

 

반응형