Xilinx/IPs

How to create a custom csv file for MIG IP

mouessee 2022. 6. 23. 00:38
728x90
반응형

 

 Introduction

 

일반적으로 MIG IP를 사용하여 DDR4 SDRAM memory와의 Interface를 구현합니다.

하지만 MIG IP의 DDR4 SDRAM parts list에서 내가 선택한 DDR4 SDRAM part가 보이지 않는 경우가 있습니다.

내가 선택한 DDR4 SDRAM part가 MIG IP의 DDR4 SDRAM part list에 보이게 할 수 있으며, 이 경우 사용하는 FPGA에 따라 두가지 방법이 있습니다.

 

 

1.

Spartan-7, Artix-7, Kintex-7, Virtex-7의 경우는 아래의 BLOG를 보아 주세요.

 

How to create Xilinx MIG IP for Custom Part

 

How to create Xilinx MIG IP for Custom Part

Introduction Xilinx 7-Series device를 사용할 경우, MIG IP를 생성할 때 선택할 수 있는 DDR2/DDR3 SDRAM Part는 모두 Micron DDR2/DDR3 SDRAM device입니다. Samsung 혹은 SK Hynix의 DDR2/DDR3 SDRAM device..

740280.tistory.com

 

 

2.

Kintex UltraScale, Virtex UltraScale / Artix UltraScale+, Kintex UltraScale+, Virtex UltraScale+의 경우는 MIG IP가 Custom DDR4 SDRAM part를 인식할 수 있도록 *.csv 파일을 만들어서 사용하여야 합니다.

이번 BLOG는 어디에서 Example *.csv 파일을 download할 수 있는지 그리고 *.csv file에 있는 각 parameter에 대한 value를 어떻게 확인하고 설정하는지에 대하여 알아보겠습니다.

 

 

Test를 위한 PC 사용환경은 다음과 같습니다.

 

 

 

728x90
반응형

 

 

 

 CSV data file for creating Custom Parts

 

앞서 설명드렸듯이 MIG IP가 Custom DDR4 SDRAM part를 인식할 수 있도록 *.csv 파일을 만들어서 사용하여야 합니다.

Xilinx는 각 Memory 별로 Sample  *.csv file을 제공하고 있습니다.

아래의 링크를 클릭하면 관련 자료 및  *.csv file 작성 Guide를 확인할 수 있습니다.

 

UltraScale/UltraScale+ Memory IP - Sample CSV data file for creating Custom Parts

 

63462 - UltraScale/UltraScale+ Memory IP - Sample CSV data file for creating Custom Parts

