实验四cpu算术逻辑单元实验.docx
- 文档编号:6751853
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:7
- 大小:129.67KB
实验四cpu算术逻辑单元实验.docx
《实验四cpu算术逻辑单元实验.docx》由会员分享,可在线阅读,更多相关《实验四cpu算术逻辑单元实验.docx(7页珍藏版)》请在冰豆网上搜索。
实验四cpu算术逻辑单元实验
4CPU__算术逻辑单元实验
4.1、实验目的
1、掌握简单运算器的数据传送通路
2、验证运算器的组合功能
4.2、实验原理
算术逻辑部件的主要功能是对二进制数据进行定点算术运算、逻辑运算和各种移位操作。
算术运算包括定点加减乘除运算;逻辑运算主要有逻辑与、逻辑或、逻辑异或和逻辑非操作。
ALU通常有两个数据输入端A和B,一个数据输出端Y以及标志位等。
74181是一种典型的4位ALU器件。
图4.1是74181的电路图。
20世纪80年代计算机中的算是逻辑单元有许多是用现成的算术逻辑器件连接起来构成的。
如上面提到的74181和Am2901等就是著名的算术逻辑器件。
使用这些4位的算术逻辑器件,能够构成8位、16位等长度的算术逻辑单元。
现在由于超大规模器件的广泛应用,使用这种方法构成算术逻辑单元已经不多见,代之以直接用硬件描述语言设计算术逻辑单元。
CPU的算术逻辑单元就是一个简单的例子。
图4.174181的电路图
4.3、实验要求
1、实验设计目标
设计一个16位算术逻辑单元,满足以下要求。
(1)16位算术逻辑单元能够进行下列运算:
加法、减法、加1、减1、与、或、非和传送。
用3位运算操作码OP[210]进行运算,控制方式如表4.1所示:
运算操作码OP[210]
运算
对标志位Z和C的影响
000
result←A+B
影响标志位Z和C
001
result←A+1
影响标志位Z和C
010
result←A-B
影响标志位Z和C
011
result←A-1
影响标志位Z和C
100
result←AandB
影响标志位Z
101
result←AorB
影响标志位Z
110
result←notB
影响标志位Z
111
result←B
不影响标志位Z和C
(2)设立两个标志位寄存器Z和C。
当复位信号reset为低电平时,将这两个标志寄存器清零。
当预算结束后,在时钟CLK的上升沿改变标志寄存器Z和C的值。
运算结果改变标志寄存器C、Z的情况下:
加法、减法、加1、减1、运算改变Z、C;与、或、非运算改变Z,C保持不变;传送操作保持Z、C不变。
因此在运算结束时,Z、C需要两个D触发器保存。
(3)为了保存操作数A和B。
设计两个16位寄存器A和B。
当寄存器选择信号sel=0时。
如果允许写信号write=1,则在时钟clk的上升沿将数据输入dinput送入A寄存器;当sel=1时,如果允许写信号write=1,则在时钟clk的上升沿将数据输入dinput送入B。
(4)算术逻辑单元用一个设计实体完成。
2、顶层设计实体的引脚要求
引脚要求对应关系如下:
(1)clk对应实验台上的时钟(单脉冲);
(2)reset对应实验台上的CPU复位信号CPU_RST;
(3)数据输入dinput对应实验台开关SD15~SD0;
(4)允许写信号write对应实验台开关SA5;
(5)OP[210]对应实验台开关SA2~SA0;
(6)寄存器选择信号sel对应实验台开关SA4;
(7)16位运算结果result对应实验台上的指示灯A15~A0;
(8)Z、C标志位对应实验台上的Z、C指示灯。
4.4、实验步骤及结果现象观察(根据前面的设计目标和顶层设计引脚要求)
(1)实验台设置成FPGA-CPU独立调试模块;
REGSEL=0,CLKSEL=1,FDSEL=0.使用实验平台上的单脉冲,即STEP_CLK短路子短接,短路子RUN_CLK断开;
(2)将设计在QuartusII下输入,在编译后下载到TEC-CA上的FPGA中;
(3)输入A这个数:
Sel=0(SA4),write=1(SA5),A数(SD15~SD0),按一下单脉冲按钮(单脉冲按钮),使之存入A寄存器;
(4)输入B这个数:
Sel=1(SA4),write=1(SA5),B数(SD15~SD0),按一下单脉冲按钮(单脉冲按钮),使之存入B寄存器;
(5)输入功能码OP[210](SA2~SA0),按一下单脉冲按钮(单脉冲按钮);
(6)观察16位运算结果result(A15~A0)及Z、C指示灯;
(7)重复实验步骤(3)--(6)对以下4组数据进行表4.1的8种运算,把运算结果及标志位填写在表4.2中:
A、对第一组数据进行8种运算,A为0xAAAA,B为0x5555;
B、对第一组数据进行8种运算,A为0xFFFF,B为0x0000;
C、对第一组数据进行8种运算,A为0x0000,B为0xFFFF;
D、对第一组数据进行8种运算,A为0x8950,B为0x9863;
表4.2算术逻辑单元实验
运算数据
运算类型
操作码OP
运算结果result
标志位C
标志位Z
运算前
运算后
运算前
运算后
第1组数据
A=0xAAAA
B=0x5555
result←A+B
000
111111*********1
00
00
result←A+1
001
1010101010101011
00
00
result←A-B
010
010*********
00
00
result←A-1
011
1010101010101001
11
00
result←AandB
100
0000000000000000
11
11
result←AorB
101
010*********
11
00
result←notB
110
1010101010101010
11
00
result←B
111
010*********
11
00
第2组数据
A=0xFFFF
B=0x0000
result←A+B
000
111111*********1
00
00
result←A+1
001
0000000000000000
11
01
result←A-B
010
111111*********1
10
10
result←A-1
011
111111*********0
00
00
result←AandB
100
0000000000000000
00
01
result←AorB
101
111111*********1
00
10
result←notB
110
111111*********1
00
00
result←B
111
0000000000000000
00
00
第3组数据
A=0x0000
B=0xFFFF
result←A+B
000
111111*********1
00
00
result←A+1
001
0000000000000001
00
00
result←A-B
010
0000000000000001
01
00
result←A-1
011
111111*********1
11
00
result←AandB
100
0000000000000000
11
01
result←AorB
101
111111*********1
00
01
result←notB
110
0000000000000000
00
11
result←B
111
111111*********1
00
11
第4组数据
A=0x8950
B=0x9863
result←A+B
000
0010000110110011
11
00
result←A+1
001
1000100101010001
10
00
result←A-B
010
111100*********1
01
00
result←A-1
011
1000100101001111
10
00
result←AandB
100
1000100001000000
00
00
result←AorB
101
1001100101110011
00
00
result←notB
110
0110011110011100
00
00
result←B
111
1001100001100011
00
00
4.5思考题
1、阅读懂实验用的源代码;
2、如果把操作码“111”的功能改成逻辑左移,该怎样修改程序?
3、如果保持原有操作码功能不变,运算器单元加上逻辑左移、逻辑右移等操作,那该如何处理?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 cpu 算术 逻辑 单元