东北大学秦皇岛分校计算机组成原理课设.docx
《东北大学秦皇岛分校计算机组成原理课设.docx》由会员分享,可在线阅读,更多相关《东北大学秦皇岛分校计算机组成原理课设.docx(22页珍藏版)》请在冰豆网上搜索。
东北大学秦皇岛分校计算机组成原理课设
东北大学秦皇岛分校
计算机与通信工程学院
计算机组成与结构课程设计
指令系统及计数器设计
专业名称
计算机科学与技术
班级学号
学生姓名
指导教师
设计时间
2012.12.17~2012.12.26
东北大学秦皇岛分校
课程设计任务书
专业:
计算机科学与技术学号:
学生姓名:
设计题目:
一、设计实验条件
硬件:
PC机
软件:
XilinxISEModelSim
编程语言:
VHDL
二、设计任务及要求
1.6号指令的设计;
2.23号指令的设计;
3.29号指令的设计;
4.42号指令的设计;
5.输出寄存器OUT;
6.带异步清零和计数使能的8位二进制计数。
三、设计报告的内容
1.设计题目与设计任务
题目:
1、16位模型机设计-指令系统及计数器设计
表1.指令系统设计
指令编号
指令助记符
机器码1
机器码2
指令功能
6
ADD@R?
000101
将间址存储器的值加到累加器A中
23
ANDA,MM
010110
MM
累加器A“与”存储器MM地址的值
29
MOVA,R?
011100
将寄存器R?
的值送到累加器A中
42
JZMM
101001
MM
当零标志R_Z=1时,跳转到MM地址
2、模型机硬件设计:
输出寄存器OUT
3、逻辑电路设计:
带异步清零和计数使能的8位二进制计数器
2.前言
1、融会贯通计算机组成原理课程的内容,通过知识的综合运用,加深对计算机系统各个模块的工作原理及相互联系的认识;
2、学习运用VHDL进行FPGA/CPLD设计的基本步骤和方法,熟悉EDA的设计、模拟调试工具的使用,体会FPGA/CPLD技术相对于传统开发技术的优点;
3、培养科学研究的独立工作能力,取得工程设计与组装调试的实践经验。
3.设计主体
【系统设计】
整机逻辑结构框图
图1
芯片引脚:
图2
cpu逻辑结构框图:
图3
【设计指令系统】
1、指令系统设计
表2
第6条指令:
ADDA,@R?
指令类型:
算术运算指令
寻址方式:
寄存器间接寻址
第23条指令:
ANDA,MM
指令类型:
逻辑运算指令
寻址方式:
存储器直接寻址
第29条指令:
MOVA,R?
指令类型:
数据传送指令
寻址方式:
寄存器直接寻址
第42条指令:
JZMM
指令类型:
程序跳转类指令
寻址方式:
存储器直接寻址
2、微操作控制信号
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做何种运算。
3、指令执行流程
表3
编号
助记符
功能
机器码
周期总数CT
节拍数
微操作
控制信号
涉及的硬件
1
_FATCH_
取指令
000000XX
010
T2
PC→MAR
PCOEMAREN
PC,MAR,EM,W,IR
T1
EM→W
EMENEMRDWEN
T0
W→IR
PC+1
IREN
4
DECR?
R?
中内容自减1
000011XX
100
T4
1→W
R?
→DBUS→A
WENRRDAEN
WR?
DBUSAALU
T3
A-W→ALU→DBUS→R?
AENS()
23
ANDA,MM
累加器A“与”存储器MM地址的值
010110XX
101
T5
PC→MAR
PCOEMAREN
PC,MAR,EM,W,A,ALU,F
T4
EM→DBUS→W
PC+1→PC
EMRDEMENWEN
T3
A+W→ALU→F
ALU→A
FENAEN
29
MOVA,R?
将寄存器R?
的值送到累加器A中
011100XX
100
T4
R?
→DBUS→W
RRDWEN
R?
DBUSWA
T3
W→A
AEN
42
JZMM
当零标志R_Z=1时,跳转到MM地址
101001XX
101或011
T5
若Z=1,则
PCMAREMWDBUS
PC→MAR
PCOEMAREN
PCMAREMWDBUS
T4
EM→W
EMRDEMENWEN
T3
W→DBUS→PC
ELP
T3
否则:
PC+1→PC
PC
指令执行流程图
DECR?
ANDA,MMMOVA,R?
JZMM
Z=1
YN
T5T5
T4T4T4
T3T3T3T3
图4
二部分
【模型及实现(输出寄存器OUT)】
带清零的8位并行输入串行输出移位寄存器
1、设计构思
引脚:
八个并行输入端口
一个输出端口
时钟信号控制引脚时钟信号禁止端移位装载控制复位
功能:
数据并行的输入,串行的输出实现所谓的并串变化
输入引脚:
a,b,c,d,e,f,g,h8位并行输入信号
se串行输入信号
输出引脚:
q串行输出信号
控制引脚:
clk时钟信号
fe时钟信号禁止端
s1移位装载控制端
reset复位信号
表4控制信号功能表
CLK
reset
fe
S1
q
↑上升沿有效
0复位
-
-
00000000
1
1
-
00000000
0
0
依次装载
1
移位装载
2、VHDL源程序设计过程
包括三个部分,即库和程序包调用、实体部分、结构体部分
程序包调用:
LIBRARYieee;
useieee.std_logic_1164.all;
实体部分一般格式:
entity实体名is
类型参数说明
端口说明
end实体名
注意:
实体名与保存的源文件名相同
结构体部分一般格式:
Architecture结构体名of实体名is
定义语句
Begin
并行处理语句
End结构体名
建立过程
图5
图6
逻辑电路图
图7
图8
图9
仿真测试
图10
图11
3、VDHLM描述如下
LIBRARYieee;
useieee.std_logic_1164.all;
entityregis
port(reset,s1,fe,clk,se,a,b,c,d,e,f,g,h:
instd_logic;
q:
outstd_logic);
endreg;
architecturebehaveofregis
signaltmpreg8:
std_logic_vector(7downto0);
begin
process(clk,reset,s1,fe)
begin
if(reset='0')then
tmpreg8<="00000000";
q<=tmpreg8(7);
elsif(clk'event)and(clk='1')then
if(fe='0')then
if(s1='0')then
tmpreg8(0)<=a;
tmpreg8
(1)<=b;
tmpreg8
(2)<=c;
tmpreg8(3)<=d;
tmpreg8(4)<=e;
tmpreg8(5)<=f;
tmpreg8(6)<=g;
tmpreg8(7)<=h;
elsif(s1='1')then
foriintmpreg8'highdowntotmpreg8'low+1loop
tmpreg8(i)<=tmpreg8(i-1);
endloop;
tmpreg8(tmpreg8'low)<=se;
q<=tmpreg8(7);
endif;
endif;
endif;
endprocess;
endbehave;
三部分
【模型及实现(带异步清零和计数使能的8位二进制计数器)】
1、建立过程
图12
图13
逻辑电路图
图14
图15
图16
图17
图18
图19
图20
图21
图22
仿真测试
图23
图24
2、VDHLM描述
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
entitywangfangis
Port(clk,reset,en:
inSTD_LOGIC;
q:
outSTD_LOGIC_VECTOR(7DOWNTO0);
bout:
outSTD_LOGIC);
endwangfang;
architectureBehavioralofwangfangis
signalcq:
STD_LOGIC_VECTOR(7DOWNTO0);
begin
process(clk,reset,en)
begin
ifreset='0'thencq<="00000000";
elsifclk'eventandclk='1'then
ifen='1'then
ifcq>0then
cq<=cq-1;
else
cq<="11111111";
endif;
ifcq=0then
bout<='1';
else
bout<='0';
endif;
endif;
endif;
q<=cq;
endprocess;
endBehavioral;
四、结束语
这次课程设计是在已学计算机组成原理基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高。
因此,要求我们学生能综合应用所学知识,设计与制造出具有较复杂功能的应用系统,并且在实验的基本技能方面上进行一次全面的训练。
但是在此过程中也遇到了很多困难,比如在设计开始的阶段对于XILINXISE和ModelsimSE这两个软件就不会用,通过和同学交流我大概了解了软件的用法,在进行ALU仿真时,总是运行不了,经过仔细分析,才发现可能是我的ModelsimSE版本的问题。
在本次设计中,遇到了很多问题,开始有些迷茫,在老师的分析以及同学的帮助下,相关资料的查阅,先了解了整个设计的总体设计思路,然后查了很多关于输出寄存器以及计数器的资料,从它的根本设计原理出发,比如计数器的过程为减的过程等等。
经过努力调试修改把这个设计大部分完成,虽然里面还存在很多问题,但感觉自己在计算机组成原理的知识海洋里懂的是那么的少,还需要多学点。
总之,这次的课程设计不仅让我有动手实践的机会,也让我对之前的知识进行加深学习,使我对完成一个项目有个比较具体的认识,对以后完成这方面的事情打下基础。
再次感谢老师同学的帮忙!
五、参考资料
[1]李云松,宋锐XilinxFPGA数据基础(VHDL)版[M]
西安电子科技大学出版社,2008.
[2]袁静波,丁顺利,宋欣,王和兴计算机组成与结构
机械工业出版社,2011
[3]XX文库
六、设计时间与安排
1、设计时间:
2周
2、设计时间安排:
熟悉实验设备、收集资料:
3天
设计图纸、实验、计算、程序编写调试:
5天
编写课程设计报告:
2天
答辩:
1天