<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

基于IP核的FPGA 設計方法

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

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

核由設計實(shí)現和設計驗證組成

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

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

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

2) 功能仿真,

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

核基FPGA 設計流程

圖3 核基 設計流程

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

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

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

3 軟核的設計及使用

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

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

8位微控制器頂層結構圖

圖4 8位微控制器頂層結構圖

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




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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>