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