보통 verilog를 사용하여 필요한 block을 만들 때 memory를 사용해야 할 때가 있습니다.
직접 만들어 사용해도 되지만, 요즘 tool들은 자신들의 IP의 동작대로 memory의 simulation file을 제공합니다.
그걸 어떻게 우리가 제공받을수 있는지 확인해봅시다
우선 아래와 같이 vivado를 여신담에 아무 project를 만듭시다
우리는 memory만 만들꺼니 간단하게 RTL project로 고르고
package도 아무거나 누릅시다
이렇게 선택해서 만들게 되면 아래와 같은 창이 뜨는데 여기서 왼쪽의 IP Catalog를 누릅시다
그럼 위의 그림에서 오른쪽에 우리가 어떤 IP를 만들건지 물어보는 창이 나오는데
여기서 'block'이라고 검색을 하면 아래와 같이 matching 된 IP들이 나옵니다
여기서 우리는 Block memory Generator라는 걸 고르면 아래와 같은 창이 뜹니다
Component name은 우리가 만들 IP 명을 쓰면 되고 memory type은 눌러보면 크게 ROM, RAM으로 나뉘게 되는데
우리가 만들 memory type에 따라서 골라서 만들어 주면 됩니다.
저는 simple dual port ram을 만들어 보겠습니다.
왼쪽에보면 제가 setting한 IP의 in/out의 모습이 보이고 오른쪽에 Port A, PortB option은 IP 설정할 port를 setting 하는 칸이며,
간단히 말해서 A Port는 write, B Port는 read 입니다.(제가 setting 한 simple dual port ram의 경우)
이렇게 세팅하고 만들고 만들어진 디렉토리를 가면 만들어진 파일들이 많이 있습니다.
여기서 아래의 폴더 경로를 가면
.v 파일 한개가 보일 겁니다
이 파일이 우리가 simulation에 사용가능한 memory 파일인데 실제 파일을 열어보면 해당 코드는
껍데기만 있고 실제로는 다른 코드를 사용하여 memory를 구현했다는 걸 확인 가능합니다.
그 파일은 바로 아래 폴더 경로에 있습니다
이 2파일을 내가 원하는 PJT에 넣고 compile을 해주면 됩니다.
'digital logic > FPGA' 카테고리의 다른 글
xilinx memory(RAM) 종류 (0) | 2021.01.26 |
---|
댓글