模型机课程设计
计算机硬件课程设计报告——拓展接口的复杂模型机设计
计算机硬件课程设计报告——拓展接口的复杂模型机设计学院:计算机科学与工程学院专业:计算机科学与技术班级:组员1:组员2:起止时间:目录一、实验目的 (3)二、实验内容 (3)三、实验思路 (3)四、实验原理 (3)五、实验步骤 (10)六、实验设计 (11)七、实验心得 (14)一、实验目的经过一系列硬件课程的学习及相关实验后,做一个综合的系统性的设计,这在硬件方面是一个提高,进一步培养实践能力。
二、实验内容搭建一台有拓展接口的8位模型机,指令系统要求有10条以上,其中包括运算类指令、传送类指令、控制转移类指令、输入输出指令、停机指令等。
三、实验思路1、确定设计目标:确定所设计计算机的功能和用途。
2、确定指令系统:确定数据的表示格式、位数、指令的编码、类型、需要设计哪些指令及使用的寻址方式。
3、确定总体结构与数据通路:总体结构设计包含确定各部件设置以及它们之间的数据通路结构,列出各种信息传送路径以及实现这些传送所需要的微命令。
4、设计指令执行流程:数据通路确定后,就可以设计指令系统中每条指令的执行流程。
根据指令的复杂程度。
每条指令所需要的机器周期数。
对于微程序控制的计算机,根据总线结构,需要考虑哪些微操作可以安排在同一个微指令中。
5、确定微程序地址:根据后续微地址的形成方法,确定每条微程序地址及分支转移地址。
6、根据微指令格式,将微程序流程中的所有微操作进行二进制代码化,写入到控制存储器中的相应单元中。
7、组装、调试:在总装调试前,先按功能模块进行组装和分调,因为只有功能模块工作正常后,才能保证整机的运行正确。
四、实验原理1、指令系统及指令格式(1)数据格式8位。
(2)指令格式:指令系统应包括:算术逻辑运算指令、访存指令、控制转移指令、I/O指令、停机指令。
一般指令格式如下:O P-C O D E(4位)R S(2位)R D(2位)D A T A /A D D R (8位)其中R S 、R D 可以是R 0、R 1、R 2中任一个,它们的代码分别为00、01、10。
复杂模型机课程设计分工
复杂模型机课程设计分工一、教学目标本章节的教学目标是使学生掌握复杂模型的机课程设计分工的相关知识,能够理解并运用相关技能进行模型设计。
具体目标如下:1.了解复杂模型的定义及其在工程设计中的应用。
2.掌握机课程设计分工的基本原则和方法。
3.熟悉不同类型模型的设计流程和要点。
4.能够运用相关软件进行模型的建立和优化。
5.能够根据设计需求,合理分配设计任务,并进行分工协作。
6.能够进行模型的验证和修正,以满足设计要求。
情感态度价值观目标:1.培养学生的团队合作意识和能力。
2.培养学生的创新思维和解决问题的能力。
3.培养学生的工程责任感和职业操守。
二、教学内容本章节的教学内容主要包括复杂模型的定义和应用、机课程设计分工的基本原则和方法、不同类型模型的设计流程和要点。
具体内容包括:1.复杂模型的定义及其在工程设计中的应用。
2.机课程设计分工的基本原则和方法,包括分工的依据、分工的流程和分工的评估等。
3.不同类型模型的设计流程和要点,包括机械结构模型、电气控制系统模型和软件系统模型等。
三、教学方法为了达到本章节的教学目标,将采用多种教学方法进行教学,包括讲授法、案例分析法、实验法等。
具体方法如下:1.讲授法:通过讲解复杂模型的定义、机课程设计分工的基本原则和方法等理论知识,使学生掌握相关概念和理论。
2.案例分析法:通过分析实际案例,使学生了解不同类型模型的设计流程和要点,提高学生的实际操作能力。
3.实验法:通过实验室实践,使学生能够运用相关软件进行模型的建立和优化,培养学生的实际操作能力。
四、教学资源为了支持本章节的教学内容和教学方法的实施,将选择和准备以下教学资源:1.教材:选用《复杂模型机课程设计分工》教材,作为学生学习的主要参考资料。
2.参考书:推荐学生阅读相关领域的参考书籍,以拓展知识面。
3.多媒体资料:制作PPT、视频等多媒体资料,以便进行生动形象的讲解和展示。
4.实验设备:准备计算机、相关软件等实验设备,以便进行实验室实践教学。
计算机组成原理课程设计报告_基本模型机的设计与实现
本次课程设计的任务是完成一个基本模型机的设计与实现。
设计经过综合运用了以前所学计算机原理的知识,依照设计要求和指导,实现了一个基本的模型计算机。
本模型机实现的功能有:IN(输入),OUT(输出),ADD(加法),SUB(减法),STA(存数),JMP(跳转)。
设计进行开始,在了解微程序的基本格式, 及各个字段值的作用后, 按微指令格式参照指令流程图,设计出程序以及微程序,将每条微指令代码化,译成二进制代码表,并将二进制代码转换为联机操作时的十六进制格式文件。
根据机器指令系统要求,设计微程序流程图及确定微地址。
设计的加法和减法中, 被加数和被减数都由调试人员输入, 而加数和减数都从存储器中读取. 最后上机调试,各个功能运行结果正确。
关键词:基本模型机;机器指令;微指令目录1、课程设计题目-----------------------------------------------12、实验设备---------------------------------------------------13、课程设计步骤-----------------------------------------------13.1、所设计计算机的功能和用途------------------------------13.2、指令系统----------------------------------------------23.3、总体结构与数据通路------------------------------------23.4、设计指令执行流程--------------------------------------33.5、微指令代码化------------------------------------------43.6、组装和调试----------------------------------------------54、课程设计总结-----------------------------------------------75、附录-----------------------------------------------------------------------------------8附录1:数据通路图----------------------------------------------------------8 附录2:微程序流程图--------------------------------------------------------9 附录3:实验接线图------------------------------------------------------------10 附录4:实验程序及微程序---------------------------------------------------11 附录5:参考文献(资料)-----------------------------------121、课程设计题目基本模型机的设计与实现2、实验设备TDN—CM++计算机组成原理教学实验系统一台,微机,虚拟软件,排线若干。
复杂模型机实验实验报告(共9篇)
复杂模型机实验实验报告(共9篇)_复杂模型机实验报告计算机组成原理实验报告实验题目:一台模型计算机的总体设计之复杂模型机设计实验目的:(1)在掌握部件单元电路实验的基础上,进一步将其组成系统,构造一台复杂模型计算机,建立一台基本完整的整机。
(2)为其定义至少五条机器指令,并编写相应的微程序,通过联机调试,观察计算机执行指令:从取指令、指令译码、执行指令等过程中数据通路内数据的流动情况,进一步掌握整机概念。
实验设备TDN-CM+教学实验系统一套、微型计算机一台、排线若干。
实验原理:(1)数据格式及指令系统:①数据格式模型机规定数据采用定点整数补码表示,字长为8位,其格式如下:其中,第7位为符号位,数值表示范围是-27 ≤X≤27-1 ②指令格式模型机设计4大类指令共16条,其中包括算术逻辑指令、I/O 指令、访问及转移指令和停机指令。
A.算术逻辑指令设计九条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:其中,OP-CODE为操作码,RS为源寄存器,RD为目标寄存器,并规定:九条算术逻辑指令的助记符、功能和具体格式见表5.2-1。
B.访问及转移指令:模型机设计两条访问指令,即存数(STA)、取数(LDA),两条转移指令,即无条件转移(JMP)、结果为零或有进位转移(BZC),指令格式如下:其中,OP-CODE为操作码,RD为目的寄存器地址(LDA、STA 指令使用)。
D为位移量(正负均可),M为寻址模式,其定义如下:本模型机规定变址寄存器RI指定为寄存器R2。
C.I/O指令:输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:其中,addr=01时,选中“INPUT DEVICE”中的开关组作为输入设备,addr=10时,选中“OUTPUT DEVICE”中的数码块作为输出设备。
D.停机指令:停机指令格式如下:HALT指令,用于实现停机操作。
③指令系统:本模型机共有16条基本指令,其中算术逻辑指令七条,移位指令两条,访问内存指令和程序控制指令四条,输入/输出指令两条,其它指令一条。
电动发电机模型课程设计
电动发电机模型课程设计一、课程目标知识目标:1. 学生能理解电动发电机的工作原理,掌握其基本构造及各部件功能。
2. 学生能掌握能量转换的基本概念,并能够解释电动发电机中电能与机械能的转换过程。
3. 学生能运用物理公式,进行简单电路计算,理解发电机输出电压与转速之间的关系。
技能目标:1. 学生能够独立操作电动发电机模型,进行基本的组装和调试。
2. 学生通过实践,学会使用电压表、电流表等工具,进行电路参数的测量。
3. 学生能够运用问题解决策略,对发电机模型进行故障排除和性能优化。
情感态度价值观目标:1. 学生通过探索电动发电机的原理,培养对科学技术的兴趣和好奇心。
2. 学生在学习过程中,发展合作意识和团队精神,学会在团队中交流想法和解决问题。
3. 学生能够认识到能源转换技术在生活中的应用,树立节能环保的意识。
课程性质分析:本课程属于科学实践活动,结合物理知识与动手操作,旨在提高学生的科学素养。
学生特点分析:考虑到学生处于能够理解抽象概念并具备一定动手能力的年级,课程设计将注重理论与实践的结合。
教学要求分析:课程要求学生在掌握理论知识的基础上,通过实践活动深化理解,达到知识技能和情感态度价值观的全面提升。
通过具体的学习成果分解,确保教学设计和评估的有效实施。
二、教学内容1. 理论知识:- 电能的产生与转换原理。
- 电动发电机的基本结构,包括磁铁、线圈、轴承等部件的作用。
- 电路基础知识,包括欧姆定律、串联并联电路的特点。
- 发电机输出电压与转速的关系。
2. 实践操作:- 电动发电机模型的组装与调试。
- 使用电压表、电流表进行电路参数的测量。
- 探究不同因素(如转速、电流)对发电机输出电压的影响。
- 故障排查与性能优化。
3. 教学大纲:- 第一阶段:理论知识学习,介绍电动发电机的基本原理与结构。
- 第二阶段:实践操作,学生分组进行发电机模型的组装与调试。
- 第三阶段:实验探究,通过测量与数据分析,理解发电机工作原理。
计算机组成原理-简单模型机设计课设
目录摘要 (2)前言 (3)正文 (4)一、设计目的和设计原理 (4)1.1设计目的 (4)1.2设计原理 (4)二、总体设计 (7)三、详细设计 (8)3.1运算器的物理结构 (8)3.2存储器系统的组成与说明 (11)3.3指令系统的设计与指令分析 (12)3.4微程序控制器的逻辑结构及功能 (14)3.5微程序的设计与实现 (18)四、系统调试 (27)总结 (29)参考文献 (30)致谢 (31)摘要根据设计任务书要求,本设计要实现完成一个简单计算机的设计,主要设计部分有运算器,存储器,控制器以及微指令的设计。
其中运算器由运算芯片和寄存器来完成,存储器由总线和寄存器构成,使用硬布线的方式实现控制器,从而完成设计要求。
:关键词:基本模型机的设计;运算器;存储器;控制器;前言计算机组成原理是计算机科学技术学科的一门核心专业基础课程。
从课程的地位来说,它在先导课程和后续课程之间起着承上启下的作用。
计算机组成原理讲授单处理机系统的组成和工作原理,课程教学具有知识面广,内容多,难度大,更新快等特点。
此次课程设计目的就是为了加深对计算机的时间和空间概念的理解, 增强对计算机硬件和计算机指令系统的更进一步了解。
计算机组成原理课程设计目的是为加深对计算机工作原理的理解以及计算机软硬件之间的交互关系。
不仅能加深对计算机的时间和空间的关系的理解,更能增加如何实现计算机软件对硬件操作,让计算机有条不紊的工作。
正文一、设计目的和设计原理1.1设计目的融会贯通计算机组成原理课程中各章的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,特别是对硬连线控制器的认识,建立清晰的整机概念。
对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。
在掌握部件单元电路实验的基础上,进一步将其组成系统地构造一台基本模型计算机。
航模模拟飞行课程设计
航模模拟飞行课程设计一、教学目标本课程旨在通过航模模拟飞行教学,让学生了解航模飞行的基本原理和操作技巧,掌握航模飞机的结构和功能,培养学生对航空科技的兴趣和爱好。
具体目标如下:知识目标:1. 了解航模飞行的基本原理;2. 掌握航模飞机的结构和功能;3. 了解航空科技的发展趋势。
技能目标:1. 学会航模飞机的基本操作技巧;2. 能够独立完成航模飞机的组装和调试;3. 能够进行简单的航模飞行表演。
情感态度价值观目标:1. 培养学生对航空科技的兴趣和爱好;2. 培养学生勇于探索、创新的精神;3. 培养学生团队合作、分享的意识。
二、教学内容本课程的教学内容主要包括航模飞行的基本原理、航模飞机的结构和功能、航模操作技巧以及航空科技的发展趋势。
教学大纲安排如下:第1课时:航模飞行概述1.航模飞行的基本原理2.航模飞机的结构和功能第2课时:航模操作技巧1.航模飞机的基本操作2.航模飞行表演技巧第3课时:航空科技发展趋势1.航空科技的现状2.航空科技的发展趋势三、教学方法本课程采用讲授法、实践操作法和小组讨论法相结合的教学方法。
1.讲授法:用于讲解航模飞行的基本原理、航模飞机的结构和功能以及航空科技的发展趋势。
2.实践操作法:用于教授航模飞机的基本操作技巧,学生亲自动手实践,提高操作能力。
3.小组讨论法:用于探讨航空科技的发展趋势,培养学生的团队协作能力和创新思维。
四、教学资源1.教材:选用《航模飞行教程》作为主教材,系统地介绍航模飞行的基本知识和操作技巧。
2.参考书:推荐《航空科技发展史》等参考书籍,帮助学生了解航空科技的发展历程。
3.多媒体资料:制作课件和教学视频,形象生动地展示航模飞行原理和操作技巧。
4.实验设备:准备航模飞机模型、组装工具等实验设备,为学生提供实践操作的机会。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以全面客观地评价学生的学习成果。
1.平时表现:占比30%,主要评估学生在课堂上的参与度、提问回答和团队合作表现。
简单模型机的微程序设计
微指令000001001110000000001010
执行的操作是:存储器CE有效,存储器读,LDAR,转微地址:0A
微指令000001001010000000001011
执行的操作是:存储器CE有效,存储器读,LDDR1,转微地址:0B
微指令000001110000101000000001
执行的操作是:算术:A,数码管LEDB有效,写LED,ALU→B,转微地址:01
异或指令XOR RD,RS:(RS)异或(RD)→(RD)
四.进度安排
共1.5周11天的时间,具体安排如下:
1~2天:对整个课程设计的内容做详细的讲解,并辅导学生完成课程设计指导书的学习,使其掌握和理解课程设计的核心内容;
3 ~5天:学生在机房学习熟悉课程设计所使用的仿真软件,并深入了解该仿真软件所实现 的模型机的指令系统(原有的5条指令)和微程序设计方法;
6~9天:在原有5条机器指令的基础上增加实现下述各功能的机器指令,试设计相应的机器指令的格式并改写原来的微程序使其可以运行所有的机器指令;
10~11天:根据自己设计的微程序系统写出相应的课程设计实验报告;
五.成绩评定
六.正文
一、模型机的CPU及系统硬件
基本模型机的CPU及系统硬件组成如图1所示
图1 模型机的CPU及系统硬件组成
课程设计报告
计算机硬件课程设计——复杂模型机设计
硬件课程设计——复杂模型机设计一.实验目的:经过一系列硬件课程的学习及相关实验后,做一个综合的系统性的设计,这在硬件方面是一个提高,进一步培养实践能力。
二.实验内容:搭建一台8位模型机,指令系统要求有10条以上,其中包括运算类指令、传送类指令、控制转移类指令、输入输出指令、停机指令等。
三.实验思路:1、确定设计目标:确定所设计计算机的功能和用途。
2、确定指令系统:确定数据的表示格式、位数、指令的编码、类型、需要设计哪些指令及使用的寻址方式。
3、确定总体结构与数据通路:总体结构设计包含确定各部件设置以及它们之间的数据通路结构,列出各种信息传送路径以及实现这些传送所需要的微命令。
4、设计指令执行流程:数据通路确定后,就可以设计指令系统中每条指令的执行流程。
根据指令的复杂程度。
每条指令所需要的机器周期数。
对于微程序控制的计算机,根据总线结构,需要考虑哪些微操作可以安排在同一个微指令中。
5、确定微程序地址:根据后续微地址的形成方法,确定每条微程序地址及分支转移地址。
6、根据微指令格式,将微程序流程中的所有微操作进行二进制代码化,写入到控制存储器中的相应单元中。
7、组装、调试:在总装调试前,先按功能模块进行组装和分调,因为只有功能模块工作正常后,才能保证整机的运行正确。
四.实验原理:4.1指令系统及指令格式:指令系统包括:算术逻辑运算指令、访存指令、控制转移指令、I/O指令、停机指令。
一般指令格式:指令系统如: ADD RS,RD MOV DATA,RDMOV RS,[ADDR] JZ ADDRIN RD HALT其中RS 、RD为R0、R1、R2中之一,DA TA为立即数,ADDR为内存地址。
4.2微指令格式:4.3微程序地址入口的形成:P(1)是用来译码指令寄存器的I7、I6、I5、I4 ,用于一般指令,微程序入口址为OP+10HP(2)是用来译码指令寄存器的I3、I2 ,用于不同寻址方式指令,入口地址转OP+20HP(3)是用来译码判断标志位C、Z ,用于条件转移指令,条件成立转OP+30H,条件不成立转OP+20HP(4)是用来译码控制台操作的SWB、SW A ,用于手动操作。
计算机组成原理课程设-模型机的设计与实现计
计算机信息工程学院《计算机组成原理》课程设计报告题目:模型机的设计与实现专业:计算机科学与技术(网络方向)班级:15网络1班学号:2015220240134姓名:武希鑫指导教师:徐佳完成日期:2016年12月28日目录一、设计概述 (2)1.1设计目的 (2)二、设计原理及内容 (3)2.1设计基本原理 (3)2.2需执行的机器指令 (3)2.3数据通路图 (4)2.4微指令格式 (5)2.5微程序地址的转移 (5)2.6机器指令的写入、读出和执行 (6)三、设计步骤 (8)3.1编写机器指令 (8)3.2绘制微程序流程图 (8)3.3绘制微指令 (9)3.4连接实验线路 (10)3.5写指令 (10)3.5.1写微指令 (10)3.5.2写机器指令 (11)四、运行结果 (11)参考文献 (12)一、设计概述1.1设计目的随着社会科技的发展,计算机被应用到各行各业,人们步入自动化、智能化的生活阶段。
本次课程设计课题是基本模型机的设计与实现,它正体现了这一点。
利用CPU与简单模型机来实现计算机组成原理课程及实验中所学到的实验原理和编程思想,硬件设备自拟,编写指令的应用程序,用微程序控制器实现了一系列的指令功能,最终达到将理论与实践相联系。
本次设计完成了各指令的格式以及编码的设计,实现了各机器指令微代码,形成具有一定功能的完整的应用程序。
在“微程序控制器的组成与微程序设计实验”的基础上,将第一部分中的各单元组成系统,构造一台基本模型计算机。
1.掌握机器指令与微程序的对应关系。
2.掌握机器指令的执行流程。
3.掌握机器指令的微程序的编制、写入。
4.在掌握部件单元电路实验的基础上,进一步将组成系统,构成一台基本模型计算机。
5.为其定义五条机器指令,并编写相应的微程序,上机调试,掌握整机概念。
二、设计原理及内容2.1设计基本原理部件实验过程中,各部件单元的控制信号是人为模拟产生的,如运算器实验中对74LS-181芯片的控制,存储器实验中对存储器芯片的控制信号,以及几个实验中对输入设备的控制。
计算机硬件基于微程序的复杂模型机课程设计报告
硬件课程设计报告——基于微程序的复杂模型机设计硬件课程设计报告——基于微程序的复杂模型机设计一、硬件课程设计目的经过一系列硬件课程的学习及相关实验之后,做一个综合的系统性设计,这在硬件方面是一个提高,可进一步培养实践能力。
二、硬件课程设计内容搭建一台8位模型机,指令系统要求有10条以上,其中包括运算类指令、传送类指令、控制转移类指令、输入输出指令、停机指令等。
三、指令系统列表采用的一般指令格式为:7 4 3 2 1 0四、微操作流程图R1->BUSR1->BUS BUS->DR2 R1->BUS BUS->DR2 R1->BUS五、验证程序IN R0MOV R1,05HADD R1,R0MOV R1,[R0]SUB R0,R1JNZ P1MOV [R0],R0AND R0,R1P0: OUT R0P1: OR R0,R1JMP P0六、机器指令及微程序机器指令如下:$P0000 ; IN R0$P0121$P0205 ; MOV R1,05H$P0354 ; ADD R1,R0$P0441 ; MOV R1,[R0]$P0531 ; SUB R0,R1$P0660$P0731 ; JZ(JC)$P0870 ; MOV[R0],R0$P0984 ; AND R0,R1$P0A10 ; OUT R0$P3132 ;JZ(YES)$P3294 ;OR R0,R1$P33A0$P340A ;JMP微指令如下:$M00018001 ;00→01$M0101ED82 ;PC→AR,PC+1$M0200C050 ;RAM→BUS,BUS→IR,P(1)$M10001001 ;INPUT→R0$M1201ED83 ;PC→AR,PC+1$M03009001 ;RAM→BUS,BUS→R1$M1301A404 ;R0→BUS,BUS→DR1$M0401B205 ;R1→BUS,BUS→DR2$M05619A01 ;DR1减DR2→R0$M1401E206 ;R0→BUS,BUS→AR$M06000901 ;RAM→BUS,BUS→R1$M1501A407 ;R1→BUS,BUS→DR1$M0701B208 ;R0→DR2,BUS→DR2$M08959B41 ;DR1加DR2→R1$M1601ED89 ;PC→AR,PC+1$M0900E0E0 ;RAM→BUS,BUS→AR,P(3)$M3000D181 ;RAM→BUS,BUS→PC$M20018001 ;空操作$M1701E20A ;R0→BUS,BUS→AR$M0A028401 ;R0→BUS,BUS→RAM$M1801A40B ;R0→BUS,BUS→DR1$M0B01B20C ;R1→BUS,BUS→DR2$M0CB99A01 ;DR1DR2→R0$M1901A40D ;R0→BUS,BUS→DR1$M0D01B20E ;R1→BUS,BUS→DR2$M0EE99A01 ;DR1+DR2→R0$M1A01ED8F ;PC→AR,PC+1$M0F00D181 ;RAM→BUS,BUS→PC$M11030201 ;R0→OUTPUT七、实验截图八、心得体会实验总体来说还是比较容易的,就是在输入微程序和老师的测试程序时比较费力,弄不好又要重新输入(后来听说可以使用软件直接烧制)。
计算机组成原理课程设计实验报告
计算机组成原理实验报告班级:1403011学号:140301124姓名:于梦鸽地点:EII-312时间:第3批计算机组成原理与体系结构课程设计基本模型机设计与实现一.实验目的1.深入理解基本模型计算机的功能、组成知识; 2.深入学习计算机各类典型指令的执行流程;3.学习微程序控制器的设计过程和相关技术,掌握LPM_ROM 的配置方法。
4.在掌握部件单元电路实验的基础上,进一步将单元电路组成系统,构造一台基本模型计算机。
5.定义五条机器指令,并编写相应的微程序,上机调试,掌握计算机整机概念。
掌握微程序的设计方法,学会编写二进制微指令代码表。
6.通过熟悉较完整的计算机的设计,全面了解并掌握微程序控制方式计算机的设计方法。
二.实验原理1.在部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本实验将能在微过程控制下自动产生各部件单元控制信号,实现特定的功能。
实验中,计算机数据通路的控制将由微过程控制器来完成,CPU 从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
2.指令格式(1)指令格式采用寄存器直接寻址方式,其格式如下:其中IN 为单字长(8位二进制),其余为双字长指令,XX H 为addr 对应的十六进制地址码。
为了向RAM 中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序。
1,存储器读操作(KRD ):下载实验程序后按总清除按键(CLR )后,控制台SWA 、SWB 为“0 0”时,可对RAM 连续手动读入操作。
2,存储器写操作(KWE ):下载实验程序后按总清除按键(CLR )后,控制台SWA 、SWB 为“0 1”时,可对RAM 连续手动写操作。
3、启动程序(RP ):下载实验程序后按总清除按键(CLR )后,控制台SWA 、SWB 为“1 1”时,即可转入到微地址“01”号“取指令”微指令,启动程序运行。
机械课程设计模型
机械课程设计模型一、教学目标本课程的教学目标是让学生掌握机械设计的基本原理和方法,培养学生分析和解决机械工程问题的能力。
具体目标如下:1.知识目标:(1)了解机械设计的基本概念、原则和流程。
(2)掌握机械零件的主要类型、功能和设计方法。
(3)熟悉机械系统的动力分析、运动分析和受力分析。
2.技能目标:(1)能够运用CAD软件进行简单的机械设计。
(2)具备阅读和分析机械设计图的能力。
(3)学会进行机械系统性能计算和参数优化。
3.情感态度价值观目标:(1)培养学生对机械工程的兴趣和热情,提高学生的专业素养。
(2)培养学生团队合作精神,提高学生沟通与协作能力。
(3)培养学生创新意识,鼓励学生勇于探索和解决问题。
二、教学内容本课程的教学内容主要包括以下几个部分:1.机械设计基本概念和原则:机械设计的定义、目的和意义,机械设计的基本原则。
2.机械零件设计:机械零件的主要类型,轴承、齿轮、联轴器、弹簧等常见机械零件的设计方法。
3.机械系统动力分析:力学基础,动力方程的建立和求解,动力特性分析。
4.机械系统运动分析:运动方程的建立和求解,运动特性分析。
5.机械系统受力分析:受力分析方法,力的合成与分解,平衡条件。
6.机械设计实例分析:分析实际机械设计案例,了解机械设计的全过程。
为了提高教学效果,本课程将采用以下教学方法:1.讲授法:讲解基本概念、原理和设计方法,引导学生掌握机械设计的核心知识。
2.案例分析法:分析实际机械设计案例,让学生了解机械设计的全过程,提高学生的实际操作能力。
3.实验法:学生进行实验,让学生亲自动手操作,加深对机械设计原理的理解。
4.讨论法:学生进行分组讨论,培养学生的团队合作精神和沟通能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《机械设计基础》等相关教材,为学生提供系统、全面的学习资料。
2.参考书:提供相关领域的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作课件、动画等多媒体资料,生动展示机械设计的相关概念和原理。
基本模型机设计与实现实验报告
实验报告时间:2011.5.6基本模型机设计与实现一、目的要求(1)在掌握单元电路实验基础上,将各部分组成系统,构成一台基本模型计算机。
(2)为其定义五条机器指令,并编写相应的微程序,具体上机调试掌握整机概念。
二、实验仪器与试剂计算机组成原理实验箱。
三、实验原理1、实验中所用的基本模型机实验原理如图1所示。
图1 基本模型机实验原理框图四、实验步骤1、写程序。
方法一:手动写入①将机器指令对应的微代码正确写入2816中。
②使用控制台KWE和KRD进行机器指令的装入和检查。
方法二:联机读/写程序(略)2、运行程序。
单步运行程序、连续运行。
五、实验现象、结果记录及整理首先验证微控制器的存储特性。
将编程开关置为“写入”状态,写入如表2微地址为06~0D的微代码。
每写入一条指令,按一下“启动运行”开关。
再将微地址和总清开关置0,编程开关置为“读”状态,即可验证是否存储正确。
若有错误,则需检查连线或者是重新输入。
经实验,成功显示。
最后,将编程开关置为“运行”状态,即可运行我们写入的微程序。
经实验,结果显示正确。
六、分析讨论与思考题解答(两个解答选择一个填写,也可以自己修改一下填写)解答一:通过这次实践,不仅让我对计算机的基本组成、简单运算器的数据传送通路组成、静态随机存取存储器RAM工作特性及数据的读写方法、时序信号发生电路组成原理、微程序控制器的设计思想和组成原理、微程序的编制、写入过程有了进一步的了解, 也让我觉得自己的动手能力有了很大的提高;自信心也增强了,在课程设计中自己动脑子解决遇到的问题,书本上的知识有了用武之地,这巩固和深化了自己的知识结构。
解答二:通过这次实践,我相信,只要自己在每一次实践中都能仔细思考,课程设计其实都不会很难,关键在于自己能不能认真思考,能不能亲自动手做实验,而不是想着其他人的劳动果实,其次你还要多操作,只有多操作才能从中发现问题,才能及时向老师和同学请教,解决问题,从而更好的掌握书本中知识。
RISC模型机的设计及实现
《计算机组成与系统结构》课程设计报告报告题目:RISC模型机的设计及实现作者所在系部:计算机科学与工程系作者所在专业:计算机科学与技术作者所在班级:0作者姓名:0指导教师姓名:0完成时间:0目录目录 (1)内容摘要 (2)关键词 (2)课程设计任务书 (3)第1章绪论 (4)1.1 设计地点 (4)1.2 设计目的 (4)1.3 设计内容 (4)1.4 实验的环境: (4)第2章基础知识 (5)2.1 概述 (5)2.2 主要技术要点 (6)2.2.1 ALU部件 (6)2.2.2. 存储体 (6)2.2.3 控制器 (6)第3章系统设计与实现 (7)3.1 模型机结构 (7)3.2 程序设计原理 (7)3.2.1 数据格式及指令格式 (7)3.2.2 指令系统 (8)3.3 机器指令设计 (9)3.4 联机实验 (10)3.4.1 实验连线 (10)3.4.2 实验步骤 (10)3.4.3 实验测试: (12)第4章实验总结 (13)参考资料 (13)内容摘要计算机系统是包括计算机硬件和软件的一个整体,两者不可分割,但处于不同的层次上。
计算机系统的层次结构模型中,第0层是硬件内核(逻辑线路),第1、2层是指令系统和实现该指令系统所采用的技术(组合逻辑技术、微程序控制技术、PLA控制技术),第3、4层为系统软件,第5层为应用软件,第6层是系统分析。
计算机组成原理涉及到的是第0、1、2这3层。
本次计算机组成原理的课程设计主要是实现一个较完整的模型机,在实验中了解,熟悉完整的单台计算机基本组成原理,掌握计算机中数据表示方法、运算方法、运算器的组成、控制器的实现、存储器子系统的结构与功能、输入/输出系统的工作原理与功能。
以及增强自己的动手能力。
课设主要依托组成原理实验室设备EL-JY-II来完成的,在实验当中利用了实验设备厂商开发的工具以及部分源程序代码。
在此说明。
在实验中我要感谢杨老师的辛勤付出,每天来到实验室指导我们进行实验,在此特别提出感谢。
计算机硬件课程设计(微程序)
1.指令系统及指令格式 1.指令系统及指令格式
指令系统应包括:算术逻辑运算指令、访存指令、控制转 移指令、I/O指令、停机指令。一般指令格式如下: 移指令、I/O指令、停机指 0
OP-CODE DATA / RS ADDR RD
指令系统如: 指令系统如: ADD RS,RD MOV DATA,RD MOV RS,[ADDR] JZ ADDR IN RD HALT 其中RS RD为R0、R1、R2中之一( 其中RS 、RD为R0、R1、R2中之一(为00,01,10) ,DATA为立即数,ADDR DATA为立即数,ADDR 为内存地址。
七、具体要讲的几个问题
1、指令格式、指令系统:讲各种指令格式,寻址方式 指令格式、指令系统:讲各种指令格式, 举例讲微操作流程, RS,RD: 2、举例讲微操作流程,如ADD RS,RD: 举例讲微指令编写: 3、举例讲微指令编写: 微程序的入口地址形成及微指令的后续地址: 4、微程序的入口地址形成及微指令的后续地址: 装载微程序的格式: 5、装载微程序的格式: 模型机的时序电路: 6、模型机的时序电路: 运行模型机:运行前先要复位( RESET或拨动CLR开关 或拨动CLR开关1 7、运行模型机:运行前先要复位(按RESET或拨动CLR开关1-0),按单微指令按钮进行单步调试 按单微指令按钮进行单步调试, 1),按单微指令按钮进行单步调试,按连续按钮进行连续运 行; 模型机电路图:双击CMPP20 在帮助中找到“ CMPP20, 8 、模型机电路图:双击CMPP20,在帮助中找到“复杂模型机 图” 9、模型机调度过程中常见问题及解决办法
寄存器地址译码电路
5.微程序装载格式 5.微程序装载格式
机器指令格式: 机器指令格式: $Pxxxx 微指令格式: 微指令格式: $Mxxxxxxxx
《计算机组成原理》教学模型机的设计与实现
充当简单的外设 。各控制信号都是断开的, 没有连接, 目的就是让学生 自己连接 , 以完成演示性和验证性的 实验 , 同时也为了让学生设计 出各式各样的整机电路。
本实验装置利用 了现有实验箱的单脉冲发生器 、 连续脉 冲发生器 ( 、 H) 电平检测器 、 电源电路和电平发 生器( 0K 5 。所有控制信号的高低 电平均可由开关 K . 1 提供 。 I . 1) ( 0K 5
2 运算执行部件和数据通路模块的设计与实现
如图 1 所示 , D 由L E数据指示器( 0B 发光二极管)7 L 1 1数据输入开关 D P 、4 S 7 、4 S7 B -7 、 S8 、 4 I3 7L 337L 23 等器件组成。它能提供不同指令所要求的各种数据通路和 1至 4 个通用寄存器 。当虚线连通 时, 整机 内部
学生手动操作完成数据传输实验及运算功能验证实验 , 还可作为整机 的执行部件。
图 1 实验装置 系统原理图
3 主存部件和读 写逻辑 电路模块 的设计与实现
存储器读写有 时序要求 。计算机大部 分的时间都在与存储器 打交道 。进行 一次存储器 的读写 , 需要
T 、2T 、4 1T 、 3T 这四个 T周期 , 即一个 C U周期( P 也称为机器周期 ) 。在对存储器读写的过程中要随时注意 当前所处的状态 , 否则不能正常进行读写操作。电路的工作原理是在 1 以前要给地址锁存器 A R准备好地
收稿 日期:0 7 1 一 7 20 — O 2 作者简介: 明海( 9 3 , , 梁 1 6 一) 男 汉族 广西扶绥人 , 广西工学院计算机工程系讲1 卷 8
片 7L 11 4 S 8 组成E 。它的运算对象是挂在总线上的两个暂存器 D 1 D 2. 4 S 8 的具体运算功能由 ¨ R 和 R 7L 11 控制信号 ¥ S S S 和 M、 N决定。它的逻辑功能表参见有关的教材[ 。运算器的进位输出被保存在标志 3 2 10 C ¨ 寄存器中, 可供操作控制器使用。如果学生所设计的整机不需要实现所有的运算功能, 只需实现几种常用的 算术和逻辑运算 , 那么某些控制信号也可以接到固定电位上 , 不必加以控制。本 电路模块可单独使用 , 支持
简单模型机的微程序设计
《计算机组成原理课程设计》简单模型机的微程序设计学生姓名:学号:系别:班级:专业:指导教师:一. 课程设计的目的1.计算机的硬件基本组成2.计算机中机器指令的设计3.计算机中机器指令的执行过程4.微程序控制器的工作原理5.微指令的格式设计原则在此基础上设计可以运行一些基本机器指令的微程序的设计二. 课程设计的内容和要求1.通过使用作者开发的微程序分析和设计仿真软件,熟悉介绍的为基本模型机而设计的微程序的执行过程。
必须充分理解并正确解释下些问题:(1)微程序中的微指令的各个字段的作用。
哪些字段是不译码的,哪些字段是直接译码的,哪些字段又可以看成是字段间接编码的。
答:直接译码的是A、B、C字段;不译码的是S3~B0字段;而间接编码的是uA6~uA1。
(2)微程序中的微指令是否是顺序执行的,如果不是,那么次地址是如何产生的。
什么情况下,次地址字段才是将要执行的微指令的地址。
答:微程序中的微指令不是顺序执行的,如果遇到P(1)~P(4)测试时,则根据机械指令,uA5~uA其他有关部件的内容,产生下一条微指令在空存中的微地址,是微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行等。
例如遇到P(1)测试,则下一条微指令在空存中的微地址的4~1位是用次地址字段NA(4~1位)或指令寄存器IR(8~5位)所产生,下一条微指令的微地址仍为 NA字段的6~5位。
如果没有遇到P(1)~P(4)测试的话,那么次地址即为该微指令地址字段所指向的微地址。
(3)在微程序中如何根据机器指令中的相关位实现分支,据此,在设计机器指令时应如何避免和解决与其它指令的微指令的微地址冲突。
答:微程序中是根据测试程序的机器指令中的8~5位和微程序中后六位进行“或”运算来实现分支的。
避免和解决与其它指令的微指令的微地址冲突的方法就是不用已经被其它微指令用过的微地址。
(4)哪些微指令是执行所有指令都要用到的。
答:00:00000101111011011000000101:000001001100000001000000(5)解释一条机器指令的微程序的各条微指令的微地址是否连续?这些微指令的微地址的安排的严重原则是什么?答:不连续。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
哈尔滨理工大学软件学院课程设计报告课程片上计算机系统题目 CPU模型机设计班级集成12-1班专业集成电路设计与集成系统学生张铭学号 1214020130指导教师崔林海2014年07 月02日索引:1.课程设计的目的及要求 (3)2.处理器的设计思想和设计内容 (3)3.设计处理器的结构和实现方法 (3)4.模型机的指令系统 (4)5.处理器的状态跳转操作过程 (4)6. CPU的VHDL代码 (7)7. 模型机在Quartus II环境下的应用 (32)8. 仿真波形 (33)9. 课程设计的总结 (35)一.课程设计的目的及要求:1.目的:了解Quartus II软件的应用,学习Quartus II环境下设计CPU的基本过程;掌握CPU设计代码的含义以及CPU的工作原理;了解CPU与内存RAM 间的连接数据的传输过程;学习在Quartus II环境下建立模型机的具体过程。
融会贯通本课程各章节的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识。
学习设计和调试计算机的基本步骤和方法,提高使用软件仿真工具和集成电路的基本技能。
培养科学研究的独立工作能力,取得工程设计与组装调试的实践和经验。
2.要求:以《计算机组成与设计》书中123页的简化模型为基础,更改其指令系统,形成设计者的CPU,在Quartus II环境下与主存连接,调试程序,观察指令的执行是否达到设计构想。
二.处理器的设计思想和设计内容:处理器的字长为16b;包括四种指令格式,格式1、格式2、格式3的指令字长度为8b,格式4的指令字长度为16b;处理器内部的状态机包括6个状态。
关于CPU:操作码5位,一共设计20条指令,主要包括空操作指令、中断指令、加法指令、减法指令、三种逻辑运算指令、循环移位操作指令,数据传输指令,转移类指令,特权指令,取反,取绝对值等等。
关于RAM:地址线设置成16bits,主存空间为64words。
书中原CPU的主要修改:(1)模型机CPU指令集中的逻辑左移与逻辑右移改成逻辑循环右移与逻辑循环左移。
(2)模型机CPU指令集中的or改成not。
(3)模型机CPU指令的执行流程及状态跳转。
三.设计处理器的结构和实现方法:(指令格式)格式1:寄存器寻址方式15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0内存(2的12次方)四.模型机的指令系统五.处理器的状态跳转操作过程:(二)、简单指令执行状态描述读内存指令:(1)St_0:取指令执行以下操作;1)M_address←(MAR) 把指令地址送到地址总线2)令Write-Read←’0’向内存发出读命令(取指令)3)IR(15..0)←M_data_in(15..0)将读出的指令加载于IR(15..0)4)PC=PC+1 至此指令已经全部取出,存在于IR(15..0),为取下一条指令准备地址(2)St_1:NULL 直接跳转到下一状态(3)St_2:MAR←IR(11..0)将数据地址加载于MAR(4)St_3:1)M_address←(MAR)把数据地址送到地址总线2)令Write-Read←’0’向内存发出读命令(取数据)3)MAR←PC 把下一条指令地址加载于MAR(5)St_4:1)R0←M_data_in 将来自内存的数据加载于R0,本指令执行完毕2)M_address←(MAR) 把下一条指令地址送到地址总线3)令Write-Read←’0’向内存发出读命令(取下一条指令)4)下一状态跳转到St_0无条件转移指令(1)St_0:取指令执行以下操作;1)M_address←(MAR) 把指令地址送到地址总线2)令Write-Read←’0’向内存发出读命令(取指令)3)IR(15..0)←M_data_in(15..0)将读出的指令加载于IR(15..0)4)PC=PC+1 (此语句无用,因为程序计数器后续重新复制达到无条件转移目的)(2)St_1:NULL 直接跳转到下一状态(3)St_2:1)MAR←IR(11..0) 将转移目标地址加载于MAR2)PC←IR(11..0) 将转移目标地址加载于PC(4)St_3:1) M_address←(MAR) 把下一条指令地址送到地址总线2)令Write-Read←’0’向内存发出读命令(取下一条指令)3)下一状态跳转到St_0六.CPU的VHDL代码:LIBRARY ieee;USE ieee.std_logic_1164.ALL;PACKAGE namespack ISCONSTANT idle : std_logic_vector(4 DOWNTO 0) :="00000";CONSTANT load : std_logic_vector(4 DOWNTO 0) :="00001";CONSTANT move : std_logic_vector(4 DOWNTO 0) :="00010";CONSTANT addP : std_logic_vector(4 DOWNTO 0) :="00011";CONSTANT subp : std_logic_vector(4 DOWNTO 0) :="00100";CONSTANT andp : std_logic_vector(4 DOWNTO 0) :="00101";CONSTANT orp : std_logic_vector(4 DOWNTO 0) :="00110";CONSTANT xorp : std_logic_vector(4 DOWNTO 0) :="00111";CONSTANT shrp : std_logic_vector(4 DOWNTO 0) :="01000";CONSTANT shlp : std_logic_vector(4 DOWNTO 0) :="01001";CONSTANT swap : std_logic_vector(4 DOWNTO 0) :="01010";CONSTANT jmp : std_logic_vector(4 DOWNTO 0) :="01011";CONSTANT jz : std_logic_vector(4 DOWNTO 0) :="01100";CONSTANT read : std_logic_vector(4 DOWNTO 0) :="01101";CONSTANT write : std_logic_vector(4 DOWNTO 0) :="01110";CONSTANT stop : std_logic_vector(4 DOWNTO 0) :="01111";CONSTANT comp : std_logic_vector(4 DOWNTO 0) :="10000";CONSTANT notp : std_logic_vector(4 DOWNTO 0) :="10001";CONSTANT clear : std_logic_vector(4 DOWNTO 0) :="10010";CONSTANT absp : std_logic_vector(4 DOWNTO 0) :="10011";CONSTANT modp : std_logic_vector(4 DOWNTO 0) :="10100";END namespack;LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;USE spack.ALL;ENTITY cpu ISPORT(reset : IN std_logic; --清零信号低有效clock : IN std_logic; --时钟信号Write_Read: OUT std_logic; --读写信号,'1'为写M_address: OUT std_logic_vector(10 DOWNTO 0); --地址线M_data_in: IN std_logic_vector(7 DOWNTO 0); --数据输入线M_data_out: OUT std_logic_vector(7 DOWNTO 0); --数据输出线overflow: OUT std_logic --溢出标志);END cpu;ARCHITECTURE RTL OF cpu ISSIGNAL IR: std_logic_vector(15 DOWNTO 0); --指令寄存器SIGNAL MDR: std_logic_vector(7 DOWNTO 0); --数据寄存器SIGNAL MAR: std_logic_vector(10 DOWNTO 0); --地址寄存器SIGNAL status: integer RANGE 0 TO 6; --状态寄存器BEGINstatus_change: PROCESS(reset, clock, status )BEGINIF reset = '0' THEN status <= 0 ; -- 进入初始状态ELSIF clock'EVENT AND clock = '0' THENCASE status ISWHEN 0 =>status <= 1;WHEN 1 =>IF IR(15 DOWNTO 11)= Stop THENstatus <= 1;ELSEstatus <= 2;END IF;WHEN 2 =>CASE IR(15 DOWNTO 11) ISWHEN Swap|Jmp|Jz|Read|Write =>status <= 3;WHEN OTHERS =>status <= 0;END CASE;WHEN 3 =>IF IR(15 DOWNTO 11)= Swap THENstatus <= 0;ELSEstatus <= 4;END IF;WHEN 4 =>status <= 5;WHEN 5 =>CASE IR(15 DOWNTO 11) ISWHEN Read|Write =>status <= 6;WHEN OTHERS =>status <= 0;END CASE;WHEN 6=>CASE IR(15 DOWNTO 11) ISWHEN Comp=>status<=0;WHEN NotP=>status<=0;WHEN Clear=>status<=0;WHEN AbsP=>status<=0;WHEN ModP=>status<=0;WHEN OTHERS=>status <= 0;END CASE;END CASE;END IF;END PROCESS status_change;seq: PROCESS(reset,clock)V ARIABLE PC:std_logic_vector(10 DOWNTO 0);--程序计数器V ARIABLE R0,R1,R2,R3: std_logic_vector(7 DOWNTO 0); --通用寄存器V ARIABLE A: std_logic_vector(7 DOWNTO 0); --临时寄存器V ARIABLE RC: std_logic_vector(7 DOWNTO 0); --比较结果寄存器V ARIABLE RM: std_logic_vector(7 DOWNTO 0); --取模结果寄存器V ARIABLE temp: std_logic_vector(8 DOWNTO 0);--临时变量BEGINIF(reset='0') THEN -- 进入初始状态IR <= (OTHERS=>'0');PC := (OTHERS=>'0');R0 := (OTHERS=>'0');R1 := (OTHERS=>'0');R2 := (OTHERS=>'0');R3 := (OTHERS=>'0');A := (OTHERS=>'0');MAR <= (OTHERS=>'0');MDR <= (OTHERS=>'0');ELSIF(clock'event AND clock='1') THENoverflow <= '0';CASE status ISWHEN 0=> --状态0IR <= M_data_in & "00000000"; --取指令PC := PC+1; --程序计数器加1WHEN 1=> --状态1IF (IR(15 DOWNTO 11) /= Stop) THENMAR <= PC;END IF;CASE IR(15 DOWNTO 11) ISWHEN Load =>R0:="0000" & IR(10 DOWNTO 7);WHEN Move => --Move Rx,Ry;CASE IR(10 DOWNTO 7) ISWHEN "0001"=> R0:=R1;WHEN "0010"=> R0:=R2;WHEN "0011"=> R0:=R3;WHEN "0100"=> R1:=R0;WHEN "0110"=> R1:=R2;WHEN "0111"=> R1:=R3;WHEN "1000"=> R2:=R0;WHEN "1001"=> R2:=R1;WHEN "1011"=> R2:=R3;WHEN "1100"=> R3:=R0;WHEN "1101"=> R3:=R1;WHEN "1110"=> R3:=R2;WHEN OTHERS=> NULL;END CASE;WHEN Shrp => --逻辑右移1位;CASE IR(10 DOWNTO 9) ISWHEN "00"=>R0:='0'&R0(7 DOWNTO 1);WHEN "01"=>R1:='0'&R1(7 DOWNTO 1);WHEN "10"=>R2:='0'&R2(7 DOWNTO 1);WHEN OTHERS=>R3:='0'&R3(7 DOWNTO 1);END CASE;WHEN Shlp => --逻辑左移1位;CASE IR(10 DOWNTO 9) ISWHEN "00"=>R0:=R0(6 DOWNTO 0)&'0';WHEN "01"=>R1:=R1(6 DOWNTO 0)&'0';WHEN "10"=>R2:=R2(6 DOWNTO 0)&'0';WHEN OTHERS=>R3:=R3(6 DOWNTO 0)&'0';END CASE;WHEN Addp|Subp|Andp|Orp|Xorp|Swap =>CASE IR(8 DOWNTO 7) ISWHEN "00"=> A:=R0;WHEN "01"=> A:=R1;WHEN "10"=> A:=R2;WHEN OTHERS=> A:=R3;END CASE;WHEN OTHERS => NULL;END CASE;WHEN 2=> --状态2CASE IR(15 DOWNTO 11) ISWHEN Addp => --Rx:= Rx+A;CASE IR(10 DOWNTO 9) ISWHEN "00"=>temp := (R0(7) & R0(7 DOWNTO 0)) + (A(7) & A(7 DOWNTO 0));R0:=temp(7 DOWNTO 0);overflow <= temp(8) XOR temp(7);WHEN "01"=>temp :=(R1(7) & R1(7 DOWNTO 0)) + (A(7) & A(7 DOWNTO 0));R1:=temp(7 DOWNTO 0);overflow <= temp(8) XOR temp(7);WHEN "10"=>temp :=(R2(7) & R2(7 DOWNTO 0)) + (A(7) & A(7 DOWNTO 0));R2:=temp(7 DOWNTO 0);overflow <= temp(8) XOR temp(7);WHEN OTHERS=>temp :=(R3(7) & R3(7 DOWNTO 0)) + (A(7) & A(7 DOWNTO 0));R3:=temp(7 DOWNTO 0);overflow <= temp(8) XOR temp(7);END CASE;WHEN Subp => --Rx:= Rx-A;CASE IR(10 DOWNTO 9) ISWHEN "00"=>temp :=(R0(7) & R0(7 DOWNTO 0)) + NOT(A(7) & A(7 DOWNTO 0)) + 1;R0:=temp(7 DOWNTO 0);overflow <= temp(8) XOR temp(7);WHEN "01"=>temp :=(R1(7) & R1(7 DOWNTO 0)) + NOT(A(7) & A(7 DOWNTO 0)) + 1;R1:=temp(7 DOWNTO 0);overflow <= temp(8) XOR temp(7);WHEN "10"=>temp :=(R2(7) & R2(7 DOWNTO 0)) + NOT(A(7) & A(7 DOWNTO 0)) + 1;R2:=temp(7 DOWNTO 0);overflow <= temp(8) XOR temp(7);WHEN OTHERS=>temp :=(R3(7) & R3(7 DOWNTO 0)) + NOT(A(7) & A(7 DOWNTO 0)) + 1;R3:=temp(7 DOWNTO 0);overflow <= temp(8) XOR temp(7);END CASE;WHEN Andp => -- Rx:= Rx AND A;CASE IR(10 DOWNTO 9) ISWHEN "00"=>R0:=R0 and A;WHEN "01"=>R1:=R1 and A;WHEN "10"=>R2:=R2 and A;WHEN OTHERS=>R3:=R3 and A;END CASE;WHEN Orp => -- Rx := Rx OR A;CASE IR(10 DOWNTO 9) ISWHEN "00"=>R0:=R0 or A;WHEN "01"=>R1:=R1 or A;WHEN "10"=>R2:=R2 or A;WHEN OTHERS=>R3:=R3 or A;END CASE;WHEN Xorp => --Rx=Rx XOR A;CASE IR(10 DOWNTO 9) ISWHEN "00"=>R0:=R0 XOR A;WHEN "01"=>R1:=R1 XOR A;WHEN "10"=>R2:=R2 XOR A;WHEN OTHERS=>R3:=R3 XOR A;END CASE;WHEN Swap => --Swap: Rx to Ry;CASE IR(10 DOWNTO 7) ISWHEN "0100"=>R0:=R1;WHEN "1000"=>R0:=R2;WHEN "1100"=>R0:=R3;WHEN "0001"=>R1:=R0;WHEN "1001"=>R1:=R2;WHEN "1101"=>R1:=R3;WHEN "0010"=>R2:=R0;WHEN "0110"=>R2:=R1;WHEN "1110"=>R2:=R3;WHEN "0111"=>R3:=R1;WHEN "1011"=>R3:=R2;WHEN "0011"=>R3:=R0;WHEN OTHERS=>NULL;END CASE;WHEN OTHERS => NULL;END CASE;WHEN 3=> --状态3CASE IR(15 DOWNTO 11) ISWHEN "01010"=> --SwapCASE IR(10 DOWNTO 9) ISWHEN "00"=> R0:=A;WHEN "01"=> R1:=A;WHEN "10"=> R2:=A;WHEN OTHERS=> R3:=A;END CASE;WHEN Jmp|Jz|Read|Write =>IR(7 DOWNTO 0)<= M_data_in; -- 取双字节指令的后半部PC := PC+1;WHEN OTHERS => NULL;END CASE;WHEN 4=> --状态4CASE IR(15 DOWNTO 11) ISWHEN Jmp =>PC := IR(10 DOWNTO 0);MAR <= IR(10 DOWNTO 0);WHEN Jz =>IF(R0="00000000") THENPC := IR(10 DOWNTO 0);MAR <= IR(10 DOWNTO 0);ELSEMAR <= PC;END IF;WHEN Read =>MAR <= IR(10 DOWNTO 0);WHEN Write =>MAR <= IR(10 DOWNTO 0);MDR <= R0;WHEN OTHERS => NULL;END CASE;WHEN 5=> --状态5MAR <= PC;WHEN 6=> --状态6CASE IR(15 DOWNTO 11) ISWHEN Comp => --比较CASE IR(10 DOWNTO 7) ISWHEN "0001"=> A:=R1-R0;IF A(7 DOWNTO 0)="00000000" THENRC(7 DOWNTO 6):="00"; --相等ELSIF A(7)='1' THENRC(7 DOWNTO 6):="01"; --R0>R1ELSE RC(7 DOWNTO 6):="10"; --R0<R1END IF;WHEN "0010"=> A:=R2-R0;IF A(7 DOWNTO 0)="00000000" THENRC(7 DOWNTO 6):="00";ELSIF A(7)='1' THENRC(7 DOWNTO 6):="01";ELSE RC(7 DOWNTO 6):="10" ;END IF;WHEN "0011"=> A:=R3-R0;IF A(7 DOWNTO 0)="00000000" THENRC(7 DOWNTO 6):="00";ELSIF A(7)='1' THENRC(7 DOWNTO 6):="01";ELSE RC(7 DOWNTO 6):="10";END IF;WHEN "0100"=> A:=R0-R1;IF A(7 DOWNTO 0)="00000000" THENRC(7 DOWNTO 6):="00";ELSIF A(7)='1' THENRC(7 DOWNTO 6):="01";ELSE RC(7 DOWNTO 6):="10";END IF;WHEN "0110"=> A:=R2-R1;IF A(7 DOWNTO 0)="00000000" THENRC(7 DOWNTO 6):="00";ELSIF A(7)='1' THENRC(7 DOWNTO 6):="01";ELSE RC(7 DOWNTO 6):="10";END IF;WHEN "0111"=> A:=R3-R1;IF A(7 DOWNTO 0)="00000000" THENRC(7 DOWNTO 6):="00";ELSIF A(7)='1' THENRC(7 DOWNTO 6):="01";ELSE RC(7 DOWNTO 6):="10";END IF;WHEN "1000"=> A:=R0-R2;IF A(7 DOWNTO 0)="00000000" THENRC(7 DOWNTO 6):="00";ELSIF A(7)='1' THENRC(7 DOWNTO 6):="01";ELSE RC(7 DOWNTO 6):="10";END IF;WHEN "1001"=> A:=R1-R2;IF A(7 DOWNTO 0)="00000000" THENRC(7 DOWNTO 6):="00";ELSIF A(7)='1' THENRC(7 DOWNTO 6):="01";ELSE RC(7 DOWNTO 6):="10";END IF;WHEN "1011"=> A:=R3-R2;IF A(7 DOWNTO 0)="00000000" THENRC(7 DOWNTO 6):="00";ELSIF A(7)='1' THENRC(7 DOWNTO 6):="01";ELSE RC(7 DOWNTO 6):="10";END IF;WHEN "1100"=> A:=R0-R3;IF A(7 DOWNTO 0)="00000000" THENRC(7 DOWNTO 6):="00";ELSIF A(7)='1' THENRC(7 DOWNTO 6):="01";ELSE RC(7 DOWNTO 6):="10";END IF;WHEN "1101"=> A:=R1-R3;IF A(7 DOWNTO 0)="00000000"THENRC(7 DOWNTO 6):="00";ELSIF A(7)='1' THENRC(7 DOWNTO 6):="01";ELSE RC(7 DOWNTO 6):="10";END IF;WHEN "1110"=> A:=R2-R3;IF A(7 DOWNTO 0)="00000000" THENRC(7 DOWNTO 6):="00";ELSIF A(7)='1' THENRC(7 DOWNTO 6):="01";ELSE RC(7 DOWNTO 6):="10";END IF;WHEN OTHERS=> NULL;END CASE;WHEN Notp => --取反CASE IR(10 DOWNTO 9) ISWHEN "00"=>R0:=Not R0;WHEN "01"=>R1:=Not R1;WHEN "10"=>R2:=Not R2;WHEN "11"=>R3:=Not R3;END CASE;WHEN Clear => --清空IR <= (OTHERS=>'0');PC := (OTHERS=>'0');R0 := (OTHERS=>'0');R1 := (OTHERS=>'0');R2 := (OTHERS=>'0');R3 := (OTHERS=>'0');A := (OTHERS=>'0');MAR <= (OTHERS=>'0');MDR <= (OTHERS=>'0');overflow <= '0';WHEN Absp => --取绝对值CASE IR(10 DOWNTO 9) ISWHEN "00"=>IF(R0(7)='1') THENR0:='0'&R0(6 DOWNTO 0);ELSER0:=R0;END IF;WHEN "01"=>IF(R1(7)='1') THENR1:='0'&R1(6 DOWNTO 0);ELSER1:=R1;END IF;WHEN "10"=>IF(R2(7)='1') THENR2:='0'&R2(6 DOWNTO 0);ELSER2:=R2;END IF;WHEN "11"=>IF(R3(7)='1') THENR3:='0'&R0(6 DOWNTO 0);ELSER3:=R3;END IF;END CASE;WHEN OTHERS => NULL;END CASE;END CASE;END IF;END PROCESS seq;M_address <= MAR;M_data_out <= MDR;Write_Read <= '1' WHEN reset = '1' AND status = 5 AND IR(15 downto 12) = WriteELSE '0' ;END RTL;七.模型机在Quartus II环境下的应用:步骤:1.建立工程:工程名cpu2.编写cpu的VHDL代码,将其添加到工程3.生成cpu的符号图4.建立内存数据的mif文件5.生成16bits的ram6.建立computer的block进行编译7.对computer进行功能模拟8.分析仿真波形八.仿真波形:1)cpu的编译报告2)computer(由cpu和ram组成)的连接图3)功能模拟的波段九.课程设计的总结:通过了这次课程设计我发现自己对cpu的组成与工作有了更深刻的认识。