问答题 试用8选1数据选择器74HC151实现逻辑函数F(a,b,c,d)=Σm(1,2,3,5,6,8,9,12)
【正确答案】方法1:8选1数据选择器只有3位地址代码,故将函数F的输入变量a、b、c作为数据选择器的地址代码,d作为数据输入变量。将函数F用真值表表示出来(如表L4-7所示),根据真值表,观察每一个地址下d的两个取值对应的F的取值的关系,即是有关系(d与F相同或相反)或无关系(F取值与d取何值无关,或均为0或均为1),从而就可确定数据选择器的数据输入端的输入。所得电路如图L4-7所示。
   
表L4-7
序号 a b c d F d、F有无关系 数据输入 序号 a b c d F d、F有无关系 数据输入
0 0 0 0 0 0 有关系
F=d
D0=d 8 1 0 0 0 1 无关系
F=1
D4=1
1 0 0 0 1 1 9 1 0 0 1 1
2 0 0 1 0 1 无关系
F=1
D1=1 10 1 0 1 0 0 无关系
F=0
D5=0
3 0 0 1 1 1 11 1 0 1 1 0
4 0 1 0 0 0 有关系
F=d
D2=d 12 1 1 0 0 1 有关系
F=d'
D6=d'
5 0 1 0 1 1 13 1 1 0 1 0
6 0 1 1 0 1 有关系
F=d'
D3=d' 14 1 1 1 0 0 无关系
F=0
D7=0
7 0 1 1 1 0 15 1 1 1 1 0

   方法2:先将F(a,b,c,d)的表达式展开成最小项的“与或”表达式,可得
   F(a,b,c,d)=a'b'c'd+a'b'cd'+a'b'cd+a'bc'd
   +a'bcd'+ab'c'd'+ab'c'd+abc'd'    (4.7.1)
   由于8选1数据选择器的逻辑表达式为
   Y=A'2A'1A'0D0+A'2A'1A0D1+A'2A1A'0D2+A'2A1A0D3
   +A2A'1A'0D4+A2A'1A0D5+A2A1A'0D6+A2A1A0D7    (4.7.2)
   将式(4.7.1)按照式(4.7.2)的形式进行合并便可得到
   F(a,b,c,d)=a'b'c'd+a'b'c(d'+d)+a'bc'd+a'bcd'
   +ab'c'(d'+d)+ab'c·0+abc'd'+abc·0
   =a'b'c'·d+a'b'c·1+a'bc'·d+a'bc·d'
   +ab'c'·1+ab'c·0+abc'·d'+abc·0    (4.7.3)
   故有
   D0=d,D1=1,D2=d,D3=d'
   D4=1,D5=0,D6=d',D7=0
   结果与方法1相同。
   这里又介绍了两种方法,一种方法是“真值表观察法”,此法是先将输入变量分成两组,一组是被当成地址代码(如表L4-7中的abc),另一组是余下的输入变量作为数据输入(如表L4-7中的d),然后按真值表的排列方法排列出全部最小项的取值和对应的输出函数(本例中为F(a,b,c,d))的取值,再由表中所列的每个地址下(在本例中每个地址是两行,请注意!)检查数据变量(d)与输出变量(F)取值的关系来确定数据选择器数据输入端Di(i=0,1,2,…)的取值,根据这个取值画出逻辑电路图。第二种方式是“公式对比法”,是将欲生成的逻辑函数的最小项“与或”表达式与所用器件的标准表达式进行对比。对比时先设定生成逻辑函数的输入变量中的哪几个作为地址代码(此位数应与器件的地址位数相等),然后再将生成逻辑函数表达式的每项按地址代码与数据变量两部分分开成乘积形式后再按相同地址代码合并,对于缺少的地址代码按地址代码与“0”相乘的形式添加(如本例中的ab'c·0和abc·0两项)进去,而后所得的表达式(如同本例的式(4.7.3))与器件的标准式相比较,便可求得各Di的取值来。这两种方法很适合欲生成的逻辑函数的输入变量个数远多于数据选择器标准式中的输入变量(含地址代码个数、控制端数、数据端)数的情况,是个比较直接易行的方法。还有一种方法称为“降维卡诺图法”(即用四变量卡诺图表示五变量以上逻辑函数的方法)。
【答案解析】