八位补码加/减法器的设计与实现

南通大学计算机科学与技术学院

计算机组成原理****实验报告

实 验 名 称八位补码加**/减法器的设计与实现**

名 jontyy

指 导 教 师

目录

**一、**实验目的

**二、**实验用软件、器件等

**三、**实验内容

**四、**电路原理图

**五、**实验过程及数据记录

**六、**实验数据分析与小结

**七、**实验心得体会

一、实验目的

1、掌握算术逻辑运算单元(ALU)的工作原理。

2、熟悉简单运算器的数据传送通路。

3、掌握8位补码加/减法运算器的设计方法。

4、掌握运算器电路的仿真测试方法。

二、实验用软件、器件等

1、软件:QUARTUS Ⅱ 2.0、WPS文字、Visio 2013

2、器件:与门(and2)、或门(or2)、异或门(xor)、74244b、74273b、74374b、FA(封装芯片)、addition8(封装芯片)

三、实验内容

1.设计一个8位补码加/减法运算器

2.设计8位运算器通路电路

四、电路原理图

实验电路图如下图所示,下图(a)是1位全加器的电路原理图,图(b)是由1位全加器采用行波进位方法设计的8位补码加/减法运算器,图(c)是8位运算器通路原理图。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RZJUz2BF-1576743686934)(file:////Users/muyi/Library/Group%20Containers/UBF8T346G9.Office/TemporaryItems/msohtmlclip/clip_image002.jpg)]

图(a)1位全加器的电路原理图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qwycypO7-1576743686935)(file:////Users/muyi/Library/Group%20Containers/UBF8T346G9.Office/TemporaryItems/msohtmlclip/clip_image004.jpg)]

图(b)8位补码加/减法运算器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MYlnbDGp-1576743686936)(file:////Users/muyi/Library/Group%20Containers/UBF8T346G9.Office/TemporaryItems/msohtmlclip/clip_image006.jpg)]

图(c)8位运算器通路原理图

**五、**实验过程及数据记录

1.设计一个8位补码加/减法运算器

(1)参考图(b),在QUARTUS II里输入原理图,设计一个8位补码加/减法运算器。

1****位加法器:

实验电路图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cVERNs3n-1576743686936)(file:////Users/muyi/Library/Group%20Containers/UBF8T346G9.Office/TemporaryItems/msohtmlclip/clip_image008.jpg)]

图1-1

Ai、Bi为加/减法器的两路数据输入端,Ci为进位输入端,Si为最高有效位输出端,Ci+1用来判断是否溢出。溢出检测方式为单符号位法:当最高有效位有进位符号位无进位,产生正溢;当最高有效位无进位符号位有进位,产生负溢;

编译成功后封装成芯片FA(图1-3):

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6fvK6DZV-1576743686937)(file:////Users/muyi/Library/Group%20Containers/UBF8T346G9.Office/TemporaryItems/msohtmlclip/clip_image010.jpg)]

图1-2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cKjjzCQd-1576743686938)(file:////Users/muyi/Library/Group%20Containers/UBF8T346G9.Office/TemporaryItems/msohtmlclip/clip_image012.jpg)]

图1-3

**8****位补码加/**减法运算器:

实验原理图:A、B为加法运算的两路数据输入端。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LnwPoWFN-1576743686939)(file:////Users/muyi/Library/Group%20Containers/UBF8T346G9.

<think>我们正在设计一个基于行波进位的补码/减法器补码表示法在计算机中用于表示有符号整数,其优点是法和减法可以使用相同的硬件电路设计原理:1.补码减法统一:在补码表示下,减法可以转换为法,即A-B=A+(-B),其中-B可以通过对B取补(包括符号位)得到。2.取补操作:对一个数取补(即求其相反数)可以通过按位取反再1来实现。因此,减法操作可以通过将减数取补后被减数相来完成。具体设计思路:我们需要一个控制信号M来决定是进行法还是减法:-当M=0时,执行法:A+B-当M=1时,执行减法:A-B=A+(-B)=A+(~B+1)因此,我们可以通过一个控制信号M来控制对B的操作:-当M=0时,直接使用B-当M=1时,将B按位取反,并在最低位进位输入(Cin)上1(因为取反后1相当于求补)注意:在法时,最低位的进位输入Cin应该为0;在减法时,最低位的进位输入Cin应该为1(因为取反后要1)。所以,我们可以这样设计:-对B的每一位:BiXORM。因为当M=0时,输出Bi;当M=1时,输出~Bi(因为异或1取反)。-最低位的进位输入Cin=M(因为法时Cin=0,减法时Cin=1)。然后,我们使用多个全器(FA)串联,构成行波进位法器。每个全器的进位输出连接到下一个全器的进位输入。全器(FA)的真值表:|A|B|Cin|Sum|Cout||---|---|---|-----|------||0|0|0|0|0||0|0|1|1|0||0|1|0|1|0||0|1|1|0|1||1|0|0|1|0||1|0|1|0|1||1|1|0|0|1||1|1|1|1|1|逻辑表达式:Sum=A⊕B⊕CinCout=(A&B)|(A&Cin)|(B&Cin)多位行波进位法器的连接:第0位(最低位)的Cin=M(控制信号)第i位的输入:Ai,(BiXORM),以及来自低位的进位Ci(对于第0位,进位输入就是M)第i位的输出:和Si,进位输出Ci+1(连接到下一级的进位输入)此外,我们还需要考虑溢出问题。在补码减法中,溢出发生在:当两个正数相得到负数,或两个负数相得到正数时。具体判断:如果最高位的进位输入(Cn-1)和进位输出(Cn)不同,则表示溢出。即溢出标志V=Cn-1⊕Cn。因此,溢出标志V=进位输出Cn(最高位的进位输出)次高位进位输出Cn-1的异或。设计步骤:1.设计一个全器(FA)模块。2.将n个全器串联,形成n位行波进位法器。3.在每一位的B输入前入一个异或门,由控制信号M控制:B_i'=B_iXORM。4.最低位的进位输入Cin=M。5.溢出标志:V=Cn-1⊕Cn(其中Cn是最高位的进位输出,Cn-1是次高位的进位输出)。注意:对于n位法器,最高位是第n-1位,次高位是第n-2位,所以Cn-1是第n-1位的进位输入(即第n-2位的进位输出),而Cn是第n-1位的进位输出。注意:在行波进位法器中,进位是逐位传递的,因此延迟较高,但结构简单。下面我们以4位补码/减法器为例:模块框图:输入:A[3:0],B[3:0],M(控制信号,0为法,1为减法)输出:S[3:0](和/差),V(溢出标志),Cout(最高位的进位输出,但溢出标志VCout和次高位进位有关)电路连接:对于i=0,1,2,3:每个全器的A输入:A_i每个全器的B输入:B_iXORM每个全器的Cin:对于第0位,Cin=M;对于第i位(i>0),Cin=前一位的Cout。溢出标志V:等于第3位(最高位)的进位输入(即第2位的进位输出C2)第3位的进位输出C3的异或。即:V=C2⊕C3。注意:在减法时,最高位的进位输出C3并不直接表示借位(因为补码减法统一用实现),但我们可以通过溢出标志和结果来判断。实现:我们可以使用逻辑门(异或门、门、或门)来实现器,然后连接成行波进位法器。下面给出一个4位补码/减法器的示意图(文本描述):A[3]B[3]A[2]B[2]A[1]B[1]A[0]B[0]|||||||||+--XOR---|----|--------|----|--------|----|--->每个B_i先M异或||||||||||||||FA3FA2FA1FA0|||||||||+------++------++------++--->进位传递|C3C2C1C0=M(最低位进位输入)S[3]S[2]S[1]S[0]溢出标志V:C2(即FA2的进位输出,也是FA3的进位输入)FA3的进位输出C3的异或。注意:这里的进位传递方向是从右到左(低位到高位)。另外,最高位的进位输出C3通常不作为借位标志,因为补码减法统一用实现,借位的概念被重新解释。但溢出标志V是必要的。总结:通过控制信号M,我们实现法和减法的统一。这个电路称为补码加减法器。下面我们用Verilog或VHDL可以描述这个电路,但用户要求的是原理和实现,我们已给出。参考文献:[^1]中提到“利用基本逻辑门电路设计一位全器(FA)”,然后实现八位补码/减法器,使用M输入控制减。[^2]中提到行波进位法器原理,以及求补逻辑(异或门控制取反)和借位控制。因此,我们的设计符合这些原理。相关问题:1.如何优化行波进位法器的延迟?2.补码加减法器如何处理溢出?3.除了行波进位法器,还有哪些法器结构?它们有什么优缺点?</think>### 行波进位补码/减法器设计原理实现 #### 一、设计原理 1. **补码表示法** 计算机中负数用补码表示,减法可转换为法:$A - B = A + (-B)$,其中$-B$是$B$的补码(按位取反后1)[^1]。 2. **减法统一控制** 通过控制信号$M$选择操作模式: - $M=0$时:执行法 $A + B$ - $M=1$时:执行减法 $A - B = A + (\neg B + 1)$ ($\neg B$表示按位取反) 3. **行波进位原理** 由低位到高位逐级传递进位信号,每个全器(FA)依赖前一级的进位输出[^2]。 #### 二、关键电路设计 1. **输入变换逻辑** - 每位$B_i$$M$异或:$B_i' = B_i \oplus M$ ($M=1$时$B_i$取反,$M=0$时保持不变) - 最低位进位$C_0 = M$ (减法时实现"1"操作) ```plaintext B_i变换逻辑: M=0 → B_i' = B_i (法) M=1 → B_i' = ¬B_i (减法) ``` 2. **全器(FA)单元** | 输入 | 输出 | |------|------| | $A_i, B_i', C_i$ | $S_i = A_i \oplus B_i' \oplus C_i$ | | | $C_{i+1} = (A_i \& B_i') \mid (A_i \& C_i) \mid (B_i' \& C_i)$ | 3. **溢出检测** 溢出标志$V = C_{n} \oplus C_{n-1}$ ($n$为最高位,当最高位次高位进位不同时溢出) #### 三、4位实现示例 电路结构图: ```plaintext ┌───┐ ┌───┐ ┌───┐ ┌───┐ A3──────►│FA3│ A2─►│FA2│ A1─►│FA1│ A0─►│FA0│ B3───XOR►│ │ B2─XOR►│ │ B1─XOR►│ │ B0─XOR►│ │ │ │ │ │ │ │ │ │ C4◄─────┤Cout│ C3◄──┤Cout│ C2◄──┤Cout│ C1◄──┤Cout│ │ │ │ │ │ │ │ │ S3◄─────┤Sum │ S2◄──┤Sum │ S1◄──┤Sum │ S0◄──┤Sum │ └─▲─┘ └─▲─┘ └─▲─┘ └─▲─┘ │ │ │ │ └───M─────┴────M────┴────M────┘ ▲ (控制信号M=C0) │ 溢出检测 V = C3 ⊕ C2 ``` #### 四、功能验证 1. **法模式($M=0$)** $C_0=0$,$B_i'=B_i$,执行$A+B$ **示例**:$5+3=8$ $A=0101, B=0011 → S=1000, V=1$(溢出) 2. **减法模式($M=1$)** $C_0=1$,$B_i'=\neg B_i$,执行$A + \neg B + 1$ **示例**:$7-2=5$ $A=0111, B=0010 → \neg B=1101 → S=0101, V=0$ #### 五、性能特点 - **优点**:结构简单,仅需$n$个全器 - **缺点**:进位延迟$O(n)$,速度较慢 - **改进方向**:超前进位法器(CLA)可优化延迟至$O(\log n)$[^2] ---
评论 48
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值