相关疑难解决方法(0)

如何实现(伪)硬件随机数生成器

如何在HDL(verilog)中实现硬件随机数生成器?

需要考虑哪些选择?


这个问题遵循自我答案的格式.鼓励添加答案和更新.

random verilog hdl

6
推荐指数
3
解决办法
3万
查看次数

为什么这个伪随机数发生器(LFSR)的输出是如此可预测的?

最近我在这里问过,如何在硬件中生成随机数,并被告知要使用LFSR.它将是随机的,但会在某个值后开始重复.

问题是生成的随机数是如此可预测,以至于可以很容易地猜到下一个值.例如,检查下面的模拟:

在此输入图像描述

可以通过将前一个数字与其自身+1相加来猜测下一个"随机"数字.有人可以验证这是否正常和预期.

这是我用于LFSR的代码:

    module LFSR(
    input clock,
    input reset,
     output [12:0] rnd 
    );

wire feedback = rnd[12] ^ rnd[3] ^ rnd[2] ^ rnd[0]; 

reg [12:0] random;

always @ (posedge clock or posedge reset)
begin
    if (reset)
        random <= 13'hF; //An LFSR cannot have an all 0 state, thus reset to FF
    else
        random <= {random[11:0], feedback}; //shift left the xor'd every posedge clock
end

assign rnd = random;

endmodule
Run Code Online (Sandbox Code Playgroud)

从这里获取位到XOR的位:表页5

hardware verilog fpga hdl

0
推荐指数
1
解决办法
1930
查看次数

标签 统计

hdl ×2

verilog ×2

fpga ×1

hardware ×1

random ×1