VHDL产生伪随机数

合集下载

产生伪随机数的方法

产生伪随机数的方法

产生伪随机数的方法嘿,你知道不,这世界上好多事儿就跟产生伪随机数似的,充满了奇妙和不确定性呢!咱就说产生伪随机数,这可不是随随便便就能搞定的事儿。

就好像你要在一个大箱子里摸出一个特别的球,你不知道会摸到啥,但又得让它看起来有点规律。

一种常见的方法呢,就是利用算法啦。

这就好比你有一套特别的舞步,按照一定的节奏和步骤来跳,就能跳出那些伪随机数。

比如说线性同余法,就像是一个有固定模式的舞蹈,每一步都有它的规定,但跳出来的结果却能让人觉得有点“随机”的感觉。

还有啊,通过一些物理现象也能产生伪随机数呢!就像大自然有时候也会给我们一些惊喜。

比如说利用热噪声,那感觉就像是在听一场热闹的音乐会,各种声音交织在一起,从中找出那些特别的音符,也就是我们要的伪随机数啦。

你想想,这是不是很神奇?明明是按照一定的规则或者借助一些现象,却能产生出让人摸不着头脑的伪随机数。

这就跟生活似的,有时候我们觉得一切都很有规律,可突然就会蹦出一些意想不到的事情来。

而且哦,产生伪随机数的过程还挺像做饭呢!不同的食材、不同的烹饪方法,最后做出的菜味道完全不同。

算法和物理现象就是我们的食材和烹饪方法,通过它们的组合和运用,就能得出各种各样的伪随机数。

再打个比方,产生伪随机数就像是在创造一个小小的神秘世界,在这个世界里,有它自己的规则和秩序,但又充满了未知和惊喜。

你永远不知道下一个出现的伪随机数会是什么样的。

那为什么我们要研究产生伪随机数的方法呢?这用处可大啦!在计算机科学里,它能帮助我们模拟各种随机的情况,让程序变得更加真实和有趣。

在密码学里,它也是保护我们信息安全的重要手段呢!所以说啊,产生伪随机数可不是什么小打小闹的事儿,它就像一把神奇的钥匙,可以打开好多奇妙世界的大门呢!你说是不是很有意思呀?咱可别小看了这些看起来普普通通的方法,它们背后蕴含的可是大大的智慧和创意呢!怎么样,对产生伪随机数的方法是不是有了新的认识和理解啦?。

基于FPGA的LFSR结构伪随机数发生器的实现

基于FPGA的LFSR结构伪随机数发生器的实现

基于FPGA的LFSR结构伪随机数发生器的实现彭雅岚;肖顺文【摘要】本文基于VHDL硬件描述语言设计了一个由线性反馈移位寄存器所构成的伪随机数发生器,这个伪随机数发生器的级数与反馈系数均可控.经测试,当将线性反馈移位寄存器的级数、反馈系数和随机种子中任一个取不同值的时候均可以得到不同的伪随机数组.【期刊名称】《数字技术与应用》【年(卷),期】2018(036)003【总页数】2页(P91-92)【关键词】线性反馈移位寄存器;伪随机数;FPGA;VHDL【作者】彭雅岚;肖顺文【作者单位】西华师范大学电子信息工程学院,四川南充 637009;西华师范大学电子信息工程学院,四川南充 637009【正文语种】中文【中图分类】TP302在计算机、通信系统中采用的随机数均为伪随机数[1],由线性反馈移位寄存器[2]所构成的伪随机数发生器是扩频通信系统中的核心。

线性反馈移位寄存器是一种十分有用的时序逻辑结构,其结构简单、速度快,它被广泛应用于可编程分频器、信道编码、CRC(Cyclic Redundancy Check)校验码生成、密码算法实现等多个方面[3-4]。

本文基于FPGA(Field Programmable Gate Array)实现用N级线性反馈移位寄存器(Linear Feedback Shift Register, LFSR)产生伪随机数组。

