systemverilog $isunknown的使用

$isunknown判断是否存在叉态.只对具有4状态的类型有用,比如logic,wire,reg。如下例所示,对二状态类型是没有用。注意在TB中如果使用$isunknown,或者需要X和阻态传播,使用四值的类型

例子:

`timescale 1ns/1ns

module top();
	logic [4:0] a;
	int b;
	wire [4:0] c=5'b00x00;
	bit [4:0] d;
	reg [4:0] e;

	initial begin

		a=5'b00x00;
		b=32'b000x00;	
		d=5'b00x00;
		e=5'b00x00;

		$display("a=%0b",a);
		$display("b=%0b",b);
		$display("c=%0b",c);
		$display("d=%0b",d);
		$display("e=%0b",e);

		$display("isa=%0d",$isunknown(a));
		$display("isb=%0d",$isunknown(b));

		$display("isc=%0d",$isunknown(c));
		$display("isd=%0d",$isunknown(d));
		$display("ise=%0d",$isunknown(e));


		b=a;
		$display("isb=%0d",$isunknown(b));
		$display("b=%0b",b);
		d=c;
		$display("isd=%0d",$isunknown(d));
		$display("d=%0b",d);
		
		$finish;
	end
endmodule

仿真结果,可以看到对int和bit是无效(并不是无效,只是因为是两态,所以判断结果一直为0):

a=x00
b=0
c=x00
d=0
e=x00
isa=1
isb=0
isc=1
isd=0
ise=1
isb=0
b=0
isd=0
d=0
$finish called from file "lab13_fork.sv", line 101.

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值