FPGA试验方法.docx

上传人:b****4 文档编号:3444021 上传时间:2022-11-23 格式:DOCX 页数:34 大小:4.63MB
下载 相关 举报
FPGA试验方法.docx_第1页
第1页 / 共34页
FPGA试验方法.docx_第2页
第2页 / 共34页
FPGA试验方法.docx_第3页
第3页 / 共34页
FPGA试验方法.docx_第4页
第4页 / 共34页
FPGA试验方法.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

FPGA试验方法.docx

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

FPGA试验方法.docx

FPGA试验方法

FPGA设计与验证

目录

FPGA设计与验证1

1.实验设备简介3

1.1主要功能3

1.2实验板连线4

1.2.1实验连线方式4

1.2.2用户自定义IO引脚5

1.3主要模块简介6

1.3.1时钟源模块(F)6

1.3.2秒脉冲发生器及单脉冲产生实验模块(HH)6

1.3.3按键输入模块(QQ)7

1.3.4键盘输入模块(PP)7

1.3.5数码管显示模块(M)8

1.3.6串口实验模块(G)9

2.设计流程与设计输入10

2.1设计流程10

2.2建立工程11

2.3设计输入11

2.3.1文本输入11

2.3.2原理图设计输入(SchematicDesignEntry)12

2.3.3MemoryEditor15

3.设计项目处理17

3.1文件的设计分析(AnalyzeCurrentFile)17

3.2分析与综合(AnalysisandSynthesis)17

3.3布局布线(Fitter)19

3.4汇编(Assembler)20

3.5编译Compiler21

3.6引脚分配(PinAssignment)21

3.6.1AssignmentEditor21

3.6.2PinPlanner22

4.设计分析(DesignAnalysis)22

4.1OptimizationAdvisors22

4.2RTLViewer23

4.3TechnologyViewer24

4.4PowerPlayPowerAnalyzerTool24

5.设计项目校验25

5.1建立输入激励波形文件(.vmf)25

5.2功能仿真26

5.3在QuartusII里使用Modelsim28

5.4时序仿真29

5.4.1时序设置与分析30

1.

实验设备简介

1.1主要功能

该实验箱包含两部分,一部分为系统底板,包含主要的功能扩展;另一部分是包含CPLD或FPGA器件的子板。

结构采用模块化设计思想,在地板上划分为从A~Z以及AA~QQ的功能模块,一共有42个,有些部分不可用,有些只是演示性的,主要如下所示:

●十进制BCD码显示区实验模块(A);

●16×16点矩阵显示实验模块(B);

●模数转换ADC0809实验模块(C);

●执行机构实验区包括直流电机和步进电机及配套的驱动电路等实验模块(D);

●PS2键盘和鼠标实验模块(E);

●时钟源模块可产生0.5~100MHz时钟信号分三组独立提供(F);

●RS232串行通信实验模块(G);

●负压发生模块及电机驱动电路模块(H);

●常用含段驱动和位译码驱动数码管显示实验模块(I);

●USB通信接口实验模块(J);

●2×64PIN通用接口实验模块,可配接FPGA/CPLD/DSP/SOPC/ARM/单片机竞赛板及其它各种适配板等(K);

●常用信号输入输出实验模块,可实现微型打印机,液晶显示及常用数据信号的控制等(L);

●实验显示模块,共二组六位(M);

●液晶显示实验模块,含三种不同类型的液晶显示接口(N);

●交通灯实验区模块(O);

●游戏灯实验模块(P);

●多电压扩展接口实验模块,含3.3V、2.5V、1.8V电源(Q);

●VGA视频显示实验模块,含I/O口和数据信号二种控制方式进行控制(R);

●存储器实验模块,适用于32脚以内的各种RAM/ROM实验(S);

●串行E2PROM93C46或称作为IC卡实验模块(T);

●PWM脉宽调制实验模块(U);

●分频按钮及分频指示灯和信号输入输出接口实验模块(V);

●模拟电压源实验模块(W);

●单片机及控制信号实验模块(X);

●RAM存储器实验模块(Y);

●扩展AD、DA实验模块(Z);

●信号线转换实验模块(AA);

●数模转换实验模块,含LM311比较电路和运放模块(BB);

●脉冲沿发生实验模块,含正沿和负沿(CC);

●逻辑测试笔实验模块,可测高阻态(DD);

●功率放大及扬声器输出实验模块(EE);

●扩展函数信号发生器实验模块(FF);

●数字频率计及计数器信号实验模块(GG);

●秒脉冲发生器及单脉冲产生实验模块(HH);

●BCD码计数器信号控制实验模块(II);

●继电器扩展实验模块,双刀双刃(JJ);

●32.768晶体振荡器时钟源实验电路模块(KK);

●蜂鸣器实验电路模块(LL);

