91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

?構(gòu)建自定義AXI4-Stream FIR濾波器

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2022-11-07 09:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

構(gòu)建自定義 AXI4-Stream FIR 濾波器

副標(biāo)題:優(yōu)秀的IC/FPGA開源項(xiàng)目(五)-在Vivado中構(gòu)建自定義 AXI4-Stream FIR 濾波器 IP

《優(yōu)秀的IC/FPGA開源項(xiàng)目》是新開的系列,旨在介紹單一項(xiàng)目,會(huì)比《優(yōu)秀的 Verilog/FPGA開源項(xiàng)目》內(nèi)容介紹更加詳細(xì),包括但不限于綜合、上板測(cè)試等。兩者相輔相成,互補(bǔ)互充~


AMD-Xilinx 的 Vivado 開發(fā)工具具有很多方便FPGA開發(fā)功能,我最喜歡的功能之一是block design的設(shè)計(jì)流程。Vivado 中的block design是使用RTL IP形式的圖形表示進(jìn)行設(shè)計(jì),在block design中使用 RTL 模塊的方便之處在于,它將自動(dòng)檢測(cè)某些類型的信號(hào),例如時(shí)鐘、復(fù)位和總線接口,然后,檢測(cè)這些信號(hào)進(jìn)行IP間的自動(dòng)化連接。Vivado 中包含大量預(yù)構(gòu)建 IP 模塊(官方IP)。

為了方便用戶進(jìn)行相關(guān)設(shè)計(jì),Vivado 提供了一個(gè)內(nèi)置的 IP 封裝編輯器工具,它可以為 AXI IP 生成框架,只需將自己的 RTL 代碼插入其中。同時(shí)也提供了相關(guān)的驅(qū)動(dòng)文件,可以在Vitis中方便調(diào)試。

為了演示究竟上面流程“好”在哪里,接下來我們創(chuàng)建一個(gè)AXI FIR IP 模塊,然后將IP添加到我們?cè)O(shè)計(jì)中最后驗(yàn)證功能。

創(chuàng)建 Vivado 項(xiàng)目

首先,啟動(dòng) Vivado 并針對(duì)自己的FPGA創(chuàng)建一個(gè)新項(xiàng)目。

53b89720-5e3a-11ed-a3b6-dac502259ad0.png53c5f640-5e3a-11ed-a3b6-dac502259ad0.png

添加 MicroBlaze,對(duì)于這個(gè)項(xiàng)目來說,使用 BRAM 就足夠了。

選擇 Add IP 選項(xiàng)并搜索 MicroBlaze,將其添加到模塊設(shè)計(jì)中并運(yùn)行 Block Automation,該模塊會(huì)在窗口頂部的綠色橫幅中彈出。接下來添加中斷控制器。

53dd205e-5e3a-11ed-a3b6-dac502259ad0.png5423c978-5e3a-11ed-a3b6-dac502259ad0.png5432aeac-5e3a-11ed-a3b6-dac502259ad0.png

驗(yàn)證并保存塊設(shè)計(jì),接下來我們將開始我們的IP設(shè)計(jì)。

創(chuàng)建新的 AXI4 外設(shè)

要使用自己的 RTL 創(chuàng)建新的 AXI 外設(shè)并將其封裝為 IP ,請(qǐng)選擇工具>創(chuàng)建和打包新 IP...

5440dc16-5e3a-11ed-a3b6-dac502259ad0.png

在彈出的窗口中,按照提示逐步瀏覽屏幕,選擇Create AXI4 Peripheral選項(xiàng),指定 IP 塊的所需名稱、位置目錄以及 IP 將具有的 AXI 接口數(shù)量以及 AXI類型。

Vivado 中使用了三種主要類型的 AXI:

  • AXI4 (full)
  • AXI4-Lite
  • AXI4-Stream

每種類型都適合不同的用例,在這個(gè)項(xiàng)目中,我們正在創(chuàng)建自己的 AXI FIR 濾波器 IP 。由于 FIR 濾波器輸入并輸出具有已知數(shù)據(jù)包邊界和流量控制要求的恒定數(shù)據(jù)流,因此 AXI4-Stream 是最適合的類型。它將需要一個(gè)從接口來輸入數(shù)據(jù)樣本,并需要一個(gè)主接口來輸出處理后的樣本。

