緒論
使用Vivado Block Design設(shè)計(jì)解決了項(xiàng)目繼承性問題,但是還有個(gè)問題,不知道大家有沒有遇到,就是新設(shè)計(jì)的自定義 RTL 文件無(wú)法快速的添加到Block Design中,一種方式是通過自定義IP,但是一旦設(shè)計(jì)的文件有問題就需要重新修改,同時(shí)需要控制接口時(shí)候還需要在AXI總線模板基礎(chǔ)上進(jìn)行修改,再同時(shí)繁瑣的步驟也讓人“望而卻步”。下面介紹一種簡(jiǎn)單的方式。

我目前使用的是 Vivado 2019.1、2020.2,但據(jù)我所知,此功能幾乎適用于 Vivado 的所有版本(如果不正確,請(qǐng)隨時(shí)在后臺(tái)更正)。
創(chuàng)建 Vivado 項(xiàng)目
為了開始這個(gè)例子,我創(chuàng)建了一個(gè)基于 Zynq 的新 Vivado 項(xiàng)目(這只是我的例子,但這個(gè)項(xiàng)目的內(nèi)容并不特定于任何特定的 FPGA 開發(fā)板),同時(shí)這個(gè)項(xiàng)目中包括一個(gè)通過AXI-Lite控制的自定義RTL。
添加設(shè)計(jì)文件并編寫自定義 RTL
不用于仿真目的的自定義 RTL(即測(cè)試文件)都被視為 Vivado 中的設(shè)計(jì)源。使用 Flow Navigator 中的Add Sources選項(xiàng)并選擇Add or create design sources ,然后單擊 Next。


我們創(chuàng)建一個(gè)名為D_flipflop的新文件并添加了以下邏輯:
module?D_flipflop(
????input?clk,
????input?reset,
????input?d_in,
????output?reg?q_out
????);
????
????always?@?(posedge?clk)
????????begin
????????????if?(reset?==?1'b1)
????????????????begin
????????????????????q_out?<=?1'b0;
????????????????end
????????????else?
????????????????begin
????????????????????q_out?<=?d_in;
????????????????end
????????end
endmodule
創(chuàng)建Block Design
使用 Flow Navigator 窗口中的Create Block Design選項(xiàng),將新的Block Design添加到項(xiàng)目中。

將 Zynq 處理系統(tǒng) IP 塊添加到設(shè)計(jì)中,并運(yùn)行自動(dòng)設(shè)置或者自動(dòng)連線。

將 RTL 模塊添加到Block Design
要添加我們?cè)谏弦徊街袆?chuàng)建的 D 觸發(fā)器的 RTL 模塊,右鍵單擊 Diagram 窗口空白處的任意位置,然后選擇Add Module...選項(xiàng)。

Vivado 將自動(dòng)顯示它在當(dāng)前項(xiàng)目中找到的所有有效 RTL 模塊。由于寫入或?qū)氲疆?dāng)前項(xiàng)目中的模塊是我們剛剛設(shè)計(jì)的 D 觸發(fā)器,因此它是本例中的唯一選項(xiàng)。

為了給觸發(fā)器提供源,我添加了一個(gè) AXI GPIO IP ,其中第一個(gè)通道作為輸出,第二個(gè)通道作為輸入。自動(dòng)連接即可。

為 AXI GPIO 模塊運(yùn)行自動(dòng)連接后,將輸出 GPIO 通道連接到觸發(fā)器的 d_in,將觸發(fā)器的 q_out 連接到輸入 GPIO 通道。

全部連接好后,點(diǎn)擊那個(gè)勾勾進(jìn)行驗(yàn)證。

Block Design完成后,為Block Design生成頂層文件。

完成后可以看下整個(gè)項(xiàng)目的文件層次結(jié)構(gòu)。

就是這樣,OVER~
往期推薦
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-783440.html
【Vivado那些事】OOC綜合方式
【Vivado那些事】Xilinx FPGA普通IO能不能直接接入PLL作為時(shí)鐘輸入
【Vivado那些事】Force Up-to-Date功能
【Vivado那些事】Xilinx 7系列時(shí)鐘結(jié)構(gòu)詳解
【Vivado那些事】Vivado兩種生成、固化燒錄文件
【Vivado那些事】FPGA的配置方式
【Vivado那些事】Force Up-to-Date功能
【Vivado那些事】FPGA配置失敗,無(wú)法啟動(dòng)怎么辦
【Vivado那些事】如何查找官網(wǎng)例程及如何使用官網(wǎng)例程
【Vivado那些事】關(guān)于reset_project和reset_project -exclude ip使用文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-783440.html
到了這里,關(guān)于[Vivado那些事兒]將自定義 IP (HDL)添加到 Vivado 模塊設(shè)計(jì)(Block Design)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!