5级流水无cache CPU实验计算机组成原理 课程设计报告
课程设计报告(计算机组成原理)
课程设计(大作业)报告一、题目分析本次课程设计课题是设计基于微程序控制器的简单计算机设计与实现,宏观上利用CPU、cache、存储器以及一些外设设备来组成一台简单计算机,微观上由运算器、译码电路、和存储器指令用的控制存储器构成。
此次设计要求完成各个指令的格式以及编码的设计,实现各个机器指令的微代码。
本计算机实现的功能有:IN(输入),OUT(输出),ADD(加法),SUB(减法),STA(存数),JMP(跳转)。
设计进行开始,在了解微程序的基本格式, 及各个字段值的作用后, 按微指令格式参照指令流程图,设计出程序以及微程序,将每条微指令代码化,译成二进制代码表,并将二进制代码转换为联机操作时的十六进制格式文件。
根据机器指令系统要求,设计微程序流程图及确定微地址。
设计的加法和减法中, 被加数和被减数都由调试人员输入, 而加数和减数都从存储器中读取. 最后上机调试,各个功能运行结果正确。
二、基本理论计算机原理图(一)、ALU1、功能及组成它是数据加工处理部。
执行所有的算术运算执行所有的逻辑运算,并进行逻辑测试,通常,一个算术操作产生一个运算结果,而一个逻辑操作则产生一个判决。
2、设计图(二)、CPU1、如何执行指令(1)MOV指令a. 程序计数器PC中装入第一条指令地址101b. PC的内容被放到指令总线ABUS上,对指存进行译码,并启动读命令。
c. 从101号地址读出的MOV指令通过指令总线IBUS装入指令寄存器IR。
d. 程序计数器内容加1,变成102,为取下一条指令做好准备。
e. 指令寄存器中的操作码被译码。
f. CPU识别出是MOV指令。
至此,取值周期结束。
g. 操作控制(OC)器送出控制信号到通用寄存器,选择R1作源寄存器,选择R0作目标寄存器。
h. OC送出控制信号到ALU,制定ALU做传送操作。
i. OC送出控制信号,打开ALU输出三态门,将ALU输出送到数据总线DBUS 上。
(任何时候DBUS上只能有一个数据)j. OC送出控制信号,将DBUS上的数据打入到数据缓冲寄存器DR。
计算机组成原理课程设计报告实验报告书
计算机组成原理课程设计报告班级::学号:完成时间:一、课程设计目的1.在实验机上设计实现机器指令及对应的微指令〔微程序〕并验证,从而进一步掌握微程序设计控制器的根本方法并了解指令系统与硬件构造的对应关系;2.通过控制器的微程序设计,综合理解计算机组成原理课程的核心知识并进一步建立整机系统的概念;3.培养综合实践及独立分析、解决问题的能力。
二、课程设计的任务针对COP2000实验仪,从详细了解该模型机的指令/微指令系统入手,以实现乘法和除法运算功能为应用目标,在COP2000的集成开发环境下,设计全新的指令系统并编写对应的微程序;之后编写实现乘法和除法的程序进展设计的验证。
三、课程设计使用的设备〔环境〕1.硬件● COP2000实验仪● PC机2.软件●COP2000仿真软件四、课程设计的具体容〔步骤〕1.详细了解并掌握COP 2000模型机的微程序控制器原理,通过综合实验来实现该模型机指令系统的特点:1〕指令系统特点与设计模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数。
指令码的最低两位用来选择R0-R3存放器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。
而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。
在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。
模型机有24位控制位以控制存放器的输入、输出,选择运算器的运算功能,存储器的读写。
指令系统包括以下七类:23〕指令格式该模型机微指令系统的特点〔包括其微指令格式的说明等〕:微指令格式2.计算机中实现乘法和除法的原理〔1〕无符号乘法①实例演示〔即,列4位乘法具体例子演算的算式〕:被乘数为1001〔二进制〕,即为十进制的9;乘数为0110〔二进制〕,即为十进制的6。
那么,可以通过笔算得到:1001×0110=00110110即十进制运算结果为:9×6=54无符号乘法的实例演示如图1所示:1 0 0 1 ;被乘数× 0 1 1 0 ;乘数0 0 0 0 ;初始值〔零〕+ 0 0 0 0 〔0〕;乘数最低位为0,局部积加0,被乘数左移一;位,乘数右移一位。
计算机组成原理课程实习报告 流水微程序控制器
目录1.实习的目的和任务 (1)1.1目的 (1)1.2任务 (1)2.实习要求 (1)3.实习地点 (1)4.主要仪器设备 (1)5.实习内容 (1)5.1计算机整机 (1)5.2计算机外设 (2)5.3流水型微程序控制器的设计与调试 (2)5.3.1实验原理 (2)5.3.2 CPLD设计程序 (7)5.3.3实验步骤 (7)5.3.4调试 (10)5.3.5性能分析对比 (10)6.问题讨论与分析 (10)7.结束语 (11)参考文献 (11)计算机组成原理课程实习1.实习的目的和任务1.1目的进一步融会贯通教材内容,掌握计算机各功能模块的工作原理、相互联系和来龙去脉,完整地建立计算机整机概念;激发学生的学习热情和主动性,培养学生的独立工作能力,在实践活动中,将所知识综合运用,增长才干,并积累经验;培养严谨的科研作风,使学生利用先修课和计算机组成原理课程的理论知识和实验技能,在该课程所涉及的工程技术范围内,创造性地完成部件及系统的分析、设计、组装和调试,进一步加强实验技能的训练。
1.3任务(1)分析计算机整机系统;分析计算机外设与主机的关系。
(2)在基本模型机的基础上,进一步将其构成一台具有流水功能的模型机。
(3)学习掌握流水微程序控制器的设计原理。
2.实习要求(1)按照实习要求完成相应的实习任务;(2)实现实习目的;(3)完成实习报告。
3.实习地点田家炳4044.主要仪器设备(实验用的软硬件环境)(1)ZY15CompSys12BB计算机组成原理及系统结构实验箱一台(2)排线若干(3)PC机一台5.实习内容5.1计算机整机计算机系统是一个由硬件、软件组成的多层次结构,它通常由微程序级、一般机器级、操作系统级、高级语言级组成,每一级上都能进行程序设计,且得到下面各级的支持。
计算机的硬件是由有形的电子器件等构成的,它包括运算器、存储器(硬盘、U盘、移动硬盘等)、控制器、适配器、输入输出设备(键盘、鼠标器、激光印字机等)。
5级流水cpu实验
摘要基于现场可编程( FPGA) 技术和硬件描述语言VHDL 的设计和综合,通过自顶向下的设计方法和模块化设计思想, 在Quartus Ⅱ环境下能定制、下载验证和实现五级流水线CPU的简单功能。
通过VHDL 语言定制了取指部分(IF),译码部分(ID),执行部分(EX),前向部分(FU)访存部分(MA),回写部分(WB),冲突检测部分(HD),介绍了基于FPGA 的CPU 设计方法,并通过初始化程序进行验证,实现了基于FPGA 的CPU 功能,表明基于FPGA 技术在设计CPU 核和大规模集成电路设计方面可根据实际情况定制,具有灵活性、可靠性和可扩展性。
关键词: FPGA CPU Quartus Ⅱ流水 vhdlAbstractCPU design can be made and tested on Quartus Ⅱby means of a top - down method and modular design based on the integration of FPGA and VHDL. Introduces the design of CPU which applies module IF、ID、EX、FU、MA、WB、HD based on VHDL and the test of the design by the initialization program. The result suggests that the FPGA - based CPU design is custom- made with flexibility , reliability and easiness for extension.Key words: FPGA CPU Quartus Ⅱpipelining vhdl目录一、引言 (3)1.1实验目的 (3)1.2实验环境 (3)二、设计报告 (4)2.1五级流水CPU (4)2.1.1系统级设计 (4)2.1.1.2概念设计 (6)2.1.1.3时序设计 (6)2.1.2结构级设计 (12)2.1.2.1 总体逻辑结构计 (12)2.1.2.2 关键分模块结构设计 (14)三、测试报告 (15)3.1测试方法 (15)3.2测试程序 (15)3.3测试结果 (18)3.4性能分析 (20)四、总结 (21)4.1实验总结 (21)4.2取得的收获 (21)五、总结 (21)一、引言1.1 实验目的1.本实验以计算机硬件为主,兼顾计算机软件和计算机应用技术。
计算机组成原理课程设计的实验报告范文
长治学院课程设计报告课程名称:计算机组成原理课程设计设计题目:设计一台性能简单的计算机系别:计算机系专业:计科1101班组别:第三组学生姓名: 学号:起止日期: 2013年7月4日~ 2013年7月10日****:***目录一、课程设计的目的 ----------------------------------1二、设计要求 ----------------------------------------1三、设计的方法及过程---------------------------------23.1整机设计 --------------------------------------23.1.1 根据设计要求正确设置正确设置多路开关-------23.1.2操作控制信号及其实现方式-------------------23.1.3根据接线表画出整机的线路图-----------------2 3.2.设计指令系统----------------------------------3 3.3.设计微指令及指令的微程序----------------------43.3.1设计微地址 --------------------------------4 3.3.2写出指令的执行流程-------------------------3 3.3.3编写指令的微程序---------------------------53.4.编写并执行应用程序----------------------------8四、心得体会-----------------------------------------7 一课程设计的目的通过课程设计更清楚地理解下列基本概念:(1)计算机的硬件基本组成;(2)计算机中机器指令的设计;(3)计算机中机器指令的执行过程;(4)微程序控制器的工作原理;(5)微指令的格式设计原理;二设计要求题一研制以台性能如下的实验计算机。
计算机组成原理课程设计报告
计算机组成原理课程设计报告一、引言计算机组成原理是计算机科学与技术专业的重要课程之一,通过学习该课程,我们可以深入了解计算机的硬件组成和工作原理。
本次课程设计旨在通过设计一个简单的计算机系统,加深对计算机组成原理的理解,并实践所学知识。
二、设计目标本次课程设计的目标是设计一个基于冯·诺依曼体系结构的简单计算机系统,包括中央处理器(CPU)、存储器、输入输出设备等。
通过该设计,我们可以掌握计算机系统的基本组成和工作原理,加深对计算机组成原理的理解。
三、设计方案1. CPU设计1.1 硬件设计CPU由控制单元和算术逻辑单元组成。
控制单元负责指令的解码和执行,算术逻辑单元负责算术和逻辑运算。
1.2 指令设计设计一套简单的指令集,包括算术运算指令、逻辑运算指令、数据传输指令等。
1.3 寄存器设计设计一组通用寄存器,用于存储数据和地址。
2. 存储器设计2.1 主存储器设计一块主存储器,用于存储指令和数据。
2.2 辅助存储器设计一个简单的辅助存储器,用于存储大容量的数据。
3. 输入输出设备设计3.1 键盘输入设备设计一个键盘输入设备,用于接收用户的输入。
3.2 显示器输出设备设计一个显示器输出设备,用于显示计算结果。
四、实施步骤1. CPU实现1.1 根据CPU的硬件设计,搭建电路原型。
1.2 编写控制单元的逻辑电路代码。
1.3 编写算术逻辑单元的逻辑电路代码。
1.4 进行仿真验证,确保电路的正确性。
2. 存储器实现2.1 设计主存储器的存储单元。
2.2 设计辅助存储器的存储单元。
2.3 编写存储器的读写操作代码。
2.4 进行存储器的功能测试,确保读写操作的正确性。
3. 输入输出设备实现3.1 设计键盘输入设备的接口电路。
3.2 设计显示器输出设备的接口电路。
3.3 编写输入输出设备的读写操作代码。
3.4 进行输入输出设备的功能测试,确保读写操作的正确性。
五、实验结果与分析通过对CPU、存储器和输入输出设备的实现,我们成功设计了一个基于冯·诺依曼体系结构的简单计算机系统。
计算机组成原理CPU设计实验报告
计算机组成原理CPU设计实验报告课程设计题目:16位CPU设计学院: 信息学院班级:电子A班学号:1115102015姓名:方茹1目录1 实验方法 ..................................................................... . (4)2 总体说明 ..................................................................... ................................................. 5 2.1指令系统: .................................................................... .......................... 5 2.1.1指令格式分类(按指令字长和操作数不同): ...................................................... 5 2.1.2具体指令汇总表: .................................................................... .......................... 6 2.1.3相关指令流程图: .................................................................... .......................... 6 2.1.4指令数据通路的构建: .................................................................... ................... 8 2.1.5指令的分组及节拍: .................................................................... ..................... 12 2.1.6指令执行状态图:(见下页)..................................................................... ........... 13 2.1.7具体微指令: .................................................................... ............................... 13 2.2 系统整体介绍 ..................................................................... .................. 16 2.2.1系统基本模块划分 ..................................................................... ....................... 16 2.2.2总体结构图:(见下页)..................................................................... (17)3 CPU的控制逻辑与具体数据通道设计 ..................................................................... ......18 3.1取指令逻辑的设计 ..................................................................... .. (19)3.1.1指令地址的保存 ..................................................................... (19)3.1.2指令存储器 ..................................................................... .................................. 20 3.1.3下一条指令地址的计算 ..................................................................... ................ 20 3.2指令译码逻辑的设计...................................................................... ...................... 21 3.3指令执行逻辑的设计...................................................................... ...................... 22 3.4存储器访问逻辑的设计 ..................................................................... ................... 23 3.5结果写回逻辑的设计...................................................................... ...................... 24 3.6单周期CPU的总成...................................................................... (25)4各部分说明 ..................................................................... .............................................26 4.1ALU .................................................................................................................... 26 4.2数据选择器BUS_MUX ................................................................ ........................ 28 4.3器件T1 ..................................................................... .......................................... 30 4.4标志寄存器FLAG_REG ............................................................... ........................ 31 4.5T2: .................................................................... ................................................ 33 4.6程序计数器PC ..................................................................... ............................... 33 4.7地址寄存器AR和指令寄存器IR: .................................................................... .. 34 4.8寄存器、寄存器组和寄存器的选择.......................................................................36 4.9一位控制信号/WR .................................................................... ........................... 37 4.10 节拍发生器 ..................................................................... .................................. 37 4.11控制逻辑 ..................................................................... ...................................... 39 4.12T3...................................................................... ................................................ 42 4.13REG_OUT ......................................................................................................... 43 4.14存储器 ..................................................................... .......................................... 44 4.15总线选择器 ..................................................................... .. (45)24.16REG_TEST ............................................................... .. (46)5附录: .................................................................... .. (47)附录A:组员分工: .................................................................... .. (47)附录B:组员设计总结: .................................................................... . (47)31 实验方法实验要完成的工作主要包括:指令系统的设计,FPGA-CPU的整体结构设计及其细化,逻辑设计的具体实现(VHDL语言程序的编写),软件模拟,以及硬件调试。
计算机组成原理 实验报告
计算机组成原理实验报告计算机组成原理实验报告引言:计算机组成原理是计算机科学与技术专业的重要课程,通过学习该课程,我们可以深入了解计算机的工作原理和内部结构。
本次实验旨在通过实际操作,加深对计算机组成原理的理解,并掌握一些基本的计算机硬件知识。
实验目的:1. 理解计算机的基本组成部分,包括中央处理器(CPU)、存储器、输入输出设备等;2. 掌握计算机的运行原理,了解指令的执行过程;3. 学习使用计算机组成原理实验箱,进行实际的硬件连接和操作。
实验过程:1. 实验一:组装计算机本次实验中,我们需要从零开始组装一台计算机。
首先,我们按照实验指导书的要求,选择合适的硬件组件,包括主板、CPU、内存、硬盘等。
然后,我们将这些硬件组件逐一安装到计算机箱中,并连接好电源线、数据线等。
最后,我们将显示器、键盘、鼠标等外设连接到计算机上。
2. 实验二:安装操作系统在计算机组装完成后,我们需要安装操作系统。
本次实验中,我们选择了Windows 10作为操作系统。
首先,我们将Windows 10安装盘插入计算机的光驱中,并重启计算机。
然后,按照安装向导的指引,选择安装语言、时区等相关设置。
最后,我们根据自己的需求选择安装方式,并等待操作系统安装完成。
3. 实验三:编写并执行简单的汇编程序在计算机组装和操作系统安装完成后,我们需要进行一些简单的编程实验。
本次实验中,我们选择了汇编语言作为编程工具。
首先,我们编写了一个简单的汇编程序,实现两个数相加的功能。
然后,我们使用汇编器将程序翻译成机器码,并将其加载到计算机的内存中。
最后,我们通过调试器来执行这个程序,并观察程序的执行结果。
实验结果与分析:通过本次实验,我们成功地组装了一台计算机,并安装了操作系统。
在编写并执行汇编程序的实验中,我们也成功地实现了两个数相加的功能。
通过观察程序的执行结果,我们发现计算机能够按照指令的顺序逐条执行,并得到正确的结果。
这进一步加深了我们对计算机的工作原理的理解。
《计算机组成原理》课程设计报告
一、课程设计题目简单模型机的微程序设计二、课程设计目的a)计算机的硬件基本组成;b)计算机中机器指令的设计;c)计算机中机器指令的执行过程;d)微程序控制器的工作原理。
e)微指令的格式设计原则;三、问题解决(1)、程序中的微指令的各个字段的作用。
哪些字段是不译码的,哪些字段是直接译码的,哪些字段又可以看成是字段间接编码的。
答:第24-19位称为算逻部件的控制字段;第18位为存储器功能控制字段,第17,16位为选择字段,用于选择外设和内存;第15-13位称为A字段,用于产生各寄存器的数据装入微命令;第12-10位称为B字段,用于控制各寄存器的数据送入总线的微命令;第9-7位称为C字段,用于微指令控制空能;NA字段为第6-1位,用于下条指令地址的计算。
其中算逻部件控制字段,存储器功能控制字段,选择字段,ABC字段均为不译码的,NA字段在C字段为000时不译码,为001,010,011,100时分别进行P(1)-P(4)测试译码,可看为间接译码,是将其与IR字段部分位相或算出下条指令地址。
(2)、微程序中的微指令是否是顺序执行的,如果不是,那么次地址是如何产生的。
什么情况下,次地址字段才是将要执行的微指令的地址。
答:微程序中的微指令不是顺序执行的,如为P(1) [或者P(2)/ P(3)/ P(4)]测试,则次地址的微地址的4~1位是用次地址字段NA(4~1位)或指令寄存器IR(8~5位)所产生,NA字段的6~5位保持不变;如不是测试的话,那么次地址即为该微指令NA字段所指向的微地址。
当设计的微指令指向下条指令,次地址字段才是将要执行的微指令的地址。
(3)、在微程序中如何根据机器指令中的相关位实现分支,据此,在设计机器指令时应如何避免和解释其它指令的微指令的微地址冲突。
答:在微程序中根据机器指令的5~8位进行测试,实现相关分支。
在设计机器指令时需考虑对应的微地址入口,每个机器指令均需对应一个微指令的地址。
计组课程设计报告_图文
《计算机组成原理》课程设计报告年级专业班级:完成日期: 2015.12.51.引言1.1 实验目的1)在掌握传统的、顺序执行的CPU工作原理基础上,理解掌握流水CPU的工作原理;2)掌握流水线的设计思路和方法,尤其是对结构相关、数据相关和控制相关的解决思路;3)理解硬件设计流程,熟悉掌握指令系统的设计方法,并设计简单的指令系统;4)理解和掌握基于VHDL语言和TEC-CA硬件平台设计模型机的方法,并藉此掌握工程设计的思路和方法。
1.2 实验要求1)基本设计要求参考《16位5级流水无cache实验CPU课程设计实验要求》文档及其VHDL 代码,在理解其思想和方法的基础上,将其改造成8位的5级流水无cache的实验CPU,包括对指令系统、数据通路、各流水段模块、存储器模块等方面的改造。
利用VHDL语言编程实现,并在TEC-CA平台上进行仿真测试。
为方便起见,后续16位5级流水无cache实验CPU简记为ExpCPU-16,而8位的则记为ExpCPU-8。
对于存储器模块的改造,参考《计算机组成原理》课程综合实验的方法,独立设计一块8位的RAM。
要求测试减法的溢出标志位,如测试192-(-96)或者-192-96的溢出标志位。
2)额外设计要求时间允许的情况下,进行一些额外的、探索性的改造,可用于加分。
例如:(1)利用TEC-CA平台上的16位RAM来存放8位的指令和数据;(2)实现一条JRS指令,以便在符号标志位S=1时跳转。
需要改写ID段的控制信息,并改写IF段;(3)实现一条CMPJ DR,SR,offset指令,当比较的两个数相等时,跳转到目标地址PC+1+offset;(4)可以探索从外部输入指令,而不是初始化时将指令“写死”在RAM中;(5)此5段流水模块之间,并没有明显地加上流水寄存器,可以考虑在不同模块间加上流水寄存器;(6)探索5段流水带cache的CPU的设计。
1.3 实验设备本课程综合设计中,需要用到的实验设备如下:1)PC两台;2)TEC-CA硬件实验箱一个;3)Quartus II软件平台一个;4)DebugController软件一个;5)JTAG连接线。
CPU计算机组成原理实验报告
CPU计算机组成原理实验报告实验名称:CPU计算机组成原理实验一、实验目的:1.了解计算机硬件的基本组成原理,特别是CPU的工作原理;2.掌握计算机的组装和调试技能;3.熟悉计算机操作系统的安装和配置方法;4.学习使用计算机进行基本的应用程序开发。
二、实验设备和材料:1.CPU主机:包括主板、CPU、内存、硬盘等;2.显示设备:显示器、键盘、鼠标等;3.软件:操作系统、开发工具等。
三、实验步骤:1.将主板、CPU、内存、硬盘等硬件组件组装到主机箱中,连接电源、显示器、键盘、鼠标等外设;2.打开电源,按照BIOS界面提示进行主板和硬件设置;3.插入操作系统安装光盘,根据安装界面提示进行操作系统的安装;4.安装完成后,进入操作系统,根据提示进行相应驱动程序的安装和配置;5.打开开发工具,进行编程实践。
四、实验结果与分析:通过以上步骤,成功组装了一台计算机并安装了操作系统。
在操作系统中,能够正常运行各种应用程序,并且能够进行编程开发。
通过实验,可以清楚地了解到计算机硬件的组成原理,特别是CPU的工作原理。
CPU 作为计算机的核心部件,负责指令的执行和数据的处理。
通过对CPU的组装和调试,可以更深入地了解其工作原理和操作方法。
五、实验心得与体会:通过实验,我对计算机硬件的组装和设置有了更深入的理解。
计算机硬件的组成非常复杂,需要我们仔细阅读说明书,按照步骤进行操作。
在实验过程中,我们学会了解决一些常见的硬件问题,如硬件不兼容、连接错误等。
此外,操作系统的安装和配置也是非常重要的一步,只有正确地安装和配置操作系统,才能保证计算机的正常运行。
通过这个实验,我不仅学到了理论知识,还锻炼了实际操作的能力。
计算机的组装和调试需要我们仔细、耐心地进行,一丝不苟地对待每一步操作。
只有掌握了计算机组成原理,才能更好地理解和应用计算机技术。
通过实验,我深刻地认识到计算机是一台高度复杂的机器,它可以帮助我们解决各种问题,提高工作效率。
计算机组成原理的实验报告
计算机组成原理的实验报告一、实验目的本次实验的主要目的是深入理解计算机组成原理中的关键概念和组件,通过实际操作和观察,增强对计算机硬件系统的认识和掌握能力。
具体包括:1、了解计算机内部各部件的工作原理和相互关系。
2、熟悉计算机指令的执行流程和数据的传输方式。
3、掌握计算机存储系统的组织和管理方法。
4、培养分析和解决计算机硬件相关问题的能力。
二、实验设备本次实验使用的设备包括计算机、逻辑分析仪、示波器以及相关的实验软件和工具。
三、实验内容1、运算器实验进行了简单的算术运算和逻辑运算,如加法、减法、与、或等操作。
观察运算结果在寄存器中的存储和变化情况。
2、控制器实验模拟了指令的取指、译码和执行过程。
分析不同指令对计算机状态的影响。
3、存储系统实验研究了内存的读写操作和地址映射方式。
考察了缓存的工作原理和命中率的计算。
4、总线实验观察数据在总线上的传输过程和时序。
分析总线竞争和仲裁的机制。
四、实验步骤1、运算器实验步骤连接实验设备,将运算器模块与计算机主机相连。
打开实验软件,设置运算类型和操作数。
启动运算,通过逻辑分析仪观察运算过程中的信号变化。
记录运算结果,并与预期结果进行比较。
2、控制器实验步骤连接控制器模块到计算机。
输入指令序列,使用示波器监测控制信号的产生和变化。
分析指令执行过程中各个阶段的状态转换。
3、存储系统实验步骤搭建存储系统实验电路。
进行内存读写操作,改变地址和数据,观察存储单元的内容变化。
分析缓存的替换策略和命中率的影响因素。
4、总线实验步骤连接总线模块,配置总线参数。
多个设备同时发送数据,观察总线的仲裁过程。
测量数据传输的时序和带宽。
五、实验结果与分析1、运算器实验结果加法、减法等运算结果准确,符合预期。
逻辑运算的结果也正确无误。
观察到在运算过程中,寄存器的值按照预定的规则进行更新。
分析:运算器的功能正常,能够准确执行各种运算操作,其内部的电路和逻辑设计合理。
2、控制器实验结果指令能够正确取指、译码和执行,控制信号的产生和时序符合指令的要求。
计算机组成原理课程设计
计算机组成原理课程设计尊敬的教师:敬启者,我是您的学生,正在进行计算机组成原理课程设计。
我非常荣幸能够参与这个项目,并且准备了如下的设计报告:第一部分:引言在本设计中,我们将要研究和设计一台基于RISC体系结构的32位微处理器。
通过学习和探索计算机的基本组成原理,我们将能够深入了解计算机硬件的工作原理和设计过程。
在本文档中,我们将详细描述我们的设计思路、实现方法和实验结果,并通过性能测试来评估我们的设计。
第二部分:设计目标本设计的主要目标是实现一个高效、稳定和可扩展的32位微处理器。
我们的设计将满足以下要求:1. 支持基本的CPU指令集.2. 支持流水线技术,以提高指令执行速度.3. 支持浮点运算和向量指令扩展.4. 支持高性能和低功耗的设计.5. 具备良好的可扩展性和可维护性.6. 设计尽可能地简洁和高效.第三部分:设计思路我们的设计思路是基于经典的RISC体系结构,并结合了一些现代的设计理念和技术来达到我们的设计目标。
我们使用VHDL语言进行设计和验证,并且使用ModelSim进行仿真和验证。
我们将重点关注以下几个方面的设计:1. 指令集架构: 我们将实现一个基本的指令集架构,并根据需求进行扩展.2. 流水线设计: 我们将使用五级流水线来提高指令执行速度.3. 浮点运算和向量指令扩展: 我们将实现浮点运算指令和向量指令的硬件支持.4. 性能优化和功耗控制: 我们将采用一些优化技术来提高性能并降低功耗.5. 可扩展性和可维护性: 我们将设计一个可灵活扩展和易于维护的架构.第四部分:实现方法在实现过程中,我们将遵循以下步骤:1. 设计和验证: 我们将使用VHDL语言进行设计,使用ModelSim进行仿真和验证.2. 代码实现: 我们将根据设计思路编写代码,并对各个模块进行单元测试.3. 性能测试: 我们将使用一系列的测试程序对设计进行性能测试,并进行性能分析.4. 优化和调试: 我们将根据测试结果对设计进行优化和调试.5. 文档撰写: 我们将撰写设计报告,详细记录设计过程和实现细节.第五部分:实验结果与讨论在设计完成后,我们将对设计进行一系列的性能测试,并对结果进行分析和讨论。
计算机组成原理课程设计的实验报告
计算机组成原理课程设计的实验报告实验报告:计算机组成原理课程设计摘要:本实验报告旨在介绍计算机组成原理课程设计的实验过程和结果。
该实验旨在深入理解计算机的组成和工作原理,并通过设计和实现一个简单的计算机系统来加深对计算机组成原理的理解。
本实验报告将包括实验的目的、实验环境、实验步骤、实验结果以及实验的分析和讨论。
1. 实验目的:本实验的目的是通过设计和实现一个简单的计算机系统,加深对计算机组成原理的理解。
具体目标包括:- 理解计算机的基本组成和工作原理;- 掌握计算机硬件的设计和实现方法;- 学习使用计算机组成原理相关的软件工具。
2. 实验环境:本实验所需的硬件和软件环境如下:- 硬件环境:一台支持计算机组成原理课程设计的计算机;- 软件环境:计算机组成原理相关的软件工具,如Xilinx ISE、ModelSim等。
3. 实验步骤:本实验的步骤主要包括以下几个部分:3.1 系统需求分析在设计计算机系统之前,首先需要明确系统的需求和功能。
根据实验要求,我们需要设计一个简单的计算机系统,包括指令集、寄存器、运算单元等。
3.2 系统设计根据系统需求分析的结果,进行系统设计。
设计包括指令集的设计、寄存器的设计、运算单元的设计等。
3.3 系统实现在系统设计完成后,需要进行系统的实现。
具体步骤包括使用硬件描述语言(如VHDL)进行电路设计,使用Xilinx ISE进行逻辑综合和布局布线,最终生成bit文件。
3.4 系统测试在系统实现完成后,需要进行系统的测试。
测试包括功能测试和性能测试。
功能测试主要是验证系统是否按照设计要求正常工作;性能测试主要是测试系统的性能指标,如运行速度、吞吐量等。
4. 实验结果:经过实验,我们成功设计和实现了一个简单的计算机系统。
该系统具有以下特点:- 指令集:支持基本的算术运算和逻辑运算;- 寄存器:包括通用寄存器、程序计数器、指令寄存器等;- 运算单元:包括算术逻辑单元(ALU)和控制单元。
5级流水无cache-CPU实验计算机组成原理-课程设计报告
计算机组成原理课程设计报告5级流水无cache CPU实验1.1 实验内容:无cache流水CPU的分析与改造1.理解无cache流水CPU的工作原理,明确系统总体结构和数据通路图,分析解决各种相关用到的主要信号,以及详细分析各流水段的功能和实现。
2.将16位的指令系统改为8位,设计新的指令系统,并修改相应的数据通路。
3.修改规则文件(cpu.txt),并编写测试程序验证系统改造的正确性。
1.2 总体基本信息1.深刻理解无cache流水cpu的工作原理。
在详细分析了各流水段的功能实现、3种相关的产生原因和解决方法的基础上,完成了以下后续工作。
2.修改指令系统。
具体包括:a)16位指令改为8位,重新编写了指令OP码。
b)新增了MOVI指令。
由于原指令系统没有将立即数存进指定寄存器的指令,因此此处新增一条MOVI指令。
指令的汇编语句为MOVI DR, IMM其中DR为目的寄存器,IMM为立即数。
因为指令长度为8位,OP和DR共占了6位,因此IMM的大小不大于3(即二进制“00”至“11”)。
c)修改及删除了部分指令。
此处详见5.1。
3.修改系统控制信号。
在保持原有系统逻辑功能基本不变的情况下,修改各个模块里控制信号位数以及模块接口信号位数以和新的指令系统兼容。
4.增加内存模块。
使用vhdl编写了一个ram模块,根据读写信号来选择读写功能。
reset时将事先写好的二进制形式程序写进内存。
5.扩展了常量定义文件。
在常量定义文件unitpack.vhd中,具体地:a)新增了ALU功能选择信号常量aluMOVI。
b)新增了寄存器编号常量R0、R1、R2和R3。
c)新增了ram类型。
6.使用Quartus II进行功能仿真并debug。
7.使用bdf构造顶层实体cpum。
由于新增了内存模块,而原系统是使用vhdl编写的,为了方便对接,我们使用bdf的形式将无cache流水线cpu和内存模块连接起来构造顶层实体cpum,“m”的含义是“memory”,即带内存模块的无cache流水线cpu。
计算机组成原理实验
1. 采用 Cache-Memory 存储层次。 2. 地址长度为 16 位,数据寄存器长度 16 位,存储字长是 8 位,采用小端存储模式。 3. Cache 采用二路组相联,Cache 大小为 1KB,每个字块 4 个字,字长为 2B。 4. 能根据有效地址读 Cache 和内存,把数据读入数据寄存器中;能根据有效地址把
1、 运算器由 ALU,状态寄存器,通用寄存器组成。 2、 ALU 能够进行加、减、乘、除等四则运算,与、或、非、异或等逻辑运算以及移
位求补等操作。其中乘除法要实现原码 1 位乘、补码 1 位乘(Booth)、原码加减 交替除法、补码加减交替除法 4 种算法。选作原码/补码 2 位乘算法。 3、 通用寄存器组用于保存参加运算的操作数和运算结果。 4、 状态寄存器用于记录算术、逻辑运算的结果状态。程序设计中,这些状态通常用 作条件转移指令的判断条件,所以又称为条件码寄存器。一般均设置如下几种状 态位:零标志位(Z),负标志位(N),溢出标志位(v),仅为或借位标志(C)。 【输入】从 ins_input.txt 读入。每行有一个操作码和两个操作数,用空格分开,操作数用原 码表示。 e.g. Add 0.110111 1.101110 Sub 0.100111 0.101011 Mul 1.101110 0.110111 【输出】将运算过程和结果输入到 output.txt 例如: ori_onebit_times [x]ori=1.101110 [y]ori=0.110111 x*=0.101110 y*=0.110111 0.000000 110111 + 0.101110 -------------------------------0.101110 0.010111 0 11011 + 0.101110 -------------------------------1.000101 0 0.100010 10 1101 + 0.101110 -------------------------------1.010000 10 0.101000 010 110 0.010100 0010 11 + 0.101110 -------------------------------1.000010 0010 0.100001 00010 1 + 0.101110 --------------------------------
《计算机组成原理》课程设计报告
7.连接实验线路…………………………………………………………………..12
8.运行与调试……………………………………………………………………..13
五总结…………………………………………………………………………………………….13
六参考文献…………………………………………………………………………………………15
OUT addr
0011 0000 XXXX XXXX
[addr] -> LED
JMP addr
0100 0000 XXXX XXXX
[addr] -> PC
4
(1)微指令格式
微指令字长共24位,其控制位顺序如下表所示:
A字段
B字段
C字段
15
14
13
选择
12
11
10
选择
9
8
7
选择
0
0
0
0
0
0
0
0
0
0
110
110
000110
0B
0
0
0
0
0
0
0
1
1
110
110
110
011000
0C
0
0
0
0
0
0
0
1
1
110
110
110
001101
0D
0
0
0
0
0
0
0
0
1
101
000
110
000001
18
0
0
计算机组成原理(毕业设计报告)
《计算机组成原理》课程设计报告实验计算机的设计学院:班级:学号:姓名:完成时间:目录一、设计目的 (2)二、设计内容 (2)三、设计要求 (2)四、设计原理 (2)五、调试程序 (6)六、应用程序 (6)七、心得体会 (8)一. 设计目的:巩固和深刻理解"计算机组成原理"课程所讲解的原理,加深对计算机各模块协同工作的认识,掌握微程序设计的思想和具体方法,培养我们独立思考和创新思维的能力,取得设计与调试的实践经验.二. 设计内容:按照要求设计一指令系统,该指令系统能够实现数据传送,进行加,减运算和逻辑左移和右移,具有累加器寻址,寄存器寻址,寄存器间接寻址,存储器直接寻址,立即数寻址等五种寻址方式.三. 设计要求:仔细复习所学过的理论知识,掌握微程序设计的思想,并根据掌握的理论写出要设计的指令系统的微程序.运算器采用多累加器结构.指令系统至少要包括六条指令,具有上述功能和寻址方式.将所设计的微程序在虚拟环境中进行调试,并给出测试思路和具体程序段(1)运算器:采用单累加器多寄存器结构(开关KA,KB,KC,KR分别置左,右,右,左)(2)指令系统:多于16条指令,外设和内存统一编址,统一操作指令(3)内存寻址方式:寄存器直接寻址寄存器间接寻址直接寻址立即数寻址(4)微程序设计微操作信号发生器四. 设计原理用FD-CES-B型试验仪的硬件资源,实验者可自行设计指令系统以及相应的微程序,研制一台微程序控制的试验计算机。
把微程序输入控存,在给定具体的程序后,用汇编语言编出算法。
手工编译为微指令,输入主存,调试得到预期结果。
部分接线图如下所示:接线:SA 接 X0 接 M16 SB 接 X1 接 M17 P0、SR、SL 接CYP1 接 A0P2 接 A7CA、CC、RCP、CI 接ΦS3~S0 接 M23~M20Cn 接M19M 接M18CG 接M11OB 接M8OT 接 M10CT 接+5VRR 接M1A 接 I0B 接 I1P+1 接M6GI 接 M7CK 接ΦCLR 接+5VOI 接M15B1、B3 接RFKA 接IAB0PA 接 IAB1DR 接 M5MLD 接 M4MP+1 接 +5VMCLR 接 ROMCLK 接POMIG 接地MD10~MD6 接地MD5 接 I7MD4 接 I6MD3 接 I5MD2 接 I2MD1~MD0 接+5V根据设计要求,实验计算机属多累加器结构.因此,应将实验仪上的KA,KB,KC,KR四组开关分别置为右,左,左,上的位置.另外,实验计算机和外设不仿采用I/O查询方式.下图是整机逻辑框图:微指令格式和指令微程序:五. 调试程序(一)准备工作:1、测试控制台的复位功能:加电按RET键,应显示CPU READY字样,表示实验仪监控程序开始工作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机组成原理课程设计报告5级流水无cache CPU实验1.1 实验内容:无cache流水CPU的分析与改造1.理解无cache流水CPU的工作原理,明确系统总体结构和数据通路图,分析解决各种相关用到的主要信号,以及详细分析各流水段的功能和实现。
2.将16位的指令系统改为8位,设计新的指令系统,并修改相应的数据通路。
3.修改规则文件(cpu.txt),并编写测试程序验证系统改造的正确性。
1.2 总体基本信息1.深刻理解无cache流水cpu的工作原理。
在详细分析了各流水段的功能实现、3种相关的产生原因和解决方法的基础上,完成了以下后续工作。
2.修改指令系统。
具体包括:a)16位指令改为8位,重新编写了指令OP码。
b)新增了MOVI指令。
由于原指令系统没有将立即数存进指定寄存器的指令,因此此处新增一条MOVI指令。
指令的汇编语句为MOVI DR, IMM其中DR为目的寄存器,IMM为立即数。
因为指令长度为8位,OP和DR共占了6位,因此IMM 的大小不大于3(即二进制“00”至“11”)。
c)修改及删除了部分指令。
此处详见5.1。
3.修改系统控制信号。
在保持原有系统逻辑功能基本不变的情况下,修改各个模块里控制信号位数以及模块接口信号位数以和新的指令系统兼容。
4.增加内存模块。
使用vhdl编写了一个ram模块,根据读写信号来选择读写功能。
reset时将事先写好的二进制形式程序写进内存。
5.扩展了常量定义文件。
在常量定义文件unitpack.vhd中,具体地:a)新增了ALU功能选择信号常量aluMOVI。
b)新增了寄存器编号常量R0、R1、R2和R3。
c)新增了ram类型。
6.使用Quartus II进行功能仿真并debug。
7.使用bdf构造顶层实体cpum。
由于新增了内存模块,而原系统是使用vhdl编写的,为了方便对接,我们使用bdf的形式将无cache流水线cpu和内存模块连接起来构造顶层实体cpum,“m”的含义是“memory”,即带内存模块的无cache流水线cpu。
8.重画数据通路图。
我们使用了Microsoft Visio软件在原有的系统总结结构图的基础上修改并新增了部分模块,详见2。
2、系统总体结构及数据通路图总体结构图:数据通路图:整个CPU由以下几个模块组成:●取指模块(IF):给出内存地址,读取指令并送入指令寄存器,为下一级准备数据。
由于PC控制模块处于取指模块中,因此控制相关的检测也置于取指模块。
●译码模块(ID):读取寄存器值和指令译码。
我们采取一次译码,逐级传递的方式,译出后几级流水所需的控制信号和数据(如立即数等),在每次时钟上升沿到来时送入下一级。
实际上,结构相关、控制相关、数据相关的检测都可归入译码部分。
考虑到“相关检测”涉及到的信号分属不同阶段以及整体结构的清晰性,我们将“相关检测”独立出来。
●执行模块(Ex):完成算术逻辑运算、计算有效地址和提供数据通道。
●访存模块(Ma):选择地址线的数据来源和数据线的流向。
访存和取指在功能上是独立的,但CPU对外只有一条地址线和数据线的事实决定了访存和取指是相互联系的。
当执行LOAD/STORE 指令时,地址线由ALU送入“访存段”的值提供;取指时,则由PC提供。
当写内存时,CPU 内部数据送数据线;当需要读内存时,CPU往数据线送高阻。
●回写模块(Wb):选择回写数据源和根据写使能信号wRegEn将数据回写到寄存器堆;●HazardDetectUnit模块:检测结构相关;●ForwardingUnit模块:检测数据相关。
●内存模块memory,根据访存地址mem_adr和读写信号wr来控制。
3 解决各种相关用到的主要信号的分析3.1控制相关控制相关是指因为程序的执行方向可能改变而引起的相关。
当执行跳转指令时,就会发生这种情况。
除JR 外,JRZ 等条件跳转需要根据当前状态位来决定是否跳转,而当前状态位是由前面最近的会影响状态位的指令(如算术指令)决定。
常规的也是比较简单的做法是在碰到JRX 之类的跳转指令时,延迟后边流水线的进入。
但我们通过分析,认为可以一点都不必延迟,通过旁路处理把控制相关转为数据相关来处理。
这样处理,不必延迟,可以提高流水线的性能。
按我们的方式解决控制相关需要做两项工作:1) 通过旁路,提供状态寄存器的值和临时状态位的值,为判断是否跳转作准备;2) 选择PC 更新的时机1.旁路处理在每条指令译码时,会产生一个信号setFlag ,它决定了在执行阶段是否根据ALU 计算结果改变状态位。
从下面的时序图中可以发现,只要我们在JRX 指令译码时提供以下3个信号就可作出是否跳表17 处理控制相关信号若e_setFlag 要写状态寄存器,则说明前一条指令会影响状态位,这时根据tFlag 决定是否跳转;若e_setFlag 要保持状态寄存器,则说明前一条指令不会影响状态位,这时根据Flag 决定是否跳转。
JR×前一条指令后一条指令涉及到控制相关的关键信号是setFlag信号,产生于译码模块,作用于执行模块,即identity.vhdhe exentity.vhd文件中。
如下图所示。
从上图可看出,凡是涉及到数值计算和关系运算的指令的低三位均为001,而不涉及的则为000。
该信号传到执行模块中用于判断是否更新状态寄存器。
3.2 数据相关数据相关是指在执行本条指令的过程中,如果用到的操作数是前面指令的执行结果,则必须等待前面的指令执行完成,并把结果写回寄存器或主存之后,本条指令才能继续执行。
此处采用设置专用数据通路来解决数据相关问题。
但旁路技术并非一劳永逸。
若前一指令为LOAD,而后一指令和它数据相关,如下图所示,当下一指令的执行阶段需要数据时,上一指令尚未给出,这种情况是无法用旁路技术来解决的。
相关的类型有三种:1.2.主要用到的关键信号是m_wRegEn和w_wRegEn,主要使用是在数据相关检测模块forwardingentity.vhd中,在identity.vhd、exentity.vhd、memaccessentity.vhd中均有使用。
具体的使用方法如下。
相关的检测都置于“执行阶段”。
信号wRegEn是寄存器写使能,SA,SB是寄存器组A,B口选择信号。
信号前缀表示信号所处的阶段。
如e_SA表示处于执行阶段的SA。
1.相邻指令数据相关的检测若m_wRegEn=’1’,则表示前一指令要回写寄存器。
此时,若e_SA或e_SB等于m_SA,则必然数据相关,这是因为我们规定,若回写寄存器,则寄存器A口选择信号所指定的即为目的寄存器。
否则无关。
2.中间隔1条指令的两指令数据相关的检测若w_wRegEn=’1’,则表示第一条指令要回写寄存器。
此时,若e_SA或e_SB等于w_SA,则必然数据相关。
否则无关。
当然,上述两种情况可能会一同出现。
这时,我们就按情况1处理。
因为情况2可以理解为接连出现情况1。
下图为各个指令在译码时产生的wRegEn信号,可以发现凡是会写进寄存器的指令,该信号值都为1。
3.3 结构相关由于在设计中不包含缓存,因此会有取指和访存的冲突,即结构相关。
如下图:执行访存取指译码取指译码关键信号是wrMem信号,表示是否读写内存。
具体出现在结构相关冲突检测与问题解决模块Hazarddetectentity.vhd中,产生于译码模块identity.vhd中。
具体使用方法如下:1)冲突检测只有执行访存指令(LOAD/STORE)时,才会出现冲突。
因此,我们在译码时产生一个标志是否访存的信号wrMem。
含义如下:wrMem 意义00 写内存(STORE)01 读内存(LOAD)1×不占用内存表16 wMEM控制信号通过检查“访存阶段”的m_wrMem就可确定是否冲突。
2)取指延后在每次取指时,若有冲突,则往IR中写入空指令(NOP),并保持PC不变,使取指延后一个节拍。
4 各流水段功能和实现的详细分析4.1取指(IF)4.1.1 实现功能列表取指模块实现的功能是:●给定内存地址,读取内存中的指令●将指令送入指令寄存器,提供给下一级的译码模块●实现控制相关冲突检测●根据读取到的指令是否为跳转指令来更新PC4.1.2输入、输出信号分析主要输入信号:Z,C 状态寄存器tempZ,tempC ALU计算出的临时状态位,用于相关冲突检测e_setFlag 状态寄存器写使能端,产生于译码时。
决定是否在执行阶段根据ALU计算出来的结果改变状态位PCStall 决定是否保持PC不变,由结构相关冲突检测模块产生IFFlush 决定是否往指令寄存器IR里写入空指令,来自结构相关检测模块OuterDB 内存读取过来的数据主要输出信号:PC_addr PC作为内存地址输出,用于下一节拍的取指d_PCInc1 PC + 1d_IR 指令寄存器输出4.1.3功能实现逻辑通过分析控制信号我们可以大概了解到取指模块的功能实现逻辑是如何的。
广义上来说,取指模块包括结构相关冲突检测模块,因为PCStall信号(用来实现IF段对PC的更新)和IFFlush信号(对IR 写入空指令)就来自结构相关冲突检测模块。
结构相关检测模块叫HazardDetectEntity,其模块图如下:m_wrMem wrMem在访存阶段的值w_rwMem wrMem在写回阶段的值d_IR 指令寄存器通过检测访存阶段的wrMem信号即可确定是否发生了结构冲突。
每次取指后,若有冲突,则往IR中写入空指令(NOP),并保持PC不变,使得取指延后一个节拍。
除此之外,setFlag信号在此处的作用是,决定用状态寄存器输出Flag还是ALU计算出的临时状态位tFlag来判断跳转。
4.2译码(ID)4.2.1 实现功能列表译码模块实现的功能是:●读取指令寄存器中的指令●对指令进行译码,发送控制信号4.2.2输入、输出信号分析主要输入信号:d_IR 从取指模块来的指令d_PCInc1 从取指模块来的pc+1w_wbData 写回数据,从写回模块里来w_destReg 要写回的目标寄存器w_wRegEn 寄存器写使能端e_RAOut 寄存器A输出值e_RBOut 寄存器B输出值e_IMM 立即数输出值e_ALUSrc ALU输入端选择信号e_ALUOpr ALU运算选择信号e_SetFlag 状态寄存器写使能信号e_wrMem 访存信号e_wRegEn 寄存器写使能信号e_destReg 目标寄存器e_MemToReg 内存写入寄存器使能信号4.2.3功能实现逻辑译码模块内部写好了根据不同的指令发送不同的控制信号的代码,采取一次译码,逐级传递的方式,译出后几级流水所需的控制信号和数据(如立即数)。
在每次时钟上升沿到来时送入下一级。