iverilog/ivtest/ivltests/sv_unpacked_port2.v

58 lines
806 B
Verilog

module test
(input clk,
input wire [7:0] D,
input wire [1:0] S,
output reg [7:0] Q [0:3]
/* */);
always @(posedge clk)
Q[S] <= D;
endmodule // test
module main;
reg clk;
reg [1:0] S;
reg [7:0] D;
wire [7:0] Q [0:3];
test dut(.clk(clk), .D(D), .S(S), .Q(Q));
initial begin
clk = 0;
S = 0;
D = 0;
#1 clk = 1;
#1 clk = 0;
S = 1;
D = 1;
#1 clk = 1;
#1 clk = 0;
S = 2;
D = 2;
#1 clk = 1;
#1 clk = 0;
S = 3;
D = 3;
#1 clk = 1;
#1 clk = 0;
for (int idx = 0 ; idx < 4 ; idx = idx+1) begin
if (Q[idx] != idx) begin
$display("FAILED -- Q[%0d] = %0d", idx, Q[idx]);
$finish;
end
end
$display("PASSED");
end
endmodule // main