Lab2实验报告Word文档格式.docx
- 文档编号:18981204
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:16
- 大小:1,005.11KB
Lab2实验报告Word文档格式.docx
《Lab2实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《Lab2实验报告Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
1.ISE的使用
2.iMPACT的使用
3.编辑UCF
4.Spartan3E实验板的使用
5.使用VerilogHDL进行逻辑设计
1.4注意事项
1.本实验的逻辑设计工具为XilinxISE11.1。
1.5实验要求
1.用Verilog实现一个简单的带同步复位的4位2进制计数器
2.使用某种仿真器对该计数器进行仿真,本例中采用XlinxISESimulator,也可使用ModelSim
3.为FPGA提供的高速时钟进行分频,为计数器提供慢速时钟。
4.将最终得到的解决方案使用XlinxISE11.1进行综合,并在实验板上得到预期结果。
2实验内容
2.1实验步骤
1.启动ISE11.1。
2.选择File>
NewProject…出现NewProjectWizard。
3.ProjectName填写lab5,选择工程ProjectLocation,Top-levelSourceType选择HDL。
点击Next。
4.DeviceProperties中各属性填写如下:
ProductCategory:
ALL
Family:
Spartan3E
Device:
XC3S500E
Package:
FG320
Speed:
-4
SynthesisTool:
XST(VHDL/Verilog)
Simulator:
ISim(VHDL/Verilog),也可用Modelsim仿真。
PreferredLanguage:
Verilog
确认EnableEnhancedDesignSummary已勾选
下一步,添加要新建的源代码文件。
点击NewSource:
在对话框中选择VerilogMoudle类型文件,命名为counter,并勾选AddtoProject,如图:
下一步,添加输入输出端口(注意要设置Direction),如图:
下一步,查看信息无误后点击Finish完成新代码文件的创建。
此时界面回到NewProjectWizard。
在此,单击下一步,出现添加已有代码的窗口,可直接下一步跳过。
出现信息窗口,检查设置无误后点击Finish,如图:
5.如下修改counter.v的代码并保存,实现带同步复位的4Bits计数器,如图:
6.运行仿真器:
在Hierarchy中选中counter.v,菜单栏中选择Project->
NewSource,选择VerilogTestFixture,输入文件名countert,点击Next,如图:
选择counter模块,Next直到点击Finish关闭对话框,如图:
在左上侧的Sourcesfor:
下拉菜单中选择BehavioralSimulation,然后修改新生成的countert模块的代码,使其如下图所示:
在Processes中右键点击SimulateBehavioralModel然后选中ProcessProperties,更改SimulationRunTime值为500ns,点击OK保存。
双击SimulateBehavioralModel即可得到如下仿真波形:
7.在SourceFor:
中选择implementation,双击打开counter.v。
由于板子晶振提供的时钟频率速度较高,需要对时钟进行分频,可通过TimerDivider模块来实现。
代码更改为如图并保存:
8.在Hierarchy窗口中选中counter.v,在Processes窗口UserConstraints下的展开项中双击CreatTimingConstraints,弹出窗口提示创建ucf文件,点Yes。
关闭TimingConstraints窗口,选中创建的counter.ucf,在Processes窗口双击EditConstraints(Text)打开文本编辑器
在该UCF文件中输入端口映射的配置,将输出映射至LED,如图:
9.保存后,在菜单栏中Process下点击ImplementTopModule,ISE会调用后台工具对工程进行综合和布线。
此过程较慢,请注意下方输出窗口中的返回信息。
如果成功完成,会有如下提示:
选中Hierarchy窗口的counter.v,在Processes窗口中选择Synthesize–XST下面的ViewRTLSchematic,右键或双击运行。
查看产生的模块图:
10.双击左侧GenerateProgrammingFile,系统会自动生成二进制bit流文件counter.bit:
11.将FPGA开发板接入计算机,双击ConfigureTargetDevice下的ManageConfigurationProject(iMPACT)。
会弹出如下图窗口:
等待一段时间,ISE将自动完成Synthesize,ImplementDesign和GenerateProgrammingFile。
等iMPACT软件启动后,双击BoundaryScan,在iMPACT右侧窗口右键选择:
InitializeChain。
会连续弹出三个对话框,第一个中选择刚刚生成的counter.bit文件,点击Open。
点击OK,出现如下视图:
后两个对话框选择Bypass或Cancel掉,继续点击OK。
出现图2-20这一步,点击No
12.在counter.bit的模块中右键Program,在ProgramProperties对话框直接点击OK。
等待屏幕出现蓝色ProgramSuccess的提示时,说明烧写成功。
2.2验证
FPGA开发板上4个LED,亮起代表该位为1,灭掉代表该位为0。
四位LED表示了4位二进制数字,通过其变化观察计数过程。
按下按钮中间的ENTER键,可以控制计数器同步复位。
3实验程序
moduletimerDivider(clockIn,clockOut);
inputclockIn;
outputclockOut;
regclockOut;
reg[24:
0]buffer;
always@(posedgeclockIn)
begin
buffer<
=buffer+1;
clockOut<
=&
buffer;
end
endmodule
modulecounter(
mianClock,
reset,
count
);
inputmianClock;
inputreset;
output[3:
0]count;
reg[3:
wireslowClock;
timerDividertd(.clockIn(mianClock),.clockOut(slowClock));
always@(posedgeslowClock)
if(!
reset)
count<
=4'
b1111;
else
=count-1;
modulecountert;
//Inputs
regmianClock;
regreset;
//Outputs
wirecount;
parameterDELY=20;
//InstantiatetheUnitUnderTest(UUT)
counteruut(
.mianClock(mianClock),
.reset(reset),
.count(count)
always#(DELY/2)mianClock=~mianClock;
initialbegin
//InitializeInputs
mianClock=0;
reset=0;
//Wait100nsforglobalresettofinish
#100;
//Addstimulushere
reset=1'
b1;
#(DELY*10)reset=1'
b0;
#(DELY)reset=1'
NET"
mainClock"
LOC="
C9"
|IOSTANDARD=LVCMOS33;
3>
"
F11"
|IOSTANDARD=LVTTL|SLEW=SLOW|DRIVE=8;
2>
E11"
1>
E12"
0>
F12"
reset"
LOC="
L13"
|IOSTANDARD=LVTTL|PULLUP;
4实验结论
实验很顺利,成功实现了由程序控制LED灯有序亮灭。
实验中产生的模块图如下:
并通过修改实验程序实现了LED灯顺序和逆序的亮灭。
这个实验中学习了分频器的编写,了解了同步信号的工作过程。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Lab2 实验 报告