加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

Xilinx 7系列FPGA DDR3硬件設(shè)計(jì)規(guī)則

2023/02/20
5312
閱讀需 20 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

引言:本文我們介紹Xilinx 7系列FPGA DDR3硬件設(shè)計(jì)規(guī)則及約束,包括Bank選擇、管腳位置約束、管腳分配、端接、I/O標(biāo)準(zhǔn)和走線長度。

01、設(shè)計(jì)規(guī)則

存儲器類型、存儲器數(shù)量和數(shù)據(jù)寬度受限于所選FPGA器件家族、FPGA速度等級和設(shè)計(jì)頻率,頻率范圍取決于器件電氣特性。

02、Bank和管腳選擇

圖1、DDR3 數(shù)據(jù)組連接(DCI級聯(lián)從Bank)

圖2、DDR3地址組連接(DCI級聯(lián)主Bank)

圖3、DDR3 地址/控制組連接(DCI級聯(lián)從Bank)

MIG工具根據(jù)物理層規(guī)則為內(nèi)存接口生成管腳分配。Xilinx7系列FPGA是為非常高性能的內(nèi)存接口而設(shè)計(jì)的,使用DDR3 SDRAM物理層必須遵循某些規(guī)則。Xilinx7系列FPGA為每個(gè)DQS字節(jié)組提供專用邏輯。每個(gè)50管腳bank中有四個(gè)DQ字節(jié)組。每個(gè)字節(jié)組包括一個(gè)支持時(shí)鐘輸入/輸出DQS對和10個(gè)相關(guān)的DQ數(shù)據(jù)I/O。在典型的DDR3數(shù)據(jù)總線配置中,這10個(gè)I/O中有8個(gè)用于DQ,一個(gè)用于數(shù)據(jù)掩碼(DM),另一個(gè)用于內(nèi)存接口中的其他信號。推薦用MIG工具為7系列DDR3接口生成管腳輸出。MIG工具遵循以下規(guī)則:

    • 系統(tǒng)時(shí)鐘輸入必須與內(nèi)存接口位于同一列。如果可能,建議將系統(tǒng)時(shí)鐘輸入置于地址/控制組中。
    • CK必須連接到其中一個(gè)控制字節(jié)組中的p-n差分對。組中的任何p-n對都是可接受的,包括SRCC、MRCC和DQS引腳。如果使用多個(gè)CK輸出,例如dual rank,則所有CK輸出必須來自同一字節(jié)通道。由于DDR2和DDR3 SDRAM的專用選通連接,字節(jié)組的DQS信號必須連接到Bank中指定的DQS對。DQ和DM(如果使用)信號必須連接到與相應(yīng)DQ相關(guān)聯(lián)的字節(jié)組引腳。

VRN和VRP用于支持DCI的組的數(shù)字控制阻抗(DCI)參考。

如果滿足以下條件,則非字節(jié)組引腳(即HP Bank中的VRN/VRP引腳和HR Bank中的頂部/底部引腳)可用于地址/控制引腳:--對于HP Bank,使用DCI級聯(lián),或Bank不需要VRN/VRP引腳,僅用于輸出;--相鄰字節(jié)組(T0/T3)用作地址/控制字節(jié)組;

--相鄰字節(jié)組(T0/T3)中存在未使用的引腳,或CK輸出包含在相鄰字節(jié)組中。

從die角度來看,單個(gè)接口最多可使用三個(gè)垂直Banks。地址/控制必須位于跨三個(gè)I/O Banks的接口中間I/O bank中。所有地址/控件必須位于同一個(gè)I/O Bank中。地址/控制不能在Bank之間分割??刂凭€(RAS_N、CAS_N、WE_N、CS_N、CKE、ODT)和地址線必須連接到不用于數(shù)據(jù)字節(jié)組的字節(jié)組。復(fù)位RESET_N可連接到器件內(nèi)的任何可用引腳,包括VRN/VRP引腳(如果使用DCI級聯(lián)),只要滿足時(shí)序和使用適當(dāng)?shù)腎/O電壓標(biāo)準(zhǔn)。GUI將此管腳限制為接口所用的Bank,以優(yōu)化時(shí)序,但這不是必需的。

注意:DCI級聯(lián)設(shè)置詳見:Xilinx FPGA時(shí)鐘及I/O接口規(guī)劃(二)相關(guān)章節(jié)介紹。

03、管腳交換(Pin Swapping)

