1、5.7 多路复用器多路复用器多路复用器多路复用器多路复用器多路复用器(multiplexermultiplexer)是一种数据开关,它将)是一种数据开关,它将)是一种数据开关,它将)是一种数据开关,它将n n个数据源个数据源个数据源个数据源之一的数据连接到其输出端。之一的数据连接到其输出端。之一的数据连接到其输出端。之一的数据连接到其输出端。在典型的商用多路复用器中,在典型的商用多路复用器中,在典型的商用多路复用器中,在典型的商用多路复用器中,n n1,2,4,8,161,2,4,8,16,b b1,2,41,2,4;s s个输入用于选择个输入用于选择个输入用于选择个输入用于选择n n个数据源
2、,所以个数据源,所以个数据源,所以个数据源,所以s sloglog2 2n n;使能输使能输使能输使能输入入入入ENEN允许多路复用器工作,当允许多路复用器工作,当允许多路复用器工作,当允许多路复用器工作,当ENEN0 0时,所有输出为时,所有输出为时,所有输出为时,所有输出为0 0。对多路复用器输出,可以写出一般对多路复用器输出,可以写出一般对多路复用器输出,可以写出一般对多路复用器输出,可以写出一般逻辑等式:逻辑等式:逻辑等式:逻辑等式:5.7.1 标准标准MSI多路复用器多路复用器74x15174x1518输入输入1位多路复用器,选择输入为位多路复用器,选择输入为C、B、A,其中,其中C
3、是最是最高有效位;使能输入高有效位;使能输入EN_L低电平有效;输出为低电平有效;输出为Y及及Y_L。Y=EN_L C B A D0+EN_L C B AD1+EN_L CBAD774x15774x1572 2输入输入输入输入4 4位多路复用器。其中位多路复用器。其中位多路复用器。其中位多路复用器。其中选择输入选择输入选择输入选择输入为为为为S S,使能使能使能使能输输输输入低电平有效。入低电平有效。入低电平有效。入低电平有效。74x15374x1534输入输入2位多路复用器,具有分开的位多路复用器,具有分开的1位使能输入位使能输入(1G、2G)。有些多路复用器带三态输出,这种多路复用器的使能
4、有些多路复用器带三态输出,这种多路复用器的使能有些多路复用器带三态输出,这种多路复用器的使能有些多路复用器带三态输出,这种多路复用器的使能输入不是迫使输出为输入不是迫使输出为输入不是迫使输出为输入不是迫使输出为0 0,而是迫使输出为高阻态。,而是迫使输出为高阻态。,而是迫使输出为高阻态。,而是迫使输出为高阻态。例如,例如,例如,例如,74x25174x251同同同同74x15174x151在管脚引线和内部逻辑设计在管脚引线和内部逻辑设计在管脚引线和内部逻辑设计在管脚引线和内部逻辑设计上都一样。当使能输入无效时,上都一样。当使能输入无效时,上都一样。当使能输入无效时,上都一样。当使能输入无效时,
5、74x25174x251迫使输出为高阻迫使输出为高阻迫使输出为高阻迫使输出为高阻态而不是无效。态而不是无效。态而不是无效。态而不是无效。类似地,类似地,类似地,类似地,74x25374x253和和和和74x25774x257是是是是74x15374x153和和和和74x 15774x 157的三态的三态的三态的三态版本。版本。版本。版本。5.7.2 扩展多路复用器扩展多路复用器pp 多路复用器可用于扩展输出的数目。多路复用器可用于扩展输出的数目。多路复用器可用于扩展输出的数目。多路复用器可用于扩展输出的数目。假设要实现一个假设要实现一个假设要实现一个假设要实现一个8 8输入、输入、输入、输入、
6、1616位输出的多路复用器,这个复用器位输出的多路复用器,这个复用器位输出的多路复用器,这个复用器位输出的多路复用器,这个复用器可用可用可用可用1616个个个个74x15174x151多路复用器或等效的多路复用器或等效的多路复用器或等效的多路复用器或等效的ASICASIC单元实现,单元实现,单元实现,单元实现,pp 多路复用器还可扩展数据源的数目。多路复用器还可扩展数据源的数目。多路复用器还可扩展数据源的数目。多路复用器还可扩展数据源的数目。假设要实现一个假设要实现一个假设要实现一个假设要实现一个3232输入、输入、输入、输入、1 1位的输出多路复用器,图位的输出多路复用器,图位的输出多路复用
7、器,图位的输出多路复用器,图5-665-66显示显示显示显示了一种构建方法,它需了一种构建方法,它需了一种构建方法,它需了一种构建方法,它需5 5个选择位个选择位个选择位个选择位(XA4-XA0)(XA4-XA0),其中两个最高选,其中两个最高选,其中两个最高选,其中两个最高选择位通过用一个择位通过用一个择位通过用一个择位通过用一个2-42-4译码器(译码器(译码器(译码器(1/2 74x1391/2 74x139)选择)选择)选择)选择4 4个个个个74x151 74x151 多路复多路复多路复多路复用器中的一个;三个低选择位将用器中的一个;三个低选择位将用器中的一个;三个低选择位将用器中的
8、一个;三个低选择位将74x15174x151的的的的8 8个数据源之一连接至个数据源之一连接至个数据源之一连接至个数据源之一连接至输出端输出端输出端输出端 。5.7.3 多路复用器、多路分配器及总线多路复用器、多路分配器及总线 多路复用器多路复用器多路复用器多路复用器可以用于选择发往总线的可以用于选择发往总线的可以用于选择发往总线的可以用于选择发往总线的n n个数据源之一,个数据源之一,个数据源之一,个数据源之一,即从多路信号中选择一路信号输出。即从多路信号中选择一路信号输出。即从多路信号中选择一路信号输出。即从多路信号中选择一路信号输出。多路分配器多路分配器多路分配器多路分配器可以用于把总线
9、数据送到可以用于把总线数据送到可以用于把总线数据送到可以用于把总线数据送到mm个目的地之一,个目的地之一,个目的地之一,个目的地之一,即将总线数据传送到所选择的输出端口。即将总线数据传送到所选择的输出端口。即将总线数据传送到所选择的输出端口。即将总线数据传送到所选择的输出端口。完成对多路数据的选择与分配,在公共传输线上实现多路数据的分时传送。z 多路复用器和多路分配器的关系多路复用器和多路分配器的关系3#4#1#2#3#4#1#2#多路分配器多 路复用器总 线选择输入 A1 A0数据输入 D0 D1 D2 D3输出W0 00 11 01 1D0 D1 D2 D3D0 D1 D2 D3 多路分配
10、器的功能恰好与多路复用器的功能相反。多路分配器的功能恰好与多路复用器的功能相反。多路分配器的功能恰好与多路复用器的功能相反。多路分配器的功能恰好与多路复用器的功能相反。b b位、位、位、位、n n输出的多路分配器,其有输出的多路分配器,其有输出的多路分配器,其有输出的多路分配器,其有b b个数据输入、个数据输入、个数据输入、个数据输入、s s个选择输入选择个选择输入选择个选择输入选择个选择输入选择n n2 2s s个个个个b b位数据输出集合之一。在正常操作中,被选中的位数据输出集合之一。在正常操作中,被选中的位数据输出集合之一。在正常操作中,被选中的位数据输出集合之一。在正常操作中,被选中的
11、输出等于数据输入,其它输出均为输出等于数据输入,其它输出均为输出等于数据输入,其它输出均为输出等于数据输入,其它输出均为0 0。带使能输入的二进制译码器可以用做多路分配器。译带使能输入的二进制译码器可以用做多路分配器。译带使能输入的二进制译码器可以用做多路分配器。译带使能输入的二进制译码器可以用做多路分配器。译码器的使能输入连于数据线,其选择输入决定用数据位去码器的使能输入连于数据线,其选择输入决定用数据位去码器的使能输入连于数据线,其选择输入决定用数据位去码器的使能输入连于数据线,其选择输入决定用数据位去驱动哪一条输出线,其余的输出线无效。驱动哪一条输出线,其余的输出线无效。驱动哪一条输出线
12、,其余的输出线无效。驱动哪一条输出线,其余的输出线无效。74x13974x139可以用做可以用做可以用做可以用做1 1位、位、位、位、4 4输出多路分配器,输出多路分配器,输出多路分配器,输出多路分配器,74x13874x138可以用做可以用做可以用做可以用做1 1位、位、位、位、8 8输出多路分配器。输出多路分配器。输出多路分配器。输出多路分配器。b位数据输入位数据输入S=2n=22=4个个b位数据位数据Y0=A B G 即即 DST0DATA_L=SRCDTA_LDSTSEL0 DSTSRL1DST1DATA_L=SRCDTA_LDSTSEL0 DSTSRL1DST2DATA_L=SRCD
13、TA_LDSTSEL0 DSTSRL1DST3DATA_L=SRCDTA_LDSTSEL0 DSTSRL1(AB=00时,输出时,输出Y0为输入为输入SRCDATA_L的值,的值,Y1,Y2,Y3均为均为0)5.7.5 用用VHDL实现多路复用器实现多路复用器用用用用VHDLVHDL描述多路复用器是非常容易的。描述多路复用器是非常容易的。描述多路复用器是非常容易的。描述多路复用器是非常容易的。pp 用用用用SELECTSELECT语句实现多路复用器的数据流描述。语句实现多路复用器的数据流描述。语句实现多路复用器的数据流描述。语句实现多路复用器的数据流描述。pp 用用用用CASECASE语句实现
14、多路复用器的行为描述。语句实现多路复用器的行为描述。语句实现多路复用器的行为描述。语句实现多路复用器的行为描述。在多路复用器在多路复用器在多路复用器在多路复用器VHDLVHDL程序中定制选择标准是非常容易的。程序中定制选择标准是非常容易的。程序中定制选择标准是非常容易的。程序中定制选择标准是非常容易的。5.8 异或门和奇偶校验电路异或门和奇偶校验电路5.8.1 异或门和异或非门异或门和异或非门异或异或异或异或(XOR)(XOR)门门门门是是是是2 2输入门,如果其输入门,如果其输入门,如果其输入门,如果其2 2个输入不同,则输出为个输入不同,则输出为个输入不同,则输出为个输入不同,则输出为1
15、1。它的逻辑表示式为:它的逻辑表示式为:它的逻辑表示式为:它的逻辑表示式为:异或非异或非异或非异或非(XNOR)(XNOR)门门门门与异或门的运算相反,如果其与异或门的运算相反,如果其与异或门的运算相反,如果其与异或门的运算相反,如果其2 2个输入相同,个输入相同,个输入相同,个输入相同,则输出为则输出为则输出为则输出为1 1。它的逻辑表示式为:。它的逻辑表示式为:。它的逻辑表示式为:。它的逻辑表示式为:“异或非异或非异或非异或非”和和和和“异或异或异或异或”运算的性质运算的性质运算的性质运算的性质:2.和和 为对偶符号为对偶符号:如如:F=AB+B (CD)+AD FD=(A+B)B (C+
16、D)(A+D)1.“异或非异或非”逻辑和逻辑和“异或异或”互补互补,“异或非异或非”也称作也称作“同或同或”:A B=(A B)A B=(A B)3.交换律交换律 A B=B A A B=B A 结合结合律律 A (B C)=(A B)C A (B C)=(A B)C 分配分配分配分配律律律律 A(B C)=(AB)(AC)A(B C)=(AB)(AC)A(B C)A(B C)=(AB)(AC)(AB)(AC)4.4.A AA A=1(=1(置置置置1)A A=0(1)A A=0(清零清零清零清零)A 1=AA 1=A(取反取反取反取反)A 0=A)A 0=A 0 A 0 A的个数为偶数的个数
17、为偶数的个数为偶数的个数为偶数 A A .A=A A .A=A A A A的个数为奇数的个数为奇数的个数为奇数的个数为奇数 5.5.A AA A=0 A A=1=0 A A=1 A 0=A A 0=A A 1=A A 1=A 1 A 1 A的个数为偶数的个数为偶数的个数为偶数的个数为偶数 A A .A=A A .A=A A A A的个数为奇数的个数为奇数的个数为奇数的个数为奇数每个异或门、异或非门都有每个异或门、异或非门都有每个异或门、异或非门都有每个异或门、异或非门都有4 4个等效的逻辑符号。个等效的逻辑符号。个等效的逻辑符号。个等效的逻辑符号。注意:注意:注意:注意:这些等效符号是一个简单
18、规则的推论:即对异或门或异或非这些等效符号是一个简单规则的推论:即对异或门或异或非这些等效符号是一个简单规则的推论:即对异或门或异或非这些等效符号是一个简单规则的推论:即对异或门或异或非门的任何门的任何门的任何门的任何2 2个信号(输入或输出)取反,不改变结果的逻辑功能。个信号(输入或输出)取反,不改变结果的逻辑功能。个信号(输入或输出)取反,不改变结果的逻辑功能。个信号(输入或输出)取反,不改变结果的逻辑功能。单个单个单个单个1 41 4引脚的引脚的引脚的引脚的SSI IC 74x86SSI IC 74x86集成了集成了集成了集成了4 4个异或门。个异或门。个异或门。个异或门。5.8.2 奇
19、偶校验电路奇偶校验电路 n n个异或门级联形成具有个异或门级联形成具有个异或门级联形成具有个异或门级联形成具有n n1 1个输入和一个输出的电个输入和一个输出的电个输入和一个输出的电个输入和一个输出的电路,这电路称为奇校验电路(路,这电路称为奇校验电路(路,这电路称为奇校验电路(路,这电路称为奇校验电路(odd-parity circuitodd-parity circuit)。)。)。)。菊菊菊菊花花花花链链链链式式式式连连连连接接接接树树树树状状状状连连连连接接接接如果图中任一电如果图中任一电如果图中任一电如果图中任一电路的输出取反路的输出取反路的输出取反路的输出取反,则则则则得到偶校验电
20、路。得到偶校验电路。得到偶校验电路。得到偶校验电路。5.8.3 9位奇偶校验发生器位奇偶校验发生器74x280 9 9位奇偶校验发生器位奇偶校验发生器位奇偶校验发生器位奇偶校验发生器74x28074x280集成集成集成集成1010个异或门,该器件有个异或门,该器件有个异或门,该器件有个异或门,该器件有9 9个输入和个输入和个输入和个输入和2 2个输出,这个输出,这个输出,这个输出,这2 2个输出分别指明输入包含奇数个个输出分别指明输入包含奇数个个输出分别指明输入包含奇数个个输出分别指明输入包含奇数个1 1还是偶数个还是偶数个还是偶数个还是偶数个1 1。74x28074x280的逻辑符号的逻辑符
21、号的逻辑符号的逻辑符号 奇偶校验发生器奇偶校验发生器奇偶校验发生器奇偶校验发生器74x28074x280既既既既可用于在存储和发送码字时生可用于在存储和发送码字时生可用于在存储和发送码字时生可用于在存储和发送码字时生成正确的奇偶校验位值,也可成正确的奇偶校验位值,也可成正确的奇偶校验位值,也可成正确的奇偶校验位值,也可用于在恢复和接收码字时检查用于在恢复和接收码字时检查用于在恢复和接收码字时检查用于在恢复和接收码字时检查奇偶校验位。奇偶校验位。奇偶校验位。奇偶校验位。EVEN=1表示输入包含偶数个表示输入包含偶数个1奇校验位奇校验位5.8.4 奇偶校验的应用奇偶校验的应用应用一:应用一:应用一
22、:应用一:如何在微处理器系统的存储器电路中用奇偶校验电路。如何在微处理器系统的存储器电路中用奇偶校验电路。如何在微处理器系统的存储器电路中用奇偶校验电路。如何在微处理器系统的存储器电路中用奇偶校验电路。应用二:应用二:应用二:应用二:奇偶校验电路与纠错码一起使用,实现检错、纠错。奇偶校验电路与纠错码一起使用,实现检错、纠错。奇偶校验电路与纠错码一起使用,实现检错、纠错。奇偶校验电路与纠错码一起使用,实现检错、纠错。5.8.6 用用VHDL实现异或门和奇偶校验电路实现异或门和奇偶校验电路 为指定为指定为指定为指定“异或异或异或异或”和和和和“异或非异或非异或非异或非”操作,操作,操作,操作,VH
23、DLVHDL提供了原提供了原提供了原提供了原语操作符语操作符语操作符语操作符xorxor和和和和xnorxnor(xnorxnor仅在仅在仅在仅在VHDL_93VHDL_93可用)。可用)。可用)。可用)。由于典型的由于典型的由于典型的由于典型的VHDLVHDL综合工具还远不足以从类似表综合工具还远不足以从类似表综合工具还远不足以从类似表综合工具还远不足以从类似表5-475-47的的的的行为程序中生成有效的树结构,因此,取而代之,我们可以行为程序中生成有效的树结构,因此,取而代之,我们可以行为程序中生成有效的树结构,因此,取而代之,我们可以行为程序中生成有效的树结构,因此,取而代之,我们可以用
24、结构化程序实现类似用结构化程序实现类似用结构化程序实现类似用结构化程序实现类似74x28074x280的奇偶校验器。的奇偶校验器。的奇偶校验器。的奇偶校验器。5.9 比较器比较器比较器比较器比较器比较器(comparatorcomparator)是比较)是比较)是比较)是比较2 2个二进制字并指示它们个二进制字并指示它们个二进制字并指示它们个二进制字并指示它们是否相等的电路。是否相等的电路。是否相等的电路。是否相等的电路。数值比较器数值比较器数值比较器数值比较器(magnitude comparatormagnitude comparator)是将其输入字解)是将其输入字解)是将其输入字解)是
25、将其输入字解释为有符号或无符号数,并指出字之间的算术关系(大释为有符号或无符号数,并指出字之间的算术关系(大释为有符号或无符号数,并指出字之间的算术关系(大释为有符号或无符号数,并指出字之间的算术关系(大于或小于)的电路。于或小于)的电路。于或小于)的电路。于或小于)的电路。5.9.1 比较器结构比较器结构pp 异或门和异或非门可以被视为异或门和异或非门可以被视为异或门和异或非门可以被视为异或门和异或非门可以被视为1 1位比较器。位比较器。位比较器。位比较器。pp 4 4个异或门的输出相个异或门的输出相个异或门的输出相个异或门的输出相“或或或或”就能生成就能生成就能生成就能生成4 4位比较器。
26、位比较器。位比较器。位比较器。pp 如有足够多的异或门和宽度足够的或门,即可搭建任意输入如有足够多的异或门和宽度足够的或门,即可搭建任意输入如有足够多的异或门和宽度足够的或门,即可搭建任意输入如有足够多的异或门和宽度足够的或门,即可搭建任意输入 位数的比较器。位数的比较器。位数的比较器。位数的比较器。DIFF=A0B0+A1B1+A2B2+A3B3如果任一输入位对(A i和B i,i0,1,2,3)不同,则D I F F输出就有效5.9.2 迭代电路迭代电路 迭代电路迭代电路迭代电路迭代电路包括包括包括包括n n个相同的模块;每个模块均有主输入和主输出、级个相同的模块;每个模块均有主输入和主输
27、出、级个相同的模块;每个模块均有主输入和主输出、级个相同的模块;每个模块均有主输入和主输出、级联输入和级联输出;最左边的级联输入称为边界输入,在多数迭代电联输入和级联输出;最左边的级联输入称为边界输入,在多数迭代电联输入和级联输出;最左边的级联输入称为边界输入,在多数迭代电联输入和级联输出;最左边的级联输入称为边界输入,在多数迭代电路中,它被接入固定的逻辑值;最右边的级联输出称做边界输出,它路中,它被接入固定的逻辑值;最右边的级联输出称做边界输出,它路中,它被接入固定的逻辑值;最右边的级联输出称做边界输出,它路中,它被接入固定的逻辑值;最右边的级联输出称做边界输出,它通常提供重要的信息。通常提
28、供重要的信息。通常提供重要的信息。通常提供重要的信息。迭代电路非常适合于能用简单的迭代算法解决的问题:迭代电路非常适合于能用简单的迭代算法解决的问题:迭代电路非常适合于能用简单的迭代算法解决的问题:迭代电路非常适合于能用简单的迭代算法解决的问题:1)1)置置置置C C0 0为其初值且置为其初值且置为其初值且置为其初值且置i i为为为为0 0。2)2)用用用用C Ci i和和和和PIPIi i确定确定确定确定POPOi i和和和和C Ci i1 1的值。的值。的值。的值。3)3)递增递增递增递增i i。4)4)如果如果如果如果i i n n,返回第,返回第,返回第,返回第2 2步。步。步。步。在
29、迭代电路中,使用分开的组合电路对每个在迭代电路中,使用分开的组合电路对每个在迭代电路中,使用分开的组合电路对每个在迭代电路中,使用分开的组合电路对每个i i值执行步骤值执行步骤值执行步骤值执行步骤2 2,所以步骤所以步骤所以步骤所以步骤2 24 4的循环是的循环是的循环是的循环是“摊开摊开摊开摊开”的。的。的。的。4 4位比较器位比较器位比较器位比较器74x8574x85和和和和4 4位加法器位加法器位加法器位加法器74x28374x283都是都是都是都是MSIMSI电路的电路的电路的电路的例子,在较大的迭代电路中,它们可以用做单独的模块。例子,在较大的迭代电路中,它们可以用做单独的模块。例子
30、,在较大的迭代电路中,它们可以用做单独的模块。例子,在较大的迭代电路中,它们可以用做单独的模块。5.9.3 迭代比较器电路迭代比较器电路 可以逐步逐位地对可以逐步逐位地对可以逐步逐位地对可以逐步逐位地对2 2个个个个n n位数值位数值位数值位数值X X和和和和Y Y进行比较,在每一进行比较,在每一进行比较,在每一进行比较,在每一步用单个位步用单个位步用单个位步用单个位EQEQi i跟踪迄今是否所有的位对都相等:跟踪迄今是否所有的位对都相等:跟踪迄今是否所有的位对都相等:跟踪迄今是否所有的位对都相等:1)1)置置置置EQEQ0 0为为为为1 1且置且置且置且置i i为为为为0 0。2)2)如果如
31、果如果如果EQEQi i1 1且且且且X Xi i和和和和Y Yi i相等,置相等,置相等,置相等,置EQEQi+1i+1为为为为1 1,否则置,否则置,否则置,否则置EQEQi+1i+1为为为为0 0。3)3)递增递增递增递增i i。4)4)如果如果如果如果i i B)F2(AB)F3(A=B)00001010101010011001F1=AB F2=AB中间函数中间函数 F3=AB+AB=(AB)F A=B FAB A=B AB B0 A0 B1 A1 B2 A2 B3 A3四位数值比较器四位数值比较器7485有有8个数据输入端个数据输入端A3,A2,A1,A0,B3,B2,B1,B0,3
32、个输出个输出端端,还有还有3个级联输入端。先从高位个级联输入端。先从高位A3,B3开始比较开始比较5.9.4 标准标准MSI比较器比较器 74x85 74x85为为为为4 4位比较器,它位比较器,它位比较器,它位比较器,它比较两个比较两个比较两个比较两个4 4位数是相等、小于位数是相等、小于位数是相等、小于位数是相等、小于还是大于。还是大于。还是大于。还是大于。74x8574x85也提供级联输入也提供级联输入也提供级联输入也提供级联输入(AGTBINAGTBIN、ALTBINALTBIN、AEQBINAEQBIN),以扩展输入位),以扩展输入位),以扩展输入位),以扩展输入位数,实现多于数,实
33、现多于数,实现多于数,实现多于4 4位的比较器。位的比较器。位的比较器。位的比较器。每个每个每个每个74x8574x85依据下面的准逻辑等式导出其级联输出:依据下面的准逻辑等式导出其级联输出:依据下面的准逻辑等式导出其级联输出:依据下面的准逻辑等式导出其级联输出:尽管尽管A=B,但级联输入(低,但级联输入(低一级)的为一级)的为ABXD0XD1XD2XD3 74x682 74x682是一个是一个是一个是一个8 8位的位的位的位的MSIMSI比较器,当所有比较器,当所有比较器,当所有比较器,当所有8 8个输入对均一一相等时,则个输入对均一一相等时,则个输入对均一一相等时,则个输入对均一一相等时,
34、则P P EQ Q_LEQ Q_L输出有效。如果输出有效。如果输出有效。如果输出有效。如果P7-0Q7-0 P7-0Q7-0,则,则,则,则P GT Q_LP GT Q_L有效。有效。有效。有效。不同于不同于不同于不同于74x8574x85,74x68274x682没有级联输入;没有提供没有级联输入;没有提供没有级联输入;没有提供没有级联输入;没有提供“小于小于小于小于”、“大于大于大于大于”输输输输出。然而,任何需要的条件(包括出。然而,任何需要的条件(包括出。然而,任何需要的条件(包括出。然而,任何需要的条件(包括 和和和和),能被表示为),能被表示为),能被表示为),能被表示为P EQ
35、Q_LP EQ Q_L和和和和P GT P GT Q_LQ_L输出的函数。输出的函数。输出的函数。输出的函数。S7R6R7从图5-84 8位比较器7 4 x 6 8 2的逻辑图知PGTQ_L=R7+R6+R0=R7 R6 R0R7=Q7 P7若Q7P7 则Q7 P7=10 R7=Q7 P7=1 0=0PGTQ_L=R7 R6 R0=0 有效 知QP要使R7=0成立,Q7 P7有三种输入组合,但Q7=P7的情况反映在S7,即在Q7=P7时,再比较次高位Q6 P6的大小,S7=Q7 P7=Q7 P7,当Q7P7为00或11时,S7=1,将R6的与门打开,输出为Q6和P6比较的结果Q7 P7 R70
36、 0 00 1 11 0 01 1 0PNEQ=PEQQ,即PNEQ=1,表示P=QPEQQ=(PEQQ)=PEQQ,PEQQ=0,表示PQPGTQ=(PGTQ)=PGTQ=1,表示PQPGEQ=PEQQ+PGTQ=1,表示PQPLEQ=PGTQ=0,表示PQ,即PLEQ=1,表示PQPLTQ=PEQQ+PGTQ=0,表示PQ,即PLTQ=1,表示PQ5.9.6 用用VHDL实现比较器实现比较器 对于所有内置类型,对于所有内置类型,对于所有内置类型,对于所有内置类型,VHDLVHDL都有比较操作符。相等()都有比较操作符。相等()都有比较操作符。相等()都有比较操作符。相等()和不等(和不等(
37、和不等(和不等(/)操作符适用于所有类型;对于数组和记录类型,)操作符适用于所有类型;对于数组和记录类型,)操作符适用于所有类型;对于数组和记录类型,)操作符适用于所有类型;对于数组和记录类型,操作数必须具有相同大小和结构,且操作数是一个分量接一个操作数必须具有相同大小和结构,且操作数是一个分量接一个操作数必须具有相同大小和结构,且操作数是一个分量接一个操作数必须具有相同大小和结构,且操作数是一个分量接一个分量进行比较的。分量进行比较的。分量进行比较的。分量进行比较的。VHDL VHDL的其他比较操作符(的其他比较操作符(的其他比较操作符(的其他比较操作符(、)只适用于整型、)只适用于整型、)
38、只适用于整型、)只适用于整型、枚举类型(如枚举类型(如枚举类型(如枚举类型(如STD_LOGICSTD_LOGIC)和一维枚举或整型数组。)和一维枚举或整型数组。)和一维枚举或整型数组。)和一维枚举或整型数组。由此可知,由此可知,由此可知,由此可知,内置比较操作符是对类型为内置比较操作符是对类型为内置比较操作符是对类型为内置比较操作符是对类型为BIT_VECTORBIT_VECTOR或或或或STD_LOGIC_VECTORSTD_LOGIC_VECTOR的等长数组进行比较,并且表示为无符的等长数组进行比较,并且表示为无符的等长数组进行比较,并且表示为无符的等长数组进行比较,并且表示为无符号整数
39、。号整数。号整数。号整数。为了实现更灵活的比较和算术操作,为了实现更灵活的比较和算术操作,为了实现更灵活的比较和算术操作,为了实现更灵活的比较和算术操作,IEEEIEEE标准标准标准标准1076-31076-3创建了标创建了标创建了标创建了标准包准包准包准包std_logic_arithstd_logic_arith,它定义了两个重要的新类型及作用于它们的一,它定义了两个重要的新类型及作用于它们的一,它定义了两个重要的新类型及作用于它们的一,它定义了两个重要的新类型及作用于它们的一大批比较和算术函数。这两个新类型是:大批比较和算术函数。这两个新类型是:大批比较和算术函数。这两个新类型是:大批比
40、较和算术函数。这两个新类型是:SIGNEDSIGNED和和和和UNSIGNEDUNSIGNED:这个包定义了新的比较函数,当任一或两个比较操作数为新类这个包定义了新的比较函数,当任一或两个比较操作数为新类这个包定义了新的比较函数,当任一或两个比较操作数为新类这个包定义了新的比较函数,当任一或两个比较操作数为新类型之一时,这些函数被调用。如,包定义了型之一时,这些函数被调用。如,包定义了型之一时,这些函数被调用。如,包定义了型之一时,这些函数被调用。如,包定义了8 8个新的个新的个新的个新的“小于小于小于小于”函数:函数:函数:函数:例中涉及例中涉及例中涉及例中涉及D D的比较,进行了显式类型转
41、换,因为的比较,进行了显式类型转换,因为的比较,进行了显式类型转换,因为的比较,进行了显式类型转换,因为std_logic_arithstd_logic_arith包没有对包没有对包没有对包没有对STD_LOGIC STD_LOGIC _VECTOR _VECTOR进行任何解释,而包进行任何解释,而包进行任何解释,而包进行任何解释,而包std_logic_signedstd_logic_signed和和和和std_logic_unsignedstd_logic_unsigned做了解决。做了解决。做了解决。做了解决。5.10 加法器、减法器和加法器、减法器和ALU5.10.1 5.10.1 半
42、加器和全加器半加器和全加器半加器和全加器半加器和全加器半加器半加器半加器半加器是将是将是将是将2 2个个个个1 1位二进制操作数位二进制操作数位二进制操作数位二进制操作数X X和和和和Y Y相加,产生一个相加,产生一个相加,产生一个相加,产生一个2 2位和。和的较低位命名为位和。和的较低位命名为位和。和的较低位命名为位和。和的较低位命名为HSHS(半加和),较高位命名(半加和),较高位命名(半加和),较高位命名(半加和),较高位命名为为为为COCO(半加进位或进位输出)。(半加进位或进位输出)。(半加进位或进位输出)。(半加进位或进位输出)。全加器全加器全加器全加器是加数是加数是加数是加数X
43、X和和和和Y Y与进位输入与进位输入与进位输入与进位输入CINCIN(来自低位的进位)相加,(来自低位的进位)相加,(来自低位的进位)相加,(来自低位的进位)相加,产生输出:产生输出:产生输出:产生输出:S S(全加和)和(全加和)和(全加和)和(全加和)和COUTCOUT(送给高位的进位)。(送给高位的进位)。(送给高位的进位)。(送给高位的进位)。*5.10.2 串行进位加法器串行进位加法器串行进位加法器串行进位加法器串行进位加法器串行进位加法器(又叫行波进位加法器)为(又叫行波进位加法器)为(又叫行波进位加法器)为(又叫行波进位加法器)为n n个全加器的级个全加器的级个全加器的级个全加器
44、的级联,每个处理联,每个处理联,每个处理联,每个处理1 1位。位。位。位。总的最长延迟为:总的最长延迟为:总的最长延迟为:总的最长延迟为:其中,其中,其中,其中,t tXYCoutXYCout为最低有效级上从为最低有效级上从为最低有效级上从为最低有效级上从X X或或或或Y Y到到到到COUTCOUT的延迟,的延迟,的延迟,的延迟,t tCinCoutCinCout为中间级为中间级为中间级为中间级上从上从上从上从CINCIN到到到到COUTCOUT的延迟,的延迟,的延迟,的延迟,t tCinSCinS为最高有效级上从为最高有效级上从为最高有效级上从为最高有效级上从CINCIN到到到到S S的延迟
45、。的延迟。的延迟。的延迟。5.10.3 减法器减法器全减器全减器全减器全减器处理二进制的处理二进制的处理二进制的处理二进制的1 1位减,其输入位为位减,其输入位为位减,其输入位为位减,其输入位为X(X(被减数被减数被减数被减数)、Y(Y(减数减数减数减数)和和和和BIN(BIN(借位输入借位输入借位输入借位输入),其输出位为,其输出位为,其输出位为,其输出位为D(D(差差差差)和和和和BOUT(BOUT(借位输出借位输出借位输出借位输出)。将上式与全加器的输出等式(幻灯片将上式与全加器的输出等式(幻灯片将上式与全加器的输出等式(幻灯片将上式与全加器的输出等式(幻灯片4545页中页中页中页中“*
46、”“*”式)比较,式)比较,式)比较,式)比较,可以从全加器构建全减器。用可以从全加器构建全减器。用可以从全加器构建全减器。用可以从全加器构建全减器。用YY取代取代取代取代Y Y,BINBIN取代取代取代取代CINCIN,BOUTBOUT取代取代取代取代COUTCOUT全加器等式全加器等式注意:注意:注意:注意:对于减法操作,最低有效位的借位输入应该为对于减法操作,最低有效位的借位输入应该为对于减法操作,最低有效位的借位输入应该为对于减法操作,最低有效位的借位输入应该为1 1或高电平。或高电平。或高电平。或高电平。5.10.4 先行进位加法器先行进位加法器二进制加法器第二进制加法器第二进制加法
47、器第二进制加法器第i i位全加和位全加和位全加和位全加和s si i的和进位的和进位的和进位的和进位c ci i逻辑等式可写为:逻辑等式可写为:逻辑等式可写为:逻辑等式可写为:如令:如令:如令:如令:进位产生函数进位产生函数gi,若,若gi=1,说明,说明xi=yi=1,表示可以产生进位;,表示可以产生进位;进位传递函数进位传递函数pi,若,若pi=1,说明,说明xiyi可能是可能是01或或10,表示低位,表示低位到本位的进位可以传递到下一位。到本位的进位可以传递到下一位。即即如果两个加数位都为1,则这一级无条件地产生进位;如果两个加数位中至少一个为1,则这一级传递进位。为了避免串行进位,每一
48、级的进位为了避免串行进位,每一级的进位为了避免串行进位,每一级的进位为了避免串行进位,每一级的进位c ci i都可递归地展开为二级都可递归地展开为二级都可递归地展开为二级都可递归地展开为二级“与与与与-或或或或”表达式。表达式。表达式。表达式。依据进位产生信号和进位传递信号,现在这一级的进位输出可以写为:思考为什么只设计4位二进制先行进位加法器?可以是8位的吗?5.10.5 MSI加法器加法器74x28374x283是是是是4 4位二进制先行进位加法器。位二进制先行进位加法器。位二进制先行进位加法器。位二进制先行进位加法器。逻辑符号逻辑符号逻辑符号逻辑符号逻辑结构逻辑结构逻辑结构逻辑结构按如下
49、方法代数地处理半加和等式:且且原原当当pi=0时,表示时,表示xi=yi=0,gi一定为一定为0;当当pi=1时,时,pi gi=1 gi=gi无论无论pi=1,还是,还是pi=0,ci+1=gi+pi ci=pi gi+pi ci总成立总成立 将低位将低位将低位将低位 283283的进位输出与高的进位输出与高的进位输出与高的进位输出与高位位位位 283283的进位输的进位输的进位输的进位输入级联,可生成入级联,可生成入级联,可生成入级联,可生成多于多于多于多于4 4位且速度块位且速度块位且速度块位且速度块的的的的组间串行进位组间串行进位组间串行进位组间串行进位加法器加法器加法器加法器。该电路
50、该电路该电路该电路C0C0到到到到C16C16的延迟约为的延迟约为的延迟约为的延迟约为8 8个反相门的延迟。个反相门的延迟。个反相门的延迟。个反相门的延迟。5.10.6 MSI算术逻辑单元算术逻辑单元算术逻辑单元算术逻辑单元算术逻辑单元算术逻辑单元(ALUALU)能对)能对)能对)能对2 2个个个个b b位操作数位操作数位操作数位操作数进行若干不同的算术和逻辑操作。执行的进行若干不同的算术和逻辑操作。执行的进行若干不同的算术和逻辑操作。执行的进行若干不同的算术和逻辑操作。执行的操作由一组功能选择输入指定。典型的操作由一组功能选择输入指定。典型的操作由一组功能选择输入指定。典型的操作由一组功能选
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100