图1 N级线性反馈移位寄存器结构图图2 n=8,G=18DH,SEED=FFH时的仿真图图3 n=8,G=18DH,SEED=EAH时的仿真图1 设计原理线性反馈移位寄存器是给定前一状态的输出,将该输出的线性函数再用作输入的移位寄存器。

异或运算是最常见的单比特线性函数:对寄存器的某些位进行异或操作后作为输入,再对寄存器中的各比特进行整体移位。

图1是由n个D触发器和若干个异或门组成的线性反馈移位寄存器结构图,其特性由移位寄存器级数(周期长度)、初始状态(各寄存器的初始值)、反馈逻辑(异或逻辑)和时钟周期共同决定[5]。

八位的伪随机数产生的verilog源程序

八位的伪随机数产生的verilog源程序

八位的伪随机数产生的verilog源程序linear-feedback-shift-register下面是一个八位的伪随机数产生的verilog文件,我想够用了。

// DEFINES`timescale 1ns/1ns`define DEL 1 // Clock-to-output delay. Zero// time delays can be confusing// and sometimes cause problems.// These are good tap values for 2 to 32 bits`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 MODULEmodule random_number(data);// INPUTS//input clk; // Clock//input reset; // Reset// OUTPUTSoutput [`BITS-1:0] data; // LFSR data// INOUTS// SIGNAL DECLARA TIONSreg clk;reg reset;reg [`BITS-1:0] data;// PARAMETERSinitialbeginreset=0;#4 reset=1;#2 reset=0;end// ASSIGN STA TEMENTSinitialclk=0;alwaysclk= #1 ~clk;// MAIN CODE// Look at the rising edge of clock or reset always @(posedge clk or posedge reset) begin if (reset)data <= #`DEL `INIT;else begin// Shift all of the bits leftdata[`BITS-1:1] <= #`DEL data[`BITS-2:0];`ifdef ADD_ZERO // Use this code if data =ial #1000 $finish;endmodule // LFSR。

基于VHDL的m序列伪随机信号发生器设计 精品

基于VHDL的m序列伪随机信号发生器设计 精品

成都电子机械高等专科学校毕业设计论文作者姚世刚学号2009111733系部电子与电气工程系专业电子测量技术与仪器题目基于VHDL的m序列伪随机信号发生器的设计指导教师赵茂林评阅教师完成时间:2012年4 月30日毕业设计(论文)中文摘要题目:基于VHDL的m序列发生器的设计摘要:VHDL/CPLD即复杂可编程逻辑器件作为一种大规模集成电路,可根据用户的需要自行构造逻辑功能,可实现较大规模的电路设计,因此被广泛应用于产品的原型设计和产品生产之中。

几乎所有应用中小规模通用数字集成电路的场合均可应用CPLD器件。

本文介绍了基于CPLD的m序列发生器的设计方法。

