嵌入式的8位CISC模型机设计1组成原理课程设计报告.docx

上传人:b****5 文档编号:12579020 上传时间:2023-04-20 格式:DOCX 页数:42 大小:844.40KB
下载 相关 举报
嵌入式的8位CISC模型机设计1组成原理课程设计报告.docx_第1页
第1页 / 共42页
嵌入式的8位CISC模型机设计1组成原理课程设计报告.docx_第2页
第2页 / 共42页
嵌入式的8位CISC模型机设计1组成原理课程设计报告.docx_第3页
第3页 / 共42页
嵌入式的8位CISC模型机设计1组成原理课程设计报告.docx_第4页
第4页 / 共42页
嵌入式的8位CISC模型机设计1组成原理课程设计报告.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

嵌入式的8位CISC模型机设计1组成原理课程设计报告.docx

《嵌入式的8位CISC模型机设计1组成原理课程设计报告.docx》由会员分享,可在线阅读,更多相关《嵌入式的8位CISC模型机设计1组成原理课程设计报告.docx(42页珍藏版)》请在冰豆网上搜索。

嵌入式的8位CISC模型机设计1组成原理课程设计报告.docx

嵌入式的8位CISC模型机设计1组成原理课程设计报告

嵌入式的8位CISC模型机设计

 

一、实验目的

二、设计题目及要求

三、设计方案:

1.模型机的总体设计

2.微程序控制器的组成原理框图

3.模型机机器指令格式和指令系统

4.时序产生器的设计原理及时序波形图

5.微程序流程图

6.汇编语言源程序

四、设计的过程与步骤

五、模型机的各单元VHDL源程序

6、模型机系统顶层电路图

七、模型机的时序仿真波形图

八、设计总结

九、参考文献

韶关学院课程设计任务书

学生姓名

XXX

专业班级

10级1班

学号

XXXXXXXXXX

指导教师姓名及职称

彭玄璋讲师

设计地点

信息418

设计题目

嵌入式的8位CISC模型机设计

本课程设计课题任务的内容和要求

题目1:

设计一台嵌入式的8位CISC模型计算机,并运行能完成一定功能的机器语言程序进行验证,程序功能是:

✧求出1到任意一个整数N之间的所有奇数之和并输出显示,和为单字长。

说明:

N从开关输入,和从数码管输出,然后输出显示停止。

对本课程设计工作任务及工作量的要求:

课程设计完成工作任务内容如下:

(1)完成系统的总体设计,画出模型机数据通路框图。

(2)设计微程序控制器(CISC模型计算机)或硬联线控制器(RISC模型计算机)的逻辑结构图。

(3)设计机器指令格式和指令系统。

(4)设计时序产生器电路。

(5)设计所有机器指令的微程序流程图(CISC模型计算机)或CPU操作流程图(RISC模型计算机)。

(6)设计操作控制单元。

●若设计的是CISC模型计算机,则设计微指令格式(建议采用全水平型微指令),并根据微程序流程图和微指令格式设计微指令代码表。

根据微程序控制器的逻辑结构框图、微指令格式和微指令代码设计微程序控制器,包括地址转移逻辑电路、微地址寄存器、微命令寄存器和控制存储器。

●若设计的是RISC模型计算机,则根据CPU操作流程图、RISC模型机数据通路框图、硬联线控制器逻辑框图和时序产生器电路写出模型机中所有控制信号的逻辑表达式。

根据逻辑表达式设计RISCCPU中的硬联线控制器。

(7)完成系统的总体设计,画出模型机数据通路框图。

(8)设计微程序控制器(CISC模型计算机)或硬联线控制器(RISC模型计算机)的逻辑结构图。

(9)设计机器指令格式和指令系统。

(10)设计时序产生器电路。

(11)设计模型机的所有单元电路,并用VHDL语言(也可使用GDF文件——图形描述文件)对模型机中的各个部件进行编程,并使之成为一个的整体,即形成顶层电路或顶层文件。

(12)由给出的题目和设计的指令系统编写相应汇编语言源程序(验证程序)。

(13)根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序,并将其设计到模型机的ROM中。

(14)使用EDA软件QuartusII进行功能仿真,要保证其结果满足题目的要求(其中要利用QuartusII提供的波形编辑器,选择合适的输入/输出信号及中间信号进行调试)。

(15)在DE2-70实验箱上进行下载,硬件验证。

课程设计应完成的图纸和程序:

(1)顶层设计的电路原理图;

(2)元件(模块)符号图;

(3)仿真波形图;

(4)各个部件(模块)的VHDL设计源程序。

