《D2第四章算术逻辑运算电路课件》由会员分享,可在线阅读,更多相关《D2第四章算术逻辑运算电路课件(43页珍藏版)》请在金锄头文库上搜索。
1、第第4章章 算术逻辑运算电路算术逻辑运算电路4.1 基本算术运算电路基本算术运算电路4.2 算术逻辑单元的组织算术逻辑单元的组织4.3 逻辑运算和集成逻辑运算和集成ALU模块模块4.4 BCD码运算码运算1. 1位全加器位全加器2. 多位加法器多位加法器3. 算法移位算法移位4. 比较运算比较运算A A a a3 3 a a2 2 a a1 1 a a0 0 1011 1011B = B = b b3 3 b b2 2 b b1 1 b b0 0 111011101 0 1 1 A 1 1 1 0 B 1 1 0 Ci-11 1 0 0 1 . i+1. 1. 1位全加位全加器器二进制加法运算
2、举例二进制加法运算举例半加半加全加全加真值表真值表1111101011011011000101110100101010000000COQPCI1 1位全加器位全加器逻辑符号逻辑符号COCI Q P 具体实现具体实现:与或与或异或异或与或非与或非? 思考:思考:如何列写如何列写1位全加器的与或非形式?位全加器的与或非形式?集成集成1位全加器位全加器74183、74184COB3A3B2A2B1A1B0A03210COCI COCI COCI COCI Q P Q P Q P Q P 2.2.多位多位全加全加器器4位全加器位全加器串行进位的速度低串行进位的速度低? 思考:思考:如何构成如何构成n位
3、全加器?位全加器?超前进位方式超前进位方式迭代下去,最终有:迭代下去,最终有:超前进位只有超前进位只有2级门电路延时,速度高级门电路延时,速度高集成集成4位加法器位加法器74283COCI 3 0 Q 3 0 P 3 0 ? 思考:思考:如何用如何用74283构成构成8位加法器?位加法器?实现方法:实现方法:错位存储实现错位存储实现 P166页图页图4.73.3.算法移位算法移位? 思考:思考:定点数左移或右移定点数左移或右移1位结果是什么?位结果是什么?移位寄存器实现移位寄存器实现真值表真值表ABFABFA=BFAB000100100110100110104.4.比较运算比较运算1位比较器位
4、比较器多多位比较器位比较器实现方法:实现方法:先比较两个数的最高位,先比较两个数的最高位,若相等;再比较次高位,以此类推。若相等;再比较次高位,以此类推。COMPA0A1A2AB03PFABFABA3B0B1B203QB3PQFAB集成集成4位数值比较器位数值比较器7485输入输入输出输出A3 B3A2 B2A1 B1A0 B0ABABFAB3 100A3 B2 100A3=B3A2 B1 100A3=B3A2=B2A1 B0100A3=B3A2=B2A1=B1A0 B0010A3=B3A2=B2A1=B1A0=B0100100A3=B3A2=B2A1=B1A0=B0010010A3=B3A2
5、=B2A1=B1A0=B00010017485功能表功能表【例例】用用7485构成构成8位数值比较器位数值比较器FABFABFABCOMP 高位片高位片03PQPQ03COMP 低位片低位片A0A1A203PA3QPQ03B0B1B2B31A4A5A6A7B4B5B6B71. 加法运算与加法运算与ALU的组织的组织2. 减法运算与求补电路减法运算与求补电路3. 乘法的实现与乘法的实现与ALU的结构的结构连加法连加法移位相加法移位相加法(1)加法加法ALU的基本结构的基本结构操作数操作数累加器累加器加法操作过程加法操作过程1.1.加法运算加法运算与与ALU组织组织(1)取操作数(被加数取操作数(
6、被加数M)存入累加器)存入累加器A中中CLA: A0; BM; AA+B(2)取另取另1操作数操作数N并与并与M相加,和存入相加,和存入A中中ADD: BN; AA+B(3)将和存入存储器将和存入存储器STO: MEMA寄存器传递语言寄存器传递语言RTL举例:举例:A0ABAB05AA+BASRAA0X目标寄存器目标寄存器源寄存器源寄存器运算符运算符源寄存器源寄存器(2)加法运算的溢出问题)加法运算的溢出问题(Overflow) 补码系统的溢出判别电路补码系统的溢出判别电路真值表真值表01111011010100010110001011000000OvrnBnAn(3)浮点数加法运算)浮点数加
7、法运算对阶对阶(1)减法)减法ALU结构结构2.2.减法运算减法运算与求补电路与求补电路? 思考:思考:补码系统中,补码系统中, 如何求相反数?如何求相反数? 思考:思考:能否将加、减电能否将加、减电 路统一起来?路统一起来?(2)具有加具有加/ /减控制的全加器电路减控制的全加器电路ADDSUBP4P3P2P1P0Q4Q3Q2Q1Q043210CO&(1)连加法实现)连加法实现MN3.3.乘法运算乘法运算与与ALU结构结构加法的扩展,通过连加法或移位相加法实现加法的扩展,通过连加法或移位相加法实现配置:配置: 寄存器寄存器Y存放存放M;递减;递减计数器计数器C存放存放N;累加;累加器器A存放
8、积存放积P。AA+YCC-1连加法的实现流程连加法的实现流程连加法的硬件实现方案连加法的硬件实现方案方案方案1:1:(M、N的字长均为的字长均为n)u2n位的累加器位的累加器u2n位位的全加器的全加器方案方案2:un位普通累加器和位普通累加器和n位递增计数器构成位递增计数器构成A 将全加器的溢出作为递增计数器的计数使能信号将全加器的溢出作为递增计数器的计数使能信号un位全加器位全加器方案方案2的实现逻辑图(的实现逻辑图(8位为例)位为例)递增计数器递增计数器累加器累加器H4L44位全加器位全加器寄存器寄存器BOver递减计数器递减计数器C被加数被加数加数加数【例例】连加法求连加法求1011 0
9、101步骤步骤递增计数器递增计数器 累加器累加器递减计数器递减计数器BStep10000000001011011Step20000101101001011Step30001011000111011Step40010000100101011Step50010110000011011Step60011011100001011手动乘法运算举例手动乘法运算举例(2)移位相加法实现)移位相加法实现MN 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 0 0
10、1 1 1 0 0 0 0 1 0 0 1 1 1 1 1 0 1 1 0 0 0 1 1 1 1计算机实现方案计算机实现方案1:部分积左移:部分积左移 1 1 0 1 1 0 1 1 1 1 0 1 第一次部分积第一次部分积 1 1 0 1 部分积之和右移部分积之和右移1位位 1 1 0 1 第二次部分积第二次部分积 1 0 0 1 1 1 部分积之和部分积之和 1 0 0 1 1 1 部分积之和右移部分积之和右移1位位 0 0 0 0 第三次部分积第三次部分积 1 0 0 1 1 1 部分积之和部分积之和 1 0 0 1 1 1 部分积之和右移部分积之和右移1位位 1 1 0 1 第四次部
11、分积第四次部分积 1 0 0 0 1 1 1 1 部分积之和部分积之和 1 0 0 0 1 1 1 1 部分积之和右移部分积之和右移1位位计算机实现方案计算机实现方案2:部分积之和右移:部分积之和右移部分积之和右移的一般情形部分积之和右移的一般情形 A3 A2 A1 A0 B3 B2 B1 B0 (A3 A2 A1 A0) B0 第一次部分积第一次部分积 P3/ P2/ P1/ P0 部分积之和右移部分积之和右移1位位 (A3 A2 A1 A0) B1 第二次部分积第二次部分积 P5/P4/P3/P2/ P1 P0 部分积之和部分积之和 P5/P4/P3/P2/P1 P0 部分积之和右移部分积
12、之和右移1位位 (A3 A2 A1 A0) B2 第三次部分积第三次部分积 P6/P5/P4/P3/P2 P1 P0 部分积之和部分积之和 P6/P5/P4/P3/P2 P1 P0 部分积之和右移部分积之和右移1位位 (A3 A2 A1 A0) B3 第四次部分积第四次部分积 P7 P6 P5 P4 P3 P2 P1 P0 部分积之和部分积之和 P7 P6 P5 P4 P3 P2 P1 P0 部分积之和右移部分积之和右移1位位移位相加算法乘法移位相加算法乘法ALU结构结构计数器计数器C累计器累计器A寄存器寄存器B B0全加器全加器YB0被乘数被乘数乘数乘数来自存储器来自存储器寄存器寄存器Y【例
13、例】1101 1011YCarryABCMem110100000101101001101011011011010011010011011010011shr1101100111101001111010100111100010shr11010010011110001shr1101100011111000111010100011110000shr符号运算符号运算 用异或逻辑实现符号运算用异或逻辑实现符号运算补码运算的去符号处理补码运算的去符号处理 取绝对值相乘符号位取绝对值相乘符号位全加器溢出问题全加器溢出问题(3)乘法运算的其它考虑)乘法运算的其它考虑乘法的其它实现方案:乘法的其它实现方案: 乘法
14、器和乘法表乘法器和乘法表乘法器乘法器乘法表乘法表1. 基本的逻辑运算基本的逻辑运算 与、或、非、异或、同或等与、或、非、异或、同或等2. 中规模集成中规模集成ALU模块模块74181控制端:控制端:M,S3,S2,S1,S0M1:逻辑运算:逻辑运算M0:算术运算:算术运算1. 1位位BCD码加法运算码加法运算2. 多位多位BCD码全加器码全加器3. BCD码乘法码乘法? 思考:思考:两个两个1位位BCD码相加,码相加, 结果范围是什么?结果范围是什么?N二进制数二进制数十进制数十进制数COB3B2B1B0D21D8D4D2D1000 0 0 00 0 0 0 0 9 01 0 0 10 1 0
15、 0 110 01 0 1 01 0 0 0 011 01 0 1 11 0 0 0 1 15 01 1 1 11 0 1 0 11610 0 0 010 1 1 01710 0 0 110 1 1 118 10 0 1 01 1 0 0 019 10 0 1 11 1 0 0 1BCD码的修正码的修正需作需作+6处理的包括:处理的包括:出现出现COB8B4B2B11010111111B8B4B2B1修正条件为:修正条件为: CO+B8B4+B8B2AB30PB0B130QB2CI30B3CO84218421被加数被加数加数加数30P1230Q4CI308CO842184211&FCO和和相加
16、相加修正判别修正判别修正修正1位位BCD码全加器电路图码全加器电路图2.2.多位多位BCDBCD码全加器码全加器(1)行波进位的并行)行波进位的并行BCD码全加器码全加器COCI Q P COCI Q P COCI Q P COCI Q P 总进位总进位(2)10的补码与的补码与9的补码的补码 余余3码补码表码补码表余余3码码9的补码的补码10的补码的补码0 0 1 11 1 0 00 0 1 10 1 0 01 0 1 11 1 0 00 1 0 1 1 0 1 01 0 1 10 1 1 0 1 0 0 11 0 1 00 1 1 11 0 0 01 0 0 11 0 0 00 1 1 1
17、1 0 0 01 0 0 1 0 1 1 00 1 1 11 0 1 00 1 0 10 1 1 01 0 1 10 1 0 00 1 0 11 1 0 0 0 0 1 10 1 0 0(3)串行)串行BCD码加码加/减运算减运算低位开始,按时钟节拍低位开始,按时钟节拍1位位1位送入,结果低位先出位送入,结果低位先出例例324+238CPA/SA寄存器寄存器B寄存器寄存器D触发器触发器MC14561MC14560结结果果1位位BCD码乘法码乘法1位十进制数乘多位十进制数位十进制数乘多位十进制数3.BCD3.BCD码乘法码乘法 5 6 3 2 A3A2A1A0 8 B0 1 6 2 4 4 8 4 0 4 5 0 5 60000 01000100COCOCI COCI CI Q P 0000 0100Q P 1000 0010Q P 0100 0001Q P 01010000010101100110A3B0高位积高位积A2B0高位积高位积A0B0高位积高位积A1B0高位积高位积A3B0低位积低位积 0 A2B0低位积低位积A1B0低位积低位积A0B0低位积低位积BCD码乘法高速算法码乘法高速算法? 思考:思考:如何实现多位与多位的乘法?如何实现多位与多位的乘法?