Random 如何在FPGA中生成伪随机数?
如何在FPGA中生成伪随机数?这一点已经讨论过了(我选择LFSR):Random 如何在FPGA中生成伪随机数?,random,fpga,Random,Fpga,如何在FPGA中生成伪随机数?这一点已经讨论过了(我选择LFSR): 如果不是为了加密或其他有智能对手的应用(例如赌博),我会使用一种方法 它只使用异或和移位,因此在硬件中实现非常简单。关于在FPGA中高效生成伪随机数序列,有一个优秀的Xilinx应用说明。正如其他人所说,LFSR可用于FPGA中的伪随机数。这里是最大长度32位LFSR的VHDL实现 process(clk) -- maximal length 32-bit xnor LFSR based on xilinx app no
如果不是为了加密或其他有智能对手的应用(例如赌博),我会使用一种方法
它只使用异或和移位,因此在硬件中实现非常简单。关于在FPGA中高效生成伪随机数序列,有一个优秀的Xilinx应用说明。正如其他人所说,LFSR可用于FPGA中的伪随机数。这里是最大长度32位LFSR的VHDL实现
process(clk)
-- maximal length 32-bit xnor LFSR based on xilinx app note XAPP210
function lfsr32(x : std_logic_vector(31 downto 0)) return std_logic_vector is
begin
return x(30 downto 0) & (x(0) xnor x(1) xnor x(21) xnor x(31));
end function;
begin
if rising_edge(clk) then
if rst='1' then
pseudo_rand <= (others => '0');
else
pseudo_rand <= lfsr32(psuedo_rand);
end if;
end if;
end process;
过程(clk)
--基于xilinx app note XAPP210的最大长度32位xnor LFSR
函数lfsr32(x:std_logic_vector(31到0))返回std_logic_vector为
开始
返回x(30向下至0)和(x(0)或x(1)或x(21)或x(31));
末端功能;
开始
如果上升沿(clk),则
如果rst='1',则
伪随机数“0”);
其他的
伪随机对于那些在FPGA中搜索随机数的人来说,他们将能够更容易地找到这个问题。因此,我不会投票以重复的方式关闭。也许那些在stackoverflow中寻找FPGA的人想知道一个特定的站点:哦,很好,它是在这里被问到的,而不是在这个区域51站点。它已被删除;)