教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 说明书 >

《单周期CPU的设计与实现》-实验指导书(8)

来源:网络收集 时间:2026-04-12
导读: 计算机组成原理实验单周期CPU的设计与实验 input Reset, input mem_clk, output[31:0] inst, output[31:0] pc, output[31:0] aluout, output[31:0] memout ); wire [31:0] data; wire wmem; Data_flow CPU (Clock ,

计算机组成原理实验单周期CPU的设计与实验

input Reset, input mem_clk,

output[31:0] inst, output[31:0] pc,

output[31:0] aluout, output[31:0] memout );

wire [31:0] data; wire wmem;

Data_flow CPU (Clock , Reset , inst , memout , pc , wmem , aluout ,data);

Inst_mem imem(pc , inst);

Data_mem dmem(Clock , memout , data , aluout , wmem , Clock , Clock);

Endmodule

其连接如图9-1所示。

图9-1 CPU、指令存储器和数据存储器连接

向工程中添加测试模块。综合通过后,在工程管理区将View设置为Simulation,在任意位置单击鼠标右键,并在弹出的菜单中选择New Source,在类型中选择Verilog Test Fixture,输入测试文件名:Mainboard_tb,单击下一步。

这时所有工程中的模块名都会显示出来,选择要进行测试的模块:Mainboard。点击Next ,再单击Finish按钮,ISE会在源代码编辑区自动生成测试模块的代码。我们看到,ISE已经自动生成了基本的信号并对被测模块做了例化。

在Mainboard_tb添加如下测试代码:

计算机科学与工程学院

34

计算机组成原理实验单周期CPU的设计与实验

initial begin

// Initialize Inputs Clock = 0; Reset = 0; mem_clk = 0;

// Wait 100 ns for global reset to finish #100;

// Add stimulus here Reset <= 1; end

always begin #50;

Clock = ~Clock; End

完成测试文件编辑后,确认工程管理区中View选项设置为Simulation,并且选中的测试模块是Mainboard_tb,这时在过程管理区会显示与仿真有关的进程。右键单击其中的Simulate Behavioral Model项,选择弹出菜单中的Process Properties项,会弹出属性设置对话框,将其中Simulation Run Time设置为1000ns。

在过程管理区双击Simulate Behavioral Model,ISE将启动ISE Simulator,可以得到仿真结果,如图9-2所示。

图9-1CPU仿真测试结果

9.4下载到开发板验证

仿真测试通过后,下一步要做的工作就是将所做设计下载到开发板进行验证。为了便于测试和观察,对开发板上的器件作如下约定:

? 按钮Button[0],作测试时钟脉冲输入;

? 开关Switch[1:0]:输出内容选择,00 – 显示执行指令,01 – 显示pc,10 – 显

计算机科学与工程学院

35

计算机组成原理实验单周期CPU的设计与实验

示ALU运算结果,11 –显示数据存储器输出

? 开关Switch[2]:0 – 显示输出内容的低24位,1 – 显示输出内容的高24位 对模块Mainboard作如下修改:

module Mainboard( input Clock, input Reset,

output[31:0] inst, output[31:0] pc,

output[31:0] aluout, output[31:0] memout,

input BTN_IN, //单步脉冲输入 input [5:0] SW, //开关

output [7:0] seg, //数码管7段 output [5:0] AN_SEL, output [7:0] LED );

wire [31:0] data; wire wmem;

Data_flow CPU (Clock , Reset , inst , memout , pc , wmem , aluout ,data);

Inst_mem imem(pc , inst);

Data_mem dmem(Clock , memout , data , aluout , wmem );

//单步执行时钟控制

reg [31:0] clockdiv = 0; wire BTN_Out; BTN_Anti_Jitter anti_jitter( clockdiv[12] , BTN_IN , BTN_Out ); //按钮去抖动

always @ (posedge Clock) clockdiv <= clockdiv + 1;

assign LED[0] = BTN_Out | Reset; assign LED[1] = SW[1]; assign LED[2] = SW[2];

//控制数码管显示

wire [31:0] display_content; wire [23:0] disp_num;

//显示内容选择

assign display_content = (SW[1:0] == 2'b00)? inst: (SW[1:0] == 2'b01)? pc:

(SW[1:0] == 2'b10)? aluout : memout;

计算机科学与工程学院

36

计算机组成原理实验单周期CPU的设计与实验

//高低24位选择

assign disp_num = (SW[2] == 1)? display_content[31:8]:

display_content[23:0];

//数码管输出显示 Hex7seg_decode hex7(disp_num , clockdiv[18:16] , seg , AN_SEL);

endmodule

上述模块中引用的BTN_Anti_Jitter模块和Hex7seg_decode模块的设计参见附件中的相关内容。

为模块中的输入/输出信号添加管脚约束,即向工程中添加UCF(User Constraints File)文件。在工程管理区单击鼠标右键,点击New Source,弹出如图4-6所示对话框,在类型中选择Implementation Constraints File,输入文件名:Mainboard_ucf,选择关联模块:Mainboard。系统会生成一个空白的约束文件并打开。我们就可以为设计添加各种约束。

NET Clock LOC = D11;

Net \

#Buttons

Net \NET BTN_IN LOC = E6; //btn(0)

NET Reset LOC = D5; //btn(1)

#switches

NET SW<0> LOC= V5; NET SW<1> LOC= U4; NET SW<2> LOC= V3;

#Leds

NET LED<0> LOC=W3; NET LED<1> LOC=Y4; NET LED<2> LOC=Y1;

##### 7-seg anode #####

NET AN_SEL(0) LOC = M17; # 7-seg AN1 NET AN_SEL(1) LOC = AA20; # 7-seg AN4 NET AN_SEL(2) LOC = AB21; # 7-seg AN5 NET AN_SEL(3) LOC = N16; # 7-seg AN2 NET AN_SEL(4) LOC = P19; # 7-seg AN3 NET AN_SEL(5) LOC = P16; # 7-seg AN0

##### 7-seg display #####

NET seg(0) LOC=AA21; # 7-seg CA

计算机科学与工程学院

37

计算机组成原理实验单周期CPU的设计与实验

NET seg(1) LOC=AA22; # 7-seg CB NET seg(2) LOC=Y22; # 7-seg CC NET seg(3) LOC=N15; # 7-seg CD NET seg(4) LOC=AB19; # 7-seg CE NET seg(5) LOC=P20; # 7-seg CF NET seg(6) LOC=Y21; # 7-seg CG NET seg(7) LOC=P15; # 7-seg DP

约束完成后,下一个步骤就是实现(Implementation)。所谓实现,是指将综合输出的逻辑网表翻译成所选器件的底层模块和硬件原语,将设计映射到器件结构上,进行布局布线,达到在选定器件上实现设计的目的。

在ISE中,执行实现过程,会自动执行翻译、映射和布局布线过程:也可单独执行。在过程管理区双击Implementation Design选项,就可以自动完成实现的3个步骤:Translate、Map、Place & Route,如果没有错,双击Generate Program File,生成Mainboard.bit文件。将生成的Mainboard.bit下载开发板上验证(下载方法参见4.1步骤5)。

计算机科学与工程学院 38

…… 此处隐藏:2036字,全部文档内容请下载后查看。喜欢就下载吧 ……
《单周期CPU的设计与实现》-实验指导书(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/449330.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)