东秦组成原理课设报告.docx

上传人:b****3 文档编号:12899561 上传时间:2023-04-22 格式:DOCX 页数:25 大小:1.66MB
下载 相关 举报
东秦组成原理课设报告.docx_第1页
第1页 / 共25页
东秦组成原理课设报告.docx_第2页
第2页 / 共25页
东秦组成原理课设报告.docx_第3页
第3页 / 共25页
东秦组成原理课设报告.docx_第4页
第4页 / 共25页
东秦组成原理课设报告.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

东秦组成原理课设报告.docx

《东秦组成原理课设报告.docx》由会员分享,可在线阅读,更多相关《东秦组成原理课设报告.docx(25页珍藏版)》请在冰豆网上搜索。

东秦组成原理课设报告.docx

东秦组成原理课设报告

 

东北大学秦皇岛分校

计算机与通信工程学院

计算机组成原理课程设计

 

专业名称

计算机科学与技术

班级学号

学生姓名

指导教师

设计时间

2014.12.23~2015.1.3

课程设计任务书

专业:

计算机与通信工程学院学号:

学生姓名:

设计题目:

一、设计实验条件

808实验室

二、设计任务及要求

1.7号指令;

2.14号指令;

3.28号指令;

4.33号指令;

5.机器周期产生电路;

6.74ls139译码器。

设计要求

独立设计一台模型计算机中的部分指令及一些数字电路部件。

三、设计报告的内容

1.设计题目与设计任务

题目:

指令系统及ALU设计

1.7号,14号,28号,33号指令设计;

2.机器周期产生电路;

3.74LS139译码器。

2.前言(绪论)

加强对计算机组成原理的理解,并将理论和时间结合在一起,在实践中体会设计和学习的乐趣,并进一步了解计算机各个模块的原理。

3.设计主体

【课程设计内容】

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’

CYACYB

CYA’CYB’

M0

00

11

00

01

M1

01

10

M2

10

11

M3

11

00

11

10

 

【系统设计】

1.模型机逻辑框图

图1

图2

图3

2.指令系统设计

第7号指令:

ADDA,EM

指令类型:

算术运算指令

寻址方式:

直接寻址

指令格式:

001110

XX

操作码及寻址类型

第14号指令:

SUBA,@R?

指令类型:

算术运算指令

寻址方式:

寄存器间接寻址

指令格式:

001101

XX

操作码及R?

的选择00,01,10,11

第28号指令:

ORA,#II

指令类型:

逻辑运算指令

寻址方式:

立即数寻址

指令格式:

010111XX

操作码

第33号指令:

MOVR?

A

指令类型:

数据传送指令

寻址方式:

寄存器间接寻址

指令格式:

001001

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.指令执行流程

编号

助记符

功能

机器码

周期总数CT

节拍数

微操作

控制信号

涉及的硬件

1

_FATCH_

取指令

000000XX

10

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

将存储器EM地址的值加入累加器A中

001110XX

 

111

T7

PC→MAR

POCE,MAREN

PC,MAR,EM,W,A,ALU,F

T6

EM→W

PC→PC+1

EMEN,EMRD,WEN

T5

W→MAR

WEN,WAREN

T4

EM→W

EMEN,WEN

T3

A+W→DBUS→A

S2~S0,AEN,FEN

14

SUBA,

@R

从累加器A中减去间址存储器的值

001101XX

101

T5

R?

→DBUS→MAR

RRD,MAREN,

X2~X0

R,DBUS,MAR,EM,A,W,ALU,F

T4

EM→W

EMEN,EMRD,WEN

T3

ALU(A-W)→DBUS

→A

S2~S0,AEN,FEN

28

ORA,#II

累加器A“或”立即数II

011011XX

101

T5

PC→MAR

PCOEMAREN

PC,MAR,EM,W,A,

ALU,F

T4

EM→W,

PC→PC+1

EMEN,EMRDWEN

T3

WORA→DBUS

→A

S2~S0,AEN

33

MOVR?

A

将A中的值送入R?

100000XX

011

T3

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:

inSTD_LOGIC;

CYA:

inSTD_LOGIC;

CYB:

inSTD_LOGIC;

CLK:

inSTD_LOGIC;

cya1:

OUTSTD_LOGIC;

cyb1:

OUTSTD_LOGIC);

endcycle;

architectureBehavioralofcycleis

begin

PROCESS(CLK)IS

BEGIN

IF(CLK'EVENTANDCLK='1')THEN

IF(A='1')THEN

IF(CYA='0'ANDCYB='0')THEN

cya1<='1';cyb1<='1';

ENDIF;

IF(CYA='1'ANDCYB='1')THEN

cya1<='0';cyb1<='0';

ENDIF;

ENDIF;

IF(B='1')THEN

IF(CYA='0'ANDCYB='0')THEN

cya1<='0';cyb1<='1';

ENDIF;

IF(CYA='0'ANDCYB='1')THEN

cya1<='1';cyb1<='0';

ENDIF;

IF(CYA='1'ANDCYB='0')THEN

cya1<='1';cyb1<='1';

ENDIF;

IF(CYA='1'ANDCYB='1')THEN

cya1<='0';cyb1<='0';

ENDIF;

ENDIF;

ENDIF;

ENDPROCESS;

endBehavioral;

1、逻辑电路设计

(1)逻辑电路的图形符号表示、功能

 

图10

(2)系统实现

libraryIEEE;

useIEEE.STD_LOGIC_1164.ALL;

useIEEE.STD_LOGIC_ARITH.ALL;

useIEEE.STD_LOGIC_UNSIGNED.ALL;

----Uncommentthefollowinglibrarydeclarationifinstantiating

----anyXilinxprimitivesinthiscode.

--libraryUNISIM;

--useUNISIM.VComponents.all;

entityyjyis

Port(A:

inSTD_LOGIC_VECTOR(1downto0);

B:

inSTD_LOGIC_VECTOR(1downto0);

Y1:

outSTD_LOGIC_VECTOR(3downto0);

Y2:

outSTD_LOGIC_VECTOR(3downto0));

endyjy;

architectureBehavioralofyjyis

begin

P1:

PROCESS(A)

BEGIN

CASEAIS

WHEN"00"=>Y1<="0111";

WHEN"01"=>Y1<="1011";

WHEN"10"=>Y1<="1101";

WHEN"11"=>Y1<="1110";

WHENOTHERS=>Y1<="1111";

ENDCASE;

ENDPROCESS;

PROCESS(B)

BEGIN

CASEBIS

WHEN"00"=>Y2<="0111";

WHEN"01"=>Y2<="1011";

WHEN"10"=>Y2<="1101";

WHEN"11"=>Y2<="1110";

WHENOTHERS=>Y2<="1111";

ENDCASE;

ENDPROCESS;

endBehavioral;

【系统测试】

(一)、模型机测试

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、功能仿真

仿真过程如下:

●在sources窗口处右击,加入新的源文件

●创建波形仿真激励文件.tbw:

选TestBenchWaveform,并输入文件名test_74ls

●初始化时钟周期及相关参数→finash

●右侧会出现.tbw文件窗口,设置输入引脚的值,存盘

●左侧sources窗口选择“behavioralsimulation”,下面processes窗口会自动出现"ModelsimSimulator"

●双击其中的“Simulatebehavioralmodel”会自动调用“Modelsim”进行仿真,观察波形窗口,观察是否正确

 

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.

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1