微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 仿真《SV测试平台编写指南》一段代码结果不符,哪个错了?

仿真《SV测试平台编写指南》一段代码结果不符,哪个错了?

时间:10-02 整理:3721RD 点击:
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语言的类型自动转换,例题想要表明的是不同类型之间的运算,类型会自动向位宽更大的类型转换
区别是代码标红部分,书上的结果是不是错误的!?

哎没人回答,看来太基础了
好吧,我就这样认为,书上应该是搞错了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top