武汉理工大学fpga原理及应用实验报告书.docx
序号(学号):0121309340728忒揉理7人孚实验报告书实验类别FPGA原理及应用学院信息工程学院专业通信工程班级通信1303姓名'处指导教师张家亮实验课程名称:FPGA原理及应用实验项目名称ISE应用基础实验实验成绩梁飞专业班级通信1303组 别实验日期实验者同组者18ISE应用基础实验1.1实验目的(1)熟悉ISE9.1开发环境,掌握工程的生成方法;(2)熟悉SEED-XDTK XUPV2Pro实验与仿真设计的环境;(3)了解PicoBlaze 8-bit嵌入式微控制器特点。1.2实验内容(1)创建工程:(2)添加HDL资源文件;(3)配置一个应用程序完成设计;(4)设计的仿真及实现。1.3实验准备(1)将光盘下03. Examples of Program实验程序目录下的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)双击桌面Xilinx ISE9.1快捷方式打开ISE工程管理器(Project Navi gator)»2)打开Project Navigator后,选择File f New Project ,弹出新建工程对话框;uiiSgI>iiM - ISI - B:OI. LSK9. lxa*v?9ralBba*ar>lo(lBl»4«ynth_lal>. iaa - Lkcp»3. vj,1,1 4 'U 七 Xri»e«c»le 1 ps / lpIIIIIIIIIIIIIIIIHlIllt'/Fr*e«i*«i for l««pb«ckA44 Ianti»c S«wc« Cr««t« Vm S«vc« Tiw *”g SvwaryVt«rSp>tlw*i t« - XST *«1<»Upda<»vi<X FraModule kcpsnd( ddrcss, inatructioBf ",_& 画 ««rt_tK (« * Qr««i»« " <Mrt_xi (tu aef Q««*b*c3且02 PPXX J»团入金Rn s gmaynil>_l*bn Q>c2vp»-?f09B-d»«0»ck «)vj»y_k<yia3- kcpw)*$Svorc*sPr。”rjrps -图1-2 ISE工程管理器3)在工程路径中单击“”按钮,将工程指定到如下目录,单击确定。Verilog 使用者:E:01. ISE9. Ixupv2pro labs veriloglablVHDL 使用者:E:01. ISE9. Ixupv2pro labsvhdllabl4)在工程名称中输入Flowab,点击Next按钮,弹出器件特性对话框。器件族类型(Device Family)选择“Virtex2P",器件型号(Device)选“XC2Vp30 ff896-7”,综合工具(Synthesis Tool)选“XST (VHDL/Verilog) w ,仿真器(Simulator)选"ISE Simulator",如图所示。Product C«t«co>'y回因Enable Enhanced Design SumnaryDisplay Incremental Hessazes回口口FwilyVirtexZPD«vi c«XC2VP30V-P*ck«<«FF896rSpeedTop-L«vel Source Type Synthasis Tool Simulator Pr«f«rr«d Lan(u«c«HDLXST (VHDL/V.riloc)ISE Siaulator (VMDL/Veriloc)V»O)Lvalue m""""Select the Device and Desien Flow for the Project图1-3特性对话框5)单击Next按钮,弹出创建新资源(Create New Soure)对话框,可以使用这个对话框来创建新的HDL资源文件,或者也可以创建工程后,新建HDL资源文件;图1-4创建新资源对话框6)单击Next按钮,弹出添加存在资源对话框:图1-5添加存在资源对话框(2)添加HDL资源文件1)点击 Add Source 按钮,指向 E:01. ISE9.1KCPSM3VHDL (Verilog)活页夹下,选择kcpsm3_int_test 和 kcpsm3文件,单击 Open 按钮;图1-6操作示意2)单击Next按钮,弹出工程信息后单击Finish按钮;C Xiluui - ISE - E:01. ISE9. lxupv2pcol&bsverilo(Flov_labFlov_lab.iseEil. Edit Pojtct $&wc« frocttt l:ndo* H«lp口3392QMN廖囱区|塾目m dSovretiProctttesProcesses for xc2vpX_7ffB96 Add Extstinf Source n Create Nev Source» D«si(a Utilities图上7操作示意A£ FPGA Design SunnaryProcesses for: kcpsi»3_int_t«stSowc«s for Synth«sulilXll*n*nt«tionDesign Ov«rvi«v pjSwmary QlOB Properties IjTmiing Constraints IjPinoul Report QClock RportErrors and WarningsQSynth«sis Messages jTrmxl»tion M«isac«xQW»p M«ssa(«sQPiece and Route iessaces - QTiming MessagesQBitgen Messages All Current MessagesProject File:od«le laae.kcps»3_int_testFro40ct Version'Flow_Jab. ixc2vp30-7ff896ISE 9.liFLOf_LAB PartiMo partition infom*tioa *s found.BetaileiAdd Ex>stin Source Cr««t« Nw Sourct View Design Sunmary Design Utilities User Constraintsi D«tail«d Reports口Synthesis ReportSynthesis ReportStatasGeneraSynthasi c« - XST Iapl«n«nt D<st cnProject Prop«rti«s0 Enable Enhanced Design Swwnary口 EnableFiltering口 Display Incremental MesssagesEnh«nc«d Design Swmary Contents0 Show Partition DataI ITranslation ReportNap ReportPland Rout* KeportStatic Timing Report3)单击OK按钮,资源文件添加完成如图;图8资源文件添加完成注意:在工程中你会看到一个int_test模块出现红色问号,这是工程中缺少资源文件的标记,在下一步将会解决此问题。(3)配置一个应用程序完成设计1)打开E:01. ISE9.1KCPSM3目录下的Assembler文件夹。注意KCPSM3. exe汇编编译系统执行文件和ROM_form模板文件与两个PSM例子文件必须在这个目录下。紧记汇编编译器生成的用于程序内存的VHDL/Verilog文件会在这个目录下; Asseabler文件 Atsil)查看收藏& TAd)帮助鱼)患.团。后退,j7/造外快区?地址 S).0 r01 ISM 八 HPS»3A”M>bl"y £)铸到文件和文件天任务J管健一个新文件夹J啮这个文件夹发布到Yeb口共享缸文件夹*1 gjiirTEsr coz IIIT.TIST DEC IIIT.nST FWI I IIT.TEST KEI IIT_nST LOG IglJT.TZST M其它位置ftir_nsr VBjlMT.TEST VKDtTOC” VW图1-9程序内存的VHDL/Verilog文件所在目录2)用文件编辑器打开int_test.psm文件,浏览一下代码,此档就是设计者编写和输入的源文件;3)在开始菜单中的所有程序的附件,点击命令提示符,使用cd命令指向汇编编译器的目录下,输入kcpsm3 int test, psm命令;t命令提示符Microsoft Windows XP 1版本5.1.2600J<C>版权所有1985-2001 Microsoft Corp.p:Document* and Sett IngsAdmin istFator>e:>cd E:01. ISE9.1KCPSH3Assenbler£:. ISE9.lKCPSM3M)ssenbler»<cpsm3 int_test .psn图1-10操作DOS命令示意4 )执行完命令后,会看到在Assembler 下生成了一些文件,其中包括VHDL (int_test. vhd)和 Verilog (int_test. v),这就是汇编编译系统把编写的汇编源文件int_test. psm自动生成用于程序内存的VHDL/Verilog格式文件,以用于综合和仿真。5 )在 ISE Project Navigator,点击 ProjectAdd Copy of Source,指向 E:01. ISE9. lKCPSM3Assembler 目录下的 int test. vhd 或者 int_test. v 文件;Add Copies of Existing Sources图1-11操作示意单击打开后如图;图1-12操作示意点击0K后,则将int_test. vhd或者int_test. v文件添加到工程里,解决了出现红色问号的问题;Xilinx - ISE - E:01. ISE9.lxupv2prolabsverilogFlow_labEdit View Project Source process Jindo« Help口同目以 X A/团因电臼m Q 0yjproctsior - kcpxm3 Qccpsa3. v) vprogram - int_test dMT_TEST V)毛 SourcesSnapshots 的 Librari”E ”GA Design Summary 日 D«sign Overview pjSumnxry QlOB Properties Qliminj Constraints |jPinout Report QClock Report 日 Errors tnd ftrrungsQSynthesis Messages 门Translation Messages Q ffltp MessagesQPlace and Route Messages 口Timing M«ss<c«s nBi tgen Messages图1-13操作示意(4)设计的仿真1)如前所述,在 ISE Project Navigator 点击 ProjectAdd Copy of Source,指向 E:01. ISE9. lKCPSM3vhdl (或者 verilog)目录,选择 test bench, vhd (或者 testbench, v)文件,点击打开;图1-14操作示意2)选择 Simulation Only,点击 OK,则将测试范本(Testbench) test_bench. vhd/ v 文件添加到工程里;Q Xilinx - ISE - E:01. ISE9. lxupv2prolabsverilogFlov_lab'工 Rile Rdit View Project Source process Yindow Help口同目.尸月岚A雪国b mo-©©图1-15操作示意3)单击 Sourcese 窗口中的 testbench,则在 Processes 窗口中显示 Xilinx ISESimulator 工具栏,扩展开后,右键单击Simulator Behavioral Model ,选择Properties,对 Simulation Run Time 输入10000ns,单击 OK 按钮;Process PropertiesISE Sinulator PropertiesPr«>erty Baa*Use Custom Siaul«ti on Conoiand Pile Custom Sii*ul«tion Conan*ad Fil* Increment*! Compilation Cowpila for KDL Debugs1&C Use Custom Coapil* Fil* List Custom Conpile Fil* Li st Run for Sp«cifi«d Tint* Siaulation Rua Tia(Store All Si0*l Transitions Duria( Siaulktion 1VHDL Proptrtitsproperty displ«y: Advanc«d vV«lu« Rane* Check图1-16操作示意4)双击Processes窗口中的Simulate Behavioral Model对设计进行仿真,在右方窗口弹出仿真结果的波形;IThis 18 Full version of ISE Slnulator. SiMilacor is doing ciccuie Initialization process. TiDlsbed ciccuit iaitializatlOD pcocess.*图1-17仿真及结果示意(5)设计的实现1)在工程的Sources窗口,Sources for 选择 Synthesis/Implementation,并单击工程的顶层文件 kcpsm3_int_test. vhd/v;E Xilinx - ISE - E:01. ISES.1xupv2prolabsverilogMEditVi tw Project Source Process Window Help£ FPGA D«sign Swnmq i-i DesiOverview7) SummaryO工OB Propert 7) Timing Cons Q Pinout Repc 7|Clock Repot i-i Errors and WarninQSynthesis V U Tr ansl&ti oi 目 Map Message Q Plact and F y| Timing M«si Bitgen Mess图1-18操作示意改I £dit Yiroctss Window Help2)在工程的资源操作窗(Processes),双击Implement Design;口今冒印' J3PXX J®00:% B m 0: o©,ourc”Sources for: Synthesis/lBple*ent*tionV®Flow_l»bS axc2vp30-7ff896H vCjQkcpsB3_int_t«st QccpsB3_int_test. v) 0Processor - kcps»3 Qccpsm3. v) 回procrMi -QMT_TBST V)Processesi Generat. ProgrMM»in< Fil* Upd*t« BitstrcMi vi th Processor Data ,* Analyze Design Usin Chipscope工 FPGA D«si«n Swum try6 Design Overview0 SummaryQlOB Prop«rti«s' I-Timing Constraints- 口Pinout ReportQClock Report6 Errors and Warnings QSynthesis Messages Qlrtnil*t>on M«ts«4«s- QMap MessagesnPlace and Route Messages口Tiein,QBi tgen Messagesp) All Current lessees国 D«t«il«d Report*QSynthesis Reportv*roj«ct Properties叼 Entbl* Enhutctd D.ncn Sqm try Enable Message Filtering Display Incremental Hesssaes!nh*nc«d D”i(n SiMMary Cont«nts Show Partition Data Show ErrorsLJ Show Warninfs Show Failing Constraints Show Clock ReportProject File:lodule laae :Tar«t Devi ce:Product Versi on:No partition iiReport laaeSynthaii s ReportTranslation ReportMap ReportPlace and Routt ReportStatic Tinting ReportRi tvan图1-19操作示意3)当实现设计(Implement Design)运行的过程中,展开实现(Implement Design)的步骤,会看到实现过程中,首先是进行综合(Synthesis),然后才依次完成实现的步骤。当完成相关操作后,在每个操作步骤前会显示一个小图标,表示该步骤的完成情况。对于本设计,在一些操作步骤前显示的是叹号,这些警告是可以忽略的。上图的示意如下:令对号表示该操作步骤成功完成:。叹号表示该操作步骤虽完成但有警告信息;。叉号表示该操作步骤因错误而未完成。4)当完成这些操作步骤后,生成相应的操作报告供查看。实现操作完成后,再看designutilization 的 Design Summary 窗口;LolabsverilogFlo>_labFloT_lab. ise -Design SuBaaryEE®v HelpQ®IE£ FPGA Design Sum aryAFLOV_ULBPreject StatvsAfa D<sign Ov«rvi«w y Sun* ary p)IOB Propcrti>yjTiminc ConstraintsPinout Report QClock R«port rors and Yarmn<s pSynthasis N«ss«c«s Translation Messagesfroject File:Plow_lab. iseCvrrent State:Placed and Routedaae :kcpsa)3_int_t«st Irrers:Mo Errors匕&T*rf«tBevi ce:xc2vp»-7f£896346 IfuniMt,FrodvctV*rsi«B:IS19.11 V>d«te4:星期四十一月62101:412008团Map MessagesQPlace and Bout*FLOI-LMParti ti «n Sum ary(yJTimin Messages jBitgea less<c«sMo partitioninfori*&tion was found.| m current n«ss«g«s 二 Detul«d ReportsQSynihtsis B«port eviee Vtilizatitn SuaaaryVLegic Vtilizati*UsedAvailableUtilizationote(s) ,一”一”rrojact Proparti1H Enable Enhanced Desi gn SwiaaryLJ Display Increaental Messs&es Enhanced D«si(n Swwnary ContantsNumber of Slice Flip Flops7627,392IXVunbar of 4 LUTsinput10727,392IXH Show Partition Data 口 Show ErrorsL»eic Bi stri¥uti oa口 Show Warnings口 Show Failing ConstraintsKvnbtr of oc Slicescupi «d9913,6961%Munbtr of Slices containing only related lo(ic9999100%7工 Design Stain>u-y实验课程名称:FPGA原理及应用实验项目名称Architecture Wizard 与 PACE 实验实验成绩实验者梁飞专业班级通信1303组别18同组者实验日期Architecture Wizard 与 PACE 实验L1实验目的(1)熟悉并使用 Architecture Wizard;(2)掌握如何例化DCM模块单元;(3)熟悉并使用PACEo1.2实验内容(1)使用 Architecture Wizard 生成 DCM 模块单元;(2)将例化DCM模块单元添加到工程;(3)使用PACE进行引脚位置锁定。1.3实验准备(1)将光盘下03. Examples of Program实验程序目录下的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)使用Architecture Wizard生成DCM模块单元1)选择 Start f Programs f Xilinx ISE 9. li Project Navigator,进入 ISE 的 Project Navigator 环境;2)选择File Open Project,并指向如下目录,选择arwz_pace. ise打开工程; Verilog 使用者:E:01. ISE9. Ixupv2pro labs veriloglab 2arwz_paceVHDL 使用者:E:01. ISE9. Ixupv2pro labs vhdllab 2arwz_pace3)双击Processes 窗口中的Creat New Source,弹出新资源向导窗口,选择IP (CoreGen & Architecture Wizard),输入 my_dcm;图2-1操作示意4)单击 Next 按钮,弹出 Select IP 窗口,展开 FPGA Features and Design 和 Clocking 目录,选择 Single DCM;图2-2操作示意5)单击Next按钮,显示新建资源信息,单击Finish按钮则弹出Xilinx Clocking Wizard-General Setup 窗口,选中 CLKO、CLKFX 和 LOCKED,不选中 RST,输入时钟频率为100MHz* Xilinx Clocking Vizard - Genetal Setup oc口口-0口 口-0dock ".quncyCLKIN Source© IxtcmalO Ateraal Sin(l*O Di ££<r«ati«lDivide By Value|2 T叵 Us« Dut£ Cjrcl* CorrectionPh”. Sh> ft Tye*. NOH V«13«: iF««dbkck Sowc* O Sincle DifferentialFeedback Valu*© u &也In£o | dv*ac«d图2-3操作示意6)单击 Next 按钮,弹出 Xilinx Clocking Wizard - Clock Buffers 窗口,保持默 认选项;< g*ck 昼*t > j j Cancel图2-4操作示意7)单击 Next 按钮,弹出 Xilinx Clocking Wizard - Clocking Frequency Synthesizer 窗口,输入50MHz输出频率;a Xilinx Clockinc Vizard - Clock Frequency SynthesizerValid R*ng for Sp4 Gr»4a -7Ifs Bad*Via (BMz)r««t (BMi)Lm1.000-240.00024.000-240000Mich50000-320000210000-320000Inputs far Jitter C*leulattMi* lapvt Clock Fr«qu«acy 100 MHr (*)(> output fr«i«ncy.|时 O a*。U|« Rui11ply (JI) and Divida G) valuas H二 ID 口:CaleltG«nrl4 Ovtpvt且0二“1晨;,< Rack Cue>1图2-5操作示意8)单击Next按钮,显示新建资源信息。单击Finish按钮则在工程的Sources窗口看到my dem. xaw作为资源添加到工程中,但没有作为一个模块加入顶层设计文件中,则需要下一步的例化过程;E Xilim ISE - E;OI. t£EX Kn9Vc|>tDlab3*ctilecl«bcacvz_pa>».xacSuaauyJtll< lit < lit*2>ir:< t>«ess l.Klrf Bd»11> kl Cf .; X 9 a,MX,W 入 d n F o /、?他一 NOT,8汽丸Xt OOr wh Xi 6 j v , S«rc«« C»r S»v.»“r,lnl,tx”is vF«n,j”-2»r 4ca teat dc<fc 0 、»,0 (».* ») LdA»«<-*i(w<.i.»«k v yfr»g»nM " »<>;»)1丫*”9/9 34 4CL0CK f) 0 «*rl_U>clt <uf XmmO*> 回&»,) Q.»,(StWCCSSm9*KoI >、6 gr m<««(Q*iac« «*4 1>«.(« tosaan73“ ta>MUQm 卜 “,.QTib.m C*ityUt*« Q?>4(«u 1(*«« Clztk »,,&m_r«r> Pr»*«rt <1««r*<» B ball* Fif r-T," fgoaa,C Aea5»I”,。ivw«rr (McaattIC Skw IrrwaF' St«v,(rnlimL Sk«> C Sb* artL;目(»« OVr«rt !tanuko Td 9wll »4 n »>J«图2-6操作示意(2) DCM组件的例化1) 选中my_dcm. xaw文件,则在工程的Processes窗口双击View HDL Source,在 HDL编辑器中可以看到由Architecture Wizard生成的DCM的VHDL源代码。此代码中包含了一个IBUFG、一个DCM 和两个BUFG 例化的组件。输入时钟CLKINN驱动IBUFG,输出的时钟与DCM相接,CLKFX_BUF和CLKO_BUF输出时钟驱动BUFG组件,所有的DCM属性使用VHDL generic语句传递;2)在工程的Sources窗口,双击uart_clock. vhd在HDL编辑器中打开源代码;3)在工程的 Sources 窗口,选择 my_dcm. xaw,在 Processes 窗口双击 View IIDL Instantiation Template在HDL编辑器中打开例化组件的模板。在HDL例化范本my_dcm. vhi 中,拷贝组件声明(从 COMPONENT my_dcm 到 END COMPONENT)并粘贴到 uart clock. vhd 代码中的一Insert DCM component declaration here 注释的下方;4) 在 uart_clock. vhd 代码中的“一Insert DCM component instantiation here”注释下方,添加如下对端口的名称映像完成对组件的例化:Inst my dem: my dem PORT MAP(CLKINJN二elk,CLKFX_OUT=>clk50MHz,CLKINBUFG_OUT=> open,CLKO_OUT=>open,LOCKED_OUT => lockX .),5)在“-Signals forDCM,as follows: M注释的下方添加DCM的50MHz的信号声明:signal clk50MHz : stdlogic;6)在实体说明里添加lock输出管脚如下:entity uartclock isPort (tx : out std_logic;rx : in std_logic;alarm : out stdlogic;elk : in std_logic;lock : out stdlogic );end uart_clock;7)保存后,my_dcm. xaw作为一个模块加入顶层设计文件中;图2-7操作示意(3)使用PACE进行管脚分配1)在工程的Sources窗口,选择顶层设计文件uart clock. vhd/.v,则在Processes 窗口,扩展User Constraints并双击Assign Package Pins打开PACE,在此过程中弹出询问是否添加UCF文件到工程中对话框,单击“yes”按钮。用VHDL做实验时,如果PACE 没有自动跳出,可把lab2拷到根目录下再打开工程;注意:在PACE能启动之前必须先进行综合。2)在PACE中浏览Design Object List-I/O Pins窗口,可看到所列的信号名称和信号方向是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)保存后出现Bus Delimiter对话框,选择XST Default,单击0K按钮。在Device Architecture窗口放大直到可以看清每个管脚:图2-9操作示意Alarm:连接 BANK3, led_l :Rx:连接MAX3232的接收串行数据管脚BANK4, RS232 RX DATA;Tx:连接MAX3232的发送串行数据管脚BANK4, RS232_TX_DATA。注意:图中粉红色彩条说明管脚在同一个bank中。单击每个蓝色I/O管脚,则对应着 Design Object List-I/O Pins 窗口相应的管脚。4)保存后出现Bu