管腳可在每個(gè)字節(jié)組(數(shù)據(jù)和地址/控制)內(nèi)自由交換,但DQS對必須在支持時(shí)鐘的DQS對上,CK必須在p-n對上。字節(jié)組(數(shù)據(jù)和地址/控制)可相互自由交換。地址/控制字節(jié)組中的管腳可在其字節(jié)組內(nèi)和字節(jié)組之間自由交換。不允許進(jìn)行其他引腳交換。

04、控制器之間的Bank共享

內(nèi)存接口中使用的Bank中的未使用部分管腳不允許與另一個(gè)內(nèi)存接口共享??刂艬ank中所有FIFO和相位器的專用邏輯設(shè)計(jì)為僅使用單個(gè)內(nèi)存接口運(yùn)行,不能與其他內(nèi)存接口共享。除了MIG核心支持的雙控制器中的共享地址和控制。

05、系統(tǒng)時(shí)鐘、PLL和MMCM分配和約束

強(qiáng)烈建議PLL和MMCM時(shí)鐘位于存儲器接口Bank中,以滿足指定的接口性能。MIG工具盡可能遵循這兩條規(guī)則。唯一的例外是一個(gè)16位接口,其中可能沒有多余的管腳用于時(shí)鐘輸入。在這種情況下,時(shí)鐘輸入需要從相鄰的一個(gè)bank通過頻率主干線(frequency backbone)到PLL。PLL的系統(tǒng)時(shí)鐘輸入必須來專用時(shí)鐘I/O。


圖4、系統(tǒng)時(shí)鐘連接

系統(tǒng)時(shí)鐘輸入只能用于同一列中的接口。如果時(shí)鐘來自另一列,則額外的PLL或MMCM和時(shí)鐘路由將導(dǎo)致過多的額外抖動。

來自PLL的未使用的輸出可以用作時(shí)鐘輸出。只能更改這些輸出的設(shè)置。與整體PLL行為和所用輸出相關(guān)的設(shè)置不得受到干擾。

PLL不能在接口之間共享。

05、DDR3 PCB布線

時(shí)鐘、地址和控制線需要按照Fly-by拓?fù)浣Y(jié)構(gòu)布線。Fly-by是指這組線路以菊花鏈的方式布線,并在線路末端適當(dāng)?shù)囟私印=M內(nèi)每個(gè)信號到給定組件的走線長度必須匹配。每個(gè)DDR的數(shù)據(jù)總線布線應(yīng)盡可能的短。每個(gè)信號應(yīng)盡量在單個(gè)PCB層上布線,以盡量減少由額外過孔引起的阻抗不連續(xù)性。

VREF布線

在利用MIG工具例化IP核時(shí),會選擇內(nèi)部VREF或者外部VREF。

內(nèi)部VREF:只用于當(dāng)數(shù)據(jù)速率不超過800Mb/s的情況。

外部VREF:對于給定FPGA速度等級下的最大指定數(shù)據(jù)速率,外部VREF必須跟蹤提供給DRAM和地面的VDD電壓的中點(diǎn)。VREF跟蹤可以用電阻分壓器穩(wěn)壓器來完成。在這些數(shù)據(jù)速率下,不應(yīng)使用提供固定參考電壓而不考慮VDD電壓的穩(wěn)壓器。VREF走線需要大于最小間距,以減少與其他干擾信號的耦合。

VCCAUX_IO

VCCAUX_IO依據(jù)存儲器的性能可以設(shè)置為1.8V或者2.0V。如果需要進(jìn)行不同的存儲器或者FPGA器件遷移,此時(shí),VCCAUX_IO供電可以考慮設(shè)置為可調(diào)整的。

端接

 

圖5、DDR3地址/控制信號端接

強(qiáng)烈建議進(jìn)行信號模擬仿真(IBIS或其他)。地址(A,BA)命令(RAS_N、CAS_N、WE_N)和控制(CS_N,ODT)信號的加載取決于各種因素,例如速度要求、終端拓?fù)?、無緩沖DIMM的使用和多列DIMM,并且可能是達(dá)到性能目標(biāo)的一個(gè)限制因素。

在1333Mb/s及更高速度下運(yùn)行,單端走線需要控制在40Ω,并且需要進(jìn)行端接處理。低于1333Mb/s時(shí),50Ω是可接受的。圖6和圖7適用于1333 Mb/s及更高速率的情況。

圖6、40Ω端接到VTT

圖7、80Ω分立端接到VTT

在1333Mb/s及更高速度下運(yùn)行時(shí),差分信號走線阻抗需要控制在80Ω,并且進(jìn)行端接處理。低于1333Mb/s時(shí),100Ω是可接受的。圖8適用于1333Mb/s及更高速率。

