FPGA实验2.docx

上传人:b****7 文档编号:9646447 上传时间:2023-02-05 格式:DOCX 页数:59 大小:3.07MB
下载 相关 举报
FPGA实验2.docx_第1页
第1页 / 共59页
FPGA实验2.docx_第2页
第2页 / 共59页
FPGA实验2.docx_第3页
第3页 / 共59页
FPGA实验2.docx_第4页
第4页 / 共59页
FPGA实验2.docx_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

FPGA实验2.docx

《FPGA实验2.docx》由会员分享,可在线阅读,更多相关《FPGA实验2.docx(59页珍藏版)》请在冰豆网上搜索。

FPGA实验2.docx

FPGA实验2

ISE9.1使用流程实验

一、实验目的

(1)熟悉ISE9.1的开发环境,掌握工程的生成方法。

(2)熟悉SEED-XDTKXUPV2Pro实验与仿真设计的环境。

2、实验仪器

1.pc机一台

3、实验内容

(1)创建工程。

(2)添加HDL资源文件。

(3)配置一个应用程序完成设计。

(4)设计的仿真及实现。

 

四、实验步骤

1创建工程

1)双击桌面XilinxISE9.1的快捷方式,打开ISE工程管理器(ProjectNavigator)。

2)打开ProjectNavigator后,选择“File”→“NewProject”,弹出新建工程对话框

3)在工程路径中单击“…”按钮,将工程指定到如下目录后单击“确定”按钮:

4)在工程名称中输入Flow_lab,单击“Next”按钮,弹出器件特性对话框。

器件族类型(DeviceFamily)选择“Virtex2P”,器件型号(Device)选择“XC2VP30ff896-7”,综合工具(SynthesisTool)选择“XST(VHDL/Verilog)”,仿真器(Simulator)选择“ISESimulator”,如图1所示。

5)单击“Next”按钮,弹出“CreateNewSource”对话框,可以使用这个对话框来创建新的HDL资源文件,或者也可以创建工程后,新建HDL资源文件。

单击“Next”按钮,弹出添加存在资源对话框。

6)单击“Next”按钮,弹出工程信息后单击“Finish”按钮,单击“OK”按钮,资源文件添加完成。

图1特性对话框

2添加HDL资源文件

1)单击“AddSource”按钮,指向E:

\01.ISE9.1\KCPSM3\VHDL(Verilog)目录,选择

kcpsm3_int_test和kcpsm3文件,单击“Open”按钮,

2)单击“Next”按钮,弹出工程信息后单击“Finish”按钮,

3)单击“OK”按钮,资源文件添加完成

3配置一个应用程序完成设计

1)打开E:

\01.ISE9.1\KCPSM3目录下的Assembler文件夹。

注意,KCPSM3.exe汇编编译系统执行文件和ROM_form模板文件与两个PSM例子文件必须在这个目录下。

紧记汇编编译器生成的用于程序内存的VHDL/Verilog文件会在这个目录下

2)用文件编辑器打开int_test.psm文件,浏览一下代码,此档就是设计者编写和输入的源文件。

3)在开始菜单中的所有程序的附件上单击“命令提示符”,使用cd命令指向汇编编译器的目录下,输入“kcpsm3int_test.psm”命令,如图2所示。

图2操作DOS命令示意

4)执行完命令后,会看到在Assembler下生成了一些文件,其中包括VHDL(int_test.vhd)和Verilog(int_test.v)。

5)在ISEProjectNavigator,单击“Project”→“AddCopyofSource”,指向E:

\01.ISE9.1\KCPSM3\Assembler目录下的int_test.vhd或者int_test.v文件。

单击“打开”按钮。

单击“OK”按钮后,将int_test.vhd或者int_test.v文件添加到工程里,则解决了出现红色问号的问题。

4设计的仿真

1)在ISEProjectNavigator中单击“Project”→“AddCopyofSource”,指向E:

\01.ISE9.1\KCPSM3\vhdl(或者Verilog)目录,选择test_bench.vhd(或者testbench.v)文

件,单击“打开”按钮。

