杭电数字电路课程设计-移位寄存器
实验目的
(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]};