人工智能硬件电路设计基础及应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

5.2 带同步清零端的4位移位寄存器

本示例设计的是带同步清零端的4位移位寄存器,可实现4位信号的保持、左移、右移和加载4种操作。移位寄存器将保持、右移、左移和加载分别定义为“00”模式、“01”模式、“10”模式和“11”模式。比如,移位寄存器的功能选择端输入为“11”时,移位寄存器会载入输入的数据;为“01”时,移位寄存器会在时钟上升沿到来时将数据右移一位。

本示例的VHDL代码如下。代码在端口定义后定义了4种工作模式的模式代码常量,由输入的功能选择端sel决定移位寄存器的工作模式。

图5.2是带同步清零端的4位移位寄存器的仿真结果。输入信号是周期为10ns的时钟信号,清零信号在0ns至10ns和85ns后有效。0ns至10ns,清零信号有效,寄存器输出为“0000”;10ns至20ns,寄存器处于“00”模式,寄存器保持数据不变;20ns至40ns,寄存器处于“01”模式,寄存器右移两次;40ns至60ns,寄存器处于“11”模式,寄存器载入输入的数据;60ns至70ns,寄存器处于“10”模式,寄存器左移一次;70ns后,寄存器处于“00”模式,寄存器保持数据不变。85ns时,清零信号有效,若寄存器是同步清零的,需要等到90ns的时钟上升沿到来时,寄存器输出才清零。仿真结果验证了设计的正确性。

图5.2 带同步清零端的4位移位寄存器的仿真结果