组成原理 基本模型机的设计与实现实验报告

合集下载

简单模型机组成原理实验报告

简单模型机组成原理实验报告

简单模型机组成原理实验报告简单模型机是一种学习机械原理和电子技术的教学工具,它可以帮助学生理解机械结构和电路原理,提高学生的实验能力和创新能力。

本文将介绍简单模型机的组成原理和实验过程。

一、简单模型机的组成原理简单模型机由机械结构和电路控制两部分组成。

机械结构包括电机、齿轮、链条、轮子、滑轮等零部件,这些零部件组成了模型机的动力系统。

电路控制包括电源、电机控制器、传感器、LED灯等电子元件,这些元件组成了模型机的控制系统。

模型机的动力系统和控制系统通过电线连接在一起,实现了模型机的运动和控制。

二、简单模型机的实验过程1. 组装机械结构。

根据模型机的说明书,将各个零部件按照要求组装在一起,包括电机、齿轮、链条、轮子、滑轮等零部件。

组装的过程需要注意每个零部件的位置和连接方式。

2. 连接电路控制。

将电源、电机控制器、传感器、LED灯等元件按照要求连接在一起,形成一个控制电路。

电路的连接需要注意电线的颜色和连接方式,确保电路的正常工作。

3. 调试机械结构。

将电源接上,打开电机控制器,测试机械结构的运动情况,包括电机转动、齿轮传动、轮子转动等。

如果出现异常情况需要及时停机检查。

4. 调试电路控制。

将传感器连接到电路控制中,测试传感器的工作情况,包括检测光线、声音、温度等。

如果传感器检测到异常情况,控制器会发出警报信号或控制电机停止运动。

5. 进行实验。

根据实验要求,调整机械结构和电路控制,进行不同的实验,包括测量速度、转动角度、距离等。

实验过程需要记录数据和结果,进行分析和总结。

三、结论通过简单模型机的组装和实验,可以帮助学生深入理解机械原理和电路控制原理,提高学生的实验能力和创新能力。

同时,模型机的组装和实验也可以培养学生的动手能力和团队精神,促进学生的综合素质的提高。

基本模型机的设计与实现实验报告

基本模型机的设计与实现实验报告

基本模型机的设计与实现实验报告本文将围绕“基本模型机的设计与实现实验报告”进行分析和阐述。

基本模型机的设计与实现是计算机系统课程中的重点内容,是学生理解计算机系统的核心;设计和实现基本模型机需要学生掌握计算机组成原理的基本知识,能够编写汇编语言程序和理解存储器层次结构等相关概念。

一、实验目的本次计算机系统实验的目的是掌握CPU的设计与实现,以及理解汇编语言的底层执行过程。

通过本次实验,学生可以深入了解计算机系统的基本组成部分,从而提高对计算机实现原理的认识和理解。

二、实验中设计与实现模型机的步骤1、确定模型机性能要求根据实验要求,我们需要设计出一个能够运行汇编语言程序的模型机。

此时,我们需要确定模型机的性能需求,如运行速度、存储容量和输入输出设备等方面。

2、设计和实现CPU在模型机中,CPU是核心部件,所以首先需要设计和实现CPU。

CPU需要包括寄存器、算术逻辑单元、控制器和取指令等组成部分。

由于我们使用的是逻辑电路实现,所以需要进行逻辑门设计,采用Verilog语言来实现。

3、设计和实现存储器存储器是CPU所需的重要组成部分之一,我们需要为CPU设计实现一套存储器,包括RAM和ROM两部分,其中RAM用于存储数据,ROM用于存储指令。

4、设计和实现输入输出设备在模型机中,输入输出设备也是必不可少的部分。

我们需要设计并实现一套输入输出设备,用于用户输入指令和数据,以及模型机输出结果。

5、编写汇编程序在完成模型机的设计和实现后,我们需要编写汇编程序来测试模型机的功能是否正常。

我们可以编写一些简单的汇编程序来测试模型机的运行速度和结果准确性。

三、实验结果与分析经过实验,我们成功地设计并实现了一套基本模型机,并编写了一些简单的汇编程序进行测试。

模型机具有较高的运行速度和存储容量,并且可以实现输入输出设备的基本功能。

