RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于IP核的FPGA設(shè)計方法是什么?

FPGA設(shè)計論壇 ? 2023-10-11 11:40 ? 次閱讀

前言

幾年前設(shè)計專用集成電路ASIC) 還是少數(shù)集成電路設(shè)計工程師的事, 隨著硅的集成度不斷提高,百萬門的ASIC 已不難實現(xiàn), 系統(tǒng)制造公司的設(shè)計人員正越來越多地采用ASIC 技術(shù)集成系統(tǒng)級功能(System L evel In tegrete - SL I) , 或稱片上系統(tǒng)(System on a ch ip ) , 但ASIC 設(shè)計能力跟不上制造能力的矛盾也日益突出?,F(xiàn)在設(shè)計人員已不必全部用邏輯門去設(shè)計ASIC, 類似于用集成電路( IC) 芯片在印制板上的設(shè)計,ASIC 設(shè)計人員可以應(yīng)用等效于印制板上IC 芯片的功能模塊, 稱為核(core)、或知識產(chǎn)權(quán)( IP) 宏單元進(jìn)行系統(tǒng)設(shè)計, 這就是基于核的設(shè)計方法。CPU、存儲器、總線控制器、接口電路、DSP 等都可成為核。但是ASIC 設(shè)計與印制板(PCB) 設(shè)計有很大區(qū)別,ASIC 必須用EDA 工具進(jìn)行硬件設(shè)計, 主要問題都是通過計算機(jī)仿真解決, 而不能象印制板設(shè)計那樣通過實驗調(diào)試解決, 另外ASIC 的制造還需要數(shù)量可觀(一般數(shù)萬美元) 的不可重復(fù)工程費(fèi)用(NRE)。80年代后期出現(xiàn)的現(xiàn)場可編程門陣列(FPGA ) 和復(fù)雜可編程邏輯器件(CPLD) 是ASIC 的一種, 其優(yōu)點(diǎn)是在制造廠家提供的FPGA 或CPLD 芯片上, 可由設(shè)計工程師對其進(jìn)行現(xiàn)場編程完成ASIC 的最后設(shè)計, 而不需昂貴的NRE 費(fèi)?,F(xiàn)在FPGA 的規(guī)模已達(dá)到百萬門, 如XILINX 公司的V irtex 系列, 完全可以實現(xiàn)片上系統(tǒng),其設(shè)計方法將逐步轉(zhuǎn)向核基設(shè)計。

1核的分類和特點(diǎn)

核是一種預(yù)定義的并經(jīng)過驗證的復(fù)雜功能模塊, 它可以集成到系統(tǒng)設(shè)計中。核基設(shè)計主要特點(diǎn)是可重復(fù)使用已有設(shè)計模塊, 縮短設(shè)計時間, 減少設(shè)計風(fēng)險, 通過高層的集成可望提高整個系統(tǒng)的性能。在FPGA 設(shè)計中的核分為三種, 如表1所示:
核的分類和特點(diǎn)
硬核(hard core)
預(yù)定義的已布局布線的模塊 不能修改設(shè)計, 必須采指定實現(xiàn)技術(shù) 時序性能有保證
固核(firm core)
HDL 源碼,與實現(xiàn)技術(shù)有關(guān)的網(wǎng)表 部分功能可以修改, 采用指定的實現(xiàn)技術(shù) 關(guān)鍵路徑時序可控制
軟件(soft core)
行為級或RTL 級HDL源碼 可修改設(shè)計,與具體實現(xiàn)技術(shù)無關(guān) 時序性能無保證, 由使用者確定

