本篇主要針對Zynq UltraScale + MPSoC的DDR接口,從硬件設(shè)計的角度進(jìn)行詳細(xì)介紹,最后展示一下小編之前自己設(shè)計的基于ZU+的外掛8顆DDR4的設(shè)計。
目前比較常用的DDR是DDR4和DDR3,其他系列相對使用較少一些,本文主要以DDR4進(jìn)行介紹。
1、選型
根據(jù)ZU+系列芯片的數(shù)據(jù)手冊、TRM、pg150等文檔,DDR可以掛載在PS側(cè),也可以掛載在PL側(cè),也可同時掛載在PS側(cè)和PL側(cè)。
PL和PS均支持64位的DDR4(不帶ECC功能),PL部分如果要支持64位的DDR4,則至少需要提供三個bank的HP接口,只能選擇SFVC784或者更高的封裝。需要特別說明的是,使用內(nèi)存顆粒和使用內(nèi)存條的容量差異較大,需要根據(jù)實(shí)際需求進(jìn)行選擇。
針對DDR3,其特性如下:
支持DDR3 (1.5V) and DDR3L (1.35V)
容量限制:Support densities up to 8 Gb for components, 32 GB for RDIMMs, 16 GB for SODIMMs, and 16 GB for UDIMMs. Other densities for memory device support is available through custom part selection.
針對DDR4,其特性如下:
容量限制:Support densities up to 32 Gb for components, 64 GB for LRDIMMs, 128 GB for RDIMMs, 16 GB for SODIMMs, and 16 GB for UDIMMs. Other densities for memory device support is available through custom part selection.
DDR接口粗略的介紹可以參見之前的文章《Zynq UltraScale+系列之“外圍接口概述”》,PS側(cè)的DDR控制器的詳細(xì)特性可參看《UG1085》的第17章,PL側(cè)的的相關(guān)特性可參考《PG150》、《WP454》等資料,此處不再贅述。
2、Performance
DDR總線的效率在不同的使用模式下差異很大,在實(shí)際評估速率時一定要搞清楚使用情況。
針對幾種常用的操作模式,《PG150》給出了具體的效率,詳見下表:
幾種常見的操作模式如下:
Sequential Read
Simple address increment pattern
100% reads
Sequential Write
Simple address increment pattern
100% writes (except for periodic reads generated by the controller for VT tracking)
Burst Read/Write Mix
Repeating pattern of 64 sequential reads and 64 sequential writes
50/50 read/write mix
Short Burst Read/Write Mix
Repeating pattern of four sequential reads and four sequential writes
Full DRAM page accessed in bursts of four before changing the row address for highpage hit rate
50/50 read/write mix
Random Address Read/Write Mix
Repeating pattern of two random reads and two random writes
Fully random address for a low page hit rate
50/50 read/write mix
3、原理圖設(shè)計
PS側(cè)的原理圖設(shè)計基本沒有任何問題,按照對應(yīng)功能引腳連接即可,PL側(cè)的接口需要特別注意。
對于單個Memory接口,盡量集中使用幾個HPbank。如果使用三個bank,兩個bank用作數(shù)據(jù)接口,一個bank用作地址、控制、命令信號線接口,地址、控制、命令信號盡量使用同一個bank,不要跨bank使用;如果使用兩個bank,盡量保證數(shù)據(jù)相關(guān)引腳在一個bank,地址和控制信號在另一個bank。
地址、控制、命令信號不能和data共用byte group,只能使用data byte groups以外的byte groups。
CK差分時鐘對必須使用差分對,必須連接在控制byte group上,盡量按照Vivado軟件對時鐘引腳的約束來連接。如果有多個CK對,必須來自于同一個byte lane。
除了DQS和CK之外,其他信號都可以在byte group內(nèi)隨意交換。
前期原理圖設(shè)計階段最好在vivado中進(jìn)行PL側(cè)管腳預(yù)分配,別等到PCB出來后才開始在vivado中驗(yàn)證,如果關(guān)鍵信號管腳定義有問題,不能交換,則無法彌補(bǔ)。
4、PCB Guidelines for DDR4 SDRAM (PL and PS)
DDR總線的布局布線需要遵循一些通用的規(guī)則,數(shù)據(jù)線只支持點(diǎn)到點(diǎn)連接,其他信號根據(jù)顆粒數(shù)量的不同可以有多種拓?fù)洹?/p>
ZU+ DDR4 SDRAM支持兩種拓?fù)漕愋停篺ly-by和clamshell。Clamshell拓?fù)湓诎遄涌臻g比較緊張時有一定的優(yōu)勢。在MIG中(PL側(cè))是一種可選的拓?fù)洌赑S側(cè)不支持clamshell拓?fù)洹?/p>
如果使用5片x16的顆粒組成80位寬的接口時,5片DDR的布局采用fly-by topology,如果用9片x8的顆粒,則采用clamshell topology比較節(jié)約空間。
由于官方推薦的主線路阻抗較?。▎味?6/39Ω,差分76Ω),線寬比較寬,但扇出部分阻抗又比較大(單端50Ω,差分86Ω),會導(dǎo)致阻抗突變,因此實(shí)際使用中可以通過調(diào)整疊層來優(yōu)化線寬,在滿足阻抗要求的同時減小阻抗突變。
4.1.4、Layout Guidelines
以下為DDR4的約束規(guī)則,表格中的參數(shù)均為最短信號線和最長信號線之間的tolerance參數(shù),數(shù)據(jù)group一般都是以DQS為TARGET,DQ與DQS進(jìn)行比較約束。地址、控制、命令group一般都是以CLK為TARGET,ACC(Address、Command、Control)與CLK進(jìn)行比較約束。
針對上圖解釋為:例如,最快的ACC信號線傳輸時間是800ps,最慢的ACC信號線傳輸時間是840ps,時鐘信號線的傳輸時間應(yīng)該為862ps±8ps,比ACC總線的中間傳輸時間(820ps)慢42ps.
CLK和DQS之間的約束比較寬松,最小的差異可以為-879,最大差異可以為+10600,主要是為了保證讀寫平衡功能從整個菊花鏈的第一片到最后一片顆粒都正常。
DDR控制器可以調(diào)整DQS信號線的內(nèi)部延遲,由于CK信號線鏈路連接每一片DDR顆粒,導(dǎo)致CK容性負(fù)載更重,所以需要能夠調(diào)整DQS信號線的內(nèi)部延遲,以滿足和CK之間的約束。
規(guī)范規(guī)定CK信號線和DQS信號線從FPGA到鏈路中的第一片DDR顆粒的偏差不小于-149ps,到鏈路中最遠(yuǎn)端的DDR顆粒的偏差不大于1796ps。只要鏈鏈路中第一片DDR顆粒和最后一片DDR顆粒都滿足此條件,整個鏈路上所有的DDR顆粒的讀寫平衡功能都將正常。
例如,如果從FPGA到第一片DDR顆粒的DQS延遲為200ps,則從FPGA到第一片DDR顆粒的CK延遲應(yīng)至少為51ps(200ps-149ps)。如果從FPGA到最后一片DDR顆粒的DQS延遲為700ps,則從FPGA到最后一片DDR顆粒的CK延遲應(yīng)該小于2496ps(700ps+1796ps)。
下面是一些基本的規(guī)則,可以參考遵守:
使用內(nèi)存條時,CK信號和DQS信號之間的余量會更小一些,因?yàn)榧s束的是FPGA到DIMM插槽處,而顆粒的走線是由DIMM決定的,因此余量預(yù)留小一些。
同組的DQ、DQS、DM走線必須在同一層。
DIMM數(shù)據(jù)線走線最好選擇靠近接插件的層,尤其是靠DIMM中間位置的數(shù)據(jù)組。
采用菊花鏈結(jié)構(gòu)布線時,ACC信號線可以布在不同的層,但層數(shù)越少越好。不要將一個信號切換好幾層,主要走線盡量一層走完,這樣可以減小串?dāng)_,信號換層時,切換過孔附近50mil范圍內(nèi)需要放置一個接地過孔。
FPGA和DDR器件驅(qū)動端的阻抗為40Ω,DCI和ODT也是40Ω。因此VTT端接電阻都選為39.2Ω。
當(dāng)使用內(nèi)部VREF時,PL側(cè)HP bank上的VREF引腳可以懸空,但不能用于普通IO。
如果系統(tǒng)時鐘連接到了DDR的HPbank,則LVDS時鐘信號需要外部端接至合適的電壓,因?yàn)樵揵ank上有不同的邏輯電平(HSTL, SSTL, or POD)。
對于菊花鏈布局,人字形扇出(chevron-style routing)可以形成stitching vias;對于比較緊湊的布局,可以通過環(huán)抱式扇出形成ground stitch vias。
在器件內(nèi)部或者周圍盡量多放置接地過孔,這樣可以更好的為信號提供返回路徑,尤其是在邊角的位置。
對于ACC信號線的端接電阻布局,應(yīng)該每四個端接電阻中間穿插布局一個0.1uF的VTT去耦電容,這樣可以減小端接VTT的噪聲。為了便于布局,最好在原理圖中就按每四個電阻放置一個去耦電容。
對于DIMM,去耦電容放置得離DIMM越近越好,這樣除了能提供接地過孔外,也能給電源提供低阻抗回路。
以上就是針對ZU+系列MPSoC的DDR接口的詳細(xì)介紹,PCB設(shè)計相關(guān)可參考《UG583:UltraScale Architecture PCB Design User Guide》、官方開發(fā)板ZCU104、ZCU102、ZCU106等。
下面介紹一下小編自己設(shè)計的基于ZU+(XCZU3CG-SFVC784)的外掛8顆DDR4的設(shè)計,采用十層板,板厚1.6mm,最小線寬4mil。板子尺寸120*150mm,單12V電源輸入,支持串口、I2C、USB、GbE、TF卡、CAN、PCIe等常用接口,預(yù)留PS側(cè)和PL側(cè)IO接口。
硬件框圖如下圖所示:
Allegro中的約束規(guī)則如下圖所示:
ACC信號線的約束規(guī)則如下圖所示:
DATA信號線的約束規(guī)則如下圖所示:
責(zé)任編輯:haq
-
接口
+關(guān)注
關(guān)注
33文章
8448瀏覽量
150725 -
DDR
+關(guān)注
關(guān)注
11文章
705瀏覽量
65166
原文標(biāo)題:Zynq UltraScale +系列之“DDR4接口設(shè)計”
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論