77范文网 - 专业文章范例文档资料分享平台

计算机组成原理-运算器实验(5)

来源:网络收集 时间:2019-03-22 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

5. 接着我们按照实验一的步骤进行综合与实现以及管脚的约束。其中时钟信号clk和重置信号rst与实验一绑定管脚相同。管脚绑定之后按照实验一的步骤进行比特流的生成并将比特流文件下载到开发板上,观察结果。

实验三 控制器实验

控制器是计算机的核心部件,计算机的所有硬件都是在控制器的控制下,

完成程序规定的操作。控制器的基本功能就是把机器指令转换为按照一定时序控制机器各部件的工作信号,使各部件产生一系列动作,完成指令所规定的任务。

3.1 实验目的

(1)掌握单周期CPU控制器的工作原理及其设计方法。 (2)掌握各个控制信号的作用和生成过程。

3.2 实验设备

PC机一台,Digilent Nexys 4TM开发板,Xilinx Vivado开发套件。

3.3实验原理

控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能

转换成可以控制的硬件逻辑部件工作的命令序列,完成数据传送和各种处理操作。本实验根据MIPS的31种类型的指令以及根据该指令结构所设计出的数据通路模拟其中控制单元生成控制信号的过程。其中MIPS的31条指令类型如表3.1所示:

表3.1 MIPS的31种指令 助记符 BIT # 31..26 R-类型 add addu sub op 000000 000000 000000 指 令 格 式 25..21 rs rs rs rs 20..16 rt rt rt rt 15..11 rd rd rd rd 10..6 shamt 5..0 func 示 例 示例含义 $1=$2+S3 $1=$2-S3 操作及解释 (rd)←(rs)+(rt); rs=$2,rt=$3,rd=$1 (rd)←(rs)+(rt); rs=$2,rt=$3,rd=$1,无符号数 (rd)←(rs)-(rt); rs=$2,rt=$3,rd=$1 00000 100000 add $1,$2,$3 00000 100010 sub $1,$2,$3 00000 100001 addu $1,$2,$3 $1=$2+S3 subu and or xor nor slt sltu sll srl sra sllv srlv srav jr I-类型 addi andi ori xori lui lw sw beq bne slti sltiu J-类型 j jal 000000 000000 000000 000000 000000 000000 000000 rs rs rs rs rs rs rs rt rt rt rt rt rt rt rt rt rt rt rt rt 00000 rt rt rt rt rt rt rt rt rt rt rt rt rt rd rd rd rd rd rd rd rd rd rd rd rd rd 00000 00000 100011 subu $1,$2,$3 $1=$2-S3 00000 100100 and $1,$2,$3 00000 100101 or $1,$2,$3 00000 100110 xor $1,$2,$3 00000 100111 nor $1,$2,$3 00000 101010 slt $1,$2,$3 00000 101011 sltu $1,$2,$3 shamt 000000 sll $1,$2,10 shamt 000010 srl $1,$2,10 shamt 000011 sra $1,$2,10 00000 000100 sllv $1,$2,$3 00000 000110 srlv $1,$2,$3 $1=$2&S3 $1=$2|S3 $1=$2^S3 (rd)←(rs)-(rt); rs=$2,rt=$3,rd=$1,无符号数 (rd)←(rs)&(rt); rs=$2,rt=$3,rd=$1 (rd)←(rs) | (rt); rs=$2,rt=$3,rd=$1 (rd)←(rs)^(rt); rs=$2,rt=$3,rd=$1 $1= ~($2 | S3) (rd)←~((rs) | (rt)); rs=$2,rt=$3,rd=$1 if($2<$3) $1=1 else if (rs< rt) rd=1 else rd=0;rs=$2,rt=$3, rd=$1 $1=0 if($2<$3) if (rs< rt) rd=1 else rd=0;rs=$2,rt=$3, rd=$1, $1=1 else 无符号数 $1=0 $1=$2<<10 $1=$2>>10 $1=$2>>10 $1=$2<<$3 $1=$2>>$3 (rd)←(rt)<>shamt, rt=$2, rd=$1, shamt=10, (逻辑右移) (rd)←(rt)>>shamt, rt=$2, rd=$1, shamt=10, (算术右移,注意符号位保留) (rd)←(rt)<<(rs), rs=$3,rt=$2,rd=$1 (rd)←(rt)>>(rs), rs=$3,rt=$2,rd=$1, (逻辑右移) (rd)←(rt)>>(rs), rs=$3,rt=$2,rd=$1, (算术右移,注意符号位保留) (PC)←(rs) (rt)←(rs)+(sign-extend)immediate,rt=$1,rs=$2 (rt)←(rs)+(sign-extend)immediate,rt=$1,rs=$2 (rt)←(rs)&(zero-extend)immediate,rt=$1,rs=$2 (rt)←(rs)|(zero-extend)immediate,rt=$1,rs=$2 000000 00000 000000 00000 000000 00000 000000 000000 000000 000000 op 001000 001100 001101 001110 rs rs rs rs rs rs rs rs rs rs 00000 000111 srav $1,$2,$3 $1=$2>>$3 00000 001000 jr $31 immediate immediate immediate immediate immediate immediate immediate offset offset offset offset immediate immediate addi $1,$2,10 $1=$2+10 addiu $1,$2,10 $1=$2+10 andi $1,$2,10 $1=$2&10 ori $1,$2,10 xori $1,$2,10 $1=$2|10 $1=$2^10 goto $31 addiu 001001 001111 00000 100011 101011 000100 000101 001010 001011 op 000010 000011 rs rs rs rs rs rs (rt)←(rs)^(zero-extend)immediate,rt=$1,rs=$2 (rt)←immediate<<16 & 0FFFF0000H,将16位lui $1,10 $1=10*65536 立即数放到目的寄存器高16位,目的寄存器的低16位填0 $1=Memory[ (rt)←Memory[(rs)+(sign_extend)offset], lw $1,10($2) $2+10] rt=$1,rs=$2 Memory[ Memory[(rs)+(sign_extend)offset]←(rt), sw $1,10($2) $2+10] =$1 rt=$1,rs=$2 if($1=$2) if ((rt)=(rs)) then (PC)←(PC)+4+( (Sign-Extend) beq $1,$2,40 goto PC+4+40 offset<<2), rs=$1, rt=$2 if($1≠$2) if ((rt)≠(rs)) then (PC)←(PC)+4+( bne $1,$2,40 goto PC+4+40 (Sign-Extend) offset<<2) , rs=$1, rt=$2 if($2<10) if ((rs)<(Sign-Extend)immediate) then (rt)←1; slti $1,$2,10 $1=1 else else (rt)←0, rs=$2, rt=$1 $1=0 if($2<10) if ((rs)<(Zero-Extend)immediate) then (rt)←1; sltiu $1,$2,10 $1=1 else else (rt)←0, rs=$2, rt=$1 $1=0 j 10000 jal 10000 goto 10000 $31=PC+4 goto 10000 (PC)←( (Zero-Extend) address<<2), address=10000/4 ($31)←(PC)+4; (PC)←( (Zero-Extend) address<<2), address=10000/4 address address address 由上表可知该指令主要分为三大类,分别为R-类型、I-类型和J-类型。每类指令对应的控制信号也不相同,根据这些指令所设计的数据通路如图3.1所示:

