我是靠谱客的博主 热情小刺猬,最近开发中收集的这篇文章主要介绍带加载使能和移位使能的并入串出移位寄存器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

实验:带加载使能和移位使能的并入串出移位寄存器
设计思路:
本实验规定输入信号是4位位宽,如果移位使能有效,4位输入信号同时输入,最高位先输出,移位寄存器中剩下的3位信号往右移一位,同时最低位补零;
如果加载使能有效,输入端重新输入4位信号,寄存器连续依次输出4位输入信号。
实验代码:

module shift_register_02(
  RST   ,   // 异步复位, 高有效
  CLK   ,   // 时钟,上升沿有效
  EN    ,   // 输入数据串行移位使能
  LOAD  ,   //输入数据加载使能
  IN    ,   // 输入串行数据
  OUT   );  // 并行输出数据

input RST, CLK, EN, LOAD;
input [3:0]IN;
output OUT;
reg [3:0] shift_R;
reg OUT;

// shift_R 会被编译为D触发器
always @ (posedge CLK or posedge RST or posedge LOAD) begin
  if(RST) 				//如果复位信号有效
    shift_R[3:0] <= 0;  //4个D触发器数据全部清零
  else begin
	  if(LOAD) begin   //如果复位信号无效,加载使能有效
		shift_R[3:0] <= IN[3:0]; //4位输入信号全部送到D触发器中
	  end
	  else begin
		if(EN) begin   //如果复位信号无效,加载使能无效,移位使能有效
				shift_R[3:1] <= shift_R[2:0];
				shift_R[0]   <= 0;
				OUT =  shift_R[3];
		
		end
		else begin // 使能无效保持不动
		  shift_R[3:0] <= shift_R[3:0];
		end
    end
  end
end // end always
endmodule

RTL Viewer:
在这里插入图片描述
时序仿真图:
在这里插入图片描述

最后

以上就是热情小刺猬为你收集整理的带加载使能和移位使能的并入串出移位寄存器的全部内容,希望文章能够帮你解决带加载使能和移位使能的并入串出移位寄存器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部