1.包含无关条件的设计问题
在某些实际问题中,常常由于输入变量之间存在某种相互制约或问题的某种特殊限制等,使得输入变量的某些取值组合不允许出现,或者虽然允许出现,但在这些变量取值下,对输出函数值为0还是1并不关心,即输出函数的值与某些变量取值无关。这些变量取值组合对应的最小项称为“无关最小项”,通常用“d”表示。其相应输出函数称为包含无关最小项的输出函数。
对于包含无关条件的设计问题,若能恰当地利用无关最小项的随意性,往往有利于函数化简。因此,设计中不应忽略无关条件。
例如,设计一个一位十进制数8421码的四舍五入电路。
解 假定电路输入ABCD表示一位十进制数的8421码,电路输出F表示一位十进制数8421码的取值范围,当ABCD表示的十进制数大于或等于5时输出F为1,否则输出F为0。
因为8421码不允许出现1010~1111六种取值组合,故这六种取值组合对应的最小项为无关最小项。据此,可列出真值表如表1所示。
表1
A B C D | F | A B C D | F |
0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 |
0 0 0 1 0 1 1 1 |
1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 |
1 1 d d d d d d |
由真值表可写出函数F的最小项表达式为
根据F的最小项表达式可作出函数F的卡诺图如图1所示。
图1
利用无关最小项化简后得到函数F的最简“与-或”表达式为
假定采用与非门构成实现给定功能的电路,则将上述表达式变换成“与非-与非”表达式
根据函数的“与非-与非”表达式,可画出实现给定功能的逻辑电路图如图2所示。
图2
2.多输出函数的问题
多输出组合电路设计问题设计多输出组合电路时,应注意各函数之间的相互联系,而不应该孤立地处理问题。函数化简时要考虑各函数之间的共享,力求整体达到最简。
例如,用异或门和与非门设计一个全加器。
解 全加器:能对两个1位二进制数及来自低位的“进位”进行相加,产生本位“和”及向高位“进位”的逻辑电路。
全加器有3个输入变量,2个输出函数。设被加数、加数及来自低位的“进位”分别用Ai、Bi及Ci-1表示,相加产生的“和”及“进位”用Si和Ci表示。 根据二进制加法运算法则可列出全加器的真值表如表2所示。
表2
Ai Bi Ci-1 | Si Ci |
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 |
0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 |
由真值表可写出输出函数表达式:
假定采用卡诺图化简上述函数,可作出相应卡诺图如图3所示。
图3
经化简后的输出函数与或表达式为
当采用异或门和与非门组成实现给定功能的电路时,可对表达式作如下变换:
相应的逻辑电路图如图4(a)所示。该电路就单个函数而言,Ai、Ci均已达到最简,但从整体考虑则并非最简。
图4
当按多输出函数组合电路进行设计时,可对函数Ci作如下变换:
经变换后,Si和Ci的逻辑表达式中有公用项,因此,组成电路时可令其共享同一个异或门,从而使整体得到进一步简化,其逻辑电路图如图4.12(b)所示。
3.无反变量输入的问题
在某些问题的设计中,为了减少各部件之间的连线,在逻辑电路的输入端只提供原变量,不提供反变量。设计这类电路时,若直截用非门将相应的原变量转换成反变量,则处理结果往往是不经济的。因此,通常进行适当的变换,以便尽可能减少非门数量。就与非门构成的电路而言,应尽可能将输出函数表达式中各单个的反变量变换成公共的与非因子。
例如 输入不提供反变量时,用与非门实现逻辑函数
解 因为给定函数已经是最简“与-或”表达式,故可直接变换成“与非-与非”表达式
相应逻辑电路如图5(a)所示,电路中共用了9个逻辑门。
图5
为了减少电路中逻辑门的数量,可对函数F的表达式作如下变换 ,即
根据变换后的表达式,可画出相应的逻辑电路如图5(b)所示,电路中只用了5个逻辑门。显然,后者比前者更简单、合理。