伪随机码又称伪随机序列,它是具有类似于随机序列基本特性的确定序列。通常广泛应用二进制序列,因此我们仅限于研究二进制序列。二进制独立随机序列在概率论中一般称为贝努利(Bernoulli)序列,它由两个元素(符号)0, 1或1, -1组成。序列中不同位置的元素取值相互独立取0取1的概率相等等于1/2:我们简称此种系列为随机系列。

随机序列具有以下三个基本特性:

1)在序列中“0”和“1”出现的相对频率各为1/2。

2)序列中连0或连1称为游程连0或连1的个数称为游程的长度,序列中长度为1的游程数占游程总数的1/2;长度为2的游程数占游程总数的1/4;长度为3的游程数占游程总数的1/8;长度为n的游程数占游程总数的1/2n(对于所有有限的n)。此性质我们简称为随机序列的游程特性。

3)如果将给定的随机序列位移任何个元素,则所得序列的和原序列的对应的元素有一半相同,一半不同。

如果确定序列近似满足以上三个特性则称此确定序列为伪随机序列

原理可以自行百度,给出Verilog hdl的实现代码:

本原多项式知识点补充:

m序列周期为2n-1,由移位寄存器和异或门构成,n表示移位寄存器的个数。

Verilog源码(选取本原多项式为(f(x)=x8+x4+x3+x2+1):

`timescale 1ns / 1ps

//

// Company:

// Engineer:

//

// Create Date:    14:24:27 04/26/2018

// Design Name:

// Module Name:    rangen

// Project Name:

// Target Devices:

// Tool versions:

// Description:

//

// Dependencies:

//

// Revision:

// Revision 0.01 - File Created

// Additional Comments:

//

//

module rangen(

input clk,

input rst_n,

input[7:0]  data_in,

input load,

output reg[7:0] data_out

);

reg[7:0] cnt;

integer i;

always @(posedge clk or negedge rst_n)

begin

if(!rst_n) begin

data_out<=8'd0;

cnt<=0;

end

else if(load) begin

data_out<=data_in;

cnt<=0;

end

else if(cnt==8'hff)

cnt<=0;

else begin

for(i=1;i<8;i=i+1)

data_out[i]<=data_out[i-1];//移位寄存器

//根据本原多项式的线性反馈逻辑

data_out[0]<=((data_out[7]^data_out[3])^data_out[2])^data_out[1]; cnt<=cnt+1;

end

end

reg data_en;

always @(posedge clk or negedge rst_n)

begin

if(!rst_n)

data_en<=1'b0;

else if(data_out==data_in)

data_en<=1'b1;

else

data_en<=1'b0;

end

endmodule

Testbench

`timescale 1ns / 1ps

// Company:

// Engineer:

//

// Create Date:   14:38:21 04/26/2018

// Design Name:   rangen

// Module Name:   D:/ise ex/seed/rangen/rangen_tsb.v

// Project Name:  rangen

// Target Device:

// Tool versions:

// Description:

//

// Verilog Test Fixture created by ISE for module: rangen

//

// Dependencies:

//

// Revision:

// Revision 0.01 - File Created

// Additional Comments:

//

module rangen_tsb;

// Inputs

reg clk;

reg rst_n;

reg [7:0] data_in;

reg load;

// Outputs

wire [7:0] data_out;

// Instantiate the Unit Under Test (UUT)

rangen uut (

.clk(clk),

.rst_n(rst_n),

.data_in(data_in),

.load(load),

.data_out(data_out)

);

initial begin

// Initialize Inputs

clk = 0;

rst_n = 0;

data_in = 0;

load=0;

// Wait 100 ns for global reset to finish

#100;

rst_n = 1;

#100;

load=1;

data_in = 8'b1000_1000;

// Add stimulus here

#100;

load=0;

end

always #10 clk=~clk;

endmodule

仿真截图:初始值为10001000,周期为 255 ,在cnt计数到255是输出10001000;



8位伪随机序列(m序列verilog HDL源码 )相关推荐

  1. 日历android实训报告,EAD万年历实训报告及Verilog HDL源码

    <EDA技术及应用>实训报告1  系统设 1.1 设计要求 1.1.1 设计任务 设计并制作一台数字日历. 1.1.2 性能指标要求 ⑴用Verilog HDL语言设计一个数字日历. ⑵数 ...

  2. JavaScript实现设置或清除数字指定偏移量上的位setBit算法(附完整源码)

    JavaScript实现设置或清除数字指定偏移量上的位setBit算法(附完整源码) setBit.js完整源代码 setBit.js完整源代码 /*** @param {number} number ...

  3. TensorFlow (RNN)深度学习 双向LSTM(BiLSTM)+CRF 实现 sequence labeling 序列标注问题 源码下载...

    http://blog.csdn.net/scotfield_msn/article/details/60339415 在TensorFlow (RNN)深度学习下 双向LSTM(BiLSTM)+CR ...

  4. C语言重复加一个数的所有位数字的算法(附完整源码)

    C语言重复加一个数的所有位数字的算法 问题举例 C语言重复加一个数的所有位数字的算法完整源码(定义,实现,main函数测试) 问题举例 例如给定num = 38,过程类似于:3 + 8 = 11,1 ...

  5. C++返回一个数的二进制最右边的一位的实现算法(附完整源码)

    C++返回一个数的二进制最右边的一位的实现算法 C++返回一个数的二进制最右边的一位的实现算法完整源码(定义,实现,main函数测试) C++返回一个数的二进制最右边的一位的实现算法完整源码(定义,实 ...

  6. C++无符号整数的反转位的实现算法(附完整源码)

    C++无符号整数的反转位的实现算法 C++无符号整数的反转位的实现算法完整源码(定义,实现,main函数测试) C++无符号整数的反转位的实现算法完整源码(定义,实现,main函数测试) #inclu ...

  7. C语言实现克拉茨Collatz序列(附完整源码)

    实现克拉茨Collatz序列 实现克拉茨Collatz序列完整源码(main函数测试) 实现克拉茨Collatz序列完整源码(main函数测试) int main(int argc, char *ar ...

  8. Ubuntu14.04 32位上编译VLC2.2.0源码操作步骤

    1.  首先安装必须的依赖软件,打开终端,执行: sudo apt-get install git libtool build-essential pkg-config autoconf 2. 从 h ...

  9. 【转】ubuntu 11.10(32位系统)下编译android源码

    原文网址:http://www.cnblogs.com/dwayne/archive/2011/11/16/2251734.html 本文介绍在ubuntu 11.10系统下编译android 2.3 ...

最新文章

  1. html5 postMessage解决跨域、跨窗口消息传递
  2. 考察大新和南宁农业产业园 农业大健康·李喜贵:赋能乡村振兴
  3. 千兆光纤收发器调整措施
  4. Linux命令之crontab命令
  5. 学校邮箱注册IDEA、pycharm等全家桶(正式版就是香)
  6. oa系统哪个服务器好,谈谈用户对各大OA系统的使用心得
  7. 后来,我学会了每做完一件事
  8. c语言strTrimed函数用法介绍,c语言对字符串实现高效trim函数
  9. 中国综合能源服务市场盈利模式分析与投资战略规划研究报告2022-2028年
  10. 驱动一款淘宝购买的130万像素的USB双目摄像头-记录
  11. 【自考】数据结构导论
  12. java中object是什么_Java中的Object是什么?
  13. 使用Python、pandas、pyecharts进行数据分析——实例讲解
  14. 健身的基本知识(1)
  15. 特征频率、最y大振荡频率、截止频率有什么关系和异同
  16. sqldbx怎么连接远程服务器,SqlDbx连接远程DB2数据库
  17. 读《如何阅读一本书》有感
  18. 梅赛德斯-奔驰将区块链技术应用于可持续交易账簿及供应链
  19. saiku无缝对接kylin
  20. After Effects Premiere 教程收集

热门文章

  1. 神经网络学习笔记(二)GRNN广义回归神经网络
  2. String类中split方法坑点及解决方案
  3. hadoop 3.1.1的集群搭建并完成高可用配置(详细版)
  4. Twitter的发展史
  5. 成都市计算机机电学校,成都市计算机核工业机电学校有哪些专业
  6. Altium designer17生成PCB出现unknow pin问题解决
  7. Mac 安装 JDK1.8,Linux 安装 JDK1.8,Windows安装JDK1.8
  8. 图神经网络:大型图的有关处理
  9. SQL 清空表数据的方法
  10. 第2天:基础入门~数据包拓展