新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應用 > 基于IP核的FPGA 設(shè)計方法

基于IP核的FPGA 設(shè)計方法

作者: 時間:2012-11-01 來源:網(wǎng)絡(luò) 收藏

一個核首先要有核的功能描述文件, 用于說明該核的功能、時序要求等, 如圖2所示, 其次還要包括設(shè)計實現(xiàn)和設(shè)計驗證兩個方面的文件, 即不但要有實現(xiàn)核功能的寄存器傳輸級(RTL ) 源碼或網(wǎng)表, 還要有用于核實現(xiàn)后驗證邏輯功能正確性的仿真模型和測試向量。硬核的實現(xiàn)較簡單, 類似于PCB 設(shè)計中IC 芯片的使用, 軟核的使用情況較為復雜, 實現(xiàn)后的性能與使用者的具體實現(xiàn)方式有關(guān), 為保證軟核的性能, 軟核提供者一般還提供綜合描述文件, 用于指導軟核的綜合, 固核的使用介于上述二者之間。

核由設(shè)計實現(xiàn)和設(shè)計驗證組成

圖2 核由設(shè)計實現(xiàn)和設(shè)計驗證組成 很多核提供者都提供核的評價環(huán)境和演示、開發(fā)板,便于用戶了解核的功能和使用。

核基 設(shè)計流程如圖3所示。設(shè)計輸入部分包括:

1) 用戶設(shè)計邏輯、軟核、固核或硬核仿真模型的輸入,

2) 功能仿真,

3) 邏輯綜合。其中仿真模型是一個行為級模型, 只用作功能仿真, 不進行綜合。

核基FPGA 設(shè)計流程

圖3 核基 設(shè)計流程

設(shè)計的輸入一般是采用HDL 語言, 如VHDL、V erilog 等, 輸入完設(shè)計和仿真模型后就可進行功能仿真, 當功能仿真完成后, 就可進行邏輯電路的綜合。

用戶邏輯和軟核的綜合應加合理的時序約束, 以滿足設(shè)計的要求, 約束條件可由綜合文件(Synthesis Script ) 給出。完成設(shè)計輸入后進入設(shè)計實現(xiàn)階段,在此階段固核的網(wǎng)表和設(shè)計約束文件, 用戶綜合出的網(wǎng)表和設(shè)計約束文件一起輸入給 布局布線工具, 完成FPGA 的最后實現(xiàn), 并產(chǎn)生時序文件用于時序仿真和功能驗證。最后進入設(shè)計驗證階段,用靜態(tài)時序分析判定設(shè)計是否達到性能要求, 對比功能仿真結(jié)果和時序仿真結(jié)果, 驗證設(shè)計的時序和功能是否正確。若設(shè)計的性能不能達到要求, 需找出影響性能的關(guān)鍵路徑, 并返回延時信息, 修改約束文件, 對設(shè)計進行重新綜合和布局布線, 如此重復多次直到滿足設(shè)計要求

為止。若重復多次還不能達到設(shè)計要求, 則需修改設(shè)計或采用其它實現(xiàn)技術(shù)。

3 軟核的設(shè)計及使用

由于FPGA 的硬件技術(shù)迅速發(fā)展, 硬件資源越來越豐富, 速度越來越快, 使軟核資源利用率不高、工作速度較低等不足得到很大的彌補, 軟核在核基設(shè)計中作用越來越大。其主要優(yōu)點是功能與實現(xiàn)技術(shù)無關(guān), 使用靈活。這樣我們可以很方便地在不同的實現(xiàn)技術(shù)下使用軟核。如用X IL INX FPGA 實現(xiàn)的軟核, 不需改動設(shè)計, 重新綜合后就可以用ACTEL FPGA 實現(xiàn), 設(shè)計實現(xiàn)的靈活性大為提高。但軟核的性能受實現(xiàn)技術(shù)影響還是很大, 怎樣保證軟核達到預想的性能是目前需要解決的難題。國外近年提出了與實現(xiàn)技術(shù)無關(guān)的可綜合軟核的思想, 希望通過對編制軟核的HDL 源碼的某種限制, 并結(jié)合綜合工具的時序約束功能, 達到部分控制軟核性能的目的。如限制軟核只能采用嚴格的同步邏輯設(shè)計, 沒有反饋環(huán)路、多時鐘路徑、三態(tài)邏輯、鎖存器和異步置位復位觸發(fā)器, 只使用D 觸發(fā)器和邏輯門。這樣借助于綜合工具, 可有效地控制軟核關(guān)鍵路徑的延時,并預測具體實現(xiàn)技術(shù)中軟核的性能。當然這是以犧牲一定的FPGA 邏輯資源為代價的, 但隨著硅技術(shù)的發(fā)展, 硬件資源十分豐富, 用一定的硬件資源浪費去換取設(shè)計靈活性提高是值得的, 正如在PC 機軟件設(shè)計中, 現(xiàn)在已很少有人過多考慮程序占用的存儲空間一樣。

本文作者按照上述軟核設(shè)計思想, 采用全同步邏輯設(shè)計, 只使用D 觸發(fā)器和邏輯門, 實現(xiàn)了與PIC16C57兼容的8位微控制器的設(shè)計。頂層結(jié)構(gòu)如圖4, 采用哈佛結(jié)構(gòu), 取指和指令執(zhí)行并行工作, 除少數(shù)幾條程序跳轉(zhuǎn)指令外, 全部為單時鐘周期指令。程序存儲器ROM 一般放在FPGA 外, 若ROM 中指令較少, 也可放在FPGA 內(nèi)。數(shù)據(jù)總線采用多路選擇器形式, 以適應不同的實現(xiàn)技術(shù)。指令寄存器和特殊功能寄存器, 包括IO 端口寄存器、狀態(tài)寄存器、程序計數(shù)器等, 都由D 觸發(fā)器構(gòu)成, 通用寄存器采用了FPGA 的RAM 模塊, 指令譯碼和算數(shù)邏輯單元由組合邏輯門構(gòu)成。

8位微控制器頂層結(jié)構(gòu)圖

圖4 8位微控制器頂層結(jié)構(gòu)圖

fpga相關(guān)文章:fpga是什么




關(guān)鍵詞: FPGA IP核 設(shè)計方法

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