After the CSV file has been imported, the custom memory part must be selected from the drop-down list in the MIG GUI to be used. The user is responsible for ensuring that all memory parameter values (i.e. CL, CWL, Min/Max Period) and units (i.e. ps, ns etc

support.xilinx.com

 

위 링크를 살펴보면  *.csv file에 여러가지 Parameter에 대한 value를 일일히 기입하여야 됨을 알 수 있습니다. 각 Parameter에 대한 value는 Target DDR4 SDRAM memory의 Datasheet에서 찾아야 합니다.

 

 

 

 MT40A4G8BAF

 

*.csv 파일의 각 parameter에 정확한 값을 확인하기 위해 MT40A4G8BAF-062E의 Datasheet를 살펴보아야 합니다.

 

Target Device : MT40A4G8BAF-062E (32Gb / TwinDie)

(아래의 첨부파일은 MT40A4G8BAF-062E의 Datasheet입니다.)

MT40A4G8BAF-062E.pdf
0.38MB

 

 

1.

MT40A4G8BAF-062E에서 MT40A4G8은 Device Name입니다.

MT40A4G8BAF-062E의 BAF는 Package Code로 78-Ball FBGA를 의미합니다.

(Datasheet에서 page 16의 Figure 7을 참고하세요.)

 

Package Code

 

 

2.

아래와 같이 MT40A4G8BAF-062E의 062E는 Key Timing Parameter로 Data Rate이 3200 MT/s를 의미합니다.

(Datasheet에서 page 1의 Table 1을 참고하세요.)

 

Key Timing Parameters

 

 

3.

아래는 MT40A4G8BAF-062E의 각 parameter에 대한 address value입니다.

(Datasheet에서 page 2의 Table 2을 참고하세요.)

 

Addressing

 

위 Table 2를 살펴보면 다음과 같은 *.csv file의 몇몇 parameter value를 확인할 수 있습니다.


Bank Group address이 BG[1:0]이므로 Bank Group : 2 입니다.

Bank address in bank group이 BA[1:0]이므로 Bank width : 2 입니다.

Row address가 A[16:0]이므로 Row width : 17 입니다.

Column address가 A[9:0]이므로 Column width : 10 입니다.

Max address range는 A[16:0]이므로 Address width : 17 입니다.

 

 

4.

MT40A4G8은 TwinDie로 MT40A2G8이 두 개가 있는 Device이기 때문에 TwinDie라고 표현합니다.

따라서 여러 기본적은 Spec은 MT40A2G8의 Datasheet를 기준으로 합니다.

(Datasheet에서 page 5의 Figure 2을 참고하세요. 여기서 2 Ranks인 이유를 쉽게 이해할 수 있습니다.)

 

Functional Block Diagram

 

위 Figure 2를 통하여 다음과 같은 *.csv file의 몇몇 parameter value를 확인할 수 있습니다.

 


CS0#과 CS1#이 있으므로 CS Width : 2 입니다.

CKE0과 CKE1이 있으므로 CKE width : 2 입니다.

ODT0과 ODT1이 있으므로 ODT width : 2 입니다.

CK, CK# (differential input)이 있으므로 CK witdth : 1 입니다.

DQ[7:0]이므로 Memory device width : 8 입니다.

DQ[7:0]이므로 Memory component width : 8 입니다.

DQS, DQS# (differential IO, strobe)와 DQ[7:0]이 있으므로 Data bits per strobe : 8 입니다.

128 Meg x 8 x 16 bank x 2 Ranks이므로 Memory Density : 32Gb 입니다.

128 Meg x 8 x 16 bank x 2 Ranks이므로 Component Density : 32Gb 입니다.

 

여기서 Memory device width와 Memory component width는 memory 내부 구조에 따라 달라질 수 있습니다.

(일부 component와 SODIMM, RDIMM, UDIMM의 경우 Memory device width와 Memory component width는 구조에 따라 서로 다른 값을 가집니다.)

동일하게 Memory density와 Component density는 내부 구조에 따라 달라질 수 있습니다.

(SODIMM, RDIMM, UDIMM의 경우 Memory Density Component density는 memory 구조에 따라 서로 다른 값을 가집니다.)

 

 

5.

MT40A4G8은 DQ[7:0]을 가지며 DQ의 Data width가 8임을 알 수 있습니다. 하지만 다음과 같이 Data width를 8,16, 32... 라고 기입하는 경우가 있습니다.

 


Data width : 8, 16

 

MT40A4G8을 두 개를 하나의 MIG IP로 연결하여 사용하는 경우에는 Data width가 16이 됩니다. 위와 같이 Data width를 8, 16으로 기입하면 MIG IP에서 8과 16중에서 선택할 수 있게 됩니다.

 

DDR4 SDRAM (MIG) (2.2)

 

 

 

 MT40A2G8

 

1.

사용할 MT40A4G8BAF-062E는 max 3200 MT/s 입니다. 하지만 MIG IP의 max performance는 사용할 FPGA Device에 따라 다릅니다.

( MT40A4G8BAF-062E의 062E는 Key Timing Parameter로 Data Rate이 3200 MT/s를 의미합니다. )

여기서는 사용할 FPGA Device와 그에 따른 MIG IP의 max performance를 고려하여 2133 MT/s를 사용하려고 합니다.

 

 

2.

앞서 설명에서

MT40A4G8은 TwinDie로 MT40A2G8이 두 개가 있는 Device이기 때문에 TwinDIe라고 표현합니다.
따라서 여러 기본적인 Spec은 MT40A2G8의 Datasheet를 기준으로 합니다.
Specifications for base part number MT40A2G8 correlate to TwinDie manufacturing part number MT40A4G8.

라고 언급했습니다. 따라서 *.csv file의 여러가지 parameter는 MT40A2G8의 Datasheet를 참조하여야 합니다.

(아래의 링크를 클릭하면 MT40A2G8의 Datasheet를 download 받을 수 있습니다.)

MT40A2G8.pdf

 

 

3.

MT40A2G8의 Datasheet에서 page 328을 보면 Table 151: Backward Compatibility를 확인할 수 있습니다.

여기서 우리는 Key Timing Parameter인 062E (3200 MT/s)는 093 (2133 MT/s)과 호환되는 것을 확인할 수 있습니다.

따라서 Datasheet에서 각 Parameter의 Value를 찾을 때, "093" 혹은 "DDR4-2133" 기준의 Spec을 찾아야 합니다.

 

Table 151: Backward Compatibility

 

 

4.

MT40A2G8의 Datasheet에서 page 344의 Table 160을 보면 tWR는 15 ns 임을 알 수 있습니다.

그리고 tFAW는 보통 x4 DQ의 경우에 13 ns (1/2KB)로, x8 DQ의 경우에 21 ns (1KB)로, x16 경우에 30 ns (2KB)로 설정합니다. 따라서 tFAW는 21000 ps입니다.

 

Table 160: DDR4-2133

 

 

5.

MT40A2G8의 Datasheet에서 page 333의 Table 154을 보면 tRCD, tRP, tRAS, CL (cas latency), CWL (cas write latency)를 확인할 수 있습니다. ( cas write latency는 안정적 동작을 위하여 14를 선택합니다. )

 

Table 154: DDR4-2133

 

Min period는 937이지만 Max period는 1900을 넣으면 다음과 같이 Vivado의 warnning message를 보게 됩니다.

 


[Mig 66-120] Custom Part (C_MT40A4G8BAF-062E) with parameter: Max period having value: 1900 is invalid. The valid value for Max perid is 1600ps.

 

따라서 Max period는 1600이 됩니다.

 

 

6.

tRFC_dlr, tRRD_dlr, tCCD_3ds의 경우는 Datasheet에서 찾을 수 없습니다.

Xilinx에 문의하여 다음과 같은 답변을 받았습니다.

 


The parameters tRFC_dlr, tRRD_dlr and tCCD_3ds  should be 0.

 

나머지 각각의 parameter들도 Datasheet에서 검색하면 확인이 가능합니다.

("093" 혹은 "DDR4-2133" 기준의 Spec을 찾아야 합니다)

 

 

7.

아래는 Datasheet의 검색을 통하여 정리한 모든 parameter의 value를 정리한 표 입니다.

( MIG IP의 memory parts list에서 찾기 쉽게 하기 위하여 Part Name에 "C_"를 넣었습니다. )

 

Parameter Name Value
Part Name C_MT40A4G8BAF-062E
Min period 937
Max period 1600
tCKE 5000 ps
tFAW 21000 ps
tFAW_dlr 16 tck
tMRD 8 tck
tRAS 33000 ps
tRCD 15000 ps
tREFI 7800000 ps
tRFC 350000 ps
tRRD_dlr 0
tRP 15000 ps
tRRD_S 5300 ps
tRRD_L 6400 ps
tRRD_dlr 0
tRTP  7500 ps
tWR 15000 ps
tWTR_S 2500 ps
tWTR_L 7500 ps
tXPR 360 ns
tZQCS 128 tck
tZQINIT 1024 tck
tCCD_3ds 0
cas latency (CL) 19
cas write latency (CWL) 14
burst length 8

 

 

8.

아래의 첨부 파일은 위 내용을 기입한 *.csv file 입니다.

 

MT40A4G8BAF_062E.csv
0.00MB

 

 

 

 How to enable Custom Parts Data File

 

1.

MIG IP에서 Memory Device Interface Speed (ps)의 Range가 750~1600으로 보이지만, *.csv file의 Min period가 937이기 때문에 937보다 작은 값을 기입할 수 없습니다.

 

DDR4 SDRAM (MIG) (2.2)

 

 

2.

아래(animated GIF)와 같이 "Enable Custom Parts Data File"를 check한 후에, 작성한 *.csv file을 load하면 Memory Part의 List 중에 "C_MT40A4G8BAF-062E"을 확인할 수 있습니다.

 

DDR4 SDRAM (MIG) (2.2)

 

 

 

 도움이 되는 참고 자료

 

MIG IP에서 선택할 수 있는 Memory parts list에 대한 *.csv file이 있다면 당연히 Custom part를 위한 *.csv file 작성에 도움이 될 수 있습니다. 아래 BLOG의 내용을 보아 주세요. MIG IP에서 선택할 수 있는 Memory parts list에 대한 *.csv file을 확인할 수 있습니다.

(아래 BLOG에 언급된 경로 있는 "memparts.csv"와 "timingparams.csv"를 참고하면 됩니다.)

 

MIG IP의 Supported DDR4 Memory Parts List

 

MIG IP의 Supported DDR4 Memory Parts List

 Introduction MIG (Memory Interface Generator) IP에서 Support하는 DDR4 Memory Parts List를 아래와 같이 GUI 상에서 확인할 수 있습니다. 이러한 DDR4 Memory Parts List를 파일로 확인할 수 있는지..

740280.tistory.com

 

 

 


 

지금까지 MIG IP가 Custom DDR4 SDRAM part를 인식할 수 있도록 *.csv 파일 작성법에 대하여 알아보았습니다.
여러분의 FPGA 설계에 조금이라도 도움이 되었으면 합니다.
오늘도 좋은 하루 되세요.

(공감, 구독, 댓글은 저에게 힘이 됩니다!)

 

 

 


Create Date: December 15, 2021

Posted By: Mouessee

 

 

 

Xilinx 본사는 한국 내에 Corporate and Sales Distributor로 MAKUS를 두고 있습니다.
Xilinx 국내 Corporate and Sales Distributor인 MAKUS는 XIlinx FPGA Device를 기술영업을 통해 판매하며 기술지원이 가능합니다.
MAKUS www.makus.co.kr

 

 

 


관련 BLOG

------------------------------

------------------------------

 

Design Guide for MIG IP (1/3)

 

Design Guide for MIG IP (1/3)

 Introduction Xilinx MIG (Memory Interface Generator) IP를 생성할 경우 User Logic과 연결되는 Interface는 두 가지가 있습니다. Standard User Interface AXI4 Interface 여기서는 Standard User Intrface..

740280.tistory.com

 

 

MIG IP에서 사용되는 3 종류의 Clock에 대하여

 

MIG IP에서 사용되는 3 종류의 Clock에 대하여

 Introduction DDR3/4 memory interface를 위하여 사용하는 Xilinx MIG (Memory Interface Generator) IP에는 총 3 종류의 Clock이 있습니다. 지금부터 Xilinx MIG IP에 있는 3 종류의 Clock frequency와 DQ d..

740280.tistory.com

 

MIG IP의 Supported DDR4 Memory Parts List

 

MIG IP의 Supported DDR4 Memory Parts List

 Introduction MIG (Memory Interface Generator) IP에서 Support하는 DDR4 Memory Parts List를 아래와 같이 GUI 상에서 확인할 수 있습니다. 이러한 DDR4 Memory Parts List를 파일로 확인할 수 있는지..

740280.tistory.com

 

728x90
반응형