vivado 一步一步生成自己的自定義IP核
基於AXI-Lite的使用者自定義IP核設計
這裡以使用者自定義led_ip為例:
1.建立工程
和設計一過程一樣
這樣我們就進入了主介面
2.建立IP
Tools –》Create and Package IP
來到IP建立歡迎介面:Next
接下來我們要選擇AXI4 peripheral,如下圖
Next之後,我們可以看到IP的資訊,可以自己修改某些資訊:
然後修改一下Name,其餘的保持預設:
下面要勾選一下Generate Drivers
然後Next之後,我們選第二個:如下圖
點選finish,就進入了編輯IP的介面
3.編輯IP
既然是自定義IP核,那麼我們需要修改led_ip_v1_0.v
雙擊檔案,在15行新增output wire [3:0]led, 如下圖所示:
新增使用者定義的port
接下來,將我們使用者的port,連線到led_ip_v1_0_S_AXI,在48行:
.LED(LED),
在led_ip_v1_0_S_AXI模組中還沒有LED埠,因此展開source檔案:
雙擊圖上檔案:在15行新增output wire [3:0]led,
如下圖所示:
接下來就是新建使用者邏輯檔案了,user_logic.v
編寫verilog檔案:
然後這個使用者邏輯模組要在led_ip_v1_0_S_AXI中例化:
例化如下:在397行左右:
儲存所有檔案,然後編譯,在IP封裝之前,確保無誤:
果然編譯出錯,是上面有些寫成了led,有些寫成了LED,全部修改成LED吧:圖我就不重新貼了:這次編譯通過了
編譯成功後,這裡我們選擇cancal了,就是不Run Implementation了、
接下來就是:
4.封裝IP
點選左側的Package IP
現在就一個一個來看,在IP Identification中
在IP Compatibility,可以看到已經支援zynq了,如果要新增family 右鍵新增即可
IP File Groups
點選紅色框中的,有兩警告,忽略之
在IP Customization Parameter中同樣點選紅色框中內容
在IP Ports裡面可以看到LED這個埠了
Review and Package
可以IP核路徑,點選Re-Package IP
然後出現一個警告,忽略,點選ok
這樣我們就完成了自定義IP的設計和封裝,然後也就回到了project_2主介面,注意之前的介面一直是在edit Ip的這個介面完成的、