组合逻辑电路的设计

逻辑电路的概念

若逻辑电路在任何时刻产生的稳定输出值仅仅取决于该时刻各输入值的组合,而与过去的输入值无关,则称为组合逻辑电路.

也就意味着该电路不应存在存储器件以延迟对应的输出.
也不存在反馈回路.

逻辑电路的生成

  1. 充分了解需求
  2. 抽象化并写出函数表达式
  3. 列出真值表(若可行)
  4. 化简(卡诺图或代数)
  5. 函数评估
  6. 电路生成(物理化)

逻辑电路的评估

  • 是否完全满足设计需求?是否保证得到预期输出?
  • 逻辑电路的级数是否压缩到最小?

无关项

在需求中常存在一些无关项(也就是非法输入),这些取值保证不会出现(至少是表面上保证),在真值表制作时可以将这些项设置为d(即随便输出0或1都行).而这将给函数化简带来一定的便利.
比如下面的真值表:

如果考虑无效项,即将其当作0,那么化简之后的函数为

如果不考虑无效项,也就是把这个当作什么都可以,那就是

明显的,第二个更简单.但也会造成非法输入的输出紊乱.具体还是要看情况分析.


范例:单位累加器及多位累加器的单元

作为二进制,加法器的需求相当简单,就是:
0+0=00+1=1+0=11+1=00+0=0\\0+1=1+0=1\\1+1=0 0+0=00+1=1+0=11+1=0
(暂时不考虑进位,因为输出就一位)
设输入端信号分别为a,b,那么就是:
F(a,b)=a⊕bF(a,b)=a\oplus b F(a,b)=a⊕b
也就是异或.
而对于有若干位的加法器而言呢?
对于一个有"来自低位的进位"和"传输给高位的进位"的加法器,每一位的器件都有三个输入:ai,bi,ci−1a_i,b_i,c_{i-1}ai​,bi​,ci−1​,同时有两个输出:Si,ciS_i,c_iSi​,ci​.就有如下真值表:

将两个输出分别进行抽象函数化,则有:

绘制卡诺图化简,得到:

当采用异或门及与或门实现电路时,可对表达式作如下变换:

明显的SiS_iSi​仍然是几个输入的异或.

顺便一提,如果上一级没有相应变量的反变量传下来,为了节约门电路和级数以减少时延,可以设计出没有反变量的电路.当然,会更加复杂.


竞争和险象

竞争和险象出现的几率不小,易对电路产生负面影响.
因为每个器件都会产生一个时延,导致输入稳定的时候输出出现异常(比如0变1,1变0),而这时是相当致命的.
时延长短和门电路的级数,门本身的技术参数,导线有关.
竞争的意思就是从不同路径到达输出端的信号时间存在先后,造成一段时间内最后一个门的某些输入没有信号.

这就容易造成竞争.
竞争有良性的,即对输出无明显影响的;也有恶性的,会造成输出错误并产生尖脉冲.产生的错误输出就叫险象.
比如下面的例子:

红色部分就是出现的险象.而每个输入的时间差tpdt_{pd}tpd​就是时延.
险象是输出1的称为1型险象,否称为0型

险象的定位和判断

针对前面分析的情况可知,当变量X同时以原变量和反变量的形式出现在函数表达式中,且在一定条件下该函数表达式可简化成X+XˉX+\bar{X}X+Xˉ或者 X⋅XˉX\cdot \bar{X}X⋅Xˉ时,该函数表达式对应的电路在X发生变化时,可能由于竞争而产生险象。
E.g:
F(x,y,z)=AˉCˉ+AˉB+ACF(x,y,z)=\bar{A}\bar{C}+\bar{A}B+AC F(x,y,z)=AˉCˉ+AˉB+AC
表达式里面有A,AˉA,\bar{A}A,Aˉ,C,CˉC,\bar{C}C,Cˉ,也就是说A,C可能会产生险象.接下来遍历B,C的输入空间,考察是否会有形如A+AˉA+\bar{A}A+Aˉ的式子存在.

为什么是要求正反变量同时存在呢?因为如果是两个相同的变量形式进行与-或操作,不管第二个输入什么输出的都是正常的信号.只有当取反的时候会出错.比如:
A+AˉA+\bar{A}A+Aˉ,当输入为1的项产生延迟时输出会出现一段时间的0,也就是0型险象.所以判断标准是这样.

发现在BC=11时出现险象.
对C也如此操作.

同样还可以用卡诺图判断是否存在险象.
当出现两个圈"相切",即相邻最小项分属两个圈,也即会出现A+AˉA+\bar{A}A+Aˉ的情况.这时候出现险象.

比如这个图,看出(0101)2和(1101)2(0101)_2和(1101)_2(0101)2​和(1101)2​出现相切,此时;对于相异项A出现险象.
当然在卡诺图的化简的过程中为了追求圈的最大化,能重叠都尽量重叠了 所以出现不得已的相切多半就是上图这种情况.


险象的消除

为消除险象,最常用的方法是在电路中加入冗余项.
具体来说,就是先观察什么时候会出现险象(在其他变量怎么输入时).如果最后一个门是与且险象类型是0(即异常状况是0),就添加在产生险象的其他变量的真值指派下恒为1的与项;如果最后一个门是或,就添加在产生险象的其他变量的真值指派下恒为0的与项.
比如:
F(A,B,C)=AB+AˉCF(A,B,C)=AB+\bar{A}C F(A,B,C)=AB+AˉC
当B=C=1时,A的变化可能使输出产生“0”型险象。
那么为防止险象,添加一个在B=1C=1下为1的冗余项BC即可消除.

当然从物理层面盛来说,还可以设置一个电容组合电路来过滤杂波.这个属于电路的知识,在此不做讲解.

