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

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

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

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

名 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.Office/TemporaryItems/msohtmlclip/clip_image014.jpg)]

图2-1

输入端:当M=0时,做补码的加法运算;当m=1时,做补码的减法运算(注意被减数为B)。

输出端S[7…0]和溢出检测端C:溢出检测方式为单符号位法:当最高有效位有进位符号位无进位,产生正溢;当最高有效位无进位符号位有进位,产生负溢;

(2)创建波形文件,对该8位补码加/减法运算器进行功能仿真测试,如下图:

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

图2-2

(3)测试通过后,封装成一个芯片addition8(图2-4)。

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

图2-3

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

图2-4

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

参考图C,利用实验任务1设计的8位补码加/减法运算器芯片建立运算器通路。

实验原理图:

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

图3-1

3.利用仿真波形,测试数据通路的正确性。

设定各控制信号的状态,完成下列操作,要求记录各控制信号的值及时序关系。

(1)在输入数据IN7IN0上输入数据后,开启输入缓冲三态门,检查总线BUS7BUS0上的值与IN0~IN7端输入的数据是否一致。

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

图3-2

(2)给DR1存入55H,检查数据是否存入,请说明检查方法。

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

图3-3

先给LDRD一个上升沿,再给LDDR1加一个上升沿,LDDR2保持低电平,nalu-bus保持高电平,IN输入55H,则结果a中存入数据55H,而a中保持低电平,所以证明数据已存入DR1中。

(3)给DR2存入AAH,检查数据是否存入,请说明检查方法。

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

图3-4

先给LDRD一个上升沿,再给LDDR2加一个上升沿,LDDR1保持低电平,nalu-bus保持高电平,IN输入AAH,则结果b中存入数据AAH,而a中保持低电平,所以证明数据已存入DR2中。

(4)完成加法运算,求55H+AAH,检查运算结果是否正确,请说明检查方法。

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

图3-5

在给DR1和DR2传送数据期间,nalu-bus保持高电平,首先给LDRD一个上升沿,将数据55H输入三态门缓冲器,此时给LDDR1一个上升沿,数据存入DR1中,接着再给LDRD一个上升沿,将数据AAH输入三态门缓冲器,给LDDR2一个上升沿,数据存入DR2中,然后DR1中的数据和DR2中的数据经过8位加法器(M=0)进行相加。相加后,nalu-bus保持低电平,nsw-bus保持高电平,给LDRD一个上升沿,则结果经缓冲器输出到BUS中以及寄存器R0中,由BUS及R可输出,结果位FFH。

(5)完成减法运算,分别求55H-AAH和AAH-55H,检查运算结果是否正确,请说明检查方法。

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

图3-6

在给DR1和DR2传送数据期间,nalu-bus保持高电平,首先给LDRD一个上升沿,将数据55H输入三态门缓冲器,此时给LDDR1一个上升沿,数据存入DR1中,接着再给LDRD一个上升沿,将数据AAH输入三态门缓冲器,给LDDR2一个上升沿,数据存入DR2中,然后DR1中的数据和DR2中的数据经过8位加法器(M=1)进行相减。相减后,nalu-bus保持低电平,nsw-bus保持高电平,给LDRD一个上升沿,则结果经缓冲器输出到BUS中以及寄存器R0中,由BUS及R可输出,结果位AAH,C=1有溢出。

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

图3-7

在给DR1和DR2传送数据期间,nalu-bus保持高电平,首先给LDR0一个上升沿,将数据AAH输入三态门缓冲器,此时给LDDR1一个上升沿,数据存入DR1中,接着再给LDRD一个上升沿,将数据55H输入三态门缓冲器,给LDDR2一个上升沿,数据存入DR2中,然后DR1中的数据和DR2中的数据经过8位加法器(M=1)进行相减。相减后,nalu-bus保持低电平,bsw-bus保持高电平,给LDR0一个上升沿,则结果经缓冲器输出到BUS中以及寄存器R0中,由BUS及R可输出,结果位55H。

(6)求12H+34H-56H,将结果存入寄存器R0,检查运算结果是否正确,同时检查数据是否存入,请说明检查方法。

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

图3-8

首先给LDRD一个上升沿,将数据输入三态门缓冲器,此时LDDR1给一个上升沿,12H存入DR1中,接着给LDR0一个上升沿,将数据继续输入缓冲器,此时LDDR2给一个上升沿,34H存入DR2中,然后DR1中的数据和DR2中的数据经过8位加法器(M=0)进行相加,之后将相加后的结果46H在LDRD上升沿到来时存入DR1中,在LDRD下一个上升沿到来时将56H送入DR2中,最后经过8位减法器相减,经过输出缓冲器输出,得出的结果溢出,为F0H。

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

1、在输入数据IN7IN0上输入数据后,开启输入缓冲三态门,检查总线BUS7BUS0上的值与IN0~IN7端输入的数据是否一致。

序号 nsw-bus nR0-BUS LDR0 LDR1 LDR2 m nalu-bus IN7~IN0 BUS7~BUS0
1 0 0 0 0 0 0 1 10010000 10010000
2 0 0 0 0 0 0 1 00000001 00000001

开启输入三态门,输入数据,发现总线上输出的值与输入端结果一致。

2、给DR1存入55H,检查数据是否存入。

序号 nsw-bus nR0-BUS LDR0 LDR1 LDR2 m nalu-bus IN7~IN0 BUS7~BUS0
1 0 0 0 0 0 0 1 55 55
2 0 0 1 0 0 0 1 55 55
3 0 0 1 1 0 0 1 55 55
4 0 0 1 0 0 0 1 55 55