硬核是針對特定的實現(xiàn)技術(shù)優(yōu)化的, 它具有不能修改的結(jié)構(gòu)和布局布線, 可作為庫元件使用, 且時序性能穩(wěn)定, 但硬核不能按設(shè)計需要修改和調(diào)整時序。固核由HDL 源碼和與實現(xiàn)技術(shù)有關(guān)的網(wǎng)表組成, 使用者可按規(guī)定增減部分功能。固核的關(guān)鍵路徑時序是固定的, 但其實現(xiàn)技術(shù)不能更改, 即不同廠家FPGA 的固核不能互換使用。軟核是可綜合的硬件描述語言(HDL ) 源碼, 它與實現(xiàn)技術(shù)無關(guān), 可按使用者需要修改, 具有最大的使用靈活性, 但軟核的關(guān)鍵路徑時序性能無保證, 最終性能主要決定于使用者采用的綜合、布局布線和實現(xiàn)技術(shù)。
在FPGA 設(shè)計中, 由于不同廠家的具體實現(xiàn)技術(shù)差別較大, 完全與硬件實現(xiàn)技術(shù)無關(guān)的軟核性能受到很大限制, 而硬核缺少使用的靈活性, 因此作為軟、硬核折中的固核使用較多。以上是具有代表性的核的分類, 在實際使用中, 某種功能的核往往以各種形式出現(xiàn), 由使用者按需要選用, 軟核也不僅只有HDL 源碼, 還包括用于功能測試的行為模型和測試向量, 用于指導(dǎo)綜合的約束文件。

2核基FPGA 設(shè)計方法簡介

在核基設(shè)計中, 一個完整的設(shè)計主要由兩部分組成, 一部分是核, 如圖1中的MCU、RAM , 另一部分是用戶自己定義的邏輯電路。按系統(tǒng)設(shè)計的要求將這些功能模塊連接在一起就完成了芯片的設(shè)計,各個核或功能塊的連接目前還沒有統(tǒng)一的標(biāo)準(zhǔn), 因不同的設(shè)計而定, 一般應(yīng)滿足一定的時序要求。作為核基設(shè)計的第一步是選擇合適的核, 這主要從核的功能、性能可靠性和實現(xiàn)技術(shù)幾方面來選擇。

8463acd6-67e7-11ee-939d-92fbcf53809c.png

圖1核基設(shè)計芯片示意圖

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

847c73ec-67e7-11ee-939d-92fbcf53809c.png

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

很多核提供者都提供核的評價環(huán)境和演示、開發(fā)板,便于用戶了解核的功能和使用。
核基FPGA 設(shè)計流程如圖3所示。設(shè)計輸入部分包括:
1) 用戶設(shè)計邏輯、軟核、固核或硬核仿真模型的輸入,
2) 功能仿真,
3) 邏輯綜合。其中仿真模型是一個行為級模型, 只用作功能仿真, 不進(jìn)行綜合。

8499ba74-67e7-11ee-939d-92fbcf53809c.png

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

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

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

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

由于FPGA 的硬件技術(shù)迅速發(fā)展, 硬件資源越來越豐富, 速度越來越快, 使軟核資源利用率不高、工作速度較低等不足得到很大的彌補(bǔ), 軟核在核基設(shè)計中作用越來越大。其主要優(yōu)點(diǎn)是功能與實現(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ù)影響還是很大, 怎樣保證軟核達(dá)到預(yù)想的性能是目前需要解決的難題。國外近年提出了與實現(xiàn)技術(shù)無關(guān)的可綜合軟核的思想, 希望通過對編制軟核的HDL 源碼的某種限制, 并結(jié)合綜合工具的時序約束功能, 達(dá)到部分控制軟核性能的目的。如限制軟核只能采用嚴(yán)格的同步邏輯設(shè)計, 沒有反饋環(huán)路、多時鐘路徑、三態(tài)邏輯、鎖存器和異步置位復(fù)位觸發(fā)器, 只使用D 觸發(fā)器和邏輯門。這樣借助于綜合工具, 可有效地控制軟核關(guān)鍵路徑的延時,并預(yù)測具體實現(xiàn)技術(shù)中軟核的性能。當(dāng)然這是以犧牲一定的FPGA 邏輯資源為代價的, 但隨著硅技術(shù)的發(fā)展, 硬件資源十分豐富, 用一定的硬件資源浪費(fèi)去換取設(shè)計靈活性提高是值得的, 正如在PC 機(jī)軟件設(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ù)總線采用多路選擇器形式, 以適應(yīng)不同的實現(xiàn)技術(shù)。指令寄存器和特殊功能寄存器, 包括IO 端口寄存器、狀態(tài)寄存器、程序計數(shù)器等, 都由D 觸發(fā)器構(gòu)成, 通用寄存器采用了FPGA 的RAM 模塊, 指令譯碼和算數(shù)邏輯單元由組合邏輯門構(gòu)成。

84b2e18e-67e7-11ee-939d-92fbcf53809c.png

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

實現(xiàn)的主要功能:

