数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(三)

news2025/7/21 20:51:52

文章目录

  • 4. 有限同步状态机
    • 4.1 编码
    • 4.2 有限状态机的写法
    • 4.3 举例
      • 4.3.1 用Verilog HDL 设计顺序脉冲发生器
      • 4.3.2 设计-个自动售报机报纸价钱为八角,纸币有 1角、2 角5 角、一元。该自动售报机不考虑投币为大额面值等特殊情况


4. 有限同步状态机

  • !!产生:硬件描述语言对时序电路的设计方式。这种描述方式和真值表都差不多,都表征了对于一个数字电路通用的设计方式

  • !!!!功能很强大,但是并不代表在硬件描述语言中提倡这种方式,当电路设计到一定阶段时,我们更希望用基础的设计语言去做电路

  • 有限状态机是借助于综合工具实现电路的一种方式,如果对于状态转移图或者Verilog描述过程中如果产生错误或者不确定的理解,这时候设计就会产生很大问题
    在这里插入图片描述

  • 同其它时序电路一样,有限状态机也是由两部分组成:存储电路和组合逻辑电路。存储电路用来生成状态机的状态,组合逻辑电路用来提供输出以及状态机跳转的条件

  • 从中间画一条线把它分为上下两部分,称为二部图。二部图对于数字电路来讲是一个非常重要的概念,实际上联系了两部分不同性质的电路之间的关系。从图论的角度来讲,如果有一个edge能把上下两部分分开,这两部分就是独立的

  • 有限状态机分为两种类型:Mealy型和Moore型
    在这里插入图片描述

  • 最大的区别:Mealy 型状态机的输出与当前状态和输入有关系,Moore 型状态机的输出仅依赖于当前状态而与输入无关

  • !!!!对于Mealy电路,影响组合电路延迟的是由组合逻辑和输入信号的延迟决定的, 而对于Moore电路,输出逻辑只由输出组合逻辑决定。所以。Moore型的状态机要比Mealy型的状态机要快,因为它的输出延迟只由一部分输出逻辑决定,而Mealy型的延迟由输入信号决定,当输入信号延迟非常大时,输出结果将会是不对的,也就输输出频率会降下来

  • !!!!所以,在很长一段时间内,会从对状态机不了解到写成Moore型状态机。但是并不是说Mealy状态机不行,Mealy有它的特点,对于一些组合电路要求输出一定要跟着输入有变化的时候,Mealy型状态机就会产生很好的作用

  • !!!!从群延迟的角度来说,也就是只有一个信号和一个信号进行比较时,这时Mealy状态机是快的。Moore说它工作频率高主要是说它状态寄存器到输出,延迟只由输出组合逻辑决定,所以很快。Moore的工作频率很快,但是从绝对延迟来讲,Mealy更快,但是就是有的时候不稳定,如果对输入信号没有进行处理,或者对输入信号不了解的情况下,这时候做这个电路的压力就会非常大

  • 所以,这两种状态机的选择要根据自己的情况来定

  • 有限状态机是基础的电路设计的最后一部分,之前的电路是要求对电路的特点,电路到底用了什么电路,用了多少什么门一定要非常清楚,设计方法(查找表,移位寄存器等)一定要非常清楚。**!!!!但是对有限状态机来讲,在整个数字电路的硬件描述语言设计,唯一可以不用知道特点的,就是有限状态机,可以不用知道电路,按照模板写就行了。**因为在它的逻辑里,对状态会有编码,这种编码计算机在对它实现的时候非常了解,但是设计人员并不是很了解。简而言之,对于存储电路就是一个一拍的移位寄存器,输入信号,状态,输出信号也可以知道,可以不知道的是这个输入信号到下个状态的编码,这个交给计算机来完成

4.1 编码

  • 有限状态机的编码是一个非常关键的问题,编码的好坏和方式根据电路有很大的不同,下面举三种编码方式
  • 第一种:二进制编码
    (1)其状态寄存器是由触发器组成的。N 个触发器可以构成2n个状态。进制编码的优点是使用的触发器个数较少,节省资源,用最少的bit描述多位;缺点是状态跳转时可能有多个 bit(位)司时变化,引起毛刺,造成逻辑错误。
    (2)换种说法,对于二进制编码,在0111-1000和1111到0000,这两个过程所有寄存器全部进行了翻转,这时功耗就会增加,而且电路种竞争-冒险就会多,有效电路速度就会降下来
  • 第二种:格雷编码
    (1)格雷编码和二进制编码类似。格雷编码状态跳转时只有一个 bit(位)发生变化,减少了产生毛刺和一些暂态的可能
    (2)格雷码的使用也有一些限制,当状态转换特别复杂,多个状态指向一个,从这个状态不一定就是跳转到格雷码的下一个状态,这时就没有完全解决上面的问题
    (3)!!但是格雷码肯定是对二进制编码有一定的提升,因为它能解决大部分临近编码跳转的问题
  • 第三种:一位独热(One hot)编码
    (1)这是对于n个状态采用个 bit(位)来编码,每个状态编码中只有一个 bit(位)为1,如0001、0010、0100、1000。
    (2)!!使用One hot编码在任何情况下都只有两个bit发生变化,这就解决了电路的速度,竞争等带来的不确定性
    (3)One hot 编码增加了使用触发器的个数,而且状态多了,触发器太多,速度也会降下来
  • !!所以,不同的编码方式产生的结果是完全不一样的

