东北大学秦皇岛分校计算机组成原理课设.docx

上传人:b****6 文档编号:4322500 上传时间:2022-11-29 格式:DOCX 页数:22 大小:656.60KB
下载 相关 举报
东北大学秦皇岛分校计算机组成原理课设.docx_第1页
第1页 / 共22页
东北大学秦皇岛分校计算机组成原理课设.docx_第2页
第2页 / 共22页
东北大学秦皇岛分校计算机组成原理课设.docx_第3页
第3页 / 共22页
东北大学秦皇岛分校计算机组成原理课设.docx_第4页
第4页 / 共22页
东北大学秦皇岛分校计算机组成原理课设.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

东北大学秦皇岛分校计算机组成原理课设.docx

《东北大学秦皇岛分校计算机组成原理课设.docx》由会员分享,可在线阅读,更多相关《东北大学秦皇岛分校计算机组成原理课设.docx(22页珍藏版)》请在冰豆网上搜索。

东北大学秦皇岛分校计算机组成原理课设.docx

东北大学秦皇岛分校计算机组成原理课设

东北大学秦皇岛分校

计算机与通信工程学院

计算机组成与结构课程设计

 

指令系统及计数器设计

 

专业名称

计算机科学与技术

班级学号

学生姓名

指导教师

设计时间

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天

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

当前位置:首页 > PPT模板 > 节日庆典

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

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