將自定義 RTL 添加到 AXI4-Stream IP
從Flow Navigator中選擇Add Sources添加我們要設(shè)計(jì)的 FIR Verilog 文件。
在使用 Add Files 選項(xiàng)指向 FIR Verilog 文件后,取消選中Scan and add RTL include files into project復(fù)選框。由于這不是一個(gè)普通的 Vivado 項(xiàng)目,并且 Verilog 代碼被打包到一個(gè) IP 塊中,因此選中該選項(xiàng)后將引發(fā)錯(cuò)誤。
添加后,源層次結(jié)構(gòu)更新并且 FIR Verilog 文件獨(dú)立于 AXI Verilog 源文件。
根據(jù)生成 IP 編輯器 Vivado 項(xiàng)目時(shí)所做的選擇,會(huì)為此 AXI4-Stream 外設(shè)生成三個(gè) RTL 源文件:
- 從接口功能 RTL。
- 主接口功能 RTL。
- 具有物理接口聲明和主從接口實(shí)例化的頂層文件。
在設(shè)計(jì)之前,需要將幾個(gè)默認(rèn)未啟用的可選 AXI4-Stream 接口信號(hào)添加到主 AXI 端口和從 AXI 端口。大多數(shù) DSP IP 模塊,例如 DDS 利用了 AXI4-Stream 額外的keep 和 tlast信號(hào)。
添加這些可選信號(hào)很簡(jiǎn)單,但最初并不清楚。導(dǎo)航到Package IP窗口中的Customization Parameters選項(xiàng)卡。
主接口和從接口都需要添加它們,因此右鍵單擊每個(gè)接口并選擇Edit Interface 。
在“Parameters”選項(xiàng)卡中啟用HAS_TKEEP ,方法是單擊每個(gè)選項(xiàng),然后單擊單個(gè)箭頭將其從左列移動(dòng)到右列。
然后切換到Port Mapping選項(xiàng)卡,將 tkeep 和 tlast 映射到 AXI IP 塊的物理接口。在Interface's Logical Ports列和IP's Physical Ports列中分別匹配 tkeep 和 tlast 信號(hào)。然后在下面的Mapped Ports Summary列中驗(yàn)證它們的映射。
由于默認(rèn)情況下不啟用 tkeep,因此還必須手動(dòng)將其端口聲明添加到所有三個(gè) AXI 接口 RTL 源文件的用戶定義端口聲明部分。它還需要添加到頂級(jí) AXI 包裝器中的 AXI 主接口和從接口實(shí)例中。
在注釋Add user logic here標(biāo)記的部分中實(shí)例化 FIR Verilog 模塊。
現(xiàn)在,雖然 AXI 接口的基本功能分別在每個(gè) RTL 源文件中自動(dòng)生成,但如何從輸入數(shù)據(jù)流中提取數(shù)據(jù)并傳遞到自己的自定義邏輯中由自己來定義。以及如何將自定義邏輯的數(shù)據(jù)輸出饋送到主 AXI 接口進(jìn)行輸出。因此,會(huì)在三個(gè)自動(dòng)生成的 RTL 源文件中注意到相同的 Add user 邏輯。
另一點(diǎn)需要注意的是,AXI4-Stream 接口的功能需要進(jìn)行一些修改,以便將 tkeep 和 tlast 信號(hào)功能添加到主 AXI 接口和從 AXI 接口。
這個(gè)項(xiàng)目的最后一個(gè)獨(dú)特的要求是,因?yàn)檫@個(gè)邏輯的核心是一個(gè) FIR 濾波器,所以主從 AXI 接口和 FIR 都需要由相同的時(shí)鐘作為 FIR 采樣時(shí)鐘。所以只是將從 AXI 接口時(shí)鐘傳遞給 FIR 和主 AXI 接口。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21748瀏覽量
603981 -
amd
+關(guān)注
關(guān)注
25文章
5470瀏覽量
134244 -
濾波器
+關(guān)注
關(guān)注
161文章
7835瀏覽量
178285
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論