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

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

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

3天內不再提示

Vivado之VIO原理及應用

OpenFPGA ? 來源:OpenFPGA ? 作者:碎碎思 ? 2021-09-23 16:11 ? 次閱讀

虛擬輸入輸出(Virtual Input Output,VIO)核是一個可定制的IP核,它可用于實時監視和驅動內部FPGA信號,如圖所示。

48641394-0fe5-11ec-8fb8-12bb97331649.png

可以定制VIO的輸入和輸出端口的數量與寬度,用于和FPGA設計進行連接。由于VIO核與被監視和驅動的設計同步,因此應用于設計的時鐘約束也適用于VIO核內的元件。當使用這個核進行實時交互時,需要使用Vivado邏輯分析特性。

接下來將介紹VIO的原理及應用,內容主要包括設計原理、添加VIO核、生成比特流文件和下載并調試設計。

設計原理

設計以下源碼的工程,并添加VIO核:

`timescale1ns/1ps
//////////////////////////////////////////////////////////////////////////////////
//Company:
//Engineer:
//
//CreateDate:2021/08/222358
//DesignName:
//ModuleName:top
//ProjectName:
//TargetDevices:
//ToolVersions:
//Description:
//
//Dependencies:
//
//Revision:
//Revision0.01-FileCreated
//AdditionalComments:
//
//////////////////////////////////////////////////////////////////////////////////


moduletop(
inputclk,
inputa,
inputb,
outputreg[5:0]z
);
reg[5:0]z_tmp;
wire[5:0]z_vio;
rega_tmp,b_tmp;
wirea_in,b_in;
wiresel;
wirea_vio,b_vio;
assigna_in=sel?a:a_vio;
assignb_in=sel?b:b_vio;
assignz_vio=z;

vio_0Inst_vio(
.clk(clk),//inputwireclk
.probe_in0(z),//inputwire[5:0]probe_in0
.probe_out0(sel),//outputwire[0:0]probe_out0
.probe_out1(a_vio),//outputwire[0:0]probe_out1
.probe_out2(b_vio)//outputwire[0:0]probe_out2
);
always@(posedgeclk)
begin
a_tmp<=a_in;
?b_tmp<=b_in;
end?
always?@(*)
begin
?z_tmp[0]=a_tmp?&?b_tmp;
?z_tmp[1]=~(a_tmp?&?b_tmp);
?z_tmp[2]=a_tmp?|?b_tmp;
?z_tmp[3]=~(a_tmp?|?b_tmp);
?z_tmp[4]=a_tmp?^?b_tmp;
?z_tmp[5]=a_tmp?~^?b_tmp;
end?
always?@(posedge?clk)
begin
z<=z_tmp;
end?

endmodule

添加VIO后的整體設計如下:

48770274-0fe5-11ec-8fb8-12bb97331649.png

如上圖所示,在該設計中添加一個vio核,該IP提供3個輸出端口,其中probe_out0端口用于選擇進入寄存器a_tmp_reg和寄存器b_tmp_reg的信號。當probe_out0輸出1時,將外部端口a和b提供的信號分別連接到寄存器a_tmp_reg和寄存器b_tmp_reg;當probe_out0輸出0時,將vio輸出端口probe_outl和probe_out2信號連接到寄存器a_tmP_reg和b_tmp_reg。這樣就可以通過vio提供的端口來控制整個FPGA的設計。此外,FPGA設計的最終輸出z可以連接到vio模塊的probe_in0輸入端口。

添jia VIO核

本節將添加VIO核,主要步驟如下所示。

第一步:用Vivado集成開發環境打開需要添加的工程。

第二步:在Vivado主界面左側的“Flow Navigator”窗口中找到并展開PROJECT MANAGER選項。在展開項中,找到并選擇“IP Catalog”選項。

第三步:在Vivado主界面的右側窗口中,彈出“IP Catalog”標簽頁。在該標簽頁的搜索框中輸入“VIO”,則在下面出現“VIO(Virtual Input/Output)”,如圖所示,雙擊“VIO(Virtual Input/Output)”。

48a63846-0fe5-11ec-8fb8-12bb97331649.png

第四步:彈出“Customize IP-VIO(VirtualInput/Output)”對話框。

(1)單擊“General Options”標簽,如圖所示,在該標簽頁中,按如下參數進行設置。

48d131ae-0fe5-11ec-8fb8-12bb97331649.png

Input ProbeCount:1。

Output ProbeCount:3。

勾選 Enable Input Probe Activity Detectors前面的復選框。

(2)單擊“PROBE_IN Ports(0..0)”標簽,如圖所示,在該標簽頁中,按如下參數進行設置

48e223ec-0fe5-11ec-8fb8-12bb97331649.png

(3)單擊“PROBE_OUTPorts(0..2)”標簽,如圖所示,在該標簽頁中,按如下參數進行設置。

48f1c478-0fe5-11ec-8fb8-12bb97331649.png

第五步:單擊【OK】按鈕,退出“Customize IP”對話框。

第六步:彈出“Generate Output Products”對話框。

第七步:單擊【Generate】按鈕,退出“Generate Output Products”對話框。

第八步:在“Sources”窗口中,單擊“IP Sources”標簽。在該標簽頁中,可以看到添加了名字為“vio_0”的IP核實例,如圖所示。找到并展開“vio_0”選項。在展開項中,找到并展開“Instatiation Template”選項。在展開項中,選擇并用鼠標左鍵雙擊vio_0.veo,打開其例化模板,如下述代碼所示。

492d2dce-0fe5-11ec-8fb8-12bb97331649.png

//-----------BeginCuthereforINSTANTIATIONTemplate---//INST_TAG
vio_0your_instance_name(
.clk(clk),//inputwireclk
.probe_in0(probe_in0),//inputwire[5:0]probe_in0
.probe_out0(probe_out0),//outputwire[0:0]probe_out0
.probe_out1(probe_out1),//outputwire[0:0]probe_out1
.probe_out2(probe_out2)//outputwire[0:0]probe_out2
);

第九步:在“Sources”窗口中,單擊“Hierarchy”標簽。在該標簽頁中,找到并展開“Design Sources”選項。在展開項中,找到并用鼠標雙擊top.v文件,按下述代碼修改設計代碼,并添加vio的例化代碼。

`timescale1ns/1ps
//////////////////////////////////////////////////////////////////////////////////
//Company:
//Engineer:
//
//CreateDate:2021/08/222358
//DesignName:
//ModuleName:top
//ProjectName:
//TargetDevices:
//ToolVersions:
//Description:
//
//Dependencies:
//
//Revision:
//Revision0.01-FileCreated
//AdditionalComments:
//
//////////////////////////////////////////////////////////////////////////////////


