数字IC基础:状态化简与等价状态

news2024/11/25 0:34:20

相关阅读

数字IC基础知识:著名EDA公司与工具介绍


        如果时序机的两个状态对于所有可能的输入序列都具有相同的输出序列(和相同的下一状态),则称这两个状态是等价的。时序机的等价状态无法通过观察输出序列的异同对其加以区分;合并等价状态也不会改变状态机的输入输出特性。通过识别合并等价状态也不会改变状态机的输入-输出特性。通过识别合并等价状态可以化简时序机的状态表与状态转移图,并且在无需综合考虑电路功能的情况下减少硬件开销(因为没必要对等价状态进行编码)。一般而言,对每一个有限状态机来说,都会存在至少一个唯一的最简等效状态机。

例 状态表如表1所示的状态机有两个等价状态:S_4与S_5。在输入信号的作用下,两个状态S_4和S_5具有相同的下一状态和输出。也就是说,当状态机处于状态S_4并有输入序列作用时,其输出与状态机处于S_5且在相同输入序列作用下时的输出是完全相同的。图1给出了该状态机的状态转移图,并说明了状态S_4与状态S_5如何映射到相同的下一状态;并且对所有的有效输入,这两个等价状态都具有相同的输出。

表1 等价状态S_4与S_5的下一状态表和输出表。

用S_4代替S_5,并将S_5所在行删除,以此来化简该表

下一状态输出
输入输入
当前状态0101
S_0S_6S_300
S_1S_1S_601
S_2S_2S_5(应使用S_4代替)01
S_3S_7S_301
S_4S_7S_200
S_5(删除该行)S_7S_200
S_6S_0S_100
S_7S_4S_300

图1 等价状态的状态转移图

        如果时序机状态表中与两个状态有关的行是相同的,则称这两个状态是等价的。删除一个等价状态外的其余全部等价状态,并使受此影响的弧线重新指向保留的最后一个等级状态,就会使状态转移图得到简化。但是需要注意,当两个状态在状态表中相应的行不同时,也不要轻易得出这两个状态不是等价状态的结论,下一状态表中完全相同行的条件仅是其对应状态等价的充分条件,而不是必要条件。因此,仅仅比较状态表中的行并不是判别等价状态的充分方法,还存在这种方法可能检测不到的其他等价状态。

        删除等价状态更一般的方法依赖于如下的等价递归定义:如果两个状态对各输入值具有相同的输出,并且对同样的输入值,它们所转移到的下一状态也是相同(或等价)的,则这两个状态是等价的。删除等价状态的步骤可归纳为:(1)画出一个三角形的表格(参见表2)来表示不同状态的可能组合对;(2)分析组合对状态的等价条件(由原状态表已经知道S_4与S_5是等价的,所以这里就不再考虑S_5了)。再来看一个例子,如果S_0与S_4转移到的下一状态是等价的,并且它们对各个可能的输入所对应的输出也是相同的,则认为S_0和S_4是等价状态。图1所示的状态表中,S_0与S_4具有相同的输出,但只有当S_6与S_7等价并且S_2与S_3等价这两个条件同时满足时,S_0与S_4才是等价的。

表2 表示可能等价状态对的表格