●时基电路NE555实验模块(MM);

●万用IC器件扩展电路练习实验模块(OO);

●4×4标准键盘实验模块(PP);

●电压可选且带状态指示十六位逻辑电平按钮(QQ);

1.2实验板连线

1.2.1实验连线方式

●免连线方式

可通过模式来选择信号连接,实现免连线方式下进行相关实验。

●部分连线方式

可不通过模式键来控制信号连接,进行部分连线控制实践

1.2.2用户自定义IO引脚

●普通IO接口

系统可供用户连线的引脚如上图所示。

3256A可供用户自由定义的引脚与连线的关系,如表1所示:

J13引脚名称

SW1

SW2

SW3

SW4

SW5

SW6

SW7

SW8

对应3256引脚

IO38

IO39

IO40

IO41

IO44

IO45

IO46

IO47

3256引脚

PIN_38

PIN_39

PIN_40

PIN_41

PIN_44

PIN_45

PIN_46

PIN_47

JHL1引脚名称

SW9

SW10

SW11

SW12

SW13

SW14

SW15

SW16

对应3256引脚

IO48

IO49

IO53

IO54

IO55

IO56

IO60

IO61

3256引脚

PIN_48

PIN_49

PIN_53

PIN_54

PIN_55

PIN_56

PIN_60

PIN_61

JHL2引脚名称

SW17

SW18

SW19

SW20

SW21

SW22

SW23

SW24

对应3256引脚名

IO62

IO63

IO65

IO66

IO67

IO68

IO69

IO70

3256引脚

PIN_62

PIN_63

PIN_65

PIN_66

PIN_67

PIN_68

PIN_69

PIN_70

●驱动输出接口

实验板上JOUT1,JOUT2,JOUT3,JOUT4接口为输出引脚,当来自FPGA或CPLD的信号需要驱动输出时可通过上述引脚输出。

注意该接口只能为输出接口,不能作为信号输入接口。

1.3主要模块简介

1.3.1时钟源模块(F)

F区部分时钟源模块,可产生0.5~100MHz时钟信号分三组独立提供,引出时使用左边引脚引出。

1.3.2秒脉冲发生器及单脉冲产生实验模块(HH)

该模块提供秒脉冲和单脉冲输出信号,且提供两种相反极性输出。

1.3.3按键输入模块(QQ)

共有16个按键,带锁定功能,按下去自动锁住,变为另一种状态。

两种状态:

●按下:

对应引脚输出电压5V

●抬起:

对应引脚输出电压0V

上面16个引出管脚分别与16个按键相对应。

1.3.4键盘输入模块(PP)

1.3.5数码管显示模块(M)

该部分连线已经固定,其中六个数码管的控制端由一个38译码器的输出控制,而38译码器的3个输入控制端A、B、C分别连接核心板的IO30、IO31、IO32,而数码管的各位A、b、c、d、e、f、g、dp分别连接核心板的IO19、IO21、IO22、IO23、IO25、IO27、IO28、IO29,(对应于CZ1的31、33、35、37、39、41、43、45)。

共阳极接线。

1.3.6串口实验模块(G)

2.

设计流程与设计输入

所用到的设计软件有很多,主要的有ModelSim、activehdl、Synplify、MaxPlusII、QurtusII、ISE等,这里主要结合QurtusII简单讲解FPGA设计方法和流程。

2.1设计流程

2.2建立工程

●建立工程之前,需要确定设计的顶层文件(Top-LevelEntity)

●要有目标器件

●所建立的工程文件信息保存在.QSF文件(QuartusSettingsFile),该文件保存该工程的相关信息,如:

器件型号、引脚分配、顶层文件等

●建立工程文件(.QPF)

2.3设计输入

2.1.1文本输入

可用的文本输入有以下三种:

●AHDL(.tdf)

●VHDL(.vhd,.vhdl)

●Verilog(.v,.vlg,.verilog,.vh)

2.1.2原理图设计输入(SchematicDesignEntry)

1)原理图输入概念

⏹运用库内功能模块创建原理图

◆Gates,Flip-flops,Pins&OtherPrimitives

◆AlteraMegafunctions&LPMs

⏹可以创建模块符号

⏹使用连线或总线连接所有的模块

⏹BlockEditor可以读取并编辑后缀名为”.bdf”的原理图设计文件,而在MAX+PLUSII中建立的后缀为”.gdf”的原理图输入文件

2)BlockEditor

BlockEditor以原理图的形式进行设计输入和编辑,包括主绘图区和主绘图工具条两部分。

主绘图区是用户绘制原理图的区域,绘图工具条包含了绘图所需要的一些工具。

其中主要工具如下:

选择工具:

用于选择图中的器件、线条等绘图元素;

插入器件:

从元件库内选择要添加的元件

插入模块:

插入已设计完成的底层模块;

