《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > vivado調(diào)用IP核詳細(xì)介紹

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

2018-05-28
關(guān)鍵詞: Vivado IP SimulationSources

  大家好,,又到了每日學(xué)習(xí)的時(shí)間了,今天咱們來聊一聊vivado 調(diào)用IP核,。

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

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

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

  一、添加IP核

  1. 點(diǎn)擊Flow Navigator中的IP Catalog,。

 

1.png

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

 

2.png

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

 

3.png

  4. 稍后彈出的窗口,,點(diǎn)擊Generate。

 

4.png

  二、調(diào)用IP核

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

  

5.png

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

  

6.png

  三、行為仿真驗(yàn)證

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

  

7.png

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

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

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

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

 

8.png

  2. 輸入文件名并點(diǎn)擊OK,。

 

9.png

  二、添加IP核

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

  

10.png

  2. 可以直接搜索需要的IP核,,雙擊確認(rèn)。

  

11.png

  3. IP核即可被添加進(jìn)來,,可以用導(dǎo)線將其與其他器件連接,。

  

12.png

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

  

13.png

  三,、繪制電路

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

  

14.png

  2. 彈出窗口中,,設(shè)置端口a為4位輸入信號(hào),,并點(diǎn)擊OK。

 

15.png

  3. 將a與A,、B都連接起來,。

  

16.png

  4. 同樣的方法,添加一個(gè)8位輸出端口p,,與P連接,。

  

17.png

  5. 再添加一個(gè)clk時(shí)鐘輸入端口,與CLK連接,。

 

18.png

  6. 最終結(jié)果如圖,。

  

19.png

  四、仿真測試

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

 

20.png

  2. 選擇第二項(xiàng)并點(diǎn)擊OK。

  

21.png

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

 

22.png

  4. 在design_1_wrapper.v文件中,添加Testbench代碼即可進(jìn)行行為仿真,。修改代碼如下,,給輸入信號(hào)a賦初值為8,clk連接到Testbench生成的時(shí)鐘信號(hào)c上,。

  

23.png

      5. 在Simulation Sources文件夾下,,設(shè)置design_1_wrapper.v為行為仿真的頂層文件(右擊,,選擇Set as Top)。

 

24.png

  啟動(dòng)行為仿真,,最終輸出的波形如下,。可以看到,,在clk的第一個(gè)上升沿后,,就有 p = a*a = 64,即實(shí)現(xiàn)了平方運(yùn)算,。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時(shí)通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]