计算机组成原理—模型机设计报告
计算机组成原理模型计算机设计实验报告

洛阳理工学院实验报告系别 计算机与信息工程学院班级学号姓名课程名称计算机组成与系统结构实验日期实验名称 实验八 模型计算机设计 成绩实验条件:1、 DJ-CPTH 超强型组成原理实验箱2、 PC 机一台实验要求:设计模型计算机,并利用CPTH 实验仪的上位机软件控制该模型计算机,实现模型机的数据传送功能。
实验目的:1、掌握微程序控制模型计算机的基本工作原理和设计方法。
2、掌握微程序存储器uM 的控制方法和上位机软件的使用方法。
实验步骤:(1)运行CPTH ,新建文件。
(2)录入下表中第3列,保存为EX1.ASM 。
(3)单击菜单“汇编”的“汇编下载”。
(4)按“单步”运行,观察A /R0/ R1的变化,记录变化情况。
(5)按“复位”。
(6)按“单步”运行,打开“跟踪”标签,观察微程序和微地址变化,按下表记录变化情况,并填写每一步的功能。
程序地址 机器码 机器指令 功能00 01 7C 12 mov a,#12h 传送12H 到A 02 80 mov r0,a 传送12到R0 03 81 mov r1,a 传送12到R1 04 057C 1Emov a,#30传送30到AEnd状态PC EM IR 微程序功能T0 01 7C 7C CBFFFF 取出00号单元指令,打入IRT1 01 7C 7C C7FFF7 传送12H到AT0 03 80 80 CBFFFF 取出02号单元指令,打入IRT1 03 80 80 FFFB9F 传送12H到R0T0 04 81 81 CBFFFF 取出03号单元指令,打入IRT1 04 81 81 FFFB9F 传送12H到R1T0 05 7C 7C CBFFFF 取出04号单元指令,打入IRT1 05 7C 7C C7FFF7 传送30到AT0 07 00 00 CBFFFF 取出结束指令,同时结束运行实验过程如图所示:实验总结:通过这次实验我掌握了微程序控制模型计算机的基本工作原理和设计方法也掌握了微程序存储器uM的控制方法和上位机软件的使用方法。
计算机组成原理课程设计(模型机)

模型机详细介绍1. 模型机的结构模型机主要由运算器、控制器、存储器、数据总线、输入输出和时序产生器组成,模型机的结构图如图1所示。
图1 模型机结构图(1)运算器。
运算器又由运算逻辑单元、数据暂存器、通用寄存器组成。
在图1模型机的结构图中,ALU、ALU_G和74299组成运算逻辑单元,其中ALU是由2个4位的74LS181串联成8位的运算器,ALU_G是ALU-G 实现用于控制ALU的运算结果的输出,74299用74LS299实现用于对ALU 的运算结果进行移位运算;数据暂存器在图1中由DR1和DR2组成,DR1和DR2都是用74LS273实现,它们用于存储运算器进行运算的两个操作数;通用寄存器在图1中由R0、R1和R2组成,R0、R1和R2都是用74LS374实现,它们用作目的寄存器和源寄存器。
(2)控制器。
控制器由微程序控制器、指令寄存器、地址寄存器和程序计数器组成。
在图1中微程序控制器表示为MControl,它里面存放了指令系统对应的全部微程序,微程序控制器是由微控制存储器和3个138译码器实现(A138、B138和P138),用于产生控制信号来控制各个组件的工作状态;在图1中指令寄存器表示为IR,指令寄存器由一个74LS273实现,用于存放当前正在执行的指令;在图1中地址寄存器表示为AR,地址寄存器由一个74LS273实现,在读取或者写入存储器时用于指明要读取或写入的地址;程序计数器在图1中由PC_G和PC组成,其中PC是由八位二进制同步计数器实现,用于产生程序指针pc的下一个值,PC_G由PC-G实现,用于存储程序的程序指针pc的值。
(3)存储器。
存储器在图1中表示为MEN,存储器用静态随机存储器6116实现,用来存储用户程序和数据。
(4)数据总线。
数据总线用于连接运算器、存储器、输入输出等模块,数据总线由ccp_DataBus实现。
(5)输入输出。
输入输出类似于键盘和显示器。
(6)时序产生器。
计算机组成原理课程设计报告(基本模型机设计与实现)

本科生课程实习学生姓名学生学号所在专业所在班级指导教师职称时间成绩目录一、课程设计题目 (2)二、课程设计使用的实验设备 (2)三、课程设计内容与步骤 (2)1、所设计模型机的功能与用途 (3)2、数据通路图 (4)3、微代码定义 (4)4、微程序流程图 (5)5、微指令二进制代码 (6)6、本课程设计机器指令 (7)7、模型机的调试与实现 (7)(1)接线图 (7)(2)写程序 (8)(3)运行程序 (8)四、总结 (9)参考文献 (9).一、课程设计题目基本模型机设计与实现二、课程设计使用的实验设备TDN-CM计算机组成原理教学实验系统一台,排线若干三、课程设计内容与步骤不见实验过程中,各部件单元的控制信号是认为模拟产生的,而本次课程实习将能在为程序控制下自动产生各部件单元控制信号,实现特定指令的功能。
这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
本课程设计采用六条机器指令:IN(输入)、AND(与运算)、DEC(自增1)、STA(存数)、OUT(输出)、JMP(无条件跳转),其指令格式如下:其中IN、DEC为单字长,其余为双字长指令,********为addr对应的二进制地址码。
1、所设计模型机的功能与用途本次课程设计设计的模型机包括六条指令,输入、与运算、自增、存数、输出、无条件跳转。
利用此模型机可完成两个数的与运算,一个数从键盘输入,另个数从内存中读取,再将运算结果自增1,把最后结果保存到内存中,并且将运算结果输出2、数据通路图3、微代码定义C字段A字段B字段4、微程序流程图控制程序流程图当拟定“取指”微指令时,该微指令的判别测试字段为P(1)测试;控制台操作为P(4)测试,它以控制台开关SWB、SWA作为测试条件,共三路分支。
5、微程序设计完毕后,将每条微指令代码化,将流程图转化为二进制代码表6、本课程设计机器指令7、模型机的调试与实现(1)接线图(2)写程序A、现将机器指令对应的微代码正确写入2816中。
组成原理8位模型机的设计

计算机组成原理课程设计报告题目8位模型计算机的设计姓名学号班号指导老师成绩目录191. 课程设计目的(1)、计算机组成原理课程设计的主要任务是让学生通过动脑和动手解决计算机设计中的实际问题。
综合运用所学计算机组成原理知识,在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本的模型计算机,掌握整机概念,并设计机器指令系统,编写程序,在所设计的模型计算机上调试运行。
(2)、通过一台模型机的设计过程,明确计算机的控制原理与控制过程,巩固和灵活应用所学的理论知识,掌握计算机组成的一般设计方法,提高学生设计能力和实践操作技能,为从事计算机研制与设计打下基础。
2. 开发工具选择以TEC-CA教学实验系统为平台,采用硬件描述语言 VHDL为设计工具,应用QUARTUSⅡ环境进行大规模集成电路的功能设计仿真。
3. 方案选择实习的内容为八位模型计算机的设计,为单总线,微程序控制方式,设置两种寻址方式:直接寻址(“0”)和寄存器寻址(“1”)。
微程序控制方式由微指令译码产生。
微程序中一条机器指令往往分成几步执行,将每一步操作所需的若干为命令以代码编写在一条微指令中,若干条微指令组成一段微程序,对应一条机器指令。
然后根据系统的需要,事先编制各段微程序,将它存入控制存储器(CM)中。
微程序执行过程:(1)从控存中逐条取出“取指令操作”,执行取指令公共操作。
(2)根据指令的操作码,经过微地址形成部件,得到这条指令的入口地址,并送入微地址寄存器中。
(3)从控存中逐条的取出对应的微指令并执行。
(4)执行完一条机器指令对应的微程序后又回到取指微程序的入口地址,继续第(1)步,以完成取下一条机器指令的公共操作。
微程序控制基本框图:图1 微程序控制基本框4. 指令系统设计所要设计的微程序控制器是由七条指令来完成的,即:sta, add, sub, and1, jmp, shl, nop。
实现功能分别如下:sta 指令实现存操作;add 指令实现加法操作;sub 指令实现减法操作;and1指令实现与操作;jmp 指令实现无条件跳转操作;shl 指令实现逻辑左移操作;nop 指令实现空操作。
计算机组成原理——模型机 完整报告

