定点数的加减运算及加法器_第1页
定点数的加减运算及加法器_第2页
定点数的加减运算及加法器_第3页
定点数的加减运算及加法器_第4页
定点数的加减运算及加法器_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

4.1定点数的加减运算本节内容并行加法器及先行进位链补码的加减运算及溢出判断二-十进制加法运算及加法器23.3.1加法器一位全加器AiBiCi-1SiCi0000000110010100110110010101011100111111

Ci

FA

Ci-1Bi

Ai

Si

3加法器的实现方案串行加法器:只用1个一位全加器,每次加一位,在移位寄存器的配合下,实现n位加法。速度慢。行波进位的并行加法器用n个一位全加器串行连接。特点:高位运算等待低位进位,逐位等待。进位连接方式称为“串行进位”或“行波进位”(CarryRipple)。FAnCn-1SnCnAnBnFAn-1Cn-2Sn-1An-1Bn-1FA1C0S1C1A1B1FA2S2C2A2B24先行进位CLA(CarryLookAhead)先行进位的并行加法器加快进位的产生和传递。令 Gi=AiBi

Pi=Ai

Bi则 Ci=AiBi+(Ai

Bi)Ci-1=Gi

+PiCi-1若 Gi=1,则Ci=1,故称Gi为进位生成函数;

Pi=1,则Ci=Ci-1,故称Pi为进位传递函数。先行进位加法器的基本思想:不用全加器,重新设计并行加法电路,使高位运算不等待低位进位,而是从低位的运算数直接运算得到。

&AiBiGi=1AiBiPi5Ci

=Gi

+PiCi-1C1=G1+P1C0C2=G2+P2C1=G2+P2(G1+P1C0)=G2+P2G1+P2P1C0C3=G3+P3C2=G3+P3(G2+P2G1+P2P1C0) =G3+P3G2+P3P2G1+P3P2P1C0C4=G4+P4C3=G4+P4(G3+P3G2+P3P2G1+P3P2P1C0)=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0

四位进位输出仅由本位进位产生函数、进位传递函数、最低进位C0决定,当A,B各位同时到来,经过三级门的时延,各位进位同时产生。 产生进位方式称为“并行进位”或“超前进位”或“先行进位”。6先行进位链74.1.2补码的加减运算补码加减法的依据是[X+Y]补=[X]补+[Y]补包括符号位在内一起运算求两个数的和,可以先将这两个数的补码相加,所得到的结果就是这两个数和的补码。意义:可以利用二进制加法器进行补码加运算。[-X]补=-[X]补[X-Y]补=[X]补-[Y]补=[X]补+[-Y]补求两个数的差,可以转换为加法进行计算。将第一个数的补码加上第二个数相反数的补码,所得到的结果就是这两个数差的补码。意义:用加法器进行减法运算84.1.3补码加减运算的逻辑实现加法器∑F=A+B+C0M=0B=srcC0=0F=dst+srcM=1B=~srcC0=1F=dst+~src+1

=dst-src用异或门实现可控取反:

b0=bb

1=~b9另一种输入选择逻辑dst+src:ADD=1,SUB=0即src—>B(1→C0)=0dst-src:SUB=1,ADD=0,即src的反—>B端(1→C0)=1取反加一特别地,若

ADD=0,SUB=0,(1→C0)=0

则B=0,C0=0

F=A

10补码加法例题例:已知X=0.1011,Y=-0.1101,求[X+Y]补解:[X]补=0.1011,[Y]补=1.0011[X]补

0.1011+[Y]补

1.0011[X]补+[Y]补

1.1110因此,[X+Y]补=1.111011补码减法例题例:已知X=-0101,Y=-1001,求[X-Y]补解:[X]补=11011,[Y]补=10111,[-Y]补=01001[X]补

11011+[-Y]补

01001[X-Y]补

100100(mod24+1)丢掉因此,[X-Y]补=0010012再看看下面的例子:例:已知X=-0111,Y=-1101,求[X+Y]补解:[X]补=11001,[Y]补=10011[X]补

11001+[Y]补

10011[X+Y]补

101100(mod24+1)因此,[X+Y]补=01100上述结果正确码?答:不正确。结果出现溢出。13程序状态字PSW(标志寄存器)PSW(ProgramStatusWord)一个专用寄存器,存放运算结果的特征标志。SF(SignFlag)符号标志。SF=1表示结果为负数SF=0表示结果为正数逻辑方程:ZF(ZeroFlag)零标志。ZF=1表示结果为零ZF=0表示结果非零逻辑方程:14程序状态字PSW(标志寄存器)运算结果的特征CF(CarryFlag)进位标志。CF=1表示有进位,CF=0表示没有进位;逻辑方程:无符号数加法运算溢出OF(OverflowFlag)溢出标志。OF=1表示补码运算结果溢出OF=0表示补码运算结果不溢出15补码加法溢出的判断溢出:运算结果超出机器数的表示范围。

