blob: 893133ee19e2bec094379cf1d2ca81f8460ae546 [file] [log] [blame] [edit]
`default_nettype none
module top;
reg [1:0] index;
reg [7:0] element;
wire [31:0] arrayData;
reg enable, clock, clear;
Array #(.ELEMENTS(4), .WIDTH(8)) arrayInstance(
.index(index),
.element(element),
.array(arrayData),
.clock(clock),
.clear(clear),
.enable(enable)
);
wire [7:0] result;
ArrayOrReduction #(.SIZE(4), .WIDTH(8)) reduction(
.inputs(arrayData),
.result(result)
);
initial begin
clock = 1;
forever #5 clock = ~clock;
end
initial begin
$monitor($time, " arrayData: %h result: %h", arrayData, result);
clear = 1'b1;
index = 2'b0;
element = 8'h0;
enable = 1'b0;
repeat(3) @(posedge clock);
clear = 1'b0;
element = 8'haa;
enable = 1'b1;
@(posedge clock);
element = 8'h11;
index = 2'd1;
@(posedge clock);
element = 8'h72;
index = 2'd2;
@(posedge clock);
element = 8'h88;
index = 3'd3;
@(posedge clock);
element = 8'hff;
index = 3'd0;
enable = 1'b0;
@(posedge clock);
element = 8'h00;
enable = 1'b1;
@(posedge clock);
element = 8'h00;
index = 3'd1;
@(posedge clock);
enable = 1'b0;
index = 3'd2;
@(posedge clock);
enable = 1'b1;
index = 3'd3;
@(posedge clock);
enable = 1'b0;
repeat(5) @(posedge clock);
$finish;
end
endmodule