1. 程式人生 > >Vivado使用技巧:封裝自己設計的IP核

Vivado使用技巧:封裝自己設計的IP核

開源 創建 pre 範圍 輸入 sign 分享圖片 出了 face

概述

??Vivado在設計時可以感覺到一種趨勢,它鼓勵用IP核的方式進行設計。“IP Integrator”提供了原理圖設計的方式,只需要在其中調用設計好的IP核連線。IP核一部分來自於Xilinx官方IP;一部分來自於第三方IP,其中有的是在網絡上開源的;另一部分就是自己設計的IP。有時候我們需要把自己的一個設計反復用到以後的工程中,利用Vivado的“IP Package”將其封裝起來,再以後的工程中直接調用即可。
??本文致力於講述如何將自己的設計封裝為IP核,以及示範一下如何在其它工程中調用自己設計好的IP核。本文采用的設計是一個簡單的位寬可設置的加法器。博主使用的Vivado版本是2017.1,其它版本在一些設置的地方可能存在一些差異。


封裝IP

??1. 首先建立一個工程用於設計IP核,這個工程最好放在Vivado目錄下或不會被刪除的地方。添加一個源文件,輸入一個簡單的組合邏輯加法器的代碼:

 `timescale 1ns / 1ps

module Add_USR_IP #(parameter WIDTH = 1)(
    input [WIDTH:0] a,
    input [WIDTH:0] b,
    output cout,
    output [WIDTH:0] c
    );

    assign {cout, c} = a + b;

endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

??2. 點擊左邊“Flow Navigator”中的“Settings”,打開“IP”下的“Packager”。設置自己的IP核的庫名和目錄,我將Library更改為了“godwar_liuqi”,Category更改為了“/godwar_liuqi_IPLib”。這裏也可以用默認值。
??3. 點擊上方菜單欄中的“Tools”下的“Create and Package New IP”,跟著流程一直走最後Finish即可,將在工作區彈出如下界面,包含了IP核的一些信息,名稱為“Add_USR_IP_v1_0”。

技術分享圖片 ??**4**. 在上述界面的“Compatibility”標簽下給出了這個IP可以支持的FPGA系列,默認是支持全部系列。“File Groups”中可以看到這個IP包含的文件,可以為這個IP添加一個仿真文件來驗證其功能。 ??**5**. 我為了實現加法位寬可調整,源程序中使用了parameter參數。打開上述界面中的“Customization Parameters”標簽,將看到這個參數WIDTH: 技術分享圖片
??雙擊WIDTH,將彈出一個參數設置框。裏面可以指定這個參數在配置IP核是的格式以及是否可以被用戶編輯。我們在這裏將“Specify Range”勾選中,將Type更改為“Range of integers”,表示此參數可以選擇的範圍。將Minimum設置為0,Maximum設置為31,表示該IP核最高可設置為32位的加法器。最後再將“Default Value”指定為7,表示默認為8位加法器。 ??**6**. 第3步驟的“Ports and Interfaces”中將看到IP核的管腳信息,“Customization GUI”中將看到IP核的原理圖圖形。沒有問題後切換到“Review and Package”標簽,點擊“Package IP”會提示成功生成IP核。 ———-

調用自己的IP核

  1. 再另外新建一個工程,我們嘗試調用剛才自己制作的IP核。建立好工程後先不添加源文件。在“Flow Navigator”的“Settings”中選中“IP”下的“Repository”,點擊“+”添加,路徑指定到剛才封裝IP核的目錄。點擊ok後便會彈出一個框提示找到了一個名為“Add_USR_IP_v1_0”的IP核,也就是剛才創建的加法器。

  2. 設置好後在“IP Integrator”中點擊“Create Block Design”,創建一張原理圖。原理圖中點擊“+”搜索Add_USR_IP_v1_0,即可看到自己制作的IP核,雙擊添加到原理圖中。如果設計中還需要其它IP核,添加IP後用連線連接起整個系統即可。雙擊IP核圖形,即可彈出配置界面,可以更改加法器的位寬。


    技術分享圖片

  3. 這裏我們不使用其它IP,直接在Add_USR_IP_v1_0的管腳上右鍵,點擊“Make External”生成管腳信號。結果如下:


    技術分享圖片

  4. 在“Design Sources”中我們將看到bd後綴的原理圖文件。為了使用方便,保存原理圖後我們在文件上點右鍵,點擊“Create HDL Wrapper”,軟件會將原理圖封裝為一個Verilog文件,這個Verilog文件可以供其它模塊調用。結果如下所示:


    技術分享圖片

??設計好後可以像普通的工程一樣綜合、實現、生成bit流。值得一提的是,在這個工程中我們是無法查看到Add_USR_IP_v1_0這個IP核的源碼的,它是一個黑盒的狀態。這也是Vivado提供的IP加密技術,以保護設計者的權益

轉載:http://blog.csdn.net/fpgadesigner/article/details/75309278

Vivado使用技巧:封裝自己設計的IP核