+70111+)+4010001011无进位,溢出

-71001+)-4110010101有进位,溢出

-71001+)+4010001101无进位,无溢出

+70111+)-4110010011有进位,无溢出16溢出判断方法判别方法一当两加数同号,但和的符号不同时,则溢出。Xn、Yn、Zn分别表示被加数、加数、和的符号17溢出判断方法(续)判别方法二——变形补码(双符号位)判别法

+700111+)+400100001011双符号位不同,正溢出

-711001+)-411100110101双符号位不同,负溢出

-711001+)+400100011101双符号位相同,无溢出

+700111+)-411100100011双符号位相同,无溢出正溢出:结果大于最大正数负溢出:结果小于最小负数18程序状态字PSW(标志寄存器)运算结果的特征CF(CarryFlag)进位标志。加法运算时,CF=1表示有进位,CF=0表示没有进位;减法运算时,CF=0表示有借位,CF=1表示没有借位。19无符号数减法运算的借位1-2=-1,有借位转化成加法运算:

1+(-2)补2-1=1,无借位转化成加法运算:

2+(-1)补

+10001+)-21110

01111无进位

+20010+)-11111

10001有进位对于无符号数的减法运算,转换为加法后,其借位是运算产生的进位的反,即:CF=0表示有借位,CF=1表示没有借位204.6.2

定点运算器实例1.多功能加减运算电路 运算功能:加法减法带进位的加法带借位的减法加1减1传送21多功能加减运算电路A=dstB=(src

M0)M1C0=M2+(M3

CF)F=A+B+C022多功能加减运算电路加法M3=0,M2=0,M1=0,M0=1则B=srcC0=0F=dst+srcB=(src

M0)M1C0=M2+(M3

CF)F=A+B+C023多功能加减运算电路如何用n位加法器做2n位的加法先对低n位加,进位保存在CF

再对高n位加,同时加上CF带进位的加法ADDC

M3=1,M2=0,M1=0,M0=1则B=srcC0=CFF=dst+src+CF

10011010+)10010111

1001110001ADDADDC24多功能加减运算电路减法M3=0,M2=1,M1=1,M0=1则B=(~src)C0=1F=dst+~src+1=dst-srcB=(src

M0)M1C0=M2+(M3

CF)F=A+B+C025多功能加减运算电路用n位加法器做2n位的减法?先对低n位减,借位的反保存在CF由于减法转换为补码加法,CF是借位的反再对高n位减,同时减去借位带借位的减法:∵dst–src–borrow=dst+(~src)+1–borrow∵1–borrow=(~borrow)∴dst–src–borrow=dst+(~src)+(~borrow)而减法运算时,CF是借位的反即CF=(~borrow)∴dst–src–borrow=dst+(~src)+CF26多功能加减运算电路带借位的减法M3=1,M2=0,M1=1,M0=1则B=~srcC0=CFF=dst+~src+CFB=(src

M0)M1C0=M2+(M3

CF)F=A+B+C027多功能加减运算电路加1M3=0,M2=1,M1=0,M0=0则B=0C0=1F=dst+1B=(src

M0)M1C0=M2+(M3

CF)F=A+B+C028多功能加减运算电路减1M3=0,M2=0,M1=1,M0=0则B=-1(即111…1)C0=0F=dst-1B=(src

M0)M1C0=M2+(M3

CF)F=A+B+C029多功能加减运算电路数据传送M3=0,M2=0,M1=0,M0=0则B=0C0=0F=dstB=(src

M0)M1C0=M2+(M3

CF)F=A+B+C030多功能加减运算电路B=(src

M0)M1C0=M2+(M3

CF)F=A+B+C0M3M2M1M0BC0F000000dst数据传送0001src0dst+src加法0010-10dst-1减一0111~src1dst-src减法010001dst+1加一1001srcCFdst+src+CF带进位加法1011~srcCFdst+~src+CF带借位减法实验2加减运算电路4.2定点数移位运算是计算机中基本运算之一和加减运算相结合可实现乘除运算包括逻辑移位、算术移位和循环移位33逻辑移位逻辑左移将寄存器的每一位数据向左移动一个位置,最低位补0,最高位移至进位位;逻辑右移将寄存器的每一位数据向右移动一个位置,最低位移至进位位,最高位补0。例:11000101逻辑左移一位后得10001010。最高位移至进位位。

11000101逻辑右移一位后得01100010。最低位移至进位位34补码的算术移

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论