4.2 有限状态机的写法

  • 有限状态机的写法有很多,常见的是两段式和三段式两种
  • 如何解释这两种方式呢?我们有三个方式,输出方式,驱动方程和状态转移方程,有一个是一定要分开的(状态转移方程),两段式就是输出方程和驱动方程放在一起写,三段式就都分开写
    (1)两段式写法:
    在这里插入图片描述
    (2)三段式写法:
    在这里插入图片描述在这里插入图片描述
  • !!!!在有限状态机中,所有的状态和输出信号在每一个分支条件下必须对它进行赋值,如果赋值是不变的,就要把信号写给它,就是不变的,否则就会产生latch

4.3 举例

4.3.1 用Verilog HDL 设计顺序脉冲发生器

  • 顺序脉冲发生器又称脉冲分配器,它将高电平脉冲依次分配到不同的输出上,保证在每个时钟周期内只有一路输出高电平,不同时钟上的高电平脉冲依次出现在所有输出端
  • 以 4 位顺序脉冲发生器为例,它有 4路输出W1,W2,W3,W4,每路输出上高电平脉冲依次出现,输出在 1000、0100、0010,0001 之间循环。4 位顺序脉冲发生器的状态转移图如图 4.4-3 所示,它由4 个状态构成,每个状态中“1”的个数都是1个,表示每个时钟周期内只有一路输出端为高电平,而且是轮流出现,因此生成了顺序脉图4.4-3 4位顺序脉冲发生器电路的状态转移图冲信号
    在这里插入图片描述
  • 代码如下:
    在这里插入图片描述在这里插入图片描述

4.3.2 设计-个自动售报机报纸价钱为八角,纸币有 1角、2 角5 角、一元。该自动售报机不考虑投币为大额面值等特殊情况

  • 经常会考,目的就是画状态转移图

  • 图中,So~S,为状态机的8 个状态角标代表已投币的总和,如 S代表没有投币,S,代表已投入 1 角,依此类推。M 代表输入,M1 表示投入1角硬币,M2 代表投入2角硬币,M5 代表投入5 角硬币,M10代表投入一元。
    在这里插入图片描述

  • data out=1 表示给出报纸,data out retuml=1 表示找1角硬币,data out return2=l表示找回2角硬币

  • 代码如下
    (1)P1和P2
    在这里插入图片描述
    (2)P3和P4
    在这里插入图片描述
    (3)P5和P6
    在这里插入图片描述

  • !!!!所以在HDL中,强调有限状态图的写法,而不是注意语法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/17074.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

『Java』类和对象

文章目录一、面向对象的初步认识🌳1、什么是面向对象🌳2、面向对象与面向过程🍑(1)洗衣服🍑(2)大象装冰箱汽车拼装二、类定义和使用🌳1、简单认识类🌳2、类的…

网络安全重点知识

单选(抽20个)、判断(抽5个) 第二章: 第三章: 第四章: 第五章: 第六章: 第八章: 填空(抽3个) 1、网络安全: 是在网络各个…

【附源码】Python计算机毕业设计税务综合信息平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

jquery基础--学习笔记

jQuery选择器 元素、Class、id选择器 属性选择器 注意:!如果不指定标签,会输出所有的html标签不满足的元素 如何指定?可以用之前的元素、标签或者id选择器 层级选择器 上面图片写错了,box应该是div,看例子…

【微信小程序】数据绑定

🏆今日学习目标:第十一期——数据绑定 😃创作者:颜颜yan_ ✨个人主页:颜颜yan_的个人主页 ⏰预计时间:25分钟 🎉专栏系列:我的第一个微信小程序 文章目录前言实现数据绑定初始化数据…

[附源码]java毕业设计农村留守儿童帮扶系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Flink cdc 2.3.0 日前发布,支持众多新特性

