我们如何检查电线上的信号驱动强度?可能吗?通常,我们只能使用条件检查 == 或三等于 === 来检查电线的逻辑值 1 或 0 . 但它并没有告诉我们力量,例如 pull , strong 或 weak 等
==
===
1
0
pull
strong
weak
那么有没有办法检查驱动强度?例如,它将使用这样的东西:
wire a; //... your a assignment initial begin //... if (a && is_weak1(a)) $display("a is weak 1"); end
使用特殊的 %v 字符显示驱动强度 .
%v
$display("a is %v" a);
%v 显示的值
Strength Value %v supply 7 Su strong 6 St pull 5 Pu large 4 La weak 3 We medium 2 Me small 1 Sm highz 0 HiZ
Source .
要检查SystemVerilog中条件语句的值:
string str; initial begin //... str = $sformatf("%v", my_net); if (a && (str == "We1")) $display("a is weak 1");
注意:因为值1在字符串中编码,检查a为高是多余的,可能只是:
str = $sformatf("%v", my_net); if (str == "We1") $display("a is weak 1");
由于Greg指出 $psprintf 实际上不是系统verilog标准的一部分,我们应该使用 $sformatf 代替 . IEEE Std 1800-2012第21.3.3节将数据格式化为字符串 .
$psprintf
$sformatf
1 回答
使用特殊的
%v
字符显示驱动强度 .%v
显示的值Source .
要检查SystemVerilog中条件语句的值:
注意:因为值1在字符串中编码,检查a为高是多余的,可能只是:
由于Greg指出
$psprintf
实际上不是系统verilog标准的一部分,我们应该使用$sformatf
代替 . IEEE Std 1800-2012第21.3.3节将数据格式化为字符串 .