湘潭大学 计算机组成与原理 控制器实验 实验报告
湘潭大学计算机原理实验三多周期MIPSCPU的控制部件预习报告
湘潭大学计算机原理实验三多周期MIPSCPU的控制部件预习报告实验三多周期MIPS CPU的控制部件实验用有限状态机实现多周期CPU的控制部件一.实验目的1、了解MIPS—CPU控制器的功能和工作原理;2、掌握用有限状态机技术实现多周期控制器的方法;3、熟练掌握用Verilog HDL语言设计多周期控制器的方法;4、熟练掌握对多周期控制器的仿真实验验证和硬件测试两种调试方法;5、掌握向MIPS-CPU顶层数据通路中增加控制单元的方法,并通过仿真验证和硬件测试两种方法对电路进行故障定位的调试技术。
二.实验内容(1)MIPS—CPU控制器的有限状态机设计,根据MIPS—CPU 各种类型指令执行要求和有限状态机的设计原理,将多周期控制器的指令执行划分为多个状态,确定每一种指令的有限状态机,最后归纳为完整的多周期控制器有限状态机。
通过Verilog HDL语言实现多周期控制器有限状态机。
(2)根据MIPS—CPU控制器的接口要求,在有限状态机的基础上,用Verilog HDL实现完整的MIPS—CPU控制器的设计,并根据仿真波形,验证设计的正确性,并对出现的故障进行定位,修改程序,重新编译;(3)设计控制器的硬件下载测试方案。
将编译通过的电路下载到实验台中。
根据硬件调试结果验证设计的正确性,并对出现的故障进行定位,修改程序重新编译;最终完成控制器的硬件电路设计;(4)在MIPS—CPU指令系统的数据通路基础上,增加控制单元电路,并进行编译,仿真波形和调试。
根据仿真波形,验证设计的正确性,并对出现的故障进行定位,修改程序,重新编译;(5)对增加了控制单元的顶层数据通路设计硬件下载测试方案。
将编译通过的电路下载到实验台中。
根据硬件调试结果验证设计的正确性,并对出现的故障进行定位,修改程序,重新编译;最终完成增加了控制单元的顶层数据通路设计。
三.实验原理与步骤1.把指令执行分成多个阶段,每个阶段在一个时钟周期内完成(1).时钟周期以最复杂阶段所花时间为准(2).尽量分成大致相等的若干阶段(3).每个阶段内最多只能完成:1次访存或1次寄存器堆读/写或1次ALU2.每步都设置相应的存储元件,执行结果都在下个时钟开始保存到相应单元3.认真阅读书上的控制部件代码后,将其按照电路图进行拆分,拆分为三个部件,并在顶层模块中连接线路。
计算机组成原理实验报告
计算机组成原理实验报告实验报告运算器实验⼀、实验⽬的掌握⼋位运算器的数据传输格式,验证运算功能发⽣器及进位控制的组合功能。
⼆、实验要求完成算术、逻辑、移位运算实验,熟悉ALU运算控制位的运⽤。
三、实验原理实验中所⽤的运算器数据通路如图2-3-1所⽰。
ALU运算器由CPLD描述。
运算器的输出FUN经过74LS245三态门与数据总线相连,运算源寄存器A和暂存器B的数据输⼊端分别由2个74LS574锁存器锁存,锁存器的输⼊端与数据总线相连,准双向I/O 输⼊输出端⼝⽤来给出参与运算的数据,经2⽚74LS245三态门与数据总线相连。
图2-3-1运算器数据通路图中A WR、BWR在“搭接态”由实验连接对应的⼆进制开关控制,“0”有效,通过【单拍】按钮产⽣的脉冲把总线上的数据打⼊,实现运算源寄存器A、暂存器B的写⼊操作。
四、运算器功能编码算术运算逻辑运算K23~K0置“1”,灭M23~M0控位显⽰灯。
然后按下表要求“搭接”部件控制路。
表2.3.2 运算实验电路搭接表算术运算1.运算源寄存器写流程通过I/O单元“S7~S0”开关向累加器A和暂存器B置数,具体操作步骤如下:2.运算源寄存器读流程关闭A、B写使能,令K18=K17=“1”,按下流程分别读A、B。
3.加法与减法运算令M S2 S1 S0(K15 K13~K11=0100),为算术加,FUN及总线单元显⽰A+B的结果令M S2 S1 S0(K15 K13~K11=0101),为算术减,FUN及总线单元显⽰A-B的结果。
逻辑运算1.运算源寄存器写流程通过“I/O输⼊输出单元”开关向寄存器A和B置数,具体操作步骤如下:2.运算源寄存器读流程关闭A、B写使能,令K17= K18=1,按下流程分别读A、B。
①若运算控制位设为(M S2 S1 S0=1111)则F=A,即A内容送到数据总线。
②若运算控制位设为(M S2 S1 S0=1000)则F=B,即B内容送到数据总线。
计算机组成原理实验报告微程序控制器实验
实验三微程序控制器实验一. 实验目的与要求:实验目的:1.理解时序产生器的原理,了解时钟和时序信号的波形;2.掌握微程序控制器的功能,组成知识;3.掌握微指令格式和各字段功能;4.掌握微程序的编制,写入,观察微程序的运行,学习基本指令的执行流程。
实验要求:1.实验前,要求做好实验预习,并复习已经学过的控制信号的作用;2.按练习一要求完成测量波形的操作,画出TS1,TS2,TS3,TS4的波形,并测出所用的脉冲Ф周期。
按练习二的要求输入微指令的二进制代码表,并单步运行五条机器指令。
二. 实验方案:按实验图在实验仪上接好线后,仔细检查无误后可接通电源。
1.练习一:用联机软件的逻辑示波器观测时序信号,测量Ф,TS1,TS2,TS3,TS4信号的方法如下:(1) TATE UNIT 中STOP开关置为“RUN”状态(向上拨),STEP开关置为“EXEC”状态(向上拨)。
(2) 将SWITCH UNIT 中右下角CLR开关置为“1”(向上拨)。
(3) 按动“START”按钮,即可产生连续脉冲。
(4)调试”菜单下的“显示逻辑示波器窗口,即可出现测量波形的画面。
(5)探头一端接实验仪左上角的CH1,另一端接STATE UNIT中的Ф插座,即可测出时钟Ф的波形。
(6)探头一端接实验仪左上角的CH2,另一端接STATE UNIT中的TS1插座,即可测出TS1的波形;(7)探头一端接实验仪左上角的CH1,另一端接STATE UNIT中的TS2插座,即可测出TS2的波形。
(8)将红色探头一端接实验仪左上角的CH1,另一端接STATE UNIT中的TS3插座,即可测出TS3的波形。
(9)将红色探头一端接实验仪左上角的CH1,另一端接STATE UNIT中的TS4插座,即可测出TS4的波形。
2.观察微程序控制器的工作原理:①关掉实验仪电源,拔掉前面测时序信号的接线;②编程写入E2PROM 2816A.将编程开关(MJ20)置为PROM(编程)状态;B.将实验板上STATE UNIT 中的STEP置为STEP状态,STOP置为RUN状态,SWITCH UNIT中CLR开关置为1状态;C.在右上角的SWITCH UNIT中UA5-UA0开关上置表3.2中某个要写的微地址;D.在MK24-MK1开关上置表3.2中要写的微地址后面的24位微代码,24位开关对应24位显示灯,开关置为1时灯亮,为0时灯灭;E.启动时序电路,即将微代码写入到E2PROM 2816的相应地址对应的单元中;F.重复C-E步骤,将表3.2的每一行写入E2PROM 2816。
组成原理实验报告
组成原理实验报告(总6页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--实验报告实验六 模型机与机器指令执行实验一 实验目的 1 实验目的(1) 掌握控制器的工作原理(2) 掌握由控制器、运算器、存储器、组成的模型机的工作原理 (3) 通过运行各种简单程序,掌握机器指令和微指令的关系 2 实验要求(1) 做好实验预习和准备工作,掌握本次实验所用指令系统功能 (2) 将实验用汇编语言源文件编译成机器语言的目标文件 (3) 完成规定的实验内容 (4) 故障分析与排除(5) 实验结束时完成实验报告,并将报告提交服务器。
二 实验原理模型机的逻辑框图如图所示。
其指令系统和微指令系统可参看资料。
在本实验中,模型机作为一个整体工作。
所有微程序的控制信号由微程序存储器uM 输出。
而各寄存器,运算器的控制端口与uM 联接。
三 实验内容 在实验前,先用8芯电缆连接J1和J2,控制方式开关拨到“微程序控制”方向。
将计算机串口与实验仪串口相连,启动COP2000软件,并用快捷图标“设置”功能打开设置窗口,选择实验仪连接的串行口,然后再按“连接COP2000实验仪”按钮接通到实验仪。
实验1 数据传送/输入输出实验1. 在COP2000软件中的源程序窗口输入下列程序:MOV A ,#12H计算机组成原理机A W T D L RST R3R2R1R0MAR keyinportout PC mem_a mem_dIR Control24ALU DBUS ABUSIA IBUS INT_CODE Display Input SRAM。
计算机组成原理实验报告
计算机组成原理实验报告实验目的:本次实验旨在通过构建一个简单的计算机系统,了解和掌握计算机组成原理的基本知识和相关操作技能。
实验仪器和材料:1.计算机硬件:CPU、内存、硬盘、主板等。
2. 操作系统:Windows。
3. 实验软件:C++ 编程语言、IDE(如Visual Studio)。
4.实验文档:笔记本电脑。
实验原理:1.CPU:中央处理器,是计算机系统的核心组成部分,负责所有数据的处理和执行。
2.内存:主要用于存储计算机程序和数据,是计算机系统的临时存储器。
3.硬盘:主要用于长期存储计算机程序、数据和操作系统等。
4.主板:是计算机系统的主要组成部分,承载了CPU、内存、硬盘等主要硬件,并提供各种接口和插槽。
5.操作系统:是计算机系统的核心软件,负责管理和协调各种硬件和软件资源,为用户提供友好的界面和功能。
实验步骤:1.准备实验材料和工具,搭建计算机系统。
将CPU、内存、硬盘等硬件安装到主板上,连接好相应的电源线和数据线,确保硬件正常工作。
2. 启动计算机,在操作系统中打开C++编程语言的IDE(如Visual Studio)。
3. 编写一个简单的程序,例如输出"Hello, world!"。
4.进行编译和链接,生成可执行文件。
5.运行程序,观察计算机系统的运行情况。
6.分析程序的运行结果,查看计算机系统的资源占用情况。
7.修改程序,并再次进行编译、链接和运行,观察结果。
实验结果和分析:通过以上实验步骤,我们成功搭建了一个计算机系统,并在操作系统中编写、编译和运行了一个简单的程序。
从实验结果可以看出,计算机系统能够正常工作,在屏幕上正确地输出了"Hello, world!"。
根据程序的运行情况,我们可以观察到计算机系统的CPU占用率、内存占用率和硬盘读写速度等性能指标。
在修改程序并重新运行后,我们可以观察到不同的运行结果,进一步分析计算机系统的性能和资源占用情况。
计算机组成原理实验报告说明
实验一运算器组成实验一、实验目的1、掌握运算器的组成及工作原理;2、了解4位函数运算器74LS181的组合功能,熟悉运算器执行算术和逻辑操作的具体实现过程;3、验证带进位控制的运算器功能。
二、实验设备1、EL-JY系列计算机组成及系统结构实验系统一套2、排线若干。
三、工作原理:算术逻辑单元ALU是运算器的核心。
集成电路74LS181是4位运算器,四片74LS181以并/串形式构成16位运算器。
它可以对两个16位二进制数进行多种算术或逻辑运算,74LS181 有高电平和低电平两种工作方式,高电平方式采用原码输入输出,低电平方式采用反码输入输出,这里采用高电平方式。
三态门74LS244作为输出缓冲器由ALU-G信号控制,ALU-G 为“0”时,三态门开通,此时其输出等于其输入;ALU-G 为“1”时,三态门关闭,此时其输出呈高阻。
四片74LS273作为两个16数据暂存器,其控制信号分别为LDR1和LDR2,当LDR1和LDR2 为高电平有效时,在T4脉冲的前沿,总线上的数据被送入暂存器保存。
四、实验内容:验证74LS181运算器的逻辑运算功能和算术运算功能。
五、实验步骤1、按照实验指导说明书连接硬件系统;2、启动实验软件,打开实验课题菜单,选中实验课题打开实验课题参数对话窗口:1)、在数据总线上输入有效数据,按"Ldr1",数据送入暂存器1;2)、在数据总线上输入有效数据,按"Ldr2",数据送入暂存器2;3)、在S3...Ar上输入有效数据组合,按"ALU功能选择端",运算器按规定进行运算,运算结果送入数据缓冲器;4)、按"ALU_G",运算结果送入数据总线。
5)、执行完后,按"回放",可对已执行的过程回看。
6)、回放结束后,按"继续"(继续按钮在点击回放后出现),进行下次数据输入。
计算机组成原理的实验报告
计算机组成原理的实验报告一、实验目的本次实验的主要目的是深入理解计算机组成原理中的关键概念和组件,通过实际操作和观察,增强对计算机硬件系统的认识和掌握能力。
具体包括:1、了解计算机内部各部件的工作原理和相互关系。
2、熟悉计算机指令的执行流程和数据的传输方式。
3、掌握计算机存储系统的组织和管理方法。
4、培养分析和解决计算机硬件相关问题的能力。
二、实验设备本次实验使用的设备包括计算机、逻辑分析仪、示波器以及相关的实验软件和工具。
三、实验内容1、运算器实验进行了简单的算术运算和逻辑运算,如加法、减法、与、或等操作。
观察运算结果在寄存器中的存储和变化情况。
2、控制器实验模拟了指令的取指、译码和执行过程。
分析不同指令对计算机状态的影响。
3、存储系统实验研究了内存的读写操作和地址映射方式。
考察了缓存的工作原理和命中率的计算。
4、总线实验观察数据在总线上的传输过程和时序。
分析总线竞争和仲裁的机制。
四、实验步骤1、运算器实验步骤连接实验设备,将运算器模块与计算机主机相连。
打开实验软件,设置运算类型和操作数。
启动运算,通过逻辑分析仪观察运算过程中的信号变化。
记录运算结果,并与预期结果进行比较。
2、控制器实验步骤连接控制器模块到计算机。
输入指令序列,使用示波器监测控制信号的产生和变化。
分析指令执行过程中各个阶段的状态转换。
3、存储系统实验步骤搭建存储系统实验电路。
进行内存读写操作,改变地址和数据,观察存储单元的内容变化。
分析缓存的替换策略和命中率的影响因素。
4、总线实验步骤连接总线模块,配置总线参数。
多个设备同时发送数据,观察总线的仲裁过程。
测量数据传输的时序和带宽。
五、实验结果与分析1、运算器实验结果加法、减法等运算结果准确,符合预期。
逻辑运算的结果也正确无误。
观察到在运算过程中,寄存器的值按照预定的规则进行更新。
分析:运算器的功能正常,能够准确执行各种运算操作,其内部的电路和逻辑设计合理。
2、控制器实验结果指令能够正确取指、译码和执行,控制信号的产生和时序符合指令的要求。
湘潭大学 计算机组成与原理 存储器实验(rom)实验报告
湘 潭 大 学 实 验 报 告课程名称 计算机原理与设计 实验名称 存储器实验(rom) 页数 专业 班级 同组者姓名 无 组别 学号 姓名 实验日期一、实验目的1、掌握FPGA中ROM的设置,作为只读存储器ROM的⼯作特性和配置⽅法。
2、⽤⽂本编辑器编辑mif⽂件配置ROM,学习将程序代码以mif格式⽂件加载于ROM中;3、在初始化存储器编辑窗⼜编辑mif⽂件配置ROM;4、验证FPGA中ROM的功能。
二、实验要求(1)实验前认真复习ROM存储器部分的有关内容。
(2)记录实验数据,写出实验报告,给出仿真波形图。
(3)通过本实验,对FPGA中EAB构成的ROM存储器有何认识,有什么收获?三、实验原理ALTERA的FPGA中有许多可调⽤的模块库,可构成如rom、ram、fifo等存储器结构。
CPU中的重要部件,如RAM、ROM可直接调⽤他们构成,因此在FPGA 中利⽤嵌⼊式阵列块EAB可以构成各种结构的存储器,ROM是其中的⼀种。
ROM有5组信号:地址信号address[ ]、数据信号q[ ]、时钟信号inclock、outclock、允许信号memenable,其参数都是可以设定的。
由于ROM是只读存储器,所以它的数据⼜是单向的输出端⼜,ROM中的数据是在对FPGA现场配置时,通过配置⽂件⼀起写⼊存储单元的。
图2-1-1中的ROM有3组信号:inclk——输⼊时钟脉冲;instruction[31..0]——lpm_ROM的32位数据输出端;a[4..0]——lpm_ROM的5位读出地址。
实验中主要应掌握以下三⽅⾯的内容:(1)ROM的参数设置;(2)ROM中数据的写⼊,即FILE初始化⽂件的编写;(3)ROM的实际应⽤,在GW48_CP+实验台上的调试⽅法。
四、实验内容(1)新建⼯程。
⼯程名是scinstmem.qpf。
(2)⽤初始化存储器编辑窗⼜编辑ROM配置⽂件(⽂件名.mif)。
这⾥预先给出后⾯将要⽤到的指令存储器初始化⽂件:scinstmem.mif 。
计算机组成实验报告
一、实验目的1. 理解计算机组成原理的基本概念和结构。
2. 掌握计算机各主要部件(如CPU、存储器、总线等)的工作原理。
3. 熟悉计算机指令系统的基本知识。
4. 通过实验加深对计算机组成原理的理解。
二、实验环境1. 实验平台:EL-JY-II型计算机组成原理实验系统2. 实验软件:计算机组成原理实验软件3. 实验设备:计算机组成原理实验箱三、实验内容1. CPU数据通路实验(1)实验目的:了解CPU的数据通路结构,掌握各逻辑部件的功能及数据流动方向。
(2)实验步骤:1. 组装CPU数据通路,包括ALU、程序计数器PC、主存M、主存数据寄存器MDR、主存地址寄存器MAR、指令寄存器IR、通用寄存器R0-R3、暂存器C和D等。
2. 指示数据流动方向,确保各部件正确连接。
3. 验证数据通路功能,观察数据流动过程。
(3)实验结果:成功组装CPU数据通路,实现数据正确流动。
2. 指令周期实验(1)实验目的:掌握典型指令的指令周期,了解指令执行过程。
(2)实验步骤:1. 画出“MOV R0, R1”、“LAD R1, (R2)”、“ADD R1, R2”、“STO R2,(R3)”等指令的指令周期方框图。
2. 分析指令执行过程,理解各阶段功能。
(3)实验结果:成功画出指令周期方框图,并理解指令执行过程。
3. 硬布线控制器与微程序控制器实验(1)实验目的:了解硬布线控制器和微程序控制器的工作原理及区别。
(2)实验步骤:1. 比较硬布线控制器和微程序控制器的结构及工作原理。
2. 分析两种控制器的优缺点。
(3)实验结果:理解硬布线控制器和微程序控制器的工作原理及区别。
4. 流水线CPU实验(1)实验目的:掌握流水线CPU的工作原理,分析流水线各过程段。
(2)实验步骤:1. 分析指令流水线的取值、译码、执行、访存、写回寄存器五个过程段。
2. 画出流水处理的时空图,计算流水线的实际吞吐率和加速比。
(3)实验结果:成功分析指令流水线各过程段,并计算流水线性能指标。
计算机组成原理实验报告
1. 寄存器五、实验总结按照实验要求进行连接和操作,对通用寄存器组进行了数据的写入和读出,两组数据完全对照,得到了预期效果,说明了存入数据的正确性,在整个过程中也对寄存器组的构成和硬件电路有了更深层次的理解。
2. 运算器五、实验总结基本熟悉了整个实验系统的基本结构,了解了该实验装置按功能分成几大区,学会何时操作各种开关、按键。
最重要的是通过实验掌握了运算器工作原理,熟悉了算术/逻辑运算的运算过程以及控制这种运算的方法,了解了进位对算术与逻辑运算结果的影响,对时序是如何起作用的没太弄清楚,相信随着后续实验的进行一定会搞清楚的3。
存储器五、实验总结按照实验要求连接器材设备元件,按照给定步骤进行实验操作.通过向静态RAM中写入数据并读出数据,在INPUT单元输入数并存入地址寄存器,再向相应的地址单元存入数,验证读出数据时,只需再INPUT单元输入想要读出单元的地址,再通过片选端CE读出存储单元内的数据,其中We=0是控制写端,WE=1控制读,CE低电平有效。
实验过程遇到一些问题,对实验内容不是很熟,有待提高。
4. CPU与简单模型机设计实验一、实验目的(1) 掌握一个简单CPU的组成原理.(2)在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。
(3)为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念.二、实验设备PC机一台,TD—CMA实验系统一套。
三、实验原理本实验要实现一个简单的CPU,并且在此CPU的基础上,继续构建一个简单的模型计算机。
CPU 由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图5-1—1 所示。
这个CPU 在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU 必须和主存挂接后,才有实际的意义,所以还需要在该CPU的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。
计算机组成原理实验报告
计算机组成原理实验报告一、实验目的通过本次实验,我们旨在深入了解计算机组成原理的相关知识,并通过实际操作,加深对计算机组成原理的理解。
具体目的如下:1.了解计算机的基本组成部件,包括CPU、内存、输入/输出设备等;2.学习计算机的基本工作原理,包括数据的输入、存储、处理和输出;3.熟悉计算机指令的执行过程,包括指令的取址、译码和执行;4.通过实验,巩固对计算机硬件及其工作方式的理解。
二、实验内容本次实验主要包括以下几个部分的内容:1.CPU的组成和工作原理2.存储器的组成和工作原理3.输入/输出设备的组成和工作原理4.计算机指令的执行过程三、实验装置和材料1.计算机主机2.显示器3.键盘4.鼠标5.实验板6.逻辑门集成电路7.示波器8.万用表四、实验步骤1.将计算机主机、显示器、键盘和鼠标连接好,并确保正常运行;2.连接实验板和逻辑门集成电路,搭建一个简单的逻辑电路;3.使用示波器和万用表测量逻辑电路的信号波形和电压;4.编写一个简单的汇编程序,包括输入、存储、处理和输出过程;5.使用计算机主机执行编写的汇编程序,并观察程序的执行过程。
五、实验结果与分析在本次实验中,我们成功地搭建了一个简单的逻辑电路,并使用示波器和万用表对其进行了测量。
通过测量,我们发现信号的电压和波形符合预期。
这说明逻辑电路的组成是正确的,能够正常工作。
在编写的汇编程序的执行过程中,我们观察到输入的数据被存储到内存中,并经过CPU的处理后,最终输出到显示器上。
这验证了计算机的基本工作原理,即数据的输入、存储、处理和输出。
六、实验总结通过本次实验,我们深入了解了计算机组成原理的相关知识,对计算机的基本组成部件、工作原理和指令执行过程有了更深入的理解。
通过实际操作,我们学会了如何搭建一个简单的逻辑电路,并对其进行测量和观察。
总体而言,本次实验对于我们进一步学习和掌握计算机组成原理非常有帮助。
通过实际操作和实验结果的观察,我们对计算机的工作方式有了更加清晰的认识。
湘潭大学计算机原理 实验三 多周期MIPS CPU的控制部件实验报告材料
计算机原理与设计实验报告实验三多周期MIPS CPU的控制部件用有限状态机实现多周期CPU的控制部件姓名: XXX学号: 2013551728班级: 13级软件工程2班实验日期: 2014年 11 月12 日一.实验目的1、了解MIPS—CPU控制器的功能和工作原理;2、掌握用有限状态机技术实现多周期控制器的方法;3、熟练掌握用Verilog HDL语言设计多周期控制器的方法;4、熟练掌握对多周期控制器的仿真实验验证和硬件测试两种调试方法;5、掌握向MIPS-CPU顶层数据通路中增加控制单元的方法,并通过仿真验证和硬件测试两种方法对电路进行故障定位的调试技术。
二.实验内容(1)MIPS—CPU控制器的有限状态机设计,根据MIPS—CPU各种类型指令执行要求和有限状态机的设计原理,将多周期控制器的指令执行划分为多个状态,确定每一种指令的有限状态机,最后归纳为完整的多周期控制器有限状态机。
通过Verilog HDL语言实现多周期控制器有限状态机。
(2)根据MIPS—CPU控制器的接口要求,在有限状态机的基础上,用Verilog HDL实现完整的MIPS—CPU控制器的设计,并根据仿真波形,验证设计的正确性,并对出现的故障进行定位,修改程序,重新编译;(3)设计控制器的硬件下载测试方案。
将编译通过的电路下载到实验台中。
根据硬件调试结果验证设计的正确性,并对出现的故障进行定位,修改程序重新编译;最终完成控制器的硬件电路设计;(4)在MIPS—CPU指令系统的数据通路基础上,增加控制单元电路,并进行编译,仿真波形和调试。
根据仿真波形,验证设计的正确性,并对出现的故障进行定位,修改程序,重新编译;(5)对增加了控制单元的顶层数据通路设计硬件下载测试方案。
将编译通过的电路下载到实验台中。
根据硬件调试结果验证设计的正确性,并对出现的故障进行定位,修改程序,重新编译;最终完成增加了控制单元的顶层数据通路设计。
三.实验原理与步骤1.把指令执行分成多个阶段,每个阶段在一个时钟周期内完成(1).时钟周期以最复杂阶段所花时间为准(2).尽量分成大致相等的若干阶段(3).每个阶段内最多只能完成:1次访存或1次寄存器堆读/写或1次ALU2.每步都设置相应的存储元件,执行结果都在下个时钟开始保存到相应单元3.认真阅读书上的控制部件代码后,将其按照电路图进行拆分,拆分为三个部件,并在顶层模块中连接线路。
计算机组成原理微程序控制器部件教学实验
计算机组成原理微程序控制器部件教学实验微程序控制器是由微指令组成的,每个微指令对应一个操作或一个操作序列。
它通过微指令来描述指令的执行过程,包括指令的取指,指令的解码,操作数的获取,以及操作的执行。
微程序控制器的本质是一个状态机,通过不同的状态和状态转移来完成指令的执行,从而实现计算机的功能。
在计算机组成原理的教学实验中,微程序控制器部件是非常重要的一个实验内容。
通过搭建微程序控制器的实验平台,学生可以更好地理解计算机指令的执行过程,加深对计算机硬件的认识。
在微程序控制器部件的教学实验中,可以从以下几个方面展开。
1.搭建实验平台:首先需要搭建一个微程序控制器的实验平台,包括微指令存储器、微指令控制器、状态寄存器等硬件部件。
同时需要编写相应的微指令和微程序,对不同的指令进行模拟执行。
2.模拟指令的执行过程:通过编写微指令和微程序,可以模拟指令的执行过程。
通过手动设置各个硬件部件的状态,可以观察指令的取指、解码、执行等过程。
通过模拟执行不同的指令,可以帮助学生理解指令的执行过程和计算机的工作原理。
3.分析指令的执行效率:在实验中,可以通过不同的指令和微程序,分析指令的执行效率。
比如,可以比较不同指令的执行时间,找出其中的瓶颈和优化方法。
通过实验分析,学生可以深入理解指令的执行原理和计算机硬件的优化方法。
4.扩展实验内容:在熟悉了微程序控制器的基本原理后,可以进一步扩展实验内容。
比如,可以设计一个简单的指令集,编写相应的微指令和微程序,实现更复杂的指令的执行过程。
通过扩展实验内容,可以更好地理解微程序控制器部件的原理和功能。
总之,计算机组成原理微程序控制器部件的教学实验是一门重要的实践课程,通过搭建实验平台和编写微指令和微程序,可以帮助学生更好地理解计算机硬件的工作原理,加深对计算机指令执行过程的认识,提高计算机组成原理的学习效果。
计算机组成原理实验报告-微控制器
计算机组成原理实验报告-微控制器实验名称:微控制器指令执行和程序设计实验目的:通过学习微控制器的指令执行和程序设计,掌握微控制器的基本编程方法和应用,提高对计算机组成原理的理解和实践能力。
实验内容:1. 学习单片机的基本组成和工作原理。
2. 学习单片机的指令系统,包括指令的种类、格式和执行方法等。
3. 掌握微控制器的编程方法和程序设计,包括汇编语言程序的组织结构、程序设计流程和调试方法等。
4. 实现简单的单片机应用程序,如数码管显示、LED闪烁和按键控制等。
实验步骤:1. 学习单片机的基本组成和工作原理,包括CPU、存储器和外设等。
2. 学习单片机的指令系统,掌握指令的种类、格式和执行方法等。
3. 掌握微控制器的编程方法和程序设计,包括汇编语言程序的组织结构、程序设计流程和调试方法等。
4. 实现数码管分别显示“1234”和“5678”的程序,利用延时程序使数码管的显示具有一定观赏性。
5. 分别实现LED1和LED2交替闪烁和同时闪烁的程序。
6. 实现按键控制LED1和LED2闪烁的程序,即按键1按下,LED1开始闪烁,按键2按下,LED2开始闪烁,再按一下同样的按键,LED停止闪烁。
实验结果:本次实验中,我们成功地完成了上述实验步骤。
实现了数码管显示“1234”和“5678”,同时实现了LED1和LED2交替闪烁、同时闪烁和按键控制闪烁的程序。
在实现过程中,我们用到了比较多的汇编指令,比如MOV、ADD、SUB等。
另外,我们也学习了调试程序的方法,如单步执行、断点设置和寄存器查看等。
通过本次实验,我们更深入地理解了微控制器的指令执行和程序设计,同时也提高了自己的动手实践能力。
组成原理实验报告
一、实验目的1. 理解计算机组成原理的基本概念和原理。
2. 掌握计算机硬件各模块的功能和相互关系。
3. 培养动手实践能力,提高对计算机硬件的认识。
二、实验内容1. 计算机硬件系统组成2. 中央处理器(CPU)的结构与功能3. 存储器系统组成与工作原理4. 输入/输出系统组成与工作原理5. 总线系统组成与工作原理三、实验步骤1. 计算机硬件系统组成(1)观察计算机硬件系统,了解各模块的名称和功能。
(2)分析各模块之间的相互关系,理解计算机硬件系统的整体结构。
2. 中央处理器(CPU)的结构与功能(1)观察CPU模块,了解其内部结构。
(2)分析CPU的各个部件,如寄存器、控制器、算术逻辑单元(ALU)等的功能。
(3)理解CPU的工作原理,包括指令的获取、译码、执行和存储等过程。
3. 存储器系统组成与工作原理(1)观察存储器模块,了解其内部结构。
(2)分析存储器的基本单元,如RAM、ROM等的功能和特点。
(3)理解存储器的工作原理,包括地址译码、数据读/写等过程。
4. 输入/输出系统组成与工作原理(1)观察输入/输出模块,了解其内部结构。
(2)分析输入/输出设备的类型和功能,如键盘、鼠标、显示器等。
(3)理解输入/输出系统的工作原理,包括数据传输、控制信号等过程。
5. 总线系统组成与工作原理(1)观察总线模块,了解其内部结构。
(2)分析总线的类型和功能,如地址总线、数据总线、控制总线等。
(3)理解总线系统的工作原理,包括数据传输、同步信号等过程。
四、实验结果与分析1. 计算机硬件系统组成实验结果显示,计算机硬件系统由CPU、存储器、输入/输出设备和总线等模块组成,各模块之间相互配合,共同完成计算机的运行。
2. 中央处理器(CPU)的结构与功能实验结果显示,CPU由寄存器、控制器和ALU等部件组成,负责指令的获取、译码、执行和存储等过程。
3. 存储器系统组成与工作原理实验结果显示,存储器由RAM、ROM等基本单元组成,负责数据的存储和读取。
PLC实验报告(湘潭大学)
PLC典型控制模拟及应用实验报告院系:信息工程学院专业班级:自动化一班姓名:谢海鹏学号:2010550133时间:2013年5月目录实验一基本指令的编程练习 (2)(一) 与或非逻辑功能实验 (2)(二)定时器/计数器功能实验 (3)实验二四节传送带的模拟 (5)实验十五相步进电动机控制的模拟 (10)总结 (13)实验一基本指令的编程练习(一) 与或非逻辑功能实验在S21 S7-200模拟实验挂箱(一)上完成本实验。
一、实验目的1、熟悉PLC实验装置,S7-200系列编程控制器的外部接线方法2、了解编程软件STEP7的编程环境,软件的使用方法。
3、掌握与、或、非逻辑功能的编程方法。
二、基本指令编程练习的实验面板图左图中的接线孔,通过防转座插锁紧线与PLC的主机相应输入输出插孔相接。
I为输入点,Q为输出点。
上图中下面两排I0.0~I1.5为输入按键和开关,模拟开关量的输入。
上边一排Q0.0~Q1.1是LED指示灯,接PLC主机输出端,用以模拟输出负载的通与断。
三、梯形图参考程序通过程序判断Q0.1、Q0.2、Q0.3、Q0.4的输出状态,然后再输入并运行程序加以验证。
梯形图四、实验步骤梯形图中的I0.1、I0.3分别对应控制实验单元输入开关I0.1、I0.3。
通过专用PC/PPI电缆连接计算机与PLC主机。
打开编程软件STEP7,逐条输入程序,检查无误后,将所编程序下载到主机内,并将可编程控制器主机上的STOP/RUN开关拨到RUN 位置,运行指示灯点亮,表明程序开始运行,有关的指示灯将显示运行结果。
拨动输入开关I0.1、I0.3,观察输出指示灯.Q0.1、Q0.2、Q0.3、Q0.4是否符合与、或、非逻辑的正确结果。
(二)定时器/计数器功能实验在S21 S7-200模拟实验挂箱(一)上完成本实验。
一、实验目的掌握定时器、计数器的正确编程方法,并学会定时器和计数器扩展方法,用编程软件对可编程控制器的运行进行监控。
湘潭大学 计算机组成与原理 算术逻辑单元ALU设计 实验报告
湘 潭 大 学 实 验 报 告课程名称 计算机原理与设计 实验名称 算术逻辑单元ALU设计实验 页数专业 班级 同组者姓名 无 组别 学号 姓名 实验日期一、 实验目的a) 理解算术逻辑单元ALU 的工作原理。
b) 掌握算术逻辑单元ALU 的设计方法。
c) 验证32位算术逻辑单元ALU 的加、减、与、移位功能。
d) 按给定数据,完成几种指定的算术和逻辑运算。
二、 实验要求1、做好实验预习,掌握运算器的数据传送通路和ALU 的功能特性,并熟悉本实验中所用的控制台开关的作用和使用方法。
2、写出实验报告,内容是: ①实验目的;②按理论分析值填写好表1-2、表1-3,给出对应的仿真波形。
③列表比较实验数据(2)的理论分析值与实验结果值;并对结果进行分析。
实验结果与理论分析值比较,有没有不同?为什么? ④通过本实验,你对运算器ALU 有何认识,有什么心得体会?三、 实验原理算术逻辑单元ALU 的设计如图1-1所示。
其中运算器addsub32能实现32位的加减运算。
参加运算的两个32位数据分别为A[31..0]和B[31..0],运算模式由aluc[3..0]的16种组合决定,而aluc[3..0]的值由4位2进制计数器LPM_COUNTER 产生,计数时钟是Sclk (图1-1);r[31..0]为输出结果,Z 为运算后的零标志位。
ALU 功能如表1-1所示。
表1-1ALU 的运算功能选择端aluc ALU 功能3 2 1 0 * 0 0 0 B A R 加=* 0 0 1 B A R 与=* 0 1 0 B A R ⊕=* 1 0 0 B A F -=* 1 0 1B A R +=* 1 1 0 位逻辑左移将16B R = 0 0 1 1 位逻辑左移]0..4[A B R = 0 1 1 1 位逻辑右移]0..4[A B R = 1 1 1 1位算数右移]0..4[A B R =注1、* 表示每一位都移至下一更高有效位, “+”是逻辑或,“加”是算术加四、 实验内容1.用Verilog HDL 实现输入暂存器lpm_latch 的功能,及模式选择计数器LPM_COUNTER 的功能。
计组实验报告-4控制器实验
综合实验报告( 2010 -- 2011 年度第一学期)名称:计算机组成原理综合实验题目:控制器实验院系:计算机系班级:学号:学生姓名:指导教师:设计周数:一周成绩:日期:年月一、目的与要求1.熟悉教学计算机的指令格式、指令编码、寻址方式和指令功能等内容;2.熟悉教学计算机的总体组成和各个部件的运行原理,理解控制器部件在计算机系统中的作用。
3.理解和熟悉指令执行步骤的划分方案;4.对微程序控制器:1)熟悉教学计算机的微指令格式和各个字段的控制功能,理解微指令下地址字段的作用,并学会使用这个字段解决微指令之间的接续关系。
2)熟悉教学计算机的微程序控制器的组成和运行原理,学习设计微程序控制器的过程和方法。
5.对组合逻辑控制器:1)熟悉教学组合逻辑控制器的各个控制字段的组成及其控制功能,理解节拍发生器线路设计和控制作用,并学会依照指令内容和节拍状态信号写出每一位控制信号的逻辑表达式。
2)熟悉教学计算机的微程序控制器的组成和运行原理,学习设计组合逻辑控制器的过程和方法。
二、实验正文1.扩展指令怎样写到存储单元中,怎样执行测试?答:A命令只支持基本指令,扩展指令应用E命令将指令代码写入到相应的存储单元中;不能用T、P命令单步调试扩展指令,只能用G命令执行有扩展指令的程序2.进行指令的扩展时,在指令格式、功能、执行流程设计过程中必须遵从哪些约束条件?答:为了完成自己设计几条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确的实验内容,具体过程包括:1)确定指令格式和功能,要受到教学机已有硬件的约束,应尽量与已实现指令的格式和分类办法保持一致;2)划分指令执行步骤并设计每一步的执行功能,设计节拍状态的取值,应参照已实现指令的处理办法来完成,特别要注意的是,读取指令的节拍只能用原来已实现的,其他节拍的节拍状态也应尽可能地与原用节拍的状态保持一致和相近;3)在指令流程表中填写每一个控制信号的状态值,基本上是个查表填数的过程,应该特别仔细,并有意识地体会这些信号的控制作用;4)在给出的mach的源文件中添加扩展指令的控制信号的逻辑表达式,编译适配后下载到MACH器件中;5)写一个包含你设计的指令的程序,通过运行该程序检查执行结果的正确性,初步判断你的设计是否正确;如果有问题,通过几种办法查出错误并改正,(比如手动置指令,单步调试每个节拍对应的控制信号)继续调试,直到完全正确。
计算机组成原理控制器实验报告
实验题目控制器小组合作否学号姓名班级12级计本班一、实验目的熟练掌握存储器的读写原理,完成“观察思考”的要求两人为组,提交电子版实验报告:根据《指导书》中“观察思考”的要求,记录实验过程和结果。
实验心得体会。
雷同报告的处理:得分为D,并重做实验报告(仅一次机会);该次实验的最终成绩以二次实验报告成绩为准。
掌握静态随机存储器RAM工作特性及数据的读写方法。
二.实验环境实验室三、实验内容与步骤存储器实验原理图:2、实验步骤:形成时钟脉冲信号T3。
根据“2.3.7—10)”,时序电路的开关设置为:STOP=RUN、STEP=STEP 发单脉冲STOP=RUN、STEP=EXEC(STEP=0) 发连续脉冲连线ADDRESS UNIT的LDAR(单针)与SWITCH UNIT的LDAR(双针)的连接;MAIN MEM单元的A7~A0与EXT BUS单元的AD0~AD7的连接(高、低位交叉连接)写存储器:写地址、写数据。
读存储器写地址、读存储器。
四、实验过程与分析(1)形成时钟脉冲信号T3。
具体接线方法和操作步骤如下:①接通电源,用示波器接入方波信号源的输出插孔H23,调节电位器W1 及W2 ,使H23 端输出实验所期望的频率及占空比的方波。
②将时序电路模块(STATE UNIT)单元中的ф和信号源单元(SIGNAL UNIT)中的H23 排针相连。
③在时序电路模块中有两个二进制开关“STOP”和“STEP”。
将“STOP”开关置为“RUN”状3 态、“STEP”开关置为“EXEC”状态时,按动微动开关START,则TS3端即输出为连续的方波信号,此时调节电位器W1,用示波器观察,使T3 输出实验要求的脉冲信号。
当“STOP”开关置为“RUN”状态、“STEP”开关置为“STEP”状态时,每按动一次微动开关START,则T3 输出一个单脉冲,其脉冲宽度与连续方式相同。
若用PC 联机软件中的示波器功能也能看到波形,可以代替真实示波器。
计算机组成与体系结构实验报告
1.基本运算器实验1.1 实验目的(1) 了解运算器的组成结构。
(2) 掌握运算器的工作原理。
1.2 实验设备PC机一台,TD-CMA实验系统一套。
1.3 实验原理本实验的原理如图1-1所示。
图1-1 运算器原理图运算器内部含有三个独立运算部件,分别为算术、逻辑和移位运算部件,要处理的数据存于暂存器A 和暂存器B,三个部件同时接受来自A和B的数据(有些处理器体系结构把移位运算器放于算术和逻辑运算部件之前,如ARM),各部件对操作数进行何种运算由控制信号S3…S0和CN来决定,任何时候,多路选择开关只选择三部件中一个部件的结果作为ALU的输出。
如果是影响进位的运算,还将置进位标志FC,在运算结果输出前,置ALU零标志。
ALU中所有模块集成在一片FPGA中。
逻辑运算部件由逻辑门构成,较为简单,而后面又有专门的算术运算部件设计实验,在此对这两个部件不再赘述。
移位运算采用的是桶形移位器,一般采用交叉开关矩阵来实现,交叉开关的原理如图1-1-2所示。
图中显示的是一个4X4的矩阵(系统中是一个8X8的矩阵)。
每一个输入都通过开关与一个输出相连,把沿对角线的开关导通,就可实现移位功能,即:(1) 对于逻辑左移或逻辑右移功能,将一条对角线的开关导通,这将所有的输入位与所使用的输出分别相连,而没有同任何输入相连的则输出连接0。
(2) 对于循环右移功能,右移对角线同互补的左移对角线一起激活。
例如,在4位矩阵中使用‘右1’和‘左3’对角线来实现右循环1位。
(3) 对于未连接的输出位,移位时使用符号扩展或是0填充,具体由相应的指令控制。
使用另外的逻辑进行移位总量译码和符号判别。
表1-1 运算器逻辑功能表1.4 实验步骤(1) 按图1-5连接实验电路,并检查无误。
图中将用户需要连接的信号用圆圈标明(其它实验相同)。
图图1-5 实验接线图(2) 将时序与操作台单元的开关KK2置为‘单拍’档,开关KK1、KK3置为‘运行’档。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湘 潭 大 学 实 验 报 告课程名称 计算机原理与设计 实验名称 控制器实验 页数专业 班级 同组者姓名 无 组别 学号 姓名 实验日期一、实验目的1.了解多周期 MIPS CPU 的控制部件的总体结构。
2.掌握多周期 MIPS CPU 的控制部件的状态转移。
3.掌握用 Verilog HDL 实现有限状态机的常用方法。
4.验证实验台多周期 MIPS CPU 控制部件的控制信号产生功能。
二、实验要求1、做好实验预习:要求掌握周期 MIPS CPU 的控制部件的总体结构以及状态转移,并熟悉本实验中所用的控制台开关的作用和使用方法。
2、记录实验结果,包括以下内容:①根据操作结果填好控制信号的真值表;②按理论分析值给出对应的仿真波形。
3、写出实验报告,包括以下内容:①列表比较实验数据的理论分析值与实验结果值;并对结果进行分析。
实验结果与理论 分析值比较,有没有不同?为什么?②通过本实验,你对周期MIPS CPU的控制部件的总体结构有何认识,有什么心得体会?三、实验原理多周期 MIPS CPU 的控制部件的总体结构如图 3-2-1 所示。
多周期 MIPS CPU 的控制部件的状态转移如图 3-2-2 所示。
本实验根据状态及指令直接对控制信号赋值,使用中间变量 next_state,意为下一状态。
在当前状态中,根据指令对 next_state 赋值,并在每个时钟上升沿把 next_state 打入状态寄 存器,这是用 Verilog HDL 实现有限状态机时常用的方法。
模块设计如图 3-2-3 所示。
图 3-2-1 多周期 MIPS CPU 的控制部件的总体结构图图 3-2-2 多周期 MIPS CPU 的控制部件的状态状态转移图四、实验内容(1)设计元件 在 Quartus II 环境下,用文本输入编辑器 Text Editor 输入 mccu.v 单元文件,编译 VerilogHDL 文件,并将 mccu.v 单元文件制作成可调用的原理图元件。
(2)以原理图方式建立顶层文件工程 选择图形方式。
根据图 3-2-3 输入实验电路图,从 Quartus II 的基本元件库中将各元件调 入图形编辑窗口、连线,添加输入输出引脚。
将所设计的图形文件保存到原先建立的文件夹中,将当前文件设置成工程文件,以后的 操作就都是对当前工程文件进行的。
(3)器件选择 选择 Cyclone 系列,在 Devices 中选择器件 EP1C12QC240C8。
编译,引脚锁定,再编译。
引脚锁定后需要再次进行编译,才能将锁定信息确定下来,同时生成芯片编程/配置所需要 的各种文件。
(4)芯片编程 Programming(可以直接选择光盘中的示例已完成的设计进行验证实验)打开编程窗口。
将配置文件 mccu.sof 下载进 GW48 系列现代计算机组成原理系统中的 FPGA 中。
(5)选择实验系统的电路模式是 NO.0,验证控制部件的功能 设置 opfunc[5..0]、clk、op_func、z、clock、resetn 的值,验证控制部件的功能,记录实 验数据。
五、 实验环境与设备GW48CP+主系统、pc机六、实验代码设计(含符号说明)module mccu (op,func,z,clock,resetn,wpc,wir,wmem,wreg,iord,regrt,m2reg,aluc,shift ,alusrca,alusrcb,pcsource,jal,sext,state);input [5:0] op,func;input z,clock,resetn;output reg wpc,wir,wmem,wreg,iord,regrt,m2reg;output reg [3:0] aluc;output reg [1:0] alusrcb,pcsource;output reg shift,alusrca,jal,sext;output reg [2:0] state;reg [2:0] next_state;parameter [2:0] sif = 3'b000,sid = 3'b001,sexe = 3'b010,smem = 3'b011,swb = 3'b100;wire r_type,i_add,i_sub,i_and,i_or,i_xor,i_sll,i_srl,i_sra,i_jr;wirei_addi,i_andi,i_ori,i_xori,i_lw,i_sw,i_beq,i_bne,i_lui,i_j,i_jal;//and(r_type,~op[5],~op[4],~op[3],~op[2],~op)and(r_type,~op[5],~op[4],~op[3],~op[2],~op[1],~op[0]);and(i_add,r_type,func[5],~func[4],~func[3],~func[2],~func[1],~fun c[0]);and(i_sub,r_type,func[5],~func[4],~func[3],~func[2],func[1],~func [0]);and(i_and,r_type,func[5],~func[4],~func[3],func[2],~func[1],~func [0]);and(i_or,r_type,func[5],~func[4],~func[3],func[2],~func[1],func[0 ]);and(i_xor,r_type,func[5],~func[4],~func[3],func[2],func[1],~func[ 0]);and(i_sll,r_type,~func[5],~func[4],~func[3],~func[2],~func[1],~fu nc[0]);and(i_srl,r_type,~func[5],~func[4],~func[3],~func[2],func[1],~fun c[0]);and(i_sra,r_type,~func[5],~func[4],~func[3],~func[2],func[1],func [0]);and(i_jr,r_type,~func[5],~func[4],func[3],~func[2],~func[1],~func [0]);and(i_addi,~op[5],~op[4],op[3],~op[2],~op[1],~op[0]);and(i_andi,~op[5],~op[4],op[3],op[2],~op[1],~op[0]);and(i_ori,~op[5],~op[4],op[3],op[2],~op[1],op[0]);and(i_xori,~op[5],~op[4],op[3],op[2],op[1],~op[0]);and(i_lw,op[5],~op[4],~op[3],~op[2],op[1],op[0]);and(i_sw,op[5],~op[4],op[3],~op[2],op[1],op[0]);and(i_beq,~op[5],~op[4],~op[3],op[2],~op[1],~op[0]);and(i_bne,~op[5],~op[4],~op[3],op[2],~op[1],op[0]);and(i_lui,~op[5],~op[4],~op[3],op[2],op[1],op[0]);and(i_j,~op[5],~op[4],~op[3],~op[2],op[1],~op[0]);and(i_jal,~op[5],~op[4],~op[3],~op[2],op[1],op[0]);wire i_shift;or (i_shift,i_sll,i_srl,i_sra);always @ * beginwpc = 0;wir = 0;wmem = 0;wreg = 0;iord = 0;aluc = 4'bx000;alusrca = 0;alusrcb = 2'h0;regrt = 0;m2reg = 0;shift = 0;pcsource = 2'h0;jal = 0;sext = 1;case (state)sif:beginwpc = 1;wir = 1;alusrca = 1;alusrcb = 2'h1;next_state = sid;endsid:beginif(i_j)beginpcsource = 2'h3;wpc = 1;next_state = sif;endelse if(i_jal)beginpcsource = 2'h3;wpc = 1;jal = 1;wreg = 1;next_state = sif;endelse if(i_jr)beginpcsource = 2'h2;wpc = 1;next_state = sif;endelse beginaluc = 4'bx000;alusrca = 1;alusrcb = 2'h3;next_state = sexe;endendsexe:beginaluc[3] = i_sra;aluc[2] = i_sub | i_or | i_srl | i_sra | i_ori | i_lui;aluc[1] = i_xor | i_sll| i_srl | i_sra | i_xori| i_beq | i_bne | i_lui;aluc[0] = i_and | i_or | i_sll | i_srl | i_sra | i_andi| i_ori;if(i_beq || i_bne) beginpcsource = 2'h1;wpc = i_beq & z | i_bne & ~z;next_state = sif;endelse beginif(i_lw || i_sw) beginalusrcb = 2'h2;next_state = smem;endelse beginif(i_shift) shift = 1;if(i_addi || i_andi || i_ori || i_xori ||i_lui)alusrcb = 2'h2;if(i_andi || i_ori || i_xori)next_state = swb;endendendsmem:beginiord = 1;if(i_lw) beginnext_state = swb;end else beginwmem = 1;next_state = sif;endendswb:beginif(i_lw) m2reg = 1;if(i_lw || i_addi || i_andi || i_ori || i_xori ||i_lui) regrt = 1;wreg = 1;next_state = sif;enddefault:beginnext_state = sif;endendcaseendalways @ (posedge clock or negedge resetn)beginif(resetn == 0) beginstate <= sif;endelse beginstate <= next_state;endendendmodule七、实验检验与测试仿真结果波形图:引脚分配截图:八、 测试数据状态Q [2..0]i n s tz w p cP c s o u r c ew i ri o r dw m e ma l u c [3..0]s e l p cs h i f ta l u s r cb [1..0]s e x tw r e gm 2r e gr e g r t j a l IF 000 x x 1 00 1 0 0 x000 1 x 01 x 0 x x x ID 001j x 1 11 0 x 0 xxxx x x xx x 0 x x x jalx 1 11 0 x 0 xxxx x x xx x 1 x x 1 jr x 1 10 0 x 0 xxxx x x xx x 0 x x x JP x 0 xx 0 x 0 x000 1 x 11 1 0 x x x EXE 010 add x 0 xx 0 x 0 x000 0 0 00 x 0 x x x sub x 0 0 0 0 0 0100 0 0 00 1 0 x x x and x 0 0 0 0 0 0001 0 0 00 1 0 x x x or x 0 0 0 0 0 0101 0 0 00 1 0 x x x xorx 0 0 0 0 0 0010 0 0 00 1 0 x x x sll x 0 xx 0 x 0 0011 0 1 00 x 0 x x x srl x 0 0 0 0 0 0111 0 1 00 1 0 x x x sra x 0 0 0 0 0 1111 0 1 00 1 0 x x x addi x 0 0 0 0 0 0000 0 0 10 1 0 x x x andi x 0 0 0 0 0 0001 0 0 10 1 0 x x x orix0101101xxxxori x 0 0 0 0 0 0010 0 0 10 1 0 x x x lui x 0 xx 0 x 0 x110 x x 10 x 0 x x xEXE 010 beq0 001 0 x 0 x100 0 0 00 x 0 x x x1 1bne0 101 0 x 0 x100 0 0 00 x 0 x x x1 0EXE 010 m_typex x 0 xx 0 x 0 x000 0 0 10 1 0 x x x MEM 011 i_lw x 0 xx 0 1 0 xxxx x x xx x 0 x x x MEM 011 i_sw x 0 xx 0 1 1 xxxx x x xx x 0 x x x WB 100R_type x 0 xx 0 x 0 xxxx x x xx x 1 0 0 0I_type x 0 xx 0 x 0 xxxx x x xx x 1 0 1 0 WB 100 i_lw x 0 xx 0 x 0 xxxx x x xx x 1 1 1 0注:红色部分为实验记录的数据内容。