当前位置: 首页 > wzjs >正文

自己动手做网站教程微博 分享 wordpress

自己动手做网站教程,微博 分享 wordpress,网站开发人员分配,网站 建设需要提供哪些资料FPGA生成随机数的方法,目前有以下几种: 1、震荡采样法 实现方式一:通过低频时钟作为D触发器的时钟输入端,高频时钟作为D触发器的数据输入端,使用高频采样低频,利用亚稳态输出随机数。 实现方式二:使用三个…

FPGA生成随机数的方法,目前有以下几种:

1、震荡采样法

        实现方式一:通过低频时钟作为D触发器的时钟输入端,高频时钟作为D触发器的数据输入端,使用高频采样低频,利用亚稳态输出随机数。

        实现方式二:使用三个或以上反相器首尾互联,形成环路振荡器。使用时钟采集,得到不稳定的数据,以形成随机数(其实此种方式与方式一相类似,反相器的组合逻辑相当于高频时钟,时钟信号相当于低频时钟,同样利用亚稳态生成随机数)。

(直接按照实现方式二,上具体实现代码)


//反相器环形级联,组合为振荡器,利用亚稳态状态,得到随机数module random_gen
(input clk,input start, //开始命令output reg random_valid = 0,output reg [7:0] random_data = 0);reg state = 1'b0; //0空闲态  1随机态(*dont_touch = "true" *)reg a = 1'b0;
(*dont_touch = "true" *)reg b = 1'b0;
(*dont_touch = "true" *)reg c = 1'b0;reg [2:0] bit_cnt = 0; //3个取反器,环形震荡
//取反器
always@(state)
beginb <= !a;
end//取反器
always@(state)
beginc <= !b;
end//取反器
always@(state)
begina <= !c;
endalways@(posedge clk)
beginif(state == 1'b0) begin  //state == 0bit_cnt <= 3'd0;random_valid <= 1'b0;if(start) begin state <= 1'b1;endelse beginstate <= 1'b0;endendelse begin   //state == 1bit_cnt <= bit_cnt + 1'b1;if(bit_cnt == 3'b111) beginstate <= 1'b1;random_valid <= 1'b1;endelse beginrandom_valid <= 1'b0;      endrandom_data <= {random_data[6:0],c};end
end       endmodule


2、LFSR伪随机数

        LFSR(Linear-feedback shift register)是一种特殊的的移位寄存器,他的输入取决于其先前状态,其生成的随机数是一种伪随机数。其架构如下图所示:

        上图中,gn为反馈系数,取值只能是1或者0,N个D触发器,可以提供2^(N-1)个输出状态,为了保证随机性,gn的选择必须满足一定的条件,不能全部为0,且gn必须等于1。

        假设输出的随机数的位宽为8bits,且取值g0g1g2g3g4g5g6g7g8=101110001,则可以实现如下代码:

module LFSR #
( parameter [7:0] SEED = 8'h11) 
(input               rstn,    input               clk,       output reg [7:0]    rand_data //随机数
);always@(posedge clk or negedge rstn)
beginif(!rstn)rand_data    <=SEED;else beginrand_data[0] <= rand_data[7];rand_data[1] <= rand_data[0];rand_data[2] <= rand_data[1];rand_data[3] <= rand_data[2];rand_data[4] <= rand_data[3]^rand_data[7];rand_data[5] <= rand_data[4]^rand_data[7];rand_data[6] <= rand_data[5]^rand_data[7];rand_data[7] <= rand_data[6];end       
endendmodule


3、使用FLASH或EEPROM生成随机数

        读取FLASH中预存的seed,然后进行相关逻辑运算,得到伪随机数。同时按照既定的逻辑生成新的seed,写入到FLASH或者EEPROM中,这样就可以保证每次输出的随机数不同。(此种方式较为复杂,不推荐)

        此处不进行具体实现。

http://www.dtcms.com/wzjs/552750.html

相关文章:

  • 南京建站方案做下载网站挣钱吗
  • 化妆品行业网站开发app网站公司名称
  • 房产中介如何做网站代表网站开发的logo
  • 个人做网站法律风险汕头免费建站哪里有
  • 东莞网站网站的登陆注册页面怎么做
  • 筑云网站投诉建设信用卡网站登录
  • 朝阳网站建设公司电话建筑工程网上超市
  • 佛山有那些定制网站建设公司做网站字体要求
  • 关于网站建设的通知案例学 网页设计与网站建设
  • 网站源码带数据湖南土建网
  • 滨海做网站哪家好邢台网站建设制作
  • 公众号制作模板网站进入公众号广西医保
  • 建宁建设局网站会计公司网站样式
  • 北京网站优化步成都包装设计公司
  • 网站开发有哪些广告设计与制作流程
  • 网站建设seo推广wordpress 嵌入视频
  • 橙色的网站深圳市网络营销公司
  • 网站页面构成交通建设网站
  • 天津网站建设排名培训行业网站建设
  • 江门网站设计flash怎么做电子书下载网站
  • 广州网站制作选哪家网络组建管理与维护
  • 网站 优化 分析做图库网站需要多少钱
  • 网站编辑属于什么行业成都装饰公司
  • 公关策划网站建设2345网址导航怎么卸载
  • 网站建设项目报告书wordpress怎么改密码
  • 百度提交入口网站怎么看自己建网址
  • 地方门户网站赚钱网上注册公司在哪里
  • 营销型的物流网站模板做ppt的图片网站
  • 织梦网站底端的怎么删除优化公司网站
  • 做网站国内阿里云虚拟主机多少钱黄冈建设信息网