對(duì)于業(yè)界率先實(shí)現(xiàn)的同類型設(shè)計(jì)(即新產(chǎn)品首次進(jìn)行實(shí)際構(gòu)建)而言,我們或許應(yīng)該制定更深入的設(shè)計(jì)決策,例如將電源與下游電子器件進(jìn)行分離處理。這樣,我們就能確保電源和上電順序都能正常工作,從而避免下游組件的應(yīng)力過大或損壞。更詳盡的前端設(shè)計(jì)階段有助于測試工作的例子還有一個(gè),那就是確保JTAG端口除了在系統(tǒng)中對(duì)所有FPGA或處理器進(jìn)行編程之外還能有更多用處,例如通過邊界掃描測試來進(jìn)行初始的硬件驗(yàn)證等。邊界掃描測試對(duì)在測試階段早期減少硬件設(shè)計(jì)風(fēng)險(xiǎn)非常有用,同時(shí)也要求對(duì)設(shè)計(jì)方案進(jìn)行優(yōu)化,以確保最大限度地覆蓋邊界掃描器件。
明確硬件特性
系統(tǒng)第一次到達(dá)實(shí)驗(yàn)室時(shí),您要做的第一件事情就是確定硬件底層模塊是否適合做進(jìn)一步的測試。相關(guān)檢查包括模塊的初步通電測試,這是個(gè)緊張的過程。剛拿到模塊,您希望確保其準(zhǔn)確投產(chǎn),能夠成功實(shí)現(xiàn)首次通電啟動(dòng)。第一步就是確保所有的組件都各就其位,引腳“1”正確定位,而且任何帶極性的組件都準(zhǔn)確放置。設(shè)計(jì)中通??赡馨姸酂o需檢查定位的組件,例如那些適合不同版本或不同構(gòu)建選項(xiàng)的組件。
如果您確定所有電源軌都沒有短路,那么下一步就該加電了。初次加電時(shí),我傾向于采用分兩個(gè)階段進(jìn)行的方案。第一個(gè)階段是采用低電壓(0.5V)和低電流,以確保不錯(cuò)過信號(hào)層或電壓軌之間的任何短路情況;第二個(gè)階段是用正確的工作電壓在設(shè)定的電流限值內(nèi)加電,看看是否獲得預(yù)期電流(不要忘了突入電流問題)。
成功給設(shè)計(jì)方案加電后,下一步就是確定電源上電的排序、復(fù)位以及時(shí)鐘是否能按設(shè)想的工作。切記,要確保復(fù)位時(shí)長超過所有時(shí)鐘,并在釋放之前處于穩(wěn)定狀態(tài)。明確硬件特性的下一步就是確保能通過JTAG鏈看到硬件,這使我們不僅能對(duì)FPGA編程,而且還能執(zhí)行邊界掃描測試。邊界掃描測試能幫助我們快速測試器件之間的互連,通過測試存儲(chǔ)器可確保其正常工作,如開發(fā)回環(huán)接插件也可回轉(zhuǎn)輸入輸出。JTAG和邊界掃描測試可在進(jìn)一步詳細(xì)的測試之前消除設(shè)計(jì)風(fēng)險(xiǎn)。
如果您的設(shè)計(jì)在硬件和FPGA層面上都很復(fù)雜,那么簡化版的RTL將有助于測試開發(fā)板以及FPGA和外設(shè)(圖2)之間的接口。對(duì)高速接口設(shè)計(jì)而言,更是如此。我們可結(jié)合采用優(yōu)化的RTL和賽靈思 ChipScope?工具來捕獲數(shù)據(jù),以及預(yù)載了數(shù)據(jù)模式的Block BRAM來發(fā)揮激勵(lì)作用。這種方法對(duì)采用ADC和DAC連接FPGA的情況尤其有用。在此情況下,您應(yīng)發(fā)揮FPGA的可再編程特性來最大限度地進(jìn)行設(shè)計(jì)開發(fā),實(shí)現(xiàn)ADC和DAC的參數(shù)測試,比如噪聲/功率比、無雜散動(dòng)態(tài)范圍和有效比特位數(shù)(effective-number-of-bit)計(jì)算等。
此外,您還應(yīng)該充分利用FPGA提供的資源,尤其是賽靈思System Monitor和XADC,非常有利于監(jiān)控芯片上的電壓軌,進(jìn)而還能有助于驗(yàn)證在設(shè)計(jì)階段所執(zhí)行的電源完整性分析。此外,上述技術(shù)還能方便地報(bào)告芯片溫度,這對(duì)環(huán)境測試以及芯片溫度的功耗關(guān)聯(lián)等都有幫助。
多數(shù)情況下,簡化RTL設(shè)計(jì)并采用FPGA提供的資源對(duì)精確定位未按預(yù)期工作的區(qū)域都有極大的幫助。
遇到問題怎么辦?
在一步步推進(jìn)測試計(jì)劃的過程中,您可能會(huì)遇到一兩個(gè)問題,如未能實(shí)現(xiàn)預(yù)期的功能,或在功能方面無法滿足所需的性能水平。不要擔(dān)心,我們能通過許多調(diào)查方法來確定問題根源和所需的糾正措施。
在上述情況下,不要急于馬上做出修改。首先,要重新檢查設(shè)計(jì)方案,特別是原理圖和數(shù)據(jù)手冊等設(shè)計(jì)信息。如果問題與FPGA有關(guān),則應(yīng)檢查引腳約束文件是否適合設(shè)計(jì)需要,因?yàn)橛锌赡芪募c設(shè)計(jì)不同步。
如果一時(shí)找不出什么明顯錯(cuò)誤,則不妨發(fā)揮一下互聯(lián)網(wǎng)的優(yōu)勢,去網(wǎng)上看看其他工程師是否也遇到過跟您同樣的問題。網(wǎng)上有很多論壇,您可在那里向其他設(shè)計(jì)人員提問。Programmable Planet和賽靈思論壇都可為基于FPGA的設(shè)計(jì)提供廣泛的支持。
說到底,硬件調(diào)試是工程設(shè)計(jì)中極富挑戰(zhàn),但又極具收獲的組成部分。若在設(shè)計(jì)早期階段即考慮到測試問題,并在設(shè)計(jì)中包含測試所需的各元素,就能顯著簡化調(diào)試工作。采用ChipScope、System Monitor和XADC等所有可用的資源來調(diào)試系統(tǒng),外加合理利用傳統(tǒng)測試設(shè)備,我們就能成功完成開發(fā)工作。