作者 | 黃剛(一博科技高速先生團(tuán)隊(duì)隊(duì)員)
做DDR的調(diào)試無(wú)非以下三種結(jié)果:調(diào)試fail、調(diào)試pass和調(diào)試很久才pass。你可能永遠(yuǎn)也想象不到PCB工程師花幾天設(shè)計(jì)出來(lái)的DDR模塊在加工出來(lái)后調(diào)試就多久才pass,一天?一周?一個(gè)月?甚至……
高速先生近幾年來(lái)在DDR設(shè)計(jì)仿真取得了長(zhǎng)足的進(jìn)步,這要得益于AI(人工智能)的熱潮,作為該領(lǐng)域的核心產(chǎn)品,AI算力卡成為近年來(lái)各大通訊公司和芯片公司爭(zhēng)相研發(fā)的產(chǎn)品。而其中DDR模塊則是AI算力卡里最核心的模塊,支撐著算力卡大容量、快速的運(yùn)算能力。
高速先生在和各大公司合作的情況下,也有機(jī)會(huì)接觸到了形形色色的AI算力卡,它里面的DDR模塊雖然實(shí)現(xiàn)的功能類(lèi)似,但是具體的結(jié)構(gòu)卻有著很多的變化。例如容量的不一樣導(dǎo)致顆粒數(shù)量的不同;板子的大小不一樣導(dǎo)致采用的拓?fù)洳煌籔CB層數(shù)的不一樣導(dǎo)致DDR模塊的布局和密度也不相同;有的由于功耗電流大小不一樣導(dǎo)致DDR走線參考層也不相同,有的需要參考電源層,有的需要相鄰層走線;當(dāng)然還有的就是需要跑到的目標(biāo)速率不同,我們?cè)谠O(shè)計(jì)上的設(shè)計(jì)裕量也會(huì)有所差異等等。因此對(duì)于我們高速先生來(lái)說(shuō),每一塊算力卡的DDR設(shè)計(jì)都是不同的,當(dāng)然設(shè)計(jì)加工出來(lái)之后,我們和客戶(hù)配合著去調(diào)試的難度也是不一樣的。這一塊高速先生在近幾年的研討會(huì)上也和大家分享過(guò)一些經(jīng)典的案例,讓大家對(duì)DDR的設(shè)計(jì)和調(diào)試難度都有了新的認(rèn)識(shí),AI產(chǎn)品的一些特點(diǎn)關(guān)于它的設(shè)計(jì)使得比以往任何產(chǎn)品的DDR難度都要大一點(diǎn),當(dāng)然我們也就會(huì)有很多測(cè)試和仿真的案例了。這里關(guān)于DDR調(diào)試的案例,我們?cè)俳o大家分享一個(gè)從fail到pass的經(jīng)歷哈。
在一個(gè)安靜祥和的午后,高速先生剛剛還略帶點(diǎn)午睡的困意開(kāi)始下午的工作,就突然收到了客戶(hù)一份很“提神”的郵件,讓大家立馬精神了起來(lái)。
原來(lái)是客戶(hù)在我們公司設(shè)計(jì)加工的一款主力的AI算力卡出現(xiàn)了調(diào)試fail的問(wèn)題,客戶(hù)本身是一家很有研發(fā)能力而且很?chē)?yán)謹(jǐn)?shù)墓,它們?duì)硬件原理和調(diào)試都是具有豐富的經(jīng)驗(yàn),然而這款產(chǎn)品的DDR模塊他們調(diào)試了幾周都依然沒(méi)辦法成功。由于是我司PCB工程師設(shè)計(jì)的板子,因此高速先生肯定是臨危受命,去負(fù)責(zé)介入到他們的調(diào)試中去。
高速先生打開(kāi)PCB文件,看到了FPGA和C1這個(gè)DDR通道的連接,這個(gè)通道是由9個(gè)DDR顆粒組成,也就是我們所說(shuō)的1拖9的DDR拓?fù)。由于板子的密度很大,因此只能采取正反貼的形式進(jìn)行布局布線,如下圖所示。
由于FPGA芯片是有關(guān)于DDR的設(shè)計(jì)指導(dǎo)文檔,我司的PCB工程師和客戶(hù)在投板前也反復(fù)確認(rèn)了該DDR模塊的設(shè)計(jì)是完全按照文檔上面每一條細(xì)致的指導(dǎo)去布線的。例如下圖的L0,L1,L2等每段長(zhǎng)度文檔上都是有要求。
客戶(hù)就是因?yàn)橛X(jué)得都按照了上面的設(shè)計(jì)指導(dǎo)進(jìn)行布局布線,認(rèn)為設(shè)計(jì)其實(shí)是達(dá)到了要求,因此才堅(jiān)持著花費(fèi)了近一個(gè)月的時(shí)間進(jìn)行調(diào)試,希望能從調(diào)試中去解決問(wèn)題。高速先生介入后,發(fā)現(xiàn)客戶(hù)的調(diào)試其實(shí)已經(jīng)做了很多內(nèi)容,包括驅(qū)動(dòng)內(nèi)阻的變化,ODT電阻的變化,電源電壓的微調(diào),VTT電阻的改變,飛線等等,但是仍然無(wú)法達(dá)到額定的2400Mbps的速率。由于這個(gè)項(xiàng)目當(dāng)時(shí)是沒(méi)有進(jìn)行過(guò)我們高速先生仿真的,因此我們首先建議做一個(gè)debug形式的仿真,也就是在基于調(diào)試結(jié)果的仿真,看看仿真的測(cè)試的擬合度到底高不高,從中找出問(wèn)題。
由于我們對(duì)xilinx的FPGA仿真模型和DDR顆粒的仿真模型都比較有信心,之前也做過(guò)很多仿真測(cè)試的對(duì)比,發(fā)現(xiàn)仿真和測(cè)試波形的擬合度是比較高的,再加上高速先生看到這個(gè)拓?fù)溥是非常的復(fù)雜,因此有信心在客戶(hù)調(diào)試的配置參數(shù)下得出一個(gè)“差”的仿真結(jié)果!你沒(méi)聽(tīng)錯(cuò),我們這種debug的仿真就是希望得到一個(gè)差的仿真結(jié)果,這樣才能和實(shí)際上調(diào)試fail的情況吻合上。
果然,高速先生希望的事情發(fā)生了,我們對(duì)地址控制信號(hào)進(jìn)行仿真的時(shí)候,發(fā)現(xiàn)了距離FPGA最近的DDR顆粒的信號(hào)質(zhì)量是不滿(mǎn)足要求的,為什么要看距離主芯片最近的顆粒,這個(gè)高速先生已經(jīng)說(shuō)過(guò)很多次了哈,這里就不再重復(fù)了。
同樣,根據(jù)客戶(hù)調(diào)試的情況,我們?cè)诜抡嬷羞x擇不同的驅(qū)動(dòng)內(nèi)阻和VTT電阻的阻值,的確也和調(diào)試的情況類(lèi)似,都不能得到一個(gè)很好的信號(hào)質(zhì)量。到這里,我們開(kāi)了一個(gè)好頭,至少能在仿真中得到了和測(cè)試結(jié)果相對(duì)應(yīng)的結(jié)論。
但是高速先生在仿真中還能做些什么呢?我們雖然通過(guò)仿真找到了差的波形,但是這對(duì)于調(diào)試卻起不了太多指導(dǎo)的作用。因此我們繼續(xù)去通過(guò)仿真模型來(lái)看看,到底會(huì)不會(huì)還有什么驅(qū)動(dòng)的配置我們可以嘗試過(guò)。我們打開(kāi)FPGA的ibs模型,看到可選擇的以下驅(qū)動(dòng)配置中,其實(shí)我們和客戶(hù)只用到了左邊的這種配置,上面有40到60歐姆內(nèi)阻的選擇,我們仿真和客戶(hù)調(diào)試都試過(guò)了,沒(méi)有明顯的改善。
但是我們驚訝的發(fā)現(xiàn),原來(lái)模型上還有綠色的兩列基本和之前紅色列的配置幾乎一樣的驅(qū)動(dòng)內(nèi)阻可以選擇,但是唯一不同的是F,M和S的區(qū)別,因此高速先生再花點(diǎn)時(shí)間去掃描一下同樣是40歐姆驅(qū)動(dòng)內(nèi)阻的情況下,F(xiàn),M和S下面這三種buffer到底會(huì)不會(huì)有差異呢?
結(jié)果讓高速先生感到驚訝的同時(shí)又感到興奮,原來(lái)在FAST,MEDIUM和SLOW模式下,對(duì)于同一個(gè)驅(qū)動(dòng)內(nèi)阻的波形是有著明顯的差異。我們看到MEDIUM和SLOW模式下,信號(hào)的上升沿slew會(huì)變緩,這樣反而避免了部分的反射,使得信號(hào)的ringback減小,眼高的裕量變高。
關(guān)于上升沿與信號(hào)質(zhì)量的介紹,高速先生隊(duì)長(zhǎng)還親自上場(chǎng)錄制了通俗易懂的視頻,可以關(guān)注下。
根據(jù)上面的掃描結(jié)果,我們選用MEDIUM的模式進(jìn)行全通道的仿真,看看和之前fast模式的結(jié)果相比到底有沒(méi)有改善。
結(jié)果給高速先生帶來(lái)了喜悅,我們用MEDIUM模式去仿真的結(jié)果能夠得到明顯的改善,同樣的顆粒信號(hào)質(zhì)量變得可以接受了。
高速先生從FPGA模型的選擇上解決了問(wèn)題,選取上升沿slew比較緩的驅(qū)動(dòng)反而能夠獲得比較好的信號(hào)質(zhì)量。
到這里,我們就只剩下最后一個(gè)問(wèn)題了,那就是到底我們能不能讓客戶(hù)在調(diào)試的參數(shù)配置中選擇MEDIUM的模式呢?客戶(hù)把他們調(diào)試的軟件界面發(fā)過(guò)來(lái)給我們,我們從下拉菜單中看到了的確有這種模式可以選擇,然后就讓客戶(hù)從默認(rèn)的FAST模式自動(dòng)換成MEDIUM的模式,看看效果有什么改善。
在大概等待了一天之后,客戶(hù)的一封報(bào)喜的郵件讓我們大家都輕松了下來(lái),客戶(hù)調(diào)試了一個(gè)月之后,終于通過(guò)這個(gè)手動(dòng)調(diào)試的buffer切換快速解決了問(wèn)題。
|