计算机组成原理专题实验报告(三)
学生姓名
专业/班级 计算机11 班
学 号
所在学院 电信学院
指导教师 姜欣宁
提交日期 2013 年12 月19 日
计算机组成原理专题实验(三)
——运算器模块设计和实现
1.实验目的
(1)掌握基本的算术运算和逻辑运算的运算规则和实现方法;
(2)掌握基本运算器的信息传送通路;
(3)掌握运算器的工作原理,设计并实现具有定点、浮点运算功能的模块。
2.实验要求
画出运算器模块的各种对照表,如:反映运算操作码OP、运算功能与标志位flag
之间的关系;比较“使用/不使用”先行进位对运算速度的影响等。
分析模块的工作原理(多以图、表方式描述)
写出设计实体的引脚与外设(输入装置:指示灯(表示数据、状态等);输出装
置:开关(数据、低位进位等)对应关系;
写出模块的程序流程图
对各种运算结果的仿真图的分析
对涉及和调试运算过程进行记录,包括:出现了什么问题(截图)及如何解决的
等?
3.实验原理
设计一个基本的算术逻辑运算模块,包括:
①算术运算模块,主要包括定点运算:加减乘除运算及浮点运算(浮点运算依照
IEEE754
标准);
②逻辑运算模块,主要包括与、或、非、异或和各种移位运算等;
注: 运算器模块框图:运算器(ALU)通常有两个数据输入端(opr1和opr2),
一个数据输
出端(result),运算模式控制信号(code)和标志位( cin , flag)等。下图
为运算器的逻辑框图:
图2-1 运算器
运算器包含加法器(含用先行进位的构成的加法器,如4 位一组构成16 位)、减
法器、乘法器、与门、或门、非门、异或门和移位器等及浮点运算模块;运算器
模块中也可以加入寄存器组。
本实验中设计的运算器操作数可以分别为8/16/32 位字长((32位字长运算可以
只进行仿真分析)
③ 补充题:(学号末位数为1、2;3、4;5、6;8 分别做1)、2)、3)、;1、3、
5、7、0、9 做第4)
定点乘法:
已知X=-0.1010,Y=0.0011,求 X*Y=?
利用原码乘法的方法,设计VHDL 程序,完成乘法的运算并描述其算法及电路图:
(上题由学号末位数为7、8 的同学完成)
利用Booth 法的方法,设计VHDL 程序,完成乘法的运算并描述其算法及电路图;
(上题由学号末位数为5、6 的同学完成)
利用阵列乘法的方法,设计VHDL 程序,完成乘法的运算并描述其算法及电路图;
若要实现X/Y=?
(上题由学号末位数为3、4 的同学完成)
浮点(依照IEEE754 标准)加减运算:乘除运算(选)
完成 【例6-29】(教科书P352)的运算,设计VHDL 程序,描述其算法,分析仿
真波形及画出电路图
(上题由学号末位数为1、2、9 的同学完成)
注:以上4 题每一个同学可以多选。
4.设计思路与源代码
4.1 顶层设计实体的引脚与外设(开关、指示灯)的对应关系
(1)运算控制信号**可以对应实验台上开关SA0;
(2)低位向高位的进位或者借位信号cin 对应实验台上开关SA1;
(3)操作码code[2..0]对应实验台上开关SA5~SA2;
(4)第一操作数opr1[7..0]对应于实验台上开关SD7~SD0;
(5)第二操作数opr2 [7..0]对应实验台上开关SD15~SD8;
(6)运算结果result [15..0]对应实验台上指示灯A7~A0;
(7)运算结果标志位flag 对应实验台上指示灯 A8。
4.2 实验思路
运算器根据ALUOp 字段确定要执行的某种运算,再获得操作数之后,执行操
作即可,确定好运算器的信息传送通路后,再根据时序要求正确安排指令即可。
为了实现浮点运算,以IEEE754 标准为例,实现了浮点的加减乘除操作。
4.4 源代码
4.4.1 思考题源代码——原码一位乘(4 位)
library ieee;
use ieee .std_lo