XC3S200ALab1Counter4VHDL.docx
《XC3S200ALab1Counter4VHDL.docx》由会员分享,可在线阅读,更多相关《XC3S200ALab1Counter4VHDL.docx(15页珍藏版)》请在冰点文库上搜索。
XC3S200ALab1Counter4VHDL
Lab1:
Counter4.npl
[实验说明]:
使用ISE9.1i设计Counter4的VHDL语法与操作说明在这一个范例
中,你将开启一个counter4的模块,与此项目所需的UCF文件,并且利用ISE09.1i的软件完成整个设计流程,并且将设计结果用JTAG接口连接烧录到MB_XC3S200A_FT256开发板中,验证其设计结果是否正确?
此设计同时利用ISE9.1i的仿真功能來验证结果的正确性?
.
[实验目地]:
当你完成整个项目之后,你将学会以下的功能.
(1).利用ISE9.1i的软件开启一个Spartan3AFPGA的项目.
(2).撰写一个简单的VHDL程序,利用语法检查器(SyntaxCheck)來修正语法的错误
(3).产生测试模板(TestPattern)來辅助你的设计.
(4).加入系统所需的Constraints文件.(UCFfile)
(5).完成整个设计流程.并产生Counter4.bit文件
(6).利用FPGAEditor來察看FPGA内部的结果,
(7).利用[Impact]來烧录Counter4.bit文件到FPGA.
[系统需求]:
PC个人计算机
ISE9.1i软件
Counter4.VHD文件
Counter4.UCF文件
PlatformCableUSB
XC3S200A_FT256开发板
电源供应器(DC5V输入).
[操作步骤]:
开启ISE9.1i软件:
[程序集][XilinxISE9.1i][ProjectNavigator].会出现ISE9.1i的画面,画面开启之初,会出现[TipoftheDay],可以将之关掉后,出现以下的画面.
(2).在ISE9.1软件环境下,开启一个新的工程:
[File][NewProject]
[ProjectName]:
Lab1_counter4
[ProjectLocation]:
c:
\Lab1_counter4(依使用者设定的目录).
[Top-LevelModuleType]:
HDL(代表最上层的设计模块是以HDL输方方式的模
组.
(3).下一个画面就是设定硬件组件的参数
[FPGA系列(DeviceFamily)]:
Spartan3A(请看板子的FPGA组件的编号)
[FPGA名称(Device)]:
XC3S200A(请参考开发板的FPGA组件的编号)
[FPGA包装(Package)]:
FT256(请参考开发板的FPGA组件的编号)
[FPGA速度等级(Speed)]:
-4(FPGA速度等级)
[综合器工具(SynthesisTool)]:
XSTVHDL(VHDL综合的种类)
[仿真器(Simulator)]:
ISESimulator(ISE9.1内建的仿真器)
[产生仿真器的语言(GeneratedSimulationLanguage)]:
VHDL
(4).下一个画面CreateaNewSource先跳过,按[下一步].下一个画面AddaExistingSource亦跳过,按[下一步].此时出现此项目所有设定的信息,若需重新设定,则可[上一步].若无误,则按[完成];
(5).此时出现一个项目的架构,可以允许使用者开始进行项目的设计.
(6).加入新的设计文件:
[Project][NewSource];选择VHDLModule,并设定文件名称为Counter4
(7).利用Wizard(向导),设定此设计的输入有clock,direction,reset三种信号,输出有count_out(3downto0)等信号.
(8).按[下一步],再按[完成];此时项目加入此模块之后,在SourceInProject的窗口中会出现counter4.vdh在专案中.
(9).以双击counter4.vhd之后,在右边的工作区可以看到counter4.vhd的文件内容,此时可以修改或改变设计内容,在修改完成之后,利用[File][Save]來储存文件.在撰写counter4.vhd内容之时,可以参考ISE所附的LanguageTemplate
选择[VHDL][SynthesisConstructs][CodingExamples][Counters][Binary],可以找到相关语法范例.
architectureBehavioralofcounter4is
signalcount_int:
std_logic_vector(29downto0);
begin
count_out<=count_int(29downto26);
process(clock,reset)
begin
ifreset='0'then
count_int<=(others=>'0');
elsifrising_edge(clock)then
ifdirection='1'then
count_int<=count_int+1;
else
count_int<=count_int-1;
endif;
endif;
endprocess;
endBehavioral;
(10).第一次进行编译的工作,以确认设计的正确性与否?
在[Project]的窗口中,直接以双击GenerateProgrammingFile的选项.
此时ISE9.1会自动执行并产生可以Download的.bit文件,此步骤是最直接验证设计工作的正确性与否?
若在每一个程序都出现打勾,代表O.K.
若有一个程序都出现打叉[X]的符号,代表有错误,可以依显示结果來侦错.
(11).在实际烧录FGPA之前位了要验证设计的正确性,可以先利用测试模板(Testbench)來验证设计的正确性.
[Project][NewSource][TestbenchWaveform]Filename=counter4_tb
[SelectSource]Counter4
设定clock为50Mhz的输入(周期为20ns)
(12).依使用者需求更改输入端数据,已达到验证效果,设定完后存档进行模拟,如下图所示:
(13).在[Sources]选取[BehavioralSimulation][Processes][ModelSimSimulator]双击[SimulateBehavioralModel],执行之候,出现模拟的结果.
1).可在输出脚count_out[3:
0]按右键,选取Decimal(Unsigned),将结果以十进制显示,以方便验证结果正确.
(14)同样地,选择[SimulatePostPlace&RouteHDLModel]來查看经过PlaceandRoute之后,含有时间延迟的输出波形,并且利用[MeasureMeter]來量测其延迟的时间
(15).若使用者比较习惯使用Modelsim來模拟结果,可以先将仿真器改Modelsim的版本
1).先点选[SourceWindows]的[xc3s200a-4-ft256],再点选[Souce][Properities]
2).直接模拟就可以得到结果.如果无法模拟或是有任何疑问,可以参考”如何安装ModelSimSE6.0”手册.
(16).再來需设定I/O脚的位置,可以利用Counter4.UCF來设定I/O脚的位置,以得到正确的输出文件.
۞[Project][NewSource].设定输入的文件格式为[ImplementationConstraintsFile]文件名称为Counter4(自动储存为Counter4.UCF)
(17).点选[SourceinProject]窗口内的Counter4.ucf,利用AssignPackagePins中的[LOC]之接输入输出脚的脚位,也可以利用鼠标点选信号后,以鼠标拖曳到右边的脚位上即可,输入后储存文件.(相关脚位定义请参考使用手册得知).
Clock
P9
Direction
E6
Reset
K5
Count_out(0)
M14
Count_out
(1)
M13
Count_out
(2)
K13
Count_out(3)
L13
(18).重新执行GenerateProgrammingFile,确认设计无误
.
(19)若想要知道FPGA最后实现在芯片内的狀况,则可以[ProjectView]窗口内的[ImplementDesign][PlaceandRoute][View/EditRoutedDesign(FPGAEditor)]來查看其最后实现在FPGA内部的狀况.
(20)在[ProcessforSource]窗口中,点选[ViewDesignSummary],可以浏览项目设计的报告,包含FPGA使用率,Report…..
(21).在完成设计验证之后,就可以将Counter4.bit写入到FPGA内部,此时点选[ProjectView]窗口内的[GenerateProgrammingFile][ConfigureDevice(iMPACT)],出现Impact的窗口.
选取[Finish],进入自动联机,请事先连接JTAG接口与供应板子电压.
(22)此时JTAGCable会扫描JTAGChain的路径中的FPGA组件,若扫描成功则出现所扫描的组件,并跳出选择文件的窗口.
选择文件之后,出现警告的窗口,按[确定],进入下一步.
(23)此时出现的窗口,则表示出XC3S200A的待烧录文件为Counter4.bit.以鼠标点选FPGA组件,FPGA会变为绿色,同时出现[ProgramOptions]窗口,按[OK]开始烧录.
(24)FPGA若烧录成功,则出现ProgrammingSucceeded若programming成功