文本内容:
如何缩短的运行时间Vivado/即亶戮在阶段,有时是有必要分析一下什么原因导致运行时间F Vivado Implementation()过长,从而找到一些方法来缩短运行时间runtime首先,要明确到底哪个阶段耗时过长主要有三个子步骤VivadoImplementationopt_design结束后,会在目录下生成一个place_design^0route_design Implementation.runs/impl_x”o文件在这个文件中可以查看每个子步骤的耗时如下图所示,可以看到runme.log place_design耗时分秒241可采用如下一些方法缩短运行时间Implementation Strategy如果只是评估资源利用率,可使用策略该策略不是时序驱动的策略,因此可以快Flow_Quick速执行策略是时序驱动的策略,可以快速完成Implementation Flow_RuntimeOptimized0它是设计性能和运行时间之间一种折中Implementation,检查约束对于时序约束,我们要求“干净且合理”所谓“干净”,是指约束完备,不会出现漏约或者约束被覆盖的情形例如,由于的优先级高于这就有可能造成set_clock_groups set_max_delay,后者的约束被覆盖所谓“合理”,是指约束的数值是正确的这在多周期路径约束以及跨时钟域路径约束中会经常碰到,对于这类路径要格外注意例如,如果多周期路径的hold不是那么有可能就是约束不合理;如果跨时钟域路径的为这requirement0,path requirement1ns,也是不合理的此外,在用命令时,尽可能地去缓存被复用的对象例如,如果通过获得的一组Tel get_nets在后续约束中被反复使用,那么可将的返回结果赋给一个变量,后续使用时只需nets get_nets调用该变量即可同时,通过选项找到更准确的对象,例如对于时序路径,通过属性-filter找到时序单元,从而避免了获得其他一些不期望的结果约束路径越具体越IS_SEQUENTIAL节省运行时间,例如如果只使用了选项,那么set_false_path-from在搜索这些路径时就会比较耗时Vivado管理生成报告生成报告也会消耗一些时间提供了如下图所示根据设计分析的需求Vivado Reportstrategy,选择生成报告可节省一定的运行时间布线拥塞对运行时间有很大的影响因此,如果设计出现了拥塞问题,就要把其作为首要问题去解决同时,在阶段,使用选项也可缩短运行时间route_design-ultrathreads增量编译如果设计只是有一小部分改动,那么可尝试增量这在一定程度上也会缩短运行Implementationo时间设置多线程的版本,无论是还是都可以支持多线程只需要通过Vivado
2018.x SynthesisImplementation,如下命令即可设置线程个数对于最大线程数为对于最大线程数为Synthesis,4,Implementation,8流程ECO对于微小的改动,例如修改的或者把内部链接到某个都可以ILA Debugprobes netPackage Pin,采用流程,可以极大地缩短运行时间具体流程可看这里(替换其实很ECO ECODebug Probes简单),文档中也有详细介绍ug904。