ImageVerifierCode 换一换
格式:DOCX , 页数:39 ,大小:985.81KB ,
资源ID:4293614      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4293614.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(嵌入式的8位CISC模型机设计报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

嵌入式的8位CISC模型机设计报告.docx

1、嵌入式的8位CISC模型机设计报告韶 关 学 院课程设计说明书(论文)课程设计题目:嵌入式的8位CISC模型机设计学生姓名:学 号:院 系:计算机科学学院专业班级: 指导教师姓名及职称: 起止时间: 2011 年 10 月 2011 年 11 月 课程设计评分:一、 实验目的二、设计题目及要求三、设计方案:1.模型机的总体设计2. 微程序控制器的组成原理框图 3. 模型机机器指令格式和指令系统 4. 时序产生器的设计原理及时序波形图 5. 微程序流程图 6. 微程序控制器单元 7. 汇编语言源程序 8. 机器语言的源程序 四、设计的过程与步骤 五.模型机系统顶层电路图六模型机的时序仿真波形图七

2、设计总结八参考文献韶关学院课程设计任务书学生姓名专业班级09科学与技术2班学号指导教师姓名及职称设计地点信息418设计题目嵌入式的8位CISC本课程设计课题任务的内容和要求: 设计一台嵌入式的8位CISC模型计算机,并运行能完成一定功能的机器语言程序进行验证,程序功能可以是以下两个之一: 求出1到任意一个整数N之间的所有奇数之和并输出显示,和为单字长。说明:N从开关输入,和从数码管输出,然后输出显示停止。对本课程设计工作任务及工作量的要求:课程设计完成工作任务内容如下:(1) 完成系统的总体设计,画出模型机数据通路框图。(2) 设计微程序控制器(CISC模型计算机)的逻辑结构图。(3) 设计机

3、器指令格式和指令系统。(4) 设计时序产生器电路。(5) 设计所有机器指令的微程序流程图(CISC模型计算机)(6) 设计操作控制单元。 设计的是CISC模型计算机,设计微指令格式(建议采用全水平型微指令),并根据微程序流程图和微指令格式设计微指令代码表。根据微程序控制器的逻辑结构框图、微指令格式和微指令代码设计微程序控制器,包括地址转移逻辑电路、微地址寄存器、微命令寄存器和控制存储器。(7) 设计模型机的所有单元电路,并用VHDL语言(也可使用GDF文件图形描述文件)对模型机中的各个部件进行编程,并使之成为一个的整体,即形成顶层电路或顶层文件。(8) 由给出的题目和设计的指令系统编写相应汇编

4、语言源程序(验证程序)。(9) 根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序,并将其设计到模型机的ROM中。(10) 使用EDA软件MAX+plusII进行功能仿真,要保证其结果满足题目的要求(其中要利用MAX+plusII提供的波形编辑器,选择合适的输入/输出信号及中间信号进行调试)。(11) 选用给定的FPGA芯片EP1K30TQC144进行器件编程和时序仿真,并将顶层电路或顶层文件下载到专用的EDA实验平台GW48 EDA教学实验系统后进行操作演示。课程设计应完成的图纸:(1) 顶层设计的电路原理图;(2) 元件(模块)符号图;(3) 仿真波形图。进度安排:时间为18学时

5、,分散在9周进行,每周2学时。1、 第1-4周:EDA技术基础知识教学讲座;2、 第58周:MAX+PLUS基础实验,确定课程设计题目,进行资料收集和学习、设计方案确定、电路设计、程序设计与计算机仿真;3、第9周:编写课程设计实验报告。主要参考文献:1 陈智勇 等编. 计算机原理课程设计. 西安电子科技大学. 2006年6月2 潘松 黄继业编. EDA技术实用教程(第二版). 科学出版社 2005年2月3 罗克露 等编. 计算机组成原理. 电子工业出版社 2004年8月 4 江国强编. EDA技术习题与实验. 电子工业出版社 2005年1月 5 彭玄璋编基于EDA技术的组成原理课程设计实验指导

6、书(自编教材) 2010年3月院系(或教研室)审核意见:审核人签名及系公章: 年 月 日任务下达人(签字) 年 月 日任务接受人(签字)年 月 日备注:1、本任务书由指导教师填写相关栏目,经系审核同意后,交学生根据要求完成设计任务。 2、本任务书须与学生的课程设计说明书(或论文)一并装订存档。 嵌入式的8位CISC模型机设计一、 实验目的:1. 通过课程设计加深对计算机各功能部件的理解;掌握数据信息流和控制信息流的流动和实现过程,建立起整机概念;培养设计、开发和调试计算机的能力。 2. 提高使用EDA工具软件和可编程器件芯片的基本技能。 3. 培养科学研究的独立工作能力,取得工程设计与组装调试

7、的实践和经验。 二、设计题目及要求: 设计一台8位的CISC模型机,要求具有以下验证程序所要求的功能: 求出1到任意一个整数N之间的所有奇数之和并输出显示,和单字节长。说明:N从开关输入,和数码管输出,然后输出显示停止。三、设计方案:1.模型机的总体设计 模型机的总体设计的内容包括确定各种部件的设置以及它们之间的数据通路结构。CISC模型机由CISC微处理器、地址寄存器AR、ROM和RAM存储器等组成。微处理器由算术逻辑运算单元ALU、状态条件寄存器、累加器AC、数据暂存器DR、通用寄存器R0R2、程序计数器PC、指令寄存器IR、操作控制器和时序产生器组成。CISC模型机的操作控制器采用微程序

8、控制器。根据模型机功能要求,画出如图1所示模型机数据通路框图。 图1 模型机数据通路框图2. 微程序控制器的组成原理框图 微程序控制器组成原理框图如图2所示。它主要由控制器、微指令寄存器和地址转移逻辑电路三大部分组成,其中微指令寄存器分为微地址寄存器和微命令寄存器两部分。 图2 微程序控制器组成原理框图 3. 模型机机器指令格式和指令系统 CISC模型机的指令系统采用复杂的指令格式、多种指令字长度和多种寻址方式,但指令功能强大,单条指令的执行速度较慢。为了完成题目所要求的功能,模型机的指令系统共设计了8条不同的功能指令。指令字长度有单字长(1个字节)和双字长(2个字节)两种;寻址方式有三种,分

9、别是寄存器寻址、直接寻址和立即寻址。这8条指令是IN1(输入),MOV(将一个数送入寄存器),CMP(比较),JB(小于跳转),ADD(两数相加),INC(自增1),JMP(无条件跳转),OUT1(输出)。 下面分别介绍这些指令的格式: (1)、I/O指令输入(IN1)采用单字节指令,其格式如下: 输入(OUT1)采用单字节指令,其格式如下: 说明:RS 为源寄存器, RD为目的寄存器。(2)、转移指令条件转移指令(JB)和无条件转移指令(JMP)采用双字节指令,其格式如下: “addr”中的值就是要转移的地址值。 (3)、比较指令和相加指令比较(CMP)指令和相加指令(ADD)采用单字节指令

10、,其格式如下: (4)、MOV指令MOV指令采用双字节指令,其格式如下: 说明:“data”为立即数。 (5)、自增指令自增1指令(INC)指令采用单字节指令,其格式如下: 以下是对Rs和Rd的规定: 模型机规定数据的表示采用定点整数补码表示,单字长为8位,其格式如下: 模型机的指令系统中共有8条基本指令,表1列出每条指令的助记符号、指令格式和功能。 表1 8条机器指令的助记符号、指令格式和功能 4. 时序产生器的设计原理及时序波形图 CISC微处理器的时钟信号Q和清除信号CLR由外部输入,节拍脉冲信号Ti由时序产生器产生。图4-14描述了节拍脉冲信号与外部时钟信号、清除信号的时序关系。 由图

11、3可以看出,节拍脉冲信号T1、T2、T3、T4实际上是以Q为时钟输入信号的计数状态经过译码器译码后生成的,因此可写出节拍脉冲信号的逻辑表达式,并用VHDL语言实现之,然后将它创建为一个元件符号,供顶层电路调用。 图3 T1、T2、T3、T4与CLR、Q之间的时序关系图 如果系统的时钟控制信号(即工作脉冲P)是在T1、T2、T3或T4的中间产生,且上升沿有效,则它产生方法是:先将Q取反,再和节拍脉冲信号Ti相“与”得到。如图4所示。图4 时钟控制信号的形成方法 5. 微程序流程图 根据模型机的数据通路图(图1)以及所有指令在CISC模型机中的操作过程,画出所有机器指令的微程序流程图,如图5所示。

12、图中每个框为一个CPU周期(包含T1T4共4个节拍脉冲周期)对应于一条微指令。框中上面的十六进制数表示的是当前微指令在控制存储器中的微地址;框中下面的十六进制数表示的是当前微指令的后续微坡地。在编写微指令时,图中的菱形框从属于它上面的方框。 图5 CISC模型机中所有机器指令的微程序流程图 6. 微程序控制器单元 (1)、设计微指令格式和微指令代码表 CISC模型机系统使用的微指令采用全水平型微指令,字长25位,其中微指令字段17位,P字段2位,后续微地址6位。其格式如下: 微指令格式中的后继微地址从左到右依次为:A5、A4、A3、A2、A1、A0; 由微指令格式和微程序流程图编写的微指令代码

13、表如表2所示。 表2 微指令代码表 (2)、设计地址转移逻辑电路 地址转移逻辑电路是根据微程序流程图5中的菱形部分及多个分支微地址,利用微地址寄存器的异步置“1”端,实现微地址的多路转移。在图5中进行P(1)(高电平有效)测试时,根据指令的操作码I7I4强制修改后继微地址的低4位,在P(2)(高电平有效)测试时,根据借位标志FC和零标志FZ进行两路分支,并且都在T4内形成后继微指令的微地址。 由于微地址寄存器中的触发器异步置“1”端低电平有效,与A4A0对应的异步置“1”控制信号SE5SE1的逻辑表达式为:(A5的异步置“1”端SE6实际未使用): 7. 汇编语言源程序 算法思想为:采用R0寄

14、存器存放从开关输入的任意一个整数,R1存放准备参加累加运算的奇数,R2存放累加的和,用一个循环程序实现如下: 功能IN1 R0 从开关输入任意一个整数nR0 MOV R1,1 将立即数1R1(R1用于存放参与运算的奇数) MOV R2,0 将立即数0R2 (R2用于存放累加和) L1:CMP R0,R1 将R0的整数n与R1的奇数进行比较,锁存CY和ZI JB L2 小于,则转到L2处执行 ADD R1,R2 否则,累加求和,并将R1的内容加2,形成下一个奇数 INC R1 INC R1 JMP L1 无条件跳转到L1处继续执行 L2: OUT R2 输出累加和 JMP L2 循环显示 8.

15、机器语言的源程序 根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序,并将其设计到模型机的ROM中去。与汇编语言源程序对应的机器语言源程序如下: 助记符 地址(十六进制) 机器代码 功能 IN1 R0 00 10000000 (SW)R0 MOV R1,1 01 10010001 1R1 02 00000001 MOV R2,0 03 10010010 0R2 04 00000000 L1:CMP R0,R1 05 10100001 (R0)-(R1),锁存CY和ZI JB L2 06 10110000 若小于,则L2PC 07 00001101 ADD R1,R2 08 11000

16、110 (R1)+(R2)R2 INC R1 09 11010001 (R1)+1R1 INC R1 0A 11010001 (R1)+1R1 JMP L1 0B 11100000 L1PC 0C 00000101 L2: OUT R2 0D 11111000 (R2)LED JMP L2 0E 11100000 L2PC 0F 00001101 四、设计的过程与步骤 1、设计各单元电路 首先设计出模型机中所有的单元部件,可以使用VHDL语言文件(.vhd)或者电路图形描述文件(.gdf)对模型机中的各个部件进行设计,并使之成为可供系统调用的元件符号。 (1)、ALU单元 算术逻辑运算单元AL

17、U可执行三种运算,即加、比较和加1运算。ALU的三种运算受S0、S1控制,具体如表3所示。 表3 算术逻辑运算单元ALU的功能表 -ALU的VHDL源程序ALU.vhd LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.all; ENTITY ALU IS PORT( A: IN STD_LOGIC_VECTOR(7 DOWNTO 0); B: IN STD_LOGIC_VECTOR(7 DOWNTO 0); S1,S0: IN STD_LOG

18、IC; BCDOUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ; CY,ZI: OUT STD_LOGIC ); END ALU; ARCHITECTURE A OF ALU IS SIGNAL AA,BB,TEMP:STD_LOGIC_VECTOR(8 DOWNTO 0); BEGIN PROCESS(S1,S0) BEGIN IF(S1=0 AND S0=0) THEN -ADD AA=0&A; BB=0&B; TEMP=AA+BB; BCDOUT=TEMP(7 DOWNTO 0); CY=TEMP(8); IF (TEMP=100000000) THEN ZI

19、=1; ELSE ZI=0; END IF; ELSIF(S1=0 AND S0=1) THEN -CMP(SUB) BCDOUT=A-B; IF(AB) THEN CY=1; ZI=0; ELSIF(A=B) THEN CY=0; ZI=1; ELSE CY=0; ZI=0; END IF; ELSIF(S1=1 AND S0=0) THEN -INC AA=0&A; TEMP=A+1; BCDOUT=TEMP(7 DOWNTO 0); CY=TEMP(8); IF (TEMP=100000000) THEN ZI=1; ELSE ZI=0; END IF; ELSE BCDOUT=0000

20、0000 ; CY=0; ZI=0; END IF; END PROCESS; END A; ALU单元文本设计实验操作方法提示: a. 在MAX+plusII的文本编辑方式下完成ALU部件的VHDL源程序编辑,用ALU.vhd为文件名存入工程目录(D :CISC)中。 b. 在MAX+plus II窗口下,选择FileProjectSet Project to Current File命令,将设计文件设置当前工程。然后执行MAX+plus II菜单下“Compiler”命令对设计文件进行编译, 检查设计文件中的错误。 c. 在MAX+plus II窗口下,执行“File”菜单中的“Creat

21、e Default Symbol”命令,可为通过编译的文本设计文件创建一个元件符号,并保存在工程目录中。 ALU单元元件符号如图6所示: 图6 ALU单元元件符号 (2)、状态条件寄存器单元 状态条件寄存器用来在进行比较运算时锁存借位标志(FC/CY)和零标志(FZ/ZI),在进行条件转移时其内容作为判断的依据。状态条件寄存器单元元件符号如图7所示。 图7 状态条件寄存器单元元件符号 -状态条件寄存器的VHDL源程序LS74.vhd LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY LS74 IS PORT( LDFR: IN STD_LOGI

22、C; CY,ZI: IN STD_LOGIC; FC,FZ: OUT STD_LOGIC ); END LS74; ARCHITECTURE A OF LS74 IS BEGIN PROCESS(LDFR) BEGIN IF(LDFREVENT AND LDFR=1) THEN FC=CY; FZ=ZI; END IF; END PROCESS; END A; 状态条件寄存器单元设计实验操作方法与ALU单元设计实验操作方法相同,以后的单元设计实验操作方法不再重复说明。(3)、暂存寄存器、通用寄存器、地址寄存器、指令寄存器单元 模型机中暂存寄存器、通用寄存器、地址寄存器、指令寄存器都采用8位数据

23、寄存器LS273元件,只是上述各个寄存器实体的命名分别为:AC,DR,R0,R1,R2,AR,IR。LS273元件符号如图8所示。 图8 LS273元件符号 LS273单元设计的VHDL语言程序如下: - 8位数据寄存器的VHDL源程序LS273.vhd LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY LS273 IS PORT( D: IN STD_LOGIC_VECTOR(7 DOWNTO 0); CLK: IN STD_LOGIC; O: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END LS273; AR

24、CHITECTURE A OF LS273 IS BEGIN PROCESS(CLK) BEGIN IF(CLKEVENT AND CLK=1) THEN O=D; END IF; END PROCESS; END A; (4)、1:2分配器单元 1:2分配器单元用来将ALU的运算结果或通用寄存器的内容(经3选1多路选择器)回送到数据总线,或者将ALU的运算结果或通用寄存器的内容送往输出设备显示。1:2分配器单元的功能描述见表4。1:2分配器单元元件符号如图9所示。 表4 1:2分配器单元FEN2的功能表 图9 分配器单元元件符号 1:2分配器单元设计的VHDL语言程序如下: - 1:2分配器

25、的VHDL源程序FEN2.vhd LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY FEN2 IS PORT( WR,LED_B:IN STD_LOGIC; X:IN STD_LOGIC_VECTOR(7 DOWNTO 0); W1,W2:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END FEN2; ARCHITECTURE A OF FEN2 IS BEGIN PROCESS(LED_B,WR) BEGIN IF(LED_B=0 AND WR=0) THEN W2=X; ELSE W1=X; END IF; EN

26、D PROCESS; END A; (5)、3选1数据选择器单元 3选1数据选择器单元MUX3在数据输入控制信号SW_B、只读存储器片选控制信号CS的控制下,用来从外部输入数据端ID7.0、4选1多路选择器的输出端N17.0和只读存储器ROM的输出端N27.0选择一个8位的数据进入内部数据总线。3选1数据选择器单元的功能表见表5。3选1数据选择器单元元件符号如图10所示。 表5 3选1数据选择器MUX3的功能表 图10 3选1数据选择器单元元件符号 3选1数据选择器单元设计的VHDL语言程序如下: -3选1数据选择器单元VHDL源程序MUX3.vhd LIBRARY IEEE; USE IEE

27、E.STD_LOGIC_1164.ALL; ENTITY MUX3 IS PORT( ID:IN STD_LOGIC_VECTOR(7 DOWNTO 0); SW_B,CS:IN STD_LOGIC; N1,N2:IN STD_LOGIC_VECTOR(7 DOWNTO 0); EW:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END MUX3; ARCHITECTURE A OF MUX3 IS BEGIN PROCESS(SW_B,CS) BEGIN IF(SW_B=0) THEN EW=ID; ELSIF(CS=0)THEN EW=N2; ELSE EW=N1

28、; END IF; END PROCESS; END A; (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数据选择器单元元件符号如图11所示。 表6 4选1数据选择器MUX4的功能表 图11 4选1数据选择器单元元件符号 4选1数据选择器单元设计的VHDL语言程序如下: -4选1数据选择器单元VHDL源程序MUX4.vhd LIBRARY IEEE; U

29、SE IEEE.STD_LOGIC_1164.ALL; ENTITY MUX4 IS PORT( C,D,E,F: IN STD_LOGIC; X1,X2,X3,X4: IN STD_LOGIC_VECTOR(7 DOWNTO 0); W: out STD_LOGIC_VECTOR(7 DOWNTO 0) ); END MUX4; ARCHITECTURE A OF MUX4 IS SIGNAL SEL: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN SEL - W - W - W - W - NULL; -END CASE; IF(SEL=1110) THEN -R0_out W=X1; ELSIF(SEL=1101) THEN -R1_out W=X2; ELSIF(S

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

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