PrimeTime指南——概述和基本流程

        PrimeTime(PT)是Synopsys的sign-off quality的静态时序分析工具。PrimeTime可以集成于逻辑综合和物理综合的流程,让设计者分析并解决复杂的时序问题,并提高时序收敛的速度。

一、概述

        PT最大的两个特点是:

  1. 基于时序路径进行分析
  2. 由约束(constraint)驱动

        PT可以进行一系列的时序检查

        有一些额外的检查可以在库中指定,例如:
        clock separation:这是对主/从锁存器的约束,在两个时钟之间的最小要求的时钟间隔,以避免锁存器成为transparent。
        nonsequential:这类似于两个数据引脚之间的数据到数据的设置和保持检查。

  • constraint check:由使用者指定的约束检查(如 set_output_delay)
  • library check:由供应商在库中为特定的子单元指定的检查(如 setup/hold)

        STA是基于时序路径进行检查的,在STA中,对时序路径的定义如下:

        一共有四类路径,我们使用report_global_timing命令就可以查看违例的时序路径:

        此外,我们可以使用report_analysis_coverage命令来查看一个简单的汇总报告:

        PT具有非常多的功能,而在使用PT之前,我们首先要知道PT的使用要求,即其最基本的输入要求:

         其中,SPEF 是 IEEE标准的寄生交换格式,GPD是synopsys公司寄生交换格式。

二、PT 的 Analysis Flow 

        PrimeTime的时序分析主要有以下几步:

  1. 载入设计与相关库文件
  2. 读入相关寄生参数
  3. 载入约束文件,包括时序约束
  4. 进行分析并产生报告
  5. 保存session
  6. 退出
  7. 恢复session

        这个STA流程需要反复迭代进行,直到达到sign off的要求。 

1、读入设计与相关库文件

        使用read_verilog命令即可读入设计文件,而current design命令是用来设置Top的。

         其中,list_designs的标识含义如下:

  • * :指明该design是current design
  • L:指明该design已经链接
  • N:指明该design不在memory中(未载入PT中)
  • l:指明该design部分链接

        在PT读入设计及相关库文件之前,常常设置两个路径变量,以方便地解决文件查找的问题:

        1、指定Prime Time搜索设计、逻辑库和其他设计数据的目录,如时序模型。通过设置search_path变量来完成此任务:

pt_shell> set_app_var search_path "目录路径"

        Prime Time会按照你指定的顺序搜索这些目录。

        2、通过设置 link_path 变量来指定 PrimeTme 在设计层次中寻找库文件。

pt_shell> set_app_var link_path "目录路径"

        该变量可以包含短线(-)、库名和文件名。*指示PrimeTime在内存中搜索设计。Prime Tme按照你指定的顺序搜索库。主库是link_path中的第一个库。

        使用link_design就可以读入相关的库文件:

 2、读入相关寄生参数

        利用read_parasitics命令即可读入寄生参数相关文件,使用-format即可指定读入的文件格式:

        PrimeTime支持以下格式的文件:

  1. Galaxy Parasitic Database(GPD)
  2. Standard Parasitic Exchange Format(SPEF)
  3. Detailed Standard Parasitic Format(DSPF)
  4. Reduced Standard Parasitic Format(RSPF)
  5. Milkyway(PARA)

         PrimeTime推荐使用GPD以及SPEF格式的文件。

        在读入寄生参数后,我们可以利用以report_annotated_parasitics命令来检查寄生参数标记的情况:

         需要注意的是,read_parasitics命令会自动显示该报告,我们也可以在read_parasitics时检查PARA- RC-Warnings。

        任何未被标记的pin to pin nets都需进一步检查。Driveless 和Loadless nets 通常是未使用的pin造成的,这些未标记的nets一般来说是正常的。

3、读入约束文件

        使用read_sdc读入设计约束文件:

         再读入约束文件后,需要进行约束完整性的检查,使用check_timing -verbose命令:

         最后,一些单周期静态STA的例外情况有以下几种,即需要单独进行分析:

  1. False path
  2. Multi-cycle path
  3. set_max_delay and set_min_delay

        而没有正确指定的例外情况需要忽略,使用report_exceptions -ignore命令进行查看:

 4、进行分析

         PBA: Path Based Analysis

        在save_session前运行PBA选项可以避免在恢复session后重新计算。

         而使用report_timing命令,配合其选项可以产生更详尽的报告:

         GBA:Graph Based Analysis

5、保存session

        使用save_session可以保存session

pt_shell>save_session $session_directory

        一个保存好的session包含以下信息用于恢复。

  1. 链接的设计和加载的库
  2. 时钟、时序例外和其他约束条件
  3. 操作条件
  4. 反标SDF的延迟和寄生参数
  5. 变量设置
  6. 网表编辑(insert buffer、size cell、swap cell)。
  7. 分析数据
  8. 交叉耦合(cross-coupled)的延迟数据和噪声数据

        其目录格式如下(以orca项目为例):

6、退出

        一般使用以下命令完成退出

     

        当然,也可以单独使用这两个指令:

7、恢复session        

        使用restore_session可以保存session

pt_shell>restore_session $session_directory

三、配置文件及脚本

        setup file是PrimeTime的配置文件,其文件名为 .synopsys_pt.setup,当PT运行时会自动执行,完成配置工作。

        setup file一共有三个层级,其优先级如下:

        可以使用synopsys提供的RMgen(reference methodology generate)工具生成PT运行脚本的模板:

        其中,pt.tcl就是PT的运行脚本,其内容如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android开发——RecyclerView特性以及基本使用方法(二)

0. 前言随着Android的发展,虽然ListView依旧重要,但RecyclerView确实越来越多的被大家使用。但显然并不能说RecyclerView就一定优于ListView,而是应该根据不同的需求选择最合适的进行使用。本篇将介绍我们为什么要使用RecyclerView&#xff…

pycharm中使用scrapy命命

2019独角兽企业重金招聘Python工程师标准>>> 这篇博客写的不错,亲测 https://blog.csdn.net/MAOZEXIJR/article/details/80678133 转载于:https://my.oschina.net/u/2511906/blog/1934993

PrimeTime指南——合理设置约束

完整的STA需要满足以下两点: 完整的设计约束(完整并不意味着正确)运行所有需要的时序检查可以用以下两条命令来进行完整性的检查: check_timing // 检查是否缺少了约束条件 report_analysis_cove…

tablayout支持改变选中文字大小,支持左右滑动,支持viewpager,支持三角可移动指示器...

TabLayout [简书地址] (https://www.jianshu.com/p/2c3f868266e8) 基于大神的FlycoTabLayout [传送地址和基本用法](https://github.com/H07000223/FlycoTabLayout) 用法和属性和这个库一样 效果图如下 主要添加一个属性 tl_text_select_size 控制选中文字大小 看代码截图 然后…

Design Compiler指南——概述和基本流程

综合是前端模块设计中的重要步骤之一,综合的过程是将行为描述的电路、RTL级的电路转换到门级的过程;Design Compiler是Synopsys公司用于做电路综合的核心工具,它可以方便地将HDL语言描述的电路转换到基于工艺库的门级网表。本文将简单介绍综合…

linux常用网络命令

关键词:linux网络命令、ifconfig、route、ip、netstat、socket flag 引言: 想成为真正的高手,必须要熟练掌握linux系统的命令行操作,今天就回顾一下linux在网络上的常用命令相关知识, 另外,实践才是最终的方…

javaweb(三十八)——mysql事务和锁InnoDB(扩展)

MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题&…

Design Compiler指南——预综合过程

预综合过程是指在综合过程之前的一些为综合作准备的步骤,包括Design Compiler的启动、设置各种库文件、创建启动脚本文件、读入设计文件、DC中的设计对象、各种模块的划分以及Verilog的编码等等。 一、Design Compiler的启动 目前,DC的启动方式有三种&a…

KAFKA介绍(分布式架构)

2019独角兽企业重金招聘Python工程师标准>>> 介绍 Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统术语: Kaf…

Design Compiler指南——施加设计约束

Design Compiler是一个约束驱动(constrain-driven)的综合工具,它的结果是与设计者施加的约束条件密切相关的。在本文里,我们主要讨论怎样给电路施加约束条件,这些约束主要包括——时序和面积约束、电路的环境属性、时序和负载在不同模块之间的…

程维柳青发布道歉声明:滴滴顺风车业务将无限期下线

雷锋网(公众号:雷锋网)消息,8 月 28 日晚间,滴滴创始人兼 CEO 程维和滴滴总裁柳青正式发出道歉声明,向受害者和受害者家属道歉——这已经离本次滴滴顺风车悲剧的发生整整四天的时间。 声明表示,滴滴不再以规模和增长作…

Design Compiler指南——设计综合过程

在前面一章介绍完施加约束之后,接下来要做的工作就是将设计进行综合编译(compile),本文我们将主要讨论综合编译的过程。主要分为这样几个部分: 优化的三个阶段及其特点编译的策略编译层次化的设计 一、优化的三个阶段 这一节我们介绍Design …

Design Compiler指南——后综合过程

本文我们着重讨论使用Design Compiler综合大型设计时要注意的一些问题,比如怎样调整综合方法,出现约束违反后怎样修正,怎样给不同的子模块作时序和负载预算,以及给整个设计在具体综合之前先作一个预估(Design Exploration)等等。 …

如何寻回xp盘符丢失的数据

分区丢失是比较常见的数据恢复案例,需要注意,分区丢失后不要再重建新的分区。保护好资料丢失现场,可以最大程度的恢复出资料。具体的恢复方法看正文了解。 工具/软件:星空数据恢复软件 步骤1:先百度搜索并下载程序打开…

Visual computing——概述

Visual Computing(视觉计算)是所有处理二维图像和三维模型的计算机科学学科的总称,即计算机图形学、图像处理、可视化、计算机视觉、虚拟和增强现实、视频处理,但也包括模式识别、人机交互、机器学习等方面。核心挑战是视觉信息&a…

推荐!手把手教你使用Git

一:Git是什么? Git是目前世界上最先进的分布式版本控制系统。 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑&#xff0…

I2C协议学习

I2C Bus(Inter-Integrated Circuit Bus) 最早是由Philips半导体(现被NXP收购)开发的两线式串行总线,常用于微控制器与外设之间的连接。 一、概述 以下是 I2C 总线的一些特性: 只需要两条总线;一条串行数据线 (SDA) 和…

P1136 迎接仪式

P1136 迎接仪式 题目描述 LHX教主要来X市指导OI学习工作了。为了迎接教主,在一条道路旁,一群Orz教主er穿着文化衫站在道路两旁迎接教主,每件文化衫上都印着大字。一旁的Orzer依次摆出“欢迎欢迎欢迎欢迎……”的大字,但是领队突然…

云服务器 VNC 远程连接

此服务器买来是为了搭建IC EDA云的,因此选用的是centOS 6的环境,对各EDA软件兼容较好。本人手头拮据,因此买的是腾讯云活动期间的云服务器,只能说够用吧。 一、桌面安装 在云服务器控制台登陆上远程主机,依次执行下列…

Python自动化测试框架有哪些?

作者 | KITTY GUPTA 译者 | 张健欣 令开发者万分高兴的是,开发自己的测试框架的日子终于结束了。以前,开发团队接手一个项目并开始开发时,除了项目模块的实际开发之外,他们不得不为这个项目构建一个自动化测试框架。一个测试框架应…