引言
本篇文章利用Verilog编写一个m序列发生器模块。本文会给出具体的设计、测试源码。
设计说明
模块功能说明:
- 支持任意位宽的随机数生成;
- 支持本原多项式配置;
- 支持初始种子配置;
设计环境:
设计语言:Verilog HDL
设计验证平台:MATLAB R20222a、Vivado 2018.3
m 序列生成原理
本文基于线性反馈移位寄存器设计,需要用到 m序列 生成的 本原多项式 以及 初始化种子(非零即可)。该部分源自书本的原理性知识不做阐述,这里以MATLAB程序做解释。
首先通过如下的 MATLAB 命令,获取本原多项式:
primpoly(7,'all')
不懂 primploy 函数可以,用help 命令查看。
此处以 7 阶为例。