数字电路 第一章—第三节(逻辑函数的化简方法)

一、逻辑函数的标准与或式和最简式

1、标准与或表达式

(1)下图给出了逻辑函数Y的标准与或表达式,在表达式中每一个乘积项都具有标准形式,这种标准形式的乘积项称为最小项。

(2)最小项是逻辑代数中的一个重要概念,下图中Y是变量A、B、C的函数,三个变量可以构成8个标准形式的乘积项(ABCA\bar{B}CAB\bar{C}A\bar{B}\bar{C}\bar{A}BC\bar{A}\bar{B}C\bar{A}B\bar{C}\bar{A}\bar{B}\bar{C}),这8个乘积项的共同特点是:

①每个乘积项都有3个因子。

②每一个变量都以原变量或者反变量的形式,作为一个因子在乘积项中出现且仅出现一次。

(3)对于n个变量,如果P是一个含有n个因子的乘积项,而且每一个变量都以原变量或者反变量的形式作为一个因子在P中出现且仅出现一次,那么就称P是这n个变量的一个最小项。n个变量一共有2^{n}个最小项,因为每一个变量都有原变量、反变量两种形式,变量个数是n。

(4)最小项的性质:

①每一个最小项都有一组且只有一组使其值为1的对应变量取值。

②任意两个不同的最小项之积,值恒为0。

③变量全部最小项之和,值恒为1。

(5)任何逻辑函数都可以表示成为最小项之和的形式——标准与或表达式,也就是说,任何逻辑函数都是由函数中变量的若干个最小项构成的。

(6)逻辑函数最小项之和的形式——标准与或表达式是唯一的,也就是说,一个逻辑函数只有一个最小项之和的表达式。

(7)逻辑函数的标准与或表达式也可以从真值表中直接得到,只要在真值表中挑出那些使函数值为1的变量取值,变量取值为1的写出原变量,为0的写成反变量,这样对应于使函数值为1的每一种取值都可以写出一个乘积项,只要把这些乘积项加起来,得到的就是函数的标准与或表达式。

(8)为了叙述和书写的方便,通常都要对最小项进行编号,把与最小项对应的变量取值当成二进制数,与之相应的十进制数就是该最小项的编号,用m_{i}表示。(一个最小项,只要把原变量当成1、反变量当成0,便可直接得到它的编号)

2、逻辑函数的最简表达式

(1)最简与或式:乘积项的个数最少,每个乘积项中相乘的变量个数也最少的与或表达式。

(2)最简与非—与非式:非号最少(单个变量上面的非号不算),每个非号下面相乘的变量个数也最少的与非-与非式。(在最简与或表达式的基础上,两次取反,再用德·摩根定理去掉下面的反号,便可得到函数的最简与非—与非表达式)

(3)最简或与式:括号个数最少,每个括号中相加的变量的个数也最少的或与式。(在反函数最简与或表达式的基础上,取反,再用德·摩根定理去掉下面的反号,便可得到函数的最简或与式)

(4)最简或非—或非式:非号个数最少,非号下面相加的变量个数也最少的或非—或非式。(在最简或与表达式的基础上,两次取反,再用德·摩根定理去掉下面的反号,便可得到函数的最简或非—或非式)

(5)最简与或非式:非号下面相加的乘积项的个数最少,每个乘积项中相乘的变量个数也最少的与或非式。(在最简或非—或非表达式的基础上,用德·摩根定理去掉下面的反号,便可得到函数的最简与或非式)

二、逻辑函数的公式化简法

1、并项法

(1)做法:利用公式AB+A\bar{B}=A把两个乘积项合并起来,消去一个变量。

(2)举例:

2、吸收法

(1)做法利用公式A+AB=A吸收掉多余的乘积项。

(2)举例:

3、消去法

(1)做法:利用公式A+\bar{A}B=A+B消去乘积项中多余的因子。

(2)举例:

4、配项消项法

(1)做法:利用公式AB+\bar{A}C+BC=AB+\bar{A}C在函数与或表达式中加上多余项(冗余项),以消去更多的乘积项。

(2)举例:

三、逻辑函数的图形化简法

1、图形化简法概述

