連結の最左端にunbased、unsizedリテラルを配置すると、欠落しているビットを指定された値で単純に埋め込むと仮定します。私は明示的にLRMでこれを述べているものは見ませんでした。SystemVerilog:連結のunbased unsizedリテラル
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)これは、シミュレートしていることを知っているかどうかを確認したかった、と(2)主要な合成ツールは、正しいことを行うと、実際には0
'assign rd_data = {'1、op_data、mem_dout};と試してください。 – toolic