module top;
parameter int c_data_width = 16;
var logic [c_data_width-1:0] a;
var logic [c_data_width-1:0] a_z [2:0];
initial a_z <= {a_z[1:0],a};
endmodule
So there must be something else wrong you are not showing.
Putting the ’ infront making it become an assignment pattern is wrong, you need 3 items in the pattern.
Thank for your feedback. Indeed there is more to it.
I didn’t thought the context matter, but it does.
The following code does give the error that I’m having, in the context in which i’m having it.
module top;
parameter int c_data_width = 16;
var logic [c_data_width-1:0] ramp_data = 0;
var logic clk_top = 0;
always #(10ns) clk_top = ~clk_top;
always @(negedge clk_top) ramp_data = ramp_data + 1;
checker top_checker (input logic clk, input logic [c_data_width-1:0] a);
var logic [c_data_width-1:0] a_z [2:0];
always_ff @(posedge clk) begin
a_z <= {a_z[1:0], a};
end
endchecker
top_checker i_top_checker(.clk(clk_top), .a(ramp_data));
endmodule