(1)卡诺图即最小项方格图,用卡诺图化简逻辑函数,求最简与或表达式的方法,称为图形化简法。

(2)图形化简法有比较明确的步骤可以遵循,结果是否最简,判断起来也比较容易,但是当变量个数较多时,这种方法也会变得麻烦。

2、逻辑变量的卡诺图

(1)二变量的卡诺图(4个最小项):

(2)变量卡诺图的画法:

①变量卡诺图一般都画成正方形或矩形。对于n个变量,图中分割出的小方块应有2^{n}个,因为n个变量有2^{n}个最小项,而每一个最小项都需要用一个小方块表示。

②按循环码排列变量取值顺序。循环码的特点是相邻编码之间只有1位码元不同,这是关键,只有这样排列,所得到的最小项方块图才成为卡诺图。

[1]循环码可以很容易地由自然二进制码推导出来,二进制码为B=B_{0}B_{1}B_{2}\cdot \cdot B_{n}则对循环码G=G_{0}G_{1}G_{2}\cdot \cdot G_{n}(这里先用二进制表示)有G_{i}=B_{i+1}\bigoplus B_{i}G_{n}=0)。

[2]实际上并不用记住上面给出的规律,把卡诺图画出来后,每个小方块都对应一个最小项,把最小项对应的二进制数转换为十进制数,就是该方块的循环码

(3)变量卡诺图的特点:

①在卡诺图中,凡是几何相邻的最小项,在逻辑上都是相邻的

[1]几何相邻:方块几何相邻有三种情况,一是相接(紧挨着),二是相对(任一行或一列的两头),三是相重(卡诺图对折起来后位置重合)

[2]逻辑相邻:如果两个最小项,除了一个变量的形式不同以外,其余的都相同,那么这两个最小项就称为在逻辑上是相邻的,而在逻辑上相邻的最小项是可以合并的(合并之后能消去至少一个因子)。

②卡诺图的主要缺点是随着变量个数的增加,图形会越来越复杂,当变量多于6个时,卡诺图将会变得非常庞大,不好处理。

(4)变量卡诺图中最小项合并的规律:

①两个相邻最小项合并可以消去一个因子。

②四个相邻最小项合并可以消去两个因子。

③八个相邻最小项合并可以消去三个因子。

2^{n}个相邻最小项合并可以消去n个因子。

3、逻辑函数的卡诺图

(1)逻辑函数卡诺图的画法:

①根据函数的变量个数画出相应的卡诺图。

在函数的每一个乘积项所包含的最小项处都填1,其余位置填0或不填。

(2)逻辑函数卡诺图的特点:

①优点:用几何位置的相邻,形象地表达了构成函数的各个最小项在逻辑上的相邻性。

②缺点:当函数变量多于六个时,画图十分麻烦,其优点不复存在,无实用价值。

(3)逻辑函数卡诺图画法举例:(下图中未给出标准与或表达式,最小项需要根据非标准式自己推断)

(4)用卡诺图化简逻辑函数:

①基本步骤:画出逻辑函数的卡诺图,合并逻辑函数的最小项,选择乘积项写出最简与或式。

②合并最小项的原则:

[1]必须包含函数的所有最小项(最好先圈出孤立项),并且保证合并后乘积项的总数最少(也就是圈圈的个数越少越好,这需要尽可能地把包围圈画到最大)。

[2]相邻的最小项合并时,蕴含函数的最小项数量越多,则合并后乘积项的因子越少,2^{i}(i=0,1,2,…,n-1)个相邻的最小项相或,可以消去i个变量。

[3]每次合并时,为了消去更多变量,可以重复使用函数的最小项,但是必须保证至少包含1个新的最小项(也就是未被重复使用过的最小项),以避免冗余项的出现。

③举例:

四、具有约束的逻辑函数的化简

1、约束的概念和约束条件

(1)约束:

①约束即输入变量取值所受的限制。

②举例:逻辑变量A、B、C分别表示电梯的升、降、停命令,A = 1表示升,B = 1表示降,C = 1表示停。

ABC的可能取值

001、010、100

ABC的不可能取值

000、011、110、101、111

(2)约束项:不会出现的变量取值所对应的最小项。

