欢迎光临散文网 会员登陆 & 注册

HDLBits (111) — 3位线性移位反馈寄存器

2022-04-21 18:54 作者:僚机Wingplane  | 我要投稿

本题链接:

https://hdlbits.01xz.net/wiki/Mt2015_lfsr

摘自2015年期中问题5。另请参见问题的第一部分:mt2015_muxdff

为这个时序电路编写 Verilog 代码(可以创建子模块,但是顶层必须命名为 top _ module)。假设你要在 DE1-SoC 板上实现这个电路。将 R 输入连接到 SW 开关,将时钟连接到 KEY [0] ,L连接到 KEY [1]。连接Q输出到红灯 LEDR。

题目

提示:

该电路是线性反馈移位寄存器(LFSR)的一个例子。最大周期LFSR可用于生成伪随机数,因为它在重复之前循环2n-1个组合。全零组合不会出现在此序列中。

答案

向量

当位宽大于 1 时,wire 或 reg 即可声明为向量的形式。Verilog 支持可变的向量域选择,

Verillog 还支持指定 bit 位后固定位宽的向量域选择访问。

  • [bit+: width] : 从起始 bit 位开始递增,位宽为 width。

  • [bit-: width] : 从起始 bit 位开始递减,位宽为 width。

对信号重新进行组合成新的向量时,需要借助大括号。

异步复位

异步复位是指无论时钟到来与否,只要复位信号有效,电路就会执行复位操作。

异步复位常常会被综合成如下电路:

异步复位的优点:大多数触发器单元有异步复位端,不会占用额外的逻辑资源。且异步复位信号不经过处理直接引用,设计相对简单,信号识别快速方便。

异步复位的缺点:复位信号与时钟信号无确定的时序关系,异步复位很容易引起时序上 removal 和 recovery 的不满足。且异步复位容易受到毛刺的干扰,产生意外的复位操作。

参考内容:

 2.3 Verilog 数据类型 | 菜鸟教程:

https://www.runoob.com/w3cnote/verilog-data-type.html

5.1 Verilog 复位简介 | 菜鸟教程:

https://www.runoob.com/w3cnote/verilog2-reset.html


HDLBits (111) — 3位线性移位反馈寄存器的评论 (共 条)

分享到微博请遵守国家法律