进度安排

时间为16学时,分散在9周进行,每周2学时。

1、第1-4周:

模型计算机设计辅导教学讲座;

2、第6-9周:

EDA基础实验训练,确定课程设计题目;

3、第10-15周:

进行资料收集和学习、模型机设计方案确定、电路设计、程序设计与计算机仿真和硬件验证;

4、第15-16周:

编写上交课程设计实验报告。

主要参考文献

[1]]陈智勇等编.《计算机原理课程设计》.西安电子科技大学.2006年6月

[2]潘松黄继业编.《EDA技术实用教程》(第二版).科学出版社2005年2月

[3]罗克露等编.《计算机组成原理》.电子工业出版社2004年8月

[4]江国强编.《EDA技术习题与实验》.电子工业出版社2005年1月

[5]彭玄璋编《基于EDA技术的组成原理课程设计实验指导书》(自编教材)2010年3月

院系(或教研室)审核意见:

 

审核人签名及系公章:

年月日

任务下达人(签字)

彭玄璋

2012年9月4日

任务接受人(签字)

年月日

 

嵌入式的8位CISC模型机设计

二、实验目的:

1.通过课程设计加深对计算机各功能部件的理解;掌握数据信息流和控制信息流的流动和实现过程,建立起整机概念;培养设计、开发和调试计算机的能力。

2.提高使用EDA工具软件和可编程器件芯片的基本技能。

3.培养科学研究的独立工作能力,取得工程设计与组装调试的实践和经验。

二、设计题目及要求:

设计一台8位的CISC模型机,要求具有以下验证程序所要求的功能:

求出1到任意一个整数N之间的所有奇数之和并输出显示,和单字节长。

说明:

N从开关输入,和数码管输出,然后输出显示停止。

三、设计方案:

1.模型机的总体设计

模型机的总体设计的内容包括确定各种部件的设置以及它们之间的数据通路结构。

CISC模型机由CISC微处理器、地址寄存器AR、ROM和RAM存储器等组成。

微处理器由算术逻辑运算单元ALU、状态条件寄存器、累加器AC、数据暂存器DR、通用寄存器R0~R2、程序计数器PC、指令寄存器IR、操作控制器和时序产生器组成。

CISC模型机的操作控制器采用微程序控制器。

根据模型机功能要求,画出如图1所示模型机数据通路框图。

图1模型机数据通路框图

2.微程序控制器的组成原理框图

微程序控制器组成原理框图如图2所示。

它主要由控制器、微指令寄存器和地址转移逻辑电路三大部分组成,其中微指令寄存器分为微地址寄存器和微命令寄存器两部分。

图2微程序控制器组成原理框图

3.模型机机器指令格式和指令系统

CISC模型机的指令系统采用复杂的指令格式、多种指令字长度和多种寻址方式,但指令功能强大,单条指令的执行速度较慢。

为了完成题目所要求的功能,模型机的指令系统共设计了8条不同的功能指令。

指令字长度有单字长(1个字节)和双字长(2个字节)两种;寻址方式有三种,分别是寄存器寻址、直接寻址和立即寻址。

这8条指令是IN1(输入),MOV(将一个数送入寄存器),CMP(比较),JB(小于跳转),ADD(两数相加),INC(自增1),JMP(无条件跳转),OUT1(输出)。

下面分别介绍这些指令的格式:

(1)、I/O指令

输入(IN1)采用单字节指令,其格式如下:

输入(OUT1)采用单字节指令,其格式如下:

说明:

RS为源寄存器,RD为目的寄存器。

(2)、转移指令

条件转移指令(JB)和无条件转移指令(JMP)采用双字节指令,其格式如下:

“addr”中的值就是要转移的地址值。

(3)、比较指令和相加指令

比较(CMP)指令和相加指令(ADD)采用单字节指令,其格式如下:

(4)、MOV指令

MOV指令采用双字节指令,其格式如下:

说明:

“data”为立即数。

(5)、自增指令

自增1指令(INC)指令采用单字节指令,其格式如下:

以下是对Rs和Rd的规定:

 

模型机规定数据的表示采用定点整数补码表示,单字长为8位,其格式如下:

 

模型机的指令系统中共有8条基本指令,表1列出每条指令的助记符号、指令格式和功能。

表18条机器指令的助记符号、指令格式和功能

4.时序产生器的设计原理及时序波形图

CISC微处理器的时钟信号Q和清除信号CLR由外部输入,节拍脉冲信号Ti由时序产生器产生。

图4-14描述了节拍脉冲信号与外部时钟信号、清除信号的时序关系。

