杭电数字电路课程设计——移位寄存器

本文详细介绍了杭电数字电路课程设计中关于移位寄存器的实验,包括实验目的、模块设计、程序源代码及测试过程中的问题与解决方案。通过Verilog HDL设计了一个多功能移位寄存器,可以实现保持、左移、右移和置入数据功能。在遇到Q[3:0]输出高阻态的问题后,通过先使用置入数据功能解决了问题。此外,文章还探讨了如何将4位移位寄存器扩展为8位以及如何设计补码的算术移位寄存器。
摘要由CSDN通过智能技术生成

杭电数字电路课程设计-移位寄存器

实验目的

(1)学习双向移位寄存器。
(2)掌握灵活运用Verilog HDL语言进行各种描述与建模的技巧和方法。

模块设计

模块功能:
用于实现多功能移位寄存器,受使能信号控制,为低电平时有效,根据输入信号S选择不同的功能,当S[1:0]为00时实现保持功能。在时钟上升沿时,当S[1:0]为01时实现左移一位功能,当S[1:0]为10时实现右移一位功能,当S[1:0]为11时实现置入数据D。

程序源代码

module sy_fifteen(
    input [1:0] S,
    input [3:0] D,
    input OE, CLK,
    output reg [3:0] Q
);
    always @(posedge OE or posedge CLK)
        begin 
            if(OE)
                begin
                    Q <= 4'bzzzz; 
                end    
            else if(S[1:0] == 2'b01)
                begin
                    Q <= {Q[2:0], Q[3]};
                end
            else if(S[1:0] == 2'b10)
                begin
                    Q <= {Q[0], Q[3:1]};
        
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值