热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

数字逻辑之组合逻辑电路

1.组合逻辑分析:组合逻辑电路是指在任何时刻,输出状态只决定于同一时刻各输入状态的组合,而与电路以前状态无关,而与其他时间

1.组合逻辑分析:

组合逻辑电路是指在任何时刻,输出状态只决定于同一时刻各输入状态的组合,而与电路以前状态无关,而与其他时间的状态无关。(即任意时刻的输出状态取决于该时刻的输入信号,而与信号作用前电路的状态太无关。)


  1. 逐级平推导法

是先假定输出为某一值(0 or 1)然后逐级向前推导,直到退到输入的值。


  1. 列写布尔表达式法

就是将电路写成布尔函数表达式


  1. 数字波形图分析法

对逻辑门的所有的输入变量施以输入波形,逐级画出的输出波形,乃至画出最后的输出波形。


  1. 列写逻辑电路真值表法

   将其布尔表达式化简成最小项相加的形式,得出输入和输出端的真值表。


  1. 逻辑电路中的竞争冒险

冒险是由变量的竞争引起的.冒险又分为逻辑冒险和功能冒险.

产生竞争冒险的原因在组合电路中,当输入信号的状态改变时 ,输出端可能会出现不正常的干扰信号 ,使电路产生错误的输出 ,这种现象通常称为竞争冒险 。组合电路中的竞争冒险 , 可影响电路功能甚至破坏整个电路正常运转 。其产生原因主要是门电路开关电平的时间差和门电路延迟时间 。

代数法:在逻辑函数表达式中,若某个变量同时以原变量和反变量两种形式出现,就具备了竞争条件.去掉其余变量(也就是将其余变量取固定值0或1),留下有竞争能力的变量,如果表达式为 F=A+A~(因为上横杠打不出来,故用A~表示A的反变量,下同),就会产生0型冒险(F应该为1而实际却为0);如果表达式为 F=AA~,就会产生1型冒险.

例:表达式 F=AB+CB~,当A=C=1时,F=B+B~,在B发生跳变

时,可能出现0型冒险.

   消除竞争冒险的两种方法:1.加选通脉冲;2修改逻辑电路。

2.组合逻辑设计

略;


  1. 组合逻辑电路的等价变换

  主要掌握:

    1.地摩根定理的应用

      与非门等价于非或门

(AB)~=A~+B~

或非门等价于非与门

(A+B)~=(A~)*(B~)

2.与非门,或非门作为通用元件

主要考虑:信号经过的门的级数越多,传输延迟时间越长。


  1. 利用与非门/非或门进行等价变换(电路的实现)
  2. 逻辑函数的“与或非”门的实现

4.数据选择器与分配器

   1.数据选择器

数据选择器的逻辑功能是通过地址选择端的控制,从多路输入数据中选择一路数据输出。数据选择器(MUX)又称多路选择器,多路开关.它是一个多输入,单输出电路.其输出等于哪一路输入,取决于控制的信号。通常有四选一,二选一,八选一,十六选一。

4选1数据选择器的真值表如表4-26所示,其中,D0、D1、D2、D3是4路数据输入,A1、A0为地址选择输入,Z为数据选择器输出。根据某电路的真值表可得输出函数表达式为:

真值表:

 

 

可观察Z由A1,A0控制,A1,A0由00到11,有四种结果则对应四种输出。其他选择器电路同理可推。n选择器则有logn个地址输入端,反之。

2.数据分配器

四选一电路图;

 

2.数据分配器

据分配器的逻辑功能是将一路输入数据根据地址选择码分配给多路数据输出中的某一路输出。其逻辑功能正好和数据选择器相反,它是一种单路输入,多路输出的逻辑构件它实现的是时分多路传输电路中接收端电子开关的功能,并用DMUX来表示。通常数据分配器有一根输入线,n根选择线和2n根输出线。

以4路数据分配器为例,可以看到4路数据分配器的真值表和逻辑符号如,其中,D为一路数据输入,Z0~Z3为4路数据输出,A1、A0为地址选择码输出端。其输出函数表达式为:

 

所以可用逻辑门实现4路数据选择器的功能。

多路数据选择器相当于一个多路至一路的选择开关,而数据分配器则相当于一个一路到多路的选择开关

 

1线-4线分配器的真值表

D为数据输入, A1,A2为选择控制输入,控制哪一线输出D。

 

5.译码器和编码器

1.编码器

在数字系统中,经常需要把具有某种特定含义的数字信号输入,变换成二进制代码,这种用二进制代码表示具有某种特定含义信号的过程称为编码。而把一组二进制代码的特定含义译出来的过程称为译码。这里的编码特指对一组选定的二值代码赋予其特定的含义。如将人们熟悉的十进制数,用二进制码或BCD码表示出来。而在日常生活中,电话号码、人名等都是编码的特例。完成编码的电路称为编码器

