【问题标题】:What is "??" in Verilog casez?什么是 ”??”在 Verilog 案例中?
【发布时间】:2012-12-30 13:32:14
【问题描述】:

我在下面有一个模块:

module bai1c(a, b0, b1, b2, b3, c);
    input [2:0] a;
    input [3:0] b0, b1, b2, b3;
    output reg[3:0] c;

    always @(a or b0 or b1 or b2 or b3) begin
        casez(a)
            3'b000: c = b0;
            3'b001: c = b1;
            3'b010: c = b2;
            3'b011: c = b3;
            3'b1??: c = 4'b0000;
        endcase
    end
endmodule

会合成什么样的电路? 3'b1?? 的情况何时发生? (?? 是什么?)

【问题讨论】:

  • 我不知道如何为 a 创建 x 值。例如,a = 3'b1x0

标签: verilog synthesis


【解决方案1】:

?是一个无关值 - 即它将匹配 0、1 或 z。那么3'b1??无论其他两位是什么,只要第一位为 1,就会发生这种情况。

该电路基本上是一个 4:1 多路复用器,选择 b0、b1、b2、b3 中的一个,并在 a 上添加一个选择位,无论其他两个选择位是什么,它都会强制输出为 0。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    • 1970-01-01
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    相关资源
    最近更新 更多