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

HDLbits 刷题答案 3.2.3 Shift Registers(1-5)

2021-03-25 11:59 作者:专心当一个坑  | 我要投稿


3.2.3 Shift Registers

3.2.3.1 4-bit shift register

设计一个4bit异步复位,拥有同步置位和使能的右移移位寄存器。

  • areset : 寄存器复位为0

  • load : 将data[3:0]输入至移位寄存器中

  • ena : 使能信号控制向右移动(q[3]q[2]q[1]q[0] —> 0q[3]q[2]q[1],q[0]在移动后消失了,原先q[3]的位置变为0)

  • q: The contents of the shift register

如果load 和 ena都有效,load 的优先级更高

3.2.3.2 Left/right ratator

设计一个100-bit的左/右移的移位寄存器,有同步置位信号和同步左/右移使能信号
循环移位形式,不会舍弃某也不会补

  • load:将输入至寄存器内

  • ena[1:0]:选择是否移位或移位的方向

  1.  :右移一位

  2.  :左移一位

  3.  不移动

  • 移位寄存器内的数据

3.2.3.3 Left/right arithmetic shift by 1 or 8

设计一个带同步置位的算法移位寄存器,该寄存器可以通过控制移动方向和每次移动的位数。

算术右移移位寄存器中的符号位移位,不像是逻辑右移中进行补零的操作,而是保留符号位后再进行移位

左移移位寄存器和算法移位寄存器没有区别

  • load:将·data[63:0`赋值为移位寄存器

  • ena:选择是否移位

  • amount:选择移动方向和移位次数

  1.  2’b00 : 左移

  2.  2’b01 : 左移

  3.  2’b10 : 右移

  4.  2’b11 : 右移

3.2.3.4 5-bit LFSR

线性反馈移位寄存器(LFSR)通常带有一个异或门来产生下一个状态的移位寄存器。Galois LFSR是一个特殊的移位寄存器,其中带有"tap"位的位置与输出位XOR产生下一个值没有"tap"位标志的正常移位。如果"tap"位置经过仔细选择后,LFSR将设置为最大长度。再重复之前LFSR的最大长度为2^n-1。

下图所示LFSR为在位置5和位置3包含"tap"位的5-bit最大长度LFSR。开始为位置1,输入为0。

设计如上图所示LFSR,复位信号使LFSR复位为1.

3.2.3.5 3-bit LFSR

使用Verilog实现上述功能,允许建立子模块,但顶层模块要命名为top_module

将输入端口连接到板子上的拨动开关, 端口接到按键 ,端口  接到按键 。输出端口  连接到板子上的红色 LED。


HDLbits 刷题答案 3.2.3 Shift Registers(1-5)的评论 (共 条)

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