圖8、80Ω差分端接

對于CK_P/CLK_N差分時(shí)鐘,推薦端接方案如圖9所示。

圖9、CK時(shí)鐘端接

使用VTT電源時(shí),必須小心管理來自端接的高頻電流。建議每四個(gè)端接使用一個(gè)1μF旁路電容,每25個(gè)端接使用一個(gè)100μF旁路電容。

地址和控制信號(A、BA、RAS、CAS、WE、CS、CKE、ODT)將通過板載DIMM終端終止。如果不存在DIMM終端或正在使用組件,則應(yīng)在線路遠(yuǎn)端使用40Ω的上拉至VTT(圖6)。除了需要差分端接的CK/CK_N,如圖1-93所示??梢允褂肰CCO的80Ω分立式端接和GND的80Ω端接(圖7),但需要更多的功耗。對于雙向信號,需要在信號的兩端端接。ODT應(yīng)該在內(nèi)存端使用。為了在HP bank中獲得最佳性能,應(yīng)該使用DCI。為了在HR banks中獲得最佳性能,IN_TERM(內(nèi)部端接)需要使用。差分信號應(yīng)使用存儲設(shè)備內(nèi)部終端或負(fù)載處的80Ω差分終端進(jìn)行端接(圖8)。對于雙向信號,需要在信號的兩端端接。ODT應(yīng)該在內(nèi)存端使用。為了在HP bank中獲得最佳性能,應(yīng)該使用DCI。為了在HR banks中獲得最佳性能,IN_TERM(內(nèi)部端接)需要使用。所有端接必須盡可能靠近負(fù)載。端接可以放置在負(fù)載之前或之后,前提是終端放置在負(fù)載引腳的小距離內(nèi)??赏ㄟ^模擬確定允許距離。在FPGA上需要DCI(HP bank)或IN_TERM(HR bank),以滿足指定的性能。

復(fù)位信號不需要端接。在內(nèi)存初始化過程中,該信號應(yīng)被拉低,并將一個(gè)4.7 kΩ的電阻器連接到GND(如圖5所示)。ODT端接是必需的,它在存儲器內(nèi)部進(jìn)行端接。應(yīng)使用MIG工具指定存儲器系統(tǒng)的配置,以便正確設(shè)置模式寄存器

如果DM不是由FPGA驅(qū)動的(未使用數(shù)據(jù)掩碼或禁用數(shù)據(jù)掩碼的情況),則應(yīng)將DM拉至GND。在這種情況下,用于DM的下拉電阻器的值不應(yīng)大于ODT值的四倍。

走線長度

該部分描述的走線長度要求主要用于高速操作。當(dāng)決定有效走線長度時(shí)應(yīng)考
封裝延遲,同一封裝內(nèi)的不同部分會有不同的內(nèi)部走線偏移(延遲)。

使用Vivado Design Suite生成封裝長度。以下命令生成一個(gè)csv文件,其中包含所考慮器件的每個(gè)管腳的封裝遲值。

link_design -part <part_number>
write_csv <file_name>

例如,要獲取7系列FPGA xc7z035ffg676-2的封裝延遲信息,在Vivado Tcl控制臺依次輸入以下命令:
link_design -part xc7z035ffg676-2

write_csv flight_time

這將生成一個(gè)名為flight_time.csv在當(dāng)前目錄中包含每個(gè)pin的封裝走線延遲信息。在對DDR3 SDRAM接口應(yīng)用特定的走線匹配準(zhǔn)則時(shí),對于整個(gè)電氣傳播延遲,應(yīng)該考慮這個(gè)額外的封裝延遲時(shí)間。

圖10、封裝走線延遲文件flight_time.csv

當(dāng)在同一封裝中不同尺寸的芯片之間遷移時(shí),同一封裝管腳可能會有不同的延遲。每個(gè)器件的延遲值都必須考慮在內(nèi),并且每個(gè)引腳都應(yīng)該使用延遲中值。否則,可能會降低目標(biāo)器件的最大性能。

DDR3 SDRAM信號之間最大電氣延遲如下:

任何DQ或DM與其相關(guān)DQS/DQS之間的最大電氣延遲必須≤±5ps。

任何地址和控制信號與相應(yīng)的CK/CK#之間的最大電延遲必須≤±25ps,8ps是最佳目標(biāo)。

