代码之家  ›  专栏  ›  技术社区  ›  Matt H

SystemVerilog:级联中的无基未定大小文字

  •  0
  • Matt H  · 技术社区  · 8 年前

    logic [63:0] rd_data;
    logic [31:0] mem_dout;
    logic [15:0] op_data;
    ....
    assign rd_data = {'0, op_data, mem_dout};
    

    显然,以下是 不合法的 :

    编辑:正如@dave_59所指出的,这是合法的,只是不直观。

    assign rd_data = {op_data, mem_dout, '0};
    

    1 回复  |  直到 7 年前
        1
  •  2
  •   dave_59    8 年前

    实际上,这两种说法都是合法的。在自主环境中 '0 1'b0 。串联的所有操作数在自定上下文中求值。两个串联的结果是32+16+1=49位表达式。在分配给rd_数据的上下文中,这些表达式右对齐,然后左填充15个零。