FPGA的硬件設(shè)計不同于DSP和ARM系統(tǒng),比較靈活和自由。只要設(shè)計好專用管腳的電路,通用I/O的連接可以自己定義。因此,F(xiàn)PGA的電路設(shè)計中會有一些特殊的技巧可以參考。
2.3.1 管腳兼容性設(shè)計
前面的內(nèi)容提到過,F(xiàn)PGA在芯片選項的時候要盡量選擇兼容性好的封裝。那么,在硬件電路設(shè)計時,就要考慮如何兼容多種芯片的問題。
例如,紅色颶風(fēng)II代-Altera的開發(fā)板就是兼容了EP1C6Q240和EP1C12Q240兩個型號的FPGA。這兩個芯片有12個I/O管腳定義是不同的。在EP1C6Q240芯片上,這12個I/O是通用I/O管腳,而在EP1C12Q240芯片上,它們是電源和地信號。
為了能保證兩個芯片在相同的電路板上都能工作,我們就必須按照EP1C12Q240的要求來把對應(yīng)管腳連接到電源和地平面。因為,通用的I/O可以連接到電源或者地信號,但是電源或者地信號卻不能作為通用I/O。
在相同封裝、兼容多個型號FPGA的設(shè)計中,一般的原則就是按照通用I/O數(shù)量少的芯片來設(shè)計電路。
2.3.2 根據(jù)電路布局來分配管腳功能
FPGA的通用I/O功能定義可以根據(jù)需要來指定。在電路圖設(shè)計的流程中,如果能夠根據(jù)PCB的布局來對應(yīng)的調(diào)整原理圖中FPGA的管腳定義,就可以讓后期的布線工作更順利。
例如,如圖2.1所示,SDRAM芯片在FPGA的左側(cè)。在FPGA的管腳分配的時候,應(yīng)該把與SDRAM相關(guān)的信號安排在FPGA的左側(cè)管腳上。這樣,可以保證SDRAM信號的布線距離最短,實現(xiàn)最佳的信號完整性。
2.3.3 預(yù)留測試點
目前FPGA提供的I/O數(shù)量越來越多,除了能夠滿足設(shè)計需要的I/O外,還有一些剩余I/O沒有定義。這些I/O可以作為預(yù)留的測試點來使用。
例如,在測試與FPGA相連的SDRAM工作時序狀態(tài)的時候,直接用示波器測量SDRAM相關(guān)管腳會很困難。而且SDRAM工作頻率較高,直接測量會引入額外的阻抗,影響SDRAM的正常工作。
如果FPGA有預(yù)留的測試點,那么可以將要測試的信號從FPGA內(nèi)部指定到這些預(yù)留的測試點上。這樣既能測試到這些信號的波形,又不會影響SDRAM的工作。
如果電路測試過程中發(fā)現(xiàn)需要飛線才能解決問題,那么這些預(yù)留的測試點還可以作為飛線的過渡點。