实验CPU通用寄存器组 计算机组成原理
计算机组成原理 实验(一)
计算机组成原理实验(一)实验项目名: 实验台基本模块认识实验实验要求:学习使用计算机组成原理教学实验系统的,认识组成原理实验台上的各个组成部件模块,熟悉各模块的功能、数据通路和使用方法,为后续实验做准备。
实验内容:(1)了解计算机组成原理硬件实验台各模块的组成和功能✶运算器单元- 74LS181(4位并行运算器),输入端74LS373(锁存器),输出端74LS245(三态缓冲器),74LS74(双D触发器)。
✶寄存器组单元– 3片74LS374 作为三个通用寄存器使用,R0、R1、R2 与总线相连。
✶地址寄存器单元– 2片地址锁存器74LS273锁存地址,通过总线将地址送入到该地址寄存器单元,而该地址寄存器与存储器接口相连,用于访问存储器。
✶数据总线单元–显示当前数据总线输出的内容。
✶主存储器单元–由6116 SRAM(4片)存储器作为主存储器,存储实验用机器指令,连接到数据和地址总线上。
✶程序计数器PC– 8位指令地址,使用2片74LS163构成,通过控制信号,可实现PC内容与总线间的交换。
✶指令寄存器单元—使用1片74LS273锁存器锁存当前执行的指令,IR寄存器的一端连接到数据总线上,另一端则连接到微地址单元的地址输入接口,用于寻址控存。
✶时序启停单元—通过输入系统脉冲源,可产生T1~T4四个标准的周期性信号,并且通过按键控制,可产生单次脉冲。
✶微程序电路单元—模拟微程序结构的CU,根据指令的操作码译码后得到的微程序地址,访问系统中的控存6116,取出微指令后,发出相应的微操作控制信号,控制系统中数据的流动及功能器件的动作。
该实验台各模块共有26个微控制信号,其中有7个(BUS-111,BUS-110,Rd-BUS,Rs-BUS,299-BUS,ALU-BUS,PC-BUS)采用译码输出的方式,而剩余的采用直接控制方式输出。
下一条微指令的地址由微指令的低地址(每条微指令长度为32位,其中(26-7)+3(译码)为微操作控制位,其余的为下地址)部分决定。
计算机组成原理实验报告 通用寄存器单元实验
西华大学数学与计算机学院实验报告课程名称:计算机组成原理年级:2011级实验成绩:指导教师:祝昌宇姓名:蒋俊实验名称:通用寄存器单元实验学号:312011*********实验日期:2013-12-15一、目的1.了解通用寄存器的组成和硬件电路2. 利用通用寄存器实现数据的置数、左移、右移等功能二、实验原理(1)寄存器实验构成1、通用寄存器由2片GAL构成8位字长的寄存器单元。
8芯插座RA-IN作为数据输入端,可通过端8芯扁平电缆,把数据数据输入端连接到数据总线上。
2、数据输出由一片74LS244(输出缓冲器)来控制。
用8芯插座RA-OUT作为数据输出端,可通过端8芯扁平电缆,把数据数据输出端连接到数据总线上。
3、判零和进位电路由1片GAL、1片7474和一些常规芯片组成,用2个LED(ZD、CY)发光管分别显示其状态。
(2)通用寄存器单元的工作原理通用寄存器的核心部件为2片GAL,它具有锁存、左移、右移、保存等功能。
各个功能都由X1、X2信号和工作脉冲RACK来决定。
当置ERA=0、X0=1、X1=1,RACK有上升沿时,把总线上的数据打入通用寄存器。
可通过设置X1、X0来指定通用寄存器工作方式,通用寄存器的输出端Q0~Q7接入判零电路。
LED(ZD)亮时,表示当前通用寄存器内数据为0。
输出缓冲器采用74LS244,当控制信号RA-O为低时,74LS244开通,把通用寄存器内容输出到总线;当控制信号RA-O为高时,74LS244的输出为高阻。
图1 通用寄存器原理图三、使用环境计算机组成原理实验箱四、实验步骤(一)数据输入通用寄存器1.把RA-IN(8芯的盒型插座)与CPT-B板上二进制开关单元中的J1插座相连(对应二进制开关H16~H23),把RA-OUT(8芯的盒型插座)与数据总线上的DJ6相连。
2.把RACK连到脉冲单元的PLS1,把ERA、X0、X1、RA-0、M接入二进制拨动开关。
请按下表接线。
通用寄存器ALU
S2
S1
S0
0
1
0
0
按下单拍按钮,使R0+R1的值输入到总线ALU中,再通过调节X2X1X0XP
RWRDI/SBOP/SA
000
按下单拍按钮,使R0+R1的数进入R0,R2+R3也是如此。
接下来是数据左移,保持初始数据不变,数据移动方向为R1-DBUS-A-ALU-R1,经过三次循环,最后一次写出数值,例如R1=44H=100100,左移一次为00100010,为22H,再左移一次为00010001=11H,第三次为88H.同理66H左移三次为cc。
2、
五、实验结果和分析
通过实验熟悉了通用寄存器的数据通路,了解了寄存器的构成和运用,同时对八位运算器也有了一些了解,理论思维和动手能力需要进一步加强。
成绩评定
根据实验情况和实验报告质量作出写实性评价
2、评分
优秀 良好 中等 差
综合评分
折合成等级
15
年
4
月
3
日
指导教师签名
时间
K23-k0置”1”,灭M23-M0控位显示灯。然后按下表要求“搭接“部件。
连线
信号孔
接入孔
1
DRCK
CLOCK
2
X2
K1
3
X1
K2
4
X0
K3
5
XP
K4
6
M
K5
7
S2
K6
8
S1
K7
9
S0
K8
10
AWR/AEN
K9
11
BWR/WEN
K10
12
DI/SB
K11
实验六实验报告模板 CPU组成与机器指令执行周期实验(1)
实验六实验报告模板 CPU组成与机器指令执行周期实验(1)课程计算机组成原理实验名称 CPU组成与指令周期实验专业:计算机班级:3 学号:105032021118 姓名:林加明实验日期 2021 年 6 月 10 日报告退发 (订正、重做)实验六 CPU组成与指令周期实验一、实验目的1.用微程序控制器控制数据通路,将相应的信号线连接,构成一台能运行测试程序的模型计算机。
2.执行一个简单的程序,掌握机器指令与微指令的关系。
3.理解计算机如何取出指令、如何执行指令、如何在一条指令执行结束后自动取出下一条指令并执行,牢固建立的计算机整机概念。
二、实验内容及说明1.实验电路及说明ZMS0S1S2S3CINC数据总线DBUSINS7―INS0ABUSALUA端口A7―A04选1选择器ARD0RD1B端口B7―B04选1选择器B LDCLDZT3MBUSMEMWT2D7L―D0LD7R―D0R双端口RAMA7L―A0LA7R―A0RPC7―PC0CLR#PCADDLPCPCINCT3IR3―IR0IRBUSRS0RS1AR7―AR0CLR#L ARARINCT3DBUSRD1RD0LR0LR1LR2LR3SWDRD0RD1RS0数据开关SD7―SD0A组控制信号B组控制信号独立K15-K0IR7―IR4RS1W3INTQW1W2T1T2T3ZCCLR#T3ZCCLR#T3MFCLR#QDSTOPDPINTENINTDIINTPSHOR T LONG本实验将前面几个实验中的所有电路,包括时序发生器、通用寄存器组、算术逻辑运算部件、存储器、微程序控制器等模块组合在一起,构成一台能够运行程序的简单处理机。
数据通路的控制由微程序控制器完成,由微程序解释指令的执行过程,从存储器2―4译码器ARPCR0DBUSSBUSLR0DRWT3R1LR1DRWT3R2LR2DRWT3R3LR3DRWT3LIARIABUST3IARIRPC7―PC0LIRT3控制信号控制信号切换电路控制转换微程序控制器硬连线控制器W3―W1IR7―I R42选1选择器IR3―IR0SELCTLSEL3―SEL0IRBUS时序发生器SWC―SWA图6.1 TEC-8模型计算机框图1取出一条指令到执行指令结束的一个指令周期,是由微程序完成的,即一条机器指令对应一个微程序序列。
计算机组成原理实验说明
实验一运算器组成实验一、实验目的1.熟悉双端口通用寄存器堆(组)的读写操作。
2.熟悉简单运算器的数据传送通路。
3.验证运算器74LS181的算术逻辑功能。
4.按给定数据,完成指定的算术、逻辑运算。
二、实验原理上图是本实验所用的运算器数据通路图。
参与运算的数据首先通过实验台操作板上的八个二进制数据开关SW7-SW0来设置,然后输入到双端口通用寄存器堆RF中。
RF由一个ispLSI1016实现,功能上相当于四个8位通用寄存器,用于保存参与运算的数据,运算后的结果也要送到RF中保存。
双端口寄存器堆模块的控制信号中,RS1、RS0用于选择从B端口(右端口)读出的通用寄存器,RD1、RD0用于选取从A端口(左端口)读出的通用寄存器。
而WR1、WR0用于选择写入的通用寄存器。
LDRi是写入控制信号,当LDRi=1时,数据总线DBUS上的数据在T3写入由WR1、WR0指定的通用寄存器。
RF的A、B端口分别与操作数暂存器DR1、DR2相连:另外,RF的B端口通过一个三态门连接到数据总线DBUS上,因而RF 中的数据可以直接通过B端口送到DBUS上。
DR1和DR2各由1片74LS273构成,用于暂存参与运算的数据。
DR1接ALU 的A输入端口,DR2接ALU的B端口。
ALU由两片74LS181构成,ALU的输出通过一个三态门(74LS244)发送到数据总线DBUS上。
图中尾巴上带粗短线标记的信号都是控制信号,其中S3,S2,Sl,S0,M,Cn#,LDDR2,LDDRl, ALU-BUS#,SW-BUS#、LDRi、RS1、RS0、RD1、RD0、WR1、WR0等是电位信号,用电平开关K0—Kl5来模拟。
T2、T3是脉冲信号,印制板上已连接到实验台的时序电路上。
#为低电平有效。
K0—K15是一组用于模拟各控制电平信号的开关,开关向上时为1,开关向下时为0,每个开关无固定用途,可根据实验具体情况选用。
实验中进行单拍操作,每次只产生一组Tl,T2,T3,T4脉冲,需将实验台上的DP,DB开关进行正确设置。
计算机组成原理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 通用寄存器实验一、实验目的1.熟悉通用寄存器的数据通路。
2.了解通用寄存器的构成和运用.二、实验要求掌握通用寄存器R3~R0的读写操作.三、实验原理实验中所用的通用寄存器数据通路如下图所示。
由四片8位字长的74LS574组成R1 R0(CX)、R3 R2(DX)通用寄存器组。
图中X2 X1 X0定义输出选通使能,SI、XP控制位为源选通控制。
RWR为寄存器数据写入使能,DI、OP为目的寄存器写选通。
DRCK信号为寄存器组打入脉冲,上升沿有效.准双向I/O输入输出端口用于置数操作,经2片74LS245三态门与数据总线相连。
图2—3-3 通用寄存器数据通路四、实验内容1.实验连线连线信号孔接入孔作用有效电平2.寄存器的读写操作①目的通路当RWR=0时,由DI、OP编码产生目的寄存器地址,详见下表.通用寄存器“手动/搭接”目的编码②通用寄存器的写入通过“I/O输入输出单元”向R0、R1寄存器分别置数11h、22h,操作步骤如下:通过“I/O输入输出单元”向R2、R3寄存器分别置数33h、44h,操作步骤如下:③源通路当X2~X0=001时,由SI、XP编码产生源寄存器,详见下表.通用寄存器“手动/搭接”源编码④ 通用寄存器的读出关闭写使能,令K18(RWR )=1,按下流程分别读R0、R1、R2、R3。
五、实验心得通过这个实验让我清晰的了解了通用寄存器的构成以及通用寄存器是如何运用的,并且熟悉了通用寄存器的数据通路,而且还深刻的掌握了通用寄存器R3~R0的读写操作。
实验2 运算器实验一、实验目的掌握八位运算器的数据传输格式,验证运算功能发生器及进位控制的组合功能.二、实验要求完成算术、逻辑、移位运算实验,熟悉ALU 运算控制位的运用.三、实验原理实验中所用的运算器数据通路如图2-3—1所示。
ALU 运算器由CPLD 描述。
运算器的输出FUN 经过74LS245三态门与数据总线相连,运算源寄存器A 和暂存器B 的数据输入端分别由2个74LS574锁存器锁存,锁存器的输入端与数据总线相连,准双向I/O 输入输出端口用来给出参与运算的数据,经2片74LS245三态门与数据总线相连。
计算机组成原理实验报告
计算机组成原理实验报告引言计算机组成原理是计算机科学与技术的基础课程之一,通过实验可以更好地理解和掌握计算机的组成和工作原理。
本文将结合实验的过程和结果,详细论述计算机组成原理的一些关键概念和实际应用。
一、实验目的本次实验的目的是通过搭建一个简单的计算机系统,深入了解计算机的各个组成模块,如中央处理器(CPU)、存储器、输入输出设备等,并验证计算机的基本工作原理。
二、实验内容本次实验分为两个部分,第一部分是计算机系统的搭建,包括CPU的设计与实现、存储器的设计与实现等;第二部分是对已搭建的系统进行功能测试,包括寄存器的读写、指令的执行等。
1. CPU的设计与实现CPU是计算机的核心处理单元,它负责执行各种指令,并控制计算机的运行状态。
在本次实验中,我们采用了冯·诺依曼结构的单周期CPU设计,包括指令寄存器、算术逻辑单元、控制单元等组成部分。
通过在实验中的操作和执行,我们深入理解了指令的编码方式、运算的过程等。
2. 存储器的设计与实现存储器是计算机系统中的主要组成部分,用于存放指令和数据。
在本次实验中,我们设计了一个简单的存储器,采用了随机存取存储器(RAM)的结构。
通过实验中的存储器读写操作,我们了解了存储器的寻址方式、数据的存取过程等。
三、实验结果与分析经过实验的搭建和测试,我们成功完成了计算机系统的建设,并验证了其基本功能。
在测试过程中,我们发现了一些问题和改进之处,例如CPU的时钟频率过低导致指令执行速度较慢,存储器的容量不足等。
通过对这些问题的研究和分析,我们能够进一步优化和改进计算机系统的性能。
四、实验心得体会通过本次实验,我进一步加深了对计算机组成原理的理解和掌握。
实验中我不仅学到了理论知识,还通过动手搭建和操作实际的计算机系统,加深了对计算机组成原理的实际应用的理解。
同时,我也意识到计算机的设计和实现是一个综合性强的工程,需要考虑多方面的问题,如硬件的选择与优化、指令的设计与调度等。
寄存器实验报告
一、实验目的1. 理解寄存器在计算机系统中的作用和重要性。
2. 掌握通用寄存器组的设计方法和应用。
3. 通过实验,加深对寄存器读写操作的理解。
二、实验原理寄存器是计算机中用于临时存储数据和指令的存储单元,它具有数据存取速度快、容量小、易于控制等特点。
在计算机系统中,寄存器用于存放指令、数据、地址等,是CPU执行指令的重要基础。
三、实验内容1. 通用寄存器组实验(1)实验目的:了解通用寄存器组的用途、结构和工作原理。
(2)实验内容:- 观察通用寄存器组(如AX、BX、CX、DX等)的内部结构;- 学习寄存器读写操作的基本指令(如MOV、ADD、SUB等);- 通过编程,实现寄存器之间的数据交换和运算。
(3)实验步骤:- 使用C语言编写程序,实现寄存器之间的数据交换和运算;- 在计算机上编译并运行程序,观察实验结果。
2. 移位寄存器实验(1)实验目的:了解移位寄存器的结构、工作原理和应用。
(2)实验内容:- 观察移位寄存器(如74LS194)的内部结构;- 学习移位操作指令(如SHL、SHR等);- 通过编程,实现数据的串行/并行转换和构成环形计数器。
(3)实验步骤:- 使用C语言编写程序,实现数据的串行/并行转换和构成环形计数器;- 在计算机上编译并运行程序,观察实验结果。
3. 寄存器仿真实验(1)实验目的:通过仿真软件,加深对寄存器读写操作的理解。
(2)实验内容:- 使用Proteus仿真软件,搭建寄存器实验电路;- 观察寄存器读写操作时,内部信号的变化;- 分析实验结果,验证寄存器读写操作的正确性。
(3)实验步骤:- 在Proteus软件中搭建寄存器实验电路;- 编写测试程序,观察寄存器读写操作时,内部信号的变化;- 分析实验结果,验证寄存器读写操作的正确性。
四、实验结果与分析1. 通用寄存器组实验通过实验,我们了解了通用寄存器组的结构和工作原理,掌握了寄存器读写操作的基本指令。
实验结果表明,寄存器读写操作可以有效地提高程序执行速度。
计算机组成原理 实验3
实验3通用寄存器实验一、实验目的1.熟悉通用寄存器的数据通路。
2.掌握通用寄存器的构成和运用。
二、实验要求在掌握了AX、BX运算寄存器的读写操作后,继续完成CX、DX通用寄存器的数据写入与读出。
三、实验原理实验中所用的通用寄存器数据通路如下图所示。
由四片8位字长的74LS574组成CX(R1 R0)、DX(R3 R2)通用寄存器组。
图中X2 X1 X0定义输出选通使能,SI、XP控制位为源选通选择。
RXW为寄存器数据写入使能,OP、DI为目的寄存器选择。
DRCK信号为寄存器写脉冲,下降沿有效。
准双向I/O输入输出端口用于置数操作,经2片74LS245三态门与数据总线相连。
图2-3-3通用寄存器数据通路四、实验内容五、实验过程 & 实验结果1.寄存器组写操作(1)(2)寄存器组的字写入通过“I/O单元”把CX的地址00打入IR,然后向CX写入2211h,操作步骤如下:按【单拍】按钮通过“I/O单元”把DX的地址02打入IR,然后向DX写入4433h,操作步按【单拍】按钮(3)寄存器组的字节写入通过“I/O单元”把CX的地址00打入IR,然后向CL写入55h,操作步骤按【单拍】按钮按【单拍】按钮K21 K16 K2=000 K21 K6 K2=111在IR保持为“XX00”的条件下,可省略打地址环节,按下流程向CH写入AAh2.寄存器读操作(1)(2)寄存器组字读(3)寄存器组字节读CH。
K7=1K10~K6=00101准双向I/O口实验一、实验目的熟悉与了解准双向I/O口的构成原理。
二、实验要求掌握准双向I/O口的输入/输出特性的运用。
三、实验原理Dais-CMX16+向用户提供的是按准双向原理设计的十六位输入/输出I/O口,当该位为“1”时才能用作输入源,上电或复位(手动态按【返回】键),该十六位I/O口被置位(即为“0FFFFh”)。
通常情况下,在用作输入的时候就不能再有输出定义。
电路结构如图2-3-4所示。
计算机组成原理实验(TEC-6)
【实验步骤】
1.实验准备 ⑴将TEC-6实验台上的下列信号连接,以便控制信号能够对寄存器组和运算器进行控制。 信号SWBUS#-O和信号SWBUS#-I连接, 信号ALUBUS#-O和信号ALUBUS#-I连接, 信号RAMBUS#-O和信号RAMBUS#-I连接。 ⑵将控制器转换开关设置为微程序状态,使用微程序控制器产生的控制信号对寄存 器组组和运算器进行控制。 ⑶打开电源 下述实验中,信号指示灯亮代表对应信号为1,信号指示灯灭代表对应信号为0。实 验时要对照图2-2察看每一步骤的相应信号的值。
【实验要求】 1.记录下每一步的微地址和下述信号的值: M、S3、S2、S1、S0、SEL3、SEL2、SEL1、SEL0、LR、SWBUS、ALUBUS、LDZ、LDC。并解 释这些信号的功能是什么,解释在该步骤中这些信号为什么取这样的值而不是取其他的值。 2.记录下运算的数据结果和标志结果 C、Z。
【实验步骤】
3.以下是加法、减法实验步骤 ⑴设置操作模式为加法、减法实验 按一次复位按钮 CLR, 微地址指示灯µA5—µA0 显示 20H。 将操作模式开关设置为 SWC=1、 SWB=0、SWA=0,准备进入加法、减法实验。按一次 QD 按钮,产生一组时序信号 T1、T2、T3, 进入下一步。 ⑵设置数 A 微程序地址指示灯µA5—µA0 显示 22H。信号 LR 为 1,表示将进行寄存器写操作。信号 指示灯 SEL3 为 0、SEL2 为 0 指示被写入的寄存器为 R0。信号 SEL3、 SEL2 指示被写入的寄 存器,对应关系如下: SEL3 SEL2 对应信号的值 对应的寄存器 0 0 LR0=1 R0 0 1 LR1=1 R1 1 0 LR2=1 R2 1 1 LR3=1 R3 在数据开关 SD7—SD0 上设置数 A。在数据总线 DBUS 指示灯上 D7—D0 上可以看到数据 设置的正确不正确,发现错误需及时改正。设置数据正确后,按一次 QD 按钮,将 SD7—SD0 上的数据写入 R0,进入下一步。
中山大学计算机组成原理实验 单周期CPU设计
《计算机组成原理实验》实验报告(实验三)学院名称:数据科学与计算机学院专业(班级):学生姓名:学号:时间:2019 年11 月8 日成绩:实验三:单周期CPU设计与实现一.实验目的(1) 掌握单周期CPU数据通路图的构成、原理及其设计方法;(2) 掌握单周期CPU的实现方法,代码实现方法;(3) 认识和掌握指令与CPU的关系;(4) 掌握测试单周期CPU的方法。
二.实验内容设计一个单周期CPU,该CPU至少能实现以下指令功能操作。
指令与格式如下:==> 算术运算指令加“加”运算。
加“加”运算。
==> 逻辑运算指令加“与”运算。
功能:GPR[rt] ←GPR[rs] or zero_extend(immediate)。
==>移位指令==>比较指令==> 存储器读/写指令==> 分支指令else pc ←pc + 4特别说明:offset是从PC+4地址开始和转移到的指令之间指令条数。
offset符号扩展之后左移2位再相加。
为什么要左移2位?由于跳转到的指令地址肯定是4的倍数(每条指令占4个字节),最低两位是“00”,因此将offset放进指令码中的时候,是右移了2位的,也就是以上说的“指令之间指令条数”。
else pc ←pc + 4(16)bltz rs, offsetelse pc ←pc + 4。
==>跳转指令(17)j addr说明:由于MIPS32的指令代码长度占4个字节,所以指令地址二进制数最低2位均为0,将指令地址放进指令代码中时,可省掉!这样,除了最高6位操作码外,还有26位可用于存放地址,事实上,可存放28位地址,剩下最高4位由pc+4最高4位拼接上。
==> 停机指令功能:停机;不改变PC的值,PC保持不变。
三.实验原理单周期CPU指的是一条指令的执行在一个时钟周期内完成,然后开始下一条指令的执行,即一条指令用一个时钟周期完成。
电平从低到高变化的瞬间称为时钟上升沿,两个相邻时钟上升沿之间的时间间隔称为一个时钟周期。
计算机组成原理实验(TEC-6)
•
数据开关SD7—SD0是8个双位开关。用手拨动这些开关,能够生成需要的SD7—SD0的值。在信号SWBUS#-I为0时,
SD7—SD0通过一个8线驱动器74LS244(U11)送往数据总线DBUS。在本实验中,使用数据开关SD7—SD0设置寄存器R0、R1、
R2和R3的值。
• 运算器ALU的作用是对A总线(A7—A0)和B总线(B7—B0)上的2个8位数据进行算术逻辑运算,运算后的数据结果在控制信号 ALUBUS#-I为0送数据总线DBUS(D7—D0),运算后的标志结果在T3的上升沿保存进位标志位C-O和结果为0标志位Z-O。运算 器由2片算术逻辑单元74LS181(U58和U59)、1片四2输入正与门74LS08(U29)、1片双D触发器74LS74(U52)、1片8线反 相驱动器74LS240(U40)、1片8线驱动器74LS244(U39)和1片8输入正与非门74LS30(U47)构成。2片74LS181(U58和 U59)完成8位算术运算和逻辑运算。U58进行低4位运算,U59进行高4位运算,U58和U59通过级联方式连接。所谓级联方式,就 是将低4位74LS181的进位输出引脚
R3
信号 M=0、S3=1、S2=0、S1=0、S0=1,指示进行加法运算。ALUBUS=1,指示将运算数据
结果送数据总线 DBUS。信号 LDC=1,指示将运算后得到的进位 C 保存;信号 LDZ=1,指示将
运算后得到的结果为 0 标志保存。
这时 A 总线指示灯 A7—A0 显示被加数 A,B 总线指示灯显示加数 B,数据总线 DBUS 指
R1
1
0
LR2=1
R2
1
1
LR3=1
R3
在数据开关 SD7—SD0 上设置数 A。在数据总线 DBUS 指示灯上 D7—D0 上可以看到数据
计算机组成原理实验报告
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的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。
计算机组成原理 实验报告
ALU主要完成对二进制数据的定点算术运算(加减乘除)、逻辑运算(与或非异或)以及移位操作。在某些CPU中还有专门用于处理移位操作的移位器。
通常ALU由两个输入端和一个输出端。整数单元有时也称为IEU(Integer Execution Unit)。我们通常所说的“CPU是XX位的”就是指ALU所能处理的数据的位数。
置S3、S2、S1、S0和Cn的数值,并观察数据总线LED显示灯显示的结果。如置S3、S2、S1、
S0为0010加法运算。
如果实验箱和PC联机操作,则可通过软件中的数据通路图来观测实验结果(软件使用说明
请看附录一),方法是:打开软件,选择联机软件的“【实验】—【运算器实验】”,打开运算器
实验的数据通路图,如图1-1-6所示。进行上面的手动操作,每按动一次ST按钮,数据通路图
会有数据的流动,反映当前运算器所做的操作,或在软件中选择“【调试】—【单节拍】”,其作
用相当于将时序单元的状态开关KK2置为‘单拍’档后按动了一次ST按钮,数据通路图也会反
映当前运算器所做的操作。
重复上述操作,并完成表1-1-2。然后改变A、B的值,验证FC、FZ的锁存功能。
计算机组成原理实验报告
实验一 基本运算器实验
一、
1.了解运算器的组成结构
2.掌握运算器的工作原理
3.深刻理解运算器的控制信号
二、
PC机一台、TD-CMA实验系统一套
三、实验原理
1.(思考题)运算器的组成包括算数逻辑运算单元ALU(Arithmetic and Logic Unit)、浮点运算单元FPU(Floating Point Unit)、通用寄存器组、专用寄存器组。
计算机组成原理实验
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 --------------------------------
《计算机组成原理》实验1寄存器试验,2运算器试验
《计算机组成原理》实验1寄存器试验,2运算器试验实验指导书课程:计算机组成原理实验教师:班级:第⼀章系统概述1.1 实验系统组成第⼆章基础模块实验实验⼀寄存器实验实验⽬的:熟悉试验仪各部分功能。
掌握寄存器结构、⼯作原理及其控制⽅法。
实验内容:利⽤实验仪开关区上的开关sk23-sk16提供数据,其它开关做为控制信号,将数据通过DBUS写⼊OUT 寄存器,并将OUT寄存器的内容送往扩展区通过数码管和发光⼆极管显⽰。
实验原理:实验箱⽤74HC273 来构成寄存器。
(1)74HC273的功能如下:(2)实验箱中74HC273的连接⽅式:(3)实验逻辑框图12、打开实验仪电源,按CON单元的nRST按键,系统复位;如果EXEC键上⽅指⽰灯不亮,请按⼀次EXEC键,点亮指⽰灯,表⽰实验仪在运⾏状态。
3、利⽤开关和控制信号将数据通过DBUS写⼊OUT寄存器,并将OUT寄存器的内容送往扩展区通过数码管和发光⼆极管显⽰。
并写出将数据5FH写⼊OUT寄存器的操作过程。
实验⼆运算器实验实验⽬的:了解运算器的组成结构;掌握运算器的⼯作原理和控制⽅法。
实验内容:利⽤实验仪提供的运算器,通过开关提供数据信号,将数据写⼊寄存器A和寄存器B,并⽤开关控制ALU的运算⽅式,验证运算器的功能。
实验原理:(1)实验逻辑框图:信号说明:IN0~IN7:ALU数据输⼊信号ALU_D0~ALU_D7:ALU数据输出信号:寄存器A写信号,低电平有效。
当T1节拍信号到来,该信号有效时,IN0~IN7数据可以写⼊寄存器A。
:寄存器B写信号,低电平有效。
当T2节拍信号到来,该信号有效时,IN0~IN7数据可以写⼊寄存器B。
:ALU计算结果读出信号,当T3节拍信号到来,该信号有效时,ALU计算结果送往ALU_D0~ALU_D7。
S3~S0,CN_I:ALU运算控制信号,控制ALU的运算⽅法。
T1,T2,T3:三个节拍信号,⾼电平有效,由con区的uSTEP按键控制,在运⾏状态时,依次按下uSTEP 键会依次发出T1、T2、T3节拍。
《计算机组成原理》实验报告——寄存器堆
南通大学信息科学技术学院《计算机组成实验》实验报告实验寄存器堆的设计与实现一、实验目的1.熟悉Vivado软件的使用方法。
2.熟悉寄存器堆的功能。
3.掌握自顶而下的硬件模块设计方法。
4.掌握电路仿真测试方法,掌握仿真激励文件的编写,掌握仿真输出的分析方法。
二、实验任务设计一个寄存器堆,满足两路输出一路输入的功能,并完成仿真测试。
三、实验预习(1)实验电路原理及信号说明寄存器堆(REGFILE)是CPU组成的重要存储部件,也是数据通路中的重要部件,其主要功能是对数据进行存储。
在本实验中将为REGFILE构建32×32的寄存器组,即共有32个寄存器,每个寄存器的位宽都是32位。
32×32的REGFILE逻辑结构如图所示:具体设计如下:通过带有32个带使能端的D触发器实现数据的存储,5-32译码器实现地址与存储单元的连接选择,32位32选1选择器来实现输出。
(2)实验电路设计顶层文件:module REGFILE(Ra,Rb,D,Wr,We,Clk,Clrn,Qa,Qb);input [4:0]Ra,Rb,Wr;input [31:0]D;input We,Clk,Clrn;output [31:0]Qa,Qb;wire [31:0]Y;wire[31:0]Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q13,Q12,Q11,Q 10,Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0;DEC5T32E dec(Wr,We,Y);REG32reg32(D,Y,Clk,Clrn,Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q 13,Q12,Q11,Q10,Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0);MUX32X32select1(Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q13,Q12,Q11 ,Q10,Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0,Ra,Qa);MUX32X32select2(Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q13,Q12,Q11 ,Q10,Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0,Rb,Qb);Endmodule5-32地址译码器:module DEC5T32E(I,En,Y);input [4:0] I;input En;output [31:0] Y;reg [31:0] Y;always@(En or I)beginif(En)begincase(I)5'b00000:Y=32'b00000000000000000000000000000001;5'b00001:Y=32'b00000000000000000000000000000010;5'b00010:Y=32'b00000000000000000000000000000100;5'b00011:Y=32'b00000000000000000000000000001000;5'b00100:Y=32'b00000000000000000000000000010000;5'b00101:Y=32'b00000000000000000000000000100000;5'b00110:Y=32'b00000000000000000000000001000000;5'b00111:Y=32'b00000000000000000000000010000000;5'b01000:Y=32'b00000000000000000000000100000000;5'b01001:Y=32'b00000000000000000000001000000000;5'b01010:Y=32'b00000000000000000000010000000000;5'b01011:Y=32'b00000000000000000000100000000000;5'b01100:Y=32'b00000000000000000001000000000000;5'b01101:Y=32'b00000000000000000010000000000000;5'b01110:Y=32'b00000000000000000100000000000000;5'b01111:Y=32'b00000000000000001000000000000000;5'b10000:Y=32'b00000000000000010000000000000000;5'b10001:Y=32'b00000000000000100000000000000000;5'b10010:Y=32'b00000000000001000000000000000000;5'b10011:Y=32'b00000000000010000000000000000000;5'b10100:Y=32'b00000000000100000000000000000000;5'b10101:Y=32'b00000000001000000000000000000000;5'b10110:Y=32'b00000000010000000000000000000000;5'b10111:Y=32'b00000000100000000000000000000000;5'b11000:Y=32'b00000001000000000000000000000000;5'b11001:Y=32'b00000010000000000000000000000000;5'b11010:Y=32'b00000100000000000000000000000000;5'b11011:Y=32'b00001000000000000000000000000000;5'b11100:Y=32'b00010000000000000000000000000000;5'b11101:Y=32'b00100000000000000000000000000000;5'b11110:Y=32'b01000000000000000000000000000000;5'b11111:Y=32'b10000000000000000000000000000000;endcaseendelseY=32'b00000000000000000000000000000000;endendmodule32位寄存器moduleREG32(D,En,Clk,Clrn,Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q1 3,Q12,Q11,Q10,Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0);input[31:0]D,En;input Clk,Clrn;output[31:0]Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q13,Q12,Q11 ,Q10,Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0;wire[31:0]Qn31,Qn30,Qn29,Qn28,Qn27,Qn26,Qn25,Qn24,Qn23,Qn22,Qn21,Qn20,Qn19,Qn18,Qn17,Qn16,Qn15,Qn 14,Qn13,Qn12,Qn11,Qn10,Qn9,Qn8,Qn7,Qn6,Qn5,Qn4,Qn3,Qn2,Qn1,Qn0;D_FFEC32 q31(D,Clk,En[31],Clrn,Q31,Qn31);D_FFEC32 q30(D,Clk,En[30],Clrn,Q30,Qn30);D_FFEC32 q29(D,Clk,En[29],Clrn,Q29,Qn29);D_FFEC32 q28(D,Clk,En[28],Clrn,Q28,Qn28);D_FFEC32 q27(D,Clk,En[27],Clrn,Q27,Qn27);D_FFEC32 q26(D,Clk,En[26],Clrn,Q26,Qn26);D_FFEC32 q25(D,Clk,En[25],Clrn,Q25,Qn25);D_FFEC32 q24(D,Clk,En[24],Clrn,Q24,Qn24);D_FFEC32 q23(D,Clk,En[23],Clrn,Q23,Qn23);D_FFEC32 q22(D,Clk,En[22],Clrn,Q22,Qn22);D_FFEC32 q21(D,Clk,En[21],Clrn,Q21,Qn21);D_FFEC32 q20(D,Clk,En[20],Clrn,Q20,Qn20);D_FFEC32 q19(D,Clk,En[19],Clrn,Q19,Qn19);D_FFEC32 q18(D,Clk,En[18],Clrn,Q18,Qn18);D_FFEC32 q17(D,Clk,En[17],Clrn,Q17,Qn17);D_FFEC32 q16(D,Clk,En[16],Clrn,Q16,Qn16);D_FFEC32 q15(D,Clk,En[15],Clrn,Q15,Qn15);D_FFEC32 q14(D,Clk,En[14],Clrn,Q14,Qn14);D_FFEC32 q13(D,Clk,En[13],Clrn,Q13,Qn13);D_FFEC32 q12(D,Clk,En[12],Clrn,Q12,Qn12);D_FFEC32 q11(D,Clk,En[11],Clrn,Q11,Qn11);D_FFEC32 q10(D,Clk,En[10],Clrn,Q10,Qn10);D_FFEC32 q9(D,Clk,En[9],Clrn,Q9,Qn9);D_FFEC32 q8(D,Clk,En[8],Clrn,Q8,Qn8);D_FFEC32 q7(D,Clk,En[7],Clrn,Q7,Qn7);D_FFEC32 q6(D,Clk,En[6],Clrn,Q6,Qn6);D_FFEC32 q5(D,Clk,En[5],Clrn,Q5,Qn5);D_FFEC32 q4(D,Clk,En[4],Clrn,Q4,Qn4);D_FFEC32 q3(D,Clk,En[3],Clrn,Q3,Qn3);D_FFEC32 q2(D,Clk,En[2],Clrn,Q2,Qn2);D_FFEC32 q1(D,Clk,En[1],Clrn,Q1,Qn1);assign Q0=0;assign Qn0=0;endmodule32位32选1选择器moduleMUX32X32(Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q13,Q12,Q1 1,Q10,Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0,S,Y);input[31:0]Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q13,Q12,Q11,Q10, Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0;input [4:0]S;output [31:0]Y;function [31:0]select;input[31:0]Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q13,Q12,Q11,Q10, Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0;input [4:0]S;case(S)5'b00000:select=Q0;5'b00001:select=Q1;5'b00010:select=Q2;5'b00011:select=Q3;5'b00100:select=Q4;5'b00101:select=Q5;5'b00110:select=Q6;5'b00111:select=Q7;5'b01000:select=Q8;5'b01001:select=Q9;5'b01010:select=Q10;5'b01011:select=Q11;5'b01100:select=Q12;5'b01101:select=Q13;5'b01110:select=Q14;5'b01111:select=Q15;5'b10000:select=Q16;5'b10001:select=Q17;5'b10010:select=Q18;5'b10011:select=Q19;5'b10100:select=Q20;5'b10101:select=Q21;5'b10110:select=Q22;5'b10111:select=Q23;5'b11000:select=Q24;5'b11001:select=Q25;5'b11010:select=Q26;5'b11011:select=Q27;5'b11100:select=Q28;5'b11101:select=Q29;5'b11110:select=Q30;5'b11111:select=Q31;endcaseendfunctionassign Y =select(Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q13,Q12,Q11,Q10, Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0,S);endmoduleRTL视图如下:四、实验过程、数据记录与结果分析1.仿真测试文件:module REGFILE_Sim( );// REGFILE Inputsreg [4:0] Ra = 0 ;reg [4:0] Rb = 0 ;reg [4:0] Wr = 0 ;reg [31:0] D = 0 ;reg We = 0 ;reg Clk = 0 ;reg Clrn = 0 ;// REGFILE Outputswire [31:0] Qa ;wire [31:0] Qb ;REGFILE u_REGFILE (.Ra ( Ra [4:0] ),.Rb ( Rb [4:0] ),.Wr ( Wr [4:0] ),.D ( D [31:0] ),.We ( We ),.Clk ( Clk ),.Clrn ( Clrn ),.Qa ( Qa [31:0] ),.Qb ( Qb [31:0] ));initialbeginClk=0;We=0; D=0; Ra=0; Rb=0; Wr=1; Clrn=0;#10;endalways #10 Clk=~Clk;always #20 Ra=Ra+1;always #20 Rb=Rb+1;always #20 Wr=Wr+1;always #20 D=D+1;always #20 We=~We;always #100 Clrn=1;endmodule2.仿真测试结果:3.仿真测试结果分析开始时100ns内,Clrn=0,寄存器堆初始化清零,此期间内写入操作均无效,读出数据均为零。
计算机组成原理 基本实验
计算机组成原理
实验指导
4.运算器中ALU由2片74181实现。4个通用寄存器由 片 .运算器中 实现。 个通用寄存器由 个通用寄存器由l片 由 片 实现 ispLSll016组成。 组成。 组成 5.控制器采用微程序控制器和硬连线控制器两种类型,体现 .控制器采用微程序控制器和硬连线控制器两种类型, 了当代计算机控制器设计技术的完备性。 了当代计算机控制器设计技术的完备性。 6.控制存储器中的微代码可以通过PC机下载,省去插、拔 .控制存储器中的微代码可以通过 机下载 省去插、 机下载, ROM芯片。 芯片。 芯片 7. 实验台上提供了一片在系统编程器件 实验台上提供了一片在系统编程器件ispLSll032,学生在 , PC机设计好组合逻辑控制器方案后下载到 机设计好组合逻辑控制器方案后下载到ispLSll032中, 机设计好组合逻辑控制器方案后下载到 中 ispLSll032就构成了新的控制器。控制器的设计并实现对提高计 就构成了新的控制器。 就构成了新的控制器 算机综合设计能力会有很大帮助。ispLSll032也可用于数字逻辑 算机综合设计能力会有很大帮助。 也可用于数字逻辑 和数字系统的设计。 和数字系统的设计。 8.控制台包含8个数据开关,用于置数功能;16个双位开关, .控制台包含 个数据开关,用于置数功能; 个双位开关, 个数据开关 个双位开关 用于置信号电平;控制台有复位和启动二个单脉冲发生器, 用于置信号电平;控制台有复位和启动二个单脉冲发生器,有单 单步二个开关。控制台有5种操作 写存储器,读存储器, 种操作: 拍、单步二个开关。控制台有 种操作:写存储器,读存储器,读 寄存器,写寄存器,启动程序运行。 寄存器,写寄存器,启动程序运行。 3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-- components
-- 16 bit Register for register file
component reg
port(
clr:instd_logic;
D:instd_logic_vector(15 downto 0);
clk:in std_logic;
d_input:in std_logic_vector(15 downto 0);
DR_data:out std_logic_vector(15 downto 0);
SR_data:out std_logic_vector(15 downto 0)
);
end regfile;
3333
5555
AAAA
0000
3333
5555
AAAA
0000
(5)R1写入oxFFFF
3333
FFFF
AAAA
0000
3333
FFFF
AAAA
0000
六、实验收获
通过这次实验了解了通用寄存器组对于CPU的重要性,了解了通用寄存器的使用方法。熟悉了VHDL语言描述通用寄存器的方法。
实验CPU通用寄存器组
一、实验目的
(1)了解通用寄存器组的用途及对CPU的重要性。
(2)掌握通用寄存器组的设计方法。
二、实验原理
通用寄存器组是CPU的重要组成部分。从存储器取来的数据要放在通用寄存器中;从外部设备取来的数据除DMA方式外,要放在通用寄存器中。向存储器输出的数据也是从通用寄存器中取出;向外部设备输出的数据除DMA方式外也是从通用寄存器中取出来的。由于从通用寄存器组中取数据比从存储器或者外部设备取数据快得多,因此参加算术运算和逻辑运算的数据一般是从通用寄存器组中取出,它向算术逻辑单元ALU提供了进行算术运算和逻辑运算所需要的两个操作数,同时又是运算结果的暂存地。通用寄存器组内寄存器的数目与CPU性能有关,CPU性能预告,通用寄存器组内的寄存器数目越多。由于算术逻辑运算需要两个操作数,因此通用寄存器组有两个读端口,负责提供进行算术逻辑单元需要的源操作数和目的操作数。通用寄存器组有1个写端口,负责将运算结果保存到指定的寄存器内。根据通用寄存器组的功能要求,一个只有4个16位寄存器的通用寄存器组的框图如下图所示。
end component;
signal reg00, reg01, reg02, reg03
:std_logic_vector(15 downto 0);
signal sel00 ,sel01 ,sel02 ,ቤተ መጻሕፍቲ ባይዱel03
: std_logic;
begin
Areg00: reg port map(
clr=> reset,
(2)将涉及在QuartusII下输入,编译后下载到TEC_CA上的FPGA中。
(3)将下列数据存入寄存器:
R0 0x3333
R1 0x5555
R2 0xAAAA
R3 oxFFFF
(4)在试验台指示灯A15~A0和R15~R0上观察各寄存器的值,并填入下表。
步骤
A15~A0
R15~R0
R0
R1
R2
R3
use IEEE.STD_LOGIC_1164.ALL;
entity regfile is
Port ( DR:in std_logic_vector(1 downto 0);
SR:in std_logic_vector(1 downto 0);
reset:in std_logic;
DRWr:in std_logic;
write=>DRWr ,
sel=>sel03 ,
Q=> reg03
);
-- decoder
des_decoder: decoder_2_to_4 port map
(
sel=> DR,
sel00=> sel00 ,
sel01=> sel01 ,
sel02=> sel02 ,
sel03=> sel03
clock:instd_logic;
write: instd_logic;
sel:instd_logic;
Q:out std_logic_vector(15 downto 0)
);
end component;
-- 2 to 4 Decoder
component decoder_2_to_4
port(
component mux_4_to_1
port (
input0,
input1,
input2,
input3: in std_logic_vector(15 downto 0);
sel:in std_logic_vector(1 downto 0);
out_put: out std_logic_vector(15 downto 0));
sel:in std_logic_vector(1 downto 0);
sel00:out std_logic;
sel01:out std_logic;
sel02:out std_logic;
sel03:out std_logic
);
end component;
-- 4 to 1 line multiplexer
(3)SR[1...0]对应试验台开关SA1,SA0。
(4)DR[1..0]对应试验台开关SA3,SA2。
(5)DRWr对应试验台开关SA5。
(6)目的操作数用实验台上的指示灯A15~A0显示,源操作数用试验台上的指示灯R15~R0显示。
(7)d-input接开关SD15~SD0。
四、实验主要代码
library IEEE;
R0
R1
R2
R3
(1)reset
0000
0000
0000
0000
0000
0000
0000
0000
(2)R0写入ox3333
3333
0000
0000
0000
3333
0000
0000
0000
(3)R1写入ox5555
3333
5555
0000
0000
3333
5555
0000
0000
(4)R2写入oxAAAA
);
Areg02: reg port map(
clr=> reset,
D=> d_input ,
clock=>clk ,
write=>DRWr ,
sel=>sel02 ,
Q=> reg02
);
Areg03: reg port map(
clr=> reset,
D=>d_input ,
clock=>clk ,
(5)设计要求层次设计。底层的设计实体有3个:16位寄存器,具有复位功能和允许写功能;一个2-4译码器,对应寄存器写选择;一个4选1多路开关,负责选择寄存器的读出。顶层设计构成一个完整的通用寄存器组。
2、顶层设计实体的引脚要求
引脚要求对应关系如下
(1)clk对应实验台上的时钟(单脉冲)。
(2)reset对应试验台上的CPU复位信号CPU-RST。
三、实验要求
1、实验设计目标
设计一个通用寄存器组,满足以下要求:
(1)通用寄存器组有4个16位的寄存器。
(2)当复位信号reset=0时,将通用寄存器组中的4个寄存器清零。
(3)通用寄存器组中有1个写入端口,当DRWr=1时,在时钟clk的上升沿将数据总线上的数写入DR[1..0]指定的寄存器。
(4)通用寄存器组中有两个读出端口,一个对应算术逻辑单元的目的操作数DR,另一个对应算术逻辑单元的源操作数SR。DR[1..0]选择目的操作数;SR[1..0]选择源操作数。
input0=> reg00 ,
input1=> reg01 ,
input2=> reg02 ,
input3=> reg03 ,
sel=> SR ,
out_put => SR_data
);
end struct;
五、实验步骤
(1)将实验台设置成FPGA-CPU独立调试模式,REGSEL=0、CLKSEL=1、FDSEL=0。使用试验台上的单脉冲,即DTEP_CLK短路子短接,短路子RUN_CLK断开。
在上图所示的电路中,当reset为低电平时,将4个16位寄存器R0~R3复位为0。当寄存器的write和sel为高电平时,在时钟信号clk的上升沿将D端的输入D[15..0]写入寄存器,然后送到寄存器的输出Q[15..0]。4个寄存器的允许写信号write和外部产生的目的寄存器写信号DRWr直接相连。每个寄存器还有另一个选择信号sel,它决定哪一个寄存器进行写操作。4个寄存器的选择信号分别和2-4译码器产生的sel00、sel01、sel10和sel11相连。只有当1个寄存器被选中时,才允许对该寄存器进行写操作。2-4译码器的输入sel[1..0]接DR[1..0],2-4译码器对2位的输入信号sel[1..0]进行2-4译码,产生4个输出sel00、sel01、sel10和sel11,分别送往4个寄存器R0、R1、R2、R3的选择端4选1多路选择器1从4个寄存器R0、R1、R2、R3的输出Q[15..0]选择1路送到DR_data[1..0],给算术逻辑单元提供目的操作数;选择信号sel[1..0]接DR[1..0]。4选1多路选择器2从4个寄存器R0、R1、R2、R3的输出Q[15..0]选择一路送到SR_data[1..0],给算术逻辑单元提供源操作数;选择信号sel[1..0]接SR[1..0]。