正交线工具:

用于绘制水平和垂直方向的连线;

正交总线工具:

用于绘制水平和垂直方向的总线;

打开/关闭橡皮筋连接功能:

按下,橡皮筋连接功能打开,此时移动元件连接在元件上的连线也跟着移动,不改变同其他元件的连接关系;

打开/关闭局部正交连线选择功能:

按下时打开局部正交连线选择功能,此时可以通过用鼠标选择两条正交连线的局部;

放大和缩小工具:

按下时,点击鼠标左键放大,右键缩小显示绘图工作区;

全屏显示:

将当前主窗口全屏显示;

垂直翻转:

将选中的元件或模块进行垂直翻转;

水平翻转:

将选中的元件或模块进行水平翻转;

旋转90度:

将选中的元件或模块逆时针方向旋转90度;

通过BlockEditor,我们可以引用Altera提供的Megafunctions,也可以将我们设计的模块转化为符号,存入库中。

-CreateSimpleTestDesignstoUnderstandtheFunctionalityofanAlteraMegafunction

●PLL,LVDSI/O,Memory,Etc…

-CreateTop-LevelSchematicforEasyViewing&Connection

3)创建自己的原理图

4)设计实例1:

用原理图输入方法创建一个一位全加器

输入:

a,b,ci

输出:

y0,co

输出逻辑表达式:

QuartusII上操作……

2.1.3MemoryEditor

1)CreateorEditMemoryInitializationFiles

格式:

●Hex(.HEX)

●Altera-Specific(.MIF)

2)存储器尺寸修改(MemorySize)

●EditWordSize

●EditNumberofWords

方式:

edit->memorysizewizard……

WordSize改变时,需要注意如何改变,注意WordSize增加或减少时的选项处理。

3)储存器文件的使用

步骤:

●建立存储器文件

●Tools->megaWizardplug-inmanager

●选定存储器类型

●指定所用到的存储器文件

●生成Verilog文件(variationfile和verilog“blockbox”declarationfile)

⏹verilog“blockbox”declarationfile()

modulememtest(

address,

data,

inclock,

we,

q);

input[6:

0]address;

input[7:

0]data;

inputinclock;

inputwe;

output[7:

0]q;

endmodule

⏹variationfile

modulememtest(

address,

data,

inclock,

we,

q);

input[6:

0]address;

input[7:

0]data;

inputinclock;

inputwe;

output[7:

0]q;

wire[7:

0]sub_wire0;

wire[7:

0]q=sub_wire0[7:

0];

lpm_ram_dqlpm_ram_dq_component(

.address(address),

.inclock(inclock),

.data(data),

.we(we),

.q(sub_wire0),

.outclock(1'b1));

defparam

lpm_ram_dq_component.intended_device_family="MAX3000A",

lpm_ram_dq_component.lpm_address_control="REGISTERED",

lpm_ram_dq_component.lpm_file="M128_8.mif",

lpm_ram_dq_component.lpm_indata="REGISTERED",

lpm_ram_dq_component.lpm_outdata="UNREGISTERED",

lpm_ram_dq_component.lpm_type="LPM_RAM_DQ",

lpm_ram_dq_component.lpm_width=8,

lpm_ram_dq_component.lpm_widthad=7;

endmodule

4)设计实例2

生成一个存储器文件,并使用megaWizardplug-inmanager生成存储器控制文件。

3.设计项目处理

Quartus II的主要编译过程是:

分析和综合(Analysis & Synthesis)、布局布线(Fitter)、汇编(Assembler)、时序分析(Timing Analyzer)。

这四个步骤在GUI界面中的Processing下都有对应的工具栏按钮,可以分别执行,也可以通过全编译(Compilation)按钮一次完成。

3.1文件的设计分析(AnalyzeCurrentFile)

功能:

在分析与综合执行(Analysis&Synthesis)之前,检查文件的语法错误(初步检查),该项检查通过并不意味着分析与综合一定能够通过。

操作:

processing->AnalyzeCurrentFile

3.2分析与综合(AnalysisandSynthesis)

分析与综合对设计中的文件进行分析和综合,使所设计的逻辑最小化,并完成工艺映射,将所设计的逻辑转化为器件资源的具体实现,如使用所选器件的逻辑单元,并最终生成一个集成了所有设计文件的单一工程数据库文件。

分析与综合使用了QuartusII内部的集成综合工具。

也可以使用其它的EDA综合工具进行综合,并将综合后得到的EDIF网表或VerilogQuartus映像文件(.VQF),重新导入到Quartus。

操作:

快捷键

或processing->start->startAnalysisandSynthesis

分析与综合设置:

(Assignments->settings)

●优化技术(OptimizationTechnique)

⏹GlobalOptimizationGoal(Default):

速度优化(Speed)、面积优化(Area)或平衡(Balanced)

⏹LogicReplacement:

ReplaceLogicwithEquivalentMegafunction

⏹StateMachineProcessing:

Auto,One-HotorMinimalBit

3.3布局布线(Fitter)

1)功能