CK/CK信號必須在DQS/DQS信號之后到達(dá)每個(gè)存儲器件。CK/CK與DQS/DQS之間允許的偏差范圍必須在0到1600ps之間。對于組件/UDIMM,CK/CK和DQS/DQS之間的建議偏差為150ps到1600ps,RDIMM為450ps到750ps,根據(jù)此要求進(jìn)行設(shè)計(jì)時(shí),必須考慮從FPGA到DIMM上的內(nèi)存組件的總CK/CK和DQS/DQS傳播延遲。

CK/CK必須在DQS/DQS之后到達(dá)每個(gè)內(nèi)存組件,以確保校準(zhǔn)可以將DQS/DQS與正確的CK/CK時(shí)鐘周期對齊。如果違反此規(guī)范,則會發(fā)現(xiàn)寫入校準(zhǔn)失敗。

如果存儲器接口未在最大頻率下運(yùn)行,則可以增加指定的DQ到DQS偏移限制。表1顯示了這些情況下的最大余量值(±)??v軸是以Mb/s為單位的比特率。

表1、DQ和DQS走線最大偏移

例如,如果FPGA -3等級速度器件,DDR3速率可達(dá)1866Mbps,當(dāng)使用DDR3存儲器以1600Mbps速度運(yùn)行時(shí),則根據(jù)表,DQ和DQS的偏差極限值為±31.3ps,如果接口以1066Mbp速率運(yùn)行,則偏差極限值為±150ps。

類似地,如果存儲器接口沒有以最大頻率操作,則可以增加指定的CK到地址/控制時(shí)序偏差限制。表2顯示了這些情況下的余量極限(±)。

表2、CK和地址/控制信號走線最大偏移

例如,如果FPGA -3等級速度器件,DDR3速率可達(dá)1866Mbps,當(dāng)使用DDR3存儲器以1600Mbps速度運(yùn)行時(shí),則根據(jù)表,CK和地址/控制信號的偏差極限值為±94.1ps,如果接口以1066Mbp速率運(yùn)行,則偏差極限值為±150ps。

另外,I/O Bank內(nèi)不同字節(jié)組內(nèi)偏移應(yīng)≤1ns。

05、I/O標(biāo)準(zhǔn)配置

XDC約束文件包含時(shí)序、管腳和I/O標(biāo)準(zhǔn)信息。系統(tǒng)時(shí)鐘約束設(shè)置接口的工作頻率,并通過MIG GUI進(jìn)行設(shè)置。如果需要更改,則必須重新運(yùn)行它,因?yàn)槠渌麅?nèi)部參數(shù)會受到影響。例如:
create_clock -period 1.875 [get_ports sys_clk_p]clk_ref約束設(shè)置IDELAY參考時(shí)鐘的頻率,通常為200 MHz。例如:
create_clock -period 5 [get_ports clk_ref_p]

圖11、DDR3 I/O約束

MIG工具根據(jù)所選的數(shù)據(jù)速率和電壓輸入設(shè)置VCAUX_IO約束,如圖11所示。

這些規(guī)則適用于DDR3 SDRAM的I/O標(biāo)準(zhǔn)選擇:

MIG工具生成的設(shè)計(jì)使用SSTL15_T_DCI和DIFF_SSTL15_T_DCI標(biāo)準(zhǔn),用于HP Bank中的所有雙向I/O(DQ、DQ)。在HR Bank中,該工具使用SSTL15和DIFF_SSTL15標(biāo)準(zhǔn),并在GUI中選擇內(nèi)部終端(IN_TERM)屬性.

SSTL15和DIFF_SSTL15標(biāo)準(zhǔn)用于單向輸出,如控制/地址等;

LVCMOS15用于驅(qū)動至DDR3存儲器的復(fù)位信號RESET_N。

06、存儲器通用布線規(guī)則

在確定信號走線長度時(shí),在布線約束中包括封裝延遲。當(dāng)封裝延遲的最小值和最大值可用時(shí),使用最小值和最大值之間的中值。

同一字節(jié)(Byte)中的DQ和DQS信號應(yīng)在同一層從FPGA布線至DRAM,扇出區(qū)域除外。

對于Fly-by布線,地址、命令、控制和時(shí)鐘信號可以在不同的層上布線任何信號層交換過孔都需要在50mil周長范圍內(nèi)有一個(gè)接地過孔。

確保存儲器ODT設(shè)置與傳輸線阻抗匹配

系統(tǒng)時(shí)鐘推薦設(shè)計(jì)如圖12所示。

圖12、系統(tǒng)時(shí)鐘推薦設(shè)計(jì)

6. 信號線必須參考連續(xù)參考平面布線,避免跨分割層布線(圖13)。