2)选择“SimulationOnly”,单击“OK”按钮,则将测试范本(Testbench)test_bench.vhd/.v文件添加到工程里。

3)单击Sourcese窗口中的“testbench”,则在Processes窗口中显示“XilinxISESimulator”工具栏,扩展开后,右键单击“SimulatorBehavioralModel”,选择“Properties”,对“SimulationRunTime”输入10000ns,单击“OK”按钮,如

4)双击Processes窗口中的“SimulateBehavioralModel”对设计进行仿真,将在右方窗口弹出仿真结果的波形,如图3所示。

图3仿真机结果示意图

5设计的实现

1)在工程的Sources窗口“Sourcesfor”选择“Synthesis/Implementation”,并单击工程的顶层文件kcpsm3_int_test.vhd/v。

2)在工程的资源操作窗(Processes),双击“ImplementDesign”。

3)当实现设计(ImplementDesign)运行的过程中,展开实现(ImplementDesign)的步骤,会看到实现过程中,首先是进行综合(Synthesis),然后才依次完成实现的步骤。

当完成相关操作后,在每个操作步骤前会显示一个小图标,表示该步骤的完成情况。

对于本设计,在一些操作步骤前显示的是叹号,这些警告是可

以忽略的。

对号(√)表示该操作步骤成功完成;

叹号(!

)表示该操作步骤虽完成但有警告信息;

叉号(×)表示该操作步骤因错误而未完成。

4)当完成这些操作步骤后,生成相应的操作报告供查看。

实现操作完成后,再看designutilization的DesignSummary窗口。

 

ArchitectureWizard与PACE实验

一、实验目的

(1)熟悉并使用ArchitectureWizard。

(2)掌握如何例化DCM模块单元。

(3)熟悉并使用PACE。

二、实验仪器

Pc机一台

3、实验内容

(1)使用ArchitectureWizard生成DCM模块单元。

(2)将例化DCM模块单元添加到工程。

(3)使用PACE进行引脚位置锁定。

四、实验步骤

1使用ArchitectureWizard生成DCM模块单元

1)选择“Start”→“Programs”→“XilinxISE9.1i”→“ProjectNavigator”,进入ISE的ProjectNavigator环境。

2)选择“File”→“OpenProject”,并指向如下目录,选择“arwz_pace.ise”打开工程。

Verilog使用者:

E:

\01.ISE9.1\xupv2pro\labs\verilog\lab2\arwz_pace

VHDL使用者:

E:

\01.ISE9.1\xupv2pro\labs\vhdl\lab2\arwz_pace

3)双击Processes窗口中“CreatNewSource”,弹出新资源向导窗口,选择

“IP(CoreGen&ArchitectureWizard)”,输入my_dcm。

4)单击“Next”按钮,弹出SelectIP窗口,展开FPGAFeaturesandDesign和Clocking目录,选择“SingleDCMv9.1”。

5)单击“Next”按钮,显示新建资源信息。

单击“Finish”按钮,则弹出XilinxClockingWizard–GeneralSetup窗口,选中CLK0,CLKFX和LOCKED,不选中RST,输入时钟频率为100MHz。

6)单击“Next”按钮,弹出XilinxClockingWizard–ClockBuffers窗口,保持默认选项。

7)单击“Next”按钮,弹出XilinxClockingWizard–ClockingFrequencySynthesizer窗口,输入50MHz输出频率。

8)单击“Next”按钮,显示新建资源信息。

单击“Finish”按钮,则在工程的Sources窗口看到my_dcm.xaw作为资源添加到工程中,但没有作为一个模块加入顶层设计文件中,则需要下一步的例化过程。

2DCM组件的例化

1)选中my_dcm.xaw文件,则在工程的Processes窗口双击“ViewHDLSource”,在HDL编辑器中可以看到由ArchitectureWizard生成的DCM的VHDL源代码。

此代码中包含了一个IBUFG、一个DCM和两个BUFG例化的组件。

输入时钟CLKIN_IN驱动IBUFG,输出的时钟与DCM相接,CLKFX_BUF和CLK0_BUF输出时钟驱动BUFG组件,所有的DCM属性使用VHDLgeneric语句传递。