作為參考,F(xiàn)IR 是一個(gè)運(yùn)行速度為 100 MS/s 的 LPF,具有 15 個(gè)抽頭,接收帶符號(hào)的 16 位數(shù)據(jù)并輸出帶符號(hào)的 32 位數(shù)據(jù)。它有一個(gè)從 1MHz 到 10MHz 的通帶和一個(gè)從 20MHz 開始的阻帶。

接下來,選擇編輯 IP并單擊完成。IP 包編輯 Vivado 項(xiàng)目將重新打開一個(gè)gui。

54510e9c-5e3a-11ed-a3b6-dac502259ad0.png5462ca42-5e3a-11ed-a3b6-dac502259ad0.png5483cbac-5e3a-11ed-a3b6-dac502259ad0.png54964f3e-5e3a-11ed-a3b6-dac502259ad0.png54a1cd8c-5e3a-11ed-a3b6-dac502259ad0.png54510e9c-5e3a-11ed-a3b6-dac502259ad0.png

將自定義 RTL 添加到 AXI4-Stream IP

從Flow Navigator中選擇Add Sources添加我們要設(shè)計(jì)的 FIR Verilog 文件。

54bee9bc-5e3a-11ed-a3b6-dac502259ad0.png

在使用 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ò)誤。

54cd59c0-5e3a-11ed-a3b6-dac502259ad0.png54d879e0-5e3a-11ed-a3b6-dac502259ad0.png

添加后,源層次結(jié)構(gòu)更新并且 FIR Verilog 文件獨(dú)立于 AXI Verilog 源文件。

54e5e404-5e3a-11ed-a3b6-dac502259ad0.png

根據(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)卡。

54f31e94-5e3a-11ed-a3b6-dac502259ad0.png

主接口和從接口都需要添加它們,因此右鍵單擊每個(gè)接口并選擇Edit Interface 。

5514ac94-5e3a-11ed-a3b6-dac502259ad0.png

在“Parameters”選項(xiàng)卡中啟用HAS_TKEEP ,方法是單擊每個(gè)選項(xiàng),然后單擊單個(gè)箭頭將其從左列移動(dòng)到右列。

5522eade-5e3a-11ed-a3b6-dac502259ad0.png

然后切換到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)證它們的映射。

5531ac18-5e3a-11ed-a3b6-dac502259ad0.png

由于默認(rèn)情況下不啟用 tkeep,因此還必須手動(dòng)將其端口聲明添加到所有三個(gè) AXI 接口 RTL 源文件的用戶定義端口聲明部分。它還需要添加到頂級(jí) AXI 包裝器中的 AXI 主接口和從接口實(shí)例中。

553e5e36-5e3a-11ed-a3b6-dac502259ad0.png554f7f7c-5e3a-11ed-a3b6-dac502259ad0.png555fecae-5e3a-11ed-a3b6-dac502259ad0.png557dee2a-5e3a-11ed-a3b6-dac502259ad0.png

在注釋Add user logic here標(biāo)記的部分中實(shí)例化 FIR Verilog 模塊。

55a33ef0-5e3a-11ed-a3b6-dac502259ad0.png

現(xiàn)在,雖然 AXI 接口的基本功能分別在每個(gè) RTL 源文件中自動(dòng)生成,但如何從輸入數(shù)據(jù)流中提取數(shù)據(jù)并傳遞到自己的自定義邏輯中由自己來定義。以及如何將自定義邏輯的數(shù)據(jù)輸出饋送到主 AXI 接口進(jìn)行輸出。因此,會(huì)在三個(gè)自動(dòng)生成的 RTL 源文件中注意到相同的 Add user 邏輯。

55b3bf46-5e3a-11ed-a3b6-dac502259ad0.png55c3dd0e-5e3a-11ed-a3b6-dac502259ad0.png

另一點(diǎn)需要注意的是,AXI4-Stream 接口的功能需要進(jìn)行一些修改,以便將 tkeep 和 tlast 信號(hào)功能添加到主 AXI 接口和從 AXI 接口。

55d2c1f2-5e3a-11ed-a3b6-dac502259ad0.png

這個(gè)項(xiàng)目的最后一個(gè)獨(dú)特的要求是,因?yàn)檫@個(gè)邏輯的核心是一個(gè) FIR 濾波器,所以主從 AXI 接口和 FIR 都需要由相同的時(shí)鐘作為 FIR 采樣時(shí)鐘。所以只是將從 AXI 接口時(shí)鐘傳遞給 FIR 和主 AXI 接口。

55e299a6-5e3a-11ed-a3b6-dac502259ad0.png

