武汉理工大学fpga原理及应用实验报告书_第1页
武汉理工大学fpga原理及应用实验报告书_第2页
武汉理工大学fpga原理及应用实验报告书_第3页
武汉理工大学fpga原理及应用实验报告书_第4页
武汉理工大学fpga原理及应用实验报告书_第5页
已阅读5页,还剩225页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

序号(学号):0121309340728忒揉理7人孚实验报告书实验类别 FPGA原理及应用学 院 信息工程学院专 业通信工程班 级通信1303姓 名 '处 指导教师 张家亮 实验课程名称:FPGA原理及应用实验项目名称ISE应用基础实验实验成绩梁飞专业班级通信实验项目名称ISE应用基础实验实验成绩梁飞专业班级通信1303组别实验日期实验者同组者18ISE应用基础实验1.1实验目的(1)熟悉ISE9.1开发环境,掌握工程的生成方法;(2)熟悉SEED-XDTKXUPV2Pro实验与仿真设计的环境;(3)了解PicoBlaze8-bit嵌入式微控制器特点。1.2实验内容(1)创建工程:(2)添加HDL资源文件;(3)配置一个应用程序完成设计;(4)设计的仿真及实现。1.3实验准备(1)将光盘下03.ExamplesofProgram实验程序目录下的01.ISE9.1文件夹拷贝到E:盘根目录下;(2)将USB下载电缆与计算机及XUPV2Pro板的J8连接好:(3)将RS232串口线一端与计算机连接好,另一端与板卡的J11相连接;(4)启动计算机后,将XUPV2Pro板的电源开关SW11打开到0N上。观察XUPV2Pro板h的+2.5V,+3.3V,+1.5V的电源指示灯是否均亮,若有不亮的,请断开电源,检查电源。1.4实验步骤(1)创建工程1)双击桌面XilinxISE9.1快捷方式打开ISE工程管理器(ProjectNavigator)»2)打开ProjectNavigator后,选择FilefNewProject,弹出新建工程对话框;uiiSgI>iiM-ISI-B:\OI.LSK9.l\xa*v?9ra\lBba\*ar>lo(\lBl»4\«ynth_lal>.iaa-Lkcp»3.vjuiiSg,1 ,14'U七Xri»e«c»le1ps/lpIIIIIIIIIIIIIIIIHlIllt'〃〃/〃〃/〃/〃〃〃〃〃Fr*e«i*«iforl««pb«ckA44Ianti»cS«wc«Cr««t«Tiw,1 ,14'U七Xri»e«c»le1ps/lpIIIIIIIIIIIIIIIIHlIllt'〃〃/〃〃/〃/〃〃〃〃〃Fr*e«i*«iforl««pb«ckA44Ianti»cS«wc«Cr««t«TiwSvwaryVt«rSp>tlw*it«-XST**«1<»Upda<» vi<XFraModulekcpsnd(•ddrcss,inatructioBf\",_&画•««rt_tK(«*Qr««i»«"<Mrt_xi(tuaefQ««*b*cmaynil>_l*bnQ>c2vp»-?f09B-d»«0»ck«•)[vj»y_k<yia3-kcpw)*^$Svorc*sPr。”””◎*^$Svorc*sPr。”””图1-2ISE工程管理器3)在工程路径中单击“…”按钮,将工程指定到如下目录,单击确定。

