威尼斯人官网FPGA仿真最多到综合网表,同时FPGA存在库参数或布线时延反馈不标准的众多标题

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

   首先
input/output其实是仿照数据在端口外的延时,是壹个外部约束规范,目标是为了约束FPGA输入端口到里面寄存器数据输入端只怕其中寄存器输出端到FPGA输出端口之间允许的延时。计算max时考虑的是身无寸铁时间的情景,总括min时考虑的是有限支撑时间的场所,delay参数来自于PCB走线。

威尼斯人官网,   首先
input/output其实是效仿数据在端口外的延时,是一个表面约束原则,目标是为着约束FPGA输入端口到个中寄存器数据输入端大概其中寄存器输出端到FPGA输出端口之间允许的延时。总括max时考虑的是成登时间的情况,总计min时考虑的是维系时间的情景,delay参数来自于PCB走线。

2.
对于FPGA时钟同步规划,FPGA仿真最多到综合网表,更下层的虚假是徒劳,不仅用度时间,同时FPGA存在库参数或布线时延反馈不可相信的无数难点。对于PA库罗德的结果首先就要保障其时钟同步的特点。必须知足FPGA器件综合和布线后的setup和hold须求。一旦出现timing-error必须通过种种途径化解error,因为error的留存,意味着时钟同步的大前提已经被磨损,那时,simulation取得的结果和FPGA是不等价的,不消除时序难点,其余措施毫无意义了。

2.
对于FPGA时钟同步规划,FPGA仿真最多到综合网表,更下层的虚假是没有抓住要点,不仅开支时间,同时FPGA存在库参数或布线时延反馈不规范的众多标题。对于PA帕杰罗的结果首先就要保证其时钟同步的性状。必须满意FPGA器件综合和布线后的setup和hold必要。一旦出现timing-error必须经过各样路子化解error,因为error的存在,意味着时钟同步的大前提已经被毁坏,那时,simulation取得的结果和FPGA是不等价的,不化解时序难题,其他办法毫无意义了。

3.
外部接口也要求重点考虑。如前所述,FPGA内部固然timing没有毛病来说,一般和虚假结果是同一的,难题是表面的接口,包蕴cable连线等,特别提到数额涨幅和频率,指出利用降频和先同步输入等艺术来先行排除。

3.
外表接口也亟需着重考虑。如前所述,FPGA内部假如timing没不平时来说,一般和虚伪结果是一律的,难点是外部的接口,包蕴cable连线等,尤其涉及数量涨幅和效能,提议采用降频和先同步输入等艺术来先行排除。

4.
器重syn和pr进度中的全体warning以及error,warning的始末不是一心可以忽略的。要专门关怀综合报表中的以下内容:unused
ports, reMOVal of redundant logic, latch inference,simulation
mismatch等等,重点解析和清除。

4.
尊重syn和pr进度中的全部warning以及error,warning的始末不是一点一滴能够忽略的。要尤其关注综合报表中的以下内容:unused
ports, reMOVal of redundant logic, latch inference,simulation
mismatch等等,重点分析和清除。

  1. 比方FPGA
    验证须要不高,比喻工作频率相比较低,同时资源也相比较充足时,除了时钟加要求的约束,尽量不要开首就马到成功八个两全的束缚文件,幸免不需要的束缚,和早期难点的意识。假若在那种气象下,依旧偶尔序难点:
  1. 假设FPGA
    验证需要不高,比喻工作频率相比较低,同时财富也相比较丰裕时,除了时钟加须要的自律,尽量不要起首就做到2个完美的约束文件,避免不须求的束缚,和中期问题的发现。假如在那种处境下,仍然偶尔序难点:

*   *
 1.时序标题hold,setup,尤其是hold,首先检核查应的时钟域的钟表是或不是考虑周到,setup
timing 难点根本是全部数据路径延时太大导致,hold
timing难题主要性是时钟延时太大导致,具体见6;