封裝 AXI IP 塊

返回到 Package IP 窗口,讓我們?yōu)g覽每個(gè)選項(xiàng)卡并驗(yàn)證,然后最終將其打包。

第一個(gè)選項(xiàng)卡中是輸出 AXI 外設(shè) IP 包的基本顯示信息。

55f41de8-5e3a-11ed-a3b6-dac502259ad0.png

第二個(gè)標(biāo)簽很重要。默認(rèn)情況下,AXI 外設(shè) IP 僅支持啟動(dòng) IP 包編輯器的主 Vivado 所針對(duì)的 FPGA 芯片系列。大多數(shù)時(shí)候,可能希望能夠?qū)?AXI 外設(shè) IP 塊與其他 Xilinx FPGA 芯片系列一起使用,就需要添加我們需要的目標(biāo)FPGA芯片。

5604aa82-5e3a-11ed-a3b6-dac502259ad0.png

對(duì)于其余選項(xiàng)卡,默認(rèn)需求即可。

561ce520-5e3a-11ed-a3b6-dac502259ad0.png562bd116-5e3a-11ed-a3b6-dac502259ad0.png563778f4-5e3a-11ed-a3b6-dac502259ad0.png566f0044-5e3a-11ed-a3b6-dac502259ad0.png567a7abe-5e3a-11ed-a3b6-dac502259ad0.png

在最后一個(gè)選項(xiàng)卡中,單擊窗口底部的Package IP按鈕。將出現(xiàn)一個(gè)提示,詢問是否要關(guān)閉 IP 編輯器 Vivado 項(xiàng)目。

此時(shí),F(xiàn)IR AXI IP 塊被打包并放置在 Package IP 窗口的第一個(gè)選項(xiàng)卡指定的目錄中的存儲(chǔ)庫(kù)中。

將自定義 AXI4-Stream FIR 添加到項(xiàng)目

現(xiàn)在自定義 FIR AXI IP 模塊已經(jīng)完成并封裝,我們可以返回原始 Vivado 項(xiàng)目,將其添加到模塊設(shè)計(jì)中。

我們的驗(yàn)證項(xiàng)目如下:

56881b10-5e3a-11ed-a3b6-dac502259ad0.png

其中DDS IP設(shè)置如下:

56b0b8f4-5e3a-11ed-a3b6-dac502259ad0.png56bfb4f8-5e3a-11ed-a3b6-dac502259ad0.png56d9567e-5e3a-11ed-a3b6-dac502259ad0.png56f1fc24-5e3a-11ed-a3b6-dac502259ad0.png

創(chuàng)建仿真平臺(tái)

首先創(chuàng)建仿真文件,并在sim文件夾下的 Sources 選項(xiàng)卡中,右鍵單擊它并選擇Set as Top 。

57015bb0-5e3a-11ed-a3b6-dac502259ad0.png

在這種情況下,只需在塊設(shè)計(jì)中實(shí)例化塊設(shè)計(jì),并為其提供差分系統(tǒng)時(shí)鐘和主 FPGA 復(fù)位。一旦接收到時(shí)鐘和復(fù)位信號(hào),相位增量狀態(tài)機(jī)就會(huì)自行運(yùn)行。

