东秦组成原理课设报告Word文档格式.docx
《东秦组成原理课设报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《东秦组成原理课设报告Word文档格式.docx(25页珍藏版)》请在冰点文库上搜索。
【课程设计内容】
1.指令系统设计
第7号指令:
助记符:
ADDA,EM
格式:
操作码和地址码
操作码:
ADD
地址码:
A,EM
功能:
将存储器EM地址的值加入累加器A中
寻址方式:
直接寻址
第14号指令:
SUBA,@R?
SUB
A,@R?
从累加器A中减去间址存储器的值
寄存器间接寻址
第28号指令:
ORA,#II
OR
A,#II
累加器A“或”立即数II
立即数寻址
第33号指令:
MOVR?
A
MOV
R?
A
将A中的值送入R?
中
2.模型机硬件设计:
题目:
机器周期产生电路
设计电路,实现A、B类指令分别有2和4个机器周期。
3.逻辑电路设计:
74LS139译码器。
功能:
实现双二—四译码器
机器周期
A
B
CYACYB
CYA‘CYB’
CYA’CYB’
M0
00
11
00
01
M1
10
M2
M3
【系统设计】
1.模型机逻辑框图
图1
图2
图3
2.指令系统设计
ADDA,EM
指令类型:
算术运算指令
指令格式:
001110
XX
操作码及寻址类型
第14号指令:
SUBA,@R?
001101
XX
操作码及R?
的选择00,01,10,11
第28号指令:
ORA,#II
逻辑运算指令
010111XX
操作码
MOVR?
数据传送指令
001001
操作码及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.指令执行流程
编号
助记符
功能
机器码
周期总数CT
节拍数
微操作
控制信号
涉及的硬件
1
_FATCH_
取指令
000000XX
T2
PC→MAR
PCOE,MAREN
PC,MAR,EM,W,IR
T1
EM→W
EMEN,EMRD,WEN
T0
W→IR
IREN
PC+1
7
ADDA,
EM
001110XX
111
T7
POCE,MAREN
PC,MAR,EM,W,A,ALU,F
T6
PC→PC+1
T5
W→MAR
WEN,WAREN
T4
EMEN,WEN
T3
A+W→DBUS→A
S2~S0,AEN,FEN
14
SUBA,
@R
001101XX
101
→DBUS→MAR
RRD,MAREN,
X2~X0
R,DBUS,MAR,EM,A,W,ALU,F
ALU(A-W)→DBUS
→A
28
ORA,#II
011011XX
PCOEMAREN
PC,MAR,EM,W,A,
ALU,F
EM→W,
EMEN,EMRDWEN
WORA→DBUS
→A
S2~S0,AEN
33
100000XX
011
A→DBUS→R?
AEN
A,DBUS,A
流程图如下:
图47号指令流程图
图5第14号指令
图628号指令
图7第33号指令
指令周期安排:
图8分3号指令
【系统实现】
1.模型机实现
1)逻辑电路的图形符号表示、功能
图9
(2)系统实现
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
--Uncommentthefollowinglibrarydeclarationifusing
--arithmeticfunctionswithSignedorUnsignedvalues
--useIEEE.NUMERIC_STD.ALL;
--Uncommentthefollowinglibrarydeclarationifinstantiating
--anyXilinxprimitivesinthiscode.
--libraryUNISIM;
--useUNISIM.VComponents.all;
entitycycleis
Port(A:
inSTD_LOGIC;
B:
CYA:
CYB:
CLK:
cya1:
OUTSTD_LOGIC;
cyb1:
OUTSTD_LOGIC);
endcycle;
architectureBehavioralofcycleis
begin
PROCESS(CLK)IS
BEGIN
IF(CLK'
EVENTANDCLK='
1'
)THEN
IF(A='
)THEN
IF(CYA='
0'
ANDCYB='
)THEN
cya1<
='
;
cyb1<
ENDIF;
IF(CYA='
ENDIF;
ENDIF;
IF(B='
ENDIF;
ENDPROCESS;
endBehavioral;
1、逻辑电路设计
(1)逻辑电路的图形符号表示、功能
图10
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
----Uncommentthefollowinglibrarydeclarationifinstantiating
----anyXilinxprimitivesinthiscode.
entityyjyis
inSTD_LOGIC_VECTOR(1downto0);
Y1:
outSTD_LOGIC_VECTOR(3downto0);
Y2:
outSTD_LOGIC_VECTOR(3downto0));
endyjy;
architectureBehavioralofyjyis
P1:
PROCESS(A)
BEGIN
CASEAIS
WHEN"
00"
=>
Y1<
="
0111"
WHEN"
01"
1011"
10"
1101"
11"
1110"
WHENOTHERS=>
1111"
ENDCASE;
PROCESS(B)
BEGIN
CASEBIS
Y2<
ENDPROCESS;
【系统测试】
(一)、模型机测试
1.功能仿真:
仿真过程如下:
●在sources窗口处右击,加入新的源文件
●创建波形仿真激励文件.tbw:
选TestBenchWaveform,并输入文件名test_74ls
●初始化时钟周期及相关参数→finash
●右侧会出现.tbw文件窗口,设置输入引脚的值,存盘
●左侧sources窗口选择“behavioralsimulation”,下面processes窗口会自动出现"
ModelsimSimulator"
●双击其中的“Simulatebehavioralmodel”会自动调用“Modelsim”进行仿真,观察波形窗口,观察是否正确
A=1,B=0,CYA=1,CYB=1;
输出结果为:
cya1=0,cyb1=0
图11
2.级RTL逻辑电路
图12
(二)硬件测试
1、功能仿真
A=11,B=00,输出:
y1=1110,y2=0111
图13
A=01,B=10,输出:
y1=1011,y2=1101
图14
2、RTL级逻辑电路
图15
【总结】
在模拟机的设计中,周期a,b同时为1时,也就是当指令同时为2个周期和4个周期时,输出应为EOF,但是这段程序中输出为00.由于时间关系,我并没有解决这个问题。
在硬件设计实验中,可以在硬件中加入两个使能端控制A,B的输入。
【心得体会】
通过这次课程设计,我学习了VHDL进行FPGA/CPLD设计的基本步骤和方法,可以熟练的掌握xilinx设计程序的使用和modelsim模拟器的模拟方法。
当在这次课设中遇到困难时,在和同学的交流中加深了同学的友谊,同时也让我知道了自己知识的不足。
遇到问题并解决问题是一件很愉快的事情。
在三天时间完成这次课设是一件很艰巨的任务,但我还是尽自己的能力完成了这次课设,虽然程序在设计中还是会有一些问题和瑕疵,但是任务书中的要求全部完成并进行了调试。
在这次实践中我增长了知识,在解决问题的途中学会了自我寻找问题的答案。
将理论和实践结合在一起,为以后工作,科研做下基础。
【参考文献(资料)】
[1]袁静波等.计算机组成与结构.北京:
机械工业出版社,2011.
[2]刘福奇。
基于VHDL的FPGA和Nios实例精炼,北京航空航天大学出版社,2011
[3]陈耀和.VHDL语言设计技术[M].北京:
电子工业出版社,2004.
[4]汉泽西.EDA技术及其应用[M].北京:
北京航空航天出版社,2004
[5]程晓荣,翟学明,王晓霞.计算机组成与结构[M].北京:
中国电力出版社,2007.