blob: 8a6713d73d000dc3d1c73fdea7bd631c60fecb0c [file] [log] [blame]
// SPDX-License-Identifier: MIT
// SPDX-FileCopyrightText: 2021 Tamas Hubai
`default_nettype none
/*
Simple entropy pool, shifting a single bit into prng's in each clock cycle
*/
module entropy_pool (
input clk,
input rst_n,
input[`WB_WIDTH-1:0] e_word,
output e_bit
);
reg[`WB_WIDTH-1:0] e_pool;
wire[`WB_WIDTH-1:0] e_pool_mod;
assign {e_pool_mod, e_bit} = {1'b0, e_pool} ^ {e_word, 1'b0};
always @(posedge clk) begin
if(!rst_n)
e_pool <= 0;
else
e_pool <= e_pool_mod;
end
endmodule
`default_nettype wire