2)在工程的Sources窗口,双击“uart_clock.vhd”在HDL编辑器中打开源代码。

3)在工程的Sources窗口,选择my_dcm.xaw,在Processes窗口双击“ViewHDLInstantiationTemplate”在HDL编辑器中打开例化组件的模板。

在HDL例化范本my_dcm.vhi中,复制组件声明(从COMPONENTmy_dcm到ENDCOMPONENT)并粘贴到uart_clock.vhd代码中的“--InsertDCMcomponentdeclarationhere”注

释的下方。

4)在uart_clock.vhd代码中的“--InsertDCMcomponent

instantiationhere”注释下方,添加下列对端口的名称映像

代码,完成对组件的例化。

Inst_my_dcm:

my_dcmPORTMAP(

CLKIN_IN=>clk,

CLKFX_OUT=>clk50MHz,

CLKIN_IBUFG_OUT=>open,

CLK0_OUT=>open,

LOCKED_OUT=>lock

);

5)在“--SignalsforDCM,asfollows:

”注释的下方添加DCM的50MHz的信号声明:

signalclk50MHz:

std_logic;

6)在实体说明里添加lock输出管脚如下:

entityuart_clockis

Port(

tx:

outstd_logic;

rx:

instd_logic;

alarm:

outstd_logic;

clk:

instd_logic;

lock:

outstd_logic

);

enduart_clock;

7)保存后,my_dcm.xaw作为一个模块加入顶层设计文件中。

3使用PACE进行管脚分配

1)在工程的Sources窗口,选择顶层设计文件uart_clock.vhd/.v,则在Processes窗口,扩展UserConstraints并双击“AssignPackagePins”打开PACE,在此过程中弹出询问是否添加UCF文件到工程中对话框,单击“yes”按钮。

用VHDL做实验时,如果PACE没有自动跳出,可把lab2复制到根目录下再打开工程。

注意:

在PACE能启动之前必须先进行综合。

2)在PACE中浏览DesignObjectList-I/OPins窗口,可看到所列的信号名称和信号方向是Output还是Input。

在Loc栏里每个信号对应于FPGA的管脚,FPGA的管脚分配需查看光盘数据../02.Schmatic目录下的原理图。

3)保存后出现“BusDelimiter”对话框。

选择“XSTDefault”,单击“OK”按钮。

将DeviceArchitecture窗口放大直到可以看清每个管脚。

4)保存后出现“BusDelimiter”对话框,如图1所示,选择“XSTDefault”,单击“OK”按钮。

单击菜单栏中的“File”→“Exit”,退出PACE;

图1BusDelimiter对话框

5)单击工程中Sources窗口中的uart_clock.ucf文件,然后双击Prosesses窗口中UserConstraints目录下的“EditConstraints(Text)”,就可以看到由PACE生成的uart_clock.ucf管脚约束文件。

4检查Pad报告并打开超级终端

1)单击工程中的Sources窗口的uart_clock.vhd/v文件,然后打开Processes窗口中的ImplementDesign目录下的Place&Route目录,双击“PadReport”。

当Place&Route完成后,“PadReport”在HDL编辑器中打开,可以看“PadReport”来确定I/O信号管脚约束是否与分配的管脚相匹配。

2)从开始菜单的“File”→所有程序→附件→通讯中单击超级终端,输入名字并单击“OK”按钮,选择COM1作为端口连接,单击“确定”按钮后按照图2进行设定,最后单击“确定”完成设定。

图2

3)单击超级终端菜单中属性中的设置,单击“ASCII码设置”,选中“将换行符附加到传入行末尾”并单击“确定”按钮。

再次单击“确定”按钮退出属性对话框。

5程序的下载并操作UART实时时钟

1)给板卡上电,打开SW11开关。

2)单击工程的顶层文件uart_clock.vhd/v文件,然后双击Processes窗口中“GenerateProgrammingFile”来生成此工程的Bitstream文件并下载到芯片中去。

