日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于FPGA設計的sysGen算法系統(tǒng)設計

電子設計 ? 來源:CSDN 博主 ? 作者: 沒落騎士 ? 2020-12-30 12:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、前言

利用FPGA設計算法一直以來都是熱點,同樣也是難點。將復雜的數(shù)學公式 模型通過硬件系統(tǒng)來搭建,在低延時 高并行性等優(yōu)勢背后極大提高了設計難度和開發(fā)周期。Xilinx公司的sysGen(system generator)工具擴展了MATLABsimulink,提供很多IP Catalog中沒有的基礎模塊和針對DSP應用的硬件模型。工程師利用豐富的模塊和MATLAB強大的數(shù)據(jù)處理及可視化能力能夠更快速完成設計與仿真驗證工作。

二、sysGen算法系統(tǒng)設計

本文以個最簡單的例子講述利用sysGen搭建算法IP核,并集成到IP Integrator中作為ZYNQ PS端CPU的“定制外設”。僅用于測試目的。設計需求:在sysGen中搭建系統(tǒng),將輸入定點整數(shù)數(shù)據(jù)*2后輸出,輸入位寬為8bit。

pIYBAF9uKDmAGlS-AACLMgeqkdk369.png

在System Generator token中設定仿真步長為1sec。點擊需要觀測的信號連線,右擊選擇Xilinx add to viewer。啟動仿真并啟動Xilinx waveform viewer:

本質上就是調用Vivado的XSim工具進行行為仿真。仿真結果可見完成預期目標,現(xiàn)雙擊System Generator token ,選擇Compiliation類型為IP Catalog并勾選Create testbench,按下Generate生成IP核。

三、仿真測試

根據(jù)User Guide介紹sysGen是“周期和比特精準的”,我們還是在Vivado環(huán)境下再次驗證下。netlist文件夾內子文件夾ip_catalog中為IP核示例工程,由于自動生成了testbench,打開后直接進行行為仿真。sysGen在創(chuàng)建testbench時會將經(jīng)過gatein和gateout的數(shù)據(jù)儲存到文件中,testbench進行的工作為:將gatein數(shù)據(jù)作為測試激勵送入到相應設計輸入端口,之后把設計輸出得到結果與gateout文件數(shù)據(jù)進行逐一比較從而驗證設計是否與sysGen環(huán)境下仿真結果一致。

發(fā)現(xiàn)個比較有意思的現(xiàn)象,自動生成的testbench中clock生成并約束的50MHz,而是認為進行了拓展。

仿真波形如圖:

將clock處改動為50MHz后,經(jīng)過測試發(fā)現(xiàn)如果系統(tǒng)一開始就輸入數(shù)據(jù),前幾個數(shù)據(jù)沒有被真正處理,輸出錯誤??赡苁擒浖﨎UG吧,不過這種情況也非常少見,實際系統(tǒng)中輸入數(shù)據(jù)大多情況會啟動一段時間后才輸入。這里等待100ns后再啟動clock翻轉:

改動后仿真波形:

四、AXI-Stream總線形式IP

到此算法IP的設計與驗證結束。如果想將這個IP核導入到IP Integrator中作為CPU的外設,其接口必須滿足AXI總線標準,因此回到sysGen中更改端口名稱和位寬。端口要符合AXI-Stream標準信號名稱,位寬為8bit整數(shù)倍。

o4YBAF9uKEiAVeSPAARNJArcqqo731.png

生成IP核后,打開新的工程,導入該IP核到repository。

五、Block Design系統(tǒng)搭建

系統(tǒng)結構與上一篇該系列博文類似,均是以AXI DMA為核心的Loop系統(tǒng),只是將AXI-Stream Data FIFO改成了自定義IP核。由于IP核slave和master接口只包含tdata和tvalid信號,因此需要添加接口銜接的一些簡單邏輯。tready信號和tkeep信號直接連接constant使用常數(shù)驅動,DMA的s_axis_s2mm接口的tlast由wrapper內計數(shù)器邏輯驅動,將system中FCLK_CLK0 peripheral_aresetn m_axis_tvalid和s_axis_s2mm_tlast信號引出到wrapper中。

有一點比較坑:自定義IP通過AXI總線與DMA互聯(lián)時,總線下相應的接口不一定會正確對應,所以需要分別將兩端的每個接口相連??梢酝ㄟ^打開綜合后的設計來確認連線無誤。

