逻辑函数化简全解析:公式法与卡诺图法终极指南
一、为什么需要逻辑函数化简?
想象一下,你正在设计一个简单的3人投票电路:当至少两人同意时,输出通过信号。未经化简的逻辑表达式可能是:
F = A&B + A&C + B&C
若直接实现,需要3个与门和1个或门。而通过化简(如公式法),可简化为更高效的电路:
F = (A&B) | (A&C) | (B&C)(无需化简的原始形式已是最简)。
然而,复杂函数(如4变量表达式)若不化简,可能导致数十个冗余逻辑门,增加功耗和延迟。因此,化简的目标是:
- 减少逻辑门数量
- 降低电路复杂度
- 优化信号传输速度
二、公式法(代数化简法)
公式法通过逻辑代数定律逐步简化表达式,适合处理任意变量数的函数。
1. 核心定律与技巧
-
基本定律:
- 交换律:
A+B = B+A,A&B = B&A - 结合律:
A+(B+C) = (A+B)+C - 分配律:
A&(B+C) = A&B + A&C - 德摩根定理:
~(A+B) = ~A & ~B,~(A&B) = ~A | ~B
- 交换律:
-
化简必杀技:
- 吸收律:
A + A&B = A(吸收多余项) - 冗余律:
A + ~A&B = A + B(消去冗余变量) - 合并项:
A&B + A&~B = A(利用互补变量)
- 吸收律:
2. 实例分步演示
题目:化简函数 F = A&B&C + A&B&~C + ~A&B&C + ~A&~B&C
步骤:
-
合并前两项:
A&B&C + A&B&~C = A&B&(C + ~C) = A&B
(利用分配律和互补律:C + ~C = 1) -
合并后两项:
~A&B&C + ~A&~B&C = ~A&C&(B + ~B) = ~A&C
(同理,B + ~B = 1) -
最终结果:
F = A&B + ~A&C
(仅需2个与门和1个或门,电路大幅简化!)
3. 公式法的优缺点
- 优点:无需依赖工具,适合任何变量数。
- 缺点:依赖人工推导,复杂函数易出错。
三、卡诺图法(图形化简法)
卡诺图通过视觉化相邻最小项,快速合并化简,尤其适合2-4变量函数。
1. 卡诺图绘制规则
- 变量排列:按格雷码顺序排列(相邻格子仅1位变化)。
- 填充规则:根据真值表,将输出为1的项填入对应位置。
示例:3变量函数 F(A,B,C) = Σm(0,1,2,5,6) 的卡诺图:
BC 00 01 11 10
A 0 1 1 0 1 1 0 1 0 1
2. 化简三步法
-
画圈合并:
- 圈出相邻的1(允许上下、左右、边缘循环相邻)。
- 每个圈必须包含2ⁿ个格子(如1,2,4,8等)。
- 本例画圈:
- 圈1:m0, m1, m2, m3 → 对应
~A&~C - 圈2:m5, m7 → 对应
B&C
- 圈1:m0, m1, m2, m3 → 对应
-
提取表达式:
- 每个圈保留固定变量,消去变化变量。
- 圈1:
~A&~C(A和C固定为0,B变化被消去)。 - 圈2:
B&C(B和C固定为1,A变化被消去)。
-
合并结果:
F = ~A&~C + B&C
3. 卡诺图法的优缺点
- 优点:直观快速,适合手动处理4变量以内函数。
- 缺点:超过4变量时图形复杂,需借助软件工具。
四、公式法 vs 卡诺图法:如何选择?
| 场景 | 推荐方法 | 原因 |
|---|---|---|
| 简单表达式(≤3变量) | 卡诺图法 | 画圈直观,秒出结果 |
| 复杂表达式(≥4变量) | 公式法+软件辅助 | 避免手动绘图错误 |
| 含无关项(Don’t Care) | 卡诺图法 | 可灵活利用×项扩大圈的范围 |
| 需要教学演示 | 公式法 | 展示逻辑定律的逐步推导过程 |
五、实战技巧与工具推荐
1. 常见误区
- 卡诺图圈过大:圈越大越好?错!需确保圈内变量最少。
- 错误示例:将4个1圈成一个大圈,导致表达式多出冗余变量。
- 忽略无关项:未利用×项可能导致表达式未最简。
2. 工具推荐
- KMAP Solver(在线卡诺图工具):自动生成并化简卡诺图。
- Logic Friday:支持公式法与卡诺图法,适合多变量函数。
- Logisim:电路仿真验证化简结果是否正确。
3. 验证方法
化简后务必通过以下方式验证:
- 真值表比对:确保原始函数与化简后的输出完全一致。
- 电路仿真:在Logisim中搭建电路,测试关键路径延迟。
动手练习:尝试化简函数 F = A&B&~C + A&~B&~C + ~A&B&C + ~A&~B&C,评论区分享你的结果!
相关文章:
逻辑函数化简全解析:公式法与卡诺图法终极指南
一、为什么需要逻辑函数化简? 想象一下,你正在设计一个简单的3人投票电路:当至少两人同意时,输出通过信号。未经化简的逻辑表达式可能是: F A&B A&C B&C 若直接实现,需要3个与门和1个或门。…...
多模态基础模型训练笔记-第一篇InternVL-g
一、TL;DR 将之前所有训练过的大模型的过程都总结和回忆一下,遇到的坑别忘了 二、问题记录 还是注意镜像的选择,选择社区最火的镜像,然后下载好对应的数据,主要显卡的选择,这个时候4090已经带不动了&…...
微软AutoGen高级功能——Magentic-One
介绍 大家好,博主又来给大家分享知识了,这次给大家分享的内容是微软AutoGen框架的高级功能Magentic-One。那么它是用来做什么的或它又是什么功能呢,我们直接进入正题。 Magentic-One Magnetic-One是一个通用型多智能体系统,用于…...
Unity UI个人总结
个人总结,太简单的直接跳过。 一、缩放模式 1.固定像素大小 就是设置一个100x100的方框,在1920x1080像素下在屏幕中长度占比1/19,在3840x2160,方框在屏幕中长度占比1/38。也就是像素长款不变,在屏幕中占比发生变化 2.…...
Dubbo和OpenFeign的对比
Dubbo 和 OpenFeign 是两种常用的服务间通信框架,但设计目标和适用场景有显著差异。以下是两者的对比分析: 1. 核心定位 Dubbo RPC 框架:专注于高性能的远程过程调用(RPC),基于自定义协议(如 Du…...
牛客小白月赛110
A智乃办赛 思路:用group表示是第几个大写英文字母,以A为基础,(n-1)/500为几则往上加几,从而得到应有的字母,用number表示当前组内的编号,(n-1)%5001表示,至于最后的前导0,在输出的时…...
用大模型学大模型03-数学基础 概率论 条件概率 全概率公式 贝叶斯定理
要深入浅出地理解条件概率与贝叶斯定理,可以从以下几个方面入手,结合理论知识和实例进行学习: 贝叶斯定理与智能世界的暗语 条件概率,全概率公式与贝叶斯公式的推导,理解和应用 拉普拉斯平滑 贝叶斯解决垃圾邮件分类 …...
电商小程序(源码+文档+部署+讲解)
引言 随着移动互联网的快速发展,电商小程序成为连接消费者与商家的重要桥梁。电商小程序通过数字化手段,为消费者提供了一个便捷、高效的购物平台,从而提升购物体验和满意度。 系统概述 电商小程序采用前后端分离的架构设计,服…...
基于单片机的开关电源设计(论文+源码)
本次基于单片机的开关电源节能控制系统的设计中,在功能上设计如下: (1)系统输入220V; (2)系统.输出0-12V可调,步进0.1V; (3)LCD液晶显示实时电压ÿ…...
Day2 25/2/15 SAT
【一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解(马士兵)】https://www.bilibili.com/video/BV13g41157hK?p4&v…...
DeepSeek笔记(一):本地部署DeepSeek R1并搭建Web UI实现可视化交互的笔记
经过多天的挣扎和卸载了一些软件,终于下定决心在本地部署DeepSeek R1模型。部署和搭建过程非常简单和方便。 一、下载Ollama 进入Ollama官方网站(https://ollama.com),进入下载下载Ollama页面(https://ollama.com/download) 根据电脑的操作…...
.NET 9.0 的 Blazor Web App 项目,Bootstrap Blazor 全局异常 <ErrorLogger> 使用备忘
一、全局异常 通过 <ErrorLogger> 组件实现,可以对全局的日志、异常进行统一输出,该组件【已经包含】在 <BootstrapBlazorRoot> 中,使用了 <BootstrapBlazorRoot> 组件包裹的 razor组件 【不用】再额外添加 <ErrorLogge…...
每天五分钟深度学习框架pytorch:搭建谷歌的Inception网络模块
本文重点 前面我们学习了VGG,从现在开始我们将学习谷歌公司推出的GoogLeNet。当年ImageNet竞赛的第二名是VGG,而第一名就是GoogLeNet,它的模型设计拥有很多的技巧,这个model证明了一件事:用更多的卷积,更深的层次可以得到更好的结构 GoogLeNet的网络结构 如图所示就是Go…...
Unity Shader Graph 2D - Procedural程序化图形循环的箭头
前言 箭头在游戏开发中也是常见的一种图形之一,在游戏中箭头通常会用作道路引导或者指示,告诉玩家前进的方向,是比较重要的提示信号。本文将通过使用程序化图形来实现循环滚动的箭头效果,实践和熟悉Shader Graph的相关节点。 首先创建一个Shader Graph文件命名为Mo…...
Spring Boot 携手 DeepSeek:开启智能交互新时代
前言 在当今数字化浪潮汹涌澎湃的时代,人工智能技术正以前所未有的速度改变着我们的生活和工作方式。大语言模型作为人工智能领域的一颗璀璨明星,凭借其强大的自然语言处理能力,为各个行业带来了新的发展机遇。DeepSeek 作为一款性能卓越的大语言模型,以其高效、准确的文本…...
【Java学习】类和对象
目录 一、选择取块解 二、类变量 三、似复刻变量 四、类变量的指向对象 五、变量的解引用访问 1.new 类变量(参) 2.this(参) 3.类变量/似复刻变量. 六、代码块 七、复制变量的赋值顺序 八、访问限定符 1.private 2.default 九、导类 一、选择取块解 解引用都有可以…...
探索高通骁龙游戏超分辨率技术:移动游戏的未来
高通技术公司于2024年推出了骁龙游戏超分辨率2(Snapdragon Game Super Resolution 2,简称GSR2),这是一项全新的骁龙Elite Gaming功能,旨在最大化移动游戏的性能和电池寿命。 什么是骁龙游戏超分辨率2(GSR2&…...
【java面试】线程篇
1.什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。 2.线程和进程有什么区别? 线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任…...
ram的使用——初始化很重要
背景 ram是非常常用的ip,前人的经验告诉我们,如果不对ram进行初始化直接读写,不定态在实际上板时会出现不可预知的问题。 我们需要对ram进行初始化写0操作,代码如下。需要注意,复位释放时立马写入可能存在复位抖动的…...
LabVIEW 用户界面设计基础原则
在设计LabVIEW VI的用户界面时,前面板的外观和布局至关重要。良好的设计不仅提升用户体验,还能提升界面的易用性和可操作性。以下是设计用户界面时的一些关键要点: 1. 前面板设计原则 交互性:组合相关的输入控件和显示控件&#x…...
[C++]多态详解
目录 一、多态的概念 二、静态的多态 三、动态的多态 3.1多态的定义 3.2虚函数 四、虚函数的重写(覆盖) 4.1虚函数 4.2三同 4.3两种特殊情况 (1)协变 (2)析构函数的重写 五、C11中的final和over…...
【SQL server】存储过程模板
SQL server存储过程模板 创建存储过程 CREATE PROC TEST-- 此处可设置参数(非必须)TEST VARCHAR(MAX) -- 未设置默认值时,需要在执行存储过程时进行传参 AS BEGIN-- 在此也可以定义参数DECLARE NAME VARCHAR(MAX)/*...SQL相关逻辑脚本*/ E…...
KubeSphere 和 K8s 高可用集群离线部署全攻略
本文首发:运维有术,作者术哥。 今天,我们将一起探索如何在离线环境中部署 K8s v1.30.6 和 KubeSphere v4.1.2 高可用集群。对于离线环境的镜像仓库管理,官方推荐使用 Harbor 作为镜像仓库管理工具,它为企业级用户提供…...
HCIA项目实践--RIP的拓展配置
9.4.7 RIP的拓展配置 (1)RIPV2的手工认证 RIPv2 的手工认证是增强网络安全性的手段。管理员手动配置密钥,路由器在收发 RIPv2 路由更新消息时,会对消息中的认证信息进行检查。发送方添加密钥,接收方用预设密钥验证。若…...
性能测试理论、性能测试分类、性能测试指标
性能测试概念 (1)什么是性能? 时间:系统处理用户请求的响应时间。 资源:系统运行过程中,系统资源的消耗情况。 (2)什么是性能测试? 使用自动化工具,模拟不…...
【kafka系列】日志存储设计 消息写入、读取
目录 日志存储设计 1. 日志存储的目录结构 2. 日志内容格式设计 3. 日志索引设计 4. 设计优势 消息写入流程 示例 流程图 消息读取流程 示例 关键设计细节 流程图 日志存储设计 Kafka的日志存储是其高吞吐、持久化能力的核心设计,其结构包含目录组织、…...
【C】初阶数据结构5 -- 栈
前面学习了两种最基本的数据结构 -- 顺序表和链表,接下来就可以基于这两种数据结构来实现其他数据结构了。其实,其他的数据结构的物理结构要么是数组,要么就是链表,所以学好顺序表和链表是学好其他数据结构的基础。接下里…...
Spring MVC Streaming and SSE Request Processing SSE可以实现chatgpt一次请求分批次响应的效果
1. Introduction This simple tutorial demonstrates the use of several asynchronous and streaming objects in Spring MVC 5.x.x. Specifically, we’ll review three key classes: ResponseBodyEmitterSseEmitterStreamingResponseBody Also, we’ll discuss how to i…...
Python学习心得格式化字符串的format
format的格式控制:format控制格式有6种,分别对所输出的内容进行控制。 语法结构: print({0:所设置的格式}.format(字符串)) 1.引号符号:: 2.填充:所设定的要填充的内容,比如说填充* 3.对齐…...
CNN-LSSVM卷积神经网络最小二乘支持向量机多变量多步预测,光伏功率预测
代码地址:CNN-LSSVM卷积神经网络最小二乘支持向量机多变量多步预测,光伏功率预测 CNN-LSSVM卷积神经网络最小二乘支持向量机多变量多步预测,光伏功率预测 一、引言 1、研究背景和意义 光伏发电作为可再生能源的重要组成部分,近…...
