complex_interface_tb.v 809 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
`default_nettype none

module top;

    reg [8:0] dataIn;
    wire [7:0] dataOut;
    reg clock, clear;


    CacheWithInterface dut(
        .dataIn(dataIn[7:0]),
        .dataOut(dataOut),
        .clock(clock),
        .clear(clear)
    );

    initial begin
        clock = 1;
        forever #5 clock = ~clock;
    end

    reg [7:0] last;
    initial begin
        $monitor($time, " %h -> %h [%h]", dataIn, dataOut, last);
        clear = 1'b1;
        last = 8'h0;
        dataIn = 8'h0;
        repeat (3) @(posedge clock);
        clear = 1'b0;
        for (dataIn = 8'h0; dataIn <= 9'hff; dataIn = dataIn + 8'h1) begin
            @(posedge clock);
            if (~dataOut != last)
                $error("Mismatch");
            last = last + 8'h1;
        end
        $finish;
    end
endmodule