(1) 指令與P IC16C57兼容。
(2) 三個8位雙向IO 口。
(3) 程序存儲器2K X 12 B IT。
(4) 內(nèi)部RAM 共32個, 7個為特殊寄存器。
(5) 二級子程序堆棧。
(6) 未實現(xiàn)指令: POT ION、SLEEP、CLRWDT。
(7) 單相時鐘。

該軟核用VHDL 語言完成設(shè)計的輸入, 用EXPRESS 綜合工具進(jìn)行綜合, 采用Xilinx 4000系列FPGA 實現(xiàn), 不包括ROM 約需2500邏輯門, 時鐘頻率5MHz, 即運(yùn)行一條指令200ns。

上述軟核在綜合、布局布線時, 只給予了簡單的時序約束, 當(dāng)需要改用其它FPGA 實現(xiàn)時, 可用綜合工具重新綜合、布局布線, 一般不需改變時序約束文件就能達(dá)到上述性能, 因此當(dāng)時鐘頻率不太高時,軟核的使用還是較為方便的。但當(dāng)時鐘頻率較高時,雖然采用了與實現(xiàn)技術(shù)無關(guān)的可綜合軟核的思想,軟核的性能還是與使用者及其采用的實現(xiàn)技術(shù)緊密相關(guān), 要真正做到與實現(xiàn)技術(shù)無關(guān)是很困難的。此時軟核的使用者必須清楚其使用的復(fù)雜性, 最好能得到軟核提供者的技術(shù)支持, 許多軟核提供者都提供這方面的服務(wù)。

4總結(jié)

隨著硅技術(shù)的發(fā)展, 集成電路芯片的硬件生產(chǎn)能力迅速提高, 幾年前FPGA、CPLD 的規(guī)模還在萬門左右, 現(xiàn)在ALTERA 公司已宣布將推出250萬門的CPLD。如此快的發(fā)展速度, 使集成電路設(shè)計能力嚴(yán)重不足, 只靠增加設(shè)計人員, 不從設(shè)計方法上改進(jìn), 提高設(shè)計的效率, 是不可能解決問題的。因此基于核的設(shè)計、設(shè)計重利用等技術(shù), 近年來在國外發(fā)展很快, 并成立了相應(yīng)的標(biāo)準(zhǔn)化組織, 如VSIA (Virtual Socket Interface Alliance) , 專門從事核或稱IP模塊的互連標(biāo)準(zhǔn)研究, 以使核的使用就象在印制板上使用集成電路塊一樣方便。一個片上系統(tǒng)的時代即將到來, 電子工程師應(yīng)跟上這個時代發(fā)展的潮流,正如以前電子管系統(tǒng)向晶體管系統(tǒng), 分離元件系統(tǒng)向集成電路系統(tǒng)發(fā)展一樣。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • dsp
    dsp
    +關(guān)注

    關(guān)注

    553

    文章

    7987

    瀏覽量

    348736
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21729

    瀏覽量

    602977
  • cpld
    +關(guān)注

    關(guān)注

    32

    文章

    1248

    瀏覽量

    169333
  • asic
    +關(guān)注

    關(guān)注

    34

    文章

    1199

    瀏覽量

    120434
  • ROM
    ROM
    +關(guān)注

    關(guān)注

    4

    文章

    563

    瀏覽量

    85731
  • soc
    soc
    +關(guān)注

    關(guān)注

    38

    文章

    4161

    瀏覽量

    218160
  • Xilinx
    +關(guān)注

    關(guān)注

    71

    文章

    2167

    瀏覽量

    121299
  • IP
    IP
    +關(guān)注

    關(guān)注

    5

    文章

    1701

    瀏覽量

    149502
  • vhdl
    +關(guān)注

    關(guān)注

    30

    文章

    817

    瀏覽量

    128119
  • 現(xiàn)場可編程門陣列

    關(guān)注

    1

    文章

    20

    瀏覽量

    4729