Verilog使用者:E:\01.ISE9.I\xupv2pro\labs\verilog\lablVHDL使用者:E:\01.ISE9.I\xupv2pro\labs\vhdl\labl4)在工程名称中输入Flow」ab,点击Next按钮,弹出器件特性对话框。器件族类型(DeviceFamily)选择“Virtex2P",器件型号(Device)选“XC2Vp30ff896-7”,综合工具(SynthesisTool)选“XST(VHDL/Verilog)w,仿真器(Simulator)选"ISESimulator",如图所示。ProductC«t«co>'y◎回因ProductC«t«co>'yEnableEnhancedDesignSumnaryDisplayIncrementalHessazes回口口EnableEnhancedDesignSumnaryDisplayIncrementalHessazes回口口FwilyVirtexZPD«vic«XC2VP30V-P*ck«<«FF896rSpeedTop-L«velSourceTypeSynthasisToolSimulatorPr«f«rr«dLanu«c«HDLXST(VHDL/V.riloc)ISESiaulator(VMDL/Veriloc)V»O)Lvaluem""""SelecttheDeviceandDesienFlowfortheProject图1-3特性对话框5)单击Next按钮,弹出创建新资源(CreateNewSoure)对话框,可以使用这个对话框来创建新的HDL资源文件,或者也可以创建工程后,新建HDL资源文件;图1-4图1-4创建新资源对话框6)单击Next按钮,弹出添加存在资源对话框:图1-5添加存在资源对话框(2)添加HDL资源文件1)点击AddSource按钮,指向E:\01.ISE9.1\KCPSM3\VHDL(Verilog)活页夹下,选择kcpsm3_int_test和kcpsm3文件,单击Open按钮;图1-6操作示意2)单击Next按钮,弹出工程信息后单击Finish按钮;

CXiluui-ISE-E:\01.ISE9.l\xupv2pco\l&bs\verilo\Flov_lab\Flov_lab.iseEil.EditP^ojtct$&wc«froctttlndo*H«lp口3^392QMN廖囱区|塾目mdSovretiProctttesSovretiProcessesforxc2vpX_7ffB96□AddExtstinfSourcenCreateNevSource♦»D«siaUtilities图上7操作示意£FPGADesignSunnaryProcessesfor:kcpsi»3_int_t«stSowc«sforSynth«sul^ilXll*n*nt«tionDesignOv«rvi«vpjSwmaryQlOBPropertiesIjTmiingConstraintsIjPinoulReportQClockRportErrorsandWarningsQSynth«sisMessages[jTrmxl»tionM«isac«xQW»pM«ssa«sQPieceandRouteiessaces-QTimingMessagesQBitgenMessagesAllCurrentMessagesProjectFile:■od«lelaae.kcps»3_int_testFro40ctVersion'Flow_Jab.ixc2vp30-7ff896ISE9.liFLOf_LABParti£FPGADesignSunnaryProcessesfor:kcpsi»3_int_t«stSowc«sforSynth«sul^ilXll*n*nt«tionDesignOv«rvi«vpjSwmaryQlOBPropertiesIjTmiingConstraintsIjPinoulReportQClockRportErrorsandWarningsQSynth«sisMessages[jTrmxl»tionM«isac«xQW»pM«ssa«sQPieceandRouteiessaces-QTimingMessagesQBitgenMessagesAllCurrentMessagesProjectFile:■od«lelaae.kcps»3_int_testFro40ctVersion'Flow_Jab.ixc2vp30-7ff896ISE9.liFLOf_LABPartiMopartitioninfom*tioa**sfound.BetaileiAddEx>stin{SourceCr««t«NwSourctViewDesignSunmaryDesignUtilitiesUserConstraints~iD«tail«dReports口SynthesisReportSynthesisReportStatasGeneraSynthasic«-XSTIapl«n«ntD<stcnProjectProp«rti«s0EnableEnhancedDesignSwwnary口Enable Filtering口DisplayIncrementalMesssagesEnh«nc«dDesignSwmaryContents0ShowPartitionDataIITranslationReportNapReportPlandRout*KeportStaticTimingReport图「8资源文件添加完成注意:在工程中你会看到一个int_test模块出现红色问号,这是工程中缺少资源文件的标记,在下一步将会解决此问题。(3)配置一个应用程序完成设计1)打开E:\01.ISE9.1\KCPSM3目录下的Assembler文件夹。注意KCPSM3.exe汇编编译系统执行文件和ROM_form模板文件与两个PSM例子文件必须在这个目录下。紧记汇编编译器生成的用于程序内存的VHDL/Verilog文件会在这个目录下;•Asseabler文件②Atsil)查看⑦收藏&TAd)帮助鱼) 患》.■团。后退,j7/造外快区?地址S.0r\01ISM八HPS»3\A”M>bl" y£)铸到文件和文件天任务J管健一个新文件夹J啮这个文件夹发布到Yeb口共享缸文件夹*1gjiir^TEsrcozI^IIT.TISTDECI^IIT.nSTFWII^IIT.TESTKEI[[IIT_nSTLOGIglJT.TZSTM其它位置ft■@ir_nsrVB^jlMT.TESTVKD图1-9程序内存的VHDL/Verilog文件所在目录2)用文件编辑器打开int_test.psm文件,浏览一下代码,此档就是设计者编写和输入的源文件;3)在开始菜单中的所有程序的附件,点击命令提示符,使用cd命令指向汇编编译器的目录下,输入〉kcpsm3inttest,psm命令;t命令提示符MicrosoftWindowsXP1版本5.1.2600J<C>版权所有1985-2001MicrosoftCorp.p:\Document*andSettIngs\AdministFator>e:^:\>cdE:\01.ISE9.1\KCPSH3\Assenbler£: .ISE9.l\KCPSM3M)ssenbler»<cpsm3int_test.psn图1-10操作DOS命令示意)执行完命令后,会看到在Assembler下生成了一些文件,其中包括VHDL(int_test.vhd)和Verilog(int_test.v),这就是汇编编译系统把编写的汇编源文件int_test.psm自动生成用于程序内存的VHDL/Verilog格式文件,以用于综合和仿真。)在ISEProjectNavigator,点击Project AddCopyofSource,指向E:\01.ISE9.l\KCPSM3\Assembler目录下的inttest.vhd或者int_test.v文件;

AddCopiesofExistingSources图1-11操作示意单击打开后如图;图1-12操作示意AddCopiesofExistingSources图1-11操作示意单击打开后如图;点击0K后,则将int_test.vhd或者int_test.v文件添加到工程里,解决了出现红色问号的问题;Xilinx-ISE-E:\01.ISE9.l\xupv2pro\labs\verilog\Flow_lab\EditViewProjectSourceprocessJindo«Help口》同目以@XA/团因电臼mQ0[yjproctsior-kcpxm3Qccpsa3.v)[v]program-int_testdMT_TESTV)毛口》同目以@XA/团因电臼mQ0[yjproctsior-kcpxm3Qccpsa3.v)[v]program-int_testdMT_TESTV)毛Sources Snapshots的Librari”QSynthesisMessages门TranslationMessagesQffltpMessagesQPlaceandRouteMessages口TimingM«ss<c«snBitgenMessages

图1-13操作示意(4)设计的仿真1)如前所述,在ISEProjectNavigator点击Project AddCopyofSource,指向E:\01.ISE9.l\KCPSM3\vhdl(或者verilog)目录,选择testbench,vhd(或者testbench,v)文件,点击打开;图1-14操作示意2)选择SimulationOnly,点击OK,则将测试范本(Testbench)test_bench.vhd/・v文件添加到工程里;QXilinx-ISE-E:\01.ISE9.l\xupv2pro\labs\verilog\Flov_lab'工RileRditViewProjectSourceprocessYindowHelp口》同目.尸月岚A雪国bmo-©©图1-15操作示意3)单击Sourcese窗口中的testbench,则在Processes窗口中显示XilinxISESimulator工具栏,扩展开后,右键单击SimulatorBehavioralModel,选择Properties,对SimulationRunTime输入10000ns,单击OK按钮;

ProcessPropertiesISESinulatorPropertiesProcessPropertiesISESinulatorPropertiesUseCustomSiaul«tionConoiandPileCustomSii*ul«tionConan*adFil*Increment*!CompilationCowpilaforKDLDebugs1&CUseCustomCoapil*Fil*ListCustomConpileFil*ListRunforSp«cifi«dTint*SiaulationRuaTia(StoreAllSi0*lTransitionsDuriaSiaulktion1VHDLProptrtitspropertydispl«y :Advanc«dpropertydispl«y :Advanc«dv图1-16操作示意4)双击Processes窗口中的SimulateBehavioralModel对设计进行仿真,在右方窗口弹出仿真结果的波形;IThis18•FullversionofISESlnulator.SiMilacorisdoingciccuieInitializationprocess.TiDlsbedciccuitiaitializatlODpcocess.*图1-17仿真及结果示意(5)设计的实现1)在工程的Sources窗口,Sourcesfor选择Synthesis/Implementat1)在工程的Sources顶层文件kcpsm3_int_test.vhd/v;

EXilinx-ISE-E:\01.ISES.1\xupv2pro\labs\verilogMEditVitwProjectSourceProcessWindowHelpEdit£FPGAD«signSwnmqi-iDesiOverview[7)SummaryO工OBPropert[7)TimingConsQPinoutRepc[7|ClockRepoti-iErrorsandWarninQSynthesisVUTransl&tioi目MapMessageQPlactandF[y|TimingM«si□BitgenMess图1-18操作示意改I£ditYi^roctssWindowHelp2)在工程的资源操作窗(Processes),双击I£ditYi^roctssWindowHelp;;口今冒印'J3PXXJ®00::%Bm0:o©ourc”Sourcesfor:Synthesis/lBple*ent*tion V®Flow_l»bSourc”Sourcesfor:Synthesis/lBple*ent*tion V®Flow_l»bSaxc2vp30-7ff896H[v^CjQkcpsB3_int_t«stQccpsB3_int_test.v)0Processor-kcps»3Qccpsm3.v)回procrMi- QMT_TBSTV)ProcessesiGenerat.ProgrMM»in<Fil*Upd*t«BitstrcMivithProcessorData€,**AnalyzeDesignUsin^Chipscope工FPGAD«si«nSwumtry6DesignOverview0SummaryQlOBProp«rti«s■'I-^TimingConstraints-口PinoutReportQClockReport6ErrorsandWarningsQSynthesisMessagesQlrtnil*t>onM«ts«4«s-QMapMessagesnPlaceandRouteMessages口Tiein,QBitgenMessagesp)AllCurrentlessees国D«t«il«dReport*QSynthesisReport v*roj«ctProperties叼Entbl*EnhutctdD.ncntryEnableMessageFilteringDisplayIncrementalHesssa^es!nh*nc«dD”inSiMMaryCont«ntsShowPartitionDataShowErrorsLJShowWarninfsShowFailingConstraintsShowClockReportProjectFile:lodulelaae:Tar«・tDevice:ProductVersion:NopartitioniiReportlaaeSynthaiisReportTranslationReportMapReportPlaceandRouttReportStaticTintingReportRitvan图1-19操作示意3)当实现设计(ImplementDesign)运行的过程中,展开实现(ImplementDesign)的步骤,会看到实现过程中,首先是进行综合(Synthesis),然后才依次完成实现的步骤。当完成相关操作后,在每个操作步骤前会显示一个小图标,表示该步骤的完成情况。对于本设计,在一些操作步骤前显示的是叹号,这些警告是可以忽略的。上图的示意如下:令对号表示该操作步骤成功完成:。叹号表示该操作步骤虽完成但有警告信息;

。叉号表示该操作步骤因错误而未完成。4)当完成这些操作步骤后,生成相应的操作报告供查看。实现操作完成后,再看designutilization的DesignSummary窗口;Lo\labs\verilog\Flo>_lab\FloT_lab.ise-[DesignSuBaary]EE®vHelpQ®IE£FPGADesignaryFLOV_ULBPrejectStatvsfaD<signOv«rvi«w[y]Sun*aryp)IOBPropcrti•>[yjTimincConstraintsPinoutReportQClockR«portrorsandYarmn<sp]SynthasisN«ss«c«s^TranslationMessagesfrojectFile:Plow_lab.iseCvrrentState:PlacedandRouted■aaekcpsa3_int_t«st•Irrers:MoErrors匕&T*rf«tBevice:xc2vp»-7f£896346IfuniMtFrodvctV*rsi«B:IS19.11•V>d«te4:星期四十一月62101:412008团MapMessagesQPlaceandBout*FLOI-LMPartiti«nary(yJTimin^Messages[jBitgealess<c«sMopartitioninfori*&tionwasfound.|^|mcurrentn«ss«g«s二Detul«dReportsQSynihtsisB«port■evieeVtilizatitnSuaaaryLegicVtilizati*UsedAvailableUtilization■ote(s) rrojactProparti•1HEnableEnhancedDesignSwiaaryLJDisplayIncreaentalMesss&{esEnhancedD«sinSwwnaryContantsNumberofSliceFlipFlops7627,392IXVunbarof4LUTsput10727,392IXHShowPartitionData口ShowErrorsL»eicBistri¥utioa口ShowWarnings口ShowFailingConstraintsKvnbtrofocSlicescupi«d9913,6961%MunbtrofSlicescontainingonlyrelatedloic9999100%7工DesignStain>u-y

实验课程名称:FPGA原理及应用实验项目名称ArchitectureWizard与PACE实验实验成绩实验者梁飞 专业班级通信1303组别18同组者实验日期ArchitectureWizard与PACE实验L1实验目的(1)熟悉并使用ArchitectureWizard;(2)掌握如何例化DCM模块单元;(3)熟悉并使用PACEo1.2实验内容(1)使用ArchitectureWizard生成DCM模块单元;(2)将例化DCM模块单元添加到工程;(3)使用PACE进行引脚位置锁定。1.3实验准备(1)将光盘下03.ExamplesofProgram实验程序目录下的01.ISE9.1文件夹拷贝到E:盘根目录下;(2)将USB下载电缆与计算机及XUPV2Pro板的J8连接好;(3)将RS232串口线一端与计算机连接好,另一端与板卡的J11相连接;(4)启动计算机后,将XUPV2Pro板的电源开关SW11打开到0N上。观察XUPV2Pro板上的+2.5V,+3.3V,+1.5V的电源指示灯是否均亮,若有不亮的,请断开电源,检查电源;1.4实验步骤包括DCM模块生成、DCM组件例化、管脚分配、超级终端的使用、UART实时时钟操作等(1)使用ArchitectureWizard生成DCM模块单元1)选择StartfProgramsfXilinxISE9.li~ProjectNavigator,进入ISE的ProjectNavigator环境;2)选择FileOpenProject,并指向如下目录,选择arwz_pace.ise打开工程;Verilog使用者:E:\01.ISE9.I\xupv2pro\labs\verilog\lab2\arwz_paceVHDL使用者:E:\01.ISE9.I\xupv2pro\labs\vhdl\lab2\arwz_pace3)双击Processes窗口中的CreatNewSource,弹出新资源向导窗口,选择IP(CoreGen&ArchitectureWizard),输入my_dcm;

图2-1操作示意4)单击Next按钮,弹出SelectIP窗口,展开FPGAFeaturesandDesign和Clocking目录,选择SingleDCM;图2-2操作示意5)单击Next按钮,显示新建资源信息,单击Finish按钮则弹出XilinxClockingWizard-GeneralSetup窗口,选中CLKO、CLKFX和LOCKED,不选中RST,输入时钟频率为100MHz*XilinxClockingVizard-GenetalSetup□□oc口口-0口口-0dock".quncyCLKINSource□□oc口口-0口口-0dock".quncyCLKINSource©Ixtcmal OAteraal@Sinl*ODi££<r«ati«lDivideByValue|2T叵Us«Dut£Cjrcl*CorrectionPh”.Sh>ftTye*.NOHV«13«:iF««dbkckSowc*O•SincleDifferentialFeedbackValu*

©u&[也In£o]|^dv*ac«d图2-3操作示意6)单击Next按钮,弹出XilinxClockingWizard-ClockBuffers窗口,保持默认选项;<g*ck[昼*t>jjCancel图2-4操作示意7)单击Next按钮,弹出XilinxClockingWizard-ClockingFrequencySynthesizer窗口,输入50MHz输出频率;

aXilinxClockincVizard-ClockFrequencySynthesizerValidR*ngforSp4Gr»4a-7 1.000-240.000 24.000-240000Mich 50000-320000 210000-320000InputsfarJitterC*leulattMi*lapvtClockFr«qu«acy100MHr(*)](>■outputfr«i«ncy. |@时Oa*。U|«Rui11ply(JI)andDividaG))valuas•H 二I D口:][Calelt]G«nrl4Ovtpvt[且’0二“1晨;’, [<Rack][ [Cue>1]图2-5操作示意8)单击Next按钮,显示新建资源信息。单击Finish按钮则在工程的Sources窗口看到mydem.xaw作为资源添加到工程中,但没有作为一个模块加入顶层设计文件中,则需要下一步的例化过程;EXilimISE-E;\OI.t£EXKn9Vc|>tD\lab3\*ctilec\l«bc\acvz_pa>».xac SuaauyJtll<lit<lit* 2>ir<t>«essl.KlrfBd»11>klCf.;{X9a,MX,W入dnFo/、?他一NOT,8汽丸XtOOrXi6jv,S«rc««C»rS»v.»“rlnltx”isvF«nj”-[2»rrXi6jv,S«rc««C»rS»v.»“rlnltx”isvF«nj”-[2»r4cateatdc<fc0、•»,•0(».••*»•)♦LdA»«<-*i^w<.i.»«kv[y]fr»g»nM"»<>■ »)1丫]***”9/9•344CL0CKf)0«*rl_U>clt<uf*>回&,」》)Q••••.•» ,^(StWCCS 、■<««((Q*iac««*41>«.(«tosaan73“ta>MUQm卜““,.C**ityUt*«(1(*««•□Clztk»,&m_r«r>Pr»*«rt<1•««r*<»Bball*Fifr-T,"fgoaa,CAea5»I”,。ivw«rr(McaattICSkwIrrwaF'St«v(rnlimLSk«>CSb*—artL—— ;目(]OVr«rt!^tanuko@Td9wll•»4n»>J«图2-6操作示意DCM组件的例化选中my_dcm.xaw文件,则在工程的Processes窗口双击ViewHDLSource,在HDL编辑器中可以看到由ArchitectureWizard生成的DCM的VHDL源代码。此代码中包含了一个IBUFG、一个DCM和两个BUFG例化的组件。输入时钟CLKIN」N驱动IBUFG,输出的时钟与DCM相接,CLKFX_BUF和CLKO_BUF输出时钟驱动BUFG组件,所有的DCM属性使用VHDLgeneric语句传递;2)在工程的Sources窗口,双击uart_clock.vhd在HDL编辑器中打开源代码;3)在工程的Sources窗口,选择my_dcm.xaw,在Processes窗口双击ViewIIDLInstantiationTemplate在HDL编辑器中打开例化组件的模板。在HDL例化范本

my_dcm.vhi中,拷贝组件声明(从COMPONENTmy_dcm到ENDCOMPONENT)并粘贴到uartclock.vhd代码中的一InsertDCMcomponentdeclarationhere注释的下方;在uart_clock.vhd代码中的“一InsertDCMcomponentinstantiationhere”注释下方,添加如下对端口的名称映像完成对组件的例化:Instmydem:mydemPORTMAP(CLKINJN二>elk,CLKFX_OUT=>clk50MHz,CLKIN」BUFG__OUT=>open,CLKO_OUT=>open,LOCKED_OUT=>lockX.),5)在“-SignalsforDCM,asfollows:M注释的下方添加DCM的50MHz的信号声明:signalclk50MHz:stdlogic;6)在实体说明里添加lock输出管脚如下:entityuartclockisPort(tx:outstd_logic;rx:instd_logic;alarm:outstdlogic;elk:instd_logic;lock:outstdlogic);enduart_clock;7)保存后,my_dcm.xaw作为一个模块加入顶层设计文件中;图2-7操作示意(3)使用PACE进行管脚分配1)在工程的Sources窗口,选择顶层设计文件uartclock.vhd/.v,则在Processes窗口,扩展UserConstraints并双击AssignPackagePins打开PACE,在此过程中弹出询问是否添加UCF文件到工程中对话框,单击“yes”按钮。用VHDL做实验时,如果PACE没有自动跳出,可把lab2拷到根目录下再打开工程;注意:在PACE能启动之前必须先进行综合。2)在PACE中浏览DesignObjectList-I/OPins窗口,可看到所列的信号名称和信号方向是Output还是Input.在Loc栏里每个信号对应于FPGA的管脚,FPGA的管脚分配需查看光盘数据../O2.Schmatic目录下的原理图,信号连接如下:Clk:连接管脚BANK4,system_clock,Loc栏中填入AJ15;Lock:连接管脚BANK3,led_0,Loc栏中填入AC4;Alarm:连接BANK3,led_l,Loc栏中填入AC3;Rx::连接MAX3232的接收串行数据管脚BANK4,RS232_RX_DATA,Loc栏中填入AJ8;Tx:连接MAX3232的发送串行数据管脚BANK4,RS232_TX_DATA,Loc栏中填入AE7。图2-8操作示意3)保存后出现BusDelimiter对话框,选择XSTDefault,单击0K按钮。在DeviceArchitecture窗口放大直到可以看清每个管脚:

图2-9操作示意Alarm:连接BANK3,led_l:Rx:连接MAX3232的接收串行数据管脚BANK4,RS232RXDATA;Tx:连接MAX3232的发送串行数据管脚BANK4,RS232_TX_DATA。注意:图中粉红色彩条说明管脚在同一个bank中。单击每个蓝色I/O管脚,则对应着DesignObjectList-I/OPins窗口相应的管脚。4)保存后出现BusDelimiter对话框,选择XSTDefault,单击0K按钮。单击菜单栏中的File-Exit,退出PACE;单击工程中Sources窗口中的uart_clock.ucf文件,然后双击Prosesses窗口中UserConstraints目录下的EditConstraints(Text),就可以看到由PACE生成的uart_clock.ucf管脚约束文件;EXilinx-ISE-E:\lab2\arvz.pace,ise-[uart_clock,ucf]口EditViw l>n4svU«lpSovrcttfor Synthesis/lopl«nAPACE:StartofConstraintsgeneratedbyPACEr«x_p*c«c2vj>30-7ffB969品u*rt_clodt-B*h»vior«l(u«rt_cl«ckvhd)•kc>m3- (㈤pryjs-uel«dt•Ia»t_ay_do»••y.do*G»y_dex««)*恒EXilinx-ISE-E:\lab2\arvz.pace,ise-[uart_clock,ucf]口EditViw l>n4svU«lpSovrcttfor Synthesis/lopl«nAPACE:StartofConstraintsgeneratedbyPACEr«x_p*c«c2vj>30-7ffB969品u*rt_clodt-B*h»vior«l(u«rt_cl«ckvhd)•kc>m3- (㈤pryjs-uel«dt•Ia»t_ay_do»••y.do*G»y_dex««)*恒transmit•uwt_tx-■>«cro_l«vd_<lef>nitioa*pjr«ce»v«-u«rt_rx•■•cro_lev«l_defi>ut>on忖u«rt_clock.ucf(uert_clock.vcf)#PACE:ScareoxPACEI/OPinAssignmentsNETNETNETNETNET"alarm""elk""lock""rx"1"tx"1LOC--AC3cLOC""U15"'LOCLOC-LOC-“AT?”10*PACE:#PACE:StareofStartofPACEAreaConstraintsPACEProhitoicConstraints♦PACE:EndotConstraintsgeneratedbyPACE气Processes♦PACE:EndotConstraintsgeneratedbyPACE气ProcessesSowcts shots^LibrariesED,itaSuMtry ]u*rlelockpad.txtQwtcl«ckuefItwattmJ2TclSh«llFindinFiltsItwattmJ2TclSh«llFindinFilts图2-10操作示意(4)检查Pad报告并打开超级终端1)单击工程中的Sources窗口的uart_clock.vhd/v文件,然后打开Processes窗口中的ImplementDesign目录下的Place&Route目录,双击PadReport,当Place&Route完成后,PadReport在HDL编辑器中打开,可以看PadReport来确定I/O信号管脚约束是否与分配的管脚相匹配:2)在开始菜单一一所有程序一一附件一一通讯中单击超级终端,输入名字并单击0K按钮,选择C0M1作为端口连接,点击确定按钮后按照下图进行设定,最后点击确定按钮完成设定;图2T1操作示意每秒位数:9600;数据位:8;奇偶校验:无;停止位:1;数据流控制:无3)单击超级终端菜单中属性中的设置,单击ASCII设置,选中“将换行符附加到传入行末尾”并单击确定按钮。再次单击确定按钮退出属性对话框;图2-12操作示意(5)程序的下载并操作UART实时时钟

1)给板卡上电,打开SW11开关;2)单击工程的顶层文件uart_clock.vhd/v文件,然后双击Processes窗口中的GenerateProgrammingFile来生成此工程的Bitstream文件并下载到芯片中去;3)当这个过程完成后,打开GenerateProgrammingFile目录,双击ConfigureDevice(iMPACT),弹出iMPACT对话框后选择ConfigureDevicesusingBoundary-Scan(JTAG),然后单击Finish按钮;图2T3操作示意4)当等到弹出AssignNewConfigurationFile对话框后,前两个器件都选择bypass按钮,最后一个器件单击uart_clock.bit文件选择Open按钮,然后再点击0K按钮后弹出一个警告信息,单击0K按钮;图2T4操作示意5)在iMPACT窗口右键点击xc2Vp30,选择Program后弹出ProgrammingProperties窗口单击0K按钮,如果下载成功则出现ProgramSucceeded;

EXilinxXSEE:\lab2\ar*z_j*ace.ise-[BoundaryScan)图2-15操作示意6)在超级终端窗口则会看到KCPSM3》提示符如图:注意:这里超级终端是否显示成功不仅与下载是否成功有关,而且还与电脑的连接有关。如果COM1不行的话,可以试一下COM2o工,a,mi>si(i>qi9!i<rwi»'aD» 3Q31rKCPSM3>图2-16操作示意7)在KCPSM3〉提示符后输入“time”命令,则会以hh:mm:ss格式显示当前时钟;图2-17操作不意8)在命令提示符后输入“alarm”命令,则以hh:mm:ss形式显示当前警告时间,此时alarm是关闭的;KCPSK3>tine00:00:22KCPSIOaldru0O0ONRlarMOFFKCPSH3>_图2-18操作小意9)输入“alarmon”命令,则警告变成有效,然后输入“alarm00:00:30”设定警告时间为30秒,输入“time00:00:00”设定时间后,会看到板卡上的LED1灯会在30秒警告后熄灭。当你输入“alarmoff"命令后则关闭警告,LED1灯则再次亮起。实验课程名称:FPGA原理及应用实验项目名称全局时序约束实验实验成绩实验者梁飞专业班级通信1303组别18同组者实验日期全局时序约束实验1实验目的1)学习使用约束编辑器(ConstraintsEditor)设置全局时序约束;2)学习分析映像后的静态时序报告来检验时序约束的实现;3)学习分析布局布线后静态时序报告来确认实际的设计效果。1.2实验内容通过设置全局时序约束来提高系统时钟频率,用映像后的静态时序报告和布线布局后的静态时序报告来分析设计的性能。1.3实验准备(1)将光盘下03.ExamplesofProgram实验程序目录下的01.ISE9.1文件夹拷贝到E:盘根目录下;(2)将USB下载电缆与计算机及XUPV2Pro板的J8连接好;(3)将RS232串口线一端与计算机连接好,另一端与板卡的J11相连接;(4)启动计算机后,将XUPV2Pro板的电源开关SW11打开到0N上。观察XUPV2Pro板上的+2.5V,+3.3V,+1.5V的电源指示灯是否均亮,若有不亮的,请断开电源,检查电源。1.4实验步骤(1)编译范本中的汇编1)选择Start-Programs—•XilinxISE9.li-ProjectNavigator,进入ISE的ProjectNavigator环境;2)选择File—OpenProject,并指向如下目录,选择timeconst.ise打开工程:Verilog使用者:E:\01.ISE9.I\xupv2pro\labs\verilog\lab3\time_constVHDL使用者:E:\01.ISE9.I\xupv2pro\labs\vhdl\lab3\timeconst3)选择StartPrograms-*Accessories~CommandPrompt.打开命令提示符,并使用cd命令指向如下的汇编编译器的目录下,如图所示。E:〉cdE:\01.ISE9.l\xupv2pro\labs\vhdl\lab3\Assembler

图3-2操作示意输入》kcpsm3program.psm命令,执行完后的结果如图所示。图3-3操作示意4)执行完命令后,会看到在Assembler下生成了一些文件,其中包括VHDL(program,vhd)和Verilog(program,v),这就是汇编编译系统将编写的汇编源文件program.psm自动生成了用于程序内存的VHDL/Verilog格式文件,来用于综合和仿真。将生成的program.vhd/v文件添加到工程中;

5)单击工程Sources窗口中的顶层文件loopback.vhd,然后双击Processes窗口中的Synthesis-XST目录下的"CheckSyntax”,检验添加的文件是否有语法错误。(2)输入全局时钟约束1)单击工程Sources窗口中的顶层文件loopback.vhd,然后双击Processes窗口中的UserConstraints目录下的CreateTimingConstraints;Processeoces口□£>>sfor:loopbackoces口□£>>ViewDesigxtSummaryDesignUtilitiesUserConstraintsCreateTimingConstraintsQTjAssignPackagePinsCreateAreaConstraints国EditConstraints(Text)P)[\Synthesize-XST图3-4操作示意2)本工程若没有UCF文件,则弹出提示对话框,单击Yes按钮,将自动生成UCF文件为loopback.ucf,并添加到工程中;图3-5操作示意3)当打开约束编辑器时,选中“Globle”全局约束窗口:BE®ClockN«tK*neelkPeriodClocktoPadCoastrunts(r.admt.)BE®ClockN«tK*neelkPeriodClocktoPadCoastrunts(r.admt.)XilinxConstraintsEditor-[Globalloopback.ngd/loopback.ucf]塔EditVi”Yindtm 二IIB区■□Hx仪Rtr,、?图3-6操作示意4)双击Period列下的单元格,弹出ClockPeriod对话框,可以设置Period约束。如图输入10ns,单击0K按钮;Coament:Units:nsInputTi»eCoament:Units:nsInputTi»e:0TS-clkClockNetNameelk图3-7操作示意0K按钮,完成输入延5)双击PadtoSetup列下的单元格,弹出对话框并输入6ns,单击

迟(OFFSETIN)0K按钮,完成输入延图3-8操作示意6)点击ClocktoPad列下的单元格,弹出对话框并输入7.5ns,单击0K按钮,完成输出延迟约束设置:图3-9操作示意7)选择File-Save保存,然后选择Exit退出约束编辑器。图3-10操作示意(3)输入引脚位置约束大部分的FPGA在设计完成前就进行了引脚分配。在这个实验中,通过UCF文件手动输入来分配输入/输出引脚的位置,也可以采用实验二中使用PACE进行引脚位置分配。区域约束的主要目的是关联耦合逻辑,减少后续布线压力;其次是加大资源利用率,距离近的信号延迟不一定就小,信号线上延迟主要是来自线与线之间的转接(如LUT,switch-box).由于FPGA内部连接的结构是横纵两向的,斜向的连接延迟会大于横纵方向上最大跨度连接。所以,在做位置约束时尽量避免斜向;而区域约束要宽松,如果没有资源上的顾虑,约束面积建议为所需的3倍以上。需要注意的是,区域约束对时序的改善贡献很小,紧的约束甚至有恶化时序的可能。通过PACE软件,可将设计中的所有逻辑资源,包括全局时钟缓冲器、硬核乘加器、块RAM、硬核处理器、高速收发器以及数字时钟管理模块等模块放入器件架构(DeviceArchitecture)的任何位置。1)单击工程Sources窗口中的顶层文件loopback.vhd,然后双击Processes窗口中的UserConstraints目录下的EditTimingConstraints(Text).打开loopback,ucf文件;2)打开XUPVirtex-IIPro使用手册,关于设置10引脚位置如下表所示。表3-110引脚位置图PinNameDirectionWidthXUPBoardconnectionelkInput1bit100MHzclockoscillatorrstInput1bitUsecenterpushbuttonswitchesInput4bits8Slideswitches(usefirstfour)rs232_rxInput1bitRS-232serialreceiveLEDsOutput4bits4LEDsrs232_txOutput1bitRS-232serialtransmit引脚位置约束语法如下:信号:NET"alarm"LOC="K12";总线:NET*led<0>*LOC=P12;NET*led<l>*LOC=P13;按照表中的位置及语法格式进行引脚分配,在loopback.ucf文件的"#PACE:StartofPACEI/OPinAssignmentsw注释下方输入以下引脚分配内容,输入完后保存loopback,ucf文件。若找不到"#PACE:StartofPACEI/OPinAssignments"注释,直接添加需要添加的内容即可。

NET"elk"LOC="AJ15” ;NET〃leds<0>"LOC="AC4" ;NET〃leds〈l》”LOC="AC3" ;NET*leds<2>*LOC="AA6" ;NET"leds<3>"LOC="AA5" ;NET〃rs232_rx”LOC="AJ8"NET"rs232_tx”LOC="AE7"NET〃rst”LOC="AG5"NET“switches”>”LOC=*AcirNET“switches〈l>”LOC="ADU"NET“switches。)”LOC="AF8"NET*switches<3>*LOC="AF9”(4)实现设计并进行时序分析执行此步骤是通过映像实现设计来生成映像后时序报告,在时序分析器(TimingAnalyzer)中打开此报告。通过此报告可以验证时序约束是否实现,以此避免浪费布局布线的时间。1)单击工程的Sources窗口中的顶层文件loopback,vhd文件,展开Processes窗口中的ImplementDesign,然后再展开Map目录下的GeneratePost-MapStaticTiming,右键单击AnalyzePost-MapStaticTiming(TimingAnalyzer)并选择RerunAll;2)单击"AnalyzeAgainstTimingConstraints"按钮,映像如下表。表3-2映像表Chart1PERIODconstraint(DCMclock)OFFSETINconstraintOFFSETOUTconstraintConstraint20ns6ns7.5nsPost-Map〜5.3ns〜2.7ns〜2.19ns引脚位置约束语法如下:信号:NET"alarm"LOC="K12";总线:NET“led<0〉”LOC=P12;NET"led<l>"LOC=P13;按照表中的位置及语法格式进行引脚分配,在loopback.ucf文件的“#PACE:StartofPACEI/OPinAssignments”注释下方输入以下引脚分配内容,输入完后保存loopback,ucf文件。NET"elk"LOC="AJ15"NET*leds<0>*LOC:="AC4"NET*leds<lZLOC:="AC3"NET〃leds<2>"LOC:="AA6"NET"leds<3>"LOC:="AA5"NET〃rs232_rx”LOC="AJ8"NET“rs232_tx”LOC="AE7”NET〃,“rstLOC="AG5"NET*switches<O>JLOC="AC113)在时序报告窗口中可以看到时序约束报告,分析每个时序路径约束注意线网延迟后;4)“e”代表评估。实际的线网延迟是在布局布线后计算出来的;DataPath:nyproQram/ram1G24x18.Ato“jkcpsm3/pcloop[9].reqisterbitDelaytype Delay(ns)LogicalResource(s)Tbcko1.401叫proqran/ram1024x18.Anet(Fanout=23)e0.100i.nstnjcti.on<15>TopcuF0.671叫kcpsm3/pcloopf01.uectorselectnuxmukcpsm3/pcloop[0].pcIsbcarru.pcuectormuxcumukcpsm3/pcloopf11.pcmidcarru.pcuectorruxcunet(Fanout»1)e0.100叫kcpsn3/pcuectorcarru<1>Tbup0.073nukcpsm3/pcloopf2].pcmidcarry.pcuectormuxcumukcpsm3/pcloop[3].pcmidcarru.pcuectormuxcunet(fanouta1)e0.100叫kcpsm3/pcuectorcarru<3>Tbup0.073叫kcpsm3/pcloopTM].pcmidcarru.pcuectormuxcumukcpsm3/pcloop⑸.pcmidcarry.pcuectormuxcunet(Fanout»1)e0.100mukcpsm3/pcuectorcarru<5>Tcinx0.626mukcpsm3/pcloopTd].pcmidcarru.pcuectorxornet(Fanout=1)e0.100叫kcpsn3/incpcvector<6>TopcuF0.671叫kcpsn3/pcloop[6].ualueselectmuxmukcpsn3/pcloop[6].pcmidcarru.pcualuemuxcu叫kcpsm3/pcloop[7].pcmidcarru.pcualuemuxcunet(Fanout*!)e0.100mukcpsm3/pcualuecarru<7>Tciny0.728叫kcpsm3/pcloopfS].pcmidcarru.pcualuenuxcu5)退出时序分析器后,在Processes窗口,展开Place&Route目录下的GeneratePost-Place&RouteStaticTiming,双击AnalyzePost-Place&RouteStaticTiming(TimingAnalyzer),并完成下表,与上表进行比较;

Chart2PERIODconstraint(DCMclock)OFFSETINconstraintOFFSETOUTconstraintConstraint20ns6ns7.5nsPost-PAR〜7.6ns〜4.9ns〜2.15ns6)分析每个时序路径约束,注意真实的线网延迟已经被计算出来。luensandiyzeaMinimumperiodishdiningerrorsaeneccea.(usetuperrorsv6.941ns.unoiaerrors)(Slack:Source:Destination:Requirement:DataPathDelay:ClockPathSkew:SourceClock:DestinationClock:ClockUncertainty:13.059ns(requirement-(datapath-clockpathskew♦uncertainty))Droqran/rapi102,x18.A(RAM)inport2(FF)20.000ns6.934ns(LeuelsofLogic-5)-0.807nsclkSOMHzrisingat0.000nsclkSOMHzrisingat20.000ns0.000nsDataPath:叫proqram/ram1024x18.Atoinport2DelaytypeDelay(ns)LogicalResource(s)Tbcko1.401叫proqram/ram1024x18.Anet(Fanout-11)Tilo1.3140.2SUinstniction”》叫kcpsn3/reqloopf6].registerbit/DPnet(Fanout-2)Tilo0.7790.254rajkci>sii3/su<6>inportandOOOOSWOnet(Fanout-1)Tilo0.6080.275N46inportandOOOOnet(fanout=3)0.329inportandOOOOTilo0.275inportnux0002<1>21(5)生成软件并进行HDL仿真1)打开本实验的Assembler文件包内的program.psm文件,此汇编范本的汇编代码含有三部分:

:Actualassemblyprogramgoeshere...cold_start: LOAD sO,all_clear :zerooutregsO:LABTASK#2;Writecodetooutputashort(10characters;orless)messagetotheserialport.loop: LOAD sO,all-clear :zerooutregsO(nop):LABTASK#1:Writecodetoreadtheswitchstateand;thenwriteittotheLEDcontrolport.rs232_echo: LOAD sO,all_clear :zerooutregsO(nop):LABTASK#3;Writecodetocheckifabytehasbeen:receivedbytheuart.Ifso,writeit:backtotheuarttransmitport.Ifnot|;don'tdoanythingandjust...JUMP loop :loopagain2)在汇编范本Task#1部分中,添加如下汇编语句,编写完后,则要重新用汇编编译系统把编写的汇编源文件program,psm自动生成用于程序内存的VHDL/Verilog格式文件。在汇编范本涉及到的端口值的常量,参考PicoBlaze的指南,而代码的编写参考KCPSM3的使用手册;INPUTsi,switch_in;readvalueofswitchesOUTPUTsi,leds_out ;writevalueofsOtoLEDs3)在工程中选择Project下拉菜单中的AddSourc,选择lab3目录下的testbench.vhd文件(testbench主要是为了对电路进行仿真验证,测试设计电路的功能,部分性能是否与与其的目标相符),此文件为测试激励文件,仿真结果波形如下。图3-11仿真结果实验课程名称:FPGA原理及应用实验项目名称综合技术实验实验成绩实验者梁飞专业班级通信1303组别18同组者实验日期综合技术实验1实验目的(1)学习使用保留层次和扇出综合这些选择来提高调试和综合结果;(2)学习读取XST软件的综合报告来确认综合结果质量。1.2实验内容(1)修改XST综合选项:(2)分析综合报告。1.3实验准备(1)将光盘下03.ExamplesofProgram实验程序目录下的01.ISE9.1文件夹拷贝到E:盘根目录下;(2)将USB下载电缆与计算机及XUPV2Pro板的J8连接好:(3)将RS232串口线一端与计算机连接好,另一端与板卡的J11相连接;(4)启动计算机后,将XUPV2Pro板的电源开关SW11打开到0N上。观察XUPV2Pro板上的+2.5V,+3.3V,+1.5V的电源指示灯是否均亮,若有不亮的,请断开电源,检查电源;(5)打开超级终端。1.4实验步骤(1)浏览设计并生成软件1)选择Start-Programs—•XilinxISE9.li-ProjectNavigator,进入ISE的ProjectNavigator环境;2)选择File—OpenProject,并指向如下目录,选择synthlab.ise打开工程;Verilog使用者:E:\01.ISE9.I\xupv2pro\labs\verilog\lab4\synth_labVHDL使用者:E:\01.ISE9.I\xupv2pro\labs\vhdl\lab4\synth_lab3)用文件编辑器打开在lab4目录下的Assembler文件包中的program.psm,在此汇编范本的task#2部分添加如下代码:coldstart: LOADs0,allclear;zerooutregsO;LABTASK#2;Writecodetooutputashort(10characters;orless)messagetotheserialport.LOADsO,ascii_XOUTPUTsO,uartdatatxLOADsO,ascii_iOUTPUTsO,uart_data_txLOADsO,ascii_lOUTPUTsO,uart_data_txLOADsO,ascii_iOUTPUTsO,uart_data_txLOADsO,ascii_nOUTPUTsO,uart_data_txLOADsO,ascii_xOUTPUTsO,uart__data_txLOADsO,ascii_SPACEOUTPUTsO,uart_data_txLOADsO,ascii_ROUTPUTsO,uart_data_txLOADsO,ascii_uOUTPUTsO,uart_data_txLOADsO,ascii_lOUTPUTsO,uart_data_txLOADsO,ascii_eOUTPUTsO,uart_data_txLOADsO,asciisOUTPUTsO,uartdata_txLOADsO,ascii_EXCLAIMOUTPUTsO,uart_data_txLOADsO,ascii_CROUTPUTsO,uart_data_tx4)在开始菜单中的所有程序的附件,点击命令提示符,下,输入〉kcpsm3program.psm,命令如图5-49ocd命令指向汇编编译器的目录cdE:\01.ISE9.l\labs\verilog\lab4\Assembler回命令提示符picbosoftWindowsXP[版本5.1.2600]<C>版权所有1985-2001MicrosoftCorp.C:\DocunentsandSettings^dninisti*ator>e:E:\>cd01.ISE9.l\xupu2pi*o\labs\uhdl\lab4\Assemblei*,图4T操作示意5)汇编编译系统把编写的汇编源文件program,psm自动生成的用于程序内存的VHDL/Verilog格式文件program,vhd/v添加到工程中。(2)默认选项进行综合和实现1)在工程的Sources窗口单击顶层文件loopback,vhd/v文件,双击Processes窗口中的Synthesize-XST进行综合;ise-[SynthesisReport]2)综合完成后,双击ViewSynthesisReport,在此报告中会看到"TimingSummaryv,时钟频率评估值为395.749MHz,(注意这些结果会因为每个PC系统的不同而不一样);ise-[SynthesisReport]•ssfindow厂国小电百①bTimingDetail:Allvaluesdisplayedinnanoseconds(ns)Timingconstraint

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论