3)当这个过程完成后,打开GenerateProgrammingFile目录,双击“ConfigureDevice(iMPACT)”,弹出“iMPACT”对话框后选择“ConfigureDevicesusing

Boundary-Scan(JTAG)”,然后单击“Finish”按钮。

4)等到弹出“AssignNewConfigurationFile”对话框后,前两个器件都选择“bypass”按钮,对于最后一个器件单击uart_clock.bit文件选择“Open”按钮,然后再单击“OK”按钮后弹出一个警告信息,单击“OK”按钮所示。

5)在iMPACT窗口右键单击“xc2vp30”,选择“Program”后弹出ProgrammingProperties窗口,单击“OK”按钮,如果下载成功则出现“ProgramSucceeded”,

6)在超级终端窗口则会看到KCPSM3>提示符

注意:

这里超级终端是否显示成功不仅与下载是否成功有关,而且还与电脑的连接有关。

如果COM1不行的话,可以试一下COM2。

7)在KCPSM3>提示符后输入“time”命令,则会以hh:

mm:

ss格式显示当前时钟。

8)在命令提示符后输入“alarm”命令,则以hh:

mm:

ss形式显示当前警告时间,此时alarm是关闭的。

9)输入“alarmon”命令,则警告变成有效,然后输入“alarm00:

00:

30”设定警告时间为30s,输入“time00:

00:

00”设定时间后,会看到板卡上的LED1灯会在30s警告后熄灭。

当你输入“alarmoff”命令后则关闭警告,LED1灯则再次亮起。

 

全局时序约束实验

实验目的:

1)学习使用约束编辑器(ConstraintsEditor)设置全局时序约束。

2)通过分析映像后的静态时序报实现。

3)通过分析布局布线后静态时序报告来确认实际的设计效果。

实验要求:

通过设置全局时序约束来提高系统时钟频率,用映像后的静态时序报和布线布局后的静态时序报告来分析设计的性能。

实验背景知识:

1)约束编辑器简介

2)本实验中的PicoBlaze系统原理

实验准备:

1)将光盘下03.ExamplesofProgram实验程序目录下的01.ISE9.1文件夹复制到E:

盘根目录下。

2)将USB下载电缆与计算机及XUPV2Pro板的J8连接好。

3)将RS232串口线一端与计算机连接好,另一端与板卡的J11相连接。

4)启动计算机后,将XUPV2Pro板的电源开关SW11打开到“ON”上。

察XUPV2Pro板上的+2.5V,+3.3V,+1.5V的电源指示灯是否均亮,若有不亮的,请断开电源,检查电源。

实验步骤:

(1)编译范本中的汇编

1)选择“Start”→“Programs”→“XilinxISE9.1i”→“ProjectNavigator”,进入ISE的ProjectNavigator环境

2)选择“File”→“OpenProject”,并指向如下目录,选择time_const.ise打开工程。

3)选择“Start”→“Programs”→“Accessories”→“CommandPrompt”,打开命令提示符,并使cd命令指向如下的汇编编译器的目录下,如图1所示。

图1

在提示符后输入kcpsm3program.psm命令,执行结束后的结果如图2所示。

图2

4)执行完命令后,会看到在Assemble下生成了一些文件,其中包括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”。

2)本工程若没有UCF文件,则弹出提示对话框,单击“Yes”按钮,将自动生成UCF文件为loopback.ucf,并添加到工程中。

)当打开约束编辑器时,选中“Globle”全局约束窗口,如图3所示。

图3

4)双击Period列下的单元格,弹出“ClockPeriod”对话框,可以设置Period约束。

5)双击PadtoSetup列下的单元格,弹出对话框并输入6ns,单击“OK”按钮,完成输入延迟约束设置。

6)单击ClocktoPad列下的单元格,弹出对话框并输入7.5ns,单击“OK”按钮,完成输出延迟约束设置

7)选择“File”→“Save”保存,然后选择“Exit”退出约束编辑器,如图4所示。

图4

(3)输入引脚位置约束

