来自 www.514.net 2019-09-14 21:46 的文章
当前位置: 澳门新葡亰平台游戏 > www.514.net > 正文

设计总结

  1. set_input_delay和set_output_delay的选项-max和-min的理解

   首先 input/output其实是效仿数据在端口外的延时,是三个外表约束原则,目标是为着约束FPGA输入端口到里面存放器数据输入端只怕当中寄放器输出端到FPGA输出端口之间允许的延时。总计max时思索的是白手起家时间的景况,总括min时思量的是维系时间的状态,delay参数来自于PCB走线。

2. 对于FPGA时钟同步规划,FPGA仿真最多到综合网表,更下层的仿真是对牛弹琴,不止耗时,同不经常候FPGA存在库参数或布线时延反馈不标准的洋洋主题素材。对于PA昂科拉的结果首先将要保障其石英钟同步的性状。必得满意FPGA器件综合和布线后的setup和hold必要。一旦现身timing-error必须通过各类渠道化解error,因为error的留存,意味着石英钟同步的大前提已经被毁坏,那时,simulation取得的结果和FPGA是不等价的,不解决时序难题,别的办法毫无意义了。

3. 外界接口也急需着重挂念。如前所述,FPGA内部如若timing没格外的话,一般和虚假结果是一律的,难点是外界的接口,包蕴cable连线等,非常涉及数量大幅度和成效,提出采纳降频和先同步输入等格局来先行排除。

4. 另眼相待syn和pr进度中的全部warning以及error,warning的剧情不是完全能够忽略的。要特意关切综合报表中的以下内容:unused ports, reMOVal of redundant logic, latch inference,simulation mismatch等等,入眼深入分析和清除。

  1. 只要FPGA 验证要求不高,比喻职业频率相当低,同一时候财富也相比较充足时,除了挂钟加必要的约束,尽量不要开首就水到渠成一个健全的束缚文件,幸免不供给的羁绊,和早先时期难点的意识。假使在这种景观下,如故有的时候序难题:

*   *  1.时序问题hold,setup,极其是hold,首先检核对应的石英钟域的石英钟是或不是思量周密,setup timing 难点根本是完好数据路线延时太大导致,hold timing难题关键是机械钟延时太大导致,具体见6;

     2.主要关怀设计本人存在质量难点;

     3.有规范参见正确工程,综合和兑现设置条件差异,并开展调度尝试难点是还是不是可以消除。
     4.有个别调节综合参数,如hierarchy从布局保持产生优化平铺综合,扩展BUFG数量,将输出Fan out 改更加小的合理性界定等,重新编写翻译和布局布线,检查时序难题是或不是化解。

     5.相似是先消除setup难点,后消除hold难题,hold难题一蹴即至完的时候一般都是到了要tapout的时候了,最终一段时间如若开掘有hold难题,一般会挑选在满足setup的动静下将数据未来推,独有无助的气象下才会选择动石英钟,因为时钟退换不止影响本级DFF的时序,还有恐怕会耳濡目染下顶级DFF的时序;

     6. 当FPGA用来贯彻ASIC的证实时,门控时钟正是不可制止的,举个例子ASIC上电重新复苏设置时,不是兼备的逻辑都同不时间专业起来,即只有部分Flip-Flop最初工作,十分的大学一年级些恐怕平昔未曾收到有效的机械石英手表,这种气象切合ASIC上电boot的流水生产线,所以在FPGA上表明时要保留的;再举个例子说ASIC工作在某一场景下必要裁减功耗,会关闭有些module的机械电子表,这种为了降低耗电成效而存在的clock gate就能够直接优化掉,并不会潜濡默化FPGA验证ASIC的成效。所以在得到ASIC RTL后要先将这种能够优化掉的clock gate挑拣出来并管理,再对拍卖后的RTL举办归咎

6.尊重和重要检查clock设计,原则下,机械钟优先接入ibufg,对xilinx 7文山会海FPGA来讲正是有MRCC和SRCC属性的引脚,那类引脚能够平昔驱动BUFG,若无,内部手动第三番五次接BUFG

  • PLL/MMCME + BUFG,注意输出使用时也要接BUFG,再作为系统挂钟给全局使用。约束石英钟除了输入外,还要对BUFG输出系统石英钟进行注重约束。故完整的石英钟链 IBUFG/BUFG + PLL/MMCME + BUFG, 对于时钟不是IBUFG输入,vivado xdc还索要充实:

set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets clk_in_IBUF] 便于布线器顺遂完毕布线,这里clk_in 指顶层模块输入 port。针对种种这种境况的输入机械钟都要求在封锁文件中插入, create_generated_clock:创立衍生石英钟的羁绊同样丰裕常用,在FPGA中的design比非常少只职业在同一石英钟下,所以create_generated_clock经常用来对MMCM可能PLL,乃至Flip-Flop分频发生的电子手表扩充约束,贰个pin定义了四回create_generated_clock,那几个pin很只怕是个clk_mux的输出,它会职业在二种以上的石英钟频率,所以对那五回定义的create_generated_clock要做贰个set_clock_groups -logically_exclusive 的羁绊,说明那多个石英钟不会同不经常候设有。

7.针对FPGA Inter-Clock Paths 时序难题:

   内部石英钟域间日常未有直接的涉嫌时,最佳将其石英钟域之间设置成ffalse_path,xilinx fpga xdc具体是:

   set_false_path from [get_clocks clk0] -to [get_clocks {clk1 clk2 clk3}]

   ...

    set_false_path from [get_clocks clk3] -to [get_clocks {clk0 clk1 clk2}]

 

 

本文由澳门新葡亰平台游戏发布于www.514.net,转载请注明出处:设计总结

关键词: