1 数值比较器

1.1 1位数值比较器

数值比较器是用于比较两个数字大小的组合电路,能够确定两个二进制数是否相等,或者哪一个二进制数更大。

如下所示为数值比较器的电路图:

图1 数值比较器的电路图

在上图中,各个输出变量的Y _1Y_2Y_3

                                            Y_1=((A+(A+B)')'+(B+(A+B)')')'

                                                  =(A+(A+B)')(B+(A+B)')

                                                   =AB+A(A+B)'+B(A+B)'+A'B'

                                                   =AB+A'B'

                                             Y_2=(A+(A+B)')'=A'(A+B)

                                                    =A'B

                                              Y_3=((A+B)'+B)'=(A+B)B'

                                                   =AB'

真值表为:

表1 数值比较器的真值表
A B Y_1 Y_2 Y_3
0 0 1 0 0
0 1 0 1 0
1 0 0 0 1
1 1 1 0 0

通过上面真值表可以得到:

  • Y_1=1Y_2=0Y_3=0,则说明A和B的数值相等。
  • Y_1=0Y_2=1Y_3=0,则说明A<B。
  • Y_1=0Y_2=0Y_3=1,则说明A>B。

1. 2 多位数值比较器

多位比较器用于比较两个多位二进制。比较两个多位二进制时,必须从高到低逐位比较,只有当高位相等的时候,才需要比较低位。

例如,对于两个无符号位的二进制数A_3A_2A_1A_0B_3B_2B_1B_0,下面对于这两个进行比较:

图2 两个四位无符号位的二进制之间数值的比较

首先先对于A_3B_3进行比较,如果A_3>B_3,则Y_{A>B},如果A_3<B_3,则Y_{A<B},如果A_3=B_3,则需要参考低位的比较结果。A_3B_3之间的比较如下所示:

图3 A3与B3之间比较

如果在A_3=B_3的情况下,需要参考低位的比较结果。如果A_2>B_2,则Y_{A>B},如果A_2<B_2,则Y_{A<B},如果A_2=B_2,需要进一步参考低位的比较结果。A_2B_2之间的比较如下所示:

图4 A2与B2之间的比较

如果在A_3=B_3A_2=B_2的情况下,需要参考低位的比较结果。如果A_1>B_1,则Y_{A>B},如果A_1<B_1,则Y_{A<B},如果A_1=B_1,需要进一步参考低位的比较结果。A_1B_1之间的比较如下所示:

图5 A1与B1之间的比较

如果在A_3=B_3A_2=B_2A_1=B_1的情况下,需要参考低位的比较结果。如果A_0>B_0,则Y_{A>B},如果A_0<B_0,则Y_{A<B},如果A_0=B_0,则Y_{A=B}A_0B_0之间的比较如下所示:

图6 A0与B0之间的比较

结合结果,可以得到逻辑式:

   Y_{A>B}=A_3B_3'+(A_3\bigoplus B_3)'.A_2B_2'         

               +(A_3\bigoplus B_3)'.(A_2\bigoplus B_2)'.A_1B_1'+(A_3\bigoplus B_3)'.(A_2\bigoplus B_2)'.(A_1\bigoplus B_1)'.A_0B_0'     Y_{A<B}=A_3'B_3+(A_3\bigoplus B_3)'.A_2'B_2                   

                +(A_3\bigoplus B_3)'.(A_2\bigoplus B_2)'.A_1'B_1+(A_3\bigoplus B_3)'.(A_2\bigoplus B_2)'.(A_1\bigoplus B_1)'.A_0'B_0

   Y_{A=B}=(A_3\bigoplus B_3)'.(A_2\bigoplus B_2)'.(A_1\bigoplus B_1)'.(A_0\bigoplus B_0)'

1.3 74HC85芯片

74HC85是一款四位二进制数值比较器,是高速CMOS逻辑芯片,该芯片具有级联输入,允许将多个74HC84连接起来,以比较更长的二进制数。

如下所示为74HC85芯片的电路结构图:

图7 74HC85芯片的电路图

如下所示为74HC85芯片的逻辑框图:

图8 74HC85芯片的逻辑框图

 对于74HC85芯片来说,其中首先对于A_3A_2A_1A_0B_3B_2B_1B_0之间进行比较,如果A_3A_2A_1A_0>B_3B_2B_1B_0,则输出A>B,如果A_3A_2A_1A_0<B_3B_2B_1B_0,则输出A<B,如果A_3A_2A_1A_0=B_3B_2B_1B_0,则比较串行进位端,三个串行进位端分别表示的意义是I_{(A>B)}I_{(A=B)}I_{(A<B)}。比较这三个输出结果,如果是I_{(A>B)}=1,则输出A>B,如果I_{(A=B)}=1,则输出A=B,如果I_{(A<B)}=1,则输出A<B。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