moduletop(
inputclk,
inputa,
inputb,
outputreg[5:0]z
);
reg[5:0]z_tmp;
wire[5:0]z_vio;
rega_tmp,b_tmp;
wirea_in,b_in;
wiresel;
wirea_vio,b_vio;
assigna_in=sel?a:a_vio;
assignb_in=sel?b:b_vio;
assignz_vio=z;

vio_0Inst_vio(
.clk(clk),//inputwireclk
.probe_in0(z),//inputwire[5:0]probe_in0
.probe_out0(sel),//outputwire[0:0]probe_out0
.probe_out1(a_vio),//outputwire[0:0]probe_out1
.probe_out2(b_vio)//outputwire[0:0]probe_out2
);
always@(posedgeclk)
begin
a_tmp<=a_in;
?b_tmp<=b_in;
end?
always?@(*)
begin
?z_tmp[0]=a_tmp?&?b_tmp;
?z_tmp[1]=~(a_tmp?&?b_tmp);
?z_tmp[2]=a_tmp?|?b_tmp;
?z_tmp[3]=~(a_tmp?|?b_tmp);
?z_tmp[4]=a_tmp?^?b_tmp;
?z_tmp[5]=a_tmp?~^?b_tmp;
end?
always?@(posedge?clk)
begin
z<=z_tmp;
end?

endmodule

第 十 步 :保 存 該 設 計 文 件 。

生成比特流文件

下載并調試設計

將生成的比特流文件下載到開發板上的FPGA元器件中,并通過VIO對設計進行監控,主要步驟如下所示。

第一步:將JTAG和FPGA板卡鏈接并和PC連接。

第二步:給開發板上電。

