《单周期CPU的设计与实现》-实验指导书(8)
计算机组成原理实验单周期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字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [说明书]浅谈视觉传达设计中的色彩艺术
- [说明书]数据库原理-实验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