关键词:CPLD;MAX+PLUS II;伪随机码;m序列发生器毕业设计(论文)外文摘要Title : M—sequence Generator Based CPLDAbstract: VHDL/CPLD Complex Programmable Logic Device that is, as a large scale integrated circuits can be constructed according to the needs of users on their own logic, enabling large-scale circuit design, it is widely used in product design and prototype production into. Almost all applications of small and medium general-purpose digital integrated circuits may be applied CPLD devices occasions. This article describes the m-sequence generator based on CPLD design method.Key words: CPLD;MAX+PLUS II;Pseudorandom Code;m sequence code Generator目录前言 (6)1课题介绍 (7)1.1为什么研究此课题 (7)1.2伪随机序列的应用与意义 (7)1.3伪随机序列的研究现状 (8)1.4研究内容 (8)2设计中使用芯片及VHDL语言介绍 (9)2.1 CPLD芯片介绍 (9)2.1.1概述 (9)2.1.2 MAX7000特点 (9)2.1.3 EPM7128LC84-7 (11)3 伪随机序列介绍 (12)3.1 伪随机序列理论的发展史 (13)3.2 伪随机序列的构造方法 (13)4 序列信号发生器原理 (14)4.1序列信号发生器的设计 (15)4.1.1反馈移位型序列信号发生器 (15)4.1.2计数型序列码发生器 (18)5 移位寄存器 (20)5.1移位寄存器 (20)5.1.1 寄存器 (20)5.1.2移位寄存器 (21)5.2 线性反馈移位寄存器结构 (22)5.2.1 D触发器 (22)5.2.1.1 D触发器工作原理 (22)5.2.1.2 D触发器真值表 (23)5.2.1.3 特征方程 (23)5.2.1.4 状态转移图 (23)5.2.1.5时序图 (24)5.2.1.6 脉冲特性 (24)5.2.2异或门 (25)5.2.2.1 基本原理 (25)5.2.2.2 异或门逻辑符号 (25)5.2.2.3 逻辑表达式 (25)5.2.2.4 真值表 (25)5.3 线性反馈移位寄存器 (26)5.3.1 什么是反馈移位寄存器 (26)5.3.2 线性反馈移位寄存器 (26)5.3.3 性质 (26)6 伪随机信号 (27)6.1 伪随机信号 (27)6.2 m序列码发生器 (30)7 m序列性质 (33)7.1 均衡性 (33)7.2游程特性 (33)7.3 移位相加性 (33)7.4 相关特性 (33)7.5 伪随机特性 (34)8 序列信号发生器的设计和仿真实现 (35)8.1 m序列生成单元的电路设计 (35)8.1.1 系统组成 (35)8.1.2 程序方框图 (36)8.2 m序列发生器 (36)8.3 VHDL语言实现 (37)8.4 仿真数据及结论 (39)结论 (42)致谢 (43)参考文献 (43)前言CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件,是从PAL和GAL器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。

基于VHDL语言的神经网络激活函数随机运算的实现

基于VHDL语言的神经网络激活函数随机运算的实现

(1)
1- p
b) 0 ≤ X ≤ 1,则 X = p
(2)
c) - 1 ≤ X ≤ 1,则 X = 2 p - 1
(3)
图 1 随机化过程 F ig. 1 Ran dom iza tion process
图 1中伪随机序列是具有某种随机特性的确定 序列 ,由移位寄存器产生 , 范围为 [ 0, C ]。输入 X 经 过变化后为 A,与伪随机序列 B 比较后就可以得到 输出 Y。Y中“1”的概率就可以用图中的式子表示 。
第 2期
初丽娟等 : 基于 VHDL 语言的神经网络激活函数随机运算的实现
155
用之间存在着极大的矛盾 , 文献 [ 427 ] 将查表法与 折线法近似结合 , 并对其进行了改进 , 在一定程度 上缓解了上述矛盾 ,但是计算精度不够 。为此 ,陈曦 和王高峰 [ 8 ] 提 出采 用混 合 坐 标 旋 转 数 字 计 算 机 (H yb rid Co rd ic) 算法来计算对数 S型函数的方法 , 并基于现场可编程门阵列 ( FPGA ) 进行了相应的硬 件设计 、优化和实现 。由于结合了查找表 、流水线等 技术 ,所研制的对数 S型函数模块具有高效 、高速 、 精确等优点 。但是 ,所设计的对数 S型函数精度的提 高是以增加迭代次数为代价的 ;夏欣 [ 9 ] 提出了用一 种基于 Co rd ic算法的指数函数 ex 的 FPGA硬件实现 方法 ,此算法易于硬件实现 , 能满足多数情况的要 求 。但是 ,以上的方法均采用传统的代数运算 ,需要 大量的数字资源 ,大大增加了成本和复杂性 。为了 解决硬件实现中的资源问题 , D a Zhang[ 10 ] 基于随 机算法 [ 11 ] 对神经网络风速估计器进行了硬件实 现 ,与传统的风速估计器相比 , 易于实现且节省了 大量的数字资源 。

基于VHDL语言的伪随机码发生器的自动校验制作

基于VHDL语言的伪随机码发生器的自动校验制作