第三步:在“HARDWARE MANAGER”對話框中,單擊【Open target】按鈕,出現浮動菜單。在浮動菜單內,執行菜單命令【AutoConnect】。

第四步:在“Hardware”窗口中,選擇FPGA,單擊鼠標右鍵,出現浮動菜單。在浮動菜單內,執行菜單命令【Program Device】。

第五步:彈出“Program Device”對話框,如圖所示。在該對話框中,選擇合適的“Bit stream file”和“Debug probes files”。

49538564-0fe5-11ec-8fb8-12bb97331649.png

第六步:單擊【Program】按鈕。

第七步:在Vivado主界面右側的窗口中,彈出“hw_vio_l”對話框,如圖所示。在該對話框中,單擊+按鈕。出現浮動菜單。在浮動菜單內,分別雙擊a_vio、b_vio、sel和z_OBUF[5:0],將其添加到“hw_vio_l”對話框中,如圖所示。

497dded6-0fe5-11ec-8fb8-12bb97331649.png

49b9002e-0fe5-11ec-8fb8-12bb97331649.png

第八步:在圖所示的對話框中,先將sel的“Value”設置為1,此時a_vio和b_vio的值將送給FPGA設計。

第九步:在圖所示的對話框中,將“sel”的“Value”設置為0,此時由開發板上開關的設置狀態確定a和b的值,并將其送給FPGA設計。

第十步:關閉并退出設計。

編輯:jq
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1629

    文章

    21758

    瀏覽量

    604240
  • JTAG
    +關注

    關注

    6

    文章

    401

    瀏覽量

    71719
  • 代碼
    +關注

    關注

    30

    文章

    4801

    瀏覽量

    68735
  • VIO
    VIO
    +關注

    關注

    0

    文章

    11

    瀏覽量

    10153