译码器实现“多对一”的译码,而编码器实现“一对多”译码。


  1. 普通编码器

①三位二进制编码器:二进制编码器:用n位二进制代码时,对m=2n(2的n次幂)个一般信号进行编码的电路。

②二∕十进制编码器:把0~9十个十进制数字编成二进制代码的电路。n位二进制代码共有2n(2的n次幂)种,可以对m≤2n(2的n次幂)个信号进行编码。因二∕十进制编码器的输入是十个十进制数,故应使用四位二进制代码表示制。从2n=16种二进制代码中取十种来代表0~9这是个十进制数码,方案很多,最常用的是8421BCD码。在二∕十进制编码器中,代表0~9的输入信号也是互相排斥的,其工作原理及设计过程与三位二进制编码器完全相同,不再重复 。

编码器的每个输入端可连接一个代表十进制数符的信号。有四条输出线,组成BCD码,其中D3为高位,D0为低位。

如下:其结构图和逻辑电路图

 

 

相当于将十进制转化成二进制,而0-9需要4个输出端才能表示其二进制。

b.优先编码器

普通编码器对输入线是有限的,即在任意一时刻所有输入线中只允许一个输入线上有信号,否则编码器发生混乱。优先编码器就是为了解决这一问题的。它允许多个信号同时有效。设计时预先对所有输入按优先顺序进行排队,当多个输入同时有效时,只对其中优先级最高的输入信号编码,而对级别较低的输入信号不予理睬。

由以下图,可更好的理解:

 

 

1.译码器

定义:把二进制代码按照愿意转换相应输出信号的过程叫译码。完成译码功能的逻辑电路叫译码器。译码器的n个输入,m个输出应满足2n≥m。译码器有二进制译码器、二—十进制译码器、数字显示译码器等类型  。

常用的译码器有:双2线-4线译码器,3-8译码器,4-16译码器,和4-10译码器,其中4-10译码器用于BCD译码器。

这而主要讲3-8译码器:

它由三个数据输入端(D2,D1,D0),8个输出端(Y0~Y7~)另有三个使能输入端(一个高电平有效和两个低电平有效)》由功能表看出,译码器可对8线中的某一线进行译码,究竟哪一条线,要看D2,D1,D0三个数据输入和G1,G2A,G2B三个使能输入的条件而定。在译码使用时,使能端必须满足,G1=1,G2=G2A+G2B=0的条件。当某一线的输出为低电平时,对应的一组数据线输出信号被译码。

 

由图可看出只有当G1=1且G2=0时,通过数据输入才能对其译码输出。其带你路图如下:

左为3-8,右为2-4;

 


  1. 数据比较器和加法器

数据比较器

1.1位数值比较器

两个1位二进制数比较时,有4种可能,3种结果 [1]

2.多位数值比较器

设:A=A3A2A1A0,B=B3B2B1B0

用li =1,表示Ai>Bi;

mi =1,表示Ai

gi =1,表示Ai=Bi。

比较时,应从高开始,若高位比出结果,则低位不用再比。当高位相等时,再去比较低位。

 

如图先比较比较输入,再比较联级。由ai与bi的比较推出A与B的关系。其中联级输入a>b和a

加法器

1.串行加法器

它由多个全加器串行连接而成。每一个全加器是一个一位加法器,有三个输入(加数Ai,被加数Bi,低位的进位信号Ci-1,两个输出(和数Si,向高位的进位信号Ci)

其表达式:

 

其真值表:

 

2.并行加法器

串行加法器须将低位全加器产生的进位信号逐位向高一位全加器传递。因此,加法器求和的最高位输出必须等到各个进位信号逐位信号传递后才能形成,说百了就是工作速度很慢。则可以采用并行加法器来优化这个问题。

 

7.奇偶校验器

奇偶校验有奇校验和偶校验之分。对于奇校验,若数据中有奇数个“1”,则校验结果为0,若数据中有偶数个“1”,则校验结果为1; 对于偶校验,若数据中有偶数个“1”,则校验结果为0,若数据中有奇数个“1”,则校验结果为1。

而经常用到的则是:偶数个1,她的和数是0,奇数个1它的和数是1。


推荐阅读
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 本文介绍如何利用动态规划算法解决经典的0-1背包问题。通过具体实例和代码实现,详细解释了在给定容量的背包中选择若干物品以最大化总价值的过程。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 深入理解Java中的volatile、内存屏障与CPU指令
    本文详细探讨了Java中volatile关键字的作用机制,以及其与内存屏障和CPU指令之间的关系。通过具体示例和专业解析,帮助读者更好地理解多线程编程中的同步问题。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
author-avatar
Manordo
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有