同时,我们也发现了一些问题,如指令与数据存储的冲突等,需要进一步改进。

在完成实验过程中,我们深刻理解了计算机系统的结构和运作原理,提高了对计算机系统的认识和理解能力。

实验四 模型机设计与实现——实验报告

实验四  模型机设计与实现——实验报告

专业级班学号姓名实验报告实验四模型机的设计与实现一、实验目的1、构造一台基本模型计算机。

2、掌握在模型计算机上进行微程序编制、指令输入、运行调试的方法。

二、实验设备DVCC-C5JH计算机组成原理教学实验系统一台,排线若干。

三、实验原理:部件试验过程中,各部件单元的控制信号是人为模拟产生的,而本次实验将能在微程序控制下自动产生各部件单元空间信号,实现特定指令的功能,这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。

四、实验内容1、模型机指令设计:(这里填写各模型机指令的指令助记符、指令机器编码、指令说明)DEC R0 0101 0000 (R0)-1→R0AND addr,R0 0110 0000 (R0) 与[addr]→R02、实验过程:先详细了解实验的原理然后进行以下步骤:(以下步骤应根据自己实际情况补充完整)⑴设计模型机的数据通路图,根据实际机器指令要求,设计微程序流程图及确定微地址;(下面绘制:①数据通路图;②微程序流程图及相应的微指令地址。

)1、2、PC A RPC AR RAM B US RAM B US SW R PC A RRAM B USR0BUS BUS R01 1103 04 12 07 31 10RAM B US02 R0DR1 05 (DR1)+(D R2)R006 PC A RRAM B US RAM B US32 17 R0DR125 13 PC A RRAM B US 26 14 R0DR1 (DR1)-1R0 PC A R RAM B US RAM B USR0DR1 (DR1)+(D R2)R01516 33 34 3536 37微指令代码PC AR PC+1(SW)BUS BUS DR1DR1RAMPC AR PC+1RAM BUS BUS DR1DR1LED21243020 2227⑵根据⑴的设计,编制好微程序;(下面写设计的微程序,要标出各微指令在控存中的地址,可以用联机调试中的十六进制形式编写)$ M00108101$ M0182ED01$ M0248C000$ M0304E000$ M0405B000$ M0506A201$ M06019A95$ M0719E000$ M08011000$ M0983ED01$ M0A87ED01$ M0B9AED01$ M0C96ED01$ M0D1BA201$ M0E9CED01$ M0F15A000$ M1092ED01$ M1194ED01$ M1217A000$ M13018001$ M14182000$ M15010A07$ M1681D100$ M17100A07$ M18118A06$ M19018202$ M1A0FE000$ M1B018AF5$ M1C1DE000$ M1D1EA000$ M1E1FB201$ M1F018AB9⑶根据⑴中的数据通路,连接好实验线路,仔细检查无误后接通电源;⑷将编制好的微程序写入控存;⑸使用上面设计好的机器指令编写机器指令程序,存放在内存中;(下面列出编写的机器指令程序,可以用联机调试中的十六进制形式编写,要写明对应的内存地址和相应的内存内容,且要进行简要的指令说明)$ P0000 IN$ P0110 ADD[0CH] R0+[0CH] -> R0$ P020C 01$ P0320 STA[0BH] R0->[0BH]$ P040D$ P0530 OUT[0BH] [0BH]->BUS$ P060D$ P0740 JMP[00H] 00H->PC$ P0800$ P0950 DEC [R0]-1->R0$ P0A60 AND [R0][0DH]->R0$ P0B0D 05$ P0C01 内容为01$ P0D05 内容为05⑹执行⑸中的机器指令程序,并验证前面的设计是否正确,若不正确请修改前面的设计和微程序;四、实验结果机器指令执行的情况:①第一次执行情况(记录实验时发生的情况包括何处错误):②第二次执行情况:……(调试过程根据自己情况进行填写)五、实验总结。

计算机组成原理课程设计报告(基本模型机设计与实现)

计算机组成原理课程设计报告(基本模型机设计与实现)

