Vivado使用技巧:封裝自己設計的IP核
概述
??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”。
調用自己的IP核
-
再另外新建一個工程,我們嘗試調用剛才自己制作的IP核。建立好工程後先不添加源文件。在“Flow Navigator”的“Settings”中選中“IP”下的“Repository”,點擊“+”添加,路徑指定到剛才封裝IP核的目錄。點擊ok後便會彈出一個框提示找到了一個名為“Add_USR_IP_v1_0”的IP核,也就是剛才創建的加法器。
-
設置好後在“IP Integrator”中點擊“Create Block Design”,創建一張原理圖。原理圖中點擊“+”搜索Add_USR_IP_v1_0,即可看到自己制作的IP核,雙擊添加到原理圖中。如果設計中還需要其它IP核,添加IP後用連線連接起整個系統即可。雙擊IP核圖形,即可彈出配置界面,可以更改加法器的位寬。
-
這裏我們不使用其它IP,直接在Add_USR_IP_v1_0的管腳上右鍵,點擊“Make External”生成管腳信號。結果如下:
-
在“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核