寄存器,移位寄存器的电路原理以及verilog代码实现「建议收藏」

寄存器,移位寄存器的电路原理以及verilog代码实现「建议收藏」寄存器:用以存放二进制代码的电路,下图为由维特阻塞D触发器组成的4位数码寄存器:逻辑功能分析:1.异步端CR置0时,输出置0;2.同步并行置数:D0~D3为4个输入代码,当CP上升沿到达时,D0

大家好,又见面了,我是你们的朋友全栈君。

寄存器:用以存放二进制代码的电路,下图为由维特阻塞D触发器组成的4位数码寄存器:

image

逻辑功能分析:

1.异步端CR置0时,输出置0;

2.同步并行置数:D0~D3为4个输入代码,当CP上升沿到达时,D0~D3被同时并行置入。

3.在置数端为1,CP端为0时,保持不变。

2.移位寄存器:具有存放数码和使数码逐位右移或左移的电路称为移位寄存器。

image

移位寄存器按照不同的分类方法可以分为不同的类型。 如果按照移位寄存器的移位方向来进行分类, 可以分为左移移位寄存器、移位寄存器和双向移位寄存器等;如果按照工作方式来分类,可以分为串入/串出移位寄存器、串入/并出移位寄存器和并入/串出移位寄存器等。

以下为异步清零的4位并入串出移位寄存器(输入为并行数据,输出为串行数据)

module reg_bc(clk,clr,din,dout);
input clk,clr; // 输入时钟端,清零端(高电平有效)
input[3:0] din; // 数据输入端
output dout; // 数据输出端
reg[1:0] cnt; 
reg[3:0] q;
reg dout;
always@(posedge clk)  // 时钟上升沿触发
begin
cnt<=cnt+1;  //cnt  自加 1
if(clr)  // 判断清零信号是否有效
begin
q<=4'b0000; //q 置 置 0
end
else
begin
if(cnt>0) // 判断 cnt  是否大于 0
begin
q[3:1]<=q[2:0];  //q  中的值向左移 1  位
end
else if(cnt==2'b00) // 判断 cnt  是否为 0
begin
q<=din; //把 把 din  的值赋予 q
end
dout<=q[3];  //把 把 q  的最高位输出
end
end

image

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154700.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JavaScript如何判断是否为数字?

    JavaScript如何判断是否为数字?JavaScript如何判断是否为数字?方法1:使用isNaN()函数isNaN()函数是js自带的全局函数,isNaN()函数用于检查其参数是否是非数字值。如果值x是特殊的非数字值NaN(或者能被转换为这样的值),返回的值就是true;如果值x是其他值,则返回false。isNaN()的缺点就在于null、空格以及空串会被按照0来处理NaN:NotaNumber<script>document.write(isNaN(123));//数字-

    2022年6月29日
    29
  • c# break,continue,goto 跳出循环「建议收藏」

    c# break,continue,goto 跳出循环「建议收藏」1.break跳出循环protectedintTest1(){intindex=0;for(inti=0;i<5;i++){if(i==2){//单个循环,跳出整个for循环,//多个循环,跳出最内层for循环break;…

    2022年6月4日
    52
  • srvctl start_局部视图的配置规定是

    srvctl start_局部视图的配置规定是SRVCTL概述SRVCTL是ORACLERAC集群配置管理的工具,可以管理Database、Instance、ASM、Service、Listener和NodeApplication,NodeApplication包括GSD,ONS,VIP。srvctl的命令格式为srvctl<command><target>[options]srvctlUs…

    2025年10月31日
    3
  • Spring核心——Bean的定义与控制

    Spring核心——Bean的定义与控制

    2021年6月7日
    108
  • M91A安全帽识别布控球 安全帽穿戴AI视频分析功能

    M91A安全帽识别布控球 安全帽穿戴AI视频分析功能AI布控球基于前端边缘AI计算及后端云平台计算,AI布控球集成人脸识别、安全帽识别等的AI视频图像分析算法,通过计算机视觉技术对图像、人脸、场景、视频等进行深度学习,识别并标示图像、场景、视频内容,并对自定义的行为、意图进行识别并预警。AI识别能力介绍:着装检测:针对施工区域的人员是否戴安全帽。人脸检测:针对施工区域的人员是否陌生人(黑名单)。行为检测:针对施工区域内人员是否吸烟。区域检测:针对规定的区域划线后检测是否在区域内或区域外。4G高清安全帽识别布控球,是一款便携式的集4G无线、远程视

    2022年5月19日
    57
  • win10JDK环境变量的配置

    win10JDK环境变量的配置在win10系统下进行jdk环境变量与win7的一些区别,作者踩过一些坑,最后通过网上查找资料才将问题解决,但是网上的资料比较零碎,作者整理一下亲自操作过程并且将步骤详细的写了下来,希望能够帮助需要的人。一、下载安装完成jdk之后,桌面右键此电脑选择属性,进入以下界面,然后选择高级系统设置,进入系统配置二、进入系统配置之后点击环境变量,进入环境变量配置窗口三、此时我们可以看到有用户变量…

    2022年7月21日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号