目录

  • 时序逻辑电路
  • 同步时序逻辑电路
  • 异步时序逻辑电路
  • 常用时序电路
    • 1、移位寄存器
    • 2、计数器
    • 3、顺序脉冲发生器
    • 4、序列信号发生器
  • 自启动

时序逻辑电路

在组合逻辑电路中,输出仅仅与输入有关;而在时序逻辑电路中,输出不仅与输入有关,还与之前的状态有关。

其实,时序逻辑电路还有一个名字,那就是状态机(State Machine ,SM)或者有限状态机(Finite State Machine,FSM)。

状态机Verilog设计实例

时序逻辑电路由两个部分组成,组合电路和存储电路,其中存储电路是必不可少的,并且存储电路的输出必须反馈到组合电路的输入端,与输入信号一起决定组合逻辑的输出。

而根据时序逻辑电路的输出信号的特点,又将其分为Mealy型和Moore型
Mealy型:输出不仅与存储电路的状态有关,还与输入有关;
Moore型:仅与存储电路的状态有关。

在时序电路的设计中,同步时序逻辑电路是使用最多的。

同步时序逻辑电路

同步时序逻辑电路就是时序逻辑电路中所有的触发器都工作在同一时钟下。

分析同步时序逻辑电路的步骤如下:
1、从给定的逻辑图中写出每个触发器的驱动方程(即每个触发输入端的方程,常用另外触发器的输出和最终输出表示);
2、将驱动方程带入每个触发器的特性方程;
3、根据逻辑图写出电路的输出方程。

以下图为例

而为了能够直观地看出状态的变换,常常使用以下四种方式来观察:
1、状态转换表

2、状态转换图

3、状态机流程图(SM图)

