|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
RT:刚开始学习system verilog 编写testbench,在VCS仿真《SV测试平台编写指南》P33.例2.23时,仿真结果与期望不一致,求慧眼指正!
代码:
module
test_top;
bit on[10];
int total;
initial
begin
foreach (on)
on=i;
foreach (on)
$display("on[%0d]",i,on);
// print
$display("on.sum=%0d",on.sum);
$display("on.sum=%0d",(on.sum+32'b0));
total = on.sum;
$display("total = %0d",total);
if(on.sum >= 32'd5)
$display("sum has 5 or more 1's");
$display("int sum = %0d",on.sum with(int'(item)));
end
endmodule
仿真命令:
vcs -full64 -sverilog -R test_top.sv -y $(VCS_HOME)/packages/sva/ +libext+.sv +incdir+$(VCS_HOME)/packages/sva
仿真结果:
on.sum=1
on.sum=1
total = 1
int sum = 5
书上结果()
on.sum=1
on.sum=5
total = 5
sum has 5 or more 1's
int sum = 5
源代码很简单,类似C语言的类型自动转换,例题想要表明的是不同类型之间的运算,类型会自动向位宽更大的类型转换
区别是代码标红部分,书上的结果是不是错误的!? |
|