一、目的及要求目的:(1)融会贯通教材各章的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,加深计算机工作中“时间-空间”概念的理解,从而清晰地建立计算机的整机概念。
(2)学习设计和调试计算机的基本步骤和方法,培养科学研究的独立工作能力,取得工程设计和调试的实践和经验。
要求:1.根据给定的数据格式和指令系统,设计一台微程序控制的模型计算机。
2.根据设计图,在QUARTUS II环境下仿真调试成功。
3.在调试成功的基础上,整理出设计图纸和相关文件,包括:(1)总框图(数据通路图);(2)微程序控制器逻辑图;(3)微程序流程图;(4)微程序代码表;(5)设计说明书及工作小结。
二、环境(软硬件平台)WINDOWS XP、QUARTUS II三、内容及步骤(包括程序流程及说明)1.数据格式数据字规定采用定点整数补码表示法,字长8位,其中最高位为符号位,其格式如下:7 6 5 4 3 22.指令格式本实验设计使用5条机器指令,其格式与功能说明如下:INADDOUTJMPIN指令为单字长(字长为8bits)指令,其功能是将数据开关的8位数据输入到R0寄存器。
ADD指令为双字长指令,第一个字为操作码,第二个字为操作数地址,其功能是将R0寄存器的内容与内存中地址为A的数相加,结果存放在R0寄存器中。
STA指令为双字长指令,第一个字为操作码,第二个字为操作数地址,其功能是将R0寄存器中的内容存储到以第二个字为地址的内存单元中。
OUT指令为双字长指令,第一个字为操作码,第二个字为操作数地址,其功能是将内存中以第二个字为地址的内存单元中的数据读出到数据总线,显示之。
JMP指令为双字长指令,第一个字为操作码,第二个字为操作数地址,其功能是程序无条件转移到第二个字指定的内存单元地址。
数据通路图一旦确定,指令流与数据流的通路也就确定了。
图1中各功能器件上标注的控制点及控制信号,就是微程序控制器设计的依据。
计算机组成原理—模型机设计报告

计算机组成原理--模型机设计报告作者姓名:专业:网络工程学号:指导教师:完成日期:2016年1月6日目录课程设计任务书 (3)1课程设计目的 (3)2课程设计设备 (3)3课程设计内容 (4)3.1课程设计原理 (4)3.2实验步骤 (6)4课程设计结果 (10)5课程设计总结 (14)5.1课程设计的心得、经验教训及注意事项 (14)5.1.1心得体会 (14)5.1.2经验教训 (14)5.1.3注意事项 (14)参考文献 (14)课程设计任务书学生姓名:专业班级: 1320552指导教师:工作单位:题目:基本模型机的设计与实现初始条件1.完成《计算机组成原理》课程教学与实验2.Proteus仿真系统要求完成的主要任务(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.掌握简单指令系统计算机的微控制器功能与结构特点2.熟悉Proteus仿真系统3.在Proteus仿真系统中确认运行结果4.形成简单指令系统计算机的整机概念1课程设计目的设计并实现基本模型机:(1)理解计算机工作原理(2)设计并验证一个定点计算机模型(3)增加一个浮点运算单元2课程设计设备PC机+Win 2003+proteus仿真器3课程设计内容3.1课程设计原理部件实验过程中,各部件单元的控制信号是以人为模拟产生为主,而本次实验将能在微程序控制下手动产生各部件单元的控制信号,实现特定指令的功能。
如运算器实验中对74LS-181芯片的控制,存储器中对存储器芯片的控制信号,以及几个实验中对输出设备的控制通过LED灯来显示结果。
这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
本实验采用五条机器指令:IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移)。
基本模型机数据通路框图:基本模型机微程序流程图:3.2实验步骤1、该基本模型机主要有运算器和存储器两大功能器件构成,首先设计运算器并对其进行功能验证。
计算机组成原理课程设计报告16位模型机的设计

石家庄经济学院华信学院计算机组成原理课程设计报告计算数据块中所有数据的累加和并存储到内存单元中题目16位模型机的设计姓名学号4114170801班号一班指导老师成绩2014年1月目录一、引言 (3)1.1设计目的 (3)1.2设计任务 (3)二、详细设计及实现 (4)2.1 拟定指令系统 (4)2.2指令格式 (5)2.3寻址方式 (5)三、16位CPU的模型 (7)3.1 各功能部件的VHDL设计 (9)3.2 16位模型机的设计与实现 (22)四、总结 (27)五、参考文献: (27)六、代码 (28)一、引言1.1设计目的为掌握并巩固本学期所学习的计算机组成原理知识,设计本次试验。
运用整合所学的相关知识,一步步设计构造一台基本的模型计算机,明确计算机的控制原理与控制过程,巩固和灵活应用所学的理论知识,掌握计算机组成的一般设计方法,提高学生设计能力和实践操作技能,为从事计算机研制与设计打下基础。
1.2设计任务本机功能:计算数据块中所有数据的累加和并存储到内存单元中。
汇编代码如下:START:MOV SI, OFFSET SRC1 ;源操作数地址送SIMOV DI,OFFSET DXT ;目的操作数地址送DIMOV BX,OFFSET SRC2 ;结束地址送BXMOV BL 0 ;设置BL中初值为0NEXT: MOV AL,[SI] ;取数ADD BL , AL ; 数据相加MOV [DI],AL ;存数CMP SI, BX ;JE START ;如果SI=BX,则转向STARTINC SI ;修改源地址JMP NEXT ;转向NEXT二、详细设计及实现2.1 拟定指令系统分析:1)依据汇编语言程序得出部件间的数据流的方向为●立即数→寄存器●寄存器↔内存内存操作数采用寄存器间址寻址方式●源与目的寄存器内容比较,如果源等于目的转移,转向地址在指令中提供●寄存器加1指令●无条件转移指令,转向地址在指令中提供。
计算机组成原理课题设计报告

目录1模型机设计方案及步骤 (1)1.1设计方案 (1)1.2设计步骤 ......................................................................................................... 错误!未定义书签。
2指令格式 ................................................................................................................. 错误!未定义书签。
2.1指令格式 ......................................................................................................... 错误!未定义书签。
2.2指令集 (3)3数据通路 (4)4指令操作流程 (5)5微操作控制信号的逻辑表达式 (10)6微信号简化 (12)7微信号电路图 (13)8模型机微控制信号连线图 (14)9总结与体会 (14)10附录 (15)第 1 页模型计算机的设计1 模型机设计方案及步骤 1.1 设计方案本次课程设计主要任务是设计一模型计算机并利用组合逻辑控制器或微程序进行设计,且至少实现4条CPU 指令(从ADD ,SUB ,XOR ,AND ,OR 中选择)。
在此我选择使用组合逻辑控制器(硬连线)方式设计,并实现ADD ,SUB ,AND ,OR 四条指令。
四条指令意义如下:对于以上设计的理由如下:1. 对于方式的选取我们选取硬连线实现,因为此次我们设计的模型机较为简单,而且采用元件较少,我们采用硬连线可以使用最少的元件从而取得较高的操作速度。
2. 对于字长的选取,多方面考虑后,基于资源和设计的需要可以采用八位字长。
由于共有四条指令,为了满足选取所以选取其中2位作为OP 操作,由于在对数的操作中不仅涉及到对数据的存储还会牵连到指令的操作,在此指令的操作有四条指令所以必须有四个储存单元,加上存储数据的一个单元,一共需要五个单元,再由于计算机存储字长值的限制,选不出5个存储单元的字长。
计算机组成原理实验报告模型机

计算机组成原理课程设计报告作者姓名:程壑专业:网络工程学号:092055132指导教师:郭芸俊完成日期:2011年12月太原工业学院计算机工程系摘要本课程设计是利用所学的计算机结构和工作原理的知识,独立完成简单计算机的模型机设计,并用PROTEUS软件进行验证。
设计过程中重点实现:运算器执行算术逻辑运算的具体实现,半导体存储器的系统连接和扩充方法,数据通路组成和实现,控制器的基本原理和设计实现,模型系统验证程序的存储。
首先构思创建一个计算机系统模型,然后将系统拆分运算器、存储器、控制器和输入输出接口五部分,分别进行设计和验证关键字:计算机系统模型,运算器,存储器,控制器,输入输出接口,PROTEUS 软件正文:一、设计目的为了更好的掌握计算机的的组成原理和结构,通过实际编写一个简单的指令系统的指令,并在机器中实现。
使抽象的原理形象化。
二、采用设备带有仿真软件的计算机一台。
三、设计原理部件实验过程中,各部件单元的控制信号是以人为模拟产生为主,而本次实验将能在微程序控制下自动产生各部件单元的控制信号,实现特定指令的功能。
这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
本实验采用七条机器指令:IN(输入),STA(存数),OUT(输出),JMP(无条件转移),RLC(带进位左移),RR(右移),SUB(减法)其指令格式如下(前三位为操作码):=================================================================机器指令码助记符说明----------------------------------------------------------------- P00 00 ;IN R0,SW ;数据开关→R0P01 10 ;RLC R0 ;R0带进位左移P02 20 0E ;SUB R0,0EH ;R0-(0EH)→R0p04 A0 ;RR R0 ;RO右移P05 40 0F ;STA 0FH,R0 ;R0→(0FH)P07 60 0F ;OUT 0FH,LED ;(0FH)→输出单元P09 80 00 ;JMP 00H ;无条件转移================================================================= 其中IN为单字节(8位),其余为双字节指令,XXXXXXXX为addr对应的二进制地址码。
模型机设计与实现报告

