安插总计葡萄娱乐场

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

   首先
input/output其实是模仿数据在端口外的延时,是一个外表约束原则,目标是为了约束FPGA输入端口到其中寄存器数据输入端只怕当中寄存器输出端到FPGA输出端口之间允许的延时。总结max时思虑的是树马上间的情形,总括min时思念的是保持时间的景况,delay参数来自于PCB走线。

二.
对于FPGA石英钟同步规划,FPGA仿真最多到综合网表,更下层的虚伪是水中捞月,不止耗时,同期FPGA存在库参数或布线时延反馈不可信的大多主题素材。对于PACR-V的结果首先将要有限支持其石英钟同步的特点。必须知足FPGA器件综合和布线后的setup和hold须求。一旦出现timing-error必须通过各类门路消除error,因为error的留存,意味着机械钟同步的大前提已经被毁损,这时,simulation获得的结果和FPGA是不等价的,不化解时序难题,别的情势毫无意义了。

三.
外部接口也须求尊敬思考。如前所述,FPGA内部假诺timing没不平日来讲,一般和虚伪结果是千篇一律的,难题是外部的接口,包涵cable连线等,非常提到数量大幅和效用,建议选拔降频和先同步输入等办法来先行排除。

四.
尊重syn和pr进程中的全部warning以及error,warning的开始和结果不是一点一滴可以忽略的。要特意关切综合报表中的以下内容:unused
ports, reMOVal of redundant logic, latch inference,simulation
mismatch等等,重视分析和化解。

  1. 一旦FPGA
    验证须要不高,比喻专门的学问频率相当低,同有时候资源也相比丰盛时,除了机械钟加要求的牢笼,尽量不要起头就实现1个圆满的封锁文件,幸免不要求的自律,和早先时期难题的意识。纵然在这种意况下,照旧不经常序难题:

*   *
 1.时序主题素材hold,setup,特别是hold,首先检核对应的时钟域的石英钟表是还是不是思索周密,setup
timing 难点至关主借使总体数量路径延时太大导致,hold
timing难题主要性是时钟延时太大导致,具体见陆;

     二.人命关天关怀设计自个儿存在品质难题;

   
 3.有原则参见准确工程,综合和促成设置遭遇差距,并开始展览调解尝试难题是不是可以缓和。
   
 四.部分调度综合参数,如hierarchy从布局保持形成优化平铺综合,增添BUFG数量,将输出Fan
out 改更加小的创制界定等,重新编写翻译和布局布线,检查时序问题是不是解决。

   
 伍.相似是先解决setup难题,后解决hold问题,hold难题化解完的时候一般都以到了要tapout的时候了,最后壹段时间借使发掘有hold问题,一般会选拔在知足setup的状态下将数据未来推,唯有无奈的意况下才会挑选动石英钟,因为石英钟改动不唯有影响本级DFF的时序,还有可能会影响下一流DFF的时序;

   
 陆. 当FPGA用来贯彻ASIC的辨证时,门控时钟便是不可幸免的,比方ASIC上电重新恢复设置时,不是颇具的逻辑都相同的时候职业起来,即只有部分Flip-Flop初阶职业,相当大片段大概根本未曾抽出有效的机械时钟,这种处境切合ASIC上电boot的流水生产线,所以在FPGA上证实时要保存的;再比如说ASIC职业在某一场景下供给降低功耗,会停业有些module的原子钟,这种为了降低功耗功用而留存的clock
gate就能够直接优化掉,并不会影响FPGA验证ASIC的功力。所以在得到ASIC
RTL后要先将这种能够优化掉的clock
gate挑拣出来并拍卖,再对拍卖后的RTL举行归结

六.青眼和重要检查clock设计,原则下,石英钟优先接入ibufg,对xilinx
7层层FPGA来讲正是有MMuranoCC和S福睿斯CC属性的引脚,那类引脚能够直接驱动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:创造衍生挂钟的自律同样10分常用,在FPGA中的design不多只工作在同不平日钟下,所以create_generated_clock常常用来对MMCM也许PLL,乃至Flip-Flop分频发生的石英石英钟扩充约束,二个pin定义了两遍create_generated_clock,那些pin很恐怕是个clk_mux的出口,它会做事在三种以上的石英钟频率,所以对那三次定义的create_generated_clock要做2个set_clock_groups
-logically_exclusive 的自律,表明那七个挂钟不会相同的时候设有。

柒.针对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}]