概述

从概念上来说,数字验证包含两方面的内容,一个是验证功能,另一个是验证时序。对应的仿真模型(不论是model,standard cell等)也不外乎这两个部分,功能部分由逻辑,udp元件或gate构成,时序部分则包括了时序反标和时序检查两小块。

平时我们所说的功能验证,也就是前仿真,实现了对功能进行验证的目的,时序被默认为理想情况,不包含延迟信息。门级仿真,也称为后仿真,除了功能验证外,最主要就是用来检查时序是否满足,有没有时序违例的情形。

门级仿真根据网表不同,又可以分为综合后仿真,以及pnr后仿真。前者是用综合后的网表进行仿真,这时由于hold没有修,所以会出现不少时序违例的情况,真正timing clean的网表是后端做完布局布线,修修补补完timing的网表,我们称为pnr网表。

进行pnr网表的后仿真时,我们需要告知仿真工具cell与cell之间的延迟,D端到Q端的延迟,这里,我们就要请出主角SDF文件,闪亮登场!

  • 什么是SDF文件?

SDF(Standard delay file)文件是把布局布线过程中器件延时和线延时的信息保留下来,据此就可以在路径时序分析时将整条路径的时序计算出来,再判断时序约束条件就能知道是否满足时序要求了。

  • 如何反标SDF文件?

反标SDF文件有两种方法,一种作为elaboration的选项指定,另一种是在bench中调用系统函数$sdf_annotate来完成。

  • 作为elaboration的选项

-sdfmin|typ|max:instance_name:file.sdf

如vcs-sdf min:top.i_test.:test.sdf

  • 使用系统函数$sdf_annotate

$sdf_annotate (“sdf_file”[, module_instance] [,“sdf_configfile”][,“sdf_logfile”][,“mtm_spec”] [,“scale_factors”][,“scale_type”]);

这里除了sdf_file必须给出外,其他参数可以使用默认值,如:

$sdf_annotate(“test.sdf”);

要说明下参数scale_type,sdf文件中时序信息都会由3个数字组成,分别对应是minimum,typical,maximum三种情形下的延迟(当然,有时候会只有minimum和maximum的情况,那么typical的延迟没有就省略)

scale_type的可取值为:

  • FROM_MINIMUX
    选择SDF文件中mininum timing

  • FROM_TYPICAL
    选择SDF文件中typical timing

  • FROM_MAXIMUM
    选择SDF文件中maximum timing

  • FROM_MTM
    系统默认

如何确认成功反标呢?

反标完成后,可以从log中看到这样一句话:

例子

这样我们就反标完成了,接下来让我们通过后仿波形,验证下设计中延迟和sdf文件中延迟是否一致。

我们在i_test中例化了一个DLY4类型的名为i_delay的cell。

从库文件中我们能够找到DLY4这个cell

可以看到DLY4这个cell里面包含了一个buf,功能是将输入A 延迟一点时间输出到Y,这个module里面包含了specify块,里面定义了A到Y的延迟。

那么,我们在后仿过程中会使用这里specify的延迟么?

先不回答这个问题,我们继续往下看~

看下SDF文件中对DLY4如何定义的?

从SDF文件中,我们可以看到对于上升沿而言,A到Y的延迟分别是0.225(min),0.226(max)

将SDF反标进后仿网表,通过仿真我们来验证下A到Y的延迟值

至此,我们完成了一个cell的反标,并验证了后仿波形中信号的实际延迟和sdf中定义的相一致。

再回到刚才提出的问题,在反标SDF后,specify块中定义的延迟值不再有用,取代的将是SDF文件中的延迟。

存在跨异步如何处理

1. 抽取SDF时,排除。
除去相应单元的 D setup time 和 D hold time。
2. 不导入SDF文件,仿真不带SDF的netlist
+nospecify
Suppresses module path delays and timing checks in specifyblocks.
+notimingcheck
Suppresses timing checks in specify blocks.

+no_notifier
Disables the toggling of the notifier register that you specifyin
some timing check system tasks.
3. VCS提供了很好的方法:
vcs +optconfigfile+vcs_cfg
================vcs_cfg 的内容==========
instance {tb_top.U_TOP.U_CORE.U_Async} {noTiming}
=============================================
或者 vcs +optconfigfile+async.list
async.list内容:
instance {tb_top.U_TOP.U_CORE.U_Async} {noTiming}

注:0. 直接在vcs选项后添加optconfigfile及vcs_cfg即可;
1. vcs_cfg可以针对module、instance、tree起作用;
2. vcs_cfg可以添加的选项有noTiming、noSpecify、noIopath;

转载:http://blog.sina.com.cn/s/blog_9c9b95910102yqqu.html

