SystemVerilog中`data [x]`和`data [x:x]`之间有什么区别?

时间:2017-06-13 04:34:52

标签: verilog simulation system-verilog hdl

在调试期间,我发现,至少在特定情况下,data[1]未定义(X)而data[1:1]包含期望值(在此特定情况下为0)。为什么这两个表达式之间存在差异?

编辑不幸的是,这是较大项目的一部分,但代码是这样的:

task check_init_config();
    data_t data;
    resp_t resp;
    reset();
    fork
        ivip.nointr();
        stvip.norun();
        szvip.keep_size(0, 0);
    join_none
    cvip.read(0, data, resp);
    disable fork;
    assert(resp === OKAY) else $error("Read of config returned error: %d\n", resp);
    assert(data[0:0] === 0) else $error("Interrupts on idle enabled at start\n");
    assert(data[1:1] === 0) else $error("Interrupts on stop enabled at start\n");
    assert(data[2:2] === 1) else $error("Running on start\n");
    assert(data[31:3] === 0) else $error("Reserved state is non-zero\n");
endtask

data_tlogic [31:0]的typedef。 data[1:1]0,但data[1]X(由assert触发器找到)。

0 个答案:

没有答案