计算机组成原理实验报告.docx
- 文档编号:2964011
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:44
- 大小:940.86KB
计算机组成原理实验报告.docx
《计算机组成原理实验报告.docx》由会员分享,可在线阅读,更多相关《计算机组成原理实验报告.docx(44页珍藏版)》请在冰豆网上搜索。
计算机组成原理实验报告
电子科技大学计算机科学与工程学院
标准实验报告
(实验)课程名称:
计算机组成原理综合实验课程
电子科技大学教务处制表
电子科技大学
实验一报告
学生姓名:
ZYZ学号:
*************指导教师:
CAG
实验地点:
主楼A2-411实验时间:
2016年11月20日
一、实验室名称:
A2-411。
二、实验项目名称:
Verilog设计简介。
三、实验学时:
实验学时是3学时。
四、实验原理:
Verilog设计硬件电路需要创建工程,模块和约束文件。
一位二选一多路器的实验原理图和真值表如下图1所示:
二选一多路器的逻辑表达式为
,根据逻辑表达式可得电路图如图2所示:
五、实验目的
通过本实验,掌握用VerilogHDL硬件描述语言设计硬件电路的基本方法和FPGA开发板的基本使用。
实现32位2选1多路选择器、5位2选1多路选择器、32位寄存器堆、ALU等部件的设计,掌握其基本方法和技能,加深对所学知识的理解。
六、实验内容
基本器件的设计:
Ø32位2选1多路选择器
Ø5位2选1多路选择器
Ø32位寄存器堆
ØALU
七、实验器材(设备、元器件):
1.安装了XilinxISEDesignSuite13.4的PC机一台
2.FPGA开发板:
AnvylSpartan6/XC6SLX45
3.计算机与FPGA开发板通过JTAG(JointTestActionGroup)接口连接,其连接方式如图3所示。
图3PC计算机与FPGA开发板的连接
八、实验步骤
1.新建工程(NewProject)
启动ISEDesignSuite13.4软件,然后选择菜单File→NewProject,弹出NewProjectWizard对话框,选择VerilogModule,并在对话框中输入工程名ALU,并指定工作路径D:
\ALU。
2.基本功能器件的设计与实现
(1)32位2选1多路选择器
在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择NewSource命令,创建一个VerilogModule模块,名称为:
MUX32_2_1,此时开发环境的工程管理区中将有一个MUX32_2_1(MUX32_2_1.v)模块,双击该模块,然后在源代码编辑区编写实现该模块的代码:
moduleMUX32_2_1(
input[31:
0]A,
input[31:
0]B,
inputSel,
output[31:
0]O
);
assignO=Sel?
B:
A;
endmodule
代码输入完成后,在工程管理区选中要检查的模块,检查VerilogHDL语法(Synthesize→XST→CheckSyntax)。
检查通过后,进行VerilogHDL代码综合。
在工程管理区的View中选择Implementation,并选中MUX32_2_1模块,进行综合(Synthesize)。
综合通过后,查看RTL层电路(Synthesize→XST→ViewRTLSchematic),结果如图4所示。
对模块MUX32_2_1进行仿真(Simulation),在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择NewSource命令,在NewSourceWizard对话框中选择VerilogTestFixture,输入测试文件名:
MUX_32_2_1_tb,单击Next按钮,进入下一个对话框,选择要测试的模块MUX_32_2_1,点击Next按钮,再点击Finish按钮,ISE会在源代码编辑区自动生成测试模块的代码。
在模块MUX_32_2_1_tb中添加如下测试代码:
moduleMUX32_2_1_tb;
reg[31:
0]A;
reg[31:
0]B;
regSel;
wire[31:
0]O;
//InstantiatetheUnitUnderTest(UUT)
MUX32_2_1uut(
.A(A),
.B(B),
.Sel(Sel),
.O(O)
);
initialbegin
//InitializeInputs
A=0;
B=0;
Sel=0;
//Wait100nsforglobalresettofinish
#100;
//Addstimulushere
A=32'000000000;
B=32'h00000000;
Sel=1'b0;
#100;
A=32'000000000;
B=32'h00000000;
Sel=1'b1;
#100;
A=32'000000000;
B=32'h00000001;
Sel=1'b1;
#100;
end
endmodule
然后进行仿真,将工程管理区中View选项设置为Simulation,仿真参数设置完后,选中MUX32_2_1_tb模块,双击SimulateBehavioralModel,得到仿真结果,如图5所示:
图5模块MUX32_2_1的仿真结果
(2)5位2选1多路选择器
在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择NewSource命令,创建一个VerilogModule模块,名称为:
MUX5_2_1,此时开发环境的工程管理区中将有一个MUX5_2_1(MUX5_2_1.v)模块,双击该模块,然后在源代码编辑区编写实现该模块的代码:
然后输入其实现代码:
moduleMUX5_2_1(
input[4:
0]A,
input[4:
0]B,
inputSel,
output[4:
0]O
);
assignO=Sel?
B:
A;
endmodule
在ISE集成开发环境中,进行语法检查(Synthesize→XST→CheckSyntax),检查通过后,对模块MUX5_2_1进行综合(Synthesize→XST→ViewRTLSchematic),得到RTL视图,结果如图6所示。
图6模块MUX5_2_1的综合(Synthesize)结果
在ISE集成开发环境中,对模块MUX5_2_1进行仿真(Simulation)。
首先输入如下测式代码:
moduleMUX5_2_1_tb;
reg[4:
0]A;
reg[4:
0]B;
regSel;
wire[4:
0]O;
//InstantiatetheUnitUnderTest(UUT)
MUX32_2_1uut(
.A(A),
.B(B),
.Sel(Sel),
.O(O)
);
initialbegin
//InitializeInputs
A=0;
B=0;
Sel=0;
//Wait100nsforglobalresettofinish
#100;
//Addstimulushere
A=5'00001;
B=5'00000;
Sel=1'b0;
#100;
A=5'00001;
B=5'00000;
Sel=1'b1;
#100;
A=5'00000;
B=5'00001;
Sel=1'b1;
#100;
end
endmodule
然后进行仿真,仿真结果如图7所示。
图7模块MUX32_2_1的仿真结果
(3)32位寄存器堆
在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择NewSource命令,创建一个VerilogModule模块,名称为:
RegFile,输入其实现代码:
moduleRegFile(
input[4:
0]Rn1,Rn2,Wn,
inputWrite,
input[31:
0]Wd,
output[31:
0]A,B,
inputClock
);
reg[31:
0]Register[1:
31];
assignA=(Rn1==0)?
0:
Register[Rn1];
assignB=(Rn2==0)?
0:
Register[Rn2];
always@(posedgeClock)begin
if((Write)&&(Wn!
=0))Register[Wn]<=Wd;
end
endmodule
语法通过后,对模块RegFile进行综合(Synthesize→XST→ViewRTLSchematic),得到RTL视图,结果如图8所示。
图8模块RegFile的综合(Synthesize)结果
进行语法检查(Synthesize→XST→CheckSyntax),检查通过后,对模块RegFile进行仿真(Simulation),输入如下测式代码:
moduleRegFile_tb;
//Inputs
reg[4:
0]Rn1;
reg[4:
0]Rn2;
reg[4:
0]Wn;
regWrite;
reg[31:
0]Wd;
regClock;
//Outputs
wire[31:
0]A;
wire[31:
0]B;
//InstantiatetheUnitUnderTest(UUT)
RegFieluut(
.Rn1(Rn1),
.Rn2(Rn2),
.Wn(Wn),
.Write(Write),
.Wd(Wd),
.A(A),
.B(B),
.Clock(Clock)
);
initialbegin
//InitializeInputs
Rn1=0;
Rn2=0;
Wn=0;
Write=0;
Wd=0;
Clock=0;
//Wait100nsforglobalresettofinish
#100;
//Addstimulushere
Rn1=0;
Rn2=1;
Wn=1;
Write=1;
Wd=2;
Clock=1;
//Wait100nsforglobalresettofinish
#100;
Rn1=0;
Rn2=0;
Wn=2;
Write=1;
Wd=3;
Clock=1;
//Wait100nsforglobalresettofinish
#100;
Rn1=1;
Rn2=0;
Wn=0;
Write=0;
Wd=1;
Clock=1;
//Wait100nsfor
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 实验 报告