S_1不可能
S_2不可能S_6和S_4
S_3不可能S_1和S_7、S_6和S_3S_2和S_7、S_4和S_3
S_4S_6和S_7、S_3和S_2不可能不可能不可能
S_6S_3和S_1不可能不可能不可能S_7和S_0、S_2和S_1
S_7S_6和S_4不可能不可能不可能S_2和S_3S_0和S_4、S_1和S_3
S_0S_1S_2S_3S_4S_6

        在表格的对应行列中,列出了行列所对应的一对状态的等价条件。例如,当状态机处于状态S_1时,如果输入0或1,其下一状态分别为S_1或S_6;同样,当状态机处于S_3时,在上述相同输入的作用下,它的下一状态分别为S_7与S_3。因此,S_1与S_3等价的充要条件是:S_1与S_7等价,且S_6与S_3等价(当然此时他们在相同输出时的输出要是一样的,如果这个违反了,就会被标记为不可能)。

        在所有可能等价的状态中,我们从表中可以发现S_1与S_3不等价,因为S_1与S_7在表中被标记为不可能等价,S_2与S_3也不等价,因为S_2与S_7在表中被标记为不可能等价。在探讨S_7与S_0的等价关系时,我们会遇到一些问题,S_7与S_0等价要求S_6和S_4等价,S_6和S_4等价要求S_7和S_0、S_2和S_1都等价,而S_2和S_1等价又要求S_6和S_4等价,我们会发现其中存在许多循环等价,即A能证明B,B能证明A,这并不能判断A、B是否为真。但是我们的原则是,无矛盾,则接受。如果我们认为S_7与S_0、S_6和S_4、S_2和S_1分别等价,且这并不会产生矛盾,能逻辑自洽,则就这么做,因为这样能减少状态机的状态数。

        最后可以得到图2所示的简化状态转移图,只包含了4个状态,而非8个。

 图2 完全化简的状态转移图

以上内容来源于《Verilog HDL高级数字设计》

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

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

相关文章

【Web3】认识以太坊钱包

