完整性仿真:SPEED2000從疊層參數(shù)到眼圖優(yōu)化全流程)
1. DDR4信號(hào)完整性仿真的整體思路與方案選型DDR4接口在消費(fèi)級(jí)主板和服務(wù)器平臺(tái)上已經(jīng)非常成熟默認(rèn)頻率2666MHz起步高頻版本輕松跑到3200甚至4266MHz。速率上去了信號(hào)完整性問題就跟著來了。很多硬件工程師在畫完DDR4走線之后心里其實(shí)沒底——等長(zhǎng)做了、阻抗控了、參考層也完整但板子回來一測(cè)眼圖就是張不開讀寫誤碼率偏高。這時(shí)候如果靠反復(fù)改板去試錯(cuò)一次打板周期加調(diào)試至少兩周成本和時(shí)間都耗不起。Cadence Sigrity SPEED2000就是用來在投板之前把這些問題提前暴露出來的工具。它做的是時(shí)域仿真核心能力是提取PCB走線的S參數(shù)模型然后配合IBIS模型做瞬態(tài)分析最終生成眼圖、時(shí)序波形和噪聲分析結(jié)果。和ADS相比SPEED2000在DDR類并行總線的批量仿真上更順手尤其是多比特位同時(shí)掃描的場(chǎng)景腳本化程度高適合做參數(shù)掃描和批量驗(yàn)證。這套流程適合誰呢如果你是從原理圖轉(zhuǎn)過來做PCB的工程師對(duì)傳輸線理論有一些基本概念但沒怎么做過仿真這篇文章可以幫你把整個(gè)鏈路跑通。如果你已經(jīng)用過HyperLynx或者ADS做SI仿真想轉(zhuǎn)到SPEED2000上做DDR4的專項(xiàng)分析這里面的參數(shù)設(shè)置和避坑經(jīng)驗(yàn)也能直接參考。整個(gè)仿真鏈路我把它拆成四步第一步是疊層與材料參數(shù)確認(rèn)第二步是PCB走線S參數(shù)提取第三步是IBIS模型配置與拓?fù)浯罱ǖ谒牟绞茄蹐D仿真與優(yōu)化迭代。每一步都有它的坑下面逐個(gè)展開。2. 疊層參數(shù)與傳輸線建模的關(guān)鍵細(xì)節(jié)2.1 疊層參數(shù)為什么不能直接用板廠給的默認(rèn)值很多人做仿真的時(shí)候疊層參數(shù)直接拿板廠的通用疊層來用介質(zhì)厚度、Dk、Df都是標(biāo)稱值。這么做在低頻下問題不大但DDR4的信號(hào)速率到了3200Mbps奈奎斯特頻率1.6GHz五次諧波到了8GHz這時(shí)候介質(zhì)損耗和銅箔粗糙度的影響就非常明顯了。我實(shí)測(cè)過一組對(duì)比同一段走線用Dk4.2、Df0.02的通用參數(shù)提取S參數(shù)和用板廠實(shí)際壓合后實(shí)測(cè)的Dk4.35、Df0.018提取出來的S參數(shù)在4GHz以上的插損差了將近0.8dB。這個(gè)差距放到眼圖上眼高會(huì)差15到20mV眼寬差10ps左右。對(duì)于DDR4的接收端容限來說這已經(jīng)是很可觀的余量了。所以我的做法是在仿真開始之前先找板廠要一份實(shí)際壓合后的疊層報(bào)告拿到每一層的介質(zhì)厚度、銅厚、Dk和Df的實(shí)測(cè)值。如果板廠給不了實(shí)測(cè)值至少要用他們推薦的Dk/Df范圍的中值不要用通用值。2.2 傳輸線模型的選擇2D場(chǎng)求解還是3DSPEED2000里面提取S參數(shù)有兩種模式一種是基于2D場(chǎng)求解器的傳輸線提取適合長(zhǎng)距離的均勻走線另一種是3D全波提取適合過孔、連接器、BGA出線區(qū)域這些結(jié)構(gòu)突變的地方。DDR4的走線大部分是均勻傳輸線用2D提取就夠了速度快、精度也夠。但是有幾個(gè)地方必須用3D過孔區(qū)域、BGA焊球出線、以及走線換層的位置。這些地方的寄生電容和寄生電感對(duì)信號(hào)的影響很大2D求解器處理不了。我的建議是分段處理均勻走線段用2D提取過孔和BGA區(qū)域用3D提取然后在SPEED2000里面把各段級(jí)聯(lián)起來。這樣既保證了精度又不會(huì)讓仿真時(shí)間爆炸。一個(gè)8比特位的DDR4通道如果全部用3D提取仿真時(shí)間可能要幾個(gè)小時(shí)分段處理之后20分鐘以內(nèi)就能跑完。2.3 銅箔粗糙度模型的設(shè)置銅箔粗糙度是一個(gè)容易被忽略的參數(shù)。低頻的時(shí)候電流分布在銅箔表面粗糙度影響不大但到了GHz級(jí)別趨膚效應(yīng)讓電流集中在銅箔表面極薄的一層粗糙度就直接影響等效電阻和插損。SPEED2000里面提供了幾種粗糙度模型Hammerstad、Huray、Groisse。我一般用Huray模型因?yàn)樗鼘?duì)高頻段的擬合更好。參數(shù)方面需要輸入銅箔的粗糙度均方根值標(biāo)準(zhǔn)HVLP銅箔大概是0.5到1微米普通銅箔在2到3微米。這個(gè)值可以從銅箔供應(yīng)商的規(guī)格書里查到。注意如果你不確定銅箔類型寧可用偏大的粗糙度值這樣仿真結(jié)果偏保守實(shí)際板子回來之后眼圖會(huì)比仿真結(jié)果好一些心理上更踏實(shí)。2.4 疊層參數(shù)對(duì)阻抗的影響計(jì)算DDR4的單端阻抗通??刂圃?0到50歐姆差分阻抗控制在80到100歐姆。阻抗和疊層參數(shù)的關(guān)系可以用微帶線或帶狀線的公式來估算。以帶狀線為例阻抗大致和介質(zhì)厚度的平方根成正比和線寬的平方根成反比。假設(shè)你的目標(biāo)阻抗是45歐姆當(dāng)前疊層下介質(zhì)厚度是4mil線寬是4.5mil仿真出來阻抗是48歐姆。這時(shí)候你有兩個(gè)選擇把線寬加大到5mil或者把介質(zhì)厚度減到3.7mil。線寬加大會(huì)影響布線密度介質(zhì)厚度調(diào)整會(huì)牽動(dòng)整個(gè)疊層。我的經(jīng)驗(yàn)是優(yōu)先調(diào)線寬因?yàn)榀B層調(diào)整的代價(jià)太大而且會(huì)影響其他信號(hào)層的阻抗。具體計(jì)算可以用SPEED2000自帶的阻抗計(jì)算器或者用Polar SI9000做初步估算然后在SPEED2000里面做精確提取驗(yàn)證。3. S參數(shù)提取與IBIS模型配置實(shí)操3.1 SPEED2000中S參數(shù)提取的完整流程打開SPEED2000之后第一步是導(dǎo)入PCB設(shè)計(jì)文件。支持的文件格式包括Allegro的.brd、ODB、以及HyperLynx的.hyp格式。我一般用ODB因?yàn)樗募嫒菪宰詈脤有畔⒈A舻米钔暾?。?dǎo)入之后需要做幾件事確認(rèn)疊層信息是否正確映射特別是介質(zhì)厚度和銅厚設(shè)置仿真頻率范圍DDR4的話我一般設(shè)到10GHz覆蓋到五次諧波選擇需要提取的網(wǎng)絡(luò)可以按網(wǎng)絡(luò)名或者按Bus來選設(shè)置端口在走線的起點(diǎn)和終點(diǎn)各放一個(gè)端口端口設(shè)置有一個(gè)細(xì)節(jié)端口的參考地要選對(duì)。對(duì)于微帶線參考地就是正下方的地平面對(duì)于帶狀線參考地是上下兩個(gè)地平面。如果參考地選錯(cuò)了提取出來的S參數(shù)完全不能用。提取完成之后SPEED2000會(huì)生成一個(gè)Touchstone格式的S參數(shù)文件通常是.sNp格式N是端口數(shù)。比如一個(gè)差分對(duì)就是4端口生成.s4p文件。3.2 IBIS模型的選擇與驗(yàn)證IBIS模型是仿真DDR4接口的關(guān)鍵輸入??刂破鞫撕蛢?nèi)存顆粒端都需要對(duì)應(yīng)的IBIS模型。控制器端的模型一般從芯片廠商那里拿內(nèi)存顆粒端的模型可以從Micron、Samsung、SK Hynix的官網(wǎng)下載。拿到IBIS模型之后不要直接就用。先做幾件事用IBIS Parser檢查模型的語法是否正確有沒有缺失的V-I曲線或V-t曲線確認(rèn)模型的Corner類型通常有Typical、Minimum、Maximum三種DDR4仿真一般用Typical做初步分析然后用Minimum和Maximum做余量驗(yàn)證檢查模型的封裝參數(shù)R_pkg、L_pkg、C_pkg是否合理我踩過一個(gè)坑某次用了一個(gè)控制器端的IBIS模型仿真出來的眼圖特別好眼高眼寬都遠(yuǎn)超預(yù)期。后來發(fā)現(xiàn)那個(gè)模型的驅(qū)動(dòng)能力設(shè)置錯(cuò)了輸出阻抗設(shè)成了50歐姆實(shí)際芯片的輸出阻抗是34歐姆。改過來之后眼圖直接縮水了30%。所以IBIS模型的驗(yàn)證環(huán)節(jié)絕對(duì)不能省。3.3 拓?fù)浯罱ㄅc激勵(lì)設(shè)置SPEED2000里面搭建DDR4拓?fù)湟话阌命c(diǎn)對(duì)點(diǎn)的結(jié)構(gòu)??刂破鞫私覫BIS模型中間是S參數(shù)模型代表的PCB走線末端接內(nèi)存顆粒的IBIS模型。如果是多顆粒的結(jié)構(gòu)比如一個(gè)控制器帶兩個(gè)顆粒就需要用T型拓?fù)浠蛘逨ly-by拓?fù)洹<?lì)設(shè)置方面DDR4的仿真需要設(shè)置PRBS碼型。碼型的速率要和實(shí)際工作頻率一致比如2666Mbps就設(shè)2666Mbps。碼型長(zhǎng)度一般設(shè)2^7-1或者2^10-1長(zhǎng)度越長(zhǎng)仿真時(shí)間越久但統(tǒng)計(jì)結(jié)果更準(zhǔn)確。我一般用2^7-1做初步掃描用2^10-1做最終驗(yàn)證。提示激勵(lì)的上升下降時(shí)間要設(shè)置合理。DDR4的典型上升時(shí)間是100ps左右10%到90%如果設(shè)得太快仿真出來的高頻成分會(huì)偏多眼圖會(huì)偏悲觀。3.4 仿真參數(shù)配置與運(yùn)行時(shí)間估算SPEED2000的仿真參數(shù)主要有幾個(gè)仿真步長(zhǎng)、仿真總時(shí)長(zhǎng)、采樣率。仿真步長(zhǎng)一般設(shè)為信號(hào)上升時(shí)間的1/10到1/20比如上升時(shí)間100ps步長(zhǎng)設(shè)5ps到10ps。仿真總時(shí)長(zhǎng)要覆蓋足夠多的碼型周期一般至少1000個(gè)UI。采樣率要滿足奈奎斯特采樣定理至少是最高頻率成分的兩倍。運(yùn)行時(shí)間方面一個(gè)8比特位的DDR4通道用2D提取的S參數(shù)加IBIS模型在普通工作站上大概跑15到30分鐘。如果用3D提取的S參數(shù)時(shí)間會(huì)翻倍。如果做參數(shù)掃描比如掃描不同的驅(qū)動(dòng)強(qiáng)度或者不同的ODT設(shè)置時(shí)間會(huì)成倍增加。我的做法是先跑一個(gè)典型工況確認(rèn)設(shè)置沒問題之后再用腳本批量跑其他工況。4. 眼圖仿真結(jié)果解讀與優(yōu)化迭代4.1 眼圖的基本參數(shù)與DDR4的驗(yàn)收標(biāo)準(zhǔn)眼圖是信號(hào)完整性最直觀的展示方式。SPEED2000生成的眼圖里面幾個(gè)關(guān)鍵參數(shù)需要關(guān)注眼高眼睛張開的高度反映了信號(hào)的噪聲容限。DDR4的接收端容限一般在100mV到150mV之間具體看顆粒的規(guī)格書。眼寬眼睛張開的寬度反映了信號(hào)的時(shí)序容限。DDR4的眼寬要求一般在0.3UI到0.4UI之間。抖動(dòng)包括隨機(jī)抖動(dòng)和確定性抖動(dòng)反映了信號(hào)的時(shí)序穩(wěn)定性。DDR4的總體抖動(dòng)一般要求在0.15UI以內(nèi)。交叉點(diǎn)眼圖的交叉點(diǎn)位置反映了占空比失真DDR4要求交叉點(diǎn)在50%±5%的范圍內(nèi)。驗(yàn)收標(biāo)準(zhǔn)方面我一般用JEDEC的標(biāo)準(zhǔn)作為參考但實(shí)際項(xiàng)目中會(huì)根據(jù)顆粒廠商的規(guī)格書做調(diào)整。有些顆粒的容限比JEDEC標(biāo)準(zhǔn)更嚴(yán)格這時(shí)候就要以規(guī)格書為準(zhǔn)。4.2 眼圖張不開的常見原因與排查思路眼圖張不開是最常見的問題原因可能有很多。我按照排查優(yōu)先級(jí)列一個(gè)表問題現(xiàn)象可能原因排查方法解決方向眼高不足插損過大檢查S參數(shù)插損曲線縮短走線、換低損耗板材眼高不足阻抗不匹配檢查TDR阻抗曲線調(diào)整線寬或疊層眼寬不足碼間干擾檢查S參數(shù)回波損耗優(yōu)化端接、調(diào)整ODT眼寬不足串?dāng)_過大檢查近端/遠(yuǎn)端串?dāng)_加大線間距、加地線隔離抖動(dòng)偏大電源噪聲檢查PDN阻抗優(yōu)化去耦電容布局交叉點(diǎn)偏移占空比失真檢查驅(qū)動(dòng)端波形調(diào)整驅(qū)動(dòng)強(qiáng)度或預(yù)加重這個(gè)表是我在實(shí)際項(xiàng)目中總結(jié)出來的基本上覆蓋了80%以上的眼圖問題。排查的時(shí)候按照從上到下的順序來先看插損和阻抗再看串?dāng)_和電源最后看驅(qū)動(dòng)設(shè)置。4.3 端接與ODT設(shè)置的優(yōu)化DDR4的端接方式主要有兩種控制器端的驅(qū)動(dòng)阻抗匹配和顆粒端的ODT。控制器端的輸出阻抗一般是34歐姆或40歐姆顆粒端的ODT可以配置為34、40、48、60、80、120、240歐姆等多檔。ODT的設(shè)置對(duì)眼圖影響很大。ODT太小信號(hào)幅度被拉低眼高不足ODT太大反射嚴(yán)重眼寬不足。我一般會(huì)做一個(gè)ODT掃描從34歐姆到120歐姆每個(gè)值跑一次仿真看哪個(gè)值的眼圖最好。實(shí)測(cè)下來對(duì)于點(diǎn)對(duì)點(diǎn)的DDR4拓?fù)銸DT設(shè)在48歐姆到60歐姆之間通常是比較好的選擇。如果是Fly-by拓?fù)淇拷刂破鞯念w粒ODT設(shè)大一些遠(yuǎn)離控制器的顆粒ODT設(shè)小一些這樣可以補(bǔ)償走線損耗帶來的幅度衰減。4.4 走線長(zhǎng)度與等長(zhǎng)約束的驗(yàn)證DDR4的等長(zhǎng)約束是保證時(shí)序余量的關(guān)鍵。一般來說同一字節(jié)通道內(nèi)的數(shù)據(jù)線等長(zhǎng)誤差要控制在5mil以內(nèi)時(shí)鐘線和數(shù)據(jù)線之間的偏差要控制在10mil以內(nèi)。地址線和控制線的等長(zhǎng)要求相對(duì)寬松但也要控制在50mil以內(nèi)。在SPEED2000里面可以通過仿真來驗(yàn)證等長(zhǎng)約束是否合理。具體做法是在眼圖仿真中同時(shí)觀察多個(gè)比特位的波形看它們的到達(dá)時(shí)間是否一致。如果某個(gè)比特位的到達(dá)時(shí)間明顯偏早或偏晚說明等長(zhǎng)沒做好。我遇到過一個(gè)案例某塊板子的DDR4走線等長(zhǎng)做得很仔細(xì)誤差控制在2mil以內(nèi)但眼圖還是有問題。后來發(fā)現(xiàn)是過孔的數(shù)量不一致有的信號(hào)線過了兩個(gè)過孔有的過了一個(gè)。過孔帶來的額外延遲大概是10ps到20ps兩個(gè)過孔的差異就是20ps到40ps相當(dāng)于30mil到60mil的走線長(zhǎng)度。所以等長(zhǎng)不僅要看走線長(zhǎng)度還要把過孔的延遲算進(jìn)去。4.5 串?dāng)_分析與隔離措施DDR4的走線密度很高串?dāng)_是一個(gè)不可忽視的問題。SPEED2000可以提取近端串?dāng)_和遠(yuǎn)端串?dāng)_的S參數(shù)然后在眼圖仿真中觀察串?dāng)_對(duì)信號(hào)的影響。串?dāng)_的控制手段主要有幾個(gè)加大線間距一般要求線間距至少是線寬的三倍在敏感信號(hào)線之間加地線隔離地線要打過孔接地減少并行走線的長(zhǎng)度特別是長(zhǎng)距離的并行走線不同字節(jié)通道之間保持足夠的間距我實(shí)測(cè)過一組數(shù)據(jù)線間距從3倍線寬加大到5倍線寬近端串?dāng)_從8%降到了4%眼高提升了12mV。這個(gè)改善是很明顯的但代價(jià)是布線面積增加了。所以在高密度設(shè)計(jì)中需要在串?dāng)_和布線密度之間做一個(gè)平衡。4.6 電源噪聲對(duì)眼圖的影響DDR4的電源噪聲對(duì)眼圖的影響經(jīng)常被忽略。電源噪聲會(huì)通過驅(qū)動(dòng)器的輸出級(jí)耦合到信號(hào)上導(dǎo)致眼圖抖動(dòng)和幅度波動(dòng)。在SPEED2000里面可以通過協(xié)同仿真把PDN的阻抗曲線和信號(hào)的眼圖仿真結(jié)合起來。具體做法是先提取PDN的阻抗曲線確認(rèn)在DDR4的工作頻率范圍內(nèi)阻抗是否足夠低。然后在眼圖仿真中把電源噪聲作為一個(gè)激勵(lì)源加進(jìn)去觀察眼圖的變化。我一般要求PDN阻抗在DDR4的工作頻段內(nèi)控制在目標(biāo)阻抗以下。目標(biāo)阻抗的計(jì)算方法是電源電壓乘以允許的紋波百分比再除以最大瞬態(tài)電流。比如1.2V的電源允許3%的紋波最大瞬態(tài)電流2A目標(biāo)阻抗就是1.2×0.03/218毫歐。這個(gè)值在低頻段容易滿足但在高頻段100MHz以上就需要靠去耦電容的布局來保證。5. 仿真與實(shí)測(cè)的 correlation 與迭代優(yōu)化5.1 仿真結(jié)果和實(shí)測(cè)結(jié)果的對(duì)比方法仿真做完之后板子回來一定要做實(shí)測(cè)對(duì)比。實(shí)測(cè)的工具一般是示波器加探頭或者專用的DDR4協(xié)議分析儀。實(shí)測(cè)的時(shí)候要注意幾點(diǎn)探頭的帶寬要足夠至少是信號(hào)速率的2倍以上DDR4 3200Mbps的話探頭帶寬至少6GHz探頭的負(fù)載效應(yīng)要小盡量用低電容探頭測(cè)量點(diǎn)要選在接收端和仿真時(shí)的觀察點(diǎn)一致對(duì)比的時(shí)候主要看眼高、眼寬、抖動(dòng)這幾個(gè)參數(shù)。如果仿真和實(shí)測(cè)的偏差在10%以內(nèi)說明仿真模型和參數(shù)設(shè)置是合理的。如果偏差超過20%就需要回頭檢查模型和參數(shù)。5.2 模型修正與參數(shù)迭代仿真和實(shí)測(cè)有偏差是正常的關(guān)鍵是要找到偏差的來源。常見的偏差來源有IBIS模型的精度不夠特別是驅(qū)動(dòng)端的輸出阻抗和上升時(shí)間疊層參數(shù)和實(shí)際板子有差異過孔和連接器的模型簡(jiǎn)化過度測(cè)量本身的誤差我的做法是先用實(shí)測(cè)結(jié)果反推模型的修正量然后更新模型重新仿真直到仿真和實(shí)測(cè)的偏差收斂到可接受的范圍內(nèi)。這個(gè)過程可能需要迭代兩到三次但每次迭代都會(huì)讓模型的精度提升。5.3 設(shè)計(jì)余量的評(píng)估與簽核標(biāo)準(zhǔn)仿真最終的目的是評(píng)估設(shè)計(jì)余量給出簽核結(jié)論。我一般從三個(gè)維度來評(píng)估眼圖余量眼高和眼寬相對(duì)于規(guī)格書的余量一般要求至少20%的余量時(shí)序余量建立時(shí)間和保持時(shí)間相對(duì)于規(guī)格書的余量一般要求至少15%的余量噪聲余量包括串?dāng)_、電源噪聲、反射等總體噪聲要控制在接收端容限的50%以內(nèi)如果三個(gè)維度的余量都滿足要求就可以簽核投板。如果某個(gè)維度余量不足就需要優(yōu)化設(shè)計(jì)重新仿真驗(yàn)證。5.4 常見仿真報(bào)錯(cuò)與解決方法SPEED2000在仿真過程中可能會(huì)報(bào)一些錯(cuò)誤我整理了幾個(gè)常見的報(bào)錯(cuò)信息原因解決方法IBIS model parsing errorIBIS文件語法錯(cuò)誤用IBIS Parser檢查并修正S-parameter extraction failed端口設(shè)置錯(cuò)誤檢查端口參考地是否正確Simulation not converging仿真步長(zhǎng)太小或模型不收斂加大步長(zhǎng)或檢查模型Out of memory網(wǎng)格太密或頻率范圍太寬減少網(wǎng)格或縮小頻率范圍License error許可證配置問題檢查許可證服務(wù)器配置這些報(bào)錯(cuò)大部分都是配置問題仔細(xì)檢查設(shè)置就能解決。如果遇到不收斂的問題可以先簡(jiǎn)化模型把S參數(shù)換成理想傳輸線確認(rèn)仿真能跑通之后再逐步加回復(fù)雜模型。6. 實(shí)操心得與效率提升技巧6.1 腳本化批量仿真的實(shí)現(xiàn)SPEED2000支持Tcl腳本可以把重復(fù)性的操作寫成腳本批量執(zhí)行。比如做ODT掃描的時(shí)候可以寫一個(gè)腳本自動(dòng)遍歷所有ODT值每次修改模型參數(shù)、運(yùn)行仿真、導(dǎo)出眼圖數(shù)據(jù)。這樣原本需要手動(dòng)操作幾個(gè)小時(shí)的工作腳本跑一遍可能只要幾十分鐘。我常用的腳本結(jié)構(gòu)是這樣的先定義參數(shù)列表然后循環(huán)遍歷每次循環(huán)里面做模型修改、仿真運(yùn)行、結(jié)果導(dǎo)出。腳本里面還可以加一些判斷邏輯比如眼高低于某個(gè)閾值就自動(dòng)標(biāo)記出來方便后續(xù)分析。6.2 仿真加速的幾種手段仿真速度是大家都很關(guān)心的問題。除了用腳本批量跑之外還有幾個(gè)加速手段用2D提取代替3D提取只在關(guān)鍵區(qū)域用3D減少仿真碼型長(zhǎng)度初步掃描用短碼型最終驗(yàn)證用長(zhǎng)碼型降低仿真頻率范圍如果只關(guān)心眼圖可以只設(shè)到5GHz用分布式仿真把不同的網(wǎng)絡(luò)分配到不同的機(jī)器上跑我用過最有效的手段是分段提取加級(jí)聯(lián)。把長(zhǎng)走線分成幾段每段單獨(dú)提取S參數(shù)然后在SPEED2000里面級(jí)聯(lián)。這樣每段的提取時(shí)間都很短總體時(shí)間比一次性提取整條走線要快很多。6.3 模型庫(kù)的建立與復(fù)用DDR4的仿真會(huì)用到很多模型控制器IBIS、顆粒IBIS、過孔模型、連接器模型等。這些模型如果每次都重新找、重新配置效率很低。我的做法是建立一個(gè)模型庫(kù)把常用的模型分類存放每個(gè)模型都附上說明文檔記錄模型的來源、版本、適用條件、驗(yàn)證結(jié)果。模型庫(kù)建好之后新項(xiàng)目可以直接復(fù)用只需要根據(jù)具體的疊層和走線做微調(diào)。這樣可以把仿真準(zhǔn)備時(shí)間從幾天縮短到幾個(gè)小時(shí)。6.4 和PCB設(shè)計(jì)團(tuán)隊(duì)的協(xié)作要點(diǎn)仿真工程師和PCB設(shè)計(jì)工程師的協(xié)作很重要。仿真發(fā)現(xiàn)的問題最終要落實(shí)到PCB設(shè)計(jì)的修改上。我的經(jīng)驗(yàn)是仿真報(bào)告不要只給結(jié)論要給出具體的修改建議比如“把第3到第5根數(shù)據(jù)線的線間距從4mil加大到6mil”、“把ODT從40歐姆改成60歐姆”。這樣PCB工程師可以直接執(zhí)行不需要再去理解仿真細(xì)節(jié)。另外仿真介入的時(shí)間點(diǎn)也很關(guān)鍵。最好在布局階段就介入提前規(guī)劃好走線通道和疊層避免布線完成之后才發(fā)現(xiàn)問題那時(shí)候修改的代價(jià)就大了。6.5 個(gè)人踩坑記錄與經(jīng)驗(yàn)總結(jié)最后分享幾個(gè)我踩過的坑第一個(gè)坑是疊層參數(shù)用了板廠的通用值沒有用實(shí)際壓合后的實(shí)測(cè)值導(dǎo)致仿真結(jié)果偏樂觀板子回來之后眼圖比仿真差了20%。后來每次做仿真之前都先找板廠要壓合報(bào)告。第二個(gè)坑是IBIS模型的Corner選錯(cuò)了。有一次用了Minimum Corner的模型做仿真結(jié)果眼圖特別差以為設(shè)計(jì)有問題改了好幾版走線。后來發(fā)現(xiàn)應(yīng)該用Typical Corner做初步分析Minimum和Maximum只用來做余量驗(yàn)證。第三個(gè)坑是忽略了過孔的延遲。等長(zhǎng)做得很仔細(xì)但過孔數(shù)量不一致導(dǎo)致實(shí)際時(shí)序偏差比預(yù)期大。后來在等長(zhǎng)計(jì)算中把過孔的延遲也加進(jìn)去了問題就解決了。第四個(gè)坑是仿真頻率范圍設(shè)得太窄。只設(shè)到了5GHz結(jié)果高頻成分被截?cái)嗔搜蹐D看起來很好但實(shí)際測(cè)試的時(shí)候發(fā)現(xiàn)高頻噪聲很大。后來把頻率范圍設(shè)到了10GHz眼圖就更接近實(shí)測(cè)了。這些坑說到底都是細(xì)節(jié)問題但細(xì)節(jié)決定成敗。DDR4的仿真精度要求很高任何一個(gè)參數(shù)設(shè)錯(cuò)都可能導(dǎo)致結(jié)果偏差。所以我的建議是每一步都做驗(yàn)證每一個(gè)參數(shù)都找到依據(jù)不要想當(dāng)然。