blob: d010787e25a69eac6c3d8664b94a727f592ef4b0 [file] [log] [blame]
// SPDX-License-Identifier: MIT
// SPDX-FileCopyrightText: 2021 Tamas Hubai
`default_nettype none
module prng_tb();
parameter STATE_BITS = 4;
parameter POLYNOMIAL = 4'b1100;
parameter STATE_INIT = 4'b0000;
parameter OUTPUT_BITS = 2;
reg clk;
reg rst_n;
wire [OUTPUT_BITS-1:0] random;
prng #(
.STATE_BITS(STATE_BITS),
.POLYNOMIAL(POLYNOMIAL),
.STATE_INIT(STATE_INIT),
.OUTPUT_BITS(OUTPUT_BITS)
) prng_dut (
.clk(clk),
.rst_n(rst_n),
.entropy(1'b0),
.random(random)
);
always #5 clk = ~clk;
initial begin
$monitor("%4d %4b %4b %4b %2b", $time, prng_dut.state, prng_dut.g_shift[0].new_state, prng_dut.g_shift[1].new_state, random);
clk <= 0;
rst_n <= 0;
#10 rst_n <= 1;
#100 $stop;
end
endmodule
`default_nettype wire