西安交通大学计算机组成原理专题实验(上)第三次实验报告
时间:2025-07-12
时间:2025-07-12
这是西安交通大学计算机组成原理专题实验(上)实验报告。最终成绩为95分。
计算机组成原理专题实验报告(三)
学生姓名
专业/班级 计算机11班
学 号
所在学院 电信学院
指导教师 姜欣宁
提交日期 2013年12月19日
这是西安交通大学计算机组成原理专题实验(上)实验报告。最终成绩为95分。
计算机组成原理专题实验(三)
——运算器模块设计和实现
1. 实验目的
(1)掌握基本的算术运算和逻辑运算的运算规则和实现方法;
(2)掌握基本运算器的信息传送通路;
(3)掌握运算器的工作原理,设计并实现具有定点、浮点运算功能的模块。
2. 实验要求
画出运算器模块的各种对照表,如:反映运算操作码OP、运算功能与标志位flag之间的关系;比较“使用/不使用”先行进位对运算速度的影响等。 分析模块的工作原理(多以图、表方式描述)
写出设计实体的引脚与外设(输入装置:指示灯(表示数据、状态等);输出装置:开关(数据、低位进位等)对应关系;
写出模块的程序流程图
对各种运算结果的仿真图的分析
对涉及和调试运算过程进行记录,包括:出现了什么问题(截图)及如何解决的等?
3. 实验原理
设计一个基本的算术逻辑运算模块,包括:
①算术运算模块,主要包括定点运算:加减乘除运算及浮点运算(浮点运算依照IEEE754
标准);
②逻辑运算模块,主要包括与、或、非、异或和各种移位运算等;
注: 运算器模块框图:运算器(ALU)通常有两个数据输入端(opr1和opr2),一个数据输
出端(result),运算模式控制信号(code)和标志位( cin , flag)等。下图为运算器的逻辑框图:
图2-1 运算器
运算器包含加法器(含用先行进位的构成的加法器,如4位一组构成16位)、减法器、乘法器、与门、或门、非门、异或门和移位器等及浮点运算模块;运算器模块中也可以加入寄存器组。
这是西安交通大学计算机组成原理专题实验(上)实验报告。最终成绩为95分。
本实验中设计的运算器操作数可以分别为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题每一个同学可以多选。
这是西安交通大学计算机组成原理专题实验(上)实验报告。最终成绩为95分。
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_logic_1164.all;
use ieee.std—logic_unsigned.all;
entity ymywcvd is
port(b,c:in std_logic_ vector(4 downto 0); --b,C为被乘数,乘数
rSt,clk:in std_ logic; --rst为复位信号clk为 步运算脉冲
a:bufer std_logic_ vector(5 downto 0); --a,d为高位部分积和低何部分积
d:bufer std_logic_ vector(3 downto O);
sign,en:out std_logic); --sign为符号位,en为表示是否结束
end;
architecture behav of ymywcvd is
shared variable cd:integer range 0 to 5:=5;
signal bi:std_logic_vector(5 downto 0);
shared variable ai:std_logic_vector(5 downto O);
begin
bi<='0'&’0' &b(3 downto 0);
这是西安交通大学计算机组成原理专题实验(上)实验报告。最终成绩为95分。
sign<=b(4)xor c(4);
process(clk,rst,c)
begin
ifrst='l'then
cd:=5;
en<='0';
elsif rising_edge(clk)then
ifcd=5 then
ai:=(others=>'0');
d<=c(3 downto 0);
cd:=cd-1;
en<='0;
elsif cd/=0 then
ifd(0)='1'then
…… 此处隐藏:8449字,全部文档内容请下载后查看。喜欢就下载吧 ……
上一篇:糖尿病肾病的饮食