计算机组成原理实验报告八位补码加减法器设计和实现
时间:2020-10-25 09:24:04 来源:工作范文网 本文已影响 人
计算机科学和技术学院
计算机组成原理
试验汇报书
实 验 名 称
八位补码加/减法器设计和实现
班 级
学 号
姓 名
指 导 教 师
日 期
成 绩
试验1八位补码加/减法器设计和实现
一、试验目标
1.掌握算术逻辑运算单元(ALU)工作原理。
2.熟悉简单运算器数据传送通路。
3.掌握8位补码加/减法运算器设计方法。
4.掌握运算器电路仿真测试方法
二、试验任务
1.设计一个8位补码加/减法运算器
(1)参考图1,在QUARTUS II里输入原理图,设计一个8位补码加/减法运算器。
(2)创建波形文件,对该8位补码加/减法运算器进行功效仿真测试。
(3)测试经过后,封装成一个芯片。
2.设计8位运算器通路电路
参考下图,利用试验任务1设计8位补码加/减法运算器芯片建立运算器通路。
3.利用仿真波形,测试数据通路正确性。
设定各控制信号状态,完成下列操作,要求统计各控制信号值立即序关系。
(1)在输入数据IN7~IN0上输入数据后,开启输入缓冲三态门,检验总线BUS7~BUS0上值和IN0~IN7端输入数据是否一致。
(2)给DR1存入55H,检验数据是否存入,请说明检验方法。
(3)给DR2存入AAH,检验数据是否存入,请说明检验方法。
(4)完成加法运算,求55H+AAH,检验运算结果是否正确,请说明检验方法。
(5)完成减法运算,分别求55H-AAH和AAH-55H,检验运算结果是否正确,请说明检验方法。
(6)求12H+34H-56H,将结果存入寄存器R0,检验运算结果是否正确,同时检验数据是否存入,请说明检验方法。
三、试验要求
做好试验预习,掌握运算器数据传送通路和ALU功效特征。
试验完成,写出试验汇报,内容以下:
试验目标。
试验电路图。
按试验任务3要求,填写下表,以统计各控制信号值立即序关系。表中序号表示各控制信号之间时序关系。要求一个控制任务填一张表,并
可用文字对相关内容进行说明。
序号
nsw-bus
nR0-BUS
LDR0
LDR1
LDR2
m
nalu-bus
IN7~IN0
BUS7~BUS0
= 4 \* GB3 ④仿真波形及仿真结果分析方法、分析过程和分析结果。
= 5 \* GB3 ⑤试验体会和小结。
四、试验预习内容
1.试验电路设计原理及思绪说明
本试验利用基础逻辑门电路设计一位全加器(FA),如表1:
表1-一位全加器(FA)电路输入输出信号说明
信号名称
说明
输入信号
Ai
加数
Bi
加数
Ci
低位输入进位
输出信号
Si
和
Cj
运算产生进位
然后以此基础上实现八位补码加/减法器设计,考虑到实现所需既能够实现加法又能够实现减法,所以使用了一个M输入来进行方法控制加减。
2. 试验电路原理图
试验参考电路以下图所表示,下图(a)是1位全加器电路原理图,图(b)是由1位全加器采取行波进位方法设计多位补码加/减法运算器。
图1-多位补码加/减法运算器原理图
图2-8位运算器通路原理图
试验电路功效说明
表2-一位全加器(FA)功效表
输入
输出
Ci
Bi
Ai
Si
Cj
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
表3-M和Bi异或关系原理图
M
Bi
M异或Bi
0
0
0
0
1
1
1
0
1
1
1
0
当M为0时,Bi和M值无关,当M为1时,Bi取反。也就是当M为0时,实施加法运算,反之进行减法运算。
FA实现Ai和(Bi异或M)加法运算,再加上Ci输出Si
表4-图4功效端口解析
接口
解析
输入
A[7..0]
8位信号输入(加/被减数)
B[7..0]
8位信号输入(加/减数)
M
控制信号(0加,1减)
输出
S[7..0]
输出8位计算结果
OVER
溢出信号(0不溢出,1溢出)
表5-图3功效端口解析
接口
解析
输入
IN[7..0]
8位信号输入
nsw-bus
控制输入信号(0有效,1无效)
nalu-bus
控制输入信号(0有效,1无效)
nR0-BUS
控制输入信号(0有效,1无效)
LDR0
时钟信号,上升沿有效
LDR1
时钟信号,上升沿有效
LDR2
时钟信号,上升沿有效
m
溢出信号(0不溢出,1溢出)
输出
BUS[7..0]
8位信号输出
注:1.74244bAGN和BGN接口和74374bOEN接口全部是低电平有效,nsw-bus,nalu-bus和nR0-BUS控制器件输入,当输入0时,输入有效,不然无效
2.74273bCLK接口为上升沿有效,当LDR时钟处于上升沿,即0->1改变时,输入有效
4. 器件选型
本试验用到以下基础逻辑器件:异或门,一位加法器FA,7486等
表6-一位全加器(FA)电路所用关键器件清单
名称
说明
AND2
二输入和门
XOR2
异或门
OR2
或门
INPUT
信号输入端子
OUTPUT
信号输出端子
表7-8位补码加/减法运算器器件清单
XOR2
二输入异或门
FA
一位加法器(自选器件)
INPUT
信号输入端子
OUTPUT
信号输出端子
表8-8位运算器通路电路
INPUT
信号输入端子
OUTPUT
信号输出端子
8位补码加/减法运算器
计算元件(自选器件)
74273b
数据缓存元件
74244b
数据缓存元件
试验方法和试验步骤等
本试验利用EDA工具软件(Quartus II 2.0或以上版本)完成,试验分为:原理图录入和编辑、仿真波形设计及仿真结果分析这3个步骤。具体为:
(1)原理图录入和编译
在EDA工具软件(Quartus II 2.0或以上版本)中,采取原理图录入方法,绘制电路原理图。绘制完成存盘后进行编译。编译经过后,能够进行步骤(2)操作。假如编译不经过,则检验原理图,更正错误后,重新存盘并编译。这一过程反复进行,直至原理图编译经过。
(2)仿真波形设计
依据电路功效,设定输入信号初值后,利用EDA工具软件(Quartus II 2.0或以上版本)波形仿真功效,验证电路正确性。依据8位补码加/减法运算器功效要求,选定8组输入信号初值,以下表所表示:
表9-一位全加器(FA)电路仿真波形输入信号初值
序号
Ci
Bi
Ai
1
0
0
0
2
0
0
1
3
0
1
0
4
0
1
1
5
1
0
0
6
1
0
1
7
1
1
0
8
1
1
1
表10-8位补码加/减法运算器仿真波形输入信号初值
序号
A(十进制)
B(十进制)
M(01信号)
S(二进制)
溢出
1
0
20
00
2
40
20
00
3
80
20
00
4
120
20
01
5
10
10
10
6
50
10
10
7
80
10
10
8
110
10
10
(3)仿真结果分析
在EDA工具软件(Quartus II 2.0或以上版本)中,新建仿真波形文件,按表所表示输入信号初值进行设定后,进行仿真。阅读仿真波形,对照电路功效,进行分析并给出结论。
五、试验电路图
依据电路原理图,试验时在Quartus II 2.0环境里绘制试验电路以下图所表示。
图3-一位全加器(FA)
图4-8位补码加/减法运算器
图5-8位运算器通路电路
仿真调试过程、仿真结果分析和仿真测试结论
在Quartus II 2.0中新建仿真波形文件,以下图6示。
图6-一位全加器(FA)仿真结果
分析图所表示仿真波形,可得到下表所表示试验结果。
表11-一位全加器(FA)电路仿真试验结果
输入
输出
周期
时间
Ci
Bi
Ai
Si
Cj
1
0-800ns
0
0
0
0
0
2
800ns-1.6μs
0
0
1
1
0
3
1.6μs -2.4μs
0
1
0
1
0
4
2.4μs -3.2μs
0
1
1
0
1
5
3.2μs -4.0μs
1
0
0
1
0
6
4.0μs -4.8μs
1
0
1
0
1
7
4.8μs -5.6μs
1
1
0
0
1
8
5.6μs -6.4μs
1
1
1
1
1
将表9和表11相对照,可知一位全加器FA正确。
在Quartus II 2.0中新建仿真波形文件,以下图7所表示。
图7-8位补码加/减法运算器仿真结果
分析图所表示仿真波形,可得到下表所表示试验结果
表12-八位补码加/减法器电路仿真试验结果
输入
输出
周期
时间
A
B
M
S
OVER
1
0~5ns
0
20
00
2
5~10ns
40
20
00
3
10~15ns
80
20
00
4
15~20ns
120
20
01
5
20~25ns
10
10
10
6
25~30ns
50
10
10
7
30~35ns
80
10
10
8
35~40ns
110
10
10
表统计试验结果和上面计算数据中要求值一致。经分析比较可知,此次试验设计电路实现了八位补码加/减法器功效。
8位运算器通路电路
(1)首先对建立好通路进行仿真波形图测试,测试结果图8所表示。并检验数据是否一致
图8-8位运算器通路电路仿真结果
检验图8,可知输入IN和输出BUS一致,数据一致
(2)给DR1存入55H,检验数据是否存入,请说明检验方法。
检验方法:在DR1中存入55H,同时在DR2中存入00H,检测总线输出数即为存入数据,波形图以下图9:
图9
表13-时序关系图
序号
nsw-
bus
nR0-
bus
LDR0
LDR1
LDR2
Control
Nalu-
Bus
IN
[7..0]
BUS
[7..0]
1
0
0
上升沿
0
0
0
1
55H
55H
2
1
0
0
上升沿
0
0
1
00H
ZZH
3
0
0
上升沿
0
0
0
1
00H
00H
4
1
0
0
0
上升沿
0
1
55H
ZZH
5
1
0
0
0
0
0
0
55H
55H
(3)给DR2存入AAH,检验数据是否存入,请说明检验方法。
和检测DR1相同,图10
图10
表14-时序关系图
序号
nsw-
bus
nR0-
bus
LDR0
LDR1
LDR2
Control
Nalu-
Bus
IN
[7..0]
BUS
[7..0]
1
0
0
上升沿
0
0
0
1
00H
00H
2
1
0
0
上升沿
0
0
1
00H
ZZH
3
0
0
上升沿
0
0
0
1
AAH
AAH
4
1
0
0
0
上升沿
0
1
AAH
ZZH
5
1
0
0
0
0
0
0
AAH
AAH
(4)完成加法运算,求55H+AAH,检验运算结果是否正确,请说明检验方法。
波形图以下:
图11
表15-时序关系图
序号
nsw-
bus
nR0-
bus
LDR0
LDR1
LDR2
Control
Nalu-
Bus
IN
[7..0]
BUS
[7..0]
1
0
0
上升沿
0
0
0
1
55H
00H
2
1
0
0
上升沿
0
0
1
00H
00H
3
0
0
上升沿
0
0
0
1
00H
00H
4
1
0
0
0
上升沿
0
1
AAH
00H
5
1
0
0
0
0
0
0
00H
FFH
(5)完成减法运算,分别求55H-AAH和AAH-55H,检验运算结果是否正确,请说明检验方法。
55H-AAH波形图以下:
表16-时序关系图
序号
nsw-
bus
nR0-
bus
LDR0
LDR1
LDR2
Control
Nalu-
Bus
IN
[7..0]
BUS
[7..0]
1
0
0
上升沿
0
0
1
1
55H
00H
2
1
0
0
上升沿
0
1
1
00H
00H
3
0
0
上升沿
0
0
1
1
00H
00H
4
1
0
0
0
上升沿
1
1
AAH
00H
5
1
0
0
0
0
1
0
00H
ABH
AAH-55H波形图以下:
表17-时序关系图
序号
nsw-
bus
nR0-
bus
LDR0
LDR1
LDR2
Control
Nalu-
Bus
IN
[7..0]
BUS
[7..0]
1
0
0
上升沿
0
0
1
1
55H
00H
2
1
0
0
上升沿
0
1
1
00H
00H
3
0
0
上升沿
0
0
1
1
00H
00H
4
1
0
0
0
上升沿
1
1
AAH
00H
5
1
0
0
0
0
1
0
00H
55H
(6)求12H+34H-56H,将结果存入寄存器R0,检验运算结果是否正确,同时检验数据是否存入,请说明检验方法。
①计算结果:
12H+34H-56H波形图以下:
表18-时序关系图
序号
nsw-
bus
nR0-
bus
LDR0
LDR1
LDR2
Control
Nalu-
Bus
IN
[7..0]
BUS
[7..0]
1
0
0
上升沿
0
0
0
0
12H
12H
2
1
0
0
上升沿
0
0
0
00H
ZZH
3
0
0
上升沿
0
0
0
0
34H
34H
4
1
0
0
0
上升沿
0
0
00H
ZZH
5
1
0
上升沿
0
0
0
0
00H
46H
6
1
0
0
0
上升沿
0
1
00H
ZZH
7
0
0
上升沿
0
0
0
1
56H
56H
8
1
0
0
上升沿
0
0
1
00H
ZZH
9
1
0
0
0
0
0
1
00H
F0H
试验体会和小结
经过这次运算器计算机组成原理试验,我对QUARTUS2软件使用愈加得心应手,学会在这之上用门电路搭建和组合原理图并实现封装调用等等。在试验中,我碰到很多问题,比如,在绘制电路图后,因为工程文件存放地址错误,造成编译失败之类问题。而且,我一开始没有使用总线输入,造成输入有19个端,大大加重了工作量。除此之外,我学会了把缓存器,寄存器,ALU合理串接成为8位运算器通路。在这之中,时序波形设计对我来说有一定难度,每个时钟周期里,各个部件工作状态全部不相同,必需仔细分析每个部件状态才能熟练设计。最终,在老师教导下,我最终完成了此次试验。
经过此次试验,我对计算机组成原理这门课有了愈加深刻了解。