現場可編程門陣列(FPGA)設計
設計處理
確定設計描述的功能無誤后,就可以使用EDA軟件對設計描述和相應的性能約束進行處理,設計處理是FPGA設計開發中的重要環節。在設計處理的過程中,EDA軟件對設計輸入文件進行語法和設計規則檢查、邏輯簡化、優化、綜合、適配、布局布線、時間參數提取,最后產生器件編程用的數據文件。
首先,EDA軟件對設計輸入進行語法和設計規則檢查,然后簡化和優化邏輯方程,通過綜合和適配將優化后的設計映射到器件相應的邏輯單元中,生成網表文件。布局布線將映射產生的物理單元在目標器件上進行放置和連接,并提取相應的時間參數。時間參數提取將生成當前設計的含有時間參數的網表,用于時序仿真。另外,時間參數提取輸出的時序報告可以反映當前設計是否滿足時序約束。
設計處理的效果主要取決于設計者的風格和綜合工具的能力。使用EDA軟件進行設計處理時需要注意:首先,最優化的目標可以是速度、資源、功耗等,這些指標時相互制約的。其次,目前綜合器所支持的硬件描述語言的語法是有限的,過于抽象的語法還無法綜合。因此,設計者應該具有良好的硬件描述語言編碼風格。
時序仿真
時序仿真又稱為后仿真或延時仿真,是高速FPGA設計過程中必不可少的仿真驗證階段。由于不同FPGA器件內部的延時不一樣,不同的布局布線方案也將影響電路各部分的延時,這些延時可能會導致系統和電路功能的變化。因此在設計處理以后,需要對系統和各模塊進行時序仿真,分析時序關系,檢查和消除競爭冒險、并對器件的實際工作性能進行估計。
由于時序仿真中需要參考的參數非常多,因此將比功能仿真花費的時間長。時序仿真中使用了電路延時的最壞情況,因此,通過時序仿真驗證之后的設計一般都能夠在實際器件上正確運行。
器件編程與測試
器件編程也可以稱為配置。時序仿真完成之后,就可以使用EDA軟件生成FPGA器件編程時所需的數據文件。器件的編程就是將編程數據下載到相應的FPGA器件中去。
器件編程需要滿足一定的條件,如編程電壓、編程時序、編程算法等。一次性編程的FPGA需要專用的編程器完成器件的編程工作,基于SRAM的FPGA可以由EPROM或其他存儲器件進行配置。在線可編程的FPGA器件不需要專門的編程器,僅需要一根編程下載電纜和相應的編程軟件。
器件在編程結束后,還可以對器件進行校驗、加密等操作工作。對于支持JTAG技術,具有邊界掃描測試BST(Boundary-Scan Testing)能力和在線編程能力的器件來說,編程和測試過程都比較方便。
FPGA設計的要求
作為一個優秀的FPGA設計,必須具有以下幾方面特征:
滿足系統的設計規范和性能要求
滿足用戶對系統性能指標和設計規范的需求,是一個FPGA設計成功的最基本要求。
源代碼可讀性高
可讀性好的FPGA設計(原理圖或硬件描述語言描述的源文件)應該包含有足夠的說明和注釋信息,比如,各個模塊的說明、每張原理圖之間的關系、硬件描述的模塊之間的互連關系等等。另外,狀態機設計的文檔應該包括狀態圖或功能描述,布爾方程的實現過程也應該寫在源代碼中。
評論