(3)约束条件:

①由约束项相加所构成的值为0的逻辑表达式就是约束条件。

②约束条件的表示方法:

[1]在真值表和卡诺图上用叉号(×)表示。

[2]在逻辑表达式中,用等于0的条件等式表示。

2、具有约束的逻辑函数化简

(1)约束条件在化简中的应用:

①在公式法中,可以根据化简的需要加上或去掉约束条件,因为在逻辑表达式中,加上或去掉0,函数是不会受到影响的,而约束条件的值总是为0。

②在利用函数的卡诺图合并最小项时,可根据化简的需要包含或去掉约束项,因为合并最小项时,如果圈中包含了约束项,则相当于在相应的乘积项中加上了该约束项(其值为0),函数不会受到影响(但这并不意味着要把所有约束项都包含进去,约束项在化简中的作用仅仅只是可以使包围圈更大,而不是使包围圈的个数变多)。

(2)变量互相排斥的逻辑函数的化简:

        在一组变量中,只要有一个变量取值为1,则其它变量的值就一定是0,有这种约束的变量称为互相排斥的变量。

3、化简举例

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

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

相关文章

Windows 2008部署

创建虚拟机2008 创建之后实现远程连接 后端部署 然后解压jdk tomcat mysql jdk 配置环境变量 修改JAVA_HOME 变量名:JAVA_HOME 变量值:电脑上JDK安装的绝对路径 修改CLASSPATH 变量名:CLASSPATH 变量值:.;%JAVA…

vue2+element医院安全(不良)事件报告管理系统源代码

目录 安全不良事件类型 源码技术栈 医院安全(不良)事件报告管理系统采用无责的、自愿的填报不良事件方式,有效地减轻医护人员的思想压力,实现以事件为主要对象,可以自动、及时、实际地反应医院的安全、不良、近失事件…

力扣经典题目解析--旋转图像(字节二面)

题目 原题地址: . - 力扣(LeetCode) 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1&#xff1…

基础软件之道:企业级实践与开源创新【文末送书-22】

文章目录 前言-基础软件之路:企业级实践及开源之路企业级实践1. 高可用性和容错性2. 安全性和隐私保护3. 自动化和DevOps实践 开源之路1. 开源操作系统2. 容器化和编排工具3. 数据库系统4. 自动化工具 基于编译器的静态代码分析与软件开发效率、质量和性能1、静态分…

Sora还太远!国产AI创作恐怖电影:《生化危机:重生》上

Sora用不上!国产AI创作恐怖电影:《生化危机:重生》上 丧尸围城,世界沦陷,爱丽丝是拯救这个世界的最后一剂解药,然而。。。 《生化危机:重生》(上)电影开始地球已经被丧尸…

最长的回文串

开始想的简单了&#xff0c;确实没想到奇数字母删去一个后也能用 解法&#xff1a; 桶排序 #include<iostream> #include<vector> #include<algorithm> using namespace std; #define endl \n #define int long long signed main() {int t;cin >> t…

前后端分离vscode保险业务管理系统vue+Nodejs

本设计主要应用于完成对保险业务进行计算机化的管理。系统前台展示各种种类的保险&#xff0c;顾客可以选择登陆后买入。公司员工为管理员&#xff0c;由公司统一分配账号&#xff0c;员工用工号密码登陆。可以修改密码&#xff0c;查看、修改自己的信息。员工可处理顾客信息。…

Qt 事件

1. 事件 事件是对各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的通称。在Qt中使用一个对象来表示一个事件&#xff0c;它继承自QEvent类。 2. 事件和信号 事件与信号并不相同&#xff0c;比如我们使用鼠标点击了一下界面上的按钮&#xff0c;那么就会产生…

DT DAY3 信号和槽

作业&#xff1a; 1> 思维导图 2> 使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 btn3 new QPushButton("按钮3",this);btn3->resize(ui->btn2->width(),ui->b…

【Spring】Spring MVC

目 录 一.什么是 Spring MVC&#xff1f;1.MVC 定义2.MVC 和 Spring MVC 的关系 二.为什么要学 Spring MVC&#xff1f;三.怎么学 Spring MVC&#xff1f;1.Spring MVC 创建和连接综上连接方式&#xff1a; 2.获取参数1.传递单个参数2.获取多个参数3.获取对象4.获取表单参数5.接…

