永发信息网

难道FPGA真的不能产生随机数吗

答案:1  悬赏:0  手机版
解决时间 2021-01-14 00:15
难道FPGA真的不能产生随机数吗
最佳答案
可以产生伪随机数,代码如下:

// DEFINES
`define ADD_ZERO
`define TAP2 2'b11
`define TAP3 3'b101
`define TAP4 4'b1001
`define TAP5 5'b10010
`define TAP6 6'b100001
`define TAP7 7'b1000001
`define TAP8 8'b10001110
`define TAP9 9'b100001000
`define TAP10 10'b1000000100
`define TAP11 11'b10000000010
`define TAP12 12'b100000101001
`define TAP13 13'b1000000001101
`define TAP14 14'b10000000010101
`define TAP15 15'b100000000000001
`define TAP16 16'b1000000000010110
`define TAP17 17'b10000000000000100
`define TAP18 18'b100000000001000000
`define TAP19 19'b1000000000000010011
`define TAP20 20'b10000000000000000100
`define TAP21 21'b100000000000000000010
`define TAP22 22'b1000000000000000000001
`define TAP23 23'b10000000000000000010000
`define TAP24 24'b100000000000000000001101
`define TAP25 25'b1000000000000000000000100
`define TAP26 26'b10000000000000000000100011
`define TAP27 27'b100000000000000000000010011
`define TAP28 28'b1000000000000000000000000100
`define TAP29 29'b10000000000000000000000000010
`define TAP30 30'b100000000000000000000000101001
`define TAP31 31'b1000000000000000000000000000100
`define TAP32 32'b10000000000000000000000001100010


`define BITS 8                 // Number of bits in the LFSR
`define TAPS `TAP8         // This must be the taps for the
                                        // number of bits specified above
`define INIT 1                  // This can be any non-zero value
                                        // for initialization of the LFSR
// TOP MODULE
module random_number(
                                            clk,
                                            rst,
                                            data);
// INPUTS
input clk;           // Clock
input rst;           // rst
//OUTPUTS
output [`BITS-1:0] data;     // LFSR data
// SIGNAL DECLARATIONS
reg [`BITS-1:0] data;
// MAIN CODE
// Look at the rising edge of clock or rst
always @(posedge clk or negedge rst) begin
        if (!rst)
                data <= `INIT;
        else begin
                // Shift all of the bits left
                data[`BITS-1:1] <= data[`BITS-2:0];
`ifdef ADD_ZERO     // Use this code if data == 0 is required
                                // Create the new bit 0
                data[0] <= ^(data & `TAPS) ^ ~|data[`BITS-2:0];
`else                                 // Use this code for a standard LFSR
                                        // Create the new bit 0
                data[0] <= ^(data & `TAPS);
`endif
        end
end
endmodule // LFSR




怎么使用,如下:
 random_number u0(
      .clk(clk),
      .rst(rst),
      .data(random));


// 产生一个在min, max之间随机数 (-min,max)
// (-3,3) noise 
 always@(posedge clk or negedge rst)
  if(!rst)
       noise <= 8'd0;
  else
       noise <= random%6-3;


附件有代码,可以参考。


我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
谁有车,我要去市场
郎酒老川郎的价格和团购价
"我有一个请求"英语怎么说
已知面料0.036平方,重量是1.2克,请问米克重
为什么老是觉得自己不如这个不如那个?老是觉
刘德华的歌词中我为你倾尽我所有
京祥银地址有知道的么?有点事想过去!
樊城区襄樊襄阳市海洋调味批发部地址在哪,我
单选题物体放在凸透镜前,到凸透镜的距离是16
有没有人本来已经准备咸鱼了,然后看到隐藏
请从H、O、Na、Cl、C中选择合适的元素,按下
妖怪宝可萌有人物什么信息都没有,而且人物还
r e o p能组成什么单词
新疆大红枣多少钱一斤
银川初中哪个好
推荐资讯
配电房的基础是土建范围,还是外电范围
街头篮球篮筐的篮筐反方向键什么意思?
如何证明自己是“非财政供养人员”?
哈尔滨最好的洗浴中心是哪家,不论价钱!!!
我们一起生活两年多 但是现在分手了 不过同住
国内许多'不信任专家'的心态是怎么形
普通安防监控摄像机录像,每秒存储所占空间是
木材的纵向,径向和弦向,哪位给个示意图的连
焊条怎么烘干
江西黎川县公安局户籍科电话是多少
尺寸网络机柜最大的尺寸是多大
sm新老手所有道具,用途,以在如何购买,价格
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?