资料简介
南通大学信息科学技术学院
《计算机组成实验》
实验报告
实验名称 数据通路的设计与实现
班级 物联网工程 192
学生姓名 谢焘 学号 1930110689
指导教师 成耀
日 期 年 6 月 16 日
实验 数据通路的设计与实现
一、实验目的
1.掌握算术逻辑运算单元(ALU)、寄存器堆和存储器的工作原理。
2.掌握包含 ALU、寄存器堆和存储器的数据通路的设计方法。
3.掌握包含 ALU、寄存器堆和存储器的数据通路的仿真测试方法。
4.训练学生分析问题与解决问题的能力,学会在出现故障的情况下,独立分析故障现象并排除故障。
二、实验任务
利用Verilog HDL设计顶层电路模型,把前面实验设计的运算器通路模块与存储器实验模块进行连
接,完成完整数据通路的搭建。整个电路总线结构的形式自行设计。要求在Vivado环境下,完成仿真
测试。
所设计电路应满足以下要求:
①运算器可以实现对来自寄存器堆的数据进行各种算术逻辑运算,并将结果存入寄存器堆的某个
通用寄存器(寄存器0除外。依据MIPS的规定,寄存器0的值恒为0);
②寄存器堆的某个通用寄存器中的数据可以存入存储器;
③可以从存储器中读出数据,并存入寄存器堆的某个通用寄存器(寄存器0除外)。
三、实验预习
(1)实验电路原理及信号说明
主要元器件说明:
REGFILE 寄存器堆
DATAMEM 数据寄存器 RAM
MUX2X32 32 位 2 选 1 选择器
ALU 运算器
主要信号说明:
信号名 功能 位宽 类型
Clk 时钟信号 1 输入
Clrn 寄存器堆初始化清零信号 1 输入
AluOP 运算器操作功能选择 4 输入
Ra 寄存器堆 A 路输出地址 5 输入
Rb 寄存器堆 B 路输出地址 5 输入
WeReg 寄存器堆写使能信号 1 输入
WRegAddr 写寄存器堆地址 5 输入
RamAddr RAM 地址(读写合一,复用) 32 输入
WeRam RAM 写使能信号 1 输入
Se 2 选 1 选择信号(Alu 第二操作数选择) 1 输入
SeWdata RAM 和寄存器堆的输入数据来源(存储器/Alu)选择 1 输入
Result 运算器输出结果 32 输出
Zero 运算结果零标志位 1 输出
X 运算器操作数 X(寄存器堆 A 路输出数据) 32 输出
Y 运算器操作数 Y(二选一结果输出) 32 输出
Y0 二选一 Y0 输入(寄存器堆 B 路输出数据) 32 输出
Y1 二选一 Y1 输入(RAM 输出数据) 32 输出
设计思路:
寄存器堆 Qa 输出端与运算器 X 端口直接相连;RAM 和寄存器堆 Qb 经过二选一后与运算器 Y 端口相
连。两个存储器数据输入端口都由接入到二选一选择器的输出端,输入端由 Alu 的运算结果与存储器数据组
成进行选择;其余地址信号、时钟信号、选择信号、使能信号等,均由手动赋值控制。
(2)实验电路设计
利用 Verilog HDL 描述该电路,设计代码如下:
module DataPath
(AluOP,
Clk,
Clrn,
Ra,
RamAddr,
Rb,
Result,
Se,
SeWdata,
WRegAddr,
WeRam,
WeReg,
X,
Y,
Y0,
Y1,
Zero);
input [3:0]AluOP;
input Clk;
input Clrn;
input [4:0]Ra;
input [31:0]RamAddr;
input [4:0]Rb;
output [31:0]Result;
input Se;
input SeWdata;
input [4:0]WRegAddr;
input WeRam;
input WeReg;
output [31:0]X;
output [31:0]Y;
output [31:0]Y0;
output [31:0]Y1;
output Zero;
wire [31:0]ALU_0_R;
wire ALU_0_Z;
wire [3:0]AluOP_1;
wire Clrn_1;
wire [31:0]DATAMEM_0_Dout;
wire [31:0]MUX2X32_0_Y;
wire [31:0]MUX2X32_1_Y;
wire [31:0]MUX2X32_2_Y;
wire Net;... 查看更多