casez 在合成过程中是否将分配给 z 的导线视为高阻抗?

Does casez consider wires assigned z as high impedance during synthesis?

我正在设计一个 R3000 MIPS 处理器,对于指令解码器,我想给出一个 casez,这样对于涉及立即指令(例如 ADDI、ANDI)的情况,我提供位 6:0 作为 z。我只想知道这里 {opcode, func} 当 case 为 z 时它是否被合成为高阻抗开路连接?

module Instr_decoder (
    input  logic [31:0]  instr,
    output logic         regDest, 
    output logic         jump,
    output logic         branch,
    output logic         memtoReg,
    output logic         memRead,
    output logic         memWrite,
    output logic         ALUSrc,
    output logic         signExtendInstruction,
    output logic         immediateInstruction,
    output logic         regWrite);

    logic immediate_i;
    logic [5:0] opcode;
    logic [4:0] rs;
    logic [4:0] rt;
    logic [4:0] rd;
    logic [15:0] immediate_data;
    logic [4:0] shamt;
    logic [5:0] func;
    logic [25:0] target;

    assign opcode = instr[31:26];
    assign shamt = instr[10:6];
    assign func = instr[5:0];
    assign target = instr[25:0];
    assign immediate_i = (opcode == (ADDI || ANDI || ORI || SLTI || XORI));

    always_comb
    begin
        casez({opcode, func}

           {6'h00, 6'h20} :  ADD = 1;
           {6'h08,  6'dz} :  ANDI = 1;

您可以在模拟器上编译和执行的任何东西都可能是可综合的。这归结为您使用的工具是否具有识别代码并将其映射到硬件实现的算法。

顺便说一句,通常在 Verilog 数字文字中使用 ? 字符而不是 z 来表示 don't carecasez语句。