还有一种更刺激的套路是通过一个开关调节信号来决定什么时候输出信号.就像下图这样.

当选通脉冲不工作时电路无法输出信号.这样就避免的险象对下一级电路的恶性影响.


Conclusion

本篇文章阐述了逻辑电路设计的一些基本原则,还对电路设计中的常见问题之一竞争和险象进行了分析,并提出了一些避免产生恶性影响的方法.


组合逻辑电路的设计:竞争和险象相关推荐

  1. 数电基础(4)--组合逻辑电路分析设计

    组合逻辑电路 一.组合逻辑电路的分析 二.组合逻辑电路的设计 设计组合逻辑电路需要注意的问题 三.组合逻辑电路中的竞争冒险 产生原因 消除方法 四.计算机体系结构涉及的组合逻辑电路 编码器 译码器/数 ...

  2. 数字逻辑对偶式_数字电子技术实验——组合逻辑电路的设计

    实验目的: (1)掌握组合逻辑电路设计的一般步骤 (2)掌握用TTL基本门电路进行组合电路设计的方法 (3)学会如何查找线路的故障 实验仪器: (1)数字电路试验箱 (2)数字万用表 (3)集成块若干 ...

  3. 数字电路实验一 组合逻辑电路的设计预实验报告

    数字电路实验一 组合逻辑电路的设计 ---用与非门74LS00,74LS20设计制作一个三人表决电路 (验证性实验) 预习要求: 1.查资料画出74ls00和74ls20芯片引脚图排列图,画出逻辑符号 ...

  4. 组合逻辑电路的设计(二) -- 五路输入呼叫显示电路和两个BCD8421码的加法运算电路

    一.实验任务及要求 1. 设计要求(2题任选1题,鼓励2题都做) (1) 设计一个五路输入呼叫显示电路,5个数码开关分别模拟用户的输入信号,用户优先权按用户编号依次递减,即1号的优先权最高,5号最低: ...

  5. FPGA:组合逻辑电路的设计

    文章目录 组合逻辑电路的设计 组合逻辑电路的设计步骤 组合逻辑电路的设计举例 例1 例2 组合逻辑电路的设计 根据实际逻辑问题,求出所要求逻辑功能的最简单逻辑电路. 组合逻辑电路的设计步骤 1.逻辑抽 ...

  6. 数字电路基础知识—— 组合逻辑电路中的竞争与冒险(竞争与冒险、检验方法、及消除方法)

    在数字逻辑设计中,并不是说最简的逻辑表达式在设计组合逻辑时一定是最优的,可能就会出现本次介绍的竞争与冒险问题,所以需要了解竞争与冒险的检验以及竞争与冒险的避免消除方法. 一.竞争与冒险现象及其形成原因 ...

  7. 数电实验二 常用中规模组合逻辑电路的设计及应用

    3.1 利用实验一设计的 4 位串行(或超前)进位二进制并行加法器电路作为组件, 设计 4 位二进制可控加减法器,并验证:(说明:用 K 作为控制信号,当 K=0 时,电 路做加法:当 K=1 时,电 ...

  8. 【数字逻辑】学习笔记 第四章 Part2 常用组合逻辑电路与竞争、险象

    文章目录 一.常用组合逻辑电路 1. 译码器 (1) 二进制译码器 74LS138(3/8译码器) a. 一般符号和图形符号 b. 74LS138功能表 c. 两片 `74LS138` 构成 `4-1 ...

  9. 数字电路和模拟电路-5组合逻辑电路分析与设计

    目录 一.逻辑代数 1.复习一下之前学习的基本公式 2.知识点:最小项 二.逻辑函数的卡诺图化简法 1.相邻最小项 2.卡诺图 3.用卡诺图表示逻辑函数 三.组合逻辑电路的分析方法 1.组合逻辑电路的 ...

最新文章

  1. ETL工具箱 5提交维表
  2. Python----面向对象---主动触发异常-raise
  3. Linux查看关机时间
  4. SpringBoot 2.x 集成 Redis
  5. Spring MVC : 概念模型 HandlerMethod(转载)
  6. phalanger php compiler,phalanger-php的.net编译器 _php技巧
  7. 问题 A: 阿正的忐忑不安(C语言)
  8. 20个非常棒的Jquery实用工具 [转]
  9. 如果要在mFC客户区添加控件怎么办
  10. shell变量、函数和数组以及字符串的截取
  11. python中argsparse_Python中argparse库的基本使用(示例)
  12. SAP FICO 第三节 BDC和LTMC导入S4财务科目
  13. SRM 635 DIV2
  14. MACOS 打开 Pycharm2020 闪退解决方法
  15. python异步查询数据库_Python的Tornado框架实现异步非阻塞访问数据库的示例
  16. Cadence 中贴片元件焊盘的制作
  17. 常用markdown语法
  18. 产品经理技能,岗位职责,项目开发流程
  19. ubuntu查看core dumped的详细错误原因
  20. 搭载了HarmonyOS 2的华为nova9,有哪些眼前一亮的功能?

热门文章

  1. 电脑突然找不到蓝牙开关了
  2. 解线性方程组的迭代法--大型稀疏矩阵---松弛迭代法C++实现
  3. [Unity]Shader利用Geometry处理实现描边效果
  4. 从零开始成为优秀的交互设计师
  5. Python 实现微信测试号情侣纪念消息推送(消息群发)
  6. go通过channel获取goroutine的处理结果
  7. PCB与设备外壳接地问题
  8. Docker基本概念
  9. 微信小程序获取用户运动步数后端返回-41003
  10. 股票开户天宇优配|新冠药概念走势活跃,九安医疗涨停,森萱医药