基于springboot+vue的桂林旅游景点导游平台(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

Pyglet综合应用|推箱子游戏之关卡图片载入内存

目录 读取图片 分割图片 综合应用 本篇为之前写的博客《怎样使用Pyglet库给推箱子游戏画关卡地图》的续篇&#xff0c;内容上有相关性&#xff0c;需要阅读的请见链接&#xff1a; https://hannyang.blog.csdn.net/article/details/136209138 「推箱子」是一款风靡全球的益…

RabbitMQ学习整理————基于RabbitMQ实现RPC

基于RabbitMQ实现RPC 前言什么是RPCRabbitMQ如何实现RPCRPC简单示例通过Spring AMQP实现RPC 前言 这边参考了RabbitMQ的官网&#xff0c;想整理一篇关于RabbitMQ实现RPC调用的博客&#xff0c;打算把两种实现RPC调用的都整理一下&#xff0c;一个是使用官方提供的一个Java cli…

开源博客项目Blog .NET Core源码学习(9:Autofac使用浅析)

开源博客项目Blog使用Autofac注册并管理组件和服务&#xff0c;Autofac是面向.net 的开源IOC容器&#xff0c;支持通过接口、实例、程序集等方式注册组件和服务&#xff0c;同时支持属性注入、方法注入等注入方式。本文学习并记录Blog项目中Autofac的使用方式。   整个Blog解…

NXP实战笔记(六):S32K3xx基于RTD-SDK在S32DS上配置PWM发波

目录 1、概述 2、SDK配置 2.1、Port配置 2.2、Emios_Mcl_Ip 2.3、Emios_Pwm 2.4、代码示例 1、概述 针对S32K3xx芯片&#xff0c;产生PWM的硬件支持单元仅有两个&#xff0c;分别是eMiosx与Flexio. 生成PWM的顺序&#xff0c;按照单片机所用资源进行初始化执行如下 初始化…

UTONMOS开启数智龙年,打造元宇宙游戏圈新名片

新年已过&#xff0c;全国各个城市早已客流涌动、热闹非凡。这种繁华景象不仅存在于现实世界&#xff0c;也被复刻到元宇宙的虚拟空间中。 据介绍&#xff0c;UTONMOS“源起山海-神念无界”元宇宙游戏是以原创IP玄幻神话故事“元宇宙史纪”为蓝本打造的元宇宙游戏空间&#xf…

【DataTable.js】02.DataTable参考

一、Option 1.1 Features 属性类型默认值描述autoWidthbooleantrue是否自动调节单元格宽度&#xff0c;若传入了columns.width&#xff0c;可禁用该选项orderingbooleantrue是否支持排序pagingbooleantrue是否支持分页scrollXbooleanfalse是否支持横向滚动条scrollYstring启用…

2024年必备原型设计工具盘点,助你成为设计大神

原型设计是 UI/UX 设计中至关重要的一步&#xff0c;就像用户体验中的其他环节一样&#xff0c;有无数的原型工具可以帮助你完成原型设计。 如果市场上有太多的原型设计工具让你不知所措&#xff0c;不知道选择哪一个&#xff0c;恭喜你&#xff0c;这个原型设计工具的集合是为…

云打印app下载,云打印app在哪下载?

随着互联网技术的发展&#xff0c;云打印技术已经逐渐成熟。而对于用户来说&#xff0c;很多有打印需求的用户都需要用到云打印&#xff0c;那么云打印App怎么下载&#xff0c;云打印app在哪下载呢&#xff1f;今天带大家来了解一下。 云打印app在哪下载&#xff1f; 很多有打…

银河麒麟桌面系统的文件保护箱的使用

在开始菜单搜索文件保护箱 输入密码进行认证&#xff0c;授权后方可使用 首次使用&#xff0c;选择新建 填写保护目录的名字以及设置目录保护密码 密钥文件保存到桌面 我这里保存到桌面&#xff0c;你可千万别&#xff0c;这个很重要&#xff0c;丢失的话&#xff0c;若忘记密…