实验5:单周期处理器的控制器设计实验
一、实验目的
1、理解随机访问存储器RAM和只读存储器ROM的操作原理。
2、理解指令类型与指令格式之间的关系,掌握取指部件、指令解析和立即数扩展器
的设计方法。
3、理解每条目标指令的功能和数据通路,掌握单周期处理器的控制器设计方法。
二、实验环境
Logisim-ITA V2.16.1.0。
三、实验内容
1、利用Logisim中的RAM组件进行数据读写操作实验。Logisim中RAM的地址位宽最多
可设置为24位,数据位宽最多可设置为32位。在属性窗口的数据接口中有三种不同的工作模式。若设置为
“分离的加载和存储引脚”模式,则有两个数据端口分别连接输入数据和输出数据(如图1所示);否则,使用同一数据端口连接数据总线。注意:当设置数据位宽为32位时,采用按字编址方式(32位),而不是采用按字节编址方式。
图1 采用分离加载和存储模式的32位数据读取实验图实验要求RAM组件的地址位宽设置为12位,数据接口模式设置为分离的加载和存储引脚模式。实验过程与验证步骤如下:
(1)设置数据位宽为32位,即可访问空间大小为16KB;连接必要的输入输出信号并选择合适的控制信号;从0地址处开始顺序写入以下两个32位的十六进制数
据:0x4E4A5543、0x53657200;然后再读出所存储的数据。
(2)设置数据位宽为8位,即可访问空间大小为4KB;将输出数据端口连接到如图2所示的文本终端TTY;从0地址开始顺序写入以下八个字节的十六进制数据:
4E4A554353657200;然后按字节为单位读出并输出到文本终端TTY,观察显示
的内容。
图2 采用分离加载和存储模式的8位数据读取实验图(3)Logisim中RAM和ROM组件的数据输入还可以采用Logisim十六进制编辑器和直接读取二进制编码文件的方法实现。把鼠标移到存储器组件上,点击鼠标
右键,则弹出菜单框(如图3所示),选中“编辑存储内容”,则打开Logisim十
六进制编辑器(如图4所示),可按照存储器设置的数据位宽,直接使用键盘输
入数据;输入数据后,可点击保存按钮,把输入的数据保存到数据镜像文件
(image)中。可在鼠标右键菜单中加载数据镜像文件或在Logisim十六进制编辑
器中打开数据镜像文件直接读入文件内容到存储器。要求:分别把步骤(1)和
(2)的输入数据保存到数据镜像文件中,观察数据镜像文件格式,说明设置不
同数据位宽对文件格式的影响。
图3 存储器组件鼠标右键菜单
图4 Logisim十六进制编辑器
printf直接输出数字
2、取指令部件设计实验。已知RISC-V指令格式如图5所示。
图5 RISC-V指令编码格式
根据如图6和图7所示的单周期处理器取指令部件原理图,设计RISC-V单周期处理器的取指令部件。其中,指令存储器使用Logisim中的ROM组件实现,要求指令存储器容量为16KB(按字编址,即数据位宽32位,地址位宽12位,即A[11:0]),指令字长为32位。
提示:当Logisim设置数据位宽为32位时,每个地址中包含32位信息,相当于按字节编址的RISC-V架构中的4个单元。因而存取指令存储器时,32位指令地址PC[31:0]中,PC[13:2]=A[11:0],其余的位(高18位和最低两位)皆无关。
图6 取指令部件原理图
图7 取指令部件IFU的引脚示意图
实验过程和验证步骤如下。
(1)从指令存储器的地址第100单元开始,依次写入以下5条指令:
0000 0000 0000 0000 0001 00101 0110111(对应汇编指令lui x5, 1)
1111 1111 1111 00101 000 00101 0010011(对应汇编指令addi x5, x5, -1)
0000010 11101 11100 001 10000 1100011(对应汇编指令bne x28,x29,label1)
0010 1000 1000 0000 0000 00001 1101111(对应汇编指令jal ra, printf )
0000000 00001 00010 010 01100 0100011(对应汇编指令sw ra,12(sp) )(2)分别读出第(1)步写入的5条指令,并将读出的指令分解出opcode、rd、funct3、rs1、rs2和funct7字段(如图8所示)。
(3)设计如图9所示的立即数扩展器,对指令中的立即数字段进行扩展生成32位立即数。
图8 指令各字段分解原理图
图9 立即数扩展原理图
3、图10给出了实现表1中9条指令的单周期数据通路,根据表1所示的RISC-V指令与
控制信号之间的关系表,设计实现该单周期处理器的控制电路,并验证电路的正确性。
表1 RISC-V指令与控制信号关系
图10 RISC-V 单周期数据路通

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。