简单运算器数据通路课案.docx
《简单运算器数据通路课案.docx》由会员分享,可在线阅读,更多相关《简单运算器数据通路课案.docx(18页珍藏版)》请在冰豆网上搜索。
![简单运算器数据通路课案.docx](https://file1.bdocx.com/fileroot1/2022-11/17/baf0cba9-7ebc-402e-b39b-17613410a692/baf0cba9-7ebc-402e-b39b-17613410a6921.gif)
简单运算器数据通路课案
编号:
B04911053
学号:
201540410126
课程设计
教学院
计算机学院
课程名称
计算机组成原理课程设计
题目
简单运算器数据通路
专业
计算机科学与技术
班级
15级计算机科学与技术
(一)班
姓名
甘全中
同组人员
严达贵、徐金波、高继续、杜昌豪
指导教师
张玲、祁文青
2016
年
12
月
23
日
课程设计任务书
2016~2017学年第1学期
学生姓名:
甘全中专业班级:
15级计算机科学与技术
(一)班
指导教师:
张玲、祁文青工作部门:
计算机学院
一、课程设计题目简单运算器数据通路的设计
二、课程设计内容
1.利用QUARTUS软件设计一个8位简单运算器数据通路。
2.运算器可实现两个8位二进制数的加法、减法、传送运算三种运算。
3.包括R1、R2、R3三个通用寄存器和DR。
4.数据有IN输入,经过运算后结果写入某寄存器中。
同时将结果显示在数码管上。
总体框图参考下图:
三、进度安排
前半周,课题讲解,布置任务,分析、讨论、进行各子模块的设计设计
后半周,完成各模块联调,进行测试,成果验收,进行答辩
四、基本要求
1.能够熟练掌握计算机中ALU模块的工作原理以及寄存器输入输出控制原理;
2.掌握硬件描述语言VHDL及原理图设计方法;
3.熟练掌握QuartusII软件平台;
4.各小组按模块分工,每人独立完成自己负责的模块;
5.独立撰写符合要求的课程设计报告。
目录
一概述1
1.1课程设计的目的1
1.2课程设计的要求1
二总体方案设计2
2.1简单运算器数据通路总体框架2
2.2EDA技术及QUARTUSII软件介绍2
2.3寄存器3
2.4数据选择器3
2.5算术逻辑运算单元(ALU)4
2.6显示译码器4
三详细设计5
3.1寄存器设计5
3.2数据选择器设计6
3.3ALU设计7
3.4显示译码器设计9
3.5简单运算器数据通路设计10
四程序的调试与运行结果说明11
4.18位寄存器的仿真11
4.2数据选择器的仿真11
4.3ALU的仿真12
4.4显示译码器的仿真13
4.5数据通路的仿真13
五课程设计总结15
参考文献16
一概述
1.1课程设计的目的
1.理解和掌握该课程中的有关基本概念,程序设计思想和方法。
2.培养综合运用所学知识独立完成课题的能力。
3.培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。
4.掌握从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。
5.计算机组成原理是计算机专业的核心专业基础课。
课程设计属于设计型实验,不仅锻炼学生简单计算机系统的设计能力,而且通过进行设计及实现,进一步提高分析和解决问题的能力。
6.通过对知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,建立计算机整机概念。
对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。
锻炼学生的独立思考和动手能力。
1.2课程设计的要求
根据理论课程所学的知识,设计出简单运算器数据通路系统的总体方案,结合各单元实验积累和课堂上所学知识,选择适当器件,完成简单运算器数据通路的设计,具体要求如下:
1.能够熟练掌握计算机中ALU模块的工作原理以及寄存器输入输出控制原理;
2.掌握硬件描述语言VHDL及原理图设计方法;
3.熟练掌握QuartusII软件平台;
4.各小组按模块分工,每人独立完成自己负责的模块;
5.独立撰写符合要求的课程设计报告。
二总体方案设计
2.1简单运算器数据通路总体框架
图2.1示出了一个简单运算器数据通路模型,其中ALU为算术逻辑单元,R1、R2、R3为三个寄存器。
三个寄存器的内容都可以通过多路开关从ALU的X端或Y端送至ALU。
数据通过IN单元可以分别送至寄存器中,通过三选一选择器选出数据X、Y。
在ALU中通过s[3..0]选择进行何种运算(+、-、M)。
本次实验将X、Y分别输出即算前显示,并将运算后的结果显示在数码管上。
利用QUARTUS软件设计一个8位简单运算器数据通路,包括R1、R2、R3三个通用寄存器和DR。
数据有IN输入,经过运算后结果写入某寄存器中。
同时将结果显示在数码管上。
2.2EDA技术及QUARTUSII软件介绍
EDA技术是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。
利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程在计算机上自动处理完成。
Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:
可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片(电路)平面布局连线编辑;LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。
2.3寄存器
设计了三个寄存器R1、R2和R3,用来存放IN输入的数据,由输入端LOAD进行控制数据的存放。
2.4数据选择器
需要两个三选一数据选择器,其中一个选择器由微操作4、6和8分别控制R1、R2和DR的输出,另一个选择器由微操作5、7和9分别控制R1、R2和R3的输出,三选一控制器相应的控制操作如表格3.1所示
表格3.1三选一选择器相应的控制操作
部件
信号序号
控制输出
说明
三选一
选择器(左)
R1_X
R1
信号R1_X、R2_X、DR_X
互斥,每次只输入一个信号
R2_X
R2
DR_X
DR
部件
信号序号
控制输出
说明
三选一
选择器(右)
R1_Y
R1
信号R1_Y、R2_Y、R3_Y
互斥,每次只输入一个信号
R2_Y
R2
R3_Y
R3
2.5算术逻辑运算单元(ALU)
实验中ALU有16中运算由s[3..0]控制选择。
此处只列举+、-、M三种操作。
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
2.6显示译码器
显示译码器将由ALU运算后的结果显示在数码管上。
由于一个数码管只能显示出0~9的数字,故将8位数分为低四位和高四位,显示在两个数码管上。
实验中需要两个显示译码器。
三详细设计
3.1寄存器设计
用quartus软件设计8位寄存器(R_8),使用VHDL硬件语言描述。
其VHDL源码为:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYR_8IS
PORT(D:
INSTD_LOGIC_VECTOR(7DOWNTO0);
CLK:
INSTD_LOGIC;
LOAD:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDENTITY;
ARCHITECTUREONEOFR_8IS
BEGIN
PROCESS(D,CLK,LOAD)
BEGIN
IFCLK'EVENTANDCLK='1'
THENIFLOAD='1'THEN
Q<=D;
ENDIF;
ENDIF;
ENDPROCESS;
ENDARCHITECTURE;
编译无错误提示后,CreateSymbolFiles。
R_8结构如图3-1。
图3-1
3.2数据选择器设计
用quartus软件设计三选一数据选择器(XZQ)。
其VHDL源码为:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYXZQIS
port(A,B,C:
INSTD_LOGIC;
D1,D2,D3:
INSTD_LOGIC_VECTOR(7DOWNTO0);
Q:
OUTSTD_LOGIC_VECTOR(7DOWNTO0)
);
ENDENTITY;
ARCHITECTUREART1OFXZQIS
BEGIN
PROCESS(A,B,C,D1,D2,D3)
BEGIN
IFA='1'THENQ<=D1;
ELSEIFB='1'THENQ<=D2;
ELSEIFC='1'THENQ<=D3;
ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
ENDART1;
编译无错误提示后,CreateSymbolFiles。
XZQ结构如图3-2。
图3-2
3.3ALU设计
用quartus设计算术逻辑单元(ALU),包括16中运算。
其VHDL源码为:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYALUIS
PORT(A,B:
INSTD_LOGIC_VECTOR(7DOWNTO0);
EN:
INSTD_LOGIC;
s:
INSTD_LOGIC_VECTOR(3DOWNTO0);
Q1:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
Q0:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDALU;
ARCHITECTUREART1OFALUIS
signalQ:
STD_LOGIC_VECTOR(7DOWNTO0);
BEGIN
PROCESS(A,B,S,EN)
variableQX:
bi