从概念上来说,数字验证包含两方面的内容,一个是验证功能,另一个是验证时序。对应的仿真模型(不论是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文件中的延迟。

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

后仿真如何反标SDF文件相关推荐

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

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

  2. cadence数模混合仿真反标sdf

    数模混合IC设计时经常要调用一些Verilog模块(最简单的例如SPI接口),在前仿时一般直接用rtl代码来仿真,但是后仿时要关注因寄生带来的延迟,避免这些额外的延迟导致时序错误,因此不能简单地采用R ...

  3. VCS使用SDF文件进行后仿反标

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

  4. [VCS]数字电路门级仿真及SDF反标

    数字电路门级仿真及SDF反标 一.概述 从概念上来说,数字验证包含两方面的内容,一个是验证功能,另一个是验证时序.对应的仿真模型(不论是model,standard cell等)也不外乎这两个部分,功 ...

  5. 数字后仿,SDF文件

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

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

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

  7. [VCS]后仿真中的几个基本概念

    后仿真中的几个基本概念 网表: 网表是逻辑电路设计转化为物理实现的工作产品,网表可以有各种抽象级,例如门级网表和晶体管级网表.门级网表通常用于数字电路,晶体管级网表通常用于模拟电路. 门级网表 门级网 ...

  8. SDF文件【简要说明】

    SDF (Standard Delay Format),标准延时格式文件,常用延迟反标注.该文件包含了仿真用到的所有 IOPATH,INTERCONNECT的延时. 线延时: (INTERCONNEC ...

  9. 门级仿真经验(SDF反标及其工作原理)

    门级仿真经验(SDF反标及其工作原理) Standard Cell的仿真模型:首先我们先看一个stand cell的仿真模型 一般情况下,仿真模型包括两个部分,一个部分是功能部分也就是这个standc ...

最新文章

  1. python3 opencv_Python3 OpenCV3 图像处理基础
  2. Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quickstart
  3. appium 移动端自动化测试工具(4)
  4. Android Studio使用Google Flutter完整教程
  5. 世界上最诡异的画,到底为何让无数人闻风丧胆?
  6. 牛客题霸 [ 求路径] C++题解/答案
  7. linux下安装svn1.7
  8. js中数组原型Array、自定义原型函数Array.prototype
  9. 118页/8万字重磅(附下载)| 全球智能网联汽车产业深度报告:未来已来 掘金智能网联汽车时代【华西汽车 崔琰团队】
  10. BC26接入电信平台
  11. 注册和登录Github
  12. 如何让微软Onedrive同步其他硬盘的文件
  13. CAD绘制固定矩形批注(网页版)
  14. Phython学习—— 基础语法
  15. 记一次生产事故排查——CPU高负载原因排查分析
  16. 三次握手时,客户端发送的 SYN 报文为什么会被丢弃?
  17. 二叉树的非递归遍历详解
  18. 前端资深技术专家苏千的“三迁”故事
  19. Java 监控直播流rtsp协议转rtmp、hls、httpflv协议返回浏览器
  20. 华师大 OJ 3040

热门文章

  1. php 导出导入excel
  2. JS: 火星坐标gcj02、百度坐标bd09II、WGS84坐标相互转换及墨卡托转经纬度百度墨卡托bd09mc
  3. 图像去雾算法评价指标
  4. php的getopt函数,PHP 中 getopt 函数的用法
  5. 第一次写博客-C/C++软件开发工程师需要学习哪些东西?
  6. python时域波形特征分析
  7. 数学里的 e 为什么叫做自然底数?
  8. 小学三年级信息技术认识计算机教案,【ppt 课件】三年级 小学信息技术课件_第2课_认识计算机课件教案.ppt...
  9. WinForm实现Rabbitmq官网6个案例-Publishe/Subscribe
  10. 计算机网络课程设计 文华学院,计算机网络课程设计-校园网的组建与设计.doc