计算机组成原理实验报告
- 格式:doc
- 大小:273.50 KB
- 文档页数:12
实验一:数字逻辑——交通灯系统设计子实验1:7 段数码管驱动电路设计(1)理解利用真值表的方式设计电路的原理;(2)利用Logisim 真值表自动生成电路的功能,设计一个 7 段数码管显示驱动。
二、实验方案设计7 段数码管显示驱动的设计方案:(1)输入:4 位二进制(2)输出:7 段数码管 7 个输出控制信号(3)电路引脚:(4)实现功能:利用 7 段数码管显示 4 位二进制的 16 进制值(5)设计方法:由于该实验若直接进行硬件设计会比较复杂,而7 段数码管显示的真值表较容易掌握,所以我们选择由真值表自动生成电路的方法完成该实验。
先分析设计 7 段数码管显示驱动的真值表,再利用Logisim 中的“分析组合逻辑电路”功能,将真值表填入,自动生成电路。
(6)真值表的设计:由于是 4输入 7输出,真值表共有 16 行。
7输出对应 7个引脚,所以需要依次对照LED 灯的引脚顺序进行设计,如下图所示(注意LED 的引脚顺序):三、实验步骤(1)在实验平台下载实验框架文件RGLED.circ;(2)在Logisim 中打开RGLED.circ 文件,选择数码管驱动子电路;(3)点击“工程”中的“分析组合逻辑电路”功能,先构建4输入和7输出,再在“真值表”中,将已设计好的真值表的所有数值仔细对照着填入表格中,确认无误后点击“生成电路”,自动生成的电路如下图所示:(4)将子电路封装为如下形式:(5)进行电路测试:·自动测试在数码管驱动测试子电路中进行测试;·平台评测自动测试结果满足实验要求后,再利用记事本打开RGLED.circ 文件,将所有文字信息复制粘贴到Educoder 平台代码区域,点击评测按钮进行测试。
四、实验结果测试与分析(1)自动测试的部分结果如下:(2)平台测试结果如下:综上,本实验测试结果为通过,无故障显示。
本实验的关键点在于:在设计时需要格外注重LED 灯的引脚顺序,保证0-9 数字显示的正确性,设计出正确的真值表。
计算机组成原理数据通路实验报告计算机组成原理实验报告计算机组成原理实验报告实验一基本运算器实验一、实验目的1. 了解运算器的组成结构2. 掌握运算器的工作原理3. 深刻理解运算器的控制信号二、实验设备PC机一台、TD-CMA实验系统一套三、实验原理1. (思考题)运算器的组成包括算数逻辑运算单元ALU(Arithmetic and Logic Unit)、浮点运算单元FPU(Floating Point Unit)、通用寄存器组、专用寄存器组。
①算术逻辑运算单元ALU (Arithmetic and Logic Unit)ALU主要完成对二进制数据的定点算术运算(加减乘除)、逻辑运算(与或非异或)以及移位操作。
在某些CPU中还有专门用于处理移位操作的移位器。
通常ALU由两个输入端和一个输出端。
整数单元有时也称为IEU(IntegerExecution Unit)。
我们通常所说的“CPU 是XX位的”就是指ALU所能处理的数据的位数。
②浮点运算单元FPU(Floating Point Unit)FPU主要负责浮点运算和高精度整数运算。
有些FPU还具有向量运算的功能,另外一些则有专门的向量处理单元。
③通用寄存器组通用寄存器组是一组最快的存储器,用来保存参加运算的操作数和中间结果。
④专用寄存器专用寄存器通常是一些状态寄存器,不能通过程序改变,由CPU自己控制,表明某种状态。
而运算器内部有三个独立运算部件,分别为算术、逻辑和移位运算部件,逻辑运算部件由逻辑门构成,而后面又有专门的算术运算部件设计实验。
下图为运算器内部原理构造图2. 运算器的控制信号实验箱中所有单元的T1、T2、T3、T4都连接至控制总线单元的T1、T2、T3、T4,CLR都连接至CON单元的CLR按钮。
T4由时序单元的TS4提供(脉冲信号),其余控制信号均由CON单元的二进制数据开关模拟给出。
控制信号中除T4为脉冲信号外,其余均为电平信号,其中ALU_B为低有效,其余为高有效。
计算机组成实验报告计算机组成实验报告(共3篇)篇一:《计算机组成与结构》实验报告11 .实验目的:1).学习和了解TEC-2000 十六位机监控命令的用法;2).学习和了解TEC-2000 十六位机的指令系统;3).学习简单的TEC-2000 十六位机汇编程序设计;2.实验内容:1).使用监控程序的R 命令显示/修改寄存器内容、D 命令显示存储器内容、E 命令修改存储器内容;2).使用 A 命令写一小段汇编程序,U 命令反汇编刚输入的程序,用G 命令连续运行该程序,用T、P 命令单步运行并观察程序单步执行情况;3、实验步骤1).关闭电源,将大板上的COM1 口与PC 机的串口相连;2).接通电源,在PC 机上运行PCEC.EXE 文件,设置所用PC 机的串口为“1”或“2”, 其它的设置一般不用改动,直接回车即可;3).置控制开关为00101(连续、内存读指令、组合逻辑、16 位、联机),开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意。
其它实验相同;4).按一下“RESET”按键,再按一下“START”按键,主机上显示:TEC-2000 CRT MONITOR Version 1.0 April 2001Computer Architectur Lab.,Tsinghua University Programmed by He Jia >5).用R 命令查看寄存器内容或修改寄存器的内容a.在命令行提示符状态下输入:R↙;显示寄存器的内容图片已关闭显示,点此查看图片已关闭显示,点此查看b.在命令行提示符状态下输入:R R0↙;修改寄存器R0 的内容,被修改的寄存器与所赋值之间可以无空格,也可有一个或数个空格主机显示:寄存器原值:_在该提示符下输入新的值,再用R 命令显示寄存器内容,则R0 的内容变为0036。
图片已关闭显示,点此查看6).用D 命令显示存储器内容在命令行提示符状态下输入:D 2000↙会显示从2000H 地址开始的连续128 个字的内容;连续使用不带参数的 D 命令,起始地址会自动加128(即80H)。
计算机组成原理实验报告实验目的,通过本次实验,深入了解计算机组成原理的相关知识,掌握计算机硬件的基本组成和工作原理。
实验一,逻辑门电路实验。
在本次实验中,我们学习了逻辑门电路的基本原理和实现方法。
逻辑门电路是计算机中最基本的组成部分,通过逻辑门电路可以实现各种逻辑运算,如与门、或门、非门等。
在实验中,我们通过搭建逻辑门电路并进行实际操作,深入理解了逻辑门的工作原理和逻辑运算的实现过程。
实验二,寄存器和计数器实验。
在本次实验中,我们学习了寄存器和计数器的原理和应用。
寄存器是计算机中用于存储数据的重要部件,而计数器则用于实现计数功能。
通过实验操作,我们深入了解了寄存器和计数器的内部结构和工作原理,掌握了它们在计算机中的应用方法。
实验三,存储器实验。
在实验三中,我们学习了存储器的原理和分类,了解了不同类型的存储器在计算机中的作用和应用。
通过实验操作,我们进一步加深了对存储器的认识,掌握了存储器的读写操作和数据传输原理。
实验四,指令系统实验。
在本次实验中,我们学习了计算机的指令系统,了解了指令的格式和执行过程。
通过实验操作,我们掌握了指令的编写和执行方法,加深了对指令系统的理解和应用。
实验五,CPU实验。
在实验五中,我们深入了解了计算机的中央处理器(CPU)的工作原理和结构。
通过实验操作,我们学习了CPU的各个部件的功能和相互之间的协作关系,掌握了CPU的工作过程和运行原理。
实验六,总线实验。
在本次实验中,我们学习了计算机的总线结构和工作原理。
通过实验操作,我们了解了总线的分类和各种总线的功能,掌握了总线的数据传输方式和时序控制方法。
结论:通过本次实验,我们深入了解了计算机组成原理的相关知识,掌握了计算机硬件的基本组成和工作原理。
通过实验操作,我们加深了对逻辑门电路、寄存器、计数器、存储器、指令系统、CPU和总线的理解,为进一步学习和研究计算机组成原理奠定了坚实的基础。
希望通过不断的实践和学习,能够更深入地理解和应用计算机组成原理的知识。
《计算机组成原理》实验报告一一、实验目的:编写程序、上机调试、运行程序是进一步学习和掌握汇编语言程序设计的必要手段。
通过本次实验, 学习、掌握运行汇编程序的相关知识。
1、二、实验内容:2、熟悉实验用微机的软、硬件配置(1)硬件: Intel Celeron 500GHz CPU、128M内存(8M作共享显存)、intel810芯片主板、集成i752显卡、maxtro20G硬盘、ps/2接口鼠标、PS/2接口键盘。
(2)软件:DOS 操作系统Windows98 seMASM汇编语言程序3、熟悉运行汇编语言所需的应用程序汇编程序使MASM连接程序使用LINK程序调试程序使用DEBUG程序4、熟悉汇编语言源程序上机操作过程(1)编辑源文件(选择可使用的文本编辑器)(2)汇编源程序文件(3)连接目标文件(4)运行可执行文件5、汇编操作举例用edit编辑myprog.asm文件;(见下图)用MASM.exe编译myprog.asm生成myprog.obj文件;C:\masm\bin> masm.exe由图中可以看出:0 个警告错误0个严格错误汇编通过, 生成mygrog.obj目标文件(如果有严格错误, 汇编不能通过, 必须返回编辑状态更改程序。
)用link.exe命令链接myhprog.obj生成myprog.exe文件!C:\masm\bin> link.exeC:\masm\bin> myprog.exe运行程序结果为:屏幕显示“Hi! This is a dollar sign terminated string.”三、实验总结:1.可以在DOS或Windows状态编辑汇编源程序2.可以使用EDIT 或记事本编辑汇编源程序, 源程序必须以.asm为扩展名。
在记事本中保存文件时, 可以加双引号“myprog.asm”,文件名就不会出现myprog.asm.txt的错误3.熟悉相关的DOS 命令cd 进入子目录mkdir 建立子目录xcopy *.* /s 拷贝当前目录下所有文件及子目录format a: 格式化A盘4.在Windows 系统下运行汇编程序, 有时会有问题, 建议大家熟悉DOS命令,DOS编辑工具, 在DOS状态下运行汇编程序。
实验四存储系统设计实验一、实验目的本实训项目帮助大家理解计算机中重要部件—存储器,要求同学们掌握存储扩展的基本方法,能设计MIPS 寄存器堆、MIPS RAM 存储器。
能够利用所学习的cache 的基本原理设计直接相联、全相联,组相联映射的硬件cache。
二、实验原理、内容与步骤实验原理、实验内容参考:1、汉字字库存储芯片扩展设计实验1)设计原理该实验本质上是8个16K×32b 的ROM 存储系统。
现在需要把其中一个(1 号)16K×32b 的ROM 芯片用4个4K×32b 的芯片来替代,实际上就是存储器的字扩展问题。
a) 需要4 片4个4K×32b 芯片才可以扩展成16K×32b 的芯片。
b) 目标芯片16K个地址,地址线共14 条,备用芯片12 条地址线,高两位(分线器分开)用作片选,可以接到2-4 译码器的输入端。
c) 低12 位地址直接连4K×32b 的ROM 芯片的地址线。
4个芯片的32 位输出直接连到D1,因为同时只有一个芯片工作,因此不会冲突。
芯片内数据如何分配:a) 16K×32b 的ROM 的内部各自存储16K个地址,每个地址里存放4个字节数据。
地址范围都一样:0x0000~0x3FFF。
b) 4个4K×32b 的ROM,地址范围分别是也都一样:0x000~0xFFF,每个共有4K个地址,现在需要把16K×32b 的ROM 中的数据按照顺序每4个为一组分为三组,分别放到4个4K×32b 的ROM 中去。
HZK16_1 .txt 中的1~4096个数据放到0 号4K 的ROM 中,4097~8192 个数据放到 1 号4K 的ROM 中,8193~12288 个数据放到2 号4K 的ROM 中,12289~16384个数据放到3 号4K 的ROM 中。
c) 注意实际给的16K 数据,倒数第二个4K(8193~12288 个数据)中部分是0,最后4K(12289~16384 数据)全都是0。
计算机组成原理实验报告计算机组成原理实验报告引言计算机组成原理是计算机科学与技术专业中的一门重要课程,通过实验学习可以更好地理解和掌握计算机的基本原理和结构。
本实验报告将介绍我在学习计算机组成原理课程中进行的实验内容和实验结果。
实验一:二进制与十进制转换在计算机中,数据以二进制形式存储和处理。
通过这个实验,我们学习了如何将二进制数转换为十进制数,以及如何将十进制数转换为二进制数。
通过实际操作,我更深入地了解了二进制与十进制之间的转换原理,并且掌握了转换的方法和技巧。
实验二:逻辑门电路设计逻辑门电路是计算机中的基本组成部分,用于实现不同的逻辑运算。
在这个实验中,我们学习了逻辑门的基本原理和功能,并通过电路设计软件进行了实际的电路设计和模拟。
通过这个实验,我深入理解了逻辑门电路的工作原理,并且掌握了电路设计的基本方法。
实验三:组合逻辑电路设计组合逻辑电路是由多个逻辑门组合而成的电路,用于实现复杂的逻辑功能。
在这个实验中,我们学习了组合逻辑电路的设计原理和方法,并通过实际的电路设计和模拟,实现了多个逻辑门的组合。
通过这个实验,我进一步掌握了逻辑电路设计的技巧,并且了解了组合逻辑电路在计算机中的应用。
实验四:时序逻辑电路设计时序逻辑电路是由组合逻辑电路和触发器组合而成的电路,用于实现存储和控制功能。
在这个实验中,我们学习了时序逻辑电路的设计原理和方法,并通过实际的电路设计和模拟,实现了存储和控制功能。
通过这个实验,我进一步了解了时序逻辑电路的工作原理,并且掌握了时序逻辑电路的设计和调试技巧。
实验五:计算机指令系统设计计算机指令系统是计算机的核心部分,用于控制计算机的操作和运行。
在这个实验中,我们学习了计算机指令系统的设计原理和方法,并通过实际的指令系统设计和模拟,实现了基本的指令功能。
通过这个实验,我深入了解了计算机指令系统的工作原理,并且掌握了指令系统设计的基本技巧。
实验六:计算机硬件系统设计计算机硬件系统是由多个模块组成的,包括中央处理器、存储器、输入输出设备等。
计组实验报告(共10篇)计组实验报告计算机组成原理实验报告一一、算术逻辑运算器1. 实验目的与要求:目的:①掌握算术逻辑运算器单元ALU(74LS181)的工作原理。
②掌握简单运算器的数据传输通道。
③验算由74LS181等组合逻辑电路组成的运输功能发生器运输功能。
④能够按给定数据,完成实验指定的算术/逻辑运算。
要求:完成实验接线和所有练习题操作。
实验前,要求做好实验预习,掌握运算器的数据传送通道和ALU 的特性,并熟悉本实验中所用的模拟开关的作用和使用方法。
实验过程中,要认真进行实验操作,仔细思考实验有关的内容,把自己想得不太明白的问题通过实验去理解清楚,争取得到最好的实验结果,达到预期的实验教学目的。
实验完成后,要求每个学生写出实验报告。
2. 实验方案:1.两片74LS181(每片4位)以并/串联形式构成字长为8为的运算器。
2.8为运算器的输出经过一个输入双向三态门(74LS245)与数据总线相连,运算器的两个数据输入端分别与两个8位寄存器(74LS273)DR1和DR2的输出端相连,DR1和DR2寄存器是用于保存参加运算的数据和运算的结果。
寄存器的输入端于数据总线相连。
3.8位数据D7~D0(在“INPUT DEVICE”中)用来产生参与运算的数据,并经过一个输出三态门(74LS245)与数据总线相连。
数据显示灯(BUS UNIT)已与数据总线相连,用来显示数据总线上所内容。
4.S3、S2、S1、S0是运算选择控制端,由它们决定运算器执行哪一种运算(16种算术运算或16种逻辑运算)。
5.M是算术/逻辑运算选择,M=0时,执行算术运算,M=1时,执行逻辑运算。
6.Cn是算术运算的进位控制端,Cn=0(低电平),表示有进位,运算时相当于在最低位上加进位1,Cn=1(高电平),表示无进位。
逻辑运算与进位无关。
7.ALU-B是输出三态门的控制端,控制运算器的运算结果是否送到数据总线BUS上。
低电平有效。
一、实验模块计算机组成原理实验二、实验标题计算机组成原理实验报告三、实验内容本次实验主要围绕计算机组成原理展开,通过实际操作和理论分析,加深对计算机硬件组成和工作原理的理解。
四、实验目的1. 理解计算机硬件的基本组成,包括CPU、内存、I/O接口等。
2. 掌握计算机各组成部分之间的数据传输和通信方式。
3. 了解计算机的基本工作原理,包括指令的执行过程和中断处理等。
4. 通过实验,提高动手能力和问题解决能力。
五、实验环境实验地点:学校机房实验设备:计算机组成原理实验箱(EL-JY-II型)实验软件:相关实验软件六、实验步骤及实验结果1. CPU实验(1)实验连线:将CPU、内存、I/O接口等设备按照实验要求进行连接。
(2)写数据:向内存写入数据,通过CPU读取数据并输出。
(3)实验结果:观察数据是否正确传输,分析CPU的工作原理。
2. 内存实验(1)实验连线:将内存与CPU、I/O接口等设备连接。
(2)往存储器写数据:向内存写入数据。
(3)从存储器读数据:从内存读取数据,观察数据是否正确。
(4)实验结果:分析内存的工作原理,验证内存读写功能。
3. I/O接口实验(1)实验连线:将I/O接口与CPU、内存等设备连接。
(2)实验步骤:通过I/O接口进行数据传输。
(3)实验结果:观察数据是否正确传输,分析I/O接口的工作原理。
4. 中断实验(1)实验连线:将中断设备与CPU、内存等设备连接。
(2)实验步骤:模拟中断发生,观察CPU如何响应中断。
(3)实验结果:分析中断处理过程,理解中断在计算机中的作用。
七、实验结果的分析与总结1. 通过本次实验,我们深入了解了计算机硬件的基本组成和工作原理,掌握了CPU、内存、I/O接口等设备的工作方式。
2. 实验过程中,我们学会了如何进行实验连线、数据传输和中断处理等操作,提高了动手能力和问题解决能力。
3. 实验结果表明,计算机硬件各部分之间协同工作,共同完成指令的执行和数据的处理。
计算机组成原理实验报告课程名称计算机组成原理实验学院计算机专业班级学号学生姓名指导教师20年月日实验一:基础汇编语言程序设计实验1实验目的●学习和了解TEC-XP+教学实验监控命令的用法;●学习和了解TEC-XP+教学实验系统的指令系统;●学习简单的TEC-XP+教学实验系统汇编程序设计。
2实验设备及器材●工作良好的PC机;●TEC-XP+教学实验系统和仿真终端软件PCEC。
3实验说明和原理实验原理在于汇编语言能够直接控制底层硬件的状态,通过简单的汇编指令查看、显示、修改寄存器、存储器等硬件内容。
实验箱正如一集成的开发板,而我们正是通过基础的汇编语言对开发板进行使用和学习,过程中我们不仅需要运用汇编语言的知识,还需要结合数字逻辑中所学的关于存储器、触发器等基本器件的原理,通过串口通讯,实现程序的烧录,实验箱与PC端的通讯。
4实验内容1)学习联机使用TEC-XP+教学实验系统和仿真终端软件PCEC;2)学习使用WINDOWS界面的串口通讯软件;3)使用监控程序的R命令显示/修改寄存器内容、D命令显示存储内容、E命令修改存储内容;4)使用A命令写一小段汇编程序,U命令反汇编输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况。
5实验步骤1)准备一台串口工作良好的PC机器;2)将TEC-XP+放在实验台上,打开实验箱的盖子,确定电源处于断开状态;3)将黑色的电源线一段接220V交流电源,另一端插在TEC-XP+实验箱的电源插座里;4)取出通讯线,将通讯线的9芯插头接在TEC-XP+实验箱上的串口"COM1"或"COM2"上,另一端接到PC机的串口上;5)将TEC-XP+实验系统左下方的六个黑色的控制机器运行状态的开关置于正确的位置,再找个实验中开关应置为001100(连续、内存读指令、组合逻辑、联机、16位、MACH),6)控制开关的功能在开关上、下方有标识;开关拨向上方表示"1",拨向下方表示"0","X"表示任意,其他实验相同;7)打开电源,船型开关盒5V电源指示灯亮;8)在PC机上运行PCEC16.EXE文件,根据连接的PC机的串口设置所用PC机的串口为"1"或"2",其他的设置一般不用改动,直接回车即可; (8)按一下"RESET"按键,再按一下"START"按键,主机上显示:6实验截图及思考题【例3】计算1到10的累加和。
计算机组成原理实验报告——CPU 综合实验姓 名: 张嘉钰 学 号: 2008482285 专业: 计算机科学与技术 指导老师: 王兵 实验地点: 主楼528 时间: 2010-12-19 成绩:一、实验要求1、掌握计算机的工作原理,建立清晰的计算机整体概念;2、掌握调试软件debugcontroller 的使用方法,用于对CPU 进行调试; 二、实验目的1、掌握计算机的工作原理,建立清晰的计算机整体概念;2、新增两条CPU 指令,加深对计算机的工作原理的理解;3、掌握调试软件debugcontroller 的使用方法,用于对CPU 进行调试; 三、实验原理在计算机组成原理课程中,掌握计算机的各个组成部件的原理是重要的,但是从总体上掌握计算机的整个工作原理是最重要的。
(一)指令描述:ADD DR,SR指令编码:功能:DR ← DR + SR, 影响C Z 标志。
PC ← PC + 1。
功能:1。
功能: PC+ 1功能: PC + 1。
功能:1。
OR DR ,SR 指令编码:功能:+ 1。
功能:DR ← not DR ,影响Z 标志。
PC ← PC + 1。
功能:DR ← SR ,不影响标志位。
PC ← PC + 1。
JMP ADR 指令编码:功能:PC← ADR 。
功能:如果C=0,则PC ← ADR ;如果C=1,则PC ←PC + 1。
JNZ ADR 指令编码:功能:如果Z=0,则PC ← ADR ;如果Z=1,则PC ← PC + 1。
MVRD DR ,DATA 指令编码:功能:DR ← DATA 。
PC ← PC + 2。
LDR DR功能:DR ← [SR]。
PC ← PC + 1。
NOP 指令编码:功能:PC ←PC + 1新增指令:功能:一个控制信号,用于对栈顶指针进行初始化。
POP 指令编码:功能:从内存中读出数据,即出栈操作。
(二)总体设计方案 一条指令执行需要3拍时间t1 取指。
在t2的上升沿,将从存储器取出的指令写入指令寄存器IR 。
t2根据指令寄存器IR 的内容进行指令译码;根据指令译码得到的控制信号进行运算和其它操作。
t3存储器读、写操作;在t3的下降沿将运算结果写入目的寄存器,改变C 标志和 Z 标志;在t3的下降沿,改变PC 的值,为取下一条指令做好准备。
由于取指阶段和存储器读写阶段都要访问存储器,速度较慢;而指令译码和运算都由CPU本身完成,因此取指阶段和存储器读写阶段各占一拍时间,指令译码和运算共占一拍时间。
实验CPU 的总体构成实验CPU 由5部分组成:取指部分instru_fetch 、指令译码部分decoder_unit 、执行部分exe_unit 、存储器部分memory_unit 和通用寄存器组fegfile 。
另外,还有一个程序包exe_cpu_components ,将各低层设计实体作为元件存储,供各设计实体使用。
顶层设计实体exe_cpu 完成5个组成部分的连接。
实验CPU 总体框图见图1。
regfilememory_unitclkreset图1 实验CPU 总体框图1、通用寄存器组regfile通用寄存器组内包含4个16位寄存器。
这是一个具有1个写入端口、2个读出端口的通用寄存器组。
写入端口将指令执行后得到的目的寄存器的值在t3的下降沿写入目的寄存器。
只有具有写目的寄存器功能的指令执行结束时才写目的寄存器。
有些指令,如JMP 指令等执行结束后不改变通用寄存器组的值。
通用寄存器组的2个读出端口,一个是目的寄存器读出端口,一个是源寄存器读出端口,从这2个端口读出的内容供执行部分exe_unit 和存储器部分memory_unit 使用。
通用寄存器组内还有2个标志位:z_out 和c_out ,在t3的下降沿根据指令执行的结果改变或者不改变它们的值。
这2个标志位的值送执行部分exe_unit 使用。
传统上通用寄存器组属运算器部分。
2、取指部分instru_fetch 取指部分完成4项工作:(1)产生时钟信号t1、t2和t3,供实验CPU 各部分使用。
(2)在复位信号reset 为低时将PC 复位为0;在一条指令执行结束后,根据指令执行的结果在t3的下降沿改变PC 的值。
(3)将从存储器读出的指令的第一个字在t2的上升沿送指令寄存器IR。
(4)计算PC+1的值pc_inc,为双字指令取第二个指令字做准备。
传统上取指部分属控制器部分。
3、指令译码部分decoder_unit从上述控制信号看,实验CPU的指令译码器是很简单的。
指令译码器在传统上属于控制器部分,是控制器的核心。
所谓组合逻辑控制器是指指令译码器是由组合逻辑构成的,所谓微程序控制器是指指令译码器主要由控制存储器ROM和少许组合逻辑构成的。
4、执行部分exe_unit(重点修改部分)执行部分完成下列任务:(1)8种算术逻辑运算:加、加1、减、减1、与、或、非和数据传送,并临时将运算结果存放在result中。
根据运算结果产生进位标志,临时存放在c_tmp中;根据运算结果产生结果为0标志,临时存放在z_tmp中。
(2)产生存储器读写所需要的存储器地址Mem_Addr。
存储器地址是根据下列情况决定的:在t1节拍时选择pc,在双字指令时选择pc_inc,在LDR指令时选择SR(源寄存器)内容,在STR指令时选择DR(目的寄存器)内容。
在PUSH和POP指令时,选择自己所设的寄存器myself 中存的指针值,指针值初始值通过指令INI得到,初始值设为十六进制的0010。
当执行PUSH 操作时,SR寄存器中存的内容送到指针P所指的内存单元中,存完后,P<-P+1;P又指向新的内存单元。
当执行POP操作时,先执行P<-P+1,然后将指针P所指的内存中存放的数据取出,送到寄存器DR中。
(3)产生条件转移指令(JNC和JNZ)所需要的转移标志c_z_j_flag(为1表示转移)和转移地址sjmp_addr。
执行部分的核心传统上属于运算器,是运算器的核心。
5、存储器部分memory_unit存储器部分主要完成对存储器的读写:(1)它和TEC—CA实验台上存储器的接口部分。
向实验台上的存储器送出16存储器地址总线Mem_addr,16位双向数据总线ob,读写信号rw。
当rw为1时,实验台上的存储器作为读存储器信号处理;当rw信号为0时,实验台上的存储器作为读存储器信号处理。
实验台上的存储器由2片静态存储器6116和少量附加电路构成。
(在TEC—CA实验台上具体实: 2片6116并联构成16位字长的存储器,6116所需的片选信号cs为低,读信号oe由rw反相产生,写信号we直接选用rw。
)(2)存储器地址Mem_addr来自执行部分,写信号Mem_Write由指令译码部分产生。
当Mem_Write为1时在t3节拍完成写操作,其余情况下均进行读操作。
(3)在t1节拍中完成读指令的第1个字。
(4)对双字指令,在t3完成读指令的第2个字。
(5)对JMP指令,在t3读出转移地址,放在data_read中。
(6)对MVRD指令,在t3读出立即数DATA,放在data_read中。
(7)对LDR指令,在t3读出存储器的值,放在data_read中。
(8)对STR指令,在t3将源寄存器的值写入存储器中。
(9)对POP指令,在t3读出存储器的值,放在data_read中。
(10)对PUSH指令,在t3将源寄存器的值写入存储器中。
(11)对在t3下降沿写入目的寄存器的值进行选择。
在LDR指令中,选中读出的存储器的值;在其他指令中,选中执行部分送来的运算结果result。
实验CPU中存储器部分传统上属于控制器部分,实验台上的存储器属于计算机的存储器部分。
1.程序包exp_cpu_components程序包exp_cpu_components把实验CPU中除顶层设计实体exp_cpu以外的设计实体作为元件(component)予以说明,供实验CPU中的其它设计实体作为元件予以引用。
2.顶层设计实体exp_cpu顶层设计实体exp_cpu把5个二级设计实体regfile、instru_fetch、decoder_unit、exe_unit和memory_unit作为元件引用,每个例化一次,用信号把它们连接起来,构成实验CPU。
exp_cpu同时也定义了实验CPU对外的接口:clk 外部输入的时钟。
reset 外部输入的CPU复位信号,低电平有效。
AR 向外部输出的16位存储器地址总线。
OB 16位双向存储器数据总线。
WE 向外部输出的存储器读写信号。
当高电平时,对存储器进行读操作;当低电平时,对存储器进行写操作。
在一个工程中,较低层的设计实体其实相当于元件,与一块印制板上的电路差不多;顶层设计实体对较低层设计实体每例化一次,相当于在印制板上上安放一个元件,而顶层设计实体中的信号相当于印制板上的连线。
因此,在一个工程中,如果有一个非顶层设计实体从来没有被其他设计实体例化过,那么这个设计实体在这个工程中就是多余的,起不到任何作用。
顶层设计实体中除了由较低层设计实体构成的元件外,通常还有一些由process语句、信号赋值语句等构成的其他独立电路块,通过信号把元件和独立电路块互相连接,最后形成了一个完整的电路设计。
指令流程表实验CPU的指令流程表见表1。
表2-1 实验CPU指令流程表说明:(1)Mem_Addr是存储器地址总线。
(2)ob是存储器数据总线。
(3)WE是存储器读写信号,为1时写存储器,为0时读存储器。
(4)z_tmp是运算产生的结果为0标志,z_out是本条指令执行完成后的结果为0标志。
(5)c_tmp是运算产生的进位标志,c_out是本条指令执行完成后的进位标志。
(6)IR是指令寄存器。
(7)c_z_j_flag是条件转移指令“JNC ADR”或者“JNZ ADR”产生的条件转移标志。
(8)sjmp_addr是条件转移指令“JNC ADR”或者“JNZ ADR”产生的条件转移地址。
(9)result是运算器产生的运算结果。
(10)POUT是新增加的寄存器中存放的栈顶指针。
四、实验内容1、将试验台实验开关设置为101,为单片机控制FPGA-CPU调试运行模式;2、将子板上的JTAG端口和PC的并行口用下载电缆连接,用RS-232通信线将PC的一个串行和试验台上的背面的串口连接,或使用USB线将PC上的一个USB口和实验台右边的小板上的一个B型USB接口连接起来,二选一。
3、打开QUARTUSⅡ,在QUARTUSⅡ中对修改后的实验CPU进行编译,成功后下载到TEC-CA 上的FPGA器件中。
五、代码主要修改部分新增指令:功能:一个控制信号,对栈顶指针进行初始化。