原文標題:【Vivado那些事兒】-VIO原理及應用

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    TCAN1051HGV VIO管腳作用是什么?

    我們項目中準備選用TCAN1051HGV,在閱讀其規格書,請問VIO管腳作用是什么?我們的CPU電壓供電電壓是3.3V,而TCAN1051HGV電壓VCC為5V,請問VIO管腳是不是與MCU的供電電壓連接在一起,如果連接在一起,請問CANH/CANL高電平是5V還是3.
    發表于 12-17 07:46

    一種降低VIO/VSLAM系統漂移的新方法

    本文提出了一種新方法,通過使用點到平面匹配將VIO/VSLAM系統生成的稀疏3D點云與數字孿生體進行對齊,從而實現精確且全球一致的定位,無需視覺數據關聯。所提方法為VIO/VSLAM系統提供了緊密
    的頭像 發表于 12-13 11:18 ?177次閱讀
    一種降低<b class='flag-5'>VIO</b>/VSLAM系統漂移的新方法

    Xilinx_Vivado_SDK的安裝教程

    I Agree,然后點擊 Next: 選擇 Vivado HL System Edition(一般選擇這個設計套件比較完整,它比 Vivado HL Design Edition 多了一個 System Generator for DSP with Mat
    的頭像 發表于 11-16 09:53 ?1223次閱讀
    Xilinx_<b class='flag-5'>Vivado</b>_SDK的安裝教程

    每次Vivado編譯的結果都一樣嗎

    很多FPGA工程師都有這種困惑,Vivado每次編譯的結果都一樣嗎? 在AMD官網上,有這樣一個帖子: Are Vivado results repeatable for identical
    的頭像 發表于 11-11 11:23 ?436次閱讀
    每次<b class='flag-5'>Vivado</b>編譯的結果都一樣嗎

    vivado導入舊版本的項目,IP核心被鎖。

    vivado導入其他版本的項目的時候,IP核被鎖,無法解開,請問該如何解決。 使用軟件:vivado 2019.2 導入項目使用版本:vivado 2018
    發表于 11-08 21:29

    使用Vivado通過AXI Quad SPI實現XIP功能

    本博客提供了基于2023.2 Vivado的參考工程,展示如何使用Microblaze 地執行(XIP)程序,并提供一個簡單的bootloader。
    的頭像 發表于 10-29 14:23 ?402次閱讀
    使用<b class='flag-5'>Vivado</b>通過AXI Quad SPI實現XIP功能

    Vivado使用小技巧

    有時我們對時序約束進行了一些調整,希望能夠快速看到對應的時序報告,而又不希望重新布局布線。這時,我們可以打開布線后的dcp,直接在Vivado Tcl Console里輸入更新后的時序約束。如果調整
    的頭像 發表于 10-24 15:08 ?377次閱讀
    <b class='flag-5'>Vivado</b>使用小技巧

    Vivado編輯器亂碼問題

    ,但是在Vivado里面打開用sublime寫的代碼之后,經常出現中文亂碼,讓人很不舒服。究其原因就是一般來說第三方的編輯器是采用utf8的編碼方式,而vivado的text editor不是這種方式。
    的頭像 發表于 10-15 17:24 ?850次閱讀
    <b class='flag-5'>Vivado</b>編輯器亂碼問題

    Vivado 2024.1版本的新特性(2)

    從綜合角度看,Vivado 2024.1對SystemVerilog和VHDL-2019的一些特性開始支持。先看SystemVerilog。
    的頭像 發表于 09-18 10:34 ?966次閱讀
    <b class='flag-5'>Vivado</b> 2024.1版本的新特性(2)

    Vivado 2024.1版本的新特性(1)

    Vivado 2024.1已正式發布,今天我們就來看看新版本帶來了哪些新特性。
    的頭像 發表于 09-18 10:30 ?1452次閱讀
    <b class='flag-5'>Vivado</b> 2024.1版本的新特性(1)

    基于CANoe的VIO系統應用測試方案介紹#CANoe #VTHiL

    VIO
    北匯信息POLELINK
    發布于 :2024年09月11日 09:23:20

    深入了解基于CANoe的VIO系統應用

    VIO System是Vector推出的一款適用于前期單板級測試使用的硬件系統,不僅可以進行總線通訊測試,也可以同時進行I/O信號測試,可以讓工程師在ECU或者傳感器開發前期就發現問題,能夠盡早排查解決,極大降低了人力物力開發成本。
    的頭像 發表于 09-01 16:21 ?3011次閱讀
    深入了解基于CANoe的<b class='flag-5'>VIO</b>系統應用

    AD7682的VIO用什么地做參考,數字地還是模擬地?

    AD7682請問VIO的參考地是與VDD一樣,用模擬地GND,還是數字地DGND
    發表于 05-21 06:44

    深入探索Vivado非工程模式FPGA設計流程

    在設計過程的每個階段,設計者均可以打開Vivado集成開發環境,對存儲器中保存的當前設計進行分析和操作。
    發表于 04-03 09:36 ?1058次閱讀
    深入探索<b class='flag-5'>Vivado</b>非工程模式FPGA設計流程

    使用P4和Vivado工具簡化數據包處理設計

    電子發燒友網站提供《使用P4和Vivado工具簡化數據包處理設計.pdf》資料免費下載
    發表于 01-26 17:49 ?0次下載
    使用P4和<b class='flag-5'>Vivado</b>工具簡化數據包處理設計
    主站蜘蛛池模板: 成人观看网站a| bt磁力在线搜索| 色成人在线| 四虎884tt紧急大通知| 超色视频| www.亚洲黄色| 午夜精品视频在线观看美女| 另类性欧美喷潮videofree| 五月天激情综合网| 特黄特黄aaaa级毛片免费看| 99热最新在线| 无遮挡高清一级毛片免费| 日韩免费观看视频| 免费黄色地址| 91久久婷婷国产综合精品青草| 天天综合天天综合| 国产在线精品香蕉综合网一区| 男人视频在线观看| 精品国产免费久久久久久婷婷| 中文字幕一区二区三区免费看| 色吧在线视频在线观看| 4438x成人全国| 办公室桌震娇喘视频大全在线| 五月婷婷综合色| 欧美a一| 丁香四月婷婷| 奇米影视四色7777久久精品| 啪啪.com| 另类激情亚洲| 成人久久久精品乱码一区二区三区| 天堂网免费| 毛片网站网址| 亚洲午夜精品久久久久久抢 | 高清不卡毛片免费观看| 最新色站| 午夜艹逼| 黄色片视频网| 国产拍拍视频| 波多野结衣在线一区| 日本欧美强乱视频在线| 91国在线啪精品一区|