1 / 68
文档名称:

FPGA-网络资源.doc

格式:doc   大小:9,985KB   页数:68页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

FPGA-网络资源.doc

上传人:朱老师 2024/5/11 文件大小:9.75 MB

下载得到文件列表

FPGA-网络资源.doc

相关文档

文档介绍

文档介绍:该【FPGA-网络资源 】是由【朱老师】上传分享,文档一共【68】页,该文档可以免费在线阅读,需要了解更多关于【FPGA-网络资源 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。关于I/Obuffer〔FPGA〕〔原创〕作者:作者:tengjingshu:EDNChina上网日期:2024年11月27日我来评论[0]??打印版订阅关键字:FPGA?综合工具?Verilog? EDN博客精华文章??作者:tengjingshu关于I/Obuffer〔原创〕 昨天后仿真四位加法器的时候,想比较一下,超前进位加法器和串行加法器的时候,特意比较了一下那个的延时少一些,居然发现超前进位加法器延时比串行加法器多,不知道为什么,于是做么一下是不是优化的问题。于是鼓弄了一下,在ISE——Synthesize〔综合〕右键——Properties ISE内嵌综合工具——XST点击看原图 就会出来综合选项,通过选择相应的选项,满足特定的要求。 SythesisOptions HDLOptions XilinxSpecificOptions 由于我要做的是DDS,要求工作在100MHz的时钟下,所以对时序要求很高,我也就对综合选项都试了一下 综合目标〔Optimization〕 该参数用以指定优化的全局目标是面积〔Area〕优先还是速度优先〔Speed〕优先。由于时序要求一般来说比器件面积要求更重要,所以一般选择速度优先策略。 尝试改变为Speed,但对加法器延时没变。 综合难度〔OptimizationEffort〕 该参数用于指定综合器工作难度,如果设计时序和面积要求较高,选择难度指标为“Hight〞。 全局优化目标〔GlobalOptimizationGoal〕 该参数仅对FPGA有效,用于指定存放器之间〔S〕,输入引脚到首级存放器之间〔OFFSET_IN_BEFORE〕,末级存放器到输出引脚之间〔OFFSET_OUT_AFTER〕,输入引脚到输出引脚之间〔INPAD_TO_OUTPAD〕的优化策略。S、OFFSET_IN_BEFORE、OFFSET_OUT_AFTER、INPAD_TO_OUTPAD和MAX_DELAY。 由于设计的加法器没有时钟信号,所以不必选择“S〞,而选择“MAX_DELAY〞,果然取得效果,,,不过还是很长。可能这要定一个时序约束〔我还不会L〕。我理解的时序约束是,就像Protel自动布线,你要先设好布线规那么:电源线5mm,,两孔间只能过一条线……如果不设好这些参数时,自动布线就将按照默认布,那就可能达不到你的要求。 FPGA综合好比把硬件描述语言〔Verilog/VHDL〕转换为与非门存放器这些根本单元。 自动布局与布线就是把这些根本单元固化到FPGA的芯片上的连线布局。 ,是因为在输入输出加了Buffer。于是我就不选这个选项。点击看原图 好了,这下子延时好了很多,能综合,但map的时候出现一大堆警告和一个错误: MapLib:701-Signalciconnectedtotoplevelportcihasbeenremoved. Pack:198-.?sorsymbolsmarkedas'SAVE'.?YoucaneitheraddPADsor'SAVE'attributestothedesign,orrun'map-u'todisablelogictrimminginthemapper. 好似是所有输入输出都被删除了,这是怎么回事呢,要好好研究I/OBuffer i/obuffer从功能上讲应该按照缓冲器去对待,不过实际的FPGA的I/O功能还要复杂很多,毕竟I/O模块内部还有各种控制保护电路与存放器单元。 IOBUF原语是单端双向缓冲期,其I/O接口必须和指定的电平标准相对应,支持LVTTL、LVCMOS15、LVCMOS18、LVCMOS25以及LVCMOS33等信号标准,同时还可通过DRIVE、FAST以及SLOW等约束来满足不同驱动和抖动速率的需求。默认的驱动能率为12mA,低抖动。IOBUF由IBUF和OBUFT两个根本组件构成,当I/O端口为高阻时,其输出端口0为不定态。IOBUF原语的功能也可以通过其组成组件的互联来实现。 IOBUF原语的输入输出真值表如下表 在综合结果分析时,IOBUF原语的RLT结构如以下图: 可见buffer是必须的,必须有。 参考资料: 1.?FPGA/CPLD设计工具XilinxISE使用详解? -03/ 3./thread-126287-1-?I/Obuffer知识求助 下面所说的“ISE布线时防止优化buf的方法〞我也不知道什么意思,大家试试吧 请在文本框输入文ISE布线时防止优化buf的方法: 在这个BUF两端的信号线上加上下面的属性(VerilogHDL版本): wirebufin?/*synthesissyn_keep=1xc_props="X"*/; 具体解释: 1、syn_keep=1就是保存这个信号线,是它成为一个instance〔synplify的〕,然后就可以对它添加XILINX的约束属性; 2、xc_props=“〞是synplify为XILINX保存留的约束属性,可以透传到ISE的实现中去,从而约束实现过程。 3、“X〞属性是在MAP时识别的KEEP属性,如果用XST综合就只需要在信号线的两端加上X属性就可以透传到MAP中去。但是synplify并不能识别,因此需要通过以上的方法将X属性透传到MAP中去。 类似在VHDL中也适用 attributesyn_keepoftemp01:signalistrue; attributexc_propsoftemp01:signalis"X";fastmodel时延短点slowmodel时延长点追问slowmodel是高温下的低速吗,仿真是不是用slowmodel较好答复看你自己设计了,你低速的就用低速模型可提供最多的多功能引脚、I/O标准、端接方案和差分对的FPGA在信号分配方面也具有最复杂的设计指导原那么。尽管Altera的FPGA器件没有设计指导原那么(因为它实现起来比较容易),但赛灵思的FPGA设计指导原那么却很复杂。但不管是哪一种情况,在为I/O引脚分配信号时,都有一些需要牢记的共同时骤:? ,以及它们的重要属性,例如I/O标准、电压、需要的端接方法和相关的时钟。? 。? ,以确定哪些管脚是通用的、哪些是专用的、哪些支持差分信号对和全局及局部时钟、哪些需要参考电压。? ,先分配受限制程度最大的信号到引脚上,最后分配受限制最小的。例如,你可能需要先分配串行总线和时钟信号,因为它们通常只分配到一些特定引脚。? 。在这个阶段,可能需要仔细权衡同时开关输出(SSO)和不兼容I/O标准等设计问题,尤其是当你具有很多个高速输出或使用了好几个不同的I/O标准时。如果你的设计需要局部/区域时钟,你将可能需要使用高速总线附近的管脚,最好提前记住这个要求,以免最后无法为其安排最适宜的引脚。如果某个特定块所选择的I/O标准需要参考电压信号,记住先不要分配这些引脚。差分信号的分配始终要先于单端信号。如果某个FPGA提供了片内端接,那么它也可能适用于其他兼容性规那么。? 。? 在这个阶段,考虑写一个只包含端口分配的HDL文件。然后通过使用供应商提供的工具或使用一个文本编辑器手动创立一个限制文件,为I/O标准和SSO等增加必要的支持信息。准备好这些根本文件后,你可以运行布局布线工具来确认是否无视了一些准那么或者做了一个错误的分配。? 这将使你在设计的初始阶段就和布局工程师一起工作,共同规划PCB的走线、冗余规划、散热问题和信号完整性。FPGA工具可能可以在这些方面提供帮助,并协助你解决这些问题,因此你必须确保了解你的工具包的功能。? 你咨询一位布局专家的时间越晚,你就越有可能需要去处理一些复杂的问题和设计反复,而这些可能可以通过一些前期分析加以防止。一旦你实现了满意的信号分配,你就要用限制文件锁定它们。? -------------------?基于CMOS的设计主要消耗三类切率:内部的〔短路〕、漏电的〔静态的〕以及开关的〔电容〕。当门电路瞬变时,VDD与地之间短路连接消耗内部功率。漏电功耗是CMOS工艺普遍存在的寄生效应引起的。而开关功耗那么是自负载电容,放电造成的。开关功耗与短路功耗合在一起称为动态功耗。下面介绍降低静态功耗和动态功耗的设计技巧。?答:SCF文件是MAXPLUSII的仿真文件,.?用Altera_Cpld作了一个186〔主CPU〕控制sdram的控制接口,发现问题:要使得sdram读写正确,必须把186(主CPU)的clk送给sdram,?答:建议将所有控制和时钟信号都从PLD输出,因为SDRAM对时钟偏移(clockskew)很敏感,,对于所有使用SDRAM的设计,,是采用MegaWizard还是Plug-InManager来将一个PLL在采用QuartusII软件的设计中的顶层例如?可以选择创立一个新的megafuntion变量,然后在Plug-Inmanager中创立ALTCLKLOCK(I/P菜单),或是将输入划分开来,,将其在设计中例如,并使用PLL的“Clock〞.?在max7000系列中,只允许有两个输出使能信号,可在设计中却存在三个,每次编译时出现“deviceneedtoomany[3/2]outputenablesignal〞.如果不更换器件〔使用的是max7064lc68〕.如何解决这个问题?答:Eachoftheseuniqueoutputenablesmaycontrolalargenumberoftri-,youmayhave16bidirectionalI/-bitbus,youcanuseoneoutputenabletocontrolallofthesignalsinsteadofanindividualoutputenableforeachsignal.〔参考译文:,可能有16个双向I/,就可以使用一个输出使能控制所有信号,而不用每个信号一个输出使能.〕3.?关于vhdl的问题:process(a,b,c)begin…endprocess;如果a、b、c同时改变,该进程是否同时执行三次?答:PROCESSSTATEMENTS中的执行跟逻辑有关系,假设是同时逻辑,那么在每次时钟的触发沿根据A,B,C的条件来执行一次;假设是异步逻辑,那么根据判断A、B、.?在设计最初,由于没有将时钟信号定义在全局时钟引脚上,导致MAXPLUSII在时间分析时提示错误:〔时钟偏斜加上信号延迟时间超过输入信号建立时间〕.全局时钟引脚的时钟信号到各个触发器的延时最小,有没有可能通过编译软件设置,将普通I/O脚上的时钟信号也经过芯片内部的快速通道以最小的延迟送到每个触发器时钟引脚?答:youcanregisterthatsignalandassignitastheglobalsignal,bythestepflow:assign->logicoption->Individuallogicoptions->'dbetterinputtheclocksignalthroughthededicatedinputpin.〔参考译文:可以存放这个信号,并将它指定为全局信号,步骤如下:指定—>逻辑选项—>个别逻辑选项—>,最好通过专用输入引脚输入时钟信号.〕?5.?用MaxplusII软件设计完后,,譬如将一引脚ClkOut定义为Buffer,Clkout是一时钟信号,然后反响到内部逻辑,内部逻辑用此信号作为时钟信号,但用DelayMatrix,却查看不到一些信号相应于ClkOut的延迟,因为ClkOut是一Output引脚,在DelayMatrixsource一栏中没有ClkOut信号,如何解决这个问题?答:这种做法在逻辑设计中称为GATECLOCK,所谓GATECLOCK就是将设计中的组合逻辑结果拿来做时钟信号,(CLKOUT)拿来作使能信号,即ENABLE信号,而时钟信号还是采用原来的统一时钟,使设计用尽量少的同时时钟,.?我是一个epld的初学者,目前看到xilinx的Virtex-II中嵌入大量的资源如:powerpc、ram等,究竟如何在fpga中使用这些资源?答:XilinxVirtex-II中嵌入的资源非常丰富,如BlockRAM、DigitalClockManager、On-,可以使用Virtex-.?在设计中,往往需要对某个信号做一定〔任意长〕的延时,有没有好的方法来实现?:(LUT)都能够设置成为具有可编程深度(最多为16),.?ISE中的PADTOPADCONSTRAINT是否是包括输入输出的pad时延之和再加上输入输出之间的组合逻辑的时延?还是只是输入输出之间的组合逻辑的时延?答:XilinxPAD-to-.?由于现在的设计根本上都是同时设计,那么PADTOPADCONSTRAINT在什么情况下使用?答:虽然现今多数设计都是完全同时,,仍然需要PAD-to-.?????????????如何在ISE中看到PADTOPAD的布线情况?答:通常不必在意信号在FPGA内的路线,,可以使用XilinxFPGAEditor,.?????????????,可是总是出现如下错误:Ifthesecurityflagisturnedoninthebitstream,programmingstatuscannotbeconfirmed;others,,没有相应的波形,:?答:,,sinceyouareusingJTAGconfiguration,pleasemakesureyouhaveselectedJTAGclock(lk)asyourStartupclockduringbitstreamgeneration.〔参考译文:,,,,,既然使用JFAG配置,就要确保在生成位元流过程中,已经将JGAG时钟(lk)选作了Startup时钟.〕12.?????????????XilinxVirtex架构中每个对照表(LUT)都能够设置成为具有可编程深度(最多为16),在写设计的时候如果设计了一个深度不大于16位的移位存放器,ISE综合时就会用一个LUT来替代它?答:Mostsynthesistools(,XilinxXST)areabletoinferLUTbasedshiftregister(SRL16E),.〔参考译文:大多数综合工具,例如SynplifyPro和XilinxXST,,此类工具也能够推断出多SRL16E,.〕13.?????????????LUT是实现组合逻辑的SRAM,怎样实现一个时序的移位存放器,是不是必须加一个触发器来配合LUT?答:,,thereisnoneedtoconsumeanyflip-.〔参考译文:XilinxVirtex结构中的LUT不是简单的组合逻辑。当它被配置为16x1RAM时,写操作是同时的。当它被配置为移位存放器时,那么无需消耗任何flip-flop资源。事实上VirtexLUT的内部电路比看起来更复杂。〕14.??????????????答:,,,,,.?????????????关于双向口的仿真,如果双向口用作输入口,输出口该怎么设置?答:做仿真时,软件会自动地将IO口(包括双向口),然后在NODE->ENTERNODESFROMSNF->LIST,将列出的所有IO引脚(包括了双向口)都参加仿真文件中,.?????????????关于ACEX1K的I/:对ACEX1K器件,PDCOUT〔powerofsteady-stateoutputs〕的计算就是根据IOH,IOL来计算的,能否告诉我ACEX1K芯片的IOH,IOL分别是多少?答:关于ACEX1K的IO驱动能力,IOH&IOL的大小可以从ACEX1K的数据手册中查到().17.?????????????io=,假设IOH=20mA,IOL=20mA,n="10"(TotalnumberofDCoutputwithsteady-stateoutputs),如何计算PDCOUT?答:关于功耗的计算可以参照AN74(P2).?????????????io=,对于输入脚,它兼容TTL,CMOS电平;对输出脚,它是否也兼容TTL和CMOS电平?对CMOS电平,是否需要用OpenDrain加上下拉电阻来实现?答:S输出是否要加上拉电阻要看外部接的CMOS电平,.?????????????将EPC2与EPF10K30A连接成JTAG菊花链的形式,在调试阶段可以跳过EPC2直接配置EPF10K30A,,当系统脱离JTAG电缆上电配置时,,EPF10K30A相当于有两个配置通道〔一个通过JTAG,一个通过EPC2),当其中一个配置通道工作时,另外一个配置通道的存在是否会影响到配置过程的正常进行呢?如果相互影响,怎样才能做到两种方式同时存在又互不影响呢?答:可以使10K30A拥有两个不同的下载方式,.?????????????ALTERA是建议直接使用MAXPLUSII或QUARTUS编译HDL源代码,还是使用第三方EDA工具〔如SYNPLIFY、LeoanrdoSpectrum或SYNOPSYS〕先把HDL源代码编译为edf文件后再使用ALTERA的工具编译?答:,.?????????????用MAXPLUSII或QUARTUS屡次编译同一设计生成的带延时的网表文件中的延时是否一样?答:用MP2或QII屡次编译同一设计成的带延时的网表文件中的延时是一样,但要保证该网表文件没有修改正.