本科生课程实习学生姓名学生学号所在专业所在班级指导教师职称时间成绩目录一、课程设计题目 (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中。

计算机组成原理-实验报告四-基本模型机设计与实现

计算机组成原理-实验报告四-基本模型机设计与实现

计算机组成原理实验报告
学院:计算机科学与信息专业:班级:
指令划分为操作码和地址码字段,由二进制数构成,为了执行任何给定的指令,必须对操作码进行测试P(1),通过节拍脉冲T4的控制以便识别所要求的操作。

“指令译码器”根据指令中的操作码译码,强置微控器单元的微地址,使下一条微指令指向相应的微程序首地址。

本系统有两种外部I/O设备,一种是二进制代码开关,它作为输入设备(INPUTDEVICE);另一种是LED块,它作为输出设备(OUTPUT DEVICE)。

本实验设计机器指令程序如下:
地址(二进制)内容(二进制)助记符号说明
0000 0000 0000 IN R0,SW "INPUT DEVICE"-->R0
0001 0001 0000 ADD R0,09H R0+「09H」-->R0
0010 0000 1001
0011 0010 0000 STA 0BH,R0 R0-->「0BH」
0100 0000 1011
0101 0011 0000 OUT BUS ,0AH 「0AH」-->BUS
0110 0000 1010
0111 0100 0000 JMP 00H 00H-->PC
1000 0000 0000
1001 0101 0101 自定
1010 1010 1010 自定
1011 求和结果。

基本模型机系统实验报告

基本模型机系统实验报告

一、实验目的1. 了解计算机的基本组成和原理,熟悉计算机硬件和软件的关系。

2. 掌握基本模型机的搭建方法和调试技巧。

3. 通过实验加深对计算机指令系统、微程序控制器和存储器等概念的理解。

二、实验原理计算机是由硬件和软件两部分组成的,硬件主要包括中央处理器(CPU)、存储器、输入输出设备等,软件则是指挥计算机完成各种任务的程序。

本实验通过搭建一个基本模型机,模拟计算机的基本工作过程,让学生深入了解计算机的组成和原理。

三、实验环境1. 实验设备:基本模型机实验箱、连接线、电源、计算机等。

2. 实验软件:Dais-CMH/CMH计算器组成原理教学实验系统。

四、实验内容1. 搭建基本模型机(1)根据实验箱的说明,将CPU、存储器、输入输出设备等硬件连接好。

(2)连接好电源,确保各部分电路正常工作。

(3)使用Dais-CMH/CMH计算器组成原理教学实验系统,编写控制程序,实现基本模型机的运行。

2. 调试基本模型机(1)检查硬件连接是否正确,确保电路无短路、断路等问题。

(2)编写控制程序,实现基本模型机的指令系统。

(3)通过调试,使基本模型机能够按照预期的工作流程运行。

3. 实验步骤(1)搭建基本模型机1)将CPU、存储器、输入输出设备等硬件连接好。

2)连接好电源,确保各部分电路正常工作。

3)使用Dais-CMH/CMH计算器组成原理教学实验系统,编写控制程序,实现基本模型机的运行。

(2)调试基本模型机1)检查硬件连接是否正确,确保电路无短路、断路等问题。

2)编写控制程序,实现基本模型机的指令系统。

3)通过调试,使基本模型机能够按照预期的工作流程运行。

4. 实验结果与分析(1)实验结果通过搭建和调试基本模型机,成功实现了计算机的基本工作过程,包括取指、译码、执行、存储等步骤。

(2)实验分析1)通过实验,加深了对计算机基本组成和原理的理解,认识到硬件和软件的紧密关系。

2)掌握了基本模型机的搭建方法和调试技巧,为以后的学习奠定了基础。

计算机组成原理课程设计报告(基本模型机设计与实现)

计算机组成原理课程设计报告(基本模型机设计与实现)