原文標(biāo)題:基于IP核的FPGA設(shè)計方法是什么?

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    關(guān)于FPGA IP

    對于深入學(xué)習(xí)使用FPGA的小伙伴們,特別是一些復(fù)雜的、大規(guī)模的設(shè)計應(yīng)用,適宜的IP核對開發(fā)能起到事半功倍的作用。IP的概念與我們sdk里庫的概念相似。
    發(fā)表于 04-29 21:01

    FPGAIP使用技巧

    FPGAIP使用技巧主要包括以下幾個方面: 理解IP的概念和特性 : IP
    發(fā)表于 05-27 16:13

    #FPGA點(diǎn)撥 生成FIFO的IP

    fpgaIP
    電子技術(shù)那些事兒
    發(fā)布于 :2022年10月12日 21:52:56

    #FPGA點(diǎn)撥 如何驗證帶有IP的代碼

    fpgaIP代碼
    電子技術(shù)那些事兒
    發(fā)布于 :2022年10月12日 21:53:35

    FPGA IP的相關(guān)問題

    我用的是xinlinx spartan6 FPGA,我想知道它的IPRAM是與FPGA獨(dú)立的,只是集成在了一起呢,還是占用了FPGA的資源
    發(fā)表于 01-10 17:19

    LabVIEW FPGA CORDIC IP的arctan使用方法

    使用LabVIEW FPGA模塊中的CORDIC IP,配置arctan(X/Y)算法,配置完成之后,IP只有一個輸入。我參考網(wǎng)上VHD
    發(fā)表于 09-10 20:07

    基于IPFPGA設(shè)計方法是什么?

    的分類和特點(diǎn)是什么?基于IPFPGA設(shè)計方法是什么?
    發(fā)表于 05-08 07:07

    FPGAIP的生成

    FPGAIP的生成,簡單介紹Quartus II生成IP的基本操作,簡單實用挺不錯的資料
    發(fā)表于 11-30 17:36 ?11次下載

    基于FPGAIP設(shè)計技術(shù)

    FPGAIP設(shè)計技術(shù)的系列資料,大家可以收集看下,這些都是我看過過濾后留下的,感覺不錯,希望對大家有幫助
    發(fā)表于 11-30 17:49 ?6次下載

    基于IPFPGA設(shè)計方法

    用戶邏輯和軟的綜合應(yīng)加合理的時序約束, 以滿足設(shè)計的要求, 約束條件可由綜合文件(Synthesis Script ) 給出。完成設(shè)計輸入后進(jìn)入設(shè)計實現(xiàn)階段,在此階段固的網(wǎng)表和設(shè)計約束文件
    的頭像 發(fā)表于 06-02 10:45 ?3541次閱讀
    基于<b class='flag-5'>IP</b><b class='flag-5'>核</b>的<b class='flag-5'>FPGA</b>設(shè)計<b class='flag-5'>方法</b>

    FPGA實現(xiàn)基于Vivado的BRAM IP的使用

    ? Xilinx公司的FPGA中有著很多的有用且對整個工程很有益處的IP,比如數(shù)學(xué)類的IP,數(shù)字信號處理使用的
    的頭像 發(fā)表于 12-29 15:59 ?1.2w次閱讀

    ip設(shè)計電路特點(diǎn)

    IP目前的IP設(shè)計已成為目前FPGA設(shè)計的主流方法之一,應(yīng)用專用集成電路(ASIC)或者可編輯邏輯器件(
    發(fā)表于 10-01 09:08 ?2732次閱讀

    fpga ip是什么 常用fpga芯片的型號

     FPGA IP(Intellectual Property core)是指在可編程邏輯器件(Field-Programmable Gate Array,FPGA)中使用的可復(fù)用的設(shè)
    的頭像 發(fā)表于 07-03 17:13 ?6703次閱讀

    FPGA學(xué)習(xí)筆記:ROM IP的使用方法

    上一篇介紹了常用的鎖相環(huán)IP,這一節(jié)將介紹一種較為常用的 存儲類IP ——ROM的使用方法。ROM是 只讀存儲器 (Read-Only Memory),顧名思義,我們只能讀出事先存放
    的頭像 發(fā)表于 08-22 15:06 ?4956次閱讀
    <b class='flag-5'>FPGA</b>學(xué)習(xí)筆記:ROM <b class='flag-5'>IP</b><b class='flag-5'>核</b>的使用<b class='flag-5'>方法</b>

    FPGA實現(xiàn)基于Vivado的BRAM IP的使用

    Xilinx公司的FPGA中有著很多的有用且對整個工程很有益處的IP,比如數(shù)學(xué)類的IP,數(shù)字信號處理使用的
    的頭像 發(fā)表于 12-05 15:05 ?1684次閱讀
    RM新时代网站-首页