Vivado使用技巧(15)——DRC设计规则检查

在I/O和时钟规划之后,需要验证设计以确保其满足设计需求。Vivado提供了两种验证途径:DRCs用来检查设计违反规则情况;SSN分析用来估计转换噪声等级。本文将介绍DRCs,本系列第16篇介绍了SSN分析。

运行DRCs
DRCs可以说是管脚规划中最严苛的一个步骤,DRCs会使用一套设计检查项(通常称作rule deck),来检查当前设计是否违反这套规则。本文将以运行DRCs检查I/O端口和时钟逻辑为例。

打开某一阶段的设计,点击Tools->Report->Report DRC,或在Flow Navigator中直接点击Report DRC,弹出如下窗口:

Results name规定了显示DRC结果的窗口名称;Output file可以选中一个保存DRC结果的文件。Rule Decks中选择用于DRCs的rule deck,一个rule deck便是一套设计规则。可以同时选择多个rule deck,同一个规则也可以包含在多个rule deck中。

根据运行DRCs所处设计阶段的不同(RTL设计、综合后设计、实现后设计),可以选择的Vivado提供的rule deck如下:

  • default:Xilinx推荐的默认规则检查;
  • opt_checks:与逻辑优化相关的规则检查;
  • placer_checks:与布局相关的规则检查;
  • router_checks:与布线相关的规则检查;
  • bitstream_checks:与bit流生成相关的规则检查;
  • timing_checks:与时序约束相关的规则检查;
  • incr_eco_checks:与增量ECO设计修改的有效性相关的规则检查;
  • eco_checks:完成一个修改网表的ECO之后,与连通性和布局相关的规则检查。
  • 选择了rule deck之后,可以根据需要修改在Rules中使用的设计规则。运行DRCs的Tcl示例如下:
    report_drc -ruledecks default -file C:/Data/DRC_rpt1.txt

    如果不想使用Vivado提供的rule deck,可以创建一个用户自定义的rule deck并添加到Rule Decks窗口中。该操作需要使用Tcl代码来完成,示例如下:
    create_drc_ruledeck ruledeck_1
    add_drc_checks -ruledeck ruledeck_1 [get_drc_checks {SYNTH-10 SYNTH-9 SYNTH-8 SYNTH-7 SYNTH-6 SYNTH-5 SYNTH-4}]

    交互式DRCs
    在I/O布局过程中,Vivado IDE会运行一个基本的检查以确保合理的引脚分配,但是只有在实现后设计中的检查才能确保最终引脚分配完全合法。管脚布局时,交互式的I/O布局例行检查会报告常见的错误,这项功能可以在Package窗口或Device窗口的设置中通过Auto check I/O Placement复选框选择是否开启:

    交互式DRCs的检查规则如下:

  • 阻止将高速收发器GTs的管脚赋值给噪声敏感的管脚;
  • 避免I/O标准违反设计规则;
  • 确保I/O标准不会用于不支持它们的I/O Bank;
  • 确保Bank没有不兼容的Vcc端口赋值;
  • 确保需要Vref端口的Bank有可自由使用的Vref管脚;
  • 确保全局时钟和局部时钟有合适的赋值;
  • 确保差分I/O端口设置在合适的管脚上;
  • 确保输出管脚不会布局在仅支持输入的管脚上/
  • Vivado默认开启交互式DRCs功能(交互式指的是用户每执行操作后都运行相关检查),Xilinx也推荐始终开启这个功能。

    查看DRC违规信息
    如果找到了违规信息,会打开DRC窗口,如下所示:

    违规信息根据严重性分为4个等级,图标显示为不同的颜色:

  • Advisory:提供设计过程中的普通状态和反馈;
  • Warning:约束和设置可能没有按设计者意图那样实现,设计结果进行了一些优化;
  • Critical warning:某些用户输入和约束将不会应用或没有遵守最佳做法(必须解决此类问题,否则会在生成bit流过程中升级为error);
  • Error:表明使设计结果不可用和没有设计者干涉软件无法自动解决的问题,会终止设计流程。
  • 违规信息所包含的内容一般比较长,可以单击选中,在Violation Properties窗口中更方便地查看信息(如果属性窗口没有打开,选中信息右键菜单中打开):

    Details信息中给出了具体描述和解决方案,供设计者参考是否要修改设计。有的信息会包含一些蓝色链接,单击可以在其它窗口中交叉探测到产生违规的对象。

    报告Methodology
    在Vivado 2016.1之后的版本中,将部分DRC检查组合为一个新功能Report Methodology中,该功能运行一些简化的规则检查来验证设计(比如逻辑映射),遵从UltraFast设计方法。打开某一阶段设计后,在Flow Navigator中点击此功能:

    如果有设计违规会显示在Methodology窗口,信息查看方式与DRC相同。最好的做法是在Elaborated Design阶段就运行该功能,可以帮助设计者在早期发现设计问题,节约开发成本。

    文章来源:FPGADesigner的博客
    *本文由作者授权转发,如需转载请联系作者本人

    推荐阅读