Verilog - 带X输入的逆变器

时间:2017-04-29 17:02:24

标签: input verilog

当我的测试台启动时,我有一个带X输入的逆变器。所以我的输出也是X. 当输入为X时,我可以强制输出为1还是0?

谢谢。

3 个答案:

答案 0 :(得分:0)

没有

X值是错误的结果;它并不代表任何定义明确的价值。对这样的值执行任何类型的操作也将导致不可预测的值 - 另一个X。

您需要找出导致此错误的原因并进行修复。

答案 1 :(得分:0)

逆变器不可用。提供输入X将始终固有地给出输出X.

答案 2 :(得分:0)

当然可以。如果您的逆变器是模块实例,只需强制连接到输出的导线即可。如果它只是一个assign语句,只需强制分配给它的电线。

module tb();

reg l_a;
wire l_q;

invtr i0(.q(l_q), .a(l_a));

initial begin
    $vcdpluson;
    #10;
    force l_q = 1'b0;
    #10;
    release l_q;
    #10;
    l_a = 1'b0;
    #10;
    l_a = 1'b1;
    #10
    $finish;
end

endmodule

module invtr (output wire q,
              input  wire a);
assign q = ~a;
endmodule

输出力发生在10ns时,释放发生在20ns时。在此期间,该值为0.

Simulation Output