技術人員在FPGA設計時需注意的方方面面
不管你是一名邏輯設計師、硬件工程師或系統(tǒng)工程師,甚或擁有所有這些頭銜,只要你在任何一種高速和多協(xié)議的復雜系統(tǒng)中使用了FPGA,你就很可能需要努力解決好器件配置、電源管理、IP集成、信號完整性和其他的一些關鍵設計問題。不過,你不必獨自面對這些挑戰(zhàn),因為在當前業(yè)內(nèi)領先的FPGA公司里工作的應用工程師每天都會面對這些問題,而且他們已經(jīng)提出了一些將令你的設計工作變得更輕松的設計指導原則和解決方案。
I/O信號分配
可提供最多的多功能引腳、I/O標準、端接方案和差分對的FPGA在信號分配方面也具有最復雜的設計指導原則。盡管Altera的FPGA器件沒有設計指導原則(因為它實現(xiàn)起來比較容易),但賽靈思的FPGA設計指導原則卻很復雜。但不管是哪一種情況,在為I/O引腳分配信號時,都有一些需要牢記的共同步驟:
1. 使用一個電子數(shù)據(jù)表列出所有計劃的信號分配,以及它們的重要屬性,例如I/O標準、電壓、需要的端接方法和相關的時鐘。
2. 檢查制造商的塊/區(qū)域兼容性準則。
3. 考慮使用第二個電子數(shù)據(jù)表制訂FPGA的布局,以確定哪些管腳是通用的、哪些是專用的、哪些支持差分信號對和全局及局部時鐘、哪些需要參考電壓。
4. 利用以上兩個電子數(shù)據(jù)表的信息和區(qū)域兼容性準則,先分配受限制程度最大的信號到引腳上,最后分配受限制最小的。例如,你可能需要先分配串行總線和時鐘信號,因為它們通常只分配到一些特定引腳。
5. 按照受限制程度重新分配信號總線。在這個階段,可能需要仔細權衡同時開關輸出(SSO)和不兼容I/O標準等設計問題,尤其是當你具有很多個高速輸出或使用了好幾個不同的I/O標準時。如果你的設計需要局部/區(qū)域時鐘,你將可能需要使用高速總線附近的管腳,最好提前記住這個要求,以免最后無法為其安排最合適的引腳。如果某個特定塊所選擇的I/O標準需要參考電壓信號,記住先不要分配這些引腳。差分信號的分配始終要先于單端信號。如果某個FPGA提供了片內(nèi)端接,那么它也可能適用于其他兼容性規(guī)則。
6. 在合適的地方分配剩余的信號。
在這個階段,考慮寫一個只包含端口分配的HDL文件。然后通過使用供應商提供的工具或使用一個文本編輯器手動創(chuàng)建一個限制文件,為I/O標準和SSO等增加必要的支持信息。準備好這些基本文件后,你可以運行布局布線工具來確認是否忽視了一些準則或者做了一個錯誤的分配。
這將使你在設計的初始階段就和布局工程師一起工作,共同規(guī)劃PCB的走線、冗余規(guī)劃、散熱問題和信號完整性。FPGA工具可能可以在這些方面提供幫助,并協(xié)助你解決這些問題,因此你必須確保了解你的工具包的功能。
你咨詢一位布局專家的時間越晚,你就越有可能需要去處理一些復雜的問題和設計反復,而這些可能可以通過一些前期分析加以避免。一旦你實現(xiàn)了滿意的信號分配,你就要用限制文件鎖定它們。
信號完整性
大多數(shù)先進FPGA能夠處理速度為數(shù)百兆赫茲的并行總線和具有工作在千兆赫茲范圍的串行接口。以這么快的速度工作時,你需要了解信號完整性的原理,因為高頻信號的處理會給我們精確簡單的數(shù)字世界帶來一連串模擬設計問題。
安排一些時間閱讀FPGA供應商提供的文獻。即使你對某個器件或者供應商的信息已經(jīng)爛熟于心,也有必要參考其他供應商提供的文檔,因為不同公司的文檔往往有不同的見解。你將會發(fā)現(xiàn)在很多問題上不同的供應商擁有不同的觀點,如什么會產(chǎn)生高速信號、切換信號之間可以存在多少時延而仍然可以認為它們是同時的等等。FPGA供應商的工具通??梢院芎玫貓?zhí)行一些基本的信號完整性分析,因此你必須完全了解你所獲得的工具包的所有潛能。
此外,目前市場上有幾百種關于信號完整性和降噪的書。如果你是個新手或者需要一個進修課程,你可以考慮閱讀Douglas Brooks編寫的“信號完整性問題和PCB設計”。如果需要進行更深入的探討,可以閱讀Howard Johnson編寫的“高速數(shù)字設計”。
評論