葡萄娱乐场布署计算

  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其实是仿照数据在端口外的延时,是2个表面约束原则,指标是为了约束FPGA输入端口到里头寄存器数据输入端可能个中寄存器输出端到FPGA输出端口之间允许的延时。计算max时思虑的是起家时间的境况,计算min时思虑的是涵养时间的情况,delay参数来自于PCB走线。

贰.
对此FPGA石英钟同步设计,FPGA仿真最多到归纳网表,更下层的虚假是没有抓住要点,不仅损耗费时间间,同时FPGA存在库参数或布线时延反馈不纯粹的重重标题。对于PARubicon的结果首先就要保障其机械钟同步的特征。必须满意FPGA器件综合和布线后的setup和hold须要。壹旦出现timing-error必须经过各类路子化解error,因为error的存在,意味着时钟同步的大前提已经被毁坏,那时,simulation获得的结果和FPGA是不等价的,不化解时序难题,其余办法毫无意义了。

二.
对此FPGA时钟同步规划,FPGA仿真最多到回顾网表,更下层的假冒伪造低劣是徒劳无益,不仅损耗费时间间,同时FPGA存在库参数或布线时延反馈不确切的重重难点。对于PA奥迪Q7的结果首先就要保险其石英钟同步的风味。必须知足FPGA器件综合和布线后的setup和hold须要。一旦出现timing-error必须透过各类渠道消除error,因为error的留存,意味着机械钟同步的大前提已经被弄坏,这时,simulation获得的结果和FPGA是不等价的,不化解时序难点,其余格局毫无意义了。

叁.
表面接口也须求重点思考。如前所述,FPGA内部借使timing没不符合规律来讲,壹般和虚假结果是一模一样的,难题是外部的接口,包蕴cable连线等,尤其提到数量大幅和频率,建议选取降频和先同步输入等办法来先行排除。

三.
外表接口也亟需重点惦记。如前所述,FPGA内部假若timing没不平日的话,一般和虚假结果是同等的,难点是外表的接口,包涵cable连线等,尤其提到多少小幅度和频率,建议使用降频和先同步输入等办法来先行排除。

4.
青眼syn和pr进程中的全体warning以及error,warning的始末不是截然能够忽略的。要专门关注综合报表中的以下内容:unused
ports, reMOVal of redundant logic, latch inference,simulation
mismatch等等,重点解析和排除。

四.
重视syn和pr进程中的全部warning以及error,warning的剧情不是一心能够忽略的。要专门关爱综合报表中的以下内容:unused
ports, reMOVal of redundant logic, latch inference,simulation
mismatch等等,重点解析和清除。

  1. 一旦FPGA
    验证要求不高,比喻工作频率相比低,同时财富也相比充足时,除了石英钟加须要的羁绊,尽量不要早先就水到渠成三个两全的牢笼文件,幸免不须求的牢笼,和早期难点的发现。假如在那种气象下,依旧偶尔序难点:
  1. 假若FPGA
    验证须求不高,比喻工作频率相比较低,同时财富也相比较充裕时,除了挂钟加供给的约束,尽量不要起首就做到三个健全的束缚文件,幸免不须要的羁绊,和初期难点的意识。要是在这种情况下,依旧偶尔序难点:

*   *
 一.时序难题hold,setup,特别是hold,首先检核查应的挂钟域的钟表是或不是想念周详,setup
timing 难点至关主若是总体数量路径延时太大导致,hold
timing难点首要性是石英钟延时太大导致,具体见6;

*   *
 一.时序题目hold,setup,尤其是hold,首先检查对应的挂钟域的钟表是或不是考虑全面,setup
timing 难点主要性是欧洲经济共同体数量路线延时太大导致,hold
timing难点至关首即使时钟延时太大导致,具体见陆;

     贰.第2关切设计作者存在品质难题;

     二.重点关心设计自个儿存在品质难点;

   
 3.有标准化参见正确工程,综合和促成设置条件差距,并开始展览调节尝试难点是或不是能够缓解。
   
 四.部分调控综合参数,如hierarchy从布局保持形成优化平铺综合,扩张BUFG数量,将输出Fan
out 改更加小的创立界定等,重新编写翻译和布局布线,检查时序难点是不是解决。

   
 叁.有规范参见正确工程,综合和落到实处设置环境差异,并张开调节尝试难题是还是不是能够消除。
   
 四.局地调节综合参数,如hierarchy从结构保持变成优化平铺综合,增添BUFG数量,将输出Fan
out 改越来越小的合理限定等,重新编写翻译和布局布线,检查时序难题是或不是消除。

   
 5.相似是先消除setup难点,后化解hold难题,hold难题消除完的时候1般都是到了要tapout的时候了,最终壹段时间假使发现存hold难点,一般会选用在满意setup的情形下将数据今后推,唯有无奈的境况下才会挑选动石英钟,因为石英钟改造不仅影响本级DFF的时序,还会潜移默化下一流DFF的时序;

   
 伍.形似是先消除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进行总结

   
 陆. 当FPGA用来落实ASIC的印证时,门控机械钟正是不可制止的,比如ASIC上电复位时,不是装有的逻辑都同时工作起来,即唯有局地Flip-Flop开首工作,非常大学一年级些只怕根本未曾接过有效的机械钟,那种意况符合ASIC上电boot的流程,所以在FPGA上印证时要封存的;再譬如ASIC工作在某一场景下供给下落功耗,会关闭某些module的钟表,那种为了下落功耗成效而存在的clock
gate就能够直接优化掉,并不会潜移默化FPGA验证ASIC的功能。所以在得到ASIC
RTL后要先将那种能够优化掉的clock
gate挑拣出来并处理,再对处理后的RTL进行汇总

6.爱抚和关键检查clock设计,原则下,石英钟优先接入ibufg,对xilinx
七名目多数FPGA来讲正是有M大切诺基CC和SRCC属性的引脚,那类引脚能够从来驱动BUFG,假使未有,内部手动第再叁再四接BUFG

陆.重申和重大检查clock设计,原则下,石英钟优先接入ibufg,对xilinx
7密密麻麻FPGA来讲正是有MQashqaiCC和S宝马X3CC属性的引脚,那类引脚能够一贯驱动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分频发生的钟表扩大约束,一个pin定义了三次create_generated_clock,那几个pin很恐怕是个clk_mux的输出,它会做事在三种以上的钟表频率,所以对那五次定义的create_generated_clock要做三个set_clock_groups
-logically_exclusive 的羁绊,表达那多个机械钟不会同时设有。

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

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