SystemVerilog如何处理case语句中可能的通配符冲突?

时间:2017-03-17 22:05:27

标签: system-verilog case-statement

当我写一个包含案例通配符的案例陈述时,如何处理或多或少的具体案件?

always_comb case(selector)
    4'b0???: begin // Pick me if the msb is 0, unless the two lsb's are 01.
    end
    4'b0?01: begin // Pick me if the msb is 0 and the two lsb's are 01.
    end
    default: begin // Pick me if the msb is X or 1.
    end
endcase

在上面的简化示例中,可以为选择器的任何值选择第一种情况(所有通配符),但我希望它选择最具体的可能情况。这是处理案件的方式吗?

1 个答案:

答案 0 :(得分:2)

SystemVerilog假设case语句按优先级顺序排列 - 第二项永远不匹配。因此,您需要先移动最具体的案例。 SystemVerilog具有mysql -u username -p database_name_1 < file.sql mysql -u username -p database_name_2 < file.sql unique case结构,可以更好地指定您的意图。