integer 用法
时间:10-02
整理:3721RD
点击:
最近 , 写了一个测试uart程序的testbench,在testbench中使用 了 integer,用于for循环,但是modelsim仿真 波形中,integer 值一直为 未知,找了好多资料,也未能解决。请大家帮忙看看,谢谢!
testbench 如下:
task tx_task;
input [7:0] txdata;
integer i;
begin
fpga_rxd = 1'b0;
#tx_bps;
for(i=0; i<8; i=i+1)
begin
fpga_rxd = txdata[7-i];
#tx_bps;
end
// fpga_rxd = 1'b1;
// #tx_bps;
end
endtask
仿真波形如下:
testbench 如下:
task tx_task;
input [7:0] txdata;
integer i;
begin
fpga_rxd = 1'b0;
#tx_bps;
for(i=0; i<8; i=i+1)
begin
fpga_rxd = txdata[7-i];
#tx_bps;
end
// fpga_rxd = 1'b1;
// #tx_bps;
end
endtask
仿真波形如下:
integer i;属于局部变量 设置成全局变量才能看到
i不会生成对应的寄存器,for语句只是综合出8组电路,相当于
fpga_rxd = txdata[7];
fpga_rxd = txdata[6];
fpga_rxd = txdata[5];
fpga_rxd = txdata[4];
……
要区别这里的for与计算机程序里的for作用是不一样的
好的,谢谢回复
3Q 谢谢回复