이번 보드는 Xilinx 사의 Artix7 계열의 XC7A75T FPGA를 이용하여 DDR3를 동작시키는 보드이다.
사용툴은 Vivado 2018.2를 사용하였다.
(Vivado 툴 초보자 사용법은 네이버 블로그 FPGA관련 카테고리에 올려두었다.)
지금까지 FPGA를 가지고 DDR을 구동시켰던 보드는.
1) Altera사의 CycloneIV를 이용하여 DDR2 구동.
2) Altera사의 CycloneV를 이용하여 DDR3 구동을 시켰는데 주로 영상 데이타를 캡쳐나, FIFO형태로 구동을 시켰었고, 이번 보드는 FPGA 데모보드 형태로 I/O를 LED에 연결시켜놓아서 DDR3에 Write했던 데이타를 다시 읽어서 LED에 동작시키는것으로 검증을 해보았다.
FPGA는 Xilinx의 XC7A75T (Artix7 계열) 이고, DDR3는 Micron사의 1Gb용량의 MT41K64M16TW (16bit) 를 2개 사용하여 데이타 bit는 H/W 32비트를 사용하였다.
아래 사진은 FPGA에 DDR3 가 2개 배치되어있는 보드 사진이다.
Vivado툴을 이용하여 DDR3를 구동하기 위해서는 아래와 같이 제공되는 IP인 MIG(Memory Interface Generator)를 이용하여 해당되는 DDR3의 IP를 만들어주어야 한다.
현재 보드에서는 DDR3경우 400Mhz까지 동작을 할수는 있지만 303Mhz로 외부 CLK동작을 시켰고, DDR3전원은 1.35V를 사용하기 때문에 설정을 1.35V로 해주었다.
Aritx7의 경우 DDR3를 구동할때 ALTERA CycloneV 보다는 동일조건에서 열이 좀더 나는것으로 느껴진다.
테스트는 DDR3 내부 Address에 아래와 같이 Data를 Write를 하고, READ후 LED에 순서대로 표시하는것으로 하였다.
DDR3 0 ~ 39 번지 Address에 각각 Address와 동일한 0~39 Data를 Write하고 29번지 Address에만 전혀 다른 값을 Write를 해주었다.
이후에 5군데 Address 6 , 7 , 8 , 9 , 특정값 넣은 Add 순서대로 Read하여 오른쪽 LED 라인에 위에서 아래순서에 맞춰 각각 해당되는 값을 표시하였다.
이 부분은 User가 본인이 DDR3를 구동하기 위하여 만든 코드를 테스트하기 위한 보드 구성이고,Xilinx의 경우 Vivado 툴에서 IP생성후에 아래와 같이 "Open IP Example Design" 을 이용하여 예제로 만들어진 코드를 가지고 검증하는 방법도 있다.
보드가 처음 나오면 "Open IP Example Design"을 이용하여 먼저 H/W 검증을 마치고, 이후에 본인이 구동하는 코드를 만들어서 검증을 하면서 동작시키면 된다.
댓글 없음:
댓글 쓰기