fpga问题集锦.docx
- 文档编号:30273266
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:34
- 大小:53.20KB
fpga问题集锦.docx
《fpga问题集锦.docx》由会员分享,可在线阅读,更多相关《fpga问题集锦.docx(34页珍藏版)》请在冰豆网上搜索。
fpga问题集锦
可编程逻辑器件设计技巧
1.什么是.scf?
答:
SCF文件是MAXPLUSII的仿真文件,可以在MP2中新建.
1.用Altera_Cpld作了一个186(主CPU)控制sdram的控制接口,发现问题:
要使得sdram读写正确,必须把186(主CPU)的clk送给sdram,而不能把clk经cpld的延时送给sdram.两者相差仅仅4ns.而时序通过逻辑分析仪测试没有问题.此程序在xilinx器件上没有问题.这是怎么回事?
答:
建议将所有控制和时钟信号都从PLD输出,因为SDRAM对时钟偏移(clockskew)很敏感,而Altera的器件PLL允许对时钟频率和相位都进行完全控制.因此,对于所有使用SDRAM的设计,Altera的器件PLL必须生成SDRAM时钟信号.
要利用SDRAM作为数据或程序存储地址来完成设计,是采用MegaWizard还是Plug-InManager来将一个PLL在采用QuartusII软件的设计中的顶层示例?
可以选择创建一个新的megafuntion变量,然后在Plug-Inmanager中创建ALTCLKLOCK(I/P菜单)变量.可以将PLL设置成多个,或是将输入划分开来,以适应设计需求.一旦软件生成PLL,将其在设计中示例,并使用PLL的“Clock”输出以驱动CPU时钟输入和输出IP引脚.
2.在max7000系列中,只允许有两个输出使能信号,可在设计中却存在三个,每次编译时出现“deviceneedtoomany[3/2]outputenablesignal”.如果不更换器件(使用的是max7064lc68).如何解决这个问题?
答:
Eachoftheseuniqueoutputenablesmaycontrolalargenumberoftri-statedsignals.Forexample,youmayhave16bidirectionalI/Opins.Eachofthesepinsrequireanoutputenablesignal.Ifyougroupthesignalsintoa16-bitbus,youcanuseoneoutputenabletocontrolallofthesignalsinsteadofanindividualoutputenableforeachsignal.(参考译文:
这两个独特的输出使能中每个都可能控制大量三相信号.例如,可能有16个双向I/O引脚.每个引脚需要一个输出使能信号.如果将这些信号一起分组到一个16位总线,就可以使用一个输出使能控制所有信号,而不用每个信号一个输出使能.)
3.关于vhdl的问题:
process(a,b,c)begin…endprocess;如果a、b、c同时改变,该进程是否同时执行三次?
答:
PROCESSSTATEMENTS中的执行跟逻辑有关系,假如是同步逻辑,则在每次时钟的触发沿根据A,B,C的条件来执行一次;假如是异步逻辑,则根据判断A、B、C的条件来执行.一般我们都推荐使用同步逻辑设计
4.在设计最初,由于没有将时钟信号定义在全局时钟引脚上,导致MAXPLUSII在时间分析时提示错误:
(时钟偏斜加上信号延迟时间超过输入信号建立时间).全局时钟引脚的时钟信号到各个触发器的延时最小,有没有可能通过编译软件设置,将普通I/O脚上的时钟信号也经过芯片内部的快速通道以最小的延迟送到每个触发器时钟引脚?
答:
youcanregisterthatsignalandassignitastheglobalsignal,bythestepflow:
assign->logicoption->Individuallogicoptions->Globalsignal.Butyou'dbetterinputtheclocksignalthroughthededicatedinputpin.(参考译文:
可以寄存这个信号,并将它指定为全局信号,步骤如下:
指定—>逻辑选项—>个别逻辑选项—>全局信号.但是,最好通过专用输入引脚输入时钟信号.)
5.用MaxplusII软件设计完后,用DelayMatrix查看延迟时间.由于内部触发器的时钟信号用了一个输出引脚的信号,譬如将一引脚ClkOut定义为Buffer,Clkout是一时钟信号,然后反馈到内部逻辑,内部逻辑用此信号作为时钟信号,但用DelayMatrix,却查看不到一些信号相应于ClkOut的延迟,因为ClkOut是一Output引脚,在DelayMatrixsource一栏中没有ClkOut信号,如何解决这个问题?
答:
这种做法在逻辑设计中称为GATECLOCK,所谓GATECLOCK就是将设计中的组合逻辑结果拿来做时钟信号,这是一种异步逻辑设计.
现在都推荐使用同步逻辑设计方法.可以将该信号(CLKOUT)拿来作使能信号,即ENABLE信号,而时钟信号还是采用原来的统一时钟,使设计用尽量少的同步时钟,这样一来就还是用DELAYMATRIX来分析原有的时钟.
6.我是一个epld的初学者,目前看到xilinx的Virtex-II中嵌入大量的资源如:
powerpc、ram等,究竟如何在fpga中使用这些资源?
答:
XilinxVirtex-II中嵌入的资源非常丰富,如BlockRAM、DigitalClockManager、On-chiptermination等等.ISE4.2i软件完全支持这些资源.可以举出单元库中相应基本数据的实例.XilinxCoreGenerator中也还支持BlockRAM等特性.至于PowerPC和MGT设计,可以使用Virtex-IIPro开发者套件.
7.在设计中,往往需要对某个信号做一定(任意长)的延时,有没有好的方法来实现?
而不是采用类似移位寄存器的方法来延时.
答:
使用移位寄存器在FPGA中对信号进行延时是一种好方法.XilinxVirtex架构中每个对照表(LUT)都能够设置成为具有可编程深度(最多为16)的移位寄存器.这就提供了一种高效的途径来在FPGA中实现移位寄存器.无须使用触发器就可以实现一个16位寄存器.作为一个好的设计习惯,任何情况下都不要通过闸延迟来实现延迟逻辑.
8.ISE中的PADTOPADCONSTRAINT是否是包括输入输出的pad时延之和再加上输入输出之间的组合逻辑的时延?
还是只是输入输出之间的组合逻辑的时延?
答:
XilinxPAD-to-PADcontraint的确涉及到输入输出PAD时延.这从布局后时序报告中可以看出.
9.由于现在的设计基本上都是同步设计,那么PADTOPADCONSTRAINT在什么情况下使用?
答:
虽然现今多数设计都是完全同步,但仍有一些情况需要从一个输入引脚到另一个输出引脚的纯粹组合路径.因此,仍然需要PAD-to-PADconstraint控制这些路径的时延.
10.如何在ISE中看到PADTOPAD的布线情况?
答:
通常不必在意信号在FPGA内的路线,只要它涉及到时序问题.这种工具将对以优化的方式对设计进行路由.如果希望检查具体路由,可以使用XilinxFPGAEditor,它包含在ISE4.2i软件中.
11.在XilinxFoundation3.1i下用JTAGPROGRAMER下载程序到芯片中,可是总是出现如下错误:
Ifthesecurityflagisturnedoninthebitstream,programmingstatuscannotbeconfirmed;others,programmingterminatedduetoerror.测量电路信号,没有相应的波形,显然下载没有成功.所用的芯片是:
XilinxSpartan2XC2S50TQ144.怎么解决?
答:
Thisisasecurityfeature.Bydisablingreadback,theconfigurationdatacannotbereadbackfromtheFPGA.Thispreventsothersfrompiratingyourintellectualproperties.Youcanenableordisablethisfeatureduringbitstreamgeneration.
TheproperwaytodetermineiftheconfigurationisfinishedwithouterroristocheckthestatusoftheDONEpinontheFPGA.DONEpinshouldgoeshighifthebitstreamisreceivedcorrectly.Also,sinceyouareusingJTAGconfiguration,pleasemakesureyouhaveselectedJTAGclock(notCClk)asyourStartupclockduringbitstreamgeneration.(参考译文:
这是保密功能.通过禁用回读,配置数据不能从FPGA回读.这可以防止其他人盗用你的成果.在生成位元流过程中,可以启用或禁用这个功能.
确定配置是否准确无误地完成,适合的方法就是检查FPGA上DONE引脚的状态.如果正确地接收了位元流,则DONE引脚将会升高.而且,既然使用JFAG配置,就要确保在生成位元流过程中,已经将JGAG时钟(而不是CClk)选作了Startup时钟.)
12.XilinxVirtex架构中每个对照表(LUT)都能够设置成为具有可编程深度(最多为16)的移位寄存器.可否理解为,在写设计的时候如果设计了一个深度不大于16位的移位寄存器,ISE综合时就会用一个LUT来替代它?
答:
Mostsynthesistools(e.g.SynplifyPro,XilinxXST)areabletoinferLUTbasedshiftregister(SRL16E)fromyoursourcecode.Evenfordepthgreaterthan16,thetoolissmartenoughtoinfermultipleSRL16Etorealizetheshiftregister.AnotherwaytoutilizethisfeatureistoinstantiateanSRL16Einthesourcecode.YoucanrefertotheLibraryGuideintheXilinxISEsoftwarepackageformoredetails.(参考译文:
大多数综合工具,例如SynplifyPro和XilinxXST,都能根据源代码中的移位寄存器SRL16E来推断LUT.即使是深度大于16的情况,此类工具也能够推断出多SRL16E,从而实现移位寄存器.利用此功能的另一种途径是在原代码中例示一个SRL16E.详细说明可以参考XilinxISE软件包中的库指南.)
13.LUT是实现组合逻辑的SRAM,怎样实现一个时序的移位寄存器,是不是必须加一个触发器来配合LUT?
答:
TheLUTsinXilinxVirtexarchitecturearenotsimplycombinationallogic.Whenitisconfiguredas16x1RAM,thewriteoperationissynchronous.Whenitisconfiguredasshiftregister,thereisnoneedtoconsumeanyflip-flopresource.InfacttheinternalcircuitryofaVirtexLUTismorecomplicatedthanwhatitlookslike.(参考译文:
XilinxVirtex结构中的LUT不是简单的组合逻辑。
当它被配置为16x1RAM时,写操作是同步的。
当它被配置为移位寄存器时,则无需消耗任何flip-flop资源。
事实上VirtexLUT的内部电路比看起来更复杂。
)
14.在foundation3.1环境里怎么找不到启动testbench.vhd的程式?
答:
伴随Foundation3.1i出现的仿真器为门极仿真器,因此你不能在这种设计环境下以VHDL级运行仿真.vhdl代码必须在你运行任何仿真之前进行综合.因此,在Foundation3.1i环境下并不能使用vhdltestbench.作为替代方式,你可以编写仿真script.
实际上,Foundation3.1i是一款相对较老的软件.XilinxISE软件中支持HDLtestbench,它的最新版本为4.2i.
15.关于双向口的仿真,如果双向口用作输入口,输出口该怎么设置?
答:
做仿真时,软件会自动地将IO口(包括双向口)的引脚本加入到.SCF文件中去.先新建一个SCF文件,然后在NODE->ENTERNODESFROMSNF->LIST,将列出的所有IO引脚(包括了双向口)都加入仿真文件中,就可以进行仿真了.
16.关于ACEX1K的I/O脚驱动能力.ALTERA计算功耗的datasheet中:
对ACEX1K器件,PDCOUT(powerofsteady-stateoutputs)的计算就是根据IOH,IOL来计算的,能否告诉我ACEX1K芯片的IOH,IOL分别是多少?
答:
关于ACEX1K的IO驱动能力,IOH&IOL的大小可以从ACEX1K的数据手册中查到(ACEX.PDFPAGE50/86).
17.设计中Vccio=3.3V,假如IOH=20mA,IOL=20mA,n=10(TotalnumberofDCoutputwithsteady-stateoutputs),如何计算PDCOUT?
答:
关于功耗的计算可以参照AN74(P2)中的功耗计算公式.
18.当Vccio=3.3V时,对于输入脚,它兼容TTL,CMOS电平;对输出脚,它是否也兼容TTL和CMOS电平?
对CMOS电平,是否需要用OpenDrain加上下拉电阻来实现?
答:
ACEX1K器件引脚兼容TTL与CMOS电平.COMS输出是否要加上拉电阻要看外部接的CMOS电平,假如说接5VCOMS则需要上拉.详细情况可以参照AN117.
19.将EPC2与EPF10K30A连接成JTAG菊花链的形式,在调试阶段可以跳过EPC2直接配置EPF10K30A,而在配置通过验证以后再利用EPC2的JTAG口将EPF10K30A的配置信息固化到EPC2中去.EPC2的专用配置端与EPF10K30A配置端连接,当系统脱离JTAG电缆上电配置时,由EPC2完成对EPF10K30A的配置.这个过程中有一个疑问,EPF10K30A相当于有两个配置通道(一个通过JTAG,一个通过EPC2),当其中一个配置通道工作时,另外一个配置通道的存在是否会影响到配置过程的正常进行呢?
如果相互影响,怎样才能做到两种方式同时存在又互不影响呢?
答:
可以使10K30A拥有两个不同的下载方式,在板子上做一个跳线开关即可.也可以从当地的代理得到该模块的参考设计.
20.ALTERA是建议直接使用MAXPLUSII或QUARTUS编译HDL源代码,还是使用第三方EDA工具(如SYNPLIFY、LeoanrdoSpectrum或SYNOPSYS)先把HDL源代码编译为edf文件后再使用ALTERA的工具编译?
答:
ALTERA建议用第三方的工具将HDL源代码编译为edf文件后再使用ALTERA的工具进行布局布线.ALTERA的MAXPLUSII和QUARTUS也都自带有HDL的综合器,一些简单的设计可以直接在MP2或QII中编译即可.而且可以直接在软件中后台调用第三方的EDA工具.
21.用MAXPLUSII或QUARTUS多次编译同一设计生成的带延时的网表文件中的延时是否一样?
答:
用MP2或QII多次编译同一设计成的带延时的网表文件中的延时是一样,但要保证该网表文件没有修改过.
22.在编译前设定一个模块的SynthesisStyle为FAST是否一定比不设定(NONE)要节省LC资源?
答:
在布局布线的过程中,SynthesisStyle的设置会影响到资源的利用率和速度的快慢,一般情况下:
设置为FAST主要是为了提高设计的速度.在软件中除了综合类型的设置,还有一项是选择优化的目的:
oPTIMIZE->AREAORSPEED.选择AREA可以节省设计所占用的资源.
23.Altera公司对芯片热设计有哪些资料和工具?
答:
ALTERA提供了许多计算功耗的资料和工具.数据手册中的AN74就是关与计算ALTERA器件功耗的专门文档.
24.如何在设计前期分析芯片的功耗?
计算功耗的工具:
ALTERA提供的QUARTUS软件就有计算功耗的功能,它可以根据你不同的激励项量来计算功耗;在ALTERA的网叶上就有专门计算功耗的运算器,请点击相关文章它就给出了APEXII的功耗计算方法.
25.看过“FLEXPCIDevelopmentBoard”的参考设计原理图,它利用了条线开关选择配置方式.既然两种配置方式管脚并没有公用,为何需要这个跳线开关呢?
答:
EPC2不会影响到用下载电缆通过JTAG口配置EPF10K30A.使用跳线开关是在选择给10K30A下载的方式,是通过下载电缆还是EPC2.
因为将ECP2与10K30A连接成JTAG菊花链的形式通过下载电缆下载和用EPC2对10K30A下载的连接方式是不同的,所以要将这两者分开,详细的连接方法应该在参考设计原理图中已经描绘的很清楚了.
26.为了保证设计可靠性,需要重点关注哪些方面?
答:
HereareafewguidelinesforreliableFPGAdesign(关于可靠性FPGA设计的几点建议)
1Usefullysynchronousdesign.Asynchronousdesignisverysensitivetopathdelayandisthereforenotrobust.AnexampleofasychronouscircuitistheSRlatchwhichusescombinationalfeedback.(使用完全同步设计.异步设计对路径延迟非常敏感,因此不很可靠.异步电路的一个例子是使用组合反馈的SR闭锁.)
2Nevergateyourclocksignalwithcombinationallogic.Glitchesmayoccuronanygatedclocksignals,whichresultsinfalsetriggeringofflip-flops.(绝不使用组合逻辑控制时钟信号.因为在任何门控制时钟信号上可能产生短时脉冲干扰,最终导致错误触发flip-flop.)
3Neverrelyongatedelay.(绝不要依靠门延迟.)
4EnoughbypasscapacitorsshouldbeplacedclosetothepowerandgroundpinsofFPGA.Usecapacitorswithgoodhighfrequencyresponse.(FPGA的电源和接地引脚附近应该放置足够多的旁路电容器.使用优质高频响应电容器.)
5AlwaysusetheglobalclockbuffersontheFPGAtodriveinternalclocksignals.Theseclockbuffersandtheassociatedclockdistributionnetworkhavebeencarefullydesignedtominimizeskew.(在FPGA上始终使用全局时钟缓冲来驱动内部时钟信号.并且已经仔细设计了这些时钟缓冲和关联时钟配电网,以将畸变减至最小.)
27.Yousaid"AnexampleofasychronouscircuitistheSRlatchwhichusescombinationalfeedback".HowdoIlearnSRlatch?
WhatisthedifferencebetweenSRlatchandSRFF?
(“异步电路的一个例子是使用组合反馈的SR闭锁”.请问如何理解SR闭锁?
SR闭锁与SRFF有什么区别?
)
答:
Alatchchangesstateswheneverthegatesignalisactive.AFFchangesstatesonlyatclockedges.(参考译文:
只要门信号是活动的,闭锁就会更改状态.而FF只有在时钟边沿才更改状态.)
28.Xilinx公司的芯片在热设计方面可以提供哪些工具和资料?
答:
Forthermalconsideration,youneedtoknowthepowerconsumptionofyourFPGAandthethermalresistivityofthedevicepackageyouareusing.ThepowerconsumptioncanbeestimatedbytheXPowertoolincludedinXilinxISEsoftware.ThethermalresistivityofthedevicepackagecanbefoundinXilinxdatabook.Thejunctiontemperaturecanthenbecalculatedbythefollowingformula(至于散热问题,需要了解所用FPGA的功耗和正在使用的器件封装的热阻系数.XilinxISE软件中所包含的Xpower工具可以估计功耗.在Xilinx数据手册中可以找到器件封装的热阻系
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- fpga 问题 集锦
![提示](https://static.bdocx.com/images/bang_tan.gif)