南通大学计算机科学与技术学院
计算机组成原理****实验报告
实 验 名 称八位补码加**/减法器的设计与实现**
班 级
学 号
姓 名 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