VCS使用SDF文件进行后仿反标相关推荐

  1. 面试问题-理解数字后仿,其次针对性理解数字后仿中的sdf文件(约束文件)的作用

    理解数字后仿,其次针对性理解数字后仿中的sdf文件(约束文件)的作用 1)什么是sdf文件 2)如何反标sdf文件? 1,什么是数字后仿? 2,什么是门级网表? 3,什么是sdf文件 4,如何反标sd ...

  2. ASIC验证,关于后仿那些事

    1. 什么是后仿? 后仿真也被称为时序仿真,或者门级仿真.当芯片在后端完成布局布线后,时序文件SDF文件,会被反标到网表文件上,那么此时针对带有时序信息的网表进行仿真,称为后仿真. 2. 后仿真有何用 ...

  3. VCS门级仿真系列文章之sdf文件和$sdf_annotate反标

    SDF文件(Standard Delay File)提供了延迟信息表示的标准ASCII文件格式,VCS支持版本1.0.1.1.2.0.2.1和3.0. 在SDF格式中可以指定固有延迟(intrinsi ...

  4. vcs后仿实现的总结

    一,后仿平台的搭建 1,准备工作,这块主要包含一下几个的内容需要我们事先准备好: ①,后仿网表,后端提供 后仿的网表指的是,在仿真时,我们不再使用最开始的rtl代码来进行仿真,而是使用将rtl转化为真 ...

  5. PVT的理解和以及它们在后仿/功耗仿真中的注意点

    PVT(process, voltage, temperature)是影响集成电路性能的主要因素. P是指芯片制造过程中的工艺偏差,在不同晶体管/晶片/批次之间,NMOS或PMOS的驱动能力(有时也理 ...

  6. 数字后仿,SDF文件

    目录 数字后仿步骤: 什么是SDF文件? 如何反标SDF文件? (1)作为elaboration的选项 (2)使用系统函数$sdf_annotate 数字后仿步骤: 1.用时序计算工具生成时序信息存储 ...

  7. 后仿真如何反标SDF文件

    从概念上来说,数字验证包含两方面的内容,一个是验证功能,另一个是验证时序.对应的仿真模型(不论是model,standard cell等)也不外乎这两个部分,功能部分由逻辑,udp元件或gate构成, ...

  8. IC后仿与sdf反标

    一.基本SDF信息 SDF(Standard Delay Format)标准延迟格式,用来描述时序信息和约束,为网表仿真提供时序信息.SDF中的时序信息主要由以下组成:iopath delay.int ...

  9. 一文讲透芯片后仿中的SDF

    SDF文件是在vcs/nc-verilog后仿真运行时将STD/IO/Macro门级verilog中specify的延迟信息替换为QRC/Star-RC抽取的实际物理延迟信息,如果SDF文件的条件信息 ...

最新文章

  1. monkey命令_何小伟:Monkey与MonkeyRunner区别
  2. JAVA关系表达式解析微引擎
  3. logrotate管理nginx日志文件
  4. java中椭圆类_Java中的Graphics2D类基本使用的教程
  5. python利用cookie模拟登录
  6. vscode Java语法检查_vscode eslint js代码检查工具
  7. 利用 MATLAB 编程实现 Newton 法与阻尼 Newton 法
  8. 计算机手工绘图,你知道做毕业设计的时候为什么一定要有手工绘图呢?
  9. 使用pandas的话,如何直接删除这个表格里面X值是负数的行?
  10. Linux 查看磁盘占用空间
  11. 赶吃花的牛 USACO
  12. 【面试相关】(三)如何面试程序员?
  13. 端午节祝福的html,端午节祝福语大全(打油诗版)
  14. python是什么模块,python中什么是模块
  15. 多功能报警杆在高速服务区的应用
  16. ABP中使用MySql数据库
  17. 【BUG记录】Windows server 2008虚拟机下载安装wireshark和npcap后,打开仍然显示没有接口
  18. 【XBEE手册】AT命令
  19. 微信开放平台-- 微信红包发放
  20. 属猪人士的2009年运程

热门文章

  1. 清华史上最酷炫女生节福利来袭!女神,与我同乘无人车可好?
  2. CentOS6 yum源
  3. apfs扩容_macOS 迁移硬盘后扩容
  4. Conda安装本地package
  5. mysql实体完整性实现方法_mysql数据库 --数据完整性---实体完整性-域完整性-参照完整性...
  6. 告别 Windows、Android,国产操作系统合力破局
  7. 如何用蓝牙实现无线定位(五)--双定位显示
  8. 苹果cms V10双域名设置教程 电脑访问www域名 手机访问m
  9. 邻苯二甲酸酐修饰卵清蛋白(HP-OVA),雷帕霉素偶联卵清蛋白 rapamycin-OVA
  10. android非root状态,修改文件权限,非Root权限的Android上运行可执行文件