1)单击工程Sources窗口中的顶层文件loopback.vhd,然后双击Processes窗口中的UserConstraints目录下的“EditTimingConstraints(Text)”,打开loopback.ucf文件。

2)从XUPVirtex-IIPro使用手册可知,关于IO引脚位置的设置如表1所示。

表1

(4)实现设计并进行时序分析

1)单击工程的Sources窗口中的顶层文件loopback.vhd文件,展开Processes窗口中的“ImplementDesign”,然后再展开Map目录下的“GeneratePost-MapStaticTiming”,右键单击“AnalyzePost-MapStaticTiming(TimingAnalyzer)”并从弹出的快捷菜单中选择“ReturnAll”。

2)单击“AnalyzeAgainstTimingConstraints”按钮映像如表2所示。

表2

3)在时序报告窗口中可以看到时序约束报告,分析每个时序路径约束,注意线网延迟。

4)“e”代表评估。

实际的线网延迟是在布局布线后计算出来的。

5)退出时序分析器后,在Processes窗口,展开Place&Route目录下的“GeneratePost-Place&RouteStaticTiming”,双击“AnalyzePost-Place&RouteStaticTiming(TimingAnalyzer)”,完成表3,并与表2进行对照比较。

表3

6)分析每个时序路径约束,注意真实的线网延迟已经被计算出来。

(5)生成软件并进行HDL仿真

1)打开本实验的Assembler文件包内的program.psm文件,此汇编范本的汇编代码含有三部分。

2)在汇编范本Task#1部分中,添加如下汇编语句,编写完成后,要重新用汇编编译系统把编写的汇编源文件program.psm自动生成用于程序内存的VHDL/Verilog格式文件。

在汇编范本涉及到的端口值的常量,参考PicoBlaze的指南,而代码的编写参考KCPSM3的使用手册。

3)在工程中选择Project下拉菜单中的“AddSource”,选择lab3目录下的testbench.vhd文件(testbench主要是为了对电路进行仿真验证,测试设计电路的功能,部分性能是否与其的目标相符),此文件为测试激励文件,仿真结果波形如图5所示。

综合技术实验

综合是FPGA/CPLD设计流程中的重要环节,综合的结果优劣直接影响布局布线结果的最终效能。

好的综合器能使设计占用芯片的物理面积最小,工作频率最快,这也是评定综合器优劣的两个重要指标。

实验目的

(1)学习使用保留层次和扇出综合这些选择来提高调试和综合结果。

(2)通过读取XST软件的综合报告来确认综合结果质量。

实验内容

(1)修改XST综合选项

(2)分析综合报告

实验准备

将光盘下03.ExamplesofProgram实验程序目录下的01.ISE9.1文件夹复制到E:

盘根目录下。

(2)将USB下载电缆与计算机及XUPV2Pro板的J8连接好。

(3)将RS232串口线一端与计算机连接好,另一端与板卡的J11相连接。

(4)启动计算机后,将XUPV2Pro板的电源开关SW11打开到“ON”上。

观察XUPV2Pro板上的+2.5V,+3.3V,+1.5V的电源指示灯是否均亮,若有不亮的,请断开电源,检查电源。

(5)打开超级终端。

实验步骤

(1)浏览设计并生成软件

1)选择“Start”→“Programs”→“XilinxISE9.1i”→“ProjectNavigator”,进入ISE的ProjectNavigator环境。

2)选择“File”→“OpenProject”,并指向如下目录,选择synth_lab.ise打开工程。

Verilog使用者:

E:

\01.ISE9.1\xupv2pro\labs\verilog\lab4\synth_labVHDL使用者:

E:

\01.ISE9.1\xupv2pro\labs\vhdl\lab4\synth_lab

3)用文件编辑器打开在lab4目录下的Assembler文件包中的program.psm,在此汇编范本的task#2部分添加代码。

4)在开始菜单中的所有程序的附件上单击命令提示符,使用cd命令指向汇编编译器的目录下,在提示符后输入kcpsm3program.psm,命令如图1所示:

图1

5)汇编编译系统把编写的汇编源文件program.psm自动生成的用于程序内存的VHDL/Verilog格式文件prog

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1