4、时序图(要注意触发器是电平触发还是边沿触发

例图就是高电平触发

异步时序逻辑电路

异步时序电路就是触发器的触发时钟不一致

异步时序电路的分析相对来说要稍难,步骤还是差不多,只是具体方法不一样
1、写出驱动方程;
2、将驱动方程带入特性方程(注意,这个时候的输出跟触发器的输入时钟有关了,用时序图分析最为直观)
3、写出输出方程

画时序图步骤:
1、先画出初始Q0、Q1、Q2、Q3;
2、画出clk0,在通过clk0的触发画出Q0的输出;
3、画出clk1,再通过clk1的触发画出Q1;
4、画出clk2,通过clk2的触发画出Q2;
5、画出clk3,通过clk3的触发画出Q3;
6、最后直接画出组合输出Y。

常用时序电路

1、移位寄存器


分析一下具体实现,假设CLK同时到达所有寄存器(D1依次输入1101),假设Q默认为0000
1、第一个CLK上升沿到来,Q0 = D1 = 1,这时Q1、Q2、Q3还为默认值;
2、第二个CLK上升沿到来,Q0 = D1 = 1,这时Q1 = Q0 = 1;Q2、Q3还为默认值;
3、第三个CLK上升沿到来,Q0 = D1 = 0,这时Q1 = Q0 = 1;Q2 = Q1 = 1,Q3还为默认值;
4、第四个CLK上升沿到来,Q0 = D1 = 1,这时Q1 = Q0 = 0;Q2 = Q1 = 1,Q3 = Q2 = 1。
最终并行Q输出序列为1101 ,与串行D1输入一致

可以看到最先输入的D1,是先到高位Q3

2、计数器

N进制计数器就是一种在每个时钟上升沿加1,并且又在等于N-1的时候清零。即在这个时钟沿检测到计数为N-1,就将计数清零。

计数器分为同步计数器和异步计数器,其中,同步计数器使用最为广泛。

同步计数器

同步二进制计数器
二进制计数器全名为N位二进制计数器。假设4位二进制计数器,那么计数到1111就会清零,并且输出计数标志。



Q初始为0000,由状态方程可以知道:
1、当第一个上升沿到来,Q0 = 1,Q1 = 0,Q2 = 0,Q3= 0;
2、当第二个上升沿到来,将第1步的Q带入,Q0 = 0,Q1 = 1,Q2 = 0,Q3= 0;

15、当第15个上升沿到来,将第14步的Q带入,Q0 = 1,Q1 = 1,Q2 = 1,Q3= 1;
16、当第16个上升沿到来,将第15步的Q带入,Q0 = 0,Q1 = 0,Q2 = 0,Q3= 0;

时序图如下,因为是同步,所以Q均在时钟边沿发生改变

同步十进制计数器

同步十进制计数器就是计数到9(1001)的时候就清零,1010到1111的状态全部跳过。


同步任意进制计数器
其他进制计数器原理和同步十进制计数器类似

异步计数器

异步计数器原理和同步计数器原理一样,只是状态转换的时间不同,不同的Q在不同的时钟边沿输出。
下面以异步二进制计数器为例


移位计数器

环形计数器
假设是4位环形移位计数器,那么其状态转换为0001—0010—0100—1000—0001;
D0 = Q(n-1)

扭环形计数器(约翰逊计数器)
D0 = Q(n-1)’
4位扭环形计数器状态转换如下:0000—1000—1100—1110—1111—0111—0011—0001—0000

3、顺序脉冲发生器

有时候系统需要按照事先规定的顺序进行一系列操作。顺序脉冲发生器是生成一组有先后顺序的脉冲信号。

如下:可以看到Q0脉冲最先,其次是Q1、Q2、Q3;然后又是Q0。
如果在Q的触发下进行操作,就可以实现顺序执行。

4、序列信号发生器

有时候一个系统需要在指定的时间间隔下执行一定操作,这时候设计一个序列脉冲发生器就很必要了。

假设一个系统要每1s内的,要产生一个序列组1011000101,这样,在1的时候执行操作。我们一般都是基于时钟来进行操作,而在这种情况下,因为时间间隔不等,没有规律,如果在时钟的触发下操作会显得麻烦。

自启动

自启动的意思就是,当芯片上电能马上进行计数等操作,而不会等待自己使能才开始执行计数等操作。

假设设计一个10进制计数器,上电的时候不知道是在哪个状态,可能是0000,也可能是1111。
但因为是10进制计数器在0000—1001之间进行状态转换,在这之中可以有序地转换。而当上电时处于1010—1111的时候,不知道该往哪个状态转换,会卡死。
所以如果要设计自启动,就需要将1010—1111的下一个状态设计为0000—1001中的一个,一般设计为初始状态0000.

数字电子技术基础(十三):时序逻辑电路(状态机)(移位寄存器、计数器、信号发生器)相关推荐

  1. 《数字电子技术基础》6.4 时序逻辑电路——设计方法(FSM)有限状态机

    前言 <数字电子技术基础>第6.4节学习笔记,本人在编写Verilog时序逻辑代码时,关于这一部分的状态图需要好好学一下. 6.4.1 同步时序逻辑电路的设计方法 一般步骤 一.逻辑抽象, ...

  2. 《数字电子技术基础》4.4/6.5 组合逻辑/时序逻辑电路中的竞争-冒险

    前言 <数字电子技术基础>第4.4节和第6.5节 组合逻辑电路和时序逻辑电路中的竞争-冒险现象学习笔记 4.4 组合逻辑电路中的竞争-冒险 4.4.1 竞争-冒险现象及其成因 之前讨论组合 ...

  3. 山东大学继续教育计算机3,山东大学继续教育数字电子技术基础试题3及答案.doc...

    数字电子技术基础模拟卷 3 一 填空. 1 逻辑代数中,基本的运算关系是 与 . 或 和 非 . 2 十进制数27转换成二进制数为 11011 :转换成8421BCD码是 00011011 . 3 在 ...

  4. (一)《数字电子技术基础》——引言

    目录 课程背景 数字电子技术的特点 数字电路的分类 课程背景 数字电子技术是电子信息类.电气工程类.自动控制类.机电类.计算机及其应用专业的一门专业技术基础课程.电子技术领域的两大支柱是模拟电子技术和 ...

  5. 《数字电子技术基础》5.1 触发器 概述

    前言 <数字电子技术基础>第5.1节学习笔记 <数字逻辑电路设计>第4.1节学习笔记 5.1 触发器 概述 数字电路分为组合逻辑电路和时序逻辑电路. 组合逻辑电路由门电路组成, ...

  6. 天大2021年秋学期考试《433002[数字电子技术基础]》离线作业考核试题

    数字电子技术基础 要求: 一.独立完成,下面已将五组题目列出,请按照学院平台指定的做题组数作答,每人只答一组题目,多答无效,满分100分: 平台查看做题组数操作:学生登录学院平台→系统登录→学生登录→ ...

  7. 数字电子技术基础第三版杨志忠_阎石数字电子技术基础第6版笔记和课后习题详解...

    阎石<数字电子技术基础>(第6版)笔记和课后习题(含考研真题)详解 第1章 数制和码制 1.1 复习笔记 本章作为<数字电子技术基础>的开篇章节,是数字电路学习的基础.本章介绍 ...

  8. 数字电子技术基础大作业---电子表、流水灯

    数字电子技术基础大作业 电子表.流水灯 一.电子表 1.1应用的元件 555.六片74LS160N.三片74LS26D.两片74LS04D.六个个D_HEX(十六进制输入的显示数码管).电阻.电容若干 ...

  9. 数字电子技术基础(八):超前进位加法器

    目录 一.原理 二.Verilog实现及仿真 1.1位超前进位加法器 2.4位超前加法器 3.16位超前进位加法器 在上篇文章,介绍了串行进位加法器: 数字电子技术基础(七):加法器 这种加法器在运算 ...

  10. 数字电子技术基础知识点总结,包含习题!

    数电/数字电子技术基础全面知识点及习题总结(看这一篇就够了!!!)_数电知识点整理_徐二苗的博客-CSDN博客

最新文章

  1. Response.Redirect、 Server.Transfer、Server.Execute三者区别
  2. main 函数内的变量是全局变量,还是局部变量?
  3. 怎么用python处理数据_Python数据清洗 - 洗什么?怎么洗?看完就明白了
  4. Linux解决find /run/user/1000/gvfs
  5. How is an SAP OData Batch request handled in the backend
  6. 用递归计算一个数字每一位相加的结果。_leetcode 2 两数相加(c++)
  7. ntfs安全权限和共享权限的区别
  8. 荒岛余生最后一个包裹_从《荒岛余生》看上世纪九十年代美国社会主流价值观...
  9. 网络游戏仅可在规定时间向未成年人提供1小时服务
  10. Luogu P4139 上帝与集合的正确用法【扩展欧拉定理】By cellur925
  11. android studio dns问题_Android网络优化篇-从DNS开始
  12. warning: mysql-community-libs-5.7.11-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5
  13. 一个oracle并发性问题的分析和解决
  14. linux grep命令使用详解
  15. Mac OS下phonegap开发环境的建立
  16. 肺腑之言-写给喜欢单片机的初学者
  17. 苹果手机屏幕镜像搜索不到电视_康佳电视投屏不了,3个办法解决!
  18. vue路由守卫(页面鉴权)
  19. 转 activity的launch mode
  20. 如何在Web of Science上免费下载文献

热门文章

  1. 数据分析项目实战—信用卡客户违约概率预测
  2. Linux Shall命令入门
  3. 中山大学计算机学院离散数学,《离散数学》课程习题与解答(2011级使用)中山大学计算机科学系_推荐.pdf...
  4. CMMI5级认证含金量高吗?
  5. Vue + OpenLayers 配置多个地图数据源
  6. 我的世界光影mod怎么用_《我的世界》RTX beta 版视频体验:仿佛打破了次元壁
  7. Vue简易购物车实例
  8. MyEclipse 7.5 正式版中文插件安装
  9. 软件开发费用评估 功能点估算法
  10. 《Java8实战》读书笔记