FPGA設(shè)計(jì)的注意事項(xiàng)
不管你是一名邏輯設(shè)計(jì)師、硬件工程師或系統(tǒng)工程師,甚或擁有所有這些頭銜,只要你在任何一種高速和多協(xié)議的復(fù)雜系統(tǒng)中使用了FPGA,你就很可能需要努力解決好器件配置、電源管理、IP集成、信號(hào)完整性和其他的一些關(guān)鍵設(shè)計(jì)問(wèn)題。不過(guò),你不必獨(dú)自面對(duì)這些挑戰(zhàn),因?yàn)樵诋?dāng)前業(yè)內(nèi)領(lǐng)先的FPGA公司里工作的應(yīng)用工程師每天都會(huì)面對(duì)這些問(wèn)題,而且他們已經(jīng)提出了一些將令你的設(shè)計(jì)工作變得更輕松的設(shè)計(jì)指導(dǎo)原則和解決方案。
本文引用地址:http://m.butianyuan.cn/article/151939.htmI/O信號(hào)分配
可提供最多的多功能引腳、I/O標(biāo)準(zhǔn)、端接方案和差分對(duì)的FPGA在信號(hào)分配方面也具有最復(fù)雜的設(shè)計(jì)指導(dǎo)原則。盡管Altera的FPGA器件沒(méi)有設(shè)計(jì)指導(dǎo)原則(因?yàn)樗鼘?shí)現(xiàn)起來(lái)比較容易),但賽靈思的FPGA設(shè)計(jì)指導(dǎo)原則卻很復(fù)雜。但不管是哪一種情況,在為I/O引腳分配信號(hào)時(shí),都有一些需要牢記的共同步驟:
1. 使用一個(gè)電子數(shù)據(jù)表列出所有計(jì)劃的信號(hào)分配,以及它們的重要屬性,例如I/O標(biāo)準(zhǔn)、電壓、需要的端接方法和相關(guān)的時(shí)鐘。
2. 檢查制造商的塊/區(qū)域兼容性準(zhǔn)則。
3. 考慮使用第二個(gè)電子數(shù)據(jù)表制訂FPGA的布局,以確定哪些管腳是通用的、哪些是專(zhuān)用的、哪些支持差分信號(hào)對(duì)和全局及局部時(shí)鐘、哪些需要參考電壓。
4. 利用以上兩個(gè)電子數(shù)據(jù)表的信息和區(qū)域兼容性準(zhǔn)則,先分配受限制程度最大的信號(hào)到引腳上,最后分配受限制最小的。例如,你可能需要先分配串行總線和時(shí)鐘信號(hào),因?yàn)樗鼈兺ǔV环峙涞揭恍┨囟ㄒ_。
5. 按照受限制程度重新分配信號(hào)總線。在這個(gè)階段,可能需要仔細(xì)權(quán)衡同時(shí)開(kāi)關(guān)輸出(SSO)和不兼容I/O標(biāo)準(zhǔn)等設(shè)計(jì)問(wèn)題,尤其是當(dāng)你具有很多個(gè)高速輸出或使用了好幾個(gè)不同的I/O標(biāo)準(zhǔn)時(shí)。如果你的設(shè)計(jì)需要局部/區(qū)域時(shí)鐘,你將可能需要使用高速總線附近的管腳,最好提前記住這個(gè)要求,以免最后無(wú)法為其安排最合適的引腳。如果某個(gè)特定塊所選擇的I/O標(biāo)準(zhǔn)需要參考電壓信號(hào),記住先不要分配這些引腳。差分信號(hào)的分配始終要先于單端信號(hào)。如果某個(gè)FPGA提供了片內(nèi)端接,那么它也可能適用于其他兼容性規(guī)則。
6. 在合適的地方分配剩余的信號(hào)。
在這個(gè)階段,考慮寫(xiě)一個(gè)只包含端口分配的HDL文件。然后通過(guò)使用供應(yīng)商提供的工具或使用一個(gè)文本編輯器手動(dòng)創(chuàng)建一個(gè)限制文件,為I/O標(biāo)準(zhǔn)和SSO等增加必要的支持信息。準(zhǔn)備好這些基本文件后,你可以運(yùn)行布局布線工具來(lái)確認(rèn)是否忽視了一些準(zhǔn)則或者做了一個(gè)錯(cuò)誤的分配。
這將使你在設(shè)計(jì)的初始階段就和布局工程師一起工作,共同規(guī)劃PCB的走線、冗余規(guī)劃、散熱問(wèn)題和信號(hào)完整性。FPGA工具可能可以在這些方面提供幫助,并協(xié)助你解決這些問(wèn)題,因此你必須確保了解你的工具包的功能。
你咨詢一位布局專(zhuān)家的時(shí)間越晚,你就越有可能需要去處理一些復(fù)雜的問(wèn)題和設(shè)計(jì)反復(fù),而這些可能可以通過(guò)一些前期分析加以避免。一旦你實(shí)現(xiàn)了滿意的信號(hào)分配,你就要用限制文件鎖定它們。
圖:(a) 未采用Fusion架構(gòu)的典型系統(tǒng)板結(jié)構(gòu);(b) 采用Fusion架構(gòu)的典型系統(tǒng)板結(jié)構(gòu)。 |
信號(hào)完整性
大多數(shù)先進(jìn)FPGA能夠處理速度為數(shù)百兆赫茲的并行總線和具有工作在千兆赫茲范圍的串行接口。以這么快的速度工作時(shí),你需要了解信號(hào)完整性的原理,因?yàn)楦哳l信號(hào)的處理會(huì)給我們精確簡(jiǎn)單的數(shù)字世界帶來(lái)一連串模擬設(shè)計(jì)問(wèn)題。
安排一些時(shí)間閱讀FPGA供應(yīng)商提供的文獻(xiàn)。即使你對(duì)某個(gè)器件或者供應(yīng)商的信息已經(jīng)爛熟于心,也有必要參考其他供應(yīng)商提供的文檔,因?yàn)椴煌镜奈臋n往往有不同的見(jiàn)解。你將會(huì)發(fā)現(xiàn)在很多問(wèn)題上不同的供應(yīng)商擁有不同的觀點(diǎn),如什么會(huì)產(chǎn)生高速信號(hào)、切換信號(hào)之間可以存在多少時(shí)延而仍然可以認(rèn)為它們是同時(shí)的等等。FPGA供應(yīng)商的工具通常可以很好地執(zhí)行一些基本的信號(hào)完整性分析,因此你必須完全了解你所獲得的工具包的所有潛能。
此外,目前市場(chǎng)上有幾百種關(guān)于信號(hào)完整性和降噪的書(shū)。如果你是個(gè)新手或者需要一個(gè)進(jìn)修課程,你可以考慮閱讀Douglas Brooks編寫(xiě)的“信號(hào)完整性問(wèn)題和PCB設(shè)計(jì)”。如果需要進(jìn)行更深入的探討,可以閱讀Howard Johnson編寫(xiě)的“高速數(shù)字設(shè)計(jì)”。
FPGA可能會(huì)由于太多的高速SSO而對(duì)系統(tǒng)中的信號(hào)(或其它FPGA信號(hào))帶來(lái)嚴(yán)重破壞,因?yàn)檫@會(huì)導(dǎo)致稱(chēng)為同時(shí)切換噪聲(SSN)的噪聲。SSN也叫做地反彈或VCC反彈,對(duì)于單端標(biāo)準(zhǔn),SSN是在輸出由低到高時(shí)提供瞬態(tài)電流和由高到低時(shí)吸收瞬態(tài)電流的過(guò)程中,由多個(gè)輸出驅(qū)動(dòng)器同時(shí)切換和導(dǎo)致器件電壓與系統(tǒng)電壓之間的變化而引起的。
在高到低的轉(zhuǎn)換引起地反彈時(shí),由低到高轉(zhuǎn)換也會(huì)導(dǎo)致VCC下降。由于電容通常安放在VCC和接地層之間,因此SSN典型地存在于這兩個(gè)地方。由低到高轉(zhuǎn)變時(shí)地反彈也有可能出現(xiàn)。
于是,SSO變成了干擾信號(hào),它會(huì)產(chǎn)生可能耦合到鄰近信號(hào)的噪聲。對(duì)于某個(gè)區(qū)域而言太多SSO可能會(huì)導(dǎo)致電源的擾動(dòng)。由于以下2個(gè)原因,SSO已經(jīng)變成一個(gè)必須認(rèn)真對(duì)待的問(wèn)題:1. 切換時(shí)間大幅下降;2. 過(guò)孔尺寸和走線寬度的減小加上更大的板厚度已經(jīng)推高了板極電感,這將大幅增加出現(xiàn)地反彈的可能性。更大的負(fù)載電容也可能導(dǎo)致SSN,雖然程度上會(huì)輕一點(diǎn)。當(dāng)有效VCC低于期望值,從而導(dǎo)致I/O緩存的轉(zhuǎn)換速度低于期望速度時(shí),SSN也可能導(dǎo)致時(shí)序問(wèn)題變得突出起來(lái)。
評(píng)論