计算机组成原理课设.docx
- 文档编号:6169588
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:18
- 大小:418.54KB
计算机组成原理课设.docx
《计算机组成原理课设.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课设.docx(18页珍藏版)》请在冰豆网上搜索。
计算机组成原理课设
东北大学秦皇岛分校电子信息系
计算机硬件设计
指令系统及ALU设计
专业名称
计算机科学与技术
课程设计任务书
专业:
计算机科学与技术
设计题目:
指令系统及ALU设计
一、设计实验条件
综合实验楼
二、设计任务及要求
1.运算器:
单累加器,实现加、减等8种操作;
2.指令:
19号,36号,48号指令;
3.RS触发器。
三、设计报告的内容
1.设计题目与设计任务
题目:
指令系统及ALU设计
1.19号,36号,48号指令的设计。
2.8功能ALU设计。
3.RS触发器
2.前言
融会贯通计算机组成原理课程的内容,通过知识的综合运用,加深对计算机系统各个模块的工作原理及相互联系的认识;
学习运用VHDL进行FPGA/CPLD设计的基本步骤和方法,熟悉EDA的设计、模拟调试工具的使用,体会FPGA/CPLD技术相对于传统开发技术的优点;
培养科学研究的独立工作能力,取得工程设计与组装调试的实践经验。
3.设计主体
【模型机设计】
1.指令系统设计:
第19号指令:
助记符:
SUBCA,MM;
格式:
操作码和地址码。
功能:
从累加器A中减去MM地址的值,减进位。
寻址方式:
寄存器间接寻址方式。
第24号指令:
助记符:
MOVR?
#II;
格式:
操作码和地址码。
功能:
将立即数II送到寄存器R?
中。
寻址方式:
直接寻址方式。
第34号指令:
助记符:
CALLMM。
格式:
操作码和地址码。
功能:
调用MM地址的子程序。
寻址方式:
寄存器间接寻址。
2.模型机硬件设计:
题目:
8功能ALU设计
功能:
实现加法、减法、与、或、进位加法、进位减法、取反、输出。
表1ALU功能表
S2
S1
S0
功能
0
0
0
A+w加
0
0
1
A-W减
0
1
0
A|W或
0
1
1
A&W与
1
0
0
A+W+Cin带进位加
1
0
1
A-W-Cin带进位减
1
1
0
~AA取反
1
1
1
A输出A
3.逻辑电路设计:
题目:
RS触发器。
功能:
用表格的形式描述触发器在输入信号作用下,触发器的下一稳定状态(次态)Qn+1与触发器的原稳定状态(现态)Qn和输入信号状态之间的关系。
表2RS触发器功能表
【系统设计】
1.模型机逻辑框图
图1整机逻辑框图
图2芯片引脚逻辑框图
图3CPU逻辑框图
2.指令系统设计
第10号指令:
ADDCA,@R?
指令功能:
将间址存储器的值加入累加器A中带进位
指令格式:
010010
XX
第24号指令:
MOVR?
#II
指令功能:
将立即数II送到寄存器R?
。
指令格式:
100011XX
如8:
0001000
操作码
8位立即数II
第34号指令:
CALLMM;
指令功能:
调用MM地址的子程序
指令格式:
101111
XX
操作码及R?
的选择00,01,10,11
3.微操作控制信号
1、XRD:
外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。
2、EMWR:
程序存储器EM写信号。
3、EMRD:
程序存储器EM读信号。
4、PCOE:
将程序计数器PC的值送到地址总线ABUS上(MAR)。
5、EMEN:
将程序存储器EM与数据总线DBUS接通,由EMWR和EMRD决定是将DBUS数据写到EM中,还是从EM读出数据送到DBUS。
6、IREN:
将程序存储器EM读出的数据打入指令寄存器IR。
7、EINT:
中断返回时清除中断响应和中断请求标志,便于下次中断。
8、ELP:
PC打入允许,与指令寄存器IR3、IR2位结合,控制程序跳转。
9、FSTC:
进位置1,CY=1
10、FCLC:
进位置0,CY=0
11、MAREN:
将地址总线ABUS上的地址打入地址寄存器MAR。
12、MAROE:
将地址寄存器MAR的值送到地址总线ABUS上。
13、OUTEN:
将数据总线DBUS上数据送到输出端口寄存器OUT里。
14、STEN:
将数据总线DBUS上数据存入堆栈寄存器ST中。
15、RRD:
读寄存器组R0-R3,寄存器R?
的选择由指令的最低两位决定。
16、RWR:
写寄存器组R0-R3,寄存器R?
的选择由指令的最低两位决定。
17、CN:
决定运算器是否带进位移位,CN=1带进位,CN=0不带进位。
18、FEN:
将标志位存入ALU内部的标志寄存器。
19、WEN:
将数据总线DBUS的值打入工作寄存器W中。
20、AEN:
将数据总线DBUS的值打入累加器A中。
21-23:
X2~X0:
X2、X1、X0三位组合来译码选择将数据送到DBUS上的寄存器。
24-26:
S2~S0:
S2、S1、S0三位组合决定ALU做何种运算。
4.指令执行流程:
第10,24,34号指令用表格表示如下:
表3第10,24,34号指令
编号
助记符
功能
机器码
周期总数CT
节拍数
微操作
控制信号
涉及的硬件
1
_FATCH_
取指令
000000XX
010
T2
PC→MAR
PCOEMAREN
PC,MAR,EM,W,IR
T1
EM→W
EMENEMRDWEN
T0
W→IRPC+1
IREN
10
SUBCA,MM
从累加器A中减去MM地址的值,减进位
010010XX
111
T5
R?
->DBUS->MAR
RRD,MAREN,X2~X0
R,DBUS,MAR,EM,W,A,ALU,F
T4
EM->W
EMEN,EMRD,WEN
T3
A+W->DBUS->A
S2~S0AEN,CN=1
FEN
224
MOVR?
#II
将立即数送到寄存器R?
中
100011XX
110
T5
PC->MAR
PCOE,MAREN
PC,MAR,EM,W,A,ALU,F
T4
EM->W,PC->PC+1
EMEN,EMRD,WEN
T3
WANDA->DBUS->A
S2~S0,AEN
34
CALLMM
调用MM的子程序
101111XX
101
T5
R?
->DBUS->MAR
X2~X0RRD,MAREN
R,MAR,EM,W,A,DBUS
T4
A->W
WEN
T3
W->EM
EMEN,EMWR
以流程图表示如下:
图4第19条指令流程图
图4为第36号指令流程图
【系统实现】
1、模型机实现
(1)逻辑电路的图形符号表示、功能
图5八功能ALU设计
功能描述:
通过三位二进制控制量S2~S0数值的变化来实现八种功能操作:
加、减、带进位的加、带进位的减、与、或、取反、输出。
(2)系统实现
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCPU2004IS
GENERIC(
ALL_ZERO:
STD_LOGIC_VECTOR(15DOWNTO0):
="0000000000000000";
INT_ENTER:
STD_LOGIC_VECTOR(15DOWNTO0):
="0000000011100000";
INT_CODE:
STD_LOGIC_VECTOR(15DOWNTO0):
="0000000010111000";
DataWidth:
integer:
=16;
);
PORT(
A:
inSTD_LOGIC_VECTOR(15DOWNTO0);
W:
inSTD_LOGIC_VECTOR(15DOWNTO0);
S0:
inSTD_LOGIC;
S1:
inSTD_LOGIC;
S2:
inSTD_LOGIC;
D:
outSTD_LOGIC_VECTOR(15DOWNTO0);
CIN:
inSTD_LOGIC;
COUT:
outSTD_LOGIC
);
ENDCPU2004;
ARCHITECTUREbehaviorOFCPU2004IS
SIGNALT:
STD_LOGIC_VECTOR(16DOWNTO0);
BEGIN
T<=('0'&A)+('0'&W)WHENS2='0'ANDS1='0'ANDS0='0'ELSE
('0'&A)-('0'&W)WHENS2='0'ANDS1='0'ANDS0='1'ELSE
('0'&A)OR('0'&W)WHENS2='0'ANDS1='1'ANDS0='0'ELSE
('0'&A)AND('0'&W)WHENS2='0'ANDS1='1'ANDS0='1'ELSE
('0'&A)+('0'&W)+CINWHENS2='1'ANDS1='0'ANDS0='0'ELSE
('0'&A)-('0'&W)-CINWHENS2='1'ANDS1='0'ANDS0='1'ELSE--SUBCA,EM
NOT('0'&A)WHENS2='1'ANDS1='1'ANDS0='0'ELSE
('0'&A);
D<=T(15DOWNTO0);
COUT<=T(16);
ENDbehavior;
2、逻辑电路设计
(1)逻辑电路的图形符号表示、功能
图6RS触发器
(2)系统实现
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYRS_clkIS
PORT(S,R,res:
INstd_logic;
Q,NOT_Q:
outstd_logic);
ENDRS_clk;
ARCHITECTUREbehavOFRS_clkIS
signalsel1,sel2:
std_logic;
BEGIN
process(res,sel1,sel2)
begin
ifres='0'thensel1<='0';
sel2<='1';
elsif(S='1'andR='0')thensel1<='1';
sel2<='0';
elsif(S='0'andR='1')thensel1<='0';
sel2<='1';
elsif(S='0'andR='0')thensel1<=sel1;
sel2<=sel2;
endif;
Q<=sel1;
NOT_Q<=sel2;
endprocess;
ENDbehav;
【系统测试】
(一)、模型机测试(八功能ALU设计)
1、功能仿真
仿真过程如下:
●在sources窗口处右击,加入新的源文件
●创建波形仿真激励文件.tbw:
选TestBenchWaveform,并输入文件名test_alu
●初始化时钟周期及相关参数→finash
●右侧会出现.tbw文件窗口,设置输入引脚的值,存盘
●左侧sources窗口选择“behavioralsimulation”,下面processes窗口会自动出现"ModelsimSimulator"
●双击其中的“Simulatebehavioralmodel”会自动调用“Modelsim”进行仿真,观察波形窗口,观察是否正确
图7八功能的ALU时序图
通过仿真证实:
上述程序能够实现八种功能的ALU的设计。
S0S1S2=000时表示加法,图中可以看出a+w=d
RTL级逻辑电路
图8RTL级逻辑电路
(二)硬件测试(74LS139译码器)
1、功能仿真
仿真过程如下:
●在sources窗口处右击,加入新的源文件
●创建波形仿真激励文件.tbw:
选TestBenchWaveform,并输入文件名test_74ls
●初始化时钟周期及相关参数→finash
●右侧会出现.tbw文件窗口,设置输入引脚的值,存盘
●左侧sources窗口选择“behavioralsimulation”,下面processes窗口会自动出现"ModelsimSimulator"
●双击其中的“Simulatebehavioralmodel”会自动调用“Modelsim”进行仿真,观察波形窗口,观察是否正确
图9两输入三态门
仿真证实:
当B1A1=10,B2A2=11时,对应Y1=1101,Y2=1110,与74LS139功能表一致。
2、RTL级逻辑电路
图10RTL级逻辑电路
四.心得体会
通过此次课程设计我学习到了运用VHDL进行FPGA/CPLD设计的基本步骤和方法,熟悉EDA的设计、模拟调试工具的使用,体会FPGA/CPLD技术相对于传统开发技术的优点,同时培养科学研究的独立工作能力,取得工程设计与组装调试的实践经验。
但是在此过程中也遇到了很多困难,比如在设计开始的阶段对于XILINXISE和ModelsimSE这两个软件就不会用,通过和同学交流我大概了解了软件的用法,在进行ALU仿真时,总是运行不了,经过仔细分析,才发现可能是我的ModelsimSE版本的问题。
我用的是6.1但老师推荐的是5.7,我换成V5.7后果然解决了问题。
在做74LS139时Y2输出的波形总是不对,经仔细检查代码后才发现,代码中有个很微小的错误,虽然能通过check但会对结果有很大的影响,改正后问题就解决了。
设计时一些很微小的错误往往决定着最后的结果,所以以后在做东西时,一点要细心。
五.参考文献
[1]程晓荣,翟学明,王晓霞.计算机组成与结构[M].北京:
中国电力出版社,2007.
[2]陈耀和.VHDL语言设计技术[M].北京:
电子工业出版社,2004.
[3]汉泽西.EDA技术及其应用[M].北京:
北京航空航天出版社,2004
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理
![提示](https://static.bdocx.com/images/bang_tan.gif)