由图3可以看出,节拍脉冲信号T1、T2、T3、T4实际上是以Q为时钟输入信号的计数状态经过译码器译码后生成的,因此可写出节拍脉冲信号的逻辑表达式,并用VHDL语言实现之,然后将它创建为一个元件符号,供顶层电路调用。

图3T1、T2、T3、T4与CLR、Q之间的时序关系图

如果系统的时钟控制信号(即工作脉冲P)是在T1、T2、T3或T4的中间产生,且上升沿有效,则它产生方法是:

先将Q取反,再和节拍脉冲信号Ti相“与”得到。

如图4所示。

图4时钟控制信号的形成方法

5.微程序流程图

根据模型机的数据通路图(图1)以及所有指令在CISC模型机中的操作过程,画出所有机器指令的微程序流程图,如图5所示。

图中每个框为一个CPU周期(包含T1~T4共4个节拍脉冲周期)对应于一条微指令。

框中上面的十六进制数表示的是当前微指令在控制存储器中的微地址;框中下面的十六进制数表示的是当前微指令的后续微坡地。

在编写微指令时,图中的菱形框从属于它上面的方框。

图5CISC模型机中所有机器指令的微程序流程图

 

6.汇编语言源程序

算法思想为:

采用R0寄存器存放从开关输入的任意一个整数,R1存放准备参加累加运算的奇数,R2存放累加的和,用一个循环程序实现如下:

功能

IN1R0从开关输入任意一个整数n→R0

MOVR1,1将立即数1→R1(R1用于存放参与运算的奇数)

MOVR2,0将立即数0→R2(R2用于存放累加和)

L1:

CMPR0,R1将R0的整数n与R1的奇数进行比较,锁存CY和ZI

JBL2小于,则转到L2处执行

ADDR1,R2否则,累加求和,并将R1的内容加2,形成下一个奇数

INCR1

INCR1

JMPL1无条件跳转到L1处继续执行

L2:

OUTR2输出累加和

JMPL2循环显示

四、设计的过程与步骤

1、设计各单元电路

首先设计出模型机中所有的单元部件,可以使用VHDL语言文件(.vhd)或者电路图形描述文件(.gdf)对模型机中的各个部件进行设计,并使之成为可供系统调用的元件符号。

(1)、ALU单元

算术逻辑运算单元ALU可执行三种运算,即加、比较和加1运算。

ALU的三种运算受S0、S1控制,具体如表3所示。

表3算术逻辑运算单元ALU的功能表

 

ALU单元文本设计实验操作方法提示:

a.在MAX+plusII的文本编辑方式下完成ALU部件的VHDL源程序编辑,用ALU.vhd为文件名存入工程目录(D:

\CISC)中。

b.在MAX+plusII窗口下,选择File→Project→SetProjecttoCurrentFile命令,将设计文件设置当前工程。

然后执行MAX+plusII菜单下“Compiler”命令对设计文件进行编译,检查设计文件中的错误。

c.在MAX+plusII窗口下,执行“File”菜单中的“CreateDefaultSymbol”命令,可为通过编译的文本设计文件创建一个元件符号,并保存在工程目录中。

(2)、状态条件寄存器单元

状态条件寄存器用来在进行比较运算时锁存借位标志(FC/CY)和零标志(FZ/ZI),在进行条件转移时其内容作为判断的依据。

状态条件寄存器单元设计实验操作方法与ALU单元设计实验操作方法相同,以后的单元设计实验操作方法不再重复说明。

(3)、暂存寄存器、通用寄存器、地址寄存器、指令寄存器单元

模型机中暂存寄存器、通用寄存器、地址寄存器、指令寄存器都采用8位数据寄存器LS273元件,只是上述各个寄存器实体的命名分别为:

AC,DR,R0,R1,R2,AR,IR。

(4)、1:

2分配器单元

1:

2分配器单元用来将ALU的运算结果或通用寄存器的内容(经3选1多路选择器)回送到数据总线,或者将ALU的运算结果或通用寄存器的内容送往输出设备显示。

1:

2分配器单元的功能描述见表4。

1:

2分配器单元元件符号如图所示。

 

(5)、3选1数据选择器单元

3选1数据选择器单元MUX3在数据输入控制信号SW_B、只读存储器片选控制信号CS的控制下,用来从外部输入数据端ID[7..0]、4选1多路选择器的输出端N1[7..0]和只读存储器ROM的输出端N2[7..0]选择一个8位的数据进入内部数据总线。

3选1数据选择器单元的功能表见表5。

3选1数据选择器单元元件符号如图所示。