模型机设计与实现报告一、引言随着计算机技术的快速发展,模型机已经成为了一个重要的研究领域。
模型机的设计和实现不仅可以帮助人们更好地理解计算机基本原理,而且还可以培养学生的动手能力和创新思维。
本文将介绍我们小组设计和实现的一台模型机,包括设计思路、硬件和软件实现,以及功能和应用。
二、设计思路我们的模型机以现代计算机的基本原理为基础,采用冯·诺依曼结构。
核心思想是将计算机分为五大部分:中央处理器(CPU)、内存(Memory)、输入设备(Input)、输出设备(Output)和控制器(Control Unit)。
CPU 是整个计算机的核心,负责处理数据和指令。
Memory存储程序和数据。
Input和Output分别处理用户的输入和输出。
Control Unit负责控制整个计算机的工作流程。
三、硬件实现我们的模型机采用了简化的硬件组件,包括:- 中央处理器(CPU):采用单核心的微处理器,包括算术逻辑单元(ALU)和控制单元(CU)。
- 内存(Memory):采用随机存取存储器(RAM),用于存储指令和数据。
- 输入设备(Input):采用键盘作为输入设备,用户可以输入数据和指令。
- 输出设备(Output):采用显示器作为输出设备,用户可以查看计算结果。
- 控制器(Control Unit):采用简单的控制电路,用于控制各个硬件组件的工作流程。
四、软件实现我们使用汇编语言编写了一套简单的指令集,包括数据传输指令、算术运算指令和控制指令等。
同时,我们还编写了一套操作系统,用于管理内存、处理输入输出和控制程序的执行流程。
五、功能和应用我们的模型机具备基本的计算功能,可以进行加减乘除等算术运算,并可以支持条件判断和循环等控制结构。
同时,我们还支持了一些额外的功能,比如可以调用指定的函数和库,可以进行简单的图形化界面设计等。
我们的模型机可以用于教学、研究和娱乐等领域。
对于学生而言,可以帮助他们更深入地理解计算机原理,提高动手能力。
计算机组成原理课设报告(设计一台嵌入式CISC模型机)

计算机组成原理课程设计(论文)说明书题目:设计一台嵌入式CISC模型机系别:专业:学生姓名:学号:一.CISC 模型机数据通路框图总体设计如下二.操作控制器的逻辑框图外部时钟 复位信号指令寄存器IR三.模型机的指令系统3.1指令系统3.2本模型机中的指令系统中共有10条基本指令,下表列出了每条指令的格式、汇编符号和指令功能。
说明:①对Rs 和Rd 的规定:②模型机规定数据的表示采用定点整数补码表示,单字长为8位,其格式如下:3.3设计时序产生器电路T1、T2、T3、T4与CLR 、Q 之间的关系图四.微程序流程图Q CLR T1 T2 T3 T400五.编写汇编语言源程序由给出的题目(范例)和设计的指令系统编写相应的汇编语言源程序。
算法思想为:采用R0寄存器存放从开关输入的任意一个整数,R1存放准备参加累加运算的奇数,R2存放累加和,用一个循环程序实现如下:MOV R3,0MOV R2,0MOV R1,5L2:IN1 R0Test R0JS L1L3:INC R2CMP R2,R1JB L2L4:OUT1 R3JMP L4L1:CMP R0,R3JB L3MOV1 R0,R3JMP L3六.机器语言源程序根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序,并将其设计到模型机中的ROM中去。
与3.3.8中汇编语言源程序对应的机器语言源程序如下:助记符地址(十六进制)机器代码功能MOV R3,O 00 0001 0011 0→R3010000 000MOV R2,0 02 0001 0010 0→R203 0000 0000MOV R1,5 04 0001 0001 5→R105 0000 0101L2:IN1 R0 06 0000 0000 (SW) →R0Test R0 07 0111 0000 80H-ACJS L1 08 1000 0000 若SF=1 L1→PC09 0001 0001L3:INC R2 0A 0100 0010 (R2)+1→R2CMP R2,R1 0B 0110 1001 (R2)-(R1)JB L2 0C 1001 0000 L2→PCOD 0000 0110L4:OUT1 R3 0E 0011 1100 (R3)→LEDJMP L4 0F 0101 0000 L4→PC10 0000 1110L1:CMP R0,R3 11 0110 0011 (R0)-(R3)JB L3 12 1001 0000 L3→PC13 0000 1010MOV1 R0,R3 14 0010 0011 R0→R3JMP L3 15 0101 0000 L3→PC16 0000 1010七.机器语言源程序的功能仿真波形图及结果分析;输入数值: 85,05,83,87,89输出结果: 89结果分析:05是正数,判断为负直接跳出,83<85<87<89所以 89最大,与仿真波形图结果相同八.故障现象和故障分析1.问题:为微程序流程图分配首地址时出现错误,导致不能正确译码。
计算机组成原理课程设计模型机实验报告 精品

实践报告计算机组成原理--模型机设计报告作者姓名:专业:计算机科学与技术学号:指导教师:完成日期:年月号******学院计算机工程系摘要“计算机组成原理”是计算机科学与技术系的一门核心专业基础课程,在计算机专业中起了很重要的作用。
课程中分部分介绍了计算机的各个部件,我们有必要将它们组合起来以对计算机有一个整体的认识。
这次课程设计通过对一个简单模型机的设计与实现,是我们对计算机的基本组成、部件的设计、部件间的连接有更深的理解。
依次设计计算机的几个部件并进行连接使成为一个完整的模型机。
通过运行和调试,使之正常工作。
关键词:运算器;控制器;存储器;输入输出接口;模型机正文:一、课设目的要求:《计算机组成原理》是一门理论性、实践性均较强的专业基础课,要求学生具有一定的电路分析、指令系统编写能力、软件设计能力。
通过计算机组成原理实践周,要突出《计算机组成原理》理论联系实际的特点,培养实践动手能力。
1.培养学生运用理论知识和技能,构建建立问题逻辑结构,锻炼学生分析解决实际问题的能力。
2.培养学生使用PROTEUS软件分析和设计计算机内部器件的方法和技巧。
3.培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。
4.通过实践设计,要求学生在指导教师的指导下,独立完成设计课题的全部内容,包括:(1)通过调查研究和上机实习,掌握PROTEUS软件的设计和仿真调试技能。
(2)掌握计算机系统的组成结构及其工作原理。
(3)设计实现一个简单计算机的模型机,并能够使用PROTEUS软件进行电路仿真验证二、课设内容:利用所学的计算机结构和工作原理的知识,要求学生独立完成简单计算机的模型机设计,并用PROTEUS软件进行验证。
在分析设计过程中,要求学生养成良好的习惯,学会分析实际问题,并利用所学的知识建立系统的逻辑结构,学会PROTEUS调试技巧和方法,通过逻辑设计和工程设计培养调试硬件电路的实际动手能力。
要求学生掌握数字逻辑电路中故障的一般规律,以及排除故障的一般原则和方法;锻炼分析问题与解决问题的能力,在出现故障的情况下,独立分析故障现象,并排除故障。
计算机组成原理课程设计报告(复杂模型机)