自動生成wrapper后改動添加代碼如下:
`timescale 1 ps / 1 ps

module user_wrapper
(DC,
DDR_addr,
DDR_ba,
DDR_cas_n,
DDR_ck_n,
DDR_ck_p,
DDR_cke,
DDR_cs_n,
DDR_dm,
DDR_dq,
DDR_dqs_n,
DDR_dqs_p,
DDR_odt,
DDR_ras_n,
DDR_reset_n,
DDR_we_n,
//FCLK_CLK0,
FIXED_IO_ddr_vrn,
FIXED_IO_ddr_vrp,
FIXED_IO_mio,
FIXED_IO_ps_clk,
FIXED_IO_ps_porb,
FIXED_IO_ps_srstb,
RES,
SCLK,
SDIN,
VBAT,
VDD
//m_axis_tvalid,
//peripheral_aresetn,
//s_axis_s2mm_tlast
);
output DC;
inout [14:0]DDR_addr;
inout [2:0]DDR_ba;
inout DDR_cas_n;
inout DDR_ck_n;
inout DDR_ck_p;
inout DDR_cke;
inout DDR_cs_n;
inout [3:0]DDR_dm;
inout [31:0]DDR_dq;
inout [3:0]DDR_dqs_n;
inout [3:0]DDR_dqs_p;
inout DDR_odt;
inout DDR_ras_n;
inout DDR_reset_n;
inout DDR_we_n;
//output FCLK_CLK0;
inout FIXED_IO_ddr_vrn;
inout FIXED_IO_ddr_vrp;
inout [53:0]FIXED_IO_mio;
inout FIXED_IO_ps_clk;
inout FIXED_IO_ps_porb;
inout FIXED_IO_ps_srstb;
output RES;
output SCLK;
output SDIN;
output VBAT;
output VDD;
//output [0:0]m_axis_tvalid;
//output [0:0]peripheral_aresetn;
//input s_axis_s2mm_tlast;

localparam DATA_NUM = 256;

wire DC;
wire [14:0]DDR_addr;
wire [2:0]DDR_ba;
wire DDR_cas_n;
wire DDR_ck_n;
wire DDR_ck_p;
wire DDR_cke;
wire DDR_cs_n;
wire [3:0]DDR_dm;
wire [31:0]DDR_dq;
wire [3:0]DDR_dqs_n;
wire [3:0]DDR_dqs_p;
wire DDR_odt;
wire DDR_ras_n;
wire DDR_reset_n;
wire DDR_we_n;
wire FCLK_CLK0;
wire FIXED_IO_ddr_vrn;
wire FIXED_IO_ddr_vrp;
wire [53:0]FIXED_IO_mio;
wire FIXED_IO_ps_clk;
wire FIXED_IO_ps_porb;
wire FIXED_IO_ps_srstb;
wire RES;
wire SCLK;
wire SDIN;
wire VBAT;
wire VDD;
wire [0:0]m_axis_tvalid;
wire [0:0]peripheral_aresetn;
wire s_axis_s2mm_tlast;

reg [8-1:0] cnt;
wire add_cnt;
wire end_cnt;

system system_i
(.DC(DC),
.DDR_addr(DDR_addr),
.DDR_ba(DDR_ba),
.DDR_cas_n(DDR_cas_n),
.DDR_ck_n(DDR_ck_n),
.DDR_ck_p(DDR_ck_p),
.DDR_cke(DDR_cke),
.DDR_cs_n(DDR_cs_n),
.DDR_dm(DDR_dm),
.DDR_dq(DDR_dq),
.DDR_dqs_n(DDR_dqs_n),
.DDR_dqs_p(DDR_dqs_p),
.DDR_odt(DDR_odt),
.DDR_ras_n(DDR_ras_n),
.DDR_reset_n(DDR_reset_n),
.DDR_we_n(DDR_we_n),
.FCLK_CLK0(FCLK_CLK0),
.FIXED_IO_ddr_vrn(FIXED_IO_ddr_vrn),
.FIXED_IO_ddr_vrp(FIXED_IO_ddr_vrp),
.FIXED_IO_mio(FIXED_IO_mio),
.FIXED_IO_ps_clk(FIXED_IO_ps_clk),
.FIXED_IO_ps_porb(FIXED_IO_ps_porb),
.FIXED_IO_ps_srstb(FIXED_IO_ps_srstb),
.RES(RES),
.SCLK(SCLK),
.SDIN(SDIN),
.VBAT(VBAT),
.VDD(VDD),
.m_axis_tvalid(m_axis_tvalid),
.peripheral_aresetn(peripheral_aresetn),
.s_axis_s2mm_tlast(s_axis_s2mm_tlast));

always @(posedge FCLK_CLK0)begin
if(!peripheral_aresetn)begin
cnt end
else if(add_cnt)begin
if(end_cnt)
cnt else
cnt end
end

assign add_cnt = m_axis_tvalid;
assign end_cnt = add_cnt && cnt== DATA_NUM-1;

assign s_axis_s2mm_tlast = end_cnt;

endmodule

user_wrapper

當自定義IP核輸出256個數(shù)據(jù)時,拉高tlast信號結束傳輸。打開綜合后的設計,添加調試探針,抓取DMA與自定義IP之間的接口信號,set up debug后完成接下來的流程。

六、軟硬件聯(lián)調

在硬件系統(tǒng)中定義數(shù)據(jù)幀長度為256個,數(shù)據(jù)位寬為16bit,因此C代碼中DMA啟動傳輸函數(shù)中數(shù)據(jù)長度參數(shù)為512byte。測試數(shù)據(jù)生成與檢測代碼非常簡單:

我們直接查看ILA抓取AXI S總線波形:


看到CPU產(chǎn)生數(shù)據(jù)從1到4重復遞增,IP核輸出結果從2到8重復遞增,輸出為輸入的2倍。

傳輸完成后進入DMA發(fā)送和接收中斷,軟件檢測結果正確。在Memory窗口能夠直接查看內存絕對地址里的數(shù)據(jù),選定DDR接收緩存區(qū)起始地址,其中的數(shù)據(jù)與AXI總線傳回數(shù)據(jù)一致,證明系統(tǒng)聯(lián)調成功。之后任意算法模塊均可采用本文方式進行設計和集成,可以說一勞永逸!

編輯:hfy


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于FPGA的低照度條件下EBAPS圖像混合噪聲去除算法

    本文提出了基于可編程邏輯門陣列(field programmable gate array,FPGA)的開關融合中值-高斯(open and close mix-median-Gaussian,OCMMG)濾波算法。
    的頭像 發(fā)表于 03-11 09:24 ?7206次閱讀
    基于<b class='flag-5'>FPGA</b>的低照度條件下EBAPS圖像混合噪聲去除<b class='flag-5'>算法</b>

    FPGA在光纖互感器與行波測距系統(tǒng)中的應用研究

    光纖互感器與行波故障測距是電力系統(tǒng)中兩類重要的先進測量技術,這兩類系統(tǒng)均需要對高速變化的信號進行精確采樣、實時處理并實現(xiàn)裝置間高精度時間同步。FPGA憑借其硬件并行處理能力和確定性時序在其
    的頭像 發(fā)表于 01-13 17:56 ?503次閱讀
    <b class='flag-5'>FPGA</b>在光纖互感器與行波測距<b class='flag-5'>系統(tǒng)</b>中的應用研究

    基于DSP與FPGA異構架構的高性能伺服控制系統(tǒng)設計

    DSP+FPGA架構在伺服控制模塊中的應用,成功解決了高性能伺服系統(tǒng)對實時性、精度和復雜度的多重需求。通過合理的功能劃分,DSP專注于復雜算法和上層控制,FPGA處理高速硬件任務,兩者
    的頭像 發(fā)表于 12-04 15:38 ?835次閱讀
    基于DSP與<b class='flag-5'>FPGA</b>異構架構的高性能伺服控制<b class='flag-5'>系統(tǒng)</b>設計

    嵌入式與FPGA的區(qū)別

    ,一是嵌入式軟件開發(fā),主要與嵌入式cao作系統(tǒng)、應用軟件等有關。第二是嵌入式硬件開發(fā),需要掌握硬件設計、模擬仿真、 PCB設計等技能。 ?2、FPGA:它是在PAL、GAL、CPLD等可編程
    發(fā)表于 11-20 07:12

    嵌入式和FPGA的區(qū)別

    ,FPGA憑借硬件并行處理能力,能夠實現(xiàn)納秒級響應,遠優(yōu)于微秒級的嵌入式系統(tǒng)。 功耗效率上,嵌入式系統(tǒng)針對特定應用優(yōu)化后能效比很高,而FPGA由于可編程特性通常功耗較大,但在特定
    發(fā)表于 11-19 06:55

    復雜的軟件算法硬件IP核的實現(xiàn)

    Compiler)將算法編譯轉化為可綜合的 Verilog 文本,進而通過 FPGA 在硬件上實現(xiàn)算法。 1.C to Hardware 技術簡介 AltiumDesigner
    發(fā)表于 10-30 07:02

    Camellia算法的實現(xiàn)二(基于開源蜂鳥E203協(xié)處理器)

    模塊發(fā)送給上位機。經(jīng)過改進后的Camellia系統(tǒng)測試方便,實現(xiàn)FPGA與PC機的友好交互。 核心算法模塊的結構如上圖所示,可分為子模塊:密鑰模塊(key),加密模塊(encode),解密
    發(fā)表于 10-30 06:35

    PathFinder在FPGA中的角色與缺陷

    自 1990 年代末以來,PathFinder 一直是 FPGA 布線(routing)階段的主力算法,為設計工具提供“能連通又不重疊”的路徑規(guī)劃方案。
    的頭像 發(fā)表于 10-15 10:44 ?662次閱讀
    PathFinder在<b class='flag-5'>FPGA</b>中的角色與缺陷

    基于FPGA的CLAHE圖像增強算法設計

    CLAHE圖像增強算法又稱為對比度有限的自適應直方圖均衡算法,其算法原理是通過有限的調整圖像局部對比度來增強有效信號和抑制噪聲信號。
    的頭像 發(fā)表于 10-15 10:14 ?822次閱讀
    基于<b class='flag-5'>FPGA</b>的CLAHE圖像增強<b class='flag-5'>算法</b>設計

    25年11月上海FPGA算法實現(xiàn)與應用技術高級研修分享

    設計仿真能力。   深入學習數(shù)據(jù)流,不僅是算法FPGA&DSP設計者的需求,對于從事接口設計工作、軟件配置工作、系統(tǒng)測試工作,項目管理工作的同事,也同樣有非常重要的意義。在實際工作中,對于
    發(fā)表于 10-11 11:55

    基于FPGA實現(xiàn)FOC算法之PWM模塊設計

    哈嘍,大家好,從今天開始正式帶領大家從零到一,在FPGA平臺上實現(xiàn)FOC算法,整個算法的框架如下圖所示,如果大家對算法的原理不是特別清楚的話,可以先去百度上學習一下,本教程著重介紹實現(xiàn)
    的頭像 發(fā)表于 07-17 15:21 ?3737次閱讀
    基于<b class='flag-5'>FPGA</b>實現(xiàn)FOC<b class='flag-5'>算法</b>之PWM模塊設計

    基于Matlab與FPGA的雙邊濾波算法實現(xiàn)

    前面發(fā)過中值、均值、高斯濾波的文章,這些只考慮了位置,并沒有考慮相似度。那么雙邊濾波來了,既考慮了位置,有考慮了相似度,對邊緣的保持比前幾個好很多,當然實現(xiàn)上也是復雜很多。本文將從原理入手,采用Matlab與FPGA設計實現(xiàn)雙邊濾波算法。
    的頭像 發(fā)表于 07-10 11:28 ?4849次閱讀
    基于Matlab與<b class='flag-5'>FPGA</b>的雙邊濾波<b class='flag-5'>算法</b>實現(xiàn)

    基于FPGA的壓縮算法加速實現(xiàn)

    本設計中,計劃實現(xiàn)對文件的壓縮及解壓,同時優(yōu)化壓縮中所涉及的信號處理和計算密集型功能,實現(xiàn)對其的加速處理。本設計的最終目標是證明在充分并行化的硬件體系結構 FPGA 上實現(xiàn)該算法時,可以大大提高該算法
    的頭像 發(fā)表于 07-10 11:09 ?2615次閱讀
    基于<b class='flag-5'>FPGA</b>的壓縮<b class='flag-5'>算法</b>加速實現(xiàn)

    西門子桌面級原型驗證系統(tǒng)Veloce proFPGA介紹

    子,工程師可以從 proFPGA Uno 系統(tǒng)開始進行 IP 或子片上系統(tǒng) (SoC) 的開發(fā),然后將其重復用于完整的 SoC 和專用集成電路 (ASIC)原型設計。這只需要將 Uno 中的相同
    的頭像 發(fā)表于 06-30 13:53 ?2019次閱讀

    自動兵力生成算法系統(tǒng)有哪些

    行業(yè)芯事行業(yè)資訊
    北京華盛恒輝科技
    發(fā)布于 :2025年06月11日 11:16:12
    南部县| 洞头县| 西和县| 宜春市| 安溪县| 清徐县| 香格里拉县| 万源市| 通城县| 龙里县| 贵阳市| 清水河县| 宁武县| 错那县| 呼图壁县| 常宁市| 纳雍县| 岗巴县| 南涧| 孝感市| 靖州| 渑池县| 阿克苏市| 张北县| 临夏县| 孝昌县| 五河县| 屏东县| 溧水县| 乐都县| 宁都县| 汶川县| 平顶山市| 青河县| 隆昌县| 江阴市| 玉溪市| 汨罗市| 涞源县| 松阳县| 绵阳市|