新连接器 2.3.0 新增了 DB2 CDC 连接器 增量快照迎来新的连接器成员 2.3.0 版本MongoDB CDC,Oracle CDC 两大连接器均支持了增量快照,实现无锁读取并发读取断点续传 优化 2.3.0 版本 MySQL CDC 连接器性能和稳定性大幅提升 Flink 支持 2.3.0 版本…

11月19日绿健简报,星期六,农历十月廿六

11月19日绿健简报,星期六,农历十月廿六1. 文旅部:不随意关停娱乐场所,无疫情发生地原则上不限制大型经营性演出观众人数。2. 人社部等五部门:企业不得以年龄为由“一刀切”清退大龄农民工。3. 英国政府以国家安全为由&…

Java 枚举(Enum)使用

文章目录枚举引入enum关键字实现枚举enum关键字实现枚举注意事项enum常用方法一览表enum课堂练习enum实现接口枚举引入 创建Season类, 实例化春夏秋冬四个实例 Season对象有如下特点 1.季节的值是有限的几个值(spring, summer, autumn, winter) 2.只读,不需要修改…

开始数据治理时三个常见的陷阱和解决方法

当我们与客户合作帮助他们提高数据管理能力时,大多数部门都同意更好的数据治理将有助于解决他们的数据问题。然而,我们发现数据治理很少是优先事项,而且往往被搁置一旁,去支持更紧迫的业务工作。这有点像使用牙线——当你在牙医诊所时很容易获得动力,但当你回到家时很难保…

GC垃圾回收相关算法(宋红康JVM学习笔记)

什么是垃圾? 垃圾收集机制是Java的招牌能力,极大地提高了开发效率。如今,垃圾收集几乎成为现代语言的标配,即使经过如此长时间的发展,Java的垃圾收集机制仍然在不断的演进中,不同大小的设备、不同特征的应用…

[附源码]java毕业设计辽宁科技大学疫苗接种管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

果蔬同城配送小程序有什么作用_分享果蔬同城配送小程序的作用

1、蔬菜生鲜产品展示:用户打开买菜必备软件,就能查看琳琅满目的新鲜水果、蔬菜、肉类、零食等产品,为用户展示更多信息,提升用户下单率。经常更新商品的照片、视频,让客户可以在线浏览和挑选,足不出户就能买…

二叉树的最大深度(C++两种思路递归和层序)超详解小白入

原题链接–>戳这里直达 二叉树的最大深度深度搜索(递归)递归思想和详解C代码代码效率广度搜索(层序查找)层序查找的思路C代码代码效率总结深度搜索(递归) 最近新学习了树形结构,上课的时候听…

MATLAB算法实战应用案例精讲-【数模应用】随机梯度下降法(SGD)

前言 随机梯度下降算法(Stochastic gradient descent, SGD)源于1951年Robbins和Monro[6]提出的随机逼近, 最初应用于模式识别和神经网络. 这种方法在迭代过程中随机选择一个或几个样本的梯度来替代总体梯度, 从而大大降低了计算复杂度. 1958年Rosenblatt等研制出的感知机采用了…

JAVA开发(Redis使用缺陷场景)

常见的redis使用缺陷场景主要有3个,分别是缓存穿透,缓存击穿,缓存雪崩。 穿透,(关键词,缓存中没有的,数据也没有) 击穿(大量同时请求过期的key) 雪崩&…

多目标优化问题入门理论

0 前言 多目标优化在推荐系统、物流配送、路径规划等中有广泛的应用 一些多目标优化算法主要就是求解问题的 Pareto 前沿或者近似前沿。从目标空间来看,就是他的边界了。 1. 优化问题 1.1 无约束的单目标优化问题 minxf(x),x∈RN(1)min_x \quad f(x), x \in R^N…

解决jupyter TOC勾选了但不显示的问题

解决jupyter TOC勾选了但不显示的问题 有时候TOC(Table of content2)反应很慢,或者勾选了根本就不显示。或者隔三岔五nbextension消失,按以下步骤解决问题: #mermaid-svg-rbxou4Xusp7FoS9q {font-family:"trebuc…

ArcGIS pro底图大全

ArcGIS pro底图大全 Mid-Century Street World Topographic Map Navigation Map Street Night Terrain with label Oceans National graphic style map Modern antique 668753925730)] Modern antique

CAD中如何绑定外部参照和revit中链接CAD功能

一、CAD中如何绑定外部参照 首先我们要了解什么叫外部参照外部参照是指将一副图以参照的形式引用到另外一个或多个图形文件中,外部参照的每次改动后的结果都会及时的反映在最后一次被参照的图形中,另外使用外部参照还可以有效的减少图形的容量&#xff0…