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

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

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

vivado調(diào)用IP核詳細介紹

FPGA學習交流 ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-05-28 11:42 ? 次閱讀

大家好,又到了每日學習的時間了,今天咱們來聊一聊vivado 調(diào)用IP核。
首先咱們來了解一下vivado的IP核,IP核(IP Core):Vivado中有很多IP核可以直接使用,例如數(shù)學運算(乘法器、除法器、浮點運算器等)、信號處理(FFT、DFT、DDS等)。IP核類似編程中的函數(shù)庫(例如C語言中的printf()函數(shù)),可以直接調(diào)用,非常方便,大大加快了開發(fā)速度。




使用Verilog調(diào)用IP核

這里簡單舉一個乘法器的IP核使用實例,使用Verilog調(diào)用。首先新建工程,新建demo.v頂層模塊。

一、添加IP核

1. 點擊Flow Navigator中的IP Catalog。
113530xvrr2hrdnlrnnxl2.png

2. 選擇Math Functions下的Multiplier,即乘法器,并雙擊。
113531zx7g1pzzpx6up5xn.png

3. 將彈出IP核的參數(shù)設(shè)置對話框。點擊左上角的Documentation,可以打開這個IP核的使用手冊查閱。這里直接設(shè)置輸入信號A和B均為4位無符號型數(shù)據(jù),其他均為默認值,點擊OK。
113532ne96z1h1voh1r2vx.png

4. 稍后彈出的窗口,點擊Generate
113532me3rr4iww46rgz4r.png

二、調(diào)用IP核

1. 選擇IP Sources,展開并選擇mult_gen_0 - Instantiation Template - mult_gen_0.veo,可以打開實例化模板文件。如圖,這段代碼就是使用Verilog調(diào)用這個IP核的示例代碼。
113531crd7jfozbzan4nb4.png

2. 將示例代碼復制到demo.v文件中,并進行修改,最終如下。代碼中聲明了無符號型的4位變量a和b,分別賦初值7、8,作為乘數(shù)使用;無符號型的8位變量p,用于保存計算結(jié)果。clk為Testbench編寫的周期20ns的時鐘信號;mult_gen_0 mul(...)語句實例化了mult_gen_0類型的模塊對象mul,并將clk、a、b、p作為參數(shù)傳入。
113531b78ndk752xn6ndyy.png


三、行為仿真驗證

以demo為頂層模塊,啟動行為仿真,即可輸出波形。設(shè)置a、b、p顯示為無符號十進制(右擊選擇Radix - Unsigned Decimal)。如圖,可以看到a=7, b=8,第一個時鐘上升沿后p = a * b = 56。
113533i26oysu6qeeqqzcl.png




框圖(Block Design)中調(diào)用IP核

這里舉一個簡單的例子,通過調(diào)用乘法器IP核,產(chǎn)生一個能計算平方的新模塊。

一、創(chuàng)建框圖設(shè)計文件

1. 選擇Flow Navigator中的Create Block Design,創(chuàng)建一個框圖設(shè)計文件。
114712kfmmuuggb1ugh15c.png

2. 輸入文件名并點擊OK。
114713u7w3vvd67zuc6i89.png


二、添加IP核

1. 在框圖空白處右擊,選擇Add IP。
114713man6pevcz6nd0kyu.png


2. 可以直接搜索需要的IP核,雙擊確認。
114714biexnobxaicko0ya.png

3. IP核即可被添加進來,可以用導線將其與其他器件連接。
114714zqixmi280xk02o82.png

4. 雙擊這個IP核符號,可以打開參數(shù)設(shè)置對話框。點擊左上方的Documentation可以查看IP核的手冊。這里將輸入的A、B均設(shè)置為4為無符號型,其他為默認值,點擊OK確認。
114714a8878i6bbx5c5pih.png


三、繪制電路

1. 右擊Diagram窗口空白處,選擇Create Port。
114715bohjlol8tgl3wojk.png


2. 彈出窗口中,設(shè)置端口a為4位輸入信號,并點擊OK。
114715vveffk3pvpv972iu.png

3. 將a與A、B都連接起來。
114716kh8n5jjzhwoj3vph.png

4. 同樣的方法,添加一個8位輸出端口p,與P連接。
114716ht9n58ccg4s457lf.png


5. 再添加一個clk時鐘輸入端口,與CLK連接。
114717ogqadsgdy2sdwg25.png

6. 最終結(jié)果如圖。
114717rk2ipv7jv1ck8jpj.png


四、仿真測試

1. 右擊框圖設(shè)計文件design_1,選擇Create HDL Wrapper。
115342oycfkdckomsbkbfk.png

2. 選擇第二項并點擊OK。
114717q1mp1c2gf5pj9p22.png

3. 打開生成的design_1_wrapper.v文件如圖,紅框中的代碼用來調(diào)用前面畫好的Block Design模塊。
114718v2nsrz6mjjrjvjjg.png