圖13、信號跨分割層布線

7. 使布線至少與參考平面保持30mil的距離,并離板邊一定距離。

8. 在扇出區(qū)域中,通路空隙孔中間的布線信號線。避免在通孔空隙邊緣布線。

圖14、扇出區(qū)域布線

9. 使用V字形布線,以允許使用地縫過孔。

圖15、地縫過孔

10. 在器件邊緣和器件內(nèi)部盡可能多地添加接地過孔,為信號和電源提供更好的接地回路,尤其是角落。

11.對于ADDR/CMD/CTRL VTT終端,每四個(gè)終端電阻器應(yīng)配備一個(gè)1.0μF電容器,在電阻器之間物理交錯。

圖16、ADD/CMD端接布局

12. 為了優(yōu)化信號路由,圖17中給出了一個(gè)組件布局的建議。

圖17、DDR優(yōu)化布局

圖18、5片DDR優(yōu)化布局

 

延伸閱讀:Artix-7 and Spartan-7 FPGAs DDR2/DDR3 PCB設(shè)計(jì)指導(dǎo)

Xilinx Virtex-6/Spartan-6 FPGA DDR3信號完整性分析和PCB布局指南

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險(xiǎn)等級 參考價(jià)格 更多信息
A3P250-PQG208 1 Microsemi FPGA & SoC Field Programmable Gate Array, 250000 Gates, CMOS, PQFP208, 0.50 MM PITCH, PLASTIC, QFP-208
$22.32 查看
A3P125-VQG100I 1 Microsemi Corporation Field Programmable Gate Array, 3072 CLBs, 125000 Gates, 350MHz, CMOS, PQFP100, 14 X 14 MM, 1 MM HEIGHT, 0.50 MM PITCH, GREEN, VQFP-100

ECAD模型

下載ECAD模型
$14.94 查看
EP4CE40F29C8 1 Intel Corporation Field Programmable Gate Array, 39600-Cell, PBGA780, FBGA-780
暫無數(shù)據(jù) 查看
賽靈思

賽靈思

賽靈思(英語:Xilinx)是一家位于美國的可編程邏輯器件的生產(chǎn)商。該公司發(fā)明了現(xiàn)場可編程邏輯門陣列,并由此成名。賽靈思還是第一個(gè)無廠半導(dǎo)體公司(Fabless)。28nm時(shí)代,賽靈思提出All Programmable 的概念,從單一的FPGA企業(yè)戰(zhàn)略轉(zhuǎn)型為All Programmable FPGA、 SoC 和 3D IC 的全球領(lǐng)先提供商。且行業(yè)領(lǐng)先的器件與新一代設(shè)計(jì)環(huán)境以及 IP 完美地整合在一起,可滿足客戶對可編程邏輯乃至可編程系統(tǒng)集成的廣泛需求賽靈思于1984年創(chuàng)建于美國加利福尼亞州的硅谷,總部位于硅谷核心的圣何塞,并在科羅拉多州、愛爾蘭、新加坡 印度、中國、日本擁有分支機(jī)構(gòu)

賽靈思(英語:Xilinx)是一家位于美國的可編程邏輯器件的生產(chǎn)商。該公司發(fā)明了現(xiàn)場可編程邏輯門陣列,并由此成名。賽靈思還是第一個(gè)無廠半導(dǎo)體公司(Fabless)。28nm時(shí)代,賽靈思提出All Programmable 的概念,從單一的FPGA企業(yè)戰(zhàn)略轉(zhuǎn)型為All Programmable FPGA、 SoC 和 3D IC 的全球領(lǐng)先提供商。且行業(yè)領(lǐng)先的器件與新一代設(shè)計(jì)環(huán)境以及 IP 完美地整合在一起,可滿足客戶對可編程邏輯乃至可編程系統(tǒng)集成的廣泛需求賽靈思于1984年創(chuàng)建于美國加利福尼亞州的硅谷,總部位于硅谷核心的圣何塞,并在科羅拉多州、愛爾蘭、新加坡 印度、中國、日本擁有分支機(jī)構(gòu)收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

專注FPGA技術(shù)開發(fā),涉及Intel FPGA、Xilinx FPGA技術(shù)開發(fā),開發(fā)環(huán)境使用,代碼風(fēng)格、時(shí)序收斂、器件架構(gòu)以及軟硬件項(xiàng)目實(shí)戰(zhàn)開發(fā),個(gè)人公眾號:FPGA技術(shù)實(shí)戰(zhàn)。