ug1292第一页的主题是初始设计检查。这一步是针对综合后或者opt_design阶段生成的dcp。尽管在vivado下,从功能仿真到综合、布局布线、直至生成.bit文件是相对自动化的流程,但是解决时序违例仍然是一个复杂且耗时的过程。仅仅靠log信息或者布线后的时序报告往往很难定位,这是因为实现过程中的每一步(opt_design逻辑优化,place_design布局, phys_opt_design物理优化, route_design布线)都会做一些优化,这些优化可能会导致关键路径被掩盖,例如,有时发现设计中逻辑级数(logic level)较高的路径时序收敛了,反倒是逻辑级数较低甚至为0的路径出现时序违例。因此,采取按部就班的策略,检查每一步的结果,及时且尽早发现设计中的问题是很有必要的。
初始设计检查流程如下图所示。对象是综合后或opt_design阶段生成的dcp。会依次执行三个命令(图中红色标记),生成三个报告:failfast报告、时序报告和ufdm(ultrafast design methodology)报告。
(图片来源ug1292, page 1)
report_failfast的一个便利之处是可以给出各类资源利用率的上限,如下图所示,这是vivado自带例子工程cpu的failfast报告。可以看到,对于lut,利用率应控制在70%以内;触发器(fd)应控制在50%以内;blockram和dsp48可以达到80%。在这个报告中尤其要关注status为review的条目,这是会给时序收敛带来负面影响的,需要优化的。对于设计中存在pblock情形,report_failfast提供了-pblock选项,对于ssi器件,report_failfast提供了-slr和-by_slr(需要在place_design阶段生成的dcp下使用)选项。这样,可针对某个pblock或某个slr进行分析。
report_timing_summary可以生成时序报告,除了查看时序违例路径之外,该报告还可显示时序约束是否存在潜在问题。如下图所示,check timing下包含12个条目,这个阶段需要格外关注是否有未约束的时序路径,是否有timing loop,同时还要关注时钟约束是否合理。
report_methodology可以生成ufdm报告。该命令不仅可以检查rtl代码存在的问题,例如block ram没有使用内部embedded registers,dsp48用做乘法器时没有使能mreg等,还可以检查时序约束存在的问题。如图所示,要尤其关注其中的bad practice。
对于这三个报告中存在的问题,要尽可能地在综合阶段或者opt_design阶段加以解决,最终确保这三个报告足够“干净”,即所有隐患都被消除。
此外,对于大规模的设计,可针对设计中的关键模块使用上述三个命令,因为这些关键模块很有可能成为时序收敛的瓶颈。为了使用这三个命令,可以对关键模块采用ooc(out-of-context)的综合方式或单独创建vivado工程以便生成相应的dcp。
我们没有核心技术吗?强如美国,也有大量电子元器件依靠进口
从植物中得到的灵感,创造出可柔性穿梭的机器人
开关电源项目实战解析
真正的AI系统与僵尸AI系统有很大的区别
上海晶丰明源半导体IPO被否了!
ug1292深度解析
大唐电信拟筹资25.4亿元收购联芯科技等三公司
步进电机在机器人设计上的应用分析
特斯拉或在两周后发布全自动驾驶Beta版
比宝马3系还宽,朗逸最强劲敌到来,仅售8万
基于USB接口技术和I2C总线实现多通道开关矩阵的设计
OPPOR11降价“让路”全面屏新机,OPPOMIX或发布,小米咋想?
中国半导体迎扩产潮 SK海力士将投36亿建新厂
意大利发表四足机器人领域的最新成果 成功拉动3.3吨的飞机
电子行业辞典中英文对照(L字为首)
Intel一直挤牙膏,重点试图改成数据中心
简单介绍高性能SKYLAB授时模块的精准授时应用
小米mix2等大屏手机看视频能够有更完美体验
贸泽开售Analog Devices ADA4355紧凑型高性能光电探测器接收器μModule
林芩论币:总结了一些投资朋友遇到的一些小问题,有兴趣的可以看一下