目录 区块链钱包概念 密码 私钥 Private Key 公钥Public Key Keystore 助记词 Mnemonic 如何解锁账户 区块链钱包概念 钱包用来存钱的,在区块链中,我们的数字资产都会对应到一个账户地址上, 只有拥 有账户的钥匙(私钥&…

【网络进阶】Posix API与网络协议栈(五)

文章目录 1. ARP协议1.1 ARP协议的定义1.2 ARP协议的工作过程1.3 ARP协议的数据结构1.4 ARP欺骗1.5 ARP协议的局限性1.6 ARP协议与Posix API的关系 2. ARP协议例子3. ICMP协议3.1 ICMP协议的定义3.2 ICMP协议的类型3.3 ICMP协议的工作原理3.4 ICMP协议的应用3.5 ICMP协议的局限…

软考:中级软件设计师:操作系统,进程管理,前趋图,进程同步互斥,PV操作,

软考:中级软件设计师:操作系统 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备的 &…

Openlayers实战:地图上显示经纬度坐标

Openlayers地图中,鼠标移动,其位置的经纬度坐会经常显示在页面中。 在我们的实战课程里,详细讲一下其做法,成为一个主力的应用。 效果图 源代码 /* * @Author: 大剑师兰特(xiaozhuanlan),还是大剑师兰特(CSDN) * @此源代码版权归大剑师兰特所有,可供学习或商业项目…

vue中如何引入插件并使用

Vue中的插件类型 vue中有大致有三种类型的插件,第三方插件、基于vue开发的插件及基于vue开发的组件 第三方插件 如:jquery、moment.js、aixos、Highcharts等 注意:Highcharts也有基于vue开发的插件版本,具体使用方法参见下文 …

C++中的类

1、类和对象 C中通过class定义类 class A {int a; }; // 定义一个A类型的类通过类来定义对象 A a; // 定义一个A类型的对象类是一张蓝图,是抽象的。而对象是根据蓝图真正建造出来的建筑,是具象的。 对象是类的实体化 2、类的限制修饰符 类有三种修…

xmrig病毒删除

删除病毒 [rootnode101 .mint-xmr]# top | headPID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND 15870 root 20 0 4597844 2.0g 4 S 1017 3.3 52:05.95 xmrig[rootnode101 .mint-xmr]# ll /proc/15870/exe lrwxrwxrwx. 1 root ro…

【C#】SqlBulkCopy批量添加注意DataTable必须与表列顺序一致,否则报错,以及关闭自增列

前篇文章在测试一个批量添加的操作,发现一致添加不成功,最后分析是字段列顺序不一致的问题 目录 1、列名不一致1.1、错误信息1.2、解决方法 2、关闭自增列2.1、不包含列2.2、特性关闭 1、列名不一致 1.1、错误信息 在调试时,一致提示如下错…

基于 Flink SQL CDC的实时数据同步方案

基于 Flink SQL CDC的实时数据同步方案http://www.dreamwu.com/post-1594.html

iframe编码为utf-8.嵌入页面为gb2312 ,word导出默认为gb2312 格式

使用记事本打开html,另存为,保存类型选择:"所有文件"、编码选择:“UTF-8”打开保存后文件编码类型改成utf-8 第一个步骤是为了把内容改成utf-8,然后直接执行第二步改编码可能会报乱码

解决printJS打印问题汇总

目录 一、打印预览表格列不全(Element的el-table组件) 1、打印设置“打印缩放” 2、修改el——table的底层代码(如果页面上有多个表格慎用) 一、打印预览表格列不全(Element的el-table组件) 问题描述&a…

简单的手机记事本app怎么查看提醒列表?

很多人平时都有随手记事的习惯,在记录事情的时候使用手机上的记事本app是一个不错的选择。有的记事本功能比较完善,不但能记事还能设置提醒,当有多条提醒内容存在时,简单的手机记事本app怎么查看提醒列表呢?以iPhone手…

Easyexcel 导出数据 一对多关系导出数据集合

客户要求 要求导出的表格如图 实现这样表格 很多人会想到动态表头,easypoi可以直接实现,但是我用的是easyexcel,而easyexcel自身并没有提供自动合并的功能所以还是需要自己来合并。 代码如下 首先我们来看下将嵌套数据平铺,不进行合并导出…

解决github打不开的方法(亲测有效)

网上提供了很多针对github打开慢的解决方案,什么又是改host文件,又是下载杂七杂八的加速器等等,其实效果并不好,微软商城已有对应的软件可以解决该问题,获取路径更为安全。 目录 安装Watt Toolkit找不到Microsoft Stor…

Aduc7126的PLA模块

PLA 一、PLA结构讲解 PLA是Aduc7126内部的可编辑逻辑阵列,Aduc7126总共有16个element,分为两组,如下图所示。 下图是PLA的其中一个element结构图,按照由左至右进行讲解: 左边MUX0、MUX1、MUX2、MUX3都是选择器&#…

将 InputStream 流转成 MultipartFile

MultipartFile是一个接口, 有一个MockMultipartFile实现类,里面有构造方法可以直接将输入流转为MutipartFile对象: MultipartFile File new MockMultipartFile(filename, file.getName(), file.getContentType(), fileStream); 使用MockMultipartFile类, 项目需要导入org.sp…

maven配置问题

maven配置问题 Error running ‘项目名 [install]’: No valid Maven installation No valid Maven installation found. Either set the home directory in the configuration dialog or set the M2_HOME environment variable on your system. 解决方法: 依次检…

Echarts柱状图循环配色多色彩

话不多说,直接上配置案例,欢迎留言分享交流 option {xAxis: {type: category,data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun,"y","q","y","u"]},yAxis: {type: value},series: [{itemStyle: {normal: {// barBorde…

华为OD机试真题 Python 实现【数组的中心位置】【2023Q1 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、Python算法源码六、效果展示1、输入2、输出 一、题目描述 给你一个整数数组nums,请计算数组的中心位置,数组的中心位置是数组的一个下标,其左侧所有元素相乘的积等于右侧所有元素…

Fiddler 工具的使用

文章目录 01 Fiddler 工具介绍1. 下载与安装2. Fiddler 工具界面介绍3. Fiddler 工具的工作原理 02 手工调用 HTTP 接口1. 发送HTTP请求2. 查看返回数据包 03 获取 PC 端的网络数据包04 获取手机端的网络数据包05 截包与改包场景一:截断请求数据,然后篡改…