计算机组成原理课程设计报告复杂模型机的设计与调试复杂模型机的设计与实现一、课程设计目的本课程设计是《计算机组成原理》课程结束以后开设的大型实践性教学环节。
通过本课程设计,加深对计算机系统各模块的工作原理及相互联系的认识,特别是对微程序控制器的理解,进一步巩固所学的理论知识,并提高运用所学知识分析和解决实际问题的能力;锻炼计算机硬件的设计能力、调试能力;培养严谨的科学实验作风和良好的工程素质,为今后的工作打下基础。
二、实验设备ZY15CompSys12BB计算机组成原理教学实验系统一台,排线若干。
三、设计与调试任务1.按给定的指令格式和指令系统功能要求,用所提供的器件设计一台微程序控制器控制的模型计算机。
2.根据设计图,在通用实验台上进行组装,并调试成功。
四、指令格式模型机设计四大类指令共十六条,其中包括算术逻辑指令、I/O指令、访问存储器及转移指令和停机指令。
(A) 算术逻辑指令设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:D7 D6 D5 D4 D3 D2D1 D0OP-CODE Rs Rd其中,OP-CODE为操作码,Rs为源寄存器,Rd为目的寄存器,并规定:选中的寄存器(Rs或Rd)R0R1 R2寄存器的编码00 01 10(B) 访存指令及转移指令模型机设计2条访问指令,即存数(STA)、取数(LDA)、2条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC)。
其格式如下:D7 D6D5 D4 D3 D2D1 D0D7····D0OP-CODE M OP-CODE Rd D其中,OP-CODE为操作码,Rd为目的寄存器,D为位移量(正负均可),M为寻址方式,其定义如下:寻址方式有效地址说明00 E=D 直接寻址01 E=(D)间接寻址10 E=(R I)+D R I变址寻址11 E=(PC)+D 相对寻址本模型机规定变址寄存器R I指定为寄存器R2。
计算机组成原理课程设计——模型机(正文)

模型机设计一、设计目的:1.掌握整机动态工作过程2.了解微程序控制器的设计,构建指令系统3.组建模型机,编写应用程序进行调试二、设计器材:EL-JY-II型计算机组成原理实验系统一套,排线若干。
三、设计要求:认真预习相关知识和内容,设计指令系统,编写微程序:(1)指令在8条以上(2)寻址方式包括:寄存器寻址、直接寻址、立即数寻址(3)数据由键盘输入(4)由数码管显示数据四、模型机结构:图1 模型机结构框图图1中运算器ALU由U7—U10四片74LS181构成,暂存器1由U3、U4两片74LS273构成,暂存器2由U5、U6两片74LS273构成。
微控器部分控存由U13—U15三片2816构成。
除此之外,CPU的其它部分都由EP1K10集成(其原理见系统介绍部分)。
存储器部分由两片6116构成16位存储器,地址总线只有低八位有效,因而其存储空间为00H—FFH。
输出设备由底板上的四个LED数码管及其译码、驱动电路构成,当D-G和W/R均为低电平时将数据总线的数据送入数码管显示。
在开关方式下,输入设备由16位电平开关及两个三态传输芯片74LS244构成,当DIJ-G为低电平时将16位开关状态送上数据总线。
在键盘方式或联机方式下,数据可由键盘或串口输入,然后由监控程序直接送上数据总线,因而外加的数据输入电路可以不用。
五、指令编码:表1 微代码表微地址(八进制)微地址(二进制)微代码(十六进制)00 000000 007F8801 000001 005B4202 000010 016FFD06 000110 015FE507 000111 015FE510 001000 005B4A11 001001 005B4C12 001010 014FFB13 001011 007FC114 001100 01CFFC20 010000 005B6522 010010 005B4723 010011 005B4624 010100 007F1525 010101 02F5C127 010111 018FC130 011000 0001C131 011001 0041EA32 011010 0041EC33 011011 0041FC34 011100 0041F335 011101 0041F636 011110 3071F737 011111 3001F940 100000 0379C141 100001 010FC142 100010 011F4145 100101 007F2052 101010 0029EB53 101011 9403C154 101100 0029E055 101101 6003C162 110010 0003C163 110011 0029F565 110101 B803C166 110110 0C03C167 110111 207DF870 111000 000DC171 111001 107DFA72 111010 000DC173 111011 06F3C874 111100 FF73C975 111101 016E10六、微程序本次课程设计我们组选择的第一个程序设计是实现输入一个一位十进制数,将其扩大5倍后以BCD码输出,程序段如表2所示。
-复杂模型机实验报告2

计算机组成原理实验报告实验题目:一台模型计算机的总体设计之复杂模型机设计实验目的:(1)在掌握部件单元电路实验的基础上, 进一步将其组成系统, 构造一台复杂模型计算机, 建立一台基本完整的整机。
(2)为其定义至少五条机器指令, 并编写相应的微程序, 通过联机调试, 观察计算机执行指令:从取指令、指令译码、执行指令等过程中数据通路内数据的流动情况, 进一步掌握整机概念。
实验设备TDN-CM+教学实验系统一套、微型计算机一台、排线若干。
实验原理:(1)数据格式及指令系统:①数据格式其中, 第7位为符号位, 数值表示范围是-27 ≤X≤27-1②指令格式模型机设计4大类指令共16条, 其中包括算术逻辑指令、I/O指令、访问及转移指令和停机指令。
A. 算术逻辑指令设计九条算术逻辑指令并用单字节表示, 寻址方式采用寄存器直接寻址, 其格式如下:其中, OP-CODE为操作码, RS为源寄存器, RD为目标寄存器, 并规定:九条算术逻辑指令的助记符、功能和具体格式见表5.2-1。
B.访问及转移指令:5 4 3 2 1 0模型机设计两条访问指令,即存数(STA)、取数(LDA),两条转移指令, 即无条件转移(JMP)、本模型机规定变址寄存器RI指定为寄存器R2。
C. I/O指令:其中, addr=01时, 选中“INPUT DEVICE”中的开关组作为输入设备, addr=10时, 选中“OUTPUT DEVICE”中的数码块作为输出设备。
D. 停机指令:HALT指令, 用于实现停机操作。
③指令系统:本模型机共有16条基本指令, 其中算术逻辑指令七条, 移位指令两条, 访问内存指令和程序控制指令四条, 输入/输出指令两条, 其它指令一条。
表5.2-1列出了各条指令的格式、助记符和功能。
实验要求(1)设计的复杂模型机要实现: 加法运算、减法运算、加减混合运算、乘法运算和输出结果、循环的功能。
(2)设计的机器指令程序可参考以下实例:程序助记符$P0044 IN 01, R0$P0146 IN 01, R2$P0298 ADC R2, R0$P0381 MOV R0, R1$P04F5 RLC R1, R1(3)设计总体结构(模型机各部件连接图)及数据通路框图。
计算机组成原理模型机实验报告