给输入端输入数据,先给LDR0一个上升沿,保持高电平,给LDR1一个上升沿,55存入DR1,期间nalu-bus保持高电平,DR1将结果通过输出缓冲区进入总线。

3、给DR2存入AAH,检查数据是否存入。

序号 nsw-bus nR0-BUS LDR0 LDR1 LDR2 m nalu-bus IN7~IN0 BUS7~BUS0
1 0 0 0 0 0 0 1 AA AA
2 0 0 1 0 0 0 1 AA AA
3 0 0 1 0 1 0 1 AA AA
4 0 0 1 0 0 0 1 AA AA

给输入端输入数据,先给LDR0一个上升沿,保持高电平,给LDR2一个上升沿,AA存入DR2,期间nalu-bus保持高电平,DR1将结果通过输出缓冲区进入总线。

4、完成加法运算,求55H+AAH,检查运算结果是否正确。

序号 nsw-bus nR0-BUS LDR0 LDR1 LDR2 m nalu-bus IN7~IN0 BUS7~BUS0
1 0 0 0-1 0-1 0 0 1 55 55
2 0 0 0-1 0 0-1 0 1 AA AA
3 0-1 0 0-1 0 0 0 0 00 FF

第一个周期,输入端输入数据,先给LDR0一个上升沿,保持高电平,给LDR1一个上升沿,55存入DR1;第二个周期,输入端输入数据,先给LDR0一个上升沿,保持高电平,给LDR2一个上升沿,AA存入DR2;第三个周期,nalu-bus保持低电平,给nsw-bus一个上升沿,将计算结果FF输入到输出缓冲区,然后进入总线。

5、完成减法运算,分别求55H-AAH和AAH-55H,检查运算结果是否正确。

序号 nsw-bus nR0-BUS LDR0 LDR1 LDR2 m nalu-bus IN7~IN0 BUS7~BUS0
1 0 0 0-1 0-1 0 1 1 55 55
2 0 0 0-1 0 0-1 1 1 AA AA
3 0-1 0 0-1 0 0 1 0 00 AA

m保持高电平,代表进行减操作,第一个周期,输入端输入数据,先给LDR0一个上升沿,保持高电平,给LDR1一个上升沿,AA存入DR1;第二个周期,输入端输入数据,先给LDR0一个上升沿,保持高电平,给LDR2一个上升沿,55存入DR2;第三个周期,nalu-bus保持低电平,给nsw-bus一个上升沿,将计算结果AA(发生溢出)输入到输出缓冲区,然后进入总线。

序号 nsw-bus nR0-BUS LDR0 LDR1 LDR2 m nalu-bus IN7~IN0 BUS7~BUS0
1 0 0 0-1 0-1 0 1 1 AA AA
2 0 0 0-1 0 0-1 1 1 55 55
3 0-1 0 0-1 0 0 1 0 00 55

m保持高电平,代表进行减操作,第一个周期,输入端输入数据,先给LDR0一个上升沿,保持高电平,给LDR1一个上升沿,AA存入DR1;第二个周期,输入端输入数据,先给LDR0一个上升沿,保持高电平,给LDR2一个上升沿,55存入DR2;第三个周期,nalu-bus保持低电平,给nsw-bus一个上升沿,将计算结果55输入到输出缓冲区,然后进入总线。

6、求12H+34H-56H,将结果存入寄存器R0,检查运算结果是否正确,同时检查数据是否存入。

序号 nsw-bus nR0-BUS LDR0 LDR1 LDR2 m nalu-bus IN7~IN0 BUS7~BUS0
1 0 0 0-1 0-1 0 0 1 12 12
2 0 0 0-1 0 0-1 0 1 34 34
3 0-1 0 0-1 0-1 0 0 0 00 46
4 0 0 0-1 0 0-1 0 0-1 56 7A
5 0-1 0 0-1 0 0 0-1 0 00 F0

m保持低电平,代表进行加操作,第一个周期,输入端输入数据,先给LDR0一个上升沿,保持高电平,给LDR1一个上升沿,12存入DR1;第二个周期,输入端输入数据,先给LDR0一个上升沿,保持高电平,给LDR2一个上升沿,34存入DR2;第三个周期,nalu-bus保持低电平,给nsw-bus一个上升沿,同时给LDR1一个上升沿将计算结果46分别输入到DR1和输出缓冲区,然后进入总线;第四个周期,输入端输入数据,先给LDR0一个上升沿,保持高电平,给LDR2一个上升沿,56存入DR2;第五个周期,m进入高电平,进行减操作,nalu-bus保持低电平,给nsw-bus一个上升沿,将计算结果F0分别输入到DR1和输出缓冲区,然后进入总线。

七、实验心得体会

在本次实验中,起初对软件的使用并不熟练,连线的过程中总是多线。在进行仿真波形时,对周期和值的设定也不熟练。在仿真运算器通路时,计算结果出现了一些错误…,这些问题也都得到了解决。

通过本次实验,初步掌握了QUARTUS ||的基本操作,对部分芯片74272,75244等有了一定的了解,加深了对FA、行波进位法建成的加/减法器的基本原理的理解,也对运算器通路的原理和运行进程有了一定的了解。

git下载地址https://gitee.com/jontyy/jontyy-Composition-principle.git

你可能感兴趣的:(计算机组成原理)