本科生课程实习学生姓名学生学号所在专业所在班级指导教师职称时间成绩目录一、课程设计题目 (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中。

模型机设计与实现报告

模型机设计与实现报告

模型机设计与实现报告一、引言随着计算机技术的快速发展,模型机已经成为了一个重要的研究领域。

模型机的设计和实现不仅可以帮助人们更好地理解计算机基本原理,而且还可以培养学生的动手能力和创新思维。

本文将介绍我们小组设计和实现的一台模型机,包括设计思路、硬件和软件实现,以及功能和应用。

二、设计思路我们的模型机以现代计算机的基本原理为基础,采用冯·诺依曼结构。

核心思想是将计算机分为五大部分:中央处理器(CPU)、内存(Memory)、输入设备(Input)、输出设备(Output)和控制器(Control Unit)。

CPU 是整个计算机的核心,负责处理数据和指令。

Memory存储程序和数据。

Input和Output分别处理用户的输入和输出。

Control Unit负责控制整个计算机的工作流程。

三、硬件实现我们的模型机采用了简化的硬件组件,包括:- 中央处理器(CPU):采用单核心的微处理器,包括算术逻辑单元(ALU)和控制单元(CU)。

- 内存(Memory):采用随机存取存储器(RAM),用于存储指令和数据。

- 输入设备(Input):采用键盘作为输入设备,用户可以输入数据和指令。

- 输出设备(Output):采用显示器作为输出设备,用户可以查看计算结果。

- 控制器(Control Unit):采用简单的控制电路,用于控制各个硬件组件的工作流程。

四、软件实现我们使用汇编语言编写了一套简单的指令集,包括数据传输指令、算术运算指令和控制指令等。

同时,我们还编写了一套操作系统,用于管理内存、处理输入输出和控制程序的执行流程。

五、功能和应用我们的模型机具备基本的计算功能,可以进行加减乘除等算术运算,并可以支持条件判断和循环等控制结构。

同时,我们还支持了一些额外的功能,比如可以调用指定的函数和库,可以进行简单的图形化界面设计等。

我们的模型机可以用于教学、研究和娱乐等领域。

对于学生而言,可以帮助他们更深入地理解计算机原理,提高动手能力。

计算机组成原理课程设计模型机实验报告 精品

计算机组成原理课程设计模型机实验报告 精品

实践报告计算机组成原理--模型机设计报告作者姓名:专业:计算机科学与技术学号:指导教师:完成日期:年月号******学院计算机工程系摘要“计算机组成原理”是计算机科学与技术系的一门核心专业基础课程,在计算机专业中起了很重要的作用。

课程中分部分介绍了计算机的各个部件,我们有必要将它们组合起来以对计算机有一个整体的认识。

这次课程设计通过对一个简单模型机的设计与实现,是我们对计算机的基本组成、部件的设计、部件间的连接有更深的理解。

依次设计计算机的几个部件并进行连接使成为一个完整的模型机。

通过运行和调试,使之正常工作。

关键词:运算器;控制器;存储器;输入输出接口;模型机正文:一、课设目的要求:《计算机组成原理》是一门理论性、实践性均较强的专业基础课,要求学生具有一定的电路分析、指令系统编写能力、软件设计能力。

通过计算机组成原理实践周,要突出《计算机组成原理》理论联系实际的特点,培养实践动手能力。

1.培养学生运用理论知识和技能,构建建立问题逻辑结构,锻炼学生分析解决实际问题的能力。

2.培养学生使用PROTEUS软件分析和设计计算机内部器件的方法和技巧。

3.培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。

4.通过实践设计,要求学生在指导教师的指导下,独立完成设计课题的全部内容,包括:(1)通过调查研究和上机实习,掌握PROTEUS软件的设计和仿真调试技能。

(2)掌握计算机系统的组成结构及其工作原理。

(3)设计实现一个简单计算机的模型机,并能够使用PROTEUS软件进行电路仿真验证二、课设内容:利用所学的计算机结构和工作原理的知识,要求学生独立完成简单计算机的模型机设计,并用PROTEUS软件进行验证。

在分析设计过程中,要求学生养成良好的习惯,学会分析实际问题,并利用所学的知识建立系统的逻辑结构,学会PROTEUS调试技巧和方法,通过逻辑设计和工程设计培养调试硬件电路的实际动手能力。

要求学生掌握数字逻辑电路中故障的一般规律,以及排除故障的一般原则和方法;锻炼分析问题与解决问题的能力,在出现故障的情况下,独立分析故障现象,并排除故障。

广东海洋大学计算机组成原理课程设计实习报告(最新版)--基本模型机的实现

广东海洋大学计算机组成原理课程设计实习报告(最新版)--基本模型机的实现

本科生课程实习基本模型机的设计与实现课程名称计算机组成与结构课程实习学生姓名学生学号所在专业计算机科学与技术所在班级指导教师成绩2019年12月19日目录1 设计任务与要求 (2)1.1 设计目的 (2)1.2 设计内容 (2)1.3 设计要求 (2)2 设计思想 (2)2.1 主要使用芯片 (2)2.2 基本原理 (2)3 设计方案 (3)3.1 指令格式表 (3)3.2 指令流程图与控制信号表 (4)3.3 接线图 (6)3.4 模块功能 (6)4 测试结果及分析 (7)4.1 测试过程 (7)4.2 测试结果 (7)5 源程序 (11)6 总结 (12)参考文献 (12)基本模型机的设计与实现1设计任务与要求1.1 设计目的(1)将微程序控制器同执行部件(整个数据通路)联机,组合一台模型计算机;(2)用微程序控制器控制模型机数据通路(3)通过CPU运行九条指令(排除中断指令)组成的简单程序,掌握机器指令与微指令的关系,牢固建立计算机的整机概念1.2 设计内容设计不少于10条指令的指令系统,其中包含算术逻辑指令,访问内存指令,程序控制指令,输入输出指令,停机指令。

包括直接、间接、变址和相对寻址等多种寻址方式。

设计出微程序,其中数据字长为8位,采用定点补码表示,指令字长为8的整数倍。

微指令字长为38位。

上机调试,并给出测试思路和具体程序段。

1.3 设计要求了解并掌握计算机组成原理设计的一般方法,具备初步的独立分析和设计能力;通过该课程设计的学习,总结计算机组成原理课程的学习内容,层次化设计方法、多路开关,逻辑运算部件,微程序控制的运算器设计、微程序控制的存储器设计、简单计算机的设计。

提高综合运用所学的理论知识和方法独立分析和解决问题的能力。

2 设计思想2.1 主要使用芯片该实验用到了GAL22V10,74LS181,HN58C65,74LS298,ISPLI1016,IDT7132等芯片。

2.2 基本原理微指令的格式如下所示:2.2.1指令的设计思想主要是根据实验指导提供的指令执行周期图,根据微指令的格式分析哪一位信号应该开启,即状态置为1,然后将其按照每8位二进制合成一个W值(十六进制数),就是组成指令的源程序。

基本模型机实验报告

基本模型机实验报告

基本模型机实验报告一、实验目的本实验旨在通过构建一个基本模型机,深入了解计算机的工作原理,包括数据的二进制表示、指令执行、内存管理以及简单的输入输出。

二、实验设备1. 微处理器(如 Intel 8080)2. 存储器芯片(如 Intel 2114)3. 输入设备(如开关或键盘)4. 输出设备(如LED灯或显示器)5. 电源三、实验步骤步骤一:构建模型机根据实验设备,将微处理器、存储器、输入设备和输出设备连接起来,形成一个简单的模型机。

确保所有连接正确无误,电源供应稳定。

步骤二:数据表示与存储在模型机中,使用二进制数表示数据。

将数据存储在存储器中,并观察数据在存储器中的表示形式。

例如,使用开关模拟二进制数的0和1,将开关按下表示0,不按下表示1。

步骤三:指令执行编写简单的汇编指令,如加法指令,并在模型机上执行。

观察指令的执行过程,包括取指令、解码指令、执行指令和写回结果等步骤。

步骤四:内存管理模拟内存的读写操作,了解内存地址的概念以及如何通过地址访问存储在内存中的数据。

观察内存地址的增加和减少对数据读写的影响。

步骤五:输入输出操作通过输入设备输入数据,观察模型机如何将输入的数据存储在内存中。

然后通过输出设备输出数据,了解输出数据的表示形式。

四、实验结果与分析通过本次实验,我们了解了计算机的基本工作原理,包括数据的二进制表示、指令执行、内存管理和输入输出操作。

在实验过程中,我们观察到微处理器负责执行指令,存储器用于存储数据和指令,输入设备用于输入数据,输出设备用于输出数据。

此外,我们还了解了内存地址的概念以及如何通过地址访问存储在内存中的数据。

五、结论与建议本次实验使我们深入了解了计算机的基本工作原理,并掌握了构建简单模型机的方法。

为了进一步提高实验效果,建议在未来的实验中增加更多的设备和功能,例如中断处理、多任务处理等,以便更全面地了解计算机的工作原理。

同时,建议在实验过程中注重细节和观察,以便更好地理解实验结果和原理。

计算机组成原理课程设计报告基本模型机的设计与实现

计算机组成原理课程设计报告基本模型机的设计与实现

计算机组成原理课程设计报告基本模型机的设计与实现
本次课程设计的任务是完成一个基本模型机的设计与实现。

设计经过综合运用了以前所学计算机原理的知识,依照设计要求和指导,实现了一个基本的模型计算机。

本模型机实现的功能有:IN(输入),OUT (输出),ADD(加法),SUB(减法),STA(存数),JMP(跳转)。

设计进行开始,在了解微程序的基本格式,及各个字段值的作用后,按微指令格式参照指令流程图,设计出程序以及微程序,将每条微指令代码化,译成二进制代码表,并将二进制代码转换为联机操作时的十六进制格式文件。

根据机器指令系统要求,设计微程序流程图及确定微地址。

设计的加法和减法中,被加数和被减数都由调试人员输入,而加数和减数都从存储器中读取.最后上机调试,各个功能运行结果正确。

关键词:基本模型机;机器指令;微指令
目录
1、课程设计题目-
2、实验设备-
3、课程设计步骤-
3.1、所设计计算机的功能和用途-
3.2、指令系统-
3.3、总体结构与数据通路-
3.4、设计指令执行流程-
3.5、微指令代码化-
3.6、组装和调试-
4、课程设计总结-
5、附录-8附录1:数据通路图-8附录2:微程序流程图-9附录3:实验接线图-10附录4:实验程序及微程序-11附录5:。

基本模型机的设计与实现

基本模型机的设计与实现

南京晓庄学院信息工程学院计算机组成原理课程实验报告实验名称:基本模型机的设计与实现年级专业班级:14 级计算机专业专本1班班级学号: 14131521 姓名:殷宇翔学号:姓名:学号:姓名:时间: 2016 年 12 月 10 日一、实验目的、要求:1、在掌握部件单元电路实验的基础上,进一步将其组成系统以构造一台基本模型实验计算机。

2、设计五条机器指令,并编写相应的微程序,具体上机调试,掌握整机软硬件组成概念。

二、实验仪器设备、器件及环境:三、实验方法、原理:部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次实验将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。

这里,实验计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。

⑴有关微控制器部分在前一实验中已详细介绍⑵主存储器的读、写和运行为了向主存储器RAM中装入程序或数据,并且检查写入是否正确以及能运行主存储器中的程序,必须设计三个控制操作微程序。

·存储器读操作:拨动总清开关后,置控制开关SWC、SWA为“0 0”时,按要求连线后,连续按“启动运行”开关,可对主存储器RAM连续手动读操作。

·存储器写操作:拨动总清开关后,置控制开关SWC、SWA为“0 1”时,按要求连线后,再按“启动运行”开关,可对主存储器RAM进行连续手动写入。

·运行程序:拨动总清开关后,置控制开关SWC、SWA为“1 1”时,按要求连线后,再按“启动运行”开关,即可转入到第01号“取址”微指令,启动程序运行。

上述三条控制指令用两个开关SWC、SWA的状态来设置,其定义如下:⑶指令寄存器介绍指令寄存器用来保存当前正在执行的一条指令。

当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送到指令寄存器。

指令划分为操作码和地址码字段,由二进制构成,为了执行任何一条给定的指令,必须对操作码进行测试P(1),通过节拍脉冲T4的控制以便识别所要求的操作。

计算机组成实验报告四 实验4 基本模型机实验

计算机组成实验报告四 实验4 基本模型机实验

1、目的与要求1、在掌握部件单元电路实验的基础上,进一步将其组成系统以构造一台基本模型实验计算机。

2、设计五条机器指令,并编写相应的微程序,具体上机调试,掌握整机软硬件组成概念。

参见《计算机组成原理实验指导书》2、实验设备硬件:DVCC-C8JH 实验箱。

计算机DVCC-C8JH联机软件3、实验步骤与源程序线路连接:a、跳线器J1~J12全部拨在右边(自动工作方式);b、跳线器J16、J18、J23、J24全部拨在左边;c、跳线器J13~J15、J19、J25拨在右边;d、跳线器J20~J22、J26、J27连上短路片;e、UJ1连UJ2,JSE1连JSE2,SJ1连SJ2;f、MBUS连BUS2;g、REGBUS连BUS5;h、PCBUS连EXJ2;i、ALUBUS连EXJ3;j、ALUO1连BUS1;k、EXJ1连BUS3;L、将试验箱右侧(侧面)串口与计算机串口连接步骤:⑴连接线路,仔细查线无误后,接通电源。

⑵计算机单击“开始菜单”→程序→DVCC组成原理C8JH,⑶软件界面单击“联接”工具按钮,应保证实验仪与计算机已经建立连接⑷选择实验项目“基本模型机的设计与实现”⑸单击“打开”工具按钮,选择文件C8JHE1,单击打开,屏幕左侧,出现文件内容,即微程序代码⑹单击“调试”工具按钮,下载打开的源程序文件,然后可以单步机器指令,单步执行微指令,屏幕会出现数据的流图。

具体情况如下图示:图1图2 四、实验数据与心得体会实验数据:当全部微程序设计完毕后,应将每条微指令代码化,即按微指令格式将微程序流程图转化成二进制微代码表,如下表所示,再转换成16进制代码文件。

二进制微代码表:设备(LED数码管)进行显示。

然后程序停止(请实验者考虑:如何修改程序,使程序不断从输入设备取出数据,送到输出设备显示。

每次循环过程中,可以使输入设备数据改变,考察输出显示的结果。

)。

设计机器指令程序如下(机器码为十六进制数据)。

基本模型机设计与实现实验报告

基本模型机设计与实现实验报告

实验报告时间:2011.5.6基本模型机设计与实现一、目的要求(1)在掌握单元电路实验基础上,将各部分组成系统,构成一台基本模型计算机。

(2)为其定义五条机器指令,并编写相应的微程序,具体上机调试掌握整机概念。

二、实验仪器与试剂计算机组成原理实验箱。

三、实验原理1、实验中所用的基本模型机实验原理如图1所示。

图1 基本模型机实验原理框图四、实验步骤1、写程序。

方法一:手动写入①将机器指令对应的微代码正确写入2816中。

②使用控制台KWE和KRD进行机器指令的装入和检查。

方法二:联机读/写程序(略)2、运行程序。

单步运行程序、连续运行。

五、实验现象、结果记录及整理首先验证微控制器的存储特性。

将编程开关置为“写入”状态,写入如表2微地址为06~0D的微代码。

每写入一条指令,按一下“启动运行”开关。

再将微地址和总清开关置0,编程开关置为“读”状态,即可验证是否存储正确。

若有错误,则需检查连线或者是重新输入。

经实验,成功显示。

最后,将编程开关置为“运行”状态,即可运行我们写入的微程序。

经实验,结果显示正确。

六、分析讨论与思考题解答(两个解答选择一个填写,也可以自己修改一下填写)解答一:通过这次实践,不仅让我对计算机的基本组成、简单运算器的数据传送通路组成、静态随机存取存储器RAM工作特性及数据的读写方法、时序信号发生电路组成原理、微程序控制器的设计思想和组成原理、微程序的编制、写入过程有了进一步的了解, 也让我觉得自己的动手能力有了很大的提高;自信心也增强了,在课程设计中自己动脑子解决遇到的问题,书本上的知识有了用武之地,这巩固和深化了自己的知识结构。

解答二:通过这次实践,我相信,只要自己在每一次实践中都能仔细思考,课程设计其实都不会很难,关键在于自己能不能认真思考,能不能亲自动手做实验,而不是想着其他人的劳动果实,其次你还要多操作,只有多操作才能从中发现问题,才能及时向老师和同学请教,解决问题,从而更好的掌握书本中知识。

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

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

实验六计算机系统综合设计与实现一、实验目的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;。

计算机组成原理实验报告基本模型机和复杂模型机的设计

计算机组成原理实验报告基本模型机和复杂模型机的设计

计算机组成原理实验报告基本模型机和复杂模型机的设计1.引言2.设计目标本次实验的设计目标是实现一个满足基本要求的计算机模型,了解计算机的基本组成结构和工作原理。

然后我们将设计一个更复杂的模型,通过增加功能模块和优化设计,实现更高级的计算能力和更好的性能。

3.实验方法基本模型机的设计主要包括五个核心模块:输入模块、中央处理器(CPU)、存储器、控制器和输出模块。

我们将使用VHDL语言来实现这些模块,并使用FPGA来实现整个基本模型机。

复杂模型机的设计在基本模型机的基础上进行扩展和优化。

我们将对CPU进行升级,加入多核处理器和并行计算能力,增加存储器容量和传输速率,优化控制器的运行效率。

通过这些优化,我们可以提高复杂模型机的计算性能和运行效率。

4.实验结果4.1基本模型机的实验结果基本模型机的实验结果显示,我们成功实现了输入输出功能,能够将用户的输入数据送入存储器,并通过CPU进行计算后将结果输出。

虽然这个模型的计算能力和性能较低,但是它对于初学者来说是一个良好的实践项目。

4.2复杂模型机的实验结果复杂模型机的实验结果显示,我们成功实现了多核处理器和并行计算的功能,并大幅提升了计算性能和运行效率。

存储器的容量和传输速率的提升也带来了更高的数据处理能力。

控制器的优化使得整个模型机的运行更加稳定和高效。

5.实验总结通过设计和实现基本模型机和复杂模型机,我们加深了对计算机组成原理的理解,并掌握了相关的设计和实践技巧。

实验结果表明,我们的设计能够满足计算机的基本要求,并具有一定的性能和计算能力。

通过进一步优化和扩展,我们可以设计出更高级的计算机模型,满足更多应用需求。

[1]《计算机组成原理》李文新,清华大学出版社,2024年。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

甘肃政法学院本科学生实验报告
(五)
姓名:
学院:
专业:
班级:2011级专升本班
实验课程名称:计算机组成原理
试验时间2011 年12 月5 日
指导教师及职称
实验成绩:
开课时间2011 学年第一学期
甘肃政法学院实验管理中心印制
图5----1
系统涉及到的微程序流程见图5—2,当拟订“取指”微指令时,该微指令的判别测试字段为P(1)测试。

由于“取指”微指令是所有微程序都使用的公用微指令,因此P(1)的测试结果出现多路分支。

本机用指令寄存器的前4位(IR7—IR4)作为测试条件,出现五路分支,占用五个固定微地址单元。

控制台操作为P(4)测试,它以控制台开关SWB、SWA作为测试条件,出现了3路分支,占用3个固定微地址单元。

当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用控存一个微地址单元随意填写。

注意:微程序流程图上的单元地址为8进制。

当全部微程序设计完毕后,应将每条微指令代码化,表5—2即为将
图5—2的微程序流程图按微指令格式转化而成的“二进制微代码表”。

运行微程序
图5---2
下面介绍指令寄存器(IR):指令寄存器用来保存当前正在执行的一条指令。

当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。

指令划分为操作码和地址码字段,由二进制数构成,为了执行任何给定的指令,必须对操作码进行测试[ P(1)],通过节拍脉冲T4的控制以便识别所要求的操作。

“指令译码器”(实验板上标有“INS DECODE”的芯片)根据指令中的操作码译码强置微控器单元的微
求和结果
2、实验步骤:
⑴. 按图5—3连接实验线路。

(2).写程序:
①先将机器指令对应的微代码正确的写入2816中,由于在实验三实验中已将微代码写入E2 PROM芯片中。

②使用控制台KWE和KRD微程序进行机器指令程序的装入和检查。

A:使编程开关处于“RUN”,STEP为“STEP”状态,STOP为“RUN”状态。

B:拨动总清开关CLR(0-1),微地址寄存器清零,程序计数器清零。

然后使控制台SWB、SWA开关置为“0 1”,按动一次启动开关START,微地址显示“010001”
再按动一次START,微地址灯显示“010100”,此时数据开关的内容置为。

相关文档
最新文档