实验六计算机系统综合设计与实现一、实验目的1、深入理解计算机系统工作的基本原理,建立整机概念。
2、融会贯通计算机组成原理课程的容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识。
3、培养科学研究的独立工作能力,取得工程设计与组装调试的实践经验。
二、实验要求1、将已经设计的运算器、存储器和控制器连接,构建完整的计算机系统;2、编写一段可以实现一定功能的指令程序,进行计算机整机系统功能的验证。
3、所有任务要求功能仿真和必要的验证。
实验完成后,一周提交实验报告。
三、实验设备PC机+ QuartusⅡ10.0 + FPGA(DE2-115)+TEC-8实验箱四、计算机系统(TEC-8)综合逻辑框图硬连线控制器控制信号切换电路ALU A端口B端口C Z R0 R1 R2 R3 IR PC AR 双端口RAM DBUS五、实验任务1、将实验二的运算器、实验三的存储器和实验五的控制器连接,构建完整的计算机系统;2、计算机整机系统功能测试,进行功能仿真和时序仿真并在DE2-115上验证。
(1)根据指令系统,编写一段可以实现一定功能的程序,要求:有一个合理的运算功能和逻辑关系;指令数量:不少于8条;指令类型:停机、跳转、RR、读存、写存、算术和逻辑运算;(2)将指令程序手工汇编成二进制代码;(3)理论上设置寄存器的初值,并计算程序执行后的结果;(4)将指令程序的二进制代码存入存储器RAM中;(5)将需要的运算数据初值存入寄存器R0-R3中;(6)进行程序连续运行的功能仿真和时序仿真,将仿真运算结果与理论计算结果进行比较。
六、实验步骤实验电路图子模块(1)tri_74244module tri_74244 (en,Din,Dout );input en ;wire en ;input [7:0] Din;wire [7:0] Din ;output [7:0] Dout ;reg [7:0] Dout ;always (en or Din)beginif (en)Dout<= Din ;elseDout <= 8'bzzzzzzzz;endendmodule`timescale 1 ps/ 1 psmodule tri_74244_vlg_tst();reg eachvec;reg [7:0] Din;reg en;wire [7:0] Dout;tri74244.vt`timescale 1 ps/ 1 psmodule tri_74244_vlg_tst();reg eachvec;reg [7:0] Din;reg en;wire [7:0] Dout;tri_74244 i1 (.Din(Din),.Dout(Dout),.en(en));integer i;initial begin i=0;Din=8'b00000000;en=0;en=1;#40 en=1;endinitialbegin for(i=0;i<10;i=i+1)begin#10 Din=i;endend endmoduletri74244功能仿真(2)ALUALU.bdfmodolue_74181使用quartus库中的74181模块转换为verilog文件即可de2_4de2_4.vmodule de2_4(en,in,out);input [2:1] in ;input en;output [4:1] out ;reg [4:1] out ;always (en or in)if (en)case (in)2'b00:out=4'b0001;2'b01:out=4'b0010;2'b10:out=4'b0100;2'b11:out=4'b1000;default:out=4'b0000;endcaseelse out=4'b0000;endmodulede2_4.vt`timescale 1 ns/ 1 psmodule de2_4_vlg_tst();reg eachvec;reg en;reg [2:1] in; wire [4:1] out;de2_4 i1 (.en(en),.in(in),.out(out));initial begin en=0;endinitial begin # 10 en=1;endinitial begin # 5 in=2'b00;#15 in=2'b01;#15 in=2'b10;#15 in=2'b11;#40 $finish;endinitial$monitor($time,,,"en=%b in=%b out=%b",en,in,out); endmodulereg8reg8.vmodule reg8 ( T3,DOUT ,D );input T3 ;wire T3 ;input [7:0] D ;wire [7:0] D ;output [7:0] DOUT ;reg [7:0] DOUT ;always ( posedge T3 )beginDOUT <= D ;endendmodulereg8.vt`timescale 1 ps/ 1 psmodule reg8_vlg_tst();reg eachvec;reg [7:0] D;reg T3;wire [7:0] DOUT;reg8 i1 (.D(D),.DOUT(DOUT),.T3(T3));integer i;initialbeginT3=0;D=8'd0;endalwaysbegin#5 T3= ~T3;endinitialbegin for(i=0;i<11;i=i+1)begin#10 D=i;endend endmodulemux4_1mux4_1.vmodule mux4_1(d1,d2,d3,d4,se1,se2,dout);input [7:0]d1;input [7:0]d2;input [7:0]d3;input [7:0]d4;input se1;input se2;output dout;reg [7:0]dout;always (d1 or d2 or d3 or d4 or se1 or se2) case({se2,se1})2'b00 : dout=d1;2'b01 : dout=d2;2'b10 : dout=d3;2'b11 : dout=d4;endcaseendmodulemux4_1.vt`timescale 1 ps/ 1 psmodule mux4_1_vlg_tst();reg eachvec;reg [7:0] d1;reg [7:0] d2;reg [7:0] d3;reg [7:0] d4;reg se1;reg se2;wire [7:0] dout;mux4_1 i1 (.d1(d1),.d2(d2),.d3(d3),.d4(d4),.dout(dout),.se1(se1),.se2(se2));integer i,j;initial begin #10 d1=8'b00000001;d2=8'b00000010;d3=8'b00000011;d4=8'b00000100;endinitialbegin#5while(1)for(i=0;i<2;i=i+1)for(j=0;j<2;j=j+1)begin#5 se2=i; se1=j;endend endmoduleALU逻辑电路图逻辑功能表)(当A=55H,B=AAH,S=0000~1111,M=0,CIN=1时仿真测试文件及功能仿真波形`timescale 1 ns/ 1 psmodule alu_vlg_tst();reg T3;reg SBUS;reg DRW;reg ABUS;reg LDC;reg CIN;reg M;reg [1:0] RD;reg [1:0] RS;reg [3:0] S;reg [7:0] SD;wire [7:0] DBUS;wire C;.ABUS(ABUS),.C(C),.CIN(CIN),.DBUS(DBUS),.DRW(DRW),.LDC(LDC),.M(M),.RD(RD),.RS(RS),.S(S),.SBUS(SBUS),.SD(SD),.T3(T3));initialbeginT3=0;SBUS=1;DRW=1;ABUS=0;RD=2'b00; SD=8'b01010101;#10 RD=2'b01; SD=8'b10101010;#10 RD=2'b10; SD=8'b00000011;#10 RD=2'b11; SD=8'b00000100; #10 RD=2'b00;RS=2'b01;SBUS=0;DRW=0;ABUS=1;CIN=1;LDC=1;M=0;endalwaysbegin#5 T3=~T3;endinteger i;initial#40 S=4'b0000;for(i=1;i<16;i=i+1)#10 S=i;endinitial$monitor($time,,,"M=%b S=%b CIN=%b SD=%h DBUS=%h C=%b",M,S,CIN,SD,DBUS,C); endmodule指令ADD R0,R1( R0+R1 → R0)的仿真测试文件及功能仿真波形`timescale 1 ns/ 1 psmodule alu_vlg_tst();reg T3;reg SBUS;reg DRW;reg ABUS;reg LDC;reg CIN;reg M;reg [1:0] RD;reg [1:0] RS;reg [3:0] S;reg [7:0] SD;wire [7:0] DBUS;wire C;alu i1 (.ABUS(ABUS),.C(C),.CIN(CIN),.DBUS(DBUS),.DRW(DRW),.LDC(LDC),.M(M),.RD(RD),.RS(RS),.S(S),.SBUS(SBUS),.SD(SD),.T3(T3));initial forkT3=0;SBUS=1;DRW=1;ABUS=0;RD=2'b00; SD=8'b00000111;#10 RD=2'b01;#10 SD=8'b00000001;#20 RD=2'b00;#20 RS=2'b01;#20 SBUS=0;#20 DRW=0;#20 ABUS=1;#20 CIN=1;#20 LDC=1;#20 M=0;#20 S=4'b1001;#30 RD=2'b00;#30 DRW=1;#40 DRW=0;joinalwaysbegin#5 T3=~T3;endendmodule00ns DBUS=07H T3上升沿到来(5ns时)数据07H被写R010ns DBUS=01H T3上升沿到来(15ns时)数据01H被写R120ns DBUS= R0+R1=07+01=08H30ns T3上升沿到来(35ns)时DBUS数据08H被写R0,因此DBUS=R0+R1=08H+01H=09H (说明实现了R0+R1 → R0)注意:此时M=0, S=1001,CIN=1(相当于C0=0),实现算术运算A+B指令SUB R0,R1( R0-R1 → R0)的仿真测试文件及功能仿真波形`timescale 1 ns/ 1 psmodule alu_vlg_tst();reg T3;reg SBUS;reg DRW;reg ABUS;reg LDC;reg CIN;reg M;reg [1:0] RD;reg [1:0] RS;reg [3:0] S;reg [7:0] SD;wire [7:0] DBUS;wire C;alu i1 (.ABUS(ABUS),.C(C),.CIN(CIN),.DBUS(DBUS),.DRW(DRW),.LDC(LDC),.M(M),.RD(RD),.RS(RS),.S(S),.SBUS(SBUS),.SD(SD),.T3(T3));initial forkT3=0;SBUS=1;DRW=1;ABUS=0;RD=2'b00; SD=8'b00000111;#10 RD=2'b01;#10 SD=8'b00000001;#20 RD=2'b00;#20 RS=2'b01;#20 SBUS=0;#20 DRW=0;#20 ABUS=1;#20 CIN=0;#20 LDC=1;#20 M=0;#20 S=4'b0110;#30 RD=2'b00;#30 DRW=1;#40 DRW=0;joinalwaysbegin#5 T3=~T3;endendmodule00ns DBUS=03H T3上升沿到来(5ns时)数据07H被写R010ns DBUS=01H T3上升沿到来(15ns时)数据01H被写R120ns DBUS= R0-R1=07-01=06H30ns T3上升沿到来(35ns)时DBUS数据06H被写R0,因此DBUS=R0-R1=06H-01H=05H(说明实现了R0-R1 → R0)注意:此时M=0,S=0110,实现算术运算A-B-1,设置CIN=0(相当于C0=1),让进位C0=1,因此实现运算(A-B-1)+1=A-B指令AND R0,R1( R0&R1 → R0)的仿真测试文件及功能仿真波形`timescale 1 ns/ 1 psmodule alu_vlg_tst();reg T3;reg SBUS;reg DRW;reg ABUS;reg LDC;reg CIN;reg M;reg [1:0] RD;reg [1:0] RS;reg [3:0] S;reg [7:0] SD;wire [7:0] DBUS;wire C;alu i1 (.ABUS(ABUS),.C(C),.CIN(CIN),.DBUS(DBUS),.DRW(DRW),.LDC(LDC),.M(M),.RD(RD),.RS(RS),.S(S),.SBUS(SBUS),.SD(SD),.T3(T3));initialforkT3=0;SBUS=1;DRW=1;ABUS=0;RD=2'b00; SD=8'b00000111;#10 RD=2'b01;#10 SD=8'b00001001;#20 RD=2'b00;#20 RS=2'b01;#20 SBUS=0;#20 DRW=0;#20 ABUS=1;#20 CIN=1;#20 LDC=1;#20 M=1;#20 S=4'b1011;#30 RD=2'b00;#30 DRW=1;#38 S=4'b0000;#40 DRW=0;joinalwaysbegin#5 T3=~T3;endendmodule00ns DBUS=00000111 T3上升沿到来(5ns时)数据00000111被写R0 10ns DBUS=00001001 T3上升沿到来(15ns时)数据00001001被写R1 20ns DBUS= R0&R1=0000000130ns DRW=1 T3上升沿到来(35ns)时DBUS数据00000001被写R0,38 ns M=1,S=0000 DBUS=R0&R1==11111110H 实现了求反运算(说明已经实现了R0&R1 → R0)(3)RAM4RAM4.bdfcnt256cnt256.vmodulet256(Q,DATA,LDN,reset,clk);output [7:0] Q;input [7:0] DATA;input LDN,reset,clk;reg [7:0] Q;always (posedge clk or negedge reset) //clk上升沿触发beginif(!reset) //异步清零,低电平有效Q<=8'b0;else if(!LDN) Q<=DATA; //同步置数,低电平有效else Q<=Q+1; //计数endendmodulecnt256.vt`timescale 1 ns/ 1 psmodulet256_vlg_tst();reg [7:0] DATA;reg LDN;reg clk;reg reset;wire [7:0] Q;cnt256 i1 (.DATA(DATA),.LDN(LDN),.Q(Q),.clk(clk),.reset(reset));initial beginDATA=1'hA; clk=0;reset=1;LDN=1;DATA=8'd0*******;#20 reset=0;#40 reset=1;#260 LDN=0;#80 LDN=1;endalwaysbegin#20 clk=~clk;endendmoduleasdf利用宏功能模块先生成单端口存储器,再用两单端口存储器进行连接生成双端口存储器RAM4仿真测试逻辑图双端口逻辑功能表(1)从左端口写存储器(在01H 单元中写入数据11H)(右端口为只读端口)T2 T3 MEMW SBUS LAR LPC MBUS CLR_ ARINC PCINC SD[7..0] 功能x ↑0 110 0 1 0 0 0101H→AR ↑x 1 10 0 0 1 0 0 1111H→(01H)(2)从左端口读存储器(从01H 中读出数据11H)(右端口为只读端口)T2 T3 MEMW SBUS LAR LPC MBUS CLR_ ARINC PCINC SD[7..0] 功能x ↑0 110 0 1 0 0 0101H→AR ↑x 00 0 0 1 1 0 0 xx(01H) →DBUS(3)从右端口读存储器(从01H 中读出数据11H)(右端口为只读端口)T2 T3 MEMW SBUS LAR LPC MBUS CLR_ ARINC PCINC SD[7..0] 功能x ↑0 10 10 1 0 0 0101H→PC ↑x00 0 0 1 1 0 0 xx (01H) →INS(4)AR 自动加 1 读存储器(从左端口连续读存储器)T2 T3 MEMW SBUS LAR LPC MBUS CLR_ ARINC PCINC SD[7..0] 功能↑x00 0 0 1 1 1 0 XX M→DBUS (5 )PC 自动加 1 读存储器(从右端口连续读T2 T3 MEMW SBUS LAR LPC MBUS CLR_ ARINC PCINC SD[7..0] 功能↑x00 0 0 0 1 0 1 XX M→INS(4)UCU_ir_1UCU_ir_1.bdfram64_40rom64_40.vmodule rom64_40 (addr,q);input [5:0] addr;output [39:0] q;reg [39:0] q;always (addr[5] or addr[4] or addr[3] or addr[2] or addr[1] or addr[0]) begincase({addr[5],addr[4],addr[3],addr[2],addr[1],addr[0]})6'h00 : q <= 40'h0c00000041;6'h01 : q <= 40'h00000410a0;6'h02 : q <= 40'h4010034002;6'h03 : q <= 40'h4010028002;6'h04 : q <= 40'h4020024004;6'h05 : q <= 40'h4010028004;6'h06 : q <= 40'h6c00020000;6'h07 : q <= 40'h4400020006;6'h08 : q <= 40'h501002080a;6'h09 : q <= 40'h4410020808;6'h0a : q <= 40'h641002080c;6'h0b : q <= 40'h4410020815;6'h0c : q <= 40'h7810020800;6'h0d : q <= 40'h401002a01a;6'h0e : q <= 40'h0020000c01;6'h0f : q <= 40'h4410020832;6'h10 : q <= 40'h000e810401;6'h11 : q <= 40'h0180020014;6'h12 : q <= 40'h0000000401;6'h13 : q <= 40'h8000000401;6'h14 : q <= 40'h0010002001;6'h15 : q <= 40'h5010020816;6'h16 : q <= 40'h440a7a0017;6'h17 : q <= 40'h44099a0018;6'h18 : q <= 40'h440eca0019;6'h19 : q <= 40'h440f8a0000;6'h1a : q <= 40'h401003401b;6'h1b : q <= 40'h401003501c;6'h1c : q <= 40'h401003501d;6'h1d : q <= 40'h401002a01f;6'h1e : q <= 40'h0000000000;6'h1f : q <= 40'h4020025030;6'h20 : q <= 40'h0000000000;6'h21 : q <= 40'h000a780c01;6'h22 : q <= 40'h0009980c01;6'h23 : q <= 40'h000ec80c01;6'h24 : q <= 40'h0008180c01;6'h25 : q <= 40'h000e80800e;6'h26 : q <= 40'h000fc08010;6'h27 : q <= 40'h0000000112;6'h28 : q <= 40'h0000000212;6'h29 : q <= 40'h000fc02401;6'h2a : q <= 40'h000e800401;6'h2b : q <= 40'h0040002401;6'h2c : q <= 40'h010*******;6'h2d : q <= 40'h020*******;6'h2e : q <= 40'h0000020401;6'h2f : q <= 40'h0000000000;6'h30 : q <= 40'h4020025031;6'h31 : q <= 40'h4020020000;6'h32 : q <= 40'h5010020833;6'h33 : q <= 40'h64100c0834;6'h34 : q <= 40'h7810020835;6'h35 : q <= 40'h4c1002a036;6'h36 : q <= 40'h400e834037;6'h37 : q <= 40'h440e835038;6'h38 : q <= 40'h480e835039;6'h39 : q <= 40'h4c0e83503a;6'h3a : q <= 40'h4c1002803b;6'h3b : q <= 40'h702002483c;6'h3c : q <= 40'h6c2002483d;6'h3d : q <= 40'h582002483e;6'h3e : q <= 40'h4420024800;6'h3f : q <= 40'h0000000000;default : begin endendcaseendendmodulerom64_40.vt`timescale 1 ns/ 1 psmodule rom64_40_vlg_tst();reg [5:0] addr; wire [39:0] q;rom64_40 i1 (.addr(addr),.q(q));integer i;initialbeginfor(i=0;i<64;i=i+1)begin#50 addr=i;endendendmodulereg6reg6.vmodule reg6 ( CLK,DOUT ,D,CLR_ );input CLK ;wire CLK ;input [5:0] D ;wire [5:0] D ;input CLR_;wire CLR_;output [5:0] DOUT ;reg [5:0] DOUT ;always ( negedge CLK or negedge CLR_ ) beginif(CLR_==0)DOUT <= 6'd0 ;elseDOUT <= D;endendmodulereg6.vt`timescale 1 ps/ 1 psmodule reg6_vlg_tst();reg CLK;reg CLR_;reg [5:0] D;wire [5:0] DOUT;reg6 i1 (.CLK(CLK),.CLR_(CLR_),.D(D),.DOUT(DOUT));integer i;initialbeginCLK=0;D=6'd1;CLR_=1;#10 CLR_=0;#10 CLR_=1;#30 D=6'd2;endalwaysbegin#20 CLK= ~CLK;endinitialbegin#50for(i=3;i<15;i=i+1)begin#40 D=i;endend endmoduleaddrtranaddrtran.bdfaddrtran.vt`timescale 1 ps/ 1 ps module addrtran_vlg_tst(); reg eachvec;reg C;reg INT;reg [7:4] IR;reg [5:0] NuA;reg [4:0] P;reg SWA;reg SWB;reg SWC;reg Z;wire [5:0] uA;addrtran i1 (.C(C),.\INT (INT),.IR(IR),.NuA(NuA),.P(P),.SWA(SWA),.SWB(SWB),.SWC(SWC),.uA(uA),.Z(Z));initialbeginINT=0;C=0;Z=0;P=5'd1;NuA=2'o01;SWC=0;SWB=0;SWA=0;#20 SWA=1;#20 SWA=0;SWB=1;#20 SWA=1;#20 SWA=0;SWB=0;SWC=1;#20 SWC=0;P=5'd2;NuA=6'd010000;endinteger i;initial#80beginfor(i=0;i<16;i=i+1)#20 IR=i; endendmodulemicro_controller.bdfMicro_controller.vt`timescale 1 ns/ 1 psmodule micro_controller_vlg_tst(); reg eachvec;reg C;reg CLR_;reg INT;reg [7:4] IR;reg SWA;reg SWB;reg SWC;reg T3;reg Z;wire ABUS;wire ARINC;wire CIN;wire [39:0] CM;wire DRW;wire IABUS;wire INTDI;wire INTEN;wire LAR;wire LDC;wire LDZ;wire LIAR;wire LIR;wire LPC;wire M;wire MBUS;wire MEMW;wire PCADD;wire PCINC;wire [3:0] S;wire SBUS;wire [3:0] SEL;wire SELCTL;wire STOP;micro_controller i1 ( .ABUS(ABUS),.ARINC(ARINC),.C(C),.CIN(CIN),.CLR_(CLR_),.CM(CM),.DRW(DRW),.IABUS(IABUS),.\INT (INT),.INTDI(INTDI),.INTEN(INTEN),.IR(IR),.LAR(LAR),.LDC(LDC),.LDZ(LDZ),.LIAR(LIAR),.LIR(LIR),.LPC(LPC),.M(M),.MBUS(MBUS),.MEMW(MEMW),.PCADD(PCADD),.PCINC(PCINC),.S(S),.SBUS(SBUS),.SEL(SEL),.SELCTL(SELCTL),.STOP(STOP),.SWA(SWA),.SWB(SWB),.SWC(SWC),.T3(T3),.Z(Z));initialbeginCLR_=0;T3=0;#30 Z=0;C=0;INT=0;CLR_=1;SWC=0;SWB=0;SWA=0; endalwaysbegin#20 T3=~T3;endinteger i;initialbeginfor(i=1;i<16;i=i+1)begin#80 IR=i;endendendmodulereg8同ALU模块中的reg8mux2_1mux2_1.vmodule mux2_1(d0,d1,sel,dout);input [3:0]d0;input [3:0]d1;input sel;output dout;reg [3:0]dout;always (d0 or d1 or sel) case(sel)1'b0 : dout=d0;1'b1 : dout=d1;endcaseendmodulemux2_1.vt`timescale 1 ps/ 1 psmodule mux2_1_vlg_tst();reg eachvec;reg [3:0] d0;reg [3:0] d1;reg sel;wire [3:0] dout;mux2_1 i1 (.d0(d0),.d1(d1),.dout(dout),.sel(sel));initial begin d0=4'b0001;d1=4'b1110;endinteger i;initialwhile(1)beginfor(i=0;i<2;i=i+1)begin#50 sel=i;endend endmoduleUCU_ir_1仿真测试(1)ADD-SUB-AND-INC指令,2个CPU周期Testbench`timescale 1 ns/ 1 ps module ucu_ir_vlg_tst();reg eachvec;reg C;reg CLR_;reg [7:0] INS;reg INT;reg SWA;reg SWB;reg SWC;reg T3;reg Z;wire ABUS;wire ARINC;wire CIN;wire [39:0] CM;wire DRW;wire IABUS;wire INTDI;wire INTEN;wire LAR;wire LDC;wire LDZ;wire LIAR;wire LIR;wire LPC;wire M;wire MBUS;wire MEMW;wire PCADD;wire PCINC;wire [1:0] RD;wire [1:0] RS;wire [3:0] S;wire SBUS;wire STOP;ucu_ir i1 (.ABUS(ABUS),.ARINC(ARINC),.C(C),.CIN(CIN),.CLR_(CLR_),.CM(CM),.DRW(DRW),.IABUS(IABUS),.INS(INS),.\INT (INT),.INTDI(INTDI),.INTEN(INTEN),.LAR(LAR),.LDC(LDC),.LDZ(LDZ),.LIAR(LIAR),.LIR(LIR),.LPC(LPC),.M(M),.MBUS(MBUS),.MEMW(MEMW),.PCADD(PCADD),.PCINC(PCINC),.RD(RD),.RS(RS),.S(S),.SBUS(SBUS),.STOP(STOP),.SWA(SWA),.SWB(SWB),.SWC(SWC),.T3(T3),.Z(Z));initialbeginCLR_=0;T3=1;#30 CLR_=1;Z=0;C=0;INT=0;SWC=0;SWB=0;SWA=0;endalways begin#10 T3=0;#20 T3=1;endinteger i;initialbegin#40 INS=8'b00010001;for(i=33;i<255;i=i+16)begin#60 INS=i;endend endmodule(2)LD-ST-JC指令,3个CPU周期Testbench`timescale 1 ns/ 1 psmodule ucu_ir_vlg_tst();reg eachvec;reg C;reg CLR_;reg [7:0] INS;reg INT;reg SWA;reg SWB;reg SWC;reg T3;reg Z;wire ABUS;wire ARINC;wire CIN;wire [39:0] CM; wire DRW;wire IABUS;wire INTDI;wire INTEN;wire LAR;wire LDC;wire LDZ;wire LIAR;wire LIR;wire LPC;wire M;wire MBUS;wire MEMW;wire PCADD;wire PCINC;wire [1:0] RD; wire [1:0] RS; wire [3:0] S; wire SBUS;wire STOP;ucu_ir i1 (.ABUS(ABUS),.ARINC(ARINC),.C(C),.CIN(CIN),.CLR_(CLR_),.CM(CM),.DRW(DRW),.IABUS(IABUS),.INS(INS),.\INT (INT),.INTDI(INTDI),.INTEN(INTEN),.LAR(LAR),.LDC(LDC),.LDZ(LDZ),.LIAR(LIAR),.LIR(LIR),.LPC(LPC),.M(M),.MBUS(MBUS),.MEMW(MEMW),.PCADD(PCADD),.PCINC(PCINC),.RD(RD),.RS(RS),.S(S),.SBUS(SBUS),.STOP(STOP),.SWA(SWA),.SWB(SWB),.SWC(SWC),.T3(T3),.Z(Z));initialbeginCLR_=0;T3=1;Z=0;C=0;INT=0;SWC=0;SWB=0;SWA=0;#30 CLR_=1;endalways begin#10 T3=0;#20 T3=1;endinteger i;initialbegin#40 INS=8'b01011110;for(i=110;i<111;i=i+16)begin#90 INS=i;endfor(i=112;i<225;i=i+16)begin#90 INS=i;endend endmodule(3)JZ-JMP-OUT-STP指令Testbench`timescale 1 ns/ 1 psmodule ucu_ir_vlg_tst();reg eachvec;reg C;reg CLR_;reg [7:0] INS;reg INT;reg SWA;reg SWB;reg SWC;reg T3;reg Z;wire ABUS;wire ARINC;wire CIN;wire [39:0] CM; wire DRW;wire IABUS;wire INTDI;wire INTEN;wire LAR;wire LDC;wire LDZ;wire LIAR;wire LIR;wire LPC;wire M;wire MBUS;wire MEMW;wire PCADD;wire PCINC;wire [1:0] RD; wire [1:0] RS; wire [3:0] S; wire SBUS;wire STOP;ucu_ir i1 (.ABUS(ABUS),.ARINC(ARINC),.C(C),.CIN(CIN),.CLR_(CLR_),.CM(CM),.DRW(DRW),.IABUS(IABUS),.INS(INS),.\INT (INT),.INTDI(INTDI),.INTEN(INTEN),.LAR(LAR),.LDC(LDC),.LDZ(LDZ),.LIAR(LIAR),.LIR(LIR),.LPC(LPC),.M(M),.MBUS(MBUS),.MEMW(MEMW),.PCADD(PCADD),.PCINC(PCINC),.RD(RD),.RS(RS),.S(S),.SBUS(SBUS),.STOP(STOP),.SWA(SWA),.SWB(SWB),.SWC(SWC),.T3(T3),.Z(Z));initialbeginCLR_=0;T3=1;Z=0;C=0;INT=0;SWC=0;SWB=0;SWA=0;#30 CLR_=1;endalways begin#10 T3=0;#20 T3=1;endinteger i;initialbegin#40 INS=8'b10000000;for(i=144;i<145;i=i+16)begin#90 INS=i;endfor(i=161;i<225;i=i+63)begin#60 INS=i;endend endmodule功能仿真:时序仿真:仿真测试1.读存储器,验证已经写入存储器指定单元的数据(SWC SWB SWA=010) 从00H开始连续读00-05H,从30H开始连续读30-32HTestbench:`timescale 1 ns/ 1 psmodule tatol_vlg_tst();reg CLR_;reg INT;reg [7:0] SD;reg SWA;reg SWB;reg SWC;reg T1;reg T2;reg T3;wire [7:0] DBUS;tatol i1 (.CLR_(CLR_),.DBUS(DBUS),.\INT (INT),.SD(SD),.SWA(SWA),.SWB(SWB),.SWC(SWC),.T1(T1),.T2(T2),.T3(T3));initialbeginINT=0;。
模型机报告_

