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

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

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

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

Vivado之VIO原理及應(yīng)用

OpenFPGA ? 來源:OpenFPGA ? 作者:碎碎思 ? 2021-09-23 16:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

可以定制VIO的輸入和輸出端口的數(shù)量與寬度,用于和FPGA設(shè)計(jì)進(jìn)行連接。由于VIO核與被監(jiān)視和驅(qū)動的設(shè)計(jì)同步,因此應(yīng)用于設(shè)計(jì)的時(shí)鐘約束也適用于VIO核內(nèi)的元件。當(dāng)使用這個(gè)核進(jìn)行實(shí)時(shí)交互時(shí),需要使用Vivado邏輯分析特性。

接下來將介紹VIO的原理及應(yīng)用,內(nèi)容主要包括設(shè)計(jì)原理、添加VIO核、生成比特流文件和下載并調(diào)試設(shè)計(jì)。

設(shè)計(jì)原理

設(shè)計(jì)以下源碼的工程,并添加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后的整體設(shè)計(jì)如下:

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

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

添jia VIO核

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

第一步:用Vivado集成開發(fā)環(huán)境打開需要添加的工程。

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

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

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

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

(1)單擊“General Options”標(biāo)簽,如圖所示,在該標(biāo)簽頁中,按如下參數(shù)進(jìn)行設(shè)置。

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

Input ProbeCount:1。

Output ProbeCount:3。

勾選 Enable Input Probe Activity Detectors前面的復(fù)選框。

(2)單擊“PROBE_IN Ports(0..0)”標(biāo)簽,如圖所示,在該標(biāo)簽頁中,按如下參數(shù)進(jìn)行設(shè)置

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

(3)單擊“PROBE_OUTPorts(0..2)”標(biāo)簽,如圖所示,在該標(biāo)簽頁中,按如下參數(shù)進(jìn)行設(shè)置。

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

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

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

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

第八步:在“Sources”窗口中,單擊“IP Sources”標(biāo)簽。在該標(biāo)簽頁中,可以看到添加了名字為“vio_0”的IP核實(shí)例,如圖所示。找到并展開“vio_0”選項(xiàng)。在展開項(xiàng)中,找到并展開“Instatiation Template”選項(xiàng)。在展開項(xiàng)中,選擇并用鼠標(biāo)左鍵雙擊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”標(biāo)簽。在該標(biāo)簽頁中,找到并展開“Design Sources”選項(xiàng)。在展開項(xiàng)中,找到并用鼠標(biāo)雙擊top.v文件,按下述代碼修改設(shè)計(jì)代碼,并添加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

第 十 步 :保 存 該 設(shè) 計(jì) 文 件 。

生成比特流文件

下載并調(diào)試設(shè)計(jì)

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

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

第二步:給開發(fā)板上電。

第三步:在“HARDWARE MANAGER”對話框中,單擊【Open target】按鈕,出現(xiàn)浮動菜單。在浮動菜單內(nèi),執(zhí)行菜單命令【AutoConnect】。

第四步:在“Hardware”窗口中,選擇FPGA,單擊鼠標(biāo)右鍵,出現(xiàn)浮動菜單。在浮動菜單內(nèi),執(zhí)行菜單命令【Program Device】。

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

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

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

第七步:在Vivado主界面右側(cè)的窗口中,彈出“hw_vio_l”對話框,如圖所示。在該對話框中,單擊+按鈕。出現(xiàn)浮動菜單。在浮動菜單內(nèi),分別雙擊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”設(shè)置為1,此時(shí)a_vio和b_vio的值將送給FPGA設(shè)計(jì)。

第九步:在圖所示的對話框中,將“sel”的“Value”設(shè)置為0,此時(shí)由開發(fā)板上開關(guān)的設(shè)置狀態(tài)確定a和b的值,并將其送給FPGA設(shè)計(jì)。