(6)、4选1数据选择器单元

4选1数据选择器单元MUX4在数据输入控制信号C(R0_B)、D(R1_B)、E(R2_B)、F(ALU_B)的控制下,用来从有三个通用寄存器的数据输出端和ALU的数据输出端选择一个8位的数据输入1:

2分配器的数据输入端。

4选1数据选择器单元的功能表6,4选1数据选择器单元元件符号如图所示。

(7)、程序计数器单元

程序计数器单元的元件符号如图12,它在控制信号的控制下具有清“0”,置计数初值和加1功能,其作用是保证程序的顺序执行,在执行跳转指令时,通过修改PC的值达到程序转移分支的目的。

程序计数器PC的输出直接送往地址寄存器AR(LS273芯片)。

表7程序计数器PC的功能表

 

(8)、主存储器单元

CISC模型机由于只运行完成一定功能的程序而不需要进行数据处理,所以只采用ROM芯片作为它的主存储器单元,没有配置读写存储器RAM芯片。

它的主存储器单元是一片256×8位的ROM芯片,如图13所示。

ADDR[7..0]为8位坡地输入端,CS为片选信号,DOUT[7..0]为8位数据输出端,它的功能表见表8。

表8主存储器ROM16的功能表

在CISC模型机中,ROM芯片的读操作时序如图6所示,ROM的读操作仅与片选信号CS有关,CS为低电平有效,有效电平的范围为一个CPU周期。

图6CISC模型机中ROM芯片的读操作时序图

在图13中,主存储器的地址输入端直接与地址寄存器的输出相连,数据输出端经3选1数据选择器送往数据总线。

主存储器单元的VHDL程序

(9)、时序产生器单元

时序产生器主要用来产生节拍脉冲信号(T1、T2、T3、T4),对各种控制信号实施时间上控制。

时序产生器单元元件符号如图15所示,它内容采用一个2位普通计数器,计数值译码后产生节拍脉冲信号(T1、T2、T3、T4),Q为外部时钟输入信号。

时序产生器单元的功能表如表9所示。

表9时序产生器单元COUNTER的功能表

(10)、微程序控制器单元

(1)、设计微指令格式和微指令代码表

CISC模型机系统使用的微指令采用全水平型微指令,字长25位,其中微指令字段17位,P字段2位,后续微地址6位。

其格式如下:

微指令格式中的后继微地址从左到右依次为:

üA5、üA4、üA3、üA2、üA1、üA0;

由微指令格式和微程序流程图编写的微指令代码表如表2所示。

微程序控制器器由地址转移逻辑电路ADDR、微地址寄存器aa、控制存储器CONTROM和微命令寄存器MCOMMAND等几部分组成。

为了方便电路的设计与连线,在进行本模型机微程序控制器单元内部结构设计时,增加了F1、F2和F3共三个用于多根单线与总线之间转换的器件。

微程序控制器单元的内部结构如图7所示,微程序控制器单元元件符号如图7所示。

 

图7微程序控制器的内部结构图

a、地址转换逻辑电路

地址转移逻辑电路是根据微程序流程图5中的菱形部分及多个分支微地址,利用微地址寄存器的异步置“1”端,实现微地址的多路转移。

在图5中进行P

(1)(高电平有效)测试时,根据指令的操作码I7~I4强制修改后继微地址的低4位,在P

(2)(高电平有效)测试时,根据借位标志FC和零标志FZ进行两路分支,并且都在T4内形成后继微指令的微地址。

b、微地址寄存器

微地址寄存器aa的内部结构如图8所示,微地址寄存器aa的元件符号如图20所示。

图8微地址寄存器aa的内部结构

微地址寄存器aa设计的实验操作方法说明:

它需要采用MAX+plusII的VHDL文本设计法和电路图形设计法相结合的方法完成。

首先用VHDL文本设计法完成触发器MMM元件符号的创建,然后用图形输入设计法完成微地址寄存器aa元件符号创建。

c、控制存储器

控制存储器中存放的所有微指令和对应的微地址均来自设计方案的微指令列表(即表2)。

d、微命令寄存器

说明:

在上述程序设计中,为了实现对源寄存器和目标寄存器的选择,采用了寄存器逻辑译码功能。

表10为寄存器逻辑译码功能表

(一),表11为寄存器逻辑译码功能表

(二)。

表10寄存器逻辑译码功能表

(一)

表11寄存器逻辑译码功能表

(二)

18个单元元件符号如下图

 

 

图各单元元件符号

微程序控制器单元crom设计的实验操作方法说明:

