• FPGA零基础学习:数字电路中的组合逻辑


    根据逻辑功能的不同特点,可以将数字电路分为两大类,一类称为组合逻辑电路(简称组合电路),另一类称为时序逻辑电路(简称时序电路)。

    在组合逻辑电路中,任何时刻的输出仅仅取决于该时刻的输入,与电路原来的状态无关。这就是组合逻辑电路在逻辑功能上的共同特点。在上一节中,设计的三人表决器就是组合逻辑电路,输出与输入一一对应,和其他无关,输入发生改变,输出立刻跟着改变。

    组合逻辑的设计方法在逻辑代数基础中有一定的简单的叙述。

    • 根据现有的资源做出合理的假设(通过为1、还是为0,不同的硬件可能会是不同的结构)。
    • 根据设计要求和假设,列出真值表。
    • 根据真值表得出表达式,并化简(公式化,卡诺图)。有时需要化简为与非的形式或者其他形式。
    • 根据化简后的布尔表达式做出电路结构,并且验证。

    如果最后结果出现错误,上述所有步骤都要检查,如果上述步骤都没有问题,可以考虑电路结构中的连接问题或者器件的损坏。

    下面利用一个三人表决器的电路设计来说明一些问题。此电路有三个输入(A、B、C),一个输出(Y),只有当两个及两个以上输入赞成时,Y输出赞成。

    设赞成为1,不赞成为0。根据设计要求得出如下真值表:

    根据真值表中Y为1的项列出来,对应的A、B、C为1,则留下变量,为0,则留下反变量。

    Y = A'BC + AB’C + ABC’ + ABC;

    根据上述布尔表达式,我们得出逻辑电路图:

     

    如果所有的逻辑都按照这种写法的话,那么很多的逻辑就会变的很复杂,并且会浪费很多的资源。我们考虑一下,电路既然是按照布尔表达式做出来的,那么布尔表达式能不能化简一下呢?

    Y = A'BC + AB’C + ABC’ + ABC;

    = A'BC + ABC + AB’C + ABC + ABC’+ABC;

    = BC(A' + A) + AC(B+B') + AB(C+C')

    = BC+AC+AB

    上述布尔表达式所对应的逻辑电路图如下:

    思考 :半加器、全加器、多路选择器、乘法器、除法器等常用组合逻辑电路的设计与实现?

    在设计组合逻辑时,分析和设计都是在输入、输出处于稳定的逻辑电平下进行的。为了保证系统工作的可靠性,有必要再观察一下当输入信号逻辑电平发生变化的瞬间电路的工作情况。

    在图1-28所示的与门电路中,稳态下无论A=1、B=0还是A=0、B=1,输出都应该是Y=0;但是输入信号A从1变为0时,如果B从0变为1,由于某些原因(布线的宽度、厚度、温度等),B先从0变为1了,这样在极短的时间内出现了A和B都是1的情况,与门电路就会输出一个极窄的Y=1的尖峰脉冲,或称为电压毛刺。这个尖峰脉冲不符合门电路稳态下的逻辑功能,因而它是系统内部的一种噪声。

    思考 :半加器、全加器、多路选择器、乘法器、除法器等常用组合逻辑电路的设计与实现?

    在设计组合逻辑时,分析和设计都是在输入、输出处于稳定的逻辑电平下进行的。为了保证系统工作的可靠性,有必要再观察一下当输入信号逻辑电平发生变化的瞬间电路的工作情况。

    在图1-28所示的与门电路中,稳态下无论A=1、B=0还是A=0、B=1,输出都应该是Y=0;但是输入信号A从1变为0时,如果B从0变为1,由于某些原因(布线的宽度、厚度、温度等),B先从0变为1了,这样在极短的时间内出现了A和B都是1的情况,与门电路就会输出一个极窄的Y=1的尖峰脉冲,或称为电压毛刺。这个尖峰脉冲不符合门电路稳态下的逻辑功能,因而它是系统内部的一种噪声。

     大家好,我是【FPGA功夫熊猫】精益求精,不断推荐好文章。

  • 相关阅读:
    Win11怎么修改关机界面颜色?Win11修改关机界面颜色的方法
    【UOJ 454】打雪仗(通信题)(分块)
    spring cloud 快速上手系列 -> 03-消息队列 Stream -> 032-使用spring cloud bus实现配置中心热刷新-Server
    物联网AI MicroPython学习之语法UART通用异步通信
    Ubuntu记录
    springboot项目作为静态文件服务器
    虹科分享|如何使最终用户轻松进行备份和恢复?
    Presto RBO之 Sort算子优化
    Java基于SSM的校园一卡通系统设计与实现
    23062QTday5
  • 原文地址:https://blog.csdn.net/ONEFPGA/article/details/125410306