第十步:關(guān)閉并退出設(shè)計(jì)。

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

    關(guān)注

    1664

    文章

    22509

    瀏覽量

    639572
  • JTAG
    +關(guān)注

    關(guān)注

    6

    文章

    415

    瀏覽量

    75297
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4977

    瀏覽量

    74420
  • VIO
    VIO
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    10670

原文標(biāo)題:【Vivado那些事兒】-VIO原理及應(yīng)用

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    基于Vivado的AD9680 FPGA芯片測試

    在FPGA開發(fā)領(lǐng)域,與高速ADC芯片如AD9680協(xié)同工作是一項(xiàng)充滿挑戰(zhàn)但又極具樂趣的任務(wù)。今天咱們就聊聊基于Vivado平臺,針對AD9680芯片,實(shí)現(xiàn)1G采樣率且4通道(lane4)的FPGA測試程序,并且是用Verilog語言來完成哦。
    的頭像 發(fā)表于 03-18 11:26 ?3132次閱讀

    Vivado中IP核被鎖定的解決辦法

    當(dāng)使用不同版本的Vivado打開工程時(shí),IP核被鎖定的情況較為常見。不同版本的Vivado對IP核的支持程度和處理方式有所不同。
    的頭像 發(fā)表于 02-25 14:00 ?591次閱讀
    <b class='flag-5'>Vivado</b>中IP核被鎖定的解決辦法

    Vivado時(shí)序約束中invert參數(shù)的作用和應(yīng)用場景

    Vivado的時(shí)序約束中,-invert是用于控制信號極性的特殊參數(shù),應(yīng)用于時(shí)鐘約束(Clock Constraints)和延遲約束(Delay Constraints)中,用于指定信號的有效邊沿或邏輯極性。
    的頭像 發(fā)表于 02-09 13:49 ?456次閱讀
    <b class='flag-5'>Vivado</b>時(shí)序約束中invert參數(shù)的作用和應(yīng)用場景

    通過vivado HLS設(shè)計(jì)一個(gè)FIR低通濾波器

    Vivado HLS是一款強(qiáng)大的高層次綜合工具,可將C/C++代碼轉(zhuǎn)換為硬件描述語言(HDL),顯著提升FPGA開發(fā)效率。
    的頭像 發(fā)表于 01-20 16:19 ?570次閱讀
    通過<b class='flag-5'>vivado</b> HLS設(shè)計(jì)一個(gè)FIR低通濾波器

    vivado中常用時(shí)序約束指令介紹

    vivado中,我們常用的時(shí)序約束指令主要包括如下幾個(gè)方面。
    的頭像 發(fā)表于 01-20 16:15 ?668次閱讀

    AMD Vivado Design Suite 2025.2版本現(xiàn)已發(fā)布

    AMD Vivado Design Suite 2025.2 版本現(xiàn)已發(fā)布,新增對 AMD Versal 自適應(yīng) SoC 的設(shè)計(jì)支持,包含新器件支持、QoR 功能及易用性增強(qiáng)。
    的頭像 發(fā)表于 12-09 15:11 ?1378次閱讀

    vivado連接Atry A7-35T死機(jī)怎么解決?

    前提條件: 1)開發(fā)板是Digilent的ARTY A7-35T開發(fā)版,也就是《手把手教你設(shè)計(jì)CPU-RISC-V處理器》中介紹的那塊板子 2)vivado安裝正常,可以啟動,跑make mcs
    發(fā)表于 11-07 06:05

    vcs和vivado聯(lián)合仿真

    我們在做參賽課題的過程中發(fā)現(xiàn),上FPGA開發(fā)板跑系統(tǒng)時(shí),有時(shí)需要添加vivado的ip核。但是vivado仿真比較慢,vcs也不能直接對添加了vivado ip核的soc系統(tǒng)進(jìn)行仿真。在這種情況下
    發(fā)表于 10-24 07:28

    FPGA開發(fā)板vivado綜合、下載程序問題匯總

    在做vivado綜合時(shí)和FPGA下載程序時(shí),我們碰到以下問題,并找出了對應(yīng)的解決方案。 1.could not open include file”e203_defines.v”問題 在做
    發(fā)表于 10-24 07:12

    AMD Vivado ChipScope助力硬件調(diào)試

    許多硬件問題只有在整個(gè)集成系統(tǒng)實(shí)時(shí)運(yùn)行的過程中才會顯現(xiàn)出來。AMD Vivado ChipScope 提供了一套完整的調(diào)試流程,可在系統(tǒng)運(yùn)行期間最大限度提升對可編程邏輯的觀測能力,助力設(shè)計(jì)調(diào)試。
    的頭像 發(fā)表于 09-05 17:08 ?1325次閱讀

    vivado仿真時(shí)GSR信號的影響

    利用vivado進(jìn)行設(shè)計(jì)xilinx FPGA時(shí),寫完設(shè)計(jì)代碼和仿真代碼后,點(diǎn)擊run simulation(啟動modelsim進(jìn)行仿真)。
    的頭像 發(fā)表于 08-30 14:22 ?1618次閱讀
    <b class='flag-5'>vivado</b>仿真時(shí)GSR信號的影響

    Vivado無法選中開發(fā)板的常見原因及解決方法

    在使用 AMD Vivado Design Suite 對開發(fā)板(Evaluation Board)進(jìn)行 FPGA 開發(fā)時(shí),我們通常希望在創(chuàng)建工程時(shí)直接選擇開發(fā)板,這樣 Vivado 能夠自動配置
    的頭像 發(fā)表于 07-15 10:19 ?1990次閱讀
    <b class='flag-5'>Vivado</b>無法選中開發(fā)板的常見原因及解決方法

    AMD Vivado Design Suite 2025.1現(xiàn)已推出

    AMD Vivado Design Suite 2025.1 現(xiàn)已推出,支持 AMD Spartan UltraScale+ 和新一代 Versal 器件。這一最新版本還新增了多項(xiàng)功能,可顯著提升 Versal SSIT 器件的 FMAX 值,并對所有系列產(chǎn)品在 IP 集成和功能驗(yàn)證方面的易用性進(jìn)行了改進(jìn)。
    的頭像 發(fā)表于 06-16 15:16 ?1713次閱讀

    FPGA調(diào)試方式VIO/ILA的使用

    Vivado中,VIO(Virtual Input/Output)是一種用于調(diào)試和測試FPGA設(shè)計(jì)的IP核,它允許設(shè)計(jì)者通過JTAG接口實(shí)時(shí)讀取和寫入FPGA內(nèi)部的寄存器,從而檢查設(shè)計(jì)的運(yùn)行狀態(tài)并修改其行為。VIO IP核提供
    的頭像 發(fā)表于 06-09 09:32 ?4418次閱讀
    FPGA調(diào)試方式<b class='flag-5'>之</b><b class='flag-5'>VIO</b>/ILA的使用

    如何使用One Spin檢查AMD Vivado Design Suite Synth的結(jié)果

    本文講述了如何使用 One Spin 檢查 AMD Vivado Design Suite Synth 的結(jié)果(以 Vivado 2024.2 為例)。
    的頭像 發(fā)表于 05-19 14:22 ?1518次閱讀
    如何使用One Spin檢查AMD <b class='flag-5'>Vivado</b> Design Suite Synth的結(jié)果
    华安县| 襄城县| 宣汉县| 宁安市| 阳原县| 前郭尔| 上思县| 江阴市| 平远县| SHOW| 兴国县| 禹城市| 大姚县| 永年县| 清水河县| 通许县| 信丰县| 胶州市| 长兴县| 右玉县| 观塘区| 遂宁市| 孟州市| 定襄县| 垣曲县| 裕民县| 宁津县| 阿鲁科尔沁旗| 嘉峪关市| 信阳市| 裕民县| 霍林郭勒市| 内黄县| 宁南县| 银川市| 饶阳县| 黄大仙区| 阿瓦提县| 旬阳县| 广宁县| 弋阳县|