首先用MAX+plusII的VHDL文本设计法完成地址转换逻辑电路ADDR、控制存储器CONTROM、微命令寄存器MCOMMAND、微地址转换器F1、微地址转换器F2和微地址转换器F3等元件符号的创建;然后用MAX+plusII的文本输入法和图形输入设计法相结合的方法完成微地址寄存器aa元件符号创建;最后用图形输入设计法完成微程序控制器单元crom编译和元件符号创建。

2、设计CISC模型机的顶层电路图

在完成了CISC模型机的所有单元元件的设计后,就可以进行CISC模型机的顶层电路或顶层文件设计工作。

在MAX+plusII下设计的CISC模型机的顶层电路如图27所示,其顶层电路的功能也可直接采用VHDL语言程序来描述。

五、模型机的各单元VHDL源程序

------------------------ALU的VHDL源程序ALU.vhd--------------------------------

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.all;

ENTITYALUIS

PORT(

A:

INSTD_LOGIC_VECTOR(7DOWNTO0);

B:

INSTD_LOGIC_VECTOR(7DOWNTO0);

S1,S0:

INSTD_LOGIC;

BCDOUT:

OUTSTD_LOGIC_VECTOR(7DOWNTO0);

CY,ZI:

OUTSTD_LOGIC

);

ENDALU;

ARCHITECTUREAOFALUIS

SIGNALAA,BB,TEMP:

STD_LOGIC_VECTOR(8DOWNTO0);

BEGIN

PROCESS(S1,S0)

BEGIN

IF(S1='0'ANDS0='0')THEN--ADD

AA<='0'&A;

BB<='0'&B;

TEMP<=AA+BB;

BCDOUT<=TEMP(7DOWNTO0);

CY<=TEMP(8);

IF(TEMP="100000000")THEN

ZI<='1';

ELSE

ZI<='0';

ENDIF;

ELSIF(S1='0'ANDS0='1')THEN--CMP(SUB)

BCDOUT<=A-B;

IF(A

CY<='1';

ZI<='0';

ELSIF(A=B)THEN

CY<='0';

ZI<='1';

ELSE

CY<='0';

ZI<='0';

ENDIF;

ELSIF(S1='1'ANDS0='0')THEN--INC

AA<='0'&A;

TEMP<=A+1;

BCDOUT<=TEMP(7DOWNTO0);

CY<=TEMP(8);

IF(TEMP="100000000")THEN

ZI<='1';

ELSE

ZI<='0';

ENDIF;

ELSE

BCDOUT<="00000000";

CY<='0';

ZI<='0';

ENDIF;

ENDPROCESS;

ENDA;

-------------------状态条件寄存器的VHDL源程序LS74.vhd-----------

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYLS74IS

PORT(

LDFR:

INSTD_LOGIC;

CY,ZI:

INSTD_LOGIC;

FC,FZ:

OUTSTD_LOGIC

);

ENDLS74;

ARCHITECTUREAOFLS74IS

BEGIN

PROCESS(LDFR)

BEGIN

IF(LDFR'EVENTANDLDFR='1')THEN

FC<=CY;

FZ<=ZI;

ENDIF;

ENDPROCESS;

ENDA;

--------------LS273单元设计的VHDL语言程序------------------------

--8位数据寄存器的VHDL源程序LS273.vhd

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYLS273IS

PORT(

D:

INSTD_LOGIC_VECTOR(7DOWNTO0);

CLK:

INSTD_LOGIC;

O:

OUTSTD_LOGIC_VECTOR(7DOWNTO0)

);

ENDLS273;

ARCHITECTUREAOFLS273IS

BEGIN

PROCESS(CLK)

BEGIN

IF(CLK'EVENTANDCLK='1')THEN

O<=D;

ENDIF;

ENDPROCESS;

ENDA;

--------------------1:

2分配器的VHDL源程序FEN2.vhd------------------

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYFEN2IS

PORT(

WR,LED_B:

INSTD_LOGIC;

X:

INSTD_LOGIC_VECTOR(7DOWNTO0);

W1,W2:

OUTSTD_LOGIC_VECTOR(7DOWNTO0)

);

ENDFEN2;

ARCHITECTUREAOFFEN2IS

BEGIN

PROCESS(LED_B,WR)

BEGIN

IF(LED_B='0'ANDWR='0')THEN

W2<=X;

ELSE

W1<=X;

ENDIF;

ENDPROCESS;

ENDA;

-------------3选1数据选择器单元VHDL源程序MUX3.vhd---------------------

LIBRARYIEEE;

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

当前位置:首页 > 小学教育 > 语文

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

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