《单周期CPU的设计与实现》-实验指导书(6)
计算机组成原理实验单周期CPU的设计与实验
6.寄存器堆(Register File)的设计与实现
寄存器堆(Register File)是CPU组成的重要存储部件,也是数据通路中的重要部件,其主要功能是对数据进行存储。在本实验中将为Register File构建32×32的寄存器组,即共有32个寄存器,每个寄存器的位宽都是32位。32×32的Register File逻辑结构如图6-1所示。
A_addr[4:0] B_addr[4:0] W_addr[4:0] Write Data Clock 图6-1 Register File逻辑结构
Register File A_data[31:0]
B_data[31:0]
图6-1中的寄存器组有1个数据输入端口,2个数据输出端口,因此可以从该寄存器组中同时输出2个数据。由于没有设置读信号,故在本实验中当A_addr(或B_addr)为0时,并不是选择输出Register0的内容,而是直接输出0。图6-1中各信号引脚的功能:
? A_addr:A输出端口地址,5位,输入; ? B_addr:B输出端口地址,5位,输入; ? W_addr:数据写入的寄存器号,5位,输入; ? Write:写信号,1位,输入; ? Data:数据,32位,输入;
? A_data:A端口的输出数据,32位,输出; ? B_data:B端口的输出数据,32位,输出; ? Clock:时钟信号,输入。
在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择New Source命令,选择Verilog Module输入,并输入Verilog文件名:RegFile,单击Next按钮进入端口定义对话框。其中Module Name栏输入模块名:RegFile,单击Next进入下一步,点击Finish完成创建。实现RegisterFiles的Verilog程序参考代码:
module RegFile(
input Clock,
input Reset, input [ 4:0] A_addr, input [ 4:0] B_addr, input [ 4:0] W_addr,
计算机科学与工程学院
24
计算机组成原理实验单周期CPU的设计与实验
input [31:0] Data, input Write, output [31:0] A_data, output [31:0] B_data );
reg [31:0] Register[1:31];
//Read data
assign A_data = (A_addr == 0)? 0 : Register[A_addr]; assign B_data = (B_addr == 0)? 0 : Register[B_addr];
//Write data integer i;
always @ ( posedge Clock or negedge Reset) begin if (Reset == 0) begin
for (i=1 ; i <=31 ; i = i+1) Register[i] <= 0; end else if (( Write ) && ( W_addr != 0)) Register[W_addr] <= Data; endendmodule
对Register File进行仿真。在工程管理区将View设置为Simulation,在任意位置单
击鼠标右键,并在弹出的菜单中选择New Source,在类型中选择Verilog Test Fixture,输入测试文件名:RegFile_tb,单击Next按钮,这时所有工程中的模块名都会显示出来,选择要进行测试的模块:RegFile。点击Next ,再单击Finish按钮,ISE会在源代码编辑区自动生成测试模块的代码。加入如下仿真代码:
module RegFile_tb;
reg Clock; reg Reset;
reg [4:0] A_addr; reg [4:0] B_addr; reg [4:0] W_addr; reg [31:0] Data; reg Write;
wire [31:0] A_data; wire [31:0] B_data;
// Instantiate the Unit Under Test (UUT) RegFile uut (
.Clock(Clock), .Reset(Reset), .A_addr(A_addr), .B_addr(B_addr), .W_addr(W_addr), .Data(Data), .Write(Write), .A_data(A_data), .B_data(B_data) );
计算机科学与工程学院
25
计算机组成原理实验单周期CPU的设计与实验
initial begin
// Initialize Inputs Clock = 0; Reset = 0; A_addr = 0; B_addr = 0; W_addr = 0; Data = 0; Write = 0;
// Wait 100 ns for global reset to finish #100;
Reset <= 1;
A_addr <= 5'b00001; B_addr <= 5'b00010; W_addr <=5'b00011; Data <=32'h12345678; Write <=1; Clock <= 1; #100;
A_addr <= 5'b00011;
B_addr <= 5'b00100; Write <=0;
// Add stimulus here end endmodule
完成测试文件编辑后,确认工程管理区中View选项设置为Simulation,这时在过程管理区会显示与仿真有关的进程。右键单击其中的Simulate Behavioral Model项,选择弹出菜单中的Process Properties项,会弹出属性设置对话框,将其中Simulation Run Time设置为1000ns。
仿真参数设置完后,就可以进行仿真。首先在工程管理区选中测试模块RegFile_tb,然后在过程管理区双击Simulate Behavioral Model,ISE将启动ISE Simulator,可以得到仿真结果,如图6-2所示。
图6-2 Register file仿真
计算机科学与工程学院
26
计算机组成原理实验单周期CPU的设计与实验
7.控制器(Control Unit)的设计与实现
控制器对指令进行译码,根据指令的功能产生相应的控制信号。其逻辑结构如图7-1所示。
图5-1 控制器逻辑结构
在图7-1中各引脚的功能如下: ? z:运算结果为零,1位,输入; ? op[5:0]:指令操作码,6位,输入; ? func[5:0]:指令功能码,6位,输入;
? wmem:写储存器,1位,为1时写储存器,否则不写,输出; ? wreg:写寄存器,1位,为1时写寄存器,否则不写,输出;
? regrt:目的寄存器是rt,1位,为1时目的寄存器是rt,否则是rt,输出; ? m2reg:存储器数据写寄存器信号,1位,为1选择存储器数据,否则t选择
ALU的运算结果,输出;
? shift:ALU的A端口使用移位位数,1位,为1时使用移位位数,否则使用寄
存器数据,输出;
? aluimm:ALU的B端口使用立即数,1位,为1时使用立即数,否则使用寄存
器数据,输出;
? jal:子程序调用,1位,为1时表示是jal,否则不是,输出; ? sext:立即数符号扩展,1位,为1时符号扩展,否则零扩展,输出;
计算机科学与工程学院
27
计算机组成原理实验单周期CPU的设计与实验
? aluc[3:0]:ALU操作控制码,4位输出;
? pcsource[1:0]:下一条指令地址选择,2位,输出。
在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择New Source命令,选择Verilog Module输入,并输入Verilog文件名:Control_Unit,单击Next按钮进入端口定义对话框。其中Module Name栏输入模块名Control_Unit,单击Next进入下一步,点击Finish完成创建。实现Control_Unit的Verilog程序参考代码:
module Control_Unit(
input [5:0] op, input [5:0] func, input z, output wmem, output wreg, output regrt, output m2reg, output [3:0] aluc, output shift, output aluimm, output [1:0] pcsource, output jal,
output sext );
// Register addressing
wire i_add = (op == 6'b000000 & func == 6'b100000)?1:0; wire i_sub = (op == 6'b000000 & func == 6'b100010)?1:0; wire i_and = (op == 6'b000000 & func == 6'b100100)?1:0; wire i_or = (op …… 此处隐藏:2444字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [说明书]浅谈视觉传达设计中的色彩艺术
- [说明书]数据库原理-实验8-查询优化
- [说明书]临时用电施工组织设计
- [说明书]反假币考试试题第二套(人民币)
- [说明书]《建设工程监理规范》-2014.3.1实施
- [说明书]筋出槽,骨错缝病机诠释
- [说明书]百度预计来路对网站权重有多大影响
- [说明书]房屋面积测绘细则
- [说明书]计算机控制技术填空题汇总
- [说明书]乡镇卫生院(社区中心)死亡医学证明管
- [说明书]2013尾矿工实操试题
- [说明书]2015事业单位面试备考:贵州省事业单位
- [说明书](目录)2017-2022年半导体材料市场发
- [说明书]浙江省制造业发展“十三五”规划
- [说明书]干部选拔任用工作情况的自查报告
- [说明书]《发电厂电气部分》课后部分问答题整理
- [说明书]中国建立政府成本会计制度的思考
- [说明书]中国文化输出的现状及挑战-100分
- [说明书]通信原理实验指导(13-9)
- [说明书]HSF培训试卷(有害物质培训考试试题)
- 高中地理必修一:2.3《大气环境之六_气
- 新人教版八年级数学上期末总复习精品优
- WEB应用托管平台系统架构
- 《应用文写作》期末试卷
- 2017年秋九年级数学上册24.3正多边形和
- _空心村_形态特征与生成机理分析_以河
- 北师大版生物七年级下册12章2节感受器
- 社区卫生服务中心主任职责
- 广东省2014届广州二模材料作文“求道”
- 完整户口本英文翻译模板
- 2015年液化天然气LNG市场调研及发展趋
- 农村学校教育发展新
- 2014年注册税务师税法(Ⅱ)考试试题及答
- 东方大学俄语新版第5册第-7课课文翻译
- 路基路面工程课程设计1
- 219亩项目2011营销策略
- 第1篇 贸易术语-EXW、FCA、FAS
- 年会或大型活动防疫应急预案
- 改善提案(合理化建议)
- 初三英语第四单元ppt