模型机实验报告一、实验原理模型机总结构图如下:模型机由存储器单元、运算单元构成的数据通路模块和控制器模块、显示模块组成的能够实现一定的运算功能的非常简单的CPU。
其中的运算单元、存储单元通过数据总线相连,寄存器、RAM模块便通过数据总线进行数据的传输以实现相应的功能。
CPU的大部分的控制信号均由控制器模块发出。
控制单元的核心是指令存储器rom单元,rom指令集有:控制单元、总线、运算器,都是由vhdl代码编写。
各单元(模块)的功能和相应代码如下(模型机的完整代码见附录):①数据存储器ramram8:RAM:=(x"20",x"0D",x"c0",x"0A",x"e0",x"08",x"55",x"8A",x"F0",x"0f",x"80",x"a0",x"00 ",x"55",x"8a",x"f0",x"ff",others=>x"00");ram初始化前16个值分别为x"20",x"0D",x"c0",x"0A",x"e0",x"08",x"55",x"8A",x"F0",x"0f",x"80",x"a0",x"00",x"55",x"8a", x"f0",x"ff",其余的单元初始化为0x00.②指令寄存器IRIR的值存的是ram[ar]的前三位。
计算机组成原理实验报告基本模型机和复杂模型机的设计

计算机组成原理实验报告基本模型机和复杂模型机的设计1.引言2.设计目标本次实验的设计目标是实现一个满足基本要求的计算机模型,了解计算机的基本组成结构和工作原理。
然后我们将设计一个更复杂的模型,通过增加功能模块和优化设计,实现更高级的计算能力和更好的性能。
3.实验方法基本模型机的设计主要包括五个核心模块:输入模块、中央处理器(CPU)、存储器、控制器和输出模块。
我们将使用VHDL语言来实现这些模块,并使用FPGA来实现整个基本模型机。
复杂模型机的设计在基本模型机的基础上进行扩展和优化。
我们将对CPU进行升级,加入多核处理器和并行计算能力,增加存储器容量和传输速率,优化控制器的运行效率。
通过这些优化,我们可以提高复杂模型机的计算性能和运行效率。
4.实验结果4.1基本模型机的实验结果基本模型机的实验结果显示,我们成功实现了输入输出功能,能够将用户的输入数据送入存储器,并通过CPU进行计算后将结果输出。
虽然这个模型的计算能力和性能较低,但是它对于初学者来说是一个良好的实践项目。
4.2复杂模型机的实验结果复杂模型机的实验结果显示,我们成功实现了多核处理器和并行计算的功能,并大幅提升了计算性能和运行效率。
存储器的容量和传输速率的提升也带来了更高的数据处理能力。
控制器的优化使得整个模型机的运行更加稳定和高效。
5.实验总结通过设计和实现基本模型机和复杂模型机,我们加深了对计算机组成原理的理解,并掌握了相关的设计和实践技巧。
实验结果表明,我们的设计能够满足计算机的基本要求,并具有一定的性能和计算能力。
通过进一步优化和扩展,我们可以设计出更高级的计算机模型,满足更多应用需求。
[1]《计算机组成原理》李文新,清华大学出版社,2024年。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机组成原理--模型机设计报告
作者姓名:
专业:网络工程
学号:
指导教师:
完成日期:2016年1月6日
目录
课程设计任务书 (3)
1课程设计目的 (3)
2课程设计设备 (3)
3课程设计内容 (4)
3.1课程设计原理 (4)
3.2实验步骤 (6)
4课程设计结果 (10)
5课程设计总结 (14)
5.1课程设计的心得、经验教训及注意事项 (14)
5.1.1心得体会 (14)
5.1.2经验教训 (14)
5.1.3注意事项 (14)
参考文献 (14)
课程设计任务书
学生姓名:专业班级: 1320552
指导教师:工作单位:
题目:基本模型机的设计与实现
初始条件
1.完成《计算机组成原理》课程教学与实验
2.Proteus仿真系统
要求完成的主要任务(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1.掌握简单指令系统计算机的微控制器功能与结构特点
2.熟悉Proteus仿真系统
3.在Proteus仿真系统中确认运行结果
4.形成简单指令系统计算机的整机概念
1课程设计目的
设计并实现基本模型机:
(1)理解计算机工作原理
(2)设计并验证一个定点计算机模型
(3)增加一个浮点运算单元
2课程设计设备
PC机+Win 2003+proteus仿真器
3课程设计内容
3.1课程设计原理
部件实验过程中,各部件单元的控制信号是以人为模拟产生为主,而本次实验将能在微程序控制下手动产生各部件单元的控制信号,实现特定指令的功能。
如运算器实验中对74LS-181芯片的控制,存储器中对存储器芯片的控制信号,以及几个实验中对输出设备的控制通过LED灯来显示结果。
这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
本实验采用五条机器指令:IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移)。
基本模型机数据通路框图:
基本模型机微程序流程图:
3.2实验步骤
1、该基本模型机主要有运算器和存储器两大功能器件构成,首先设计运算器
并对其进行功能验证。
(1)实验原理图:
(2)实验电路图:
(3)功能验证:
如图:
通过下方的单刀双掷开关控制数据的输入,两个74LS273进行数据的锁存,通过181进行运算,将实验结果通过74LS245经总线输出,最后结果由LED显示。
对其进行正逻辑的算数运算,及令M=0,进行验证。
初始状态:74LS245置于高电平,74LS273置于低电平,S3、S2、S1、S0置0;
通过开关输入数据,分别将S3、S2、S1、S0置于高低电平,验证下表。
验证结果:运算器连接正确。
2、设计存储器并于运算器相连。
(1)实验原理图:
(2)实验电路图:
通过74LS373将数据写入6116存储器,然后将74LS245的导通开关关掉,读取6116里面的数据,并将数据以LED灯的形式得以验证。
(3)读写操作:
初始状态:74LS273置于低电平,6116关闭。
写操作:通过开关,手动输入8位2进制数作为地址存储,SW19置于高电平,完成写操作后关闭。
读操作:通过6116进行读操作,完成地址的存储。
4课程设计结果
1、实验电路图
2、实验结果
地址操作数输出
01110001 00000001 00000010 地址的写入:
操作数的写入
关闭存储开关,打开运算器,273高电平有效,245低电平有效
5课程设计总结
5.1课程设计的心得、经验教训及注意事项
5.1.1心得体会
通过本次实验理解了计算机的工作原理,设计并验证了一个定点计算机模型,实现了浮点运算的功能。
在之前的单个运算器与存储器实验中能够在老师的指导下完成基本任务,在基本模型机的实验中遇到了一些问题,但通过与同学的讨论最终完成了实验。
思考内容:
片内总线与系统总线的功能不同,片内总线是芯片内部的总线,是CPU芯片内部寄存器与寄存器之间、寄存器与ALU之间的公共连接线。
系统总线是系统内各功能部件之间相互连接的总线。
5.1.2经验教训
在做单个的运算器、存储器的实验时,通过老师的指导可以完成基本功能,但是对知识点掌握不是很熟悉,有些细节问题没有注意到,导致在本次的课程设计中,出现了不少问题。
但通过与同学的讨论,最终得出正确设计方案。
在以后的学习生活中,我一定会力求把握每个知识点,注重理论与实际的结合。
5.1.3注意事项
1、在进行读写操作时,必须先将第一地址写入,再写入操作数,不能连续写入;
2、连接电路时一定要注意条理清晰、布局合理,方便以后的错误查询及修改;
3、区分不同芯片,注意74LS273为高电平有效,74LS245低电平有效,区分6112的不同接口。
参考文献
[1]蒋本珊.计算机组成原理.北京:清华大学出版社,2004。