第13 卷第3 期2003 年3 月微机发展Microcomputer DevelopmentVol. 13 No. 3Mar. 2003基于VHDL 语言的伪随机码发生器的自动校验制作卢荣德,陈宗海,杨丽(中国科学技术大学自动化系,安徽合肥230027)摘要:对于仿真目标而言,描述一个系统的自校验模型是非常重要的。

文章给出了用VHDL 语言描述的伪随机码发生器自动校验模型的设计。

对于许多限制性模型,校验它们的有效性是十分困难的。

在给出设计中,系统的规格方面是由设计者通过修改的线性实时逻辑来描述输入和输出之间的实时限制和关系。

修改的线性实时逻辑是一个传统逻辑的扩展,能描述各种变量之间的实时关系。

用VHDL 语言描述的模型,基于给出规格上指导测试和仿真,输出的仿真与期望的结果进行比较和评价,从而揭示出规格的误差。

关键词:自校验模型;VHDL 语言描述;修改的线性实时逻辑;伪随机码发生器中图分类号: T P301 .6文献标识码:A 文章编号:1005 - 3751 (2003) 03 - 0025 - 04Automatic Verif ication Making of Pseudo2random Generator Models Based on VHDLL U Rong2de , CHEN Zong2hai , YAN G Li(Dept. of Automation of Univ. of Sci. and Techn. of China , Hefei AH 230027 ,China)Abstract:Veri f ication of models describing a system is very important f or simulation purposes. A scheme f or the automatic veri f ication of pseudo - random generator models described in VHDL has been proposed. For models with many constraints it becomes exceedingly diff i2 cult to verif y their validity. In the proposed schem e the speci f ications f or the system ,i. e. the timing constraints and relations between the inputs and outputs are described by the designer in Modif ied Linear Time Temporal Logic ,which is an extension to traditional logic and can describe timing ralations among variables. Tests and simulations are conducted on the model described in VHDL ,based on the given specif i2 cations. The outputs of the simulations are evaluated and compared with expect ed results ,then gives its errors.Ke y words :verif ication of a models ;describing in VHDL ; modif ied linear time temporal logic ;pseudo2random generator.1 引言伪随机信号近似周期白噪声,结构简单,易于实现,在控制工程、振动工程等研究领域作为系统辨识和模态分析的输入激励信号。

伪随机数发生器

伪随机数发生器

伪随机数发生器程序说明文档——《密码编码学与网络安全》实验六一、基本变量、数据结构、函数说明:注意:基本变量、数据结构、函数说明和实验二DES算法是一样的。

没有任何变化。

1.基本变量定义部分:flag:boolean型变量,用于标识是解密还是加密过程。

2.数据结构定义部分:DT64:int型一维数组,64位的随机时间串。

V64: int型一维数组,64位的种子值。

sum64:int型一维数组,用于存储模二加的中间结果。

R64:int型一维数组,用于存储64位伪随机数。

bytekey:byte型一维数组,用于存储密钥及其子密钥字节流信息。

IP:int型一维数组,静态,用于存储初始置换矩阵。

IP_1:int型一维数组,静态,用于存储初始置换矩阵的逆矩阵。

PC_1:int型一维数组,静态,用于存储置换选择矩阵1。

PC_2:int型一维数组,静态,用于存储置换选择矩阵2。

E:int型一维数组,静态,用于存储扩充置换矩阵。

P:int型一维数组,静态,用于置换函数矩阵。

S_Box:int型三维数组,静态,用于SBox矩阵设置。

LeftMove:int型一维数组,静态,用于设置左移位置列表。

keydata:int型一维数组,用于存储二进制加密密钥。

encryptdata:int型一维数组,用于存储二进制加密数据。

EncryptCode:byte型一维数组,用于存储加密操作完成后的字节数组。

KeyArray:int型二维数组,用于存储密钥初试化后的二维数组。

3.基本函数定义:UnitDes:初始化函数,用于将密钥初始化成字节型数组密钥。

KeyInitialize:用于初始化密钥,生成每一轮的子密钥。

Encrypt:每一轮的加密函数。

ReadDataToBirnaryIntArray:将数据转换为二进制数,存储到数组。

