現場可編程門陣列(FPGA)設計
可讀性好的設計在調試、測試和維護上將節省大量的時間,已經經過驗證的電路很容易重用,節省開發時間。
完備的開發文檔
為了保證FPGA設計的可重復性,設計文檔除了詳盡的系統設計說明之外,還必須包括一些其他的必要信息,比如軟件開發系統的版本號、軟件的各個選項及參數設置。另外,各種操作和修改的過程都應該以文檔的方式記錄下來。如果不這樣做,最終的實現就會因人而異、因開發系統而異,整個系統的性能也變得不穩定,甚至無法評估。
FPGA設計的基本原則
在EDACN的FPGA技術論壇上,一些經驗豐富的設計人員總結了FPGA設計中幾條非常重要的基本原則,現列舉如下,供大家參考借鑒。
硬件資源與處理能力的折衷
在設計中,可以通過并行處理來提高處理能力,而并行的硬件將消耗更多的FPGA內部資源;也可以通過模塊復用來降低硬件資源的消耗,帶來的結果就是系統運行速度的降低。在具體設計中,應該根據系統性能指標的要求,在資源消耗和處理能力之間取得合理的折衷,在保證系統功能和性能的同時降低資源消耗,從而降低功耗和成本。
硬件思想
應該明確FPGA邏輯設計所采用的硬件描述語言與軟件語言(如C,C++等)是有本質區別的。在使用硬件描述語言進行FPGA設計時,不應該片面追求代碼的整潔,簡短。而正確的編碼方法是:首先要對所需實現的硬件電路的結構與連接有十分清晰的理解和設想,然后再用適當的HDL語句表達出來即可。
系統原則
在FPGA設計中,應該對設計的全局在宏觀上進行合理的安排,比如時鐘域、模塊復用、約束、面積、速度等問題。這些系統上的考慮不僅關系到是否能夠最大程度地發揮項目成員的協同設計能力,而且直接決定著設計的綜合、實現效果和相關的操作時間。
模塊化設計是系統原則的一個很好的體現,它不僅僅是一種設計工具,它更是一種設計思路、設計方法,它是自頂向下、模塊劃分、分工協作設計思路的集中體現,是當代大型復雜系統的推薦設計方法,目前很多的EDA廠商都提高了模塊化設計工具。
同步設計原則
目前的商用FPGA都是面向同步電路設計而優化的,其上實現異步電路并不能充分體現出異步電路應有的優勢。而同步時序電路可以很好地避免毛刺,因此,提倡在設計中全部使用同步邏輯電路。
FPGA設計新發展
隨著FPGA的門數、速度、結構復雜度、各種IP核供應等方面的不斷進步、數字系統設計規模超越幾百萬門,更多的設計者將混合使用系統級和平臺級的FPGA器件及其內部嵌入的處理器、存儲器或數字信號處理器。FPGA設計的要求也必須作出相應的變化,從而使設計者能夠使用FPGA器件實現更復雜、更高速的系統。
在通常的FPGA設計中,首先是整個系統進行架構,然后再把硬件部分設計交給硬件工程師進行寄存器轉移級(RTL)設計,軟件部分設計交給軟件工程師采用C++語言等進行編程。但隨著設計規模的擴大,芯片復雜度及性能需求的提高,使用傳統方法將面臨很多困難。因此,FPGA模塊化設計和系統級設計概念正在不斷得到發展和改進。
分層次的模塊化設計方法
分層次的、基于模塊的設計方法將系統分為多個層次,采用模塊作為基本設計單元,實現系統的開發和設計。在這種設計流程中,設計者面對的是各種不同層次的功能模塊,這樣就為復雜的幾百萬門級系統的設計和處理提供了更高的抽象級別以及更靈活的實現方式。
分層次的模塊化設計方法具有很多優點。滿足了縮短市場響應時間,同時降低成本的需求。首先,基于模塊的設計方法在設計實現中引入了最大程度的并行性,使頂層設計和單個模塊設計能同時進行;其次,這種方法使得設計者更容易進行設計復用,包括設計模塊和IP核的復用。
電子系統級(ESL)設計與驗證方法學
ESL設計是能夠讓電子系統設計工程師以緊密耦合方式開發、優化和驗證復雜系統架構和嵌入式軟件的一套方法學,它還提供寄存器傳輸級實現的驗證基礎。
ESL的目標是系統級模型的協同軟硬件設計。在過去幾年中,ESL設計被認為是一個很難達到的目標。然而目前,業界在ESL設計上已經取得了一定的進展。隨著SystemC已提交給IEEE P1666工作組,SystemC如今已被接受并成為廣泛使用的系統級建模標準。目前已有許多世界領先的系統和半導體公司采用ESL設計,為產品提供必需的先進功能和高性能。電路規模越大、復雜度越高,ESL設計方法和工具所能顯示的優勢就越高
評論