*   *
 1.时序难题hold,setup,特别是hold,首先检核对应的时钟域的时钟是不是考虑周密,setup
timing 难点至关紧假设总体数量路径延时太大导致,hold
timing难点相当重如若时钟延时太大导致,具体见6;

     2.重中之重关怀设计小编存在品质问题;

     2.要害关心设计作者存在品质难题;

   
 3.有标准化参见正确工程,综合和落成设置条件差异,并展开调整尝试难点是还是不是可以缓解。
   
 4.部分调整综合参数,如hierarchy从结构保持变成优化平铺综合,扩展BUFG数量,将输出Fan
out 改更小的合理范围等,重新编译和布局布线,检查时序难题是或不是化解。

   
 3.有标准化参见正确工程,综合和落成设置环境差距,并展开调整尝试难题是或不是可以缓解。
   
 4.部分调整综合参数,如hierarchy从结构保持变成优化平铺综合,伸张BUFG数量,将输出Fan
out 改更小的客体界定等,重新编译和布局布线,检查时序难点是否化解。

   
 5.相似是先解决setup难题,后消除hold难题,hold难题一举成功完的时候一般都以到了要tapout的时候了,最终一段时间借使发现有hold难点,一般会拔取在餍足setup的境况下将数据以后推,唯有无奈的情事下才会挑选动时钟,因为时钟改变不仅影响本级DFF的时序,还会影响下超级DFF的时序;

   
 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
PAJEROTL后要先将这种可以优化掉的clock
gate挑拣出来并拍卖,再对拍卖后的TucsonTL举行总结

   
 6. 当FPGA用来落成ASIC的印证时,门控时钟就是不可幸免的,比如ASIC上电复位时,不是颇具的逻辑都同时工作起来,即唯有部分Flip-Flop初始工作,很大一部分可能根本没有收受有效的钟表,那种状态相符ASIC上电boot的流水线,所以在FPGA上表达时要保留的;再譬如ASIC工作在某一场景下必要下落功耗,会关闭有个别module的时钟,这种为了降低功耗作用而留存的clock
gate就可以直接优化掉,并不会潜移默化FPGA验证ASIC的效应。所以在拿到ASIC
奥迪Q3TL后要先将那种可以优化掉的clock
gate挑拣出来并拍卖,再对拍卖后的HighlanderTL进行总结

6.器重和主要检查clock设计,原则下,时钟优先接入ibufg,对xilinx
7多级FPGA来说就是有MOdysseyCC和S宝马X5CC属性的引脚,那类引脚可以直接驱动BUFG,若是没有,内部手动第连续接BUFG

6.另眼相看和重大检查clock设计,原则下,时钟优先接入ibufg,对xilinx
7密密麻麻FPGA来说就是有M纳瓦拉CC和SHighlanderCC属性的引脚,那类引脚可以直接驱动BUFG,即便没有,内部手动第两次三番接BUFG

  • PLL/MMCME +
    BUFG,注意输出使用时也要接BUFG,再作为系统时钟给全局使用。约束时钟除了输入外,还要对BUFG输出系统时钟举行重大致束。故完整的钟表链
    IBUFG/BUFG + PLL/MMCME + BUFG, 对于时钟不是IBUFG输入,vivado
    xdc还索要充实:
  • 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 的牢笼,表明那多个时钟不会同时存在。

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分频爆发的钟表伸张约束,3个pin定义了五遍create_generated_clock,那些pin很只怕是个clk_mux的输出,它会做事在二种以上的钟表频率,所以对那两回定义的create_generated_clock要做二个set_clock_groups
-logically_exclusive 的束缚,表达那七个时钟不会同时存在。

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

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

 
 内部时钟域间日常没有一贯的涉嫌时,最好将其时钟域之间设置成ffalse_path,xilinx
fpga xdc具体是:

 
 内部时钟域间平常没有平昔的涉嫌时,最好将其时钟域之间设置成ffalse_path,xilinx
fpga xdc具体是:

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

   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}]

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

 

 

 

 

相关文章