緒論
使用Vivado Block Design設計解決了項目繼承性問題,但是還有個問題,不知道大家有沒有遇到,就是新設計的自定義 RTL 文件無法快速的添加到Block Design中,一種方式是通過自定義IP,但是一旦設計的文件有問題就需要重新修改,同時需要控制接口時候還需要在AXI總線模板基礎上進行修改,再同時繁瑣的步驟也讓人“望而卻步”。下面介紹一種簡單的方式。
我目前使用的是 Vivado 2019.1、2020.2,但據我所知,此功能幾乎適用于 Vivado 的所有版本(如果不正確,請隨時在后臺更正)。
創建 Vivado 項目
為了開始這個例子,我創建了一個基于 Zynq 的新 Vivado 項目(這只是我的例子,但這個項目的內容并不特定于任何特定的 FPGA 開發板),同時這個項目中包括一個通過AXI-Lite控制的自定義RTL。
添加設計文件并編寫自定義 RTL
不用于仿真目的的自定義 RTL(即測試文件)都被視為 Vivado 中的設計源。使用 Flow Navigator 中的Add Sources選項并選擇Add or create design sources ,然后單擊 Next。
我們創建一個名為D_flipflop的新文件并添加了以下邏輯:
moduleD_flipflop( inputclk, inputreset, inputd_in, outputregq_out ); always@(posedgeclk) begin if(reset==1'b1) begin q_out<=?1'b0; ????????????????end ????????????else? ????????????????begin ????????????????????q_out?<=?d_in; ????????????????end ????????end endmodule
創建Block Design
使用 Flow Navigator 窗口中的Create Block Design選項,將新的Block Design添加到項目中。
將 Zynq 處理系統 IP 塊添加到設計中,并運行自動設置或者自動連線。
將 RTL 模塊添加到Block Design
要添加我們在上一步中創建的 D 觸發器的 RTL 模塊,右鍵單擊 Diagram 窗口空白處的任意位置,然后選擇Add Module...選項。
Vivado 將自動顯示它在當前項目中找到的所有有效 RTL 模塊。由于寫入或導入到當前項目中的模塊是我們剛剛設計的 D 觸發器,因此它是本例中的唯一選項。
為了給觸發器提供源,我添加了一個 AXI GPIO IP ,其中第一個通道作為輸出,第二個通道作為輸入。自動連接即可。
為 AXI GPIO 模塊運行自動連接后,將輸出 GPIO 通道連接到觸發器的 d_in,將觸發器的 q_out 連接到輸入 GPIO 通道。
全部連接好后,點擊那個勾勾進行驗證。
Block Design完成后,為Block Design生成頂層文件。
完成后可以看下整個項目的文件層次結構。
就是這樣,OVER~
審核編輯:劉清
-
HDL
+關注
關注
8文章
327瀏覽量
47341 -
RTL
+關注
關注
1文章
385瀏覽量
59710 -
AXI總線
+關注
關注
0文章
66瀏覽量
14250 -
Vivado
+關注
關注
19文章
808瀏覽量
66336
原文標題:[Vivado那些事兒]將自定義 IP (HDL)添加到 Vivado 模塊設計(Block Design)
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論