湘潭大学 计算机组成与原理 控制器实验 实验报告

合集下载

湘潭大学计算机原理实验三多周期MIPSCPU的控制部件预习报告

湘潭大学计算机原理实验三多周期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)实验报告

湘 潭 大 学 实 验 报 告课程名称 计算机原理与设计 实验名称 存储器实验(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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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注:红色部分为实验记录的数据内容。

相关文档
最新文档