`timescale1ns/1ps

modulesp701_bd_tb;

regclk_p,clk_n,reset;

alwaysbegin
clk_p=1;clk_n=0;#5;
clk_p=0;clk_n=1;#5;
end

alwaysbegin
reset=1;#40;
reset=0;#1000000000;
end

sp701_bdsp701_bd_i(
.reset(reset),
.sys_diff_clock_clk_n(clk_p),
.sys_diff_clock_clk_p(clk_n)
);

endmodule

這里注意一下主 AXI 接口輸出信號(hào)和 tlast、tvalid 和 tdata 需要進(jìn)行初始化。否則仿真將會(huì)報(bào)錯(cuò)。

57119ab6-5e3a-11ed-a3b6-dac502259ad0.png

單擊Flow Navigator窗口中的Run Simulation并選擇Run Behavioral Simulation 。

57302e2c-5e3a-11ed-a3b6-dac502259ad0.png

注意仿真結(jié)果顯示格式。

參考

https://www.hackster.io/

總結(jié)

上面的一些創(chuàng)建細(xì)節(jié)沒有全部展現(xiàn),因?yàn)楸旧韺?duì)于IP的創(chuàng)建不是我們的核心,我們只想說明使用目前這種BD設(shè)計(jì)可以達(dá)達(dá)簡(jiǎn)化設(shè)計(jì),尤其是目前Verilog的一些缺點(diǎn)。

最后說一下調(diào)試中的注意點(diǎn),就是使用ILA查看AXI-Stream輸出時(shí)候,會(huì)造成FIR的時(shí)序與采樣混淆導(dǎo)致 FIR 不再工作,可能會(huì)查看不到任何波形,使用AXIS的專用調(diào)試IP即可,后續(xù)我們?cè)谡f明這方面的知識(shí)。

示例工程

https://github.com/suisuisi/AXI4-Stream-FIR-filter


審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 濾波器
    +關(guān)注

    關(guān)注

    162

    文章

    8412

    瀏覽量

    185723
  • 自動(dòng)化
    +關(guān)注

    關(guān)注

    31

    文章

    5933

    瀏覽量

    90264
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    4207

    瀏覽量

    46146

原文標(biāo)題:?構(gòu)建自定義 AXI4-Stream FIR 濾波器

文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    無圖形界面模式下自定義檢查工具的應(yīng)用

    此前文章已介紹 ANSA 中的自定義檢查工具。本文將探討該功能在無圖形界面(No-GUI)模式下的應(yīng)用,旨在滿足標(biāo)準(zhǔn)化工作流程的需求,適用于需要高度自動(dòng)化的前處理場(chǎng)景。通過集成自定義檢查,用戶可實(shí)現(xiàn)工作流程的高效自動(dòng)化運(yùn)行。
    的頭像 發(fā)表于 11-30 14:13 ?586次閱讀
    無圖形界面模式下<b class='flag-5'>自定義</b>檢查工具的應(yīng)用

    使用AXI4接口IP核進(jìn)行DDR讀寫測(cè)試

    本章的實(shí)驗(yàn)任務(wù)是在 PL 端自定義一個(gè) AXI4 接口的 IP 核,通過 AXI_HP 接口對(duì) PS 端 DDR3 進(jìn)行讀寫測(cè)試,讀寫的內(nèi)存大小是 4K 字節(jié)。
    的頭像 發(fā)表于 11-24 09:19 ?3737次閱讀
    使用<b class='flag-5'>AXI4</b>接口IP核進(jìn)行DDR讀寫測(cè)試

    信號(hào)處理:指數(shù)移動(dòng)平均 (EMA) 濾波器

    FIR 和 IIR 形式表示,但如果它們相互比較又各具哪些優(yōu)勢(shì)呢? 回顧我之前博客中的例子,我們可以將 FIR 濾波器展開為如下形式: y[5] = (x[5]+x[4]+x[3]+
    的頭像 發(fā)表于 10-04 18:35 ?1956次閱讀
    信號(hào)處理:指數(shù)移動(dòng)平均 (EMA) <b class='flag-5'>濾波器</b>

    構(gòu)建自定義電商數(shù)據(jù)分析API

    ? 在電商業(yè)務(wù)中,數(shù)據(jù)是驅(qū)動(dòng)決策的核心。隨著數(shù)據(jù)量的增長(zhǎng),企業(yè)需要實(shí)時(shí)、靈活的分析工具來監(jiān)控銷售、用戶行為和庫(kù)存等指標(biāo)。一個(gè)自定義電商數(shù)據(jù)分析API(應(yīng)用程序接口)可以自動(dòng)化數(shù)據(jù)提取和處理過程,提供
    的頭像 發(fā)表于 07-17 14:44 ?604次閱讀
    <b class='flag-5'>構(gòu)建</b><b class='flag-5'>自定義</b>電商數(shù)據(jù)分析API

    大彩講堂:VisualTFT軟件如何自定義圓形進(jìn)度條

    VisualTFT軟件如何自定義圓形進(jìn)度條
    的頭像 發(fā)表于 07-07 17:10 ?1648次閱讀
    大彩講堂:VisualTFT軟件如何<b class='flag-5'>自定義</b>圓形進(jìn)度條

    RDMA簡(jiǎn)介8之AXI分析

    AXI4 總線是第四代 AXI 總線,其定義了三種總線接口,分別為:AXI4、AXI4-Lite 和 A
    的頭像 發(fā)表于 06-24 23:22 ?641次閱讀
    RDMA簡(jiǎn)介8之<b class='flag-5'>AXI</b>分析

    RDMA簡(jiǎn)介8之AXI 總線協(xié)議分析1

    ,分別為:AXI4、AXI4-Lite 和 AXI4-Stream接口。其中 AXI4 也稱為 AXI4-Full 是一種基于地址的高性能傳
    發(fā)表于 06-24 18:00

    KiCad 中的自定義規(guī)則(KiCon 演講)

    “ ?Seth Hillbrand 在 KiCon US 2025 上為大家介紹了 KiCad 的規(guī)則系統(tǒng),并詳細(xì)講解了自定義規(guī)則的設(shè)計(jì)與實(shí)例。? ” ? 演講主要圍繞 加強(qiáng) KiCad 中的自定義
    的頭像 發(fā)表于 06-16 11:17 ?2145次閱讀
    KiCad 中的<b class='flag-5'>自定義</b>規(guī)則(KiCon 演講)

    HarmonyOS應(yīng)用自定義鍵盤解決方案

    自定義鍵盤是一種替換系統(tǒng)默認(rèn)鍵盤的解決方案,可實(shí)現(xiàn)鍵盤個(gè)性化交互。允許用戶結(jié)合業(yè)務(wù)需求與操作習(xí)慣,對(duì)按鍵布局進(jìn)行可視化重構(gòu)、設(shè)置多功能組合鍵位,使輸入更加便捷和舒適。在安全防護(hù)層面,自定義鍵盤可以
    的頭像 發(fā)表于 06-05 14:19 ?2401次閱讀

    NVMe IP之AXI4總線分析

    針對(duì)不同的應(yīng)用場(chǎng)景,制定了三個(gè)不同類型的接口,其中包括AXI4-Full、AXI4-Lite以及AXI4-Stream。表1為三種AXI4總線的對(duì)比。 表1三種
    發(fā)表于 06-02 23:05

    高速SSD存儲(chǔ)系統(tǒng)中數(shù)據(jù)緩存控制整體頂層設(shè)計(jì)

    數(shù)據(jù)緩存控制主要實(shí)現(xiàn)了對(duì)大量突發(fā)數(shù)據(jù)的緩存、AXI4接口與AXI4-Stream接口之間的轉(zhuǎn)換和NVMe命令的生成等功能。這里主要介紹相關(guān)開發(fā)流程。
    的頭像 發(fā)表于 04-14 10:46 ?784次閱讀
    高速SSD存儲(chǔ)系統(tǒng)中數(shù)據(jù)緩存控制<b class='flag-5'>器</b>整體頂層設(shè)計(jì)

    在IMX93自定義構(gòu)建期間運(yùn)行bitbake imx image full時(shí)遇到報(bào)錯(cuò)怎么解決?

    在 IMX93 自定義構(gòu)建期間運(yùn)行 bitbake imx image full 時(shí),我們遇到錯(cuò)誤。您能否盡早提供解決方案?我們使用的是 imx 6.6.52 版本。
    發(fā)表于 04-10 06:29

    LabVIEW運(yùn)動(dòng)控制(三):EtherCAT運(yùn)動(dòng)控制的高效加工指令自定義封裝

    LabVIEW高效加工指令自定義封裝
    的頭像 發(fā)表于 04-08 13:49 ?3638次閱讀
    LabVIEW運(yùn)動(dòng)控制(三):EtherCAT運(yùn)動(dòng)控制<b class='flag-5'>器</b>的高效加工指令<b class='flag-5'>自定義</b>封裝

    一文詳解Video In to AXI4-Stream IP核

    Video In to AXI4-Stream IP核用于將視頻源(帶有同步信號(hào)的時(shí)鐘并行視頻數(shù)據(jù),即同步sync或消隱blank信號(hào)或者而后者皆有)轉(zhuǎn)換成AXI4-Stream接口形式,實(shí)現(xiàn)了接口轉(zhuǎn)換。該IP還可使用VTC核,VTC在視頻輸入和視頻處理之間起橋梁作用。
    的頭像 發(fā)表于 04-03 09:28 ?2772次閱讀
    一文詳解Video In to <b class='flag-5'>AXI4-Stream</b> IP核

    如何添加自定義單板

    在開發(fā)過程中,用戶有時(shí)需要?jiǎng)?chuàng)建自定義板配置。本節(jié)將通過一個(gè)實(shí)例講解用戶如何創(chuàng)建屬于自己的machine,下面以g2l-test.conf為例進(jìn)行說明。
    的頭像 發(fā)表于 03-12 14:43 ?1358次閱讀