在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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時會將經過gatein和gateout的數(shù)據(jù)儲存到文件中,testbench進行的工作為:將gatein數(shù)據(jù)作為測試激勵送入到相應設計輸入端口,之后把設計輸出得到結果與gateout文件數(shù)據(jù)進行逐一比較從而驗證設計是否與sysGen環(huán)境下仿真結果一致。

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

仿真波形如圖:

將clock處改動為50MHz后,經過測試發(fā)現(xiàn)如果系統(tǒng)一開始就輸入數(shù)據(jù),前幾個數(shù)據(jù)沒有被真正處理,輸出錯誤。可能是軟件BUG吧,不過這種情況也非常少見,實際系統(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產生數(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學習資料!數(shù)字信號處理、傅里葉變換與FPGA開發(fā)等

    ~ 01、數(shù)字信號處理的FPGA實現(xiàn) 旨在講解前端數(shù)字信號處理算法的高效實現(xiàn)。首先概述了當前的FPGA技術、器件以及用于設計最先進DSP系統(tǒng)的工具。闡述了計算機
    發(fā)表于 04-07 16:41

    FPGA應用于人工智能的趨勢

    高速和低功耗 : FPGA通過優(yōu)化硬件結構和算法實現(xiàn),能夠在處理復雜的人工智能任務時保持高速和低功耗,這對于資源有限的嵌入式系統(tǒng)和移動設備尤為重要。 靈活性 : FPGA的可編程性使
    的頭像 發(fā)表于 10-25 09:20 ?1779次閱讀

    FPGA在圖像處理領域的優(yōu)勢有哪些?

    FPGA具有可重配置性,可以在運行時根據(jù)需要對硬件進行重新配置。這使得FPGA在處理不同圖像任務時,可以靈活地調整硬件資源,以適應不同的算法和場景需求。這種可重配置性提高了系統(tǒng)的可擴
    發(fā)表于 10-09 14:36

    FPGA算法工程師、邏輯工程師、原型驗證工程師有什么區(qū)別?

    ,如數(shù)字信號處理、圖像處理、人工智能等,并將其轉化為適合 FPGA 實現(xiàn)的硬件邏輯。重點在于算法的性能提升、資源利用效率以及與系統(tǒng)的集成。 FPGA 邏輯工程師: 側重于
    發(fā)表于 09-23 18:26

    為什么FPGA屬于硬件,還需要搞算法

    交流學習,共同進步。 交流問題(一) Q:為什么FPGA屬于硬件,還需要搞算法? 剛入門準備學fpga但一開始學的是語法,感覺像是電路用軟件語言描述出來,fpga
    發(fā)表于 09-09 16:54

    【招聘】verilog vhdl FPGA

    1.熟悉FPGA架構及應用,熟悉圖像算法FPGA實現(xiàn)。 2.熟悉verilog vhdl,熟悉Xilinx或Intel等開發(fā)工具。 3.有AI算法
    發(fā)表于 09-02 15:50

    FPGA-5G通信算法的基本套路

    ? 一個完整的通信系統(tǒng),是十分龐大的,沒有幾百上千人,在短時間內是做不好的。本文僅僅針對5G NR中的基帶算法部分,做一個簡單梳理。 對于5G通信系統(tǒng), 站在基站側的角度,那么下行方向的整個處理
    發(fā)表于 08-15 17:34

    基于 FPGA 的會議系統(tǒng)設計

    比較好的魯棒性。Adaboost 是一種 迭代算法,其核心思想是針對同一個訓練集訓練不同的弱分類器,然后把這些弱 分類器集合起來,構成一個更強的最終分類器。Adaboost 算法系統(tǒng)具有較高的 檢測
    發(fā)表于 08-01 18:40

    FPGA在自動駕駛領域有哪些應用?

    通過實現(xiàn)控制算法來增加系統(tǒng)的安全性和穩(wěn)定性。例如,FPGA可以用于實現(xiàn)車輛的防碰撞系統(tǒng),通過實時監(jiān)測并處理傳感器數(shù)據(jù),預測并避免潛在的碰撞風險。 四、具體實例以國內某個自動豪華車型為例
    發(fā)表于 07-29 17:09

    FPGA在人工智能中的應用有哪些?

    FPGA可以快速調整其硬件結構以適應新的算法,而無需更換整個硬件系統(tǒng)。 二、云計算加速FPGA也被廣泛應用于云計算領域,用于加速各種網(wǎng)絡功能,如數(shù)據(jù)包的控制、分類和改寫等。這樣可以提
    發(fā)表于 07-29 17:05

    FPGA與MCU的應用場景

    到Windows無響應,而MCU只要設計的問題不大,一般跑飛的概率會小很多,而FPGA的實時系統(tǒng)的低延遲在某些場景會更勝一籌。 硬件級可編程性的應用 對于創(chuàng)新性的應用或尚未成熟的算法,開發(fā)者可以
    發(fā)表于 07-29 15:45

    基于FPGA的指紋識別系統(tǒng)設計

    隨著人們對安全問題的日益重視,指紋識別作為一種高效、可靠的生物識別技術,在多個領域得到了廣泛應用。本文設計并實現(xiàn)了一種基于FPGA的嵌入式指紋識別系統(tǒng),該系統(tǒng)利用FPGA的高集成度、低
    的頭像 發(fā)表于 07-17 16:33 ?1907次閱讀

    基于FPGA的CCD工業(yè)相機系統(tǒng)設計

    基于FPGA的CCD工業(yè)相機系統(tǒng)設計是一個綜合性的項目,它結合了硬件電路設計、FPGA編程以及圖像處理技術。以下是一個詳細的系統(tǒng)設計方案,包括設計概述、硬件架構、
    的頭像 發(fā)表于 07-17 11:24 ?1976次閱讀

    基于FPGA的圖像采集與顯示系統(tǒng)設計

    源和固有的并行處理能力,在數(shù)字信號處理、硬件加速、汽車電子等領域得到了廣泛應用。在圖像采集與顯示系統(tǒng)中,FPGA能夠實現(xiàn)高速、并行的數(shù)據(jù)處理,顯著提高系統(tǒng)的實時性和性能。本文設計了一個基于FP
    的頭像 發(fā)表于 07-17 10:58 ?2681次閱讀

    FPGA設計經驗之圖像處理

    今天和大俠簡單聊一聊基于FPGA的圖像處理,之前也和各位大俠聊過相關的圖像處理,這里面也超鏈接了幾篇,具體如下: 圖像邊緣檢測算法體驗步驟(Photoshop,Matlab)算法系
    發(fā)表于 06-12 16:26
    主站蜘蛛池模板: 亚洲qingse中文字幕久久 | 免费啪视频观在线视频在线 | 性色成人网 | 亚洲一区免费在线观看 | 一级特黄性色生活片一区二区 | 欧美三级黄视频 | 午夜一级毛片 | 黄色www网站 | 亚洲午夜久久影院 | 91成人免费福利网站在线 | 1v1高h肉爽文bl | 午夜传媒 | 免费看一级黄色录像 | 日本特黄特色aaa大片免费欧 | 视色4se在线视频播放 | 男人操女人免费视频 | 成人免费午间影院在线观看 | 4438全国最大成人免费高清 | 婷婷久久综合九色综合98 | 国产成人亚洲毛片 | 久久在精品线影院精品国产 | 视色4se在线视频播放 | www.91在线播放| 日本一区视频 | 久久久五月天 | 夜夜精品视频 | 国产伦精品一区二区三区女 | 久久综合九色综合欧美狠狠 | 黑色丝袜美女被网站 | wwwxxxx在线观看| 日本一视频一区视频二区 | 成人在线播放av | 人人干人人模 | 激情五月激情综合网 | 午夜婷婷网 | 99涩涩| 欧美性色黄在线视 | 国模大胆一区二区三区 | 日日摸人人拍人人澡 | 不卡视频免费在线观看 | 成人免费观看一区二区 |