图3.1单周期CPU数据通路

本次实验是主要模拟指令生成控制信号的过程,由于控制单元生成的控制信号较多,本次实验只取其中的一部分信号组成16位控制信号以供输出,这十六位控制信号的作用如表3.2所示:

表3.2控制信号具体表示 信号名称 所在位置 含义 ALUSrc 0 需要进行立即数的32位扩展作为第二操作数 Sftmd 7 是R-类型的移位指令 RegWrite 1 需要写寄存器的指令 ALUOp 2-3 是R-类型或需要立即数作32位扩展的指令1位为1, beq、bne指令则0位为1 Jmp 9 是j指令 I_format 4 是I-类型指令 Branch 5 是beq指令 nBranch 6 是bne指令 信号名称 所在位置 含义 Jal 8 是jal指令 Sftm 10-12 移位指令所对应的具体移位控制信号 ALU_ctl 13-15 R-类型运算指令对应具体的运算,+、-、|、&等命令 本次实验根据输入指令从寄存器堆中选取相应的寄存器,然后读取该寄存器获得相应32位指令,取其高5位和低5位送入控制器单元,由控制单元进行译码,输出相应的控制信号。该控制器组成原理图如下图所示:

ALUSrcled[0]RegWriteLed[1]ALUOpLed[3:2]Led[4]Opcode[5:0]I_formatBranchsw[3:0][31:26]Led[5]寄存器堆ins[31:0][5:0]控制器led[15:0]nBranchLed[6]SftmdLed[7]Function_opcode[5:0]JalLed[8]JmpLed[9]SftmLed[12:10]ALU_ctlLed[15:13]

图3.2 控制器组成原理图

该控制器的寄存器堆中有16个寄存器,每一个寄存器都预先分配了一条指令信息,根据4位输入读取寄存器堆中相应的一个寄存器。控制器主要实现对输入的10位指令操作码的解析,生成16位控制信号,然后以led灯显示每条指令对应的控制信号。

3.4实验步骤

1.编写寄存器堆模块。该模块有4位输入和32位输出,首先将16种类型的16条指令写入寄存器堆的寄存器中,然后根据4位输入选择相应的寄存器,将寄存器中数据写入到输出变量中。开关输入数据、寄存器编号与指令的对应规则如下表所示:

表3.3寄存器堆模块约束

开关输入 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 寄存器编号 0 1 2 3 4 5 6 7 8 9 10 寄存器数据 00000000001000100001100000100000 00000000001000100001100000100001 00000000001000100001100000101010 00000000001000100001100000101011 00000000001000000000000000001000 00100000001000100001100000101010 00100100001000100001100000101010 00111100000000100001100000101010 10001100001000100001100000101010 10101100001000100001100000101010 00010000001000100001100000101010 含义 R-类型add R-类型addu R-类型slt R-类型sltu R-类型jr I-类型addi I-类型addiu I-类型lui I-类型lw I-类型sw I-类型beq 1011 1100 1101 1110 1111 11 12 13 14 15 00010100001000100001100000101010 00101000001000100001100000101010 00101100001000100001100000101010 00001000001000100001100000101010 00001100001000100001100000101010 I-类型bne I-类型slti I-类型addi J-类型j J-类型jal

2.将已经提供的控制器模块文件封装成IP核。

3.编写主模块,主模块有4位输入和16位输出,主模块首先调用寄存器堆模

块生成32位指令信号,然后调用控制器模块生成相应的控制信号,将这16位控制信号赋值到输出变量中。

4.依次按照图3.3的步骤综合项目源文件、实施活动的设计合成的网表。综合的目的是检查代码是否存在语法错误,生成网表后可以绑定相应的管脚。

图3.3

5.绑定输入输出变量对应的开发板的引脚,将输入变量对应的端口绑定到开关的低4位,将输出变量的对应端口绑定到LED灯对应的十六位,如原理图所示,并保存生成的约束文件。然后按照图3.3的第3步骤生成编码文件。

6.连接开发板,并打开开发板开关,将程序下载到开发板上,观察输入不同类型的指令对应的LED灯的明暗情况。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库计算机组成原理-运算器实验(5)在线全文阅读。

计算机组成原理-运算器实验(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/540328.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: