数字电路门级仿真及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 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

[VCS]数字电路门级仿真及SDF反标相关推荐

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

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

  2. 今天为什么仍必须进行门级仿真(GLS)详细讲解

    下面我将详细描述捕获只有在GLS才能发现的16种类型芯片的致命bug的方式,这在我之前在文章中描述过.请确保阅读该文章以了解我在这里所说的内容. GLS成本VS收益率: 工程永远是金钱.是的,从技术上 ...

  3. SOC芯片门级仿真失败的原因分析及其解决办法

    一.跨时钟域 SOC芯片中存在数量众多的时钟域,为了解决时钟域之间的通信或数据交互问题,一种常用的方案是使用两级同步触发器进行同步(俗称打两拍),来自另一个时钟域的信号传输到本时钟域,由于该信号并没有 ...

  4. sdf反标之RETAIN信息

    RETAIN TIME指的是从输入变化后开始计算,输出保持的时间.过了RETAIN TIME后,输出会出现一段X态,直到最终稳定.网表的sdf文件里面会标注路径的RETAIN信息,比如一个两输入的与门 ...

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

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

  6. IC后仿与sdf反标

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

  7. SDF反标为什么没有数值或者与mtm值不一致

    SDF文件描述延迟的内容由一系列用逗号分隔的三元组triplets组成. 这些三元组表示最小延迟.典型延迟和最大延迟.如果未在VCS命令行中指定默认值,则为"Typical". 由 ...

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

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

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

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

最新文章

  1. 独家 | 如何从头开始为MNIST手写数字分类建立卷积神经网络(附代码)
  2. 【转】测试LibreOffice SDK 开发环境配置(Windows)
  3. 临时目录 Path.GetTempFileName()
  4. Dubbo注解版配置
  5. 一个民工的数字化生活
  6. 2.3 线性变换引入
  7. 使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数
  8. object-c中归档的用法
  9. 和大家谈谈数学模型之美
  10. C#中的深度学习:使用OpenCV进行硬币检测
  11. Function function 隐式function
  12. python定时爬取数据_python实现scrapy爬虫每天定时抓取数据的示例代码
  13. contentsize and frame
  14. SQL HAVING 用法详解
  15. 知识变现 常用课程制作实用工具大全(建议保存)
  16. 计算机水平居中,excel表格居中设置可数据还是偏左-excel表格,页面设置选水平居中了,为什么预览时它......
  17. 阿里云对腾讯企业邮箱设置域名解析
  18. 1.1 卡牌对象的创建———自制卡牌游戏之旅
  19. 如何在Mac上重置Apple ID密码?
  20. Facade - 外观模式

热门文章

  1. 中软国际实训日记第八天-7.28
  2. uni-app 图片(文件) 本地存储解决方案
  3. 机器学习——英文特征提取,中文特征提取
  4. 基于php的在线教学系统
  5. Mobileye的2022「答卷」
  6. 观五官知罕见病,AI“望诊”靠谱吗
  7. 戴尔 服务器 主板型号,告别奸商忽悠 选购服务器注意这几方面
  8. 600多个微信小程序源码_点餐系统的开发,java后台+微信小程序 实现完整的餐厅点餐系统。微信扫码点餐小程序源码讲解...
  9. CMIP6数据处理方法与典型案例分析
  10. 刷脸支付有一键成为会员的功能