摘要
文章主要介绍Xilinx VIVADO定制IP核—虚拟输入输出(VIO)的使用方法。以led工程为例,观察信号timer_cnt 和 led的变化,并模拟rst_n。
一、VIO配置
(1)单击 IP Catalog 添加 VIO 的 IP
(2)Input Probe Count用于观察timer_cnt 和 led的变化,
Output Probe Count用于模拟rst_n。
(3)设置被观察信号的位宽
(4)设置模拟信号的位宽和初值
二、RTL
module led(
input sys_clk,
// input rst_n,
output reg [3:0] led
);
reg [31:0] timer_cnt;
wire rst_n;
always@(posedge sys_clk or negedge rst_n)
begin
if (!rst_n)
timer_cnt <= 32'd0 ;
else if(timer_cnt >= 32'd49_999_999)
timer_cnt <= 32'd0;
else
timer_cnt <= timer_cnt + 32'd1;
end
always@(posedge sys_clk or negedge rst_n)
begin
if (!rst_n)
led <= 4'd0 ;
else if(timer_cnt >= 32'd49_999_999)
led <= ~led;
else
led <= led;
end
vio vio_inst1
(
.clk(sys_clk), // input wire clk
.probe_in0(led), // input wire [3 : 0] probe_in0
.probe_in1(timer_cnt), // input wire [31 : 0] probe_in1
.probe_out0(rst_n) // output wire [0 : 0] probe_out0
);
endmodule
三、在线调试
(1)生成 Bitstream、连接硬件、下载程序。
(2)双击VIO模块,添加进入VIO调试,并添加信号进入观察窗口。
(3)可以看到,信号timer_cnt 和 led随着时间不断的变化。
(4)手动调节restn信号为0,进行复位。信号timer_cnt 和 led全部变为0。