LeftBitMove:循环移位操作函数。

LoopF:落实到每一轮的具体操作函数。

GetEncryptResultOfByteArray:将存储64位二进制数据的数组中的数据转换为八个整数(byte)。

基于VHDL的m序列伪随机信号发生器设计 精品

基于VHDL的m序列伪随机信号发生器设计 精品

成都电子机械高等专科学校毕业设计论文作者姚世刚学号2009111733系部电子与电气工程系专业电子测量技术与仪器题目基于VHDL的m序列伪随机信号发生器的设计指导教师赵茂林评阅教师完成时间:2012年4 月30日毕业设计(论文)中文摘要题目:基于VHDL的m序列发生器的设计摘要:VHDL/CPLD即复杂可编程逻辑器件作为一种大规模集成电路,可根据用户的需要自行构造逻辑功能,可实现较大规模的电路设计,因此被广泛应用于产品的原型设计和产品生产之中。

几乎所有应用中小规模通用数字集成电路的场合均可应用CPLD器件。

本文介绍了基于CPLD的m序列发生器的设计方法。

关键词:CPLD;MAX+PLUS II;伪随机码;m序列发生器毕业设计(论文)外文摘要Title : M—sequence Generator Based CPLDAbstract: VHDL/CPLD Complex Programmable Logic Device that is, as a large scale integrated circuits can be constructed according to the needs of users on their own logic, enabling large-scale circuit design, it is widely used in product design and prototype production into. Almost all applications of small and medium general-purpose digital integrated circuits may be applied CPLD devices occasions. This article describes the m-sequence generator based on CPLD design method.Key words: CPLD;MAX+PLUS II;Pseudorandom Code;m sequence code Generator目录前言 (6)1课题介绍 (7)1.1为什么研究此课题 (7)1.2伪随机序列的应用与意义 (7)1.3伪随机序列的研究现状 (8)1.4研究内容 (8)2设计中使用芯片及VHDL语言介绍 (9)2.1 CPLD芯片介绍 (9)2.1.1概述 (9)2.1.2 MAX7000特点 (9)2.1.3 EPM7128LC84-7 (11)3 伪随机序列介绍 (12)3.1 伪随机序列理论的发展史 (13)3.2 伪随机序列的构造方法 (13)4 序列信号发生器原理 (14)4.1序列信号发生器的设计 (15)4.1.1反馈移位型序列信号发生器 (15)4.1.2计数型序列码发生器 (18)5 移位寄存器 (20)5.1移位寄存器 (20)5.1.1 寄存器 (20)5.1.2移位寄存器 (21)5.2 线性反馈移位寄存器结构 (22)5.2.1 D触发器 (22)5.2.1.1 D触发器工作原理 (22)5.2.1.2 D触发器真值表 (23)5.2.1.3 特征方程 (23)5.2.1.4 状态转移图 (23)5.2.1.5时序图 (24)5.2.1.6 脉冲特性 (24)5.2.2异或门 (25)5.2.2.1 基本原理 (25)5.2.2.2 异或门逻辑符号 (25)5.2.2.3 逻辑表达式 (25)5.2.2.4 真值表 (25)5.3 线性反馈移位寄存器 (26)5.3.1 什么是反馈移位寄存器 (26)5.3.2 线性反馈移位寄存器 (26)5.3.3 性质 (26)6 伪随机信号 (27)6.1 伪随机信号 (27)6.2 m序列码发生器 (30)7 m序列性质 (33)7.1 均衡性 (33)7.2游程特性 (33)7.3 移位相加性 (33)7.4 相关特性 (33)7.5 伪随机特性 (34)8 序列信号发生器的设计和仿真实现 (35)8.1 m序列生成单元的电路设计 (35)8.1.1 系统组成 (35)8.1.2 程序方框图 (36)8.2 m序列发生器 (36)8.3 VHDL语言实现 (37)8.4 仿真数据及结论 (39)结论 (42)致谢 (43)参考文献 (43)前言CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件,是从PAL和GAL器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档