简单运算器的数据通路课程设计.docx
《简单运算器的数据通路课程设计.docx》由会员分享,可在线阅读,更多相关《简单运算器的数据通路课程设计.docx(15页珍藏版)》请在冰豆网上搜索。
![简单运算器的数据通路课程设计.docx](https://file1.bdocx.com/fileroot1/2023-1/22/67da970a-de37-4707-adea-98732f5df1f5/67da970a-de37-4707-adea-98732f5df1f51.gif)
简单运算器的数据通路课程设计
编号:
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)熟练掌握QuartusII软件平台;
(4)各小组按模块分工,每人独立完成自己负责的模块;
(5)合作完成最终的硬件下载及调试;
(6)独立撰写符合要求的课程设计报告。
1课程设计概述
1.1课设目的
计算机组成原理是计算机专业的核心专业基础课。
课程设计属于设计型实验,不仅锻炼学生简单计算机系统的设计能力,而且通过进行设计及实现,进一步提高分析和解决问题的能力。
通过对知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,建立计算机整机概念。
对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。
锻炼学生的独立思考和动手能力。
1.2设计任务
本课程设计的题目是简单运算器数据通路。
具体设计任务如下:
(7)利用QUARTUS软件设计一个8位简单运算器数据通路。
(8)运算器可实现两个8位二进制数的加法、减法、传送运算三种运算。
(9)包括R1、R2、R3三个通用寄存器和DR。
(10)数据有IN输入,经过运算后结果写入某寄存器中。
同时将结果显示在数码管上。
1.3设计要求
根据理论课程所学的至少,设计出简单计算机系统的总体方案,结合各单元实验积累和课堂上所学知识,选择适当芯片,设计简单的计算机系统,具体要求如下:
(1)能够熟练掌握计算机中运算器和寄存器之间数据通路的工作原理;
(2)掌握硬件描述语言VHDL及原理图设计方法;
(3)熟练掌握QuartusII软件平台;
(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.4ALU逻辑处理单元
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.1EMP240T100C5
系统采用的芯片是MAXII:
EMP240T100C5这款芯片,它是一款可编程芯片,其总体的原理图参见图表4.1。
图表4.1基本原理图
4.2硬件实现
4.2.1硬件原理图
本次我们采用的是方案是微程序控制,实现一个8位简单运算器数据通路的设计,硬件原理图如图表4.2所示。
图表4.2硬件原理图
4.2.2运算通路实现
(1)使用的VHDL语言如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYalu1IS
PORT(
add:
INSTD_lOGIC;
x:
INSTD_LOGIC_VECTOR(7DOWNTO0);
y:
INSTD_LOGIC_VECTOR(7DOWNTO0);
substrance:
INSTD_LOGIC;
m:
INSTD_LOGIC;
cout:
OUTSTD_LOGIC_VECTOR(7DOWNTO0)
);
ENDENTITYalu1;
ARCHITECTUREaluStructOFalu1IS
BEGIN
PROCESS(add,substrance,m,x,y)
BEGIN
IFM='1'
THENcout<=x;
ELSEIFadd='1'
THENcout<=x+y;
ELSEIFsubstrance='1'
THENcout<=x-y;
ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
ENDaluStruct;
(2)通过VHDL语言设计的ALU如图表4.3所示。
图表4.3ALU
4.2.3寄存器实现
(1)使用的VHDL语言如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYsolutionIS
PORT(
d:
INSTD_lOGIC_VECTOR(7DOWNTO0);
lda:
INSTD_LOGIC;
q:
OUTSTD_LOGIC_VECTOR(7DOWNTO0)
);
ENDENTITYsolution;
ARCHITECTUREbhvOFsolutionIS
BEGIN
PROCESS(d,lda)
BEGIN
IFlda='1'
THENq<=d;
ENDIF;
ENDPROCESS;
ENDbhv;
(2)通过VHDL语言设计的寄存器如图表4.4所示。
图表4.4寄存器
4.2.4选择通路实现
(1)三选一控制器具体的VHDL语言如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYselectOneIS
PORT(
in1:
INSTD_lOGIC;
in2:
INSTD_LOGIC;
in3:
INSTD_LOGIC;
cout:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
cin1:
INSTD_LOGIC_VECTOR(7DOWNTO0);
cin2:
INSTD_LOGIC_VECTOR(7DOWNTO0);
cin3:
INSTD_LOGIC_VECTOR(7DOWNTO0)
);
ENDENTITYselectOne;
ARCHITECTUREchooseOFselectOneIS
BEGIN
PROCESS(in1,in2,in3,cin1,cin2,cin3)
BEGIN
IFin1='1'
THENcout<=cin1;
ELSEIFin2='1'
THENcout<=cin2;
ELSEIFin3='1'
THENcout<=cin3;
ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
ENDchoose;
(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代码的文件头加上
USEIEEE.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]DAVIDA.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、课程设计评语
指导教师签字:
年月日