Menu Close

第八节 逻辑函数建模

在讲解了逻辑函数,逻辑代数规则以及逻辑代数化简等数学知识后,最重要的一个内容就是如何将现实世界的实际问题转化成数学模型进行分析和求解。这里设计到三个主要的问题,一是对实际问题进行分析,建立输入、输出之间的逻辑关系,也就建模;二是在数学模型的基础上,从数学的角度分析输入、输出之间的关系,表现形式有逻辑函数表达式,真值表以及逻辑符号图等;三是根据逻辑函数的值求解对应的输入,即逻辑方程求解(注意对同一个函数值,输入可能不惟一,如与逻辑输出为0,输入00,01,10都满足要求)。对于逻辑函数分析,化简,方程求解都做了探讨。本节内容主要探讨如何由实际需求建立数学模型,从而利用数学函数进行实际问题的分析和求解。

1.基本数学运算建模

数学运算建模涉及到加、减、乘、除等运算,其它运算的变换可以利用该四则运算实现。首先研究加法运算,在上节内容中研究了一位全加器如图1所示,

%title插图%num

图1    1 位全加器示意图

  • 多位全加器

有了一位全加器,那么多位全加器的设计就变得简单多了,例如2位全加器,只要把两个一位全加器级联起来一起运算就可以。

         例1 设计2位全加器

两位全加器的由一位全加器级联如图2所示,可见在全加器的设计中只要解决了一位全加器设计后,多位全加器的设计可以通过多级级联的方式实现。当然这种设计方式在变成逻辑电路后在时序优化方面并不是最优的,但从逻辑角度看给我们提供了一种很不错的解题思路。

          从后面各个例子中也可以看出,利用各种方法将复杂的问题逐步分解,进行简化设计。

%title插图%num

图2  两位全加器的示意图

  • 减法运算

在2进制数算术运算时,我们知道减法可以利用补码将减法变成加法运算,在逻辑运算时这条规则同样使用。如4位减法运算 A0B0C0D0-A1B1C1D1= A0B0C0D0+(-A1B1C1D1)= A0B0C0D0+(~A1~B1~C1~D1+1)。利用加补码的方式可以解决减法运算。

  • 乘法运算

乘法运算可以采用错位相加的方式实现。

例2   设计4位乘以4位的乘法器

设A0A1A2A3,B0B1B2B3 分别为4位变量的输入,则乘法结果为:

P=  B0(0 0 0 0 A0 A1 A2 A3)+ B1(0 0 0 A0 A1 A2 A3 0)+B2(0 0 A0 A1 A2 A3 0 0)+B3(0 A0 A1 A2 A3 0 0 0)

其中B0(0 0 0 0 A0 A1 A2 A3)表示(B0&0 B0&0 B0&0 B0&0 B0&A0 B0&A1 B0&A2 B0&A3), 即B0与括号( )的每一位相与。其它3项 B1(0 0 0 A0 A1 A2 A3 0),B2(0 0 A0 A1 A2 A3 0 0),B3(0 A0 A1 A2 A3 0 0 0)遵循同样的规则。竖式如下:

%title插图%num

图3

除法,以及其它算术运算将在Verilog和System Verilog 等课程中讲解。可见只要掌握了一位全加器设计,其它的数学计算都可以利用该模块的扩展逐步实现。

2. 逻辑运算建模

从上面算术运算函数构建得到启发,一般逻辑运算也先做需求分析,建立输入输出的逻辑关系,设计最基本的模块,然后利用最基本的模块进行扩展。

例2  在会议中需要对某件事情进行表决,要求同意的人数达到一半及以上即通过。设计4输入表决器。并将结果匹配为与或、与非-与非表达式,画出逻辑符号图。

解题步骤如下:

(1)分析可知,输入为4人,用变量A、B、C、D表示4人,变量为1表示同意,0为否决。输出为4人的表决结果,用Y表示,Y的值为1表示最终结果通过,0表示没有通过。列出真值表如下:

%title插图%num

图5 4输入表决器真值表

(2)根据真值表可以写出逻辑函数表达式,然后化简。这里使用卡诺图进行化简。卡诺图如图6所示,

%title插图%num

图6  4输入表决器卡诺图

为了更好的看清楚卡诺图中的标注,下面以6张表(t1,t2,t3,t4,t5,t6)展示每一个相邻最小项标注的结果,如图7所示,

%title插图%num

图6

(3)根据上面六张表按顺序写出化简后的逻辑函数表达式,

Y= BD+AD+BC+AC+CD+AB =AB+AC+AD+BC+BD +CD                                      (1)—- 与或

%title插图%num

(4) 画出逻辑符号图,可以根据要求

  • 与或符号图

%title插图%num

图7  与或逻辑符号图

  • 与非-与非符号图

%title插图%num

图8  与非-与非逻辑符号图

(4)问题扩展讨论

  • 多于4变量的表决器设计,可以采用降维卡诺图的设计方法,但随着变量的增加,降维卡诺图也变得复杂不易使用。
  • 由于目前运算单元变成标准单元,而且有专门的集成电路支持,因此可以用将所有的输入端为1的变量求和Sum,并与N/2 或(N+1)/2比较,其中N为总表决人数,Y的结果如下:

%title插图%num

这种设计方法,在学习了组合逻辑电路设计部分内容后将会有很好的理解。

  • 软件实现(RISC-V 程序设计或嵌入式系统)

在组合逻辑电路设计部分还会介绍更多的模块电路建模和设计,如比较器、编码器、译码器,运算器,分配器等基本模块的建模和设计。

 

 

 

 

Posted in IC, 教材与教案, 数字电路基础, 数字电路基础, 文章

发表回复

相关链接