VCS使用SDF文件进行后仿反标
概述
从概念上来说,数字验证包含两方面的内容,一个是验证功能,另一个是验证时序。对应的仿真模型(不论是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 timingFROM_TYPICAL
选择SDF文件中typical timingFROM_MAXIMUM
选择SDF文件中maximum timingFROM_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文件进行后仿反标相关推荐
- 面试问题-理解数字后仿,其次针对性理解数字后仿中的sdf文件(约束文件)的作用
理解数字后仿,其次针对性理解数字后仿中的sdf文件(约束文件)的作用 1)什么是sdf文件 2)如何反标sdf文件? 1,什么是数字后仿? 2,什么是门级网表? 3,什么是sdf文件 4,如何反标sd ...
- ASIC验证,关于后仿那些事
1. 什么是后仿? 后仿真也被称为时序仿真,或者门级仿真.当芯片在后端完成布局布线后,时序文件SDF文件,会被反标到网表文件上,那么此时针对带有时序信息的网表进行仿真,称为后仿真. 2. 后仿真有何用 ...
- VCS门级仿真系列文章之sdf文件和$sdf_annotate反标
SDF文件(Standard Delay File)提供了延迟信息表示的标准ASCII文件格式,VCS支持版本1.0.1.1.2.0.2.1和3.0. 在SDF格式中可以指定固有延迟(intrinsi ...
- vcs后仿实现的总结
一,后仿平台的搭建 1,准备工作,这块主要包含一下几个的内容需要我们事先准备好: ①,后仿网表,后端提供 后仿的网表指的是,在仿真时,我们不再使用最开始的rtl代码来进行仿真,而是使用将rtl转化为真 ...
- PVT的理解和以及它们在后仿/功耗仿真中的注意点
PVT(process, voltage, temperature)是影响集成电路性能的主要因素. P是指芯片制造过程中的工艺偏差,在不同晶体管/晶片/批次之间,NMOS或PMOS的驱动能力(有时也理 ...
- 数字后仿,SDF文件
目录 数字后仿步骤: 什么是SDF文件? 如何反标SDF文件? (1)作为elaboration的选项 (2)使用系统函数$sdf_annotate 数字后仿步骤: 1.用时序计算工具生成时序信息存储 ...
- 后仿真如何反标SDF文件
从概念上来说,数字验证包含两方面的内容,一个是验证功能,另一个是验证时序.对应的仿真模型(不论是model,standard cell等)也不外乎这两个部分,功能部分由逻辑,udp元件或gate构成, ...
- IC后仿与sdf反标
一.基本SDF信息 SDF(Standard Delay Format)标准延迟格式,用来描述时序信息和约束,为网表仿真提供时序信息.SDF中的时序信息主要由以下组成:iopath delay.int ...
- 一文讲透芯片后仿中的SDF
SDF文件是在vcs/nc-verilog后仿真运行时将STD/IO/Macro门级verilog中specify的延迟信息替换为QRC/Star-RC抽取的实际物理延迟信息,如果SDF文件的条件信息 ...
最新文章
- monkey命令_何小伟:Monkey与MonkeyRunner区别
- JAVA关系表达式解析微引擎
- logrotate管理nginx日志文件
- java中椭圆类_Java中的Graphics2D类基本使用的教程
- python利用cookie模拟登录
- vscode Java语法检查_vscode eslint js代码检查工具
- 利用 MATLAB 编程实现 Newton 法与阻尼 Newton 法
- 计算机手工绘图,你知道做毕业设计的时候为什么一定要有手工绘图呢?
- 使用pandas的话,如何直接删除这个表格里面X值是负数的行?
- Linux 查看磁盘占用空间
- 赶吃花的牛 USACO
- 【面试相关】(三)如何面试程序员?
- 端午节祝福的html,端午节祝福语大全(打油诗版)
- python是什么模块,python中什么是模块
- 多功能报警杆在高速服务区的应用
- ABP中使用MySql数据库
- 【BUG记录】Windows server 2008虚拟机下载安装wireshark和npcap后,打开仍然显示没有接口
- 【XBEE手册】AT命令
- 微信开放平台-- 微信红包发放
- 属猪人士的2009年运程
热门文章
- 清华史上最酷炫女生节福利来袭!女神,与我同乘无人车可好?
- CentOS6 yum源
- apfs扩容_macOS 迁移硬盘后扩容
- Conda安装本地package
- mysql实体完整性实现方法_mysql数据库 --数据完整性---实体完整性-域完整性-参照完整性...
- 告别 Windows、Android,国产操作系统合力破局
- 如何用蓝牙实现无线定位(五)--双定位显示
- 苹果cms V10双域名设置教程 电脑访问www域名 手机访问m
- 邻苯二甲酸酐修饰卵清蛋白(HP-OVA),雷帕霉素偶联卵清蛋白 rapamycin-OVA
- android非root状态,修改文件权限,非Root权限的Android上运行可执行文件