资源描述
编 号:
B04911053
学 号:
课 程 设 计
教 学 院
计算机学院
课程名称
计算机组成原理课程设计
题 目
简单运算器数据通路的设计
专 业
计算机科学与技术
班 级
计算机科学与技术(3)班
姓 名
廖万君
同组人员
刘政华 刘涛 陈茂源
指导教师
高 芹
2013
年
1
月
22
日
课程设计任务书
2012~2013学年第 1 学期
学生姓名: 廖万君 专业班级: 计算机科学与技术(3)班
指导教师: 杨斐 工作部门: 计算机学院
一、课程设计题目 简单运算器数据通路的设计
二、课程设计内容(含技术指标)
1.利用QUARTUS软件设计一个8位简单运算器数据通路。
2. 运算器可实现两个8位二进制数的加法、减法、传送运算三种运算。
3. 包括R1、R2、R3三个通用寄存器和DR。
4. 数据有IN输入,经过运算后结果写入某寄存器中。同时将结果显示在数码管上。
总体框图参考下图:
三、进度安排
1. 2012年12月29日,课题讲解,布置任务
2. 2012年12月30日到2013年1月4日,查阅资料,分析、讨论与设计
3. 2013年1月5日到8日,进行各子模块的设计,并进行调试
4. 2013年1月9日到10日完成各模块联调,进行测试
5. 2013年1月11日,成果验收,进行答辩
四、基本要求
(1) 能够熟练掌握计算机中运算器和寄存器之间数据通路的工作原理;
(2) 掌握硬件描述语言VHDL及原理图设计方法;
(3) 熟练掌握Quartus II软件平台;
(4) 各小组按模块分工,每人独立完成自己负责的模块;
(5) 合作完成最终的硬件下载及调试;
(6) 独立撰写符合要求的课程设计报告。
3
1 课程设计概述
1.1 课设目的
计算机组成原理是计算机专业的核心专业基础课。课程设计属于设计型实验,不仅锻炼学生简单计算机系统的设计能力,而且通过进行设计及实现,进一步提高分析和解决问题的能力。
通过对知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,建立计算机整机概念。对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。锻炼学生的独立思考和动手能力。
1.2 设计任务
本课程设计的题目是简单运算器数据通路。
具体设计任务如下:
(7) 利用QUARTUS软件设计一个8位简单运算器数据通路。
(8) 运算器可实现两个8位二进制数的加法、减法、传送运算三种运算。
(9) 包括R1、R2、R3三个通用寄存器和DR。
(10) 数据有IN输入,经过运算后结果写入某寄存器中。同时将结果显示在数码管上。
1.3 设计要求
根据理论课程所学的至少,设计出简单计算机系统的总体方案,结合各单元实验积累和课堂上所学知识,选择适当芯片,设计简单的计算机系统,具体要求如下:
(1) 能够熟练掌握计算机中运算器和寄存器之间数据通路的工作原理;
(2) 掌握硬件描述语言VHDL及原理图设计方法;
(3) 熟练掌握Quartus II软件平台;
(4) 各小组按模块分工,每人独立完成自己负责的模块;
(5) 合作完成最终的硬件下载及调试;
(6) 独立撰写符合要求的课程设计报告。
2 实验原理与环境
2.1 实验原理
计算机的一个最主要的功能就是处理各种算术和逻辑运算,这个功能要由CPU中的运算去来实现,运算器也称作算术逻辑部件ALU。算术逻辑运算部件ALU主要完成二进制代码的定点算术和逻辑运算,有时也叫多功能函数发生器。
总线是计算机中连接各个功能部件的纽带,是计算机各部件之间进行信息传输的公共通路。总线不只是一组简单的信号传输线,它还是一组协议。分时与共享是总线的两大特征。所谓共享,在总线上可以挂接多个部件,它们都可以使用这一信息通路来和其它部件传送信息。所谓分时,同一总线在同一时刻,只能有一个部件占领总线发送信息,其它部件要发送信息得在该部件发送完释放总线后才能申请使用。总线结构是决定计算机性能、可扩展和标准化程度的重要因素。
2.2 实验环境
计算机组成原理教学试验仪,PC机,TD-CMA试验系统。
3 总体方案设计
3.1 需求分析
运算器可以实现两个8位二进制的加法、减法、传送运算三种运算,同时接收来自两个选择器的数据,ALU对操作数进行何种运算由控制信号+、-和M决定,但任何时候ALU只能选择其中一种运算。由于存储器和输入输出设备最终是要挂在总线上,所以需要总线提供数据信号、地址信号以及控制信号。
首先,设计三个8位的寄存器和DR,通过控制信号来判断输入;然后,用三选一的选择器分别从R1、R2、R3和DR中选择一个信号输入到X、Y;最后,将X和Y的值传送到ALU中,分别用一个信号控制,来进行+、-或者M运算,再将结果输出。
3.2 硬件设计
3.2.1 总体设计
利用QUARTUS软件设计一个8位简单运算器数据通路,包括R1、R2、R3三个通用寄存器和DR。 数据有IN输入,经过运算后结果写入某寄存器中。同时将结果显示在数码管上。
总体结构图如图表 3.1所示:
图表 3.1简单运算器通路总体框架图
3.2.2 寄存器
设计了三个寄存器R1、R2和R3,用来存放IN输入的数据,由输入端1,2和3分别进行控制数据的存放。
3.2.3 控制器
需要两个三选一控制器,其中一个控制器由微操作4、6和8分别控制R1、R2和DR的输出,另一个控制器由微操作5、7和9分别控制R1、R2和R3的输出,三选一控制器相应的控制操作如表格 3.1所示。
表格 3.1三选一控制器相应的控制操作
部件
信号序号
控制输出
说明
三选一
选择器(左)
4
R1
信号4、6、8互斥,每次只输入一个信号
6
R2
8
DR
三选一
选择器(右)
5
R1
信号5、7、9互斥,每次只输入一个信号
7
R2
9
R3
3.2.4 ALU逻辑处理单元
ALU的操作(加、减和传送)在同一个CPU周期内只能单独地选择一种进行预算,控制信号“+”控制“X+Y”的输出,控制信号“-”控制“X-Y”的输出,控制信号“M”控制“X”的输出,ALU相应的控制操作如表格 3.2所示。
表格 3.2ALU相应的控制操作
部件
运算
控制信号
控制输出
说明
ALU
(运算器)
Add
+
Z=X+Y
每次只能单独进行一种运算
Subtraction
-
Z=X-Y
Move
M
Z=X
4 详细设计与实现
4.1 选用芯片
4.1.1 EMP240T100C5
系统采用的芯片是 MAX II:EMP240T100C5这款芯片,它是一款可编程芯片,其总体的原理图参见图表 4.1。
图表 4.1基本原理图
4.2 硬件实现
4.2.1 硬件原理图
本次我们采用的是方案是微程序控制,实现一个8位简单运算器数据通路的设计,硬件原理图如图表 4.2所示。
图表 4.2硬件原理图
4.2.2 运算通路实现
(1)使用的VHDL语言如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY alu1 IS
PORT (
add:IN STD_lOGIC;
x:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
y:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
substrance:IN STD_LOGIC;
m:IN STD_LOGIC;
cout:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
);
END ENTITY alu1;
ARCHITECTURE aluStruct OF alu1 IS
BEGIN
PROCESS(add,substrance,m,x,y)
BEGIN
IF M='1'
THEN cout<=x;
ELSE IF add='1'
THEN cout<=x+y;
ELSE IF substrance='1'
THEN cout<=x-y;
END IF;
END IF;
END IF;
END PROCESS;
END aluStruct;
(2)通过VHDL语言设计的ALU如图表 4.3所示。
图表 4.3ALU
4.2.3 寄存器实现
(1)使用的VHDL语言如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY solution IS
PORT (
d:IN STD_lOGIC_VECTOR(7 DOWNTO 0);
lda:IN STD_LOGIC;
q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
);
END ENTITY solution;
ARCHITECTURE bhv OF solution IS
BEGIN
PROCESS(d,lda)
BEGIN
IF lda='1'
THEN q<=d;
END IF;
END PROCESS;
END bhv;
(2)通过VHDL语言设计的寄存器如图表 4.4所示。
图表 4.4寄存器
4.2.4 选择通路实现
(1)三选一控制器具体的VHDL语言如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY selectOne IS
PORT (
in1:IN STD_lOGIC;
in2:IN STD_LOGIC;
in3:IN STD_LOGIC;
cout:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
cin1:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
cin2:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
cin3:IN STD_LOGIC_VECTOR(7 DOWNTO 0)
);
END ENTITY selectOne;
ARCHITECTURE choose OF selectOne IS
BEGIN
PROCESS(in1,in2,in3,cin1,cin2,cin3)
BEGIN
IF in1='1'
THEN cout<=cin1;
ELSE IF in2='1'
THEN cout<=cin2;
ELSE IF in3='1'
THEN cout<=cin3;
END IF;
END IF;
END IF;
END PROCESS;
END choose;
(2)通过VHDL语言设计的三选一控制器如图表 4.5所示。
图表 4.5 三选一控制器
5 实验过程与调试
5.1 仿真
测试数据用的是十六进制的22和16,对应的十进制数据是34和22。分别进行了加、减、M运算,加运算的仿真图见图表 5.1,减运算的仿真图见图表 5.2,M运算这里取的是第一个操作数,仿真图见图表 5.3。
图表 5.1加法仿真图
图表 5.2减法仿真图
图表 5.3M运算仿真图
5.2 主要故障与调试
5.2.1 故障1
故障:ALU逻辑控件的编写时后,VHDL报错。
解决方案:用加法减法等运算时,需要在VHDL代码的文件头加上
USE IEEE.STD_LOGIC_UNSIGNED.ALL;语句。
5.2.2 故障2
故障:设计完成后,无法连接到计算机。
解决方案:安装相应的驱动。
5.3 实验流程图
(1) 2012年12月29日,课题讲解,布置任务;
(2) 2012年12月30日到2013年1月4日,查阅资料,分析、讨论与设计;
(3) 2013年1月5日到8日,进行各子模块的设计,并进行调试;
(4) 2013年1月9日到10日完成各模块联调,进行测试;
(5) 2013年1月11日,成果验收,进行答辩。
6 设计总结与心得
6.1 课设总结
基于对象的存储是为了克服当前基于块的存储存在的诸多难题,在存储接口和结构层次的重要发展。可以根据应用负载选择优化的存储策略。作了如下几点工作:
1) 运算器是计算机中对数据进行运算操作的重要部件,它的核心是算数逻辑单元ALU,可以通过选用ALU不同的控制信号,运算器可以完成不同的运算功能。
2) 编写VHDL语言设计出寄存器、三选一控制器、ALU逻辑处理单元,快速而又方便。最终的结果通过仿真进行加、减和传送的实现。
6.2 课设心得
初次接触计算机组成原理课程设计时,加上电子技术学的不怎么样,感觉还是有点难的,但是随着老师耐心地讲解,课程设计实验慢慢地向前进展,发现实验本身其实并不是我们想象的那么困难,只是自己没有了解各部件实现的功能。通过这次实验,自己更清楚的明白了如何用VHDL语言快速而又方便地设计出寄存器、三选一控制器、ALU逻辑处理单元,而且进一步熟悉了计算机的数据通路原理,加深了对理论知识的学习,这也很好的为在以后的学习中奠定了实践基础。
本次实验中由于组员间协调的合作,实验操作过程也不会那么的复杂、繁琐,使得这次实验的过程很有趣,并且让我们对机器内部数据通路的理解有更进一步的启发。同时,使我对专业知识有了更深的了解,也激发了我对学习的兴趣,从中积累了宝贵的实践操作经验。
参考文献
[1] 秦磊华,王小兰. 计算机组成原理实验指导及课程设计指导书(基于EDA平台). 武汉:华中科技大学出版社,2010年。
[2] 秦磊华,吴非,莫正坤.计算机组成原理. 北京:清华大学出版社,2011年。
[3] DAVID A.PATTERSON(美).计算机组成与设计硬件/软件接口(原书第3版).北京:机械工业出版社. 2007年。
[4] 袁春风编著. 计算机组成与系统结构. 北京:清华大学出版社,2011年。
[5] 张志刚,FPGA 与SOPC 设计教程-DE2 实践. 西安:电子科技大学出版社,2007年。
计算机组成原理 课程设计成绩评定表
1、课程设计答辩或质疑记录
1)
2)
3)
2、答辩情况
a)未能完全理解题目,答辩情况较差 □ c)理解题目较清楚,问题回答基本正确 □
b)部分理解题目,答辩情况较差 □ d)理解题目透彻,问题回答流利 □
3、课程设计报告
a)内容: 不完整 □ 完整 □ 详细 □
b)方案设计: 较 差 □ 合理 □ 非常合理 □
c)实现: 未实现 □ 部分实现 □ 全部实现 □
d)文档格式: 不规范 □ 基本规范 □ 规范 □
考勤成绩: ,
占总成绩比例10%
答辩成绩: ,
占总成绩比例30%
课程设计论文成绩: ,
占总成绩比例60%
课程设计总成绩:
4、课程设计评语
指导教师签字:
年 月 日
展开阅读全文