1

后仿检查

  • 数模接口
  • 异步路径
  • 时序紧张的同步路径
  • 时钟和复位
  • 不定态扩散问题

重要用例和场景

  • 启动
  • 复位
  • 时钟切换

后仿网表

  • post-synth netlist
  • post-dft netlist
  • post-pnr netlist
  • post-pnr netlist with PG

通常后仿用例

  1. 跨时钟域异步关系
  2. 上下电和启动流程
  3. 数模接口时序关系
  4. 时钟复位相关:时钟无毛刺切换、复位去毛刺滤波、复位解复位顺序等
  5. 加了false path或multicycle path的路径
  6. 对时钟加频偏
  7. memory内容初始化或不初始化

检查

  1. 复位后,register X态
  2. 复位后,重要模块输入输出状态

Violation处理

  1. violation file

    • 跨时钟域数据传输同步的第一级DFF
    • 异步复位同步释放电路的Rn和CK端之间Path
  2. POR复位生效前的violation log需要忽略
  3. violation log要按IP模块划分
  4. 提供各个violation log的waive方法,建议用脚本处理后给设计者review

X态分析

遇到X态,试着从以下几个角度分析。

  1. 是否所有的DUT input端口都给予了一个确定值?
  2. 没有复位端的寄存器有没有作初始化?
  3. DUT里有哪些Memory, 是否有必要进行初始化?
  4. 如果是Timing violation引起的X态,则需要先分析Timing violation

对环境建议

  • 环境中不要用force
  • 不要过多使用编译期宏
  • 把变化控制留在runtime

VCS相关

options

use for zero delay GLS

+nospecify
+notimingcheck

don't use them for Post-PR netlist

VCS options

-sdf min|typ|max:instance_name:file.sdf
+sdfverbose
+optconfigfile=noTiming.cfg
-sdf_logfile 

noTiming Config file Format

module {list_of_module_identifiers} {list_of_attributes};

or

instance {list_of_module_identifiers_and_hierarchical_names} {list_of_attributes};

or

tree [(depth)] {list_of_module_identifiers} {list_of_attributes};

Attributes for timing:

noIopath: Disables module path delays in the specified module instances.
Iopath: Enables module path delays in the specified module instances.
noSpecify: Disables the specify blocks in the specified module instances.
Specify: Enables specify blocks in the specified module instances.
noTiming: Disables timing checks in the specified module instances.
Timing: Enables timing checks in the specified module instances.

举例:
后端提供一个sync cell的list, 然后写成noTiming config file.

instance {tb_top.u_dut.u_sync_cell0} {noTiming};

system task for sdf

$sdf_annotate ("sdf_file"[, module_instance] [,"sdf_configfile"][,"sdf_logfile"][,"mtm_spec"] [,"scale_factors"][,"scale_type"]);
  • "sdf_file": Specifies the path to an SDF file.
  • module_instance: Specifies the scope where back-annotation starts. The default is the scope of the module instance that calls $sdf_annotate.
  • "sdf_configfile": Specifies the SDF configuration file. For more information on the SDF configuration file, see the “SDF Configuration File” section.
  • "sdf_logfile": Specifies an SDF log file to which VCS sends error messages and warnings. By default, VCS displays no more than ten warnings and ten error messages about back-annotation and writes no more than that in the log file you specify with the -l option. However, if you specify the SDF log file with this argument, the SDF log file receives all messages about back-annotation. You can also use the +sdfverbose runtime option to enable the display of all back-annotation messages.
  • "mtm_spec": Specifies which delay values of min:typ:max triplets VCS back- annotates. Its possible values are "MINIMUM", "TYPICAL", "MAXIMUM", or "TOOL_CONTROL" (default).
  • "scale_factors": Specifies the multiplier for the minimum, typical, and maximum components of delay triplets. It is a colon separated string of three positive, real numbers "1.0:1.0:1.0" by default.
  • "scale_type": Specifies the delay value from each triplet in the SDF file for use before scaling. Its possible values are "FROM_TYPICAL", "FROM_MIMINUM", "FROM_MAXIMUM", and "FROM_MTM" (default).

harriszh
338 声望131 粉丝

做些有趣的事,留些有用的存在


引用和评论

0 条评论