1. 程式人生 > >vivado 一步一步生成自己的自定義IP核

vivado 一步一步生成自己的自定義IP核

基於AXI-Lite的使用者自定義IP核設計

這裡以使用者自定義led_ip為例:

1.建立工程

和設計一過程一樣

這樣我們就進入了主介面

2.建立IP

Tools –》Create and Package IP

clip_image002

來到IP建立歡迎介面:Next

clip_image004

接下來我們要選擇AXI4 peripheral,如下圖

clip_image006

Next之後,我們可以看到IP的資訊,可以自己修改某些資訊:

clip_image008

然後修改一下Name,其餘的保持預設:

clip_image010

下面要勾選一下Generate Drivers

clip_image012

然後Next之後,我們選第二個:如下圖

clip_image014

點選finish,就進入了編輯IP的介面

3.編輯IP

clip_image016

既然是自定義IP核,那麼我們需要修改led_ip_v1_0.v

雙擊檔案,在15行新增output wire [3:0]led, 如下圖所示:

clip_image018

新增使用者定義的port

接下來,將我們使用者的port,連線到led_ip_v1_0_S_AXI,在48行:

.LED(LED),

clip_image020

在led_ip_v1_0_S_AXI模組中還沒有LED埠,因此展開source檔案:

clip_image022

雙擊圖上檔案:在15行新增output wire [3:0]led,

如下圖所示:

clip_image024

接下來就是新建使用者邏輯檔案了,user_logic.v

clip_image026

編寫verilog檔案:

clip_image028

然後這個使用者邏輯模組要在led_ip_v1_0_S_AXI中例化:

例化如下:在397行左右:

clip_image030

儲存所有檔案,然後編譯,在IP封裝之前,確保無誤:

果然編譯出錯,是上面有些寫成了led,有些寫成了LED,全部修改成LED吧:圖我就不重新貼了:這次編譯通過了

clip_image032

編譯成功後,這裡我們選擇cancal了,就是不Run Implementation了、

接下來就是:

4.封裝IP

點選左側的Package IP

clip_image034

現在就一個一個來看,在IP Identification中

clip_image036

在IP Compatibility,可以看到已經支援zynq了,如果要新增family 右鍵新增即可

clip_image038

IP File Groups

點選紅色框中的,有兩警告,忽略之

clip_image040

在IP Customization Parameter中同樣點選紅色框中內容

clip_image042

在IP Ports裡面可以看到LED這個埠了

clip_image044

Review and Package

可以IP核路徑,點選Re-Package IP

clip_image046

然後出現一個警告,忽略,點選ok

這樣我們就完成了自定義IP的設計和封裝,然後也就回到了project_2主介面,注意之前的介面一直是在edit Ip的這個介面完成的、