Quartus IIFitter,有时也称PowerFitFitter,执行布局布线功能(placeandroute)。

该项功能利用Analysis&Synthesis所生成的数据库,利用所选器件可利用的资源,满足设计的逻辑与时序要求。

Fitter将每一个逻辑功能(logicfunction)分配到布线和时序最优的逻辑单元位置(logiccell),并选择合适的互联路径和引脚分配。

如果设计人员已经分配了资源,如引脚等,Fitter会将剩余的器件资源尽可能匹配所分配的资源,并且尽可能满足其它的设计约束(constraints),并进行优化。

如果没有添加任何约束,Fitter会按照默认设置优化。

如果没有完成布局布线任务,会给出错误提示。

2)流程

3)优化设置

MakingLocationAssignments

可以通过指定逻辑单元在器件上的物理位置进行布局布线的控制,如引脚、逻辑单元或LAB等。

这些可以通过以下两项进行设计:

◆AssignmentEditor:

Assignment-〉AssignmentEditor

◆TimingClosurefloorplan:

Assignment-〉TimingClosurefloorplan 

SettingOptionsthatControlPlaceandRoute

通过设置页面进行进行布局布线的设置(FitterSettings),如设置布局布线的时间等。

Assignment-〉settings-〉Fittersettings

UsingtheResourceOptimizationAdvisor

操作:

Tools-〉ResourceOptimizationAdvisor

ResourceOptimizationAdvisor会给出优化的指导,包括以下几个方面:

∙Generalrecommendations

∙Logicelementusage

∙Memoryblockusage

∙DSPblockusage

∙I/Ousage

∙Resourceroutingusage

每一项建议都提供了Description,Summary,andAction三项内容:

∙Description—给出了推荐操作,包括原因以及对于设置与分配的推荐操作。

还可能给出一些帮助的超链接。

∙Summary—描述对最大频率fMAX、逻辑单元使用、编译时间、功耗等的影响。

∙Action—给出推荐选项,必要的操作步骤,以及当前的设置状态或资源分配情况。

3.4汇编(Assembler)

操作:

processing->start->startassembler

使用Assembler可以为所选器件生成一个用于下载的文档,对于FPGA来讲,可以是以下几种下载文档:

●ProgrammerObjectFiles(.pof)

●SRAMObjectFiles(.sof)

●Hexadecimal(Intel-Format)OutputFiles(.hexout)

●TabularTextFiles(.ttf)

●andRawBinaryFiles(.rtf)

并且生成用于PowerPlayPowerAnalyzer的详细数据。

所生成的编程器目标文件和SRAM目标文件可以通过Programmer下载到FPGA器件。

.hexout、.ttf和.rtf文件被用于其它可编程器件生产厂家对Altera器件提供支持。

3.5编译Compiler

操作:

或tools->Compilertool或processing->startcompilation

编译其实包含上面的四项功能:

分析与综合、布局布线、汇编和时序分析(见后面)。

3.6引脚分配(PinAssignment)

3.6.1AssignmentEditor

操作:

Assignments->pins或Assignments-〉Assignmenteditor

AnalysisandSynthesis全部通过后,为了把设计下载到FPGA中进行验证,还必须把设计项目的输入输出端口和器件相应的引脚绑定在一起。

有两种方法可以实现这个过程,一种是给引脚分配信号,另一种则是给信号分配管脚。

选择菜单AssignmentsPins,”AssignmentsEditor”窗口。

选择菜单ViewShowAllKnownPinNames,此时编辑器将显示所有的输入输出信号,其中:

●“To”列是信号列,

●“Location”列是引脚列,

●“GeneralFunction”列显示该引脚的通用功能。

对于一个输入输出信号,双击对应的“Location”列,在弹出的下拉列表框内选择需要绑定的管脚号。

完成所有引脚的绑定,保存修改。

如果选择的原理图输入,则此时原理图设计文件将给输入输出端口添加引脚编号。

3.6.2PinPlanner

操作:

Assignments->PinPlaner

Pinplaner提供了引脚分配的图形操作模式,可以方便规划、创建、编辑引脚分配。

在Pinplanner模式下,设计者可以直观的识别或观察I/Obanks,VREFgroups,edges等。

分配引脚方法:

●拖动

●双击

4.设计分析(DesignAnalysis)

4.1OptimizationAdvisors

主要包括三部分:

●ResourceOptimizationAdvisor

●TimingOptimizationAdvisor

●PowerOptimizationAdvisor

4.2RTLViewer

操作:

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

当前位置:首页 > 党团工作 > 其它

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

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