4. 在design_1_wrapper.v文件中,添加Testbench代碼即可進行行為仿真。修改代碼如下,給輸入信號a賦初值為8,clk連接到Testbench生成的時鐘信號c上。
114718sq0hneztlhh1w9z0.png ? ? ? ?5. 在Simulation Sources文件夾下,設(shè)置design_1_wrapper.v為行為仿真的頂層文件(右擊,選擇Set as Top)。
114719kxbagsps9za1wgpx.png


啟動行為仿真,最終輸出的波形如下??梢钥吹?,在clk的第一個上升沿后,就有 p = a*a = 64,即實現(xiàn)了平方運算。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1333

    瀏覽量

    109712
  • IP核
    +關(guān)注

    關(guān)注

    4

    文章

    318

    瀏覽量

    49267
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    797

    瀏覽量

    65853
收藏 人收藏

    評論

    相關(guān)推薦

    vivadoip的工程封裝

    請教一下,vivado怎么把帶ip的工程進行封裝,保證代碼不可見,可以通過端口調(diào)用。我嘗試了以下方法,ippackage,如果要在另一個程序里調(diào)用
    發(fā)表于 07-14 09:18

    vivado 調(diào)用IP 詳細介紹

    大家伙,又到了每日學習的時間了,今天咱們來聊一聊vivado 調(diào)用IP。首先咱們來了解一下vivado
    發(fā)表于 05-15 12:05

    詳細操作 vivado 調(diào)用IP(附圖)

    大家伙,又到了每日學習的時間了,今天咱們來聊一聊vivado 調(diào)用IP。首先咱們來了解一下vivado
    發(fā)表于 05-16 11:42

    使用Vivado調(diào)用ROM IP

      本例程主要使用Vivado 調(diào)用ROM IP,用含有正弦曲線的.coe文件初始化ROM,最終通過仿真實現(xiàn)波形的顯示  一、首先建立工程      二、選擇芯片的型號  我
    發(fā)表于 01-08 17:16

    vivado有哪幾種常用IP?如何去調(diào)用它們

    運算器等)、信號處理(FFT、DFT、DDS等)。IP類似編程中的函數(shù)庫(例如C語言中的printf()函數(shù)),可以直接調(diào)用,非常方便,大大加快了開發(fā)速度。今天介紹的是
    發(fā)表于 07-29 06:07

    Vivado生成IP

    vivado生成ip后缺少一大片文件,之前是可以用的,中途卸載過Modelsim,用vivado打開過ISE工程,因為工程中很多IP
    發(fā)表于 04-24 23:42

    Xilinx Vivado的使用詳細介紹(3):使用IP

    IPIP Core) Vivado中有很多IP核可以直接使用,例如數(shù)學運算(乘法器、除法器、浮點運算器等)、信號處理(FFT、DFT、D
    發(fā)表于 02-08 13:08 ?1947次閱讀
    Xilinx <b class='flag-5'>Vivado</b>的使用<b class='flag-5'>詳細</b><b class='flag-5'>介紹</b>(3):使用<b class='flag-5'>IP</b><b class='flag-5'>核</b>

    了解VivadoIP的原理與應用

    IPIP Core) Vivado中有很多IP核可以直接使用,例如數(shù)學運算(乘法器、除法器、浮點運算器等)、信號處理(FFT、DFT、D
    發(fā)表于 11-15 11:19 ?8967次閱讀

    調(diào)用Vivado IP的方法

    在開發(fā)PL時一般都會用到分頻或倍頻,對晶振產(chǎn)生的時鐘進行分頻或倍頻處理,產(chǎn)生系統(tǒng)時鐘和復位信號,下面就介紹一下在vivado2017.3中進行PL開發(fā)時調(diào)用IP的方法。
    發(fā)表于 12-22 14:26 ?4650次閱讀

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

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

    關(guān)于Vivado三種常用IP調(diào)用詳細解析

    vivadoIPIPIP Core):Vivado
    的頭像 發(fā)表于 04-27 15:45 ?2.4w次閱讀
    關(guān)于<b class='flag-5'>Vivado</b>三種常用<b class='flag-5'>IP</b><b class='flag-5'>核</b>的<b class='flag-5'>調(diào)用</b><b class='flag-5'>詳細</b>解析

    FPGA應用之vivado三種常用IP調(diào)用

    今天介紹的是vivado的三種常用IP:時鐘倍頻(Clocking Wizard),實時仿真(ILA),ROM調(diào)用(Block Memor
    發(fā)表于 02-02 10:14 ?3081次閱讀

    VCS獨立仿真Vivado IP的問題補充

    在仿真Vivado IP時分兩種情況,分為未使用SECURE IP和使用了SECURE IP
    的頭像 發(fā)表于 06-06 14:45 ?1522次閱讀
    VCS獨立仿真<b class='flag-5'>Vivado</b> <b class='flag-5'>IP</b><b class='flag-5'>核</b>的問題補充

    如何在Vivado中配置FIFO IP

    Vivado IP提供了強大的FIFO生成器,可以通過圖形化配置快速生成FIFO IP。
    的頭像 發(fā)表于 08-07 15:36 ?3336次閱讀
    如何在<b class='flag-5'>Vivado</b>中配置FIFO <b class='flag-5'>IP</b><b class='flag-5'>核</b>

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

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