PT静态时序分析 第一课 第二课
绪论
目录:
第一到第四课比较重要
第一课
STA原理
静态时序分析是一种穷尽分析方法,用以衡量电路性能。
STA主要有三个步骤:
1.设计被分解为时序路径(timing path)
2.计算所有路径的延时(delay)
3.检查路径的延时是否能满足约束条件第一步: 四种路径:
1.输入端口到ff输入口
2.ff的时钟端口到ff输入口
3.ff的时钟端口到输出端口
4.输入端口到输出端口
第二步:两种计算
1.post-layout:从版图的寄生参数中算出,可以通过sdf文件直接导入到pt当中
2.pre-layout:从technology library当中查表算出,模型并不完全准确第三步:约束
STA流程
- 第一步:Read design & libraries
读入.db文件,verilog网表,读入vhdl文件,读入库,分别对应以下命令:
read_db
read_verilog
read_vhdl,read_edif
lappend link_path Your_tech_lib.db
- 第二步:Constrain design
根据上图写出的约束如下所示:
create_clock -period 5 [get_ports CLK]
set_input_delay 1 -max -clock Clk [get_ports In_N]
set_output_delay 2 -max -clock Clk [get_ports Out_M]
其它约束:
- 第三步:specify delay calculation information
读入已有版图的网表延迟,读入已有版图的寄生参数,对应以下命令:
read_sdf
read_parasitics
Timing reports
报告中的path type是max就是setup check,是min就是hold check。
第二课
Pre-layout constraint
以下面电路作为例子:
设置的约束如下所示:
create_clock -period 30 [get_ports Clk1]
create_clock -period 20 [get_ports Clk2]
create_clock -period 10 -name Clk3
create_clock -period 15 -name Clk4 #Clk3和Clk4在模块外,因此要额外注明
set_clock_uncertainty 0.35 [get_clocks Clk1]
set_clock_uncertainty 0.4 [get_clocks Clk2]
set_clock_transition 1.0 [get_clocks "Clk1 Clk2"]
set_clock_latency 0.5 [get_clocks Clk1]
set_clock_latency 0.6 [get_clocks Clk2]
set_input_delay 0.0 -clock Clk3 [get_ports Data_In]
set_output_delay 0.0 -clock Clk4 [get_ports Data_Out] #疑问,如果延迟为0为什么要设置约束?
set_false_path -from [get_clocks Clk3] -to [get_clocks Clk1]
set_false_path -from [get_clocks Clk2] -to [get_clocks Clk4]
uncertainty约束包括skwe,jitter和毛刺,在pre-layout可以不考虑毛刺或者部分约束。
setup/hold的计算方法
由于Clk1和Clk2周期不同,在计算setup/hold time时所取的边沿也要进行调整。如何检查时钟约束的添加情况?
report_clock -attributes -skew #根据约束的属性列出
check_timing
Post-layout constraint
时钟延时的设置变化为下面的命令:
set_propagated_clock
#具体示例如下:
read_sdf top.sdf
set_propagated_clock [all_clocks]
report_timing -path full_clock #clk到reg之间的延时也会被列出来
- pre-layout vs post-layout
Clock Source Latency
电路的延时除了network latency以外还有source latency,设置的命令如下:
#set_clock_latency 0.54 [get_clocks CLK] Pre-layoutset_propagated_clock [all_clocks] #Post-layout
set_input_delay -source_latency_included -max 1.4 #Post-layout
Q:要如何设置比较准确的source latency?
A:使用-early和-late选项
set_clock_latency 2.5 -source -early [get_clocks CLK]
set_clock_latency 3.5 -source -late [get_clocks CLK]
setup time的检查中,最大延时算入信号路径,最小延时算入时钟路径。
holdtime的检查中,最大延时算入时钟路径,最小延时算入信号路径
Generated Clocks
对于在电路内部生成的时钟也要额外的命令去设置,才能让PT识别:
create_clock -per 10 [get_ports SYSCLK]
create_generated_clock -name DIVIDE \-source [get_pins U4/CLK] -divide_by 2 [get_pins U4/Q]
Keep Clocks “Clean”
- minimum pulse width
PT可以检查FF上的最小时钟宽度是否满足要求,当时钟树定义完毕并在计算完时钟路径的延时后,执行对最小时钟宽度的检查。
set_min_pulse_width -high 1.5 [all_clocks]
set_min_pulse_width -low 1.0 [all_clocks]
- gating clock
为了防止gating clock出现毛刺,可以利用约束检查gating信号相对于时钟信号的setup和hold time
设置后PT会根据电路的逻辑自动判断出门控时钟信号,但是在一些复杂的单元之中需要手动设置。
create_clock -period 10 [get_ports CLOCK]
set_clock_analysis 0 [get_ports SCAN_CLOCK]
set_clock_gating_check -high -setup 0.5 -hold 0.4 [get_cells U1]
report_clock_gating_check
***注意:约束通过后不产生毛刺的前提是已经规划好了gating信号到来的时间。
Post-layout Analysis
- OCV
on-chip variation,PT会根据芯片的PVT环境分析不同情况下的延时。
OCV分析需要有后端实现后的sdf文件
read_sdf -analysis_type on_chip_variation TOP.sdf
PT静态时序分析 第一课 第二课相关推荐
- 计算机的发展与什么息息相关,第一单元第二课《计算机的发展与应用》.doc
文档介绍: EvaluationWarning:ThedocumentwascreatedwithSpire..磅檄斑吹番独岔侵赁砖若略垃湃淹止窥阐腻髓踪寓碧直杨棒敲骗炼汪滇垮鄂宅诬蹭侄袋质批德恰篓胜 ...
- 【C++探索之旅】第一部分第二课:C++编程的必要软件
内容简介 1.第一部分第二课:C++编程的必要软件 2.第一部分第三课预告:第一个C++程序 C++编程的必要软件 经过上一课之后,大家是不是摩拳擦掌,准备大干一场了呢. 这一课我们来做一些C++开发 ...
- Linux 探索之旅 | 第一部分第二课:下载 Linux,免费的噢
-- 作者 谢恩铭 转载请注明出处 内容简介 第一部分第二课:下载Linux,免费的噢 第一部分第三课预告:测试并安装Ubuntu 下载Linux,免费的噢 大家好,上一课 Linux探索之旅 | 开 ...
- 商务汇报PPT制作的七堂课-第二课:模板制作
继续更新PPT制作与美化第二课的内容-模板制作. 大帽子就不用扣了,反正模板对于一份PPT很重要. 首先和大家澄清一个概念,母版和模板 什么是母版呢? 母版可以帮助我们设置PPT的统一格式,设置好之后 ...
- 深入浅出CChart 每日一课——第二课 上一课代码分析,骨骼精奇之一点即通 .
在第一课中,笨笨编写了少量的代码.对CChart不熟悉的人对部分代码可能不能理解,下面给同学们解释一下. 第一段代码如下. #include "Chart.h" #ifdef _D ...
- 静态时序分析 第一章 引言(Introduction)
目录 Introduction 1.1 Nanometer Designs 1.2 What is Static Timing Analysis? 1.3 Why Static Timing Anal ...
- PT静态时序分析 第三课 第四课
第三课 Timing Exceptions 即时序例外 Using Timing Exceptions 上一节课所讲到的时钟约束都是针对常规的单周期时钟,默认施加在所有path上.若有些path并不是 ...
- PT静态时序分析 第八课
第八课 Quick Timing Models Overview QTM用于为没有门级网表的模块建立时序模型,但是仍然有一定的时序特性,相当于黑盒子. 常用于供系统工程师在布局或者顶层电路的时序分析时 ...
- 数据结构和算法 | 第一部分第二课:小鸭子们去旅行
作者 谢恩铭,公众号「程序员联盟」. 转载请注明出处. 原文:https://www.jianshu.com/p/31d14bd080d4 内容简介 引出算法复杂度的故事 两种算法 两种算法的对比 第 ...
最新文章
- 一个CV算法工程师在技术方面的反思!
- 轻断食是一种科学的减肥方法吗?
- STM32 驱动例程
- 3D 三角形的前面和后面
- 压缩感知(II) A Compressed Sense of Compressive Sensing (II)
- 总结 Visual Studio 2019 发布以来 XAML 工具的改进
- 浅谈 EF CORE 迁移和实例化的几种方式
- 类与对象的关系 java 1615134802
- 图解WebGLThree.js工作原理
- 我的2009:知识管理篇
- k8s学习: 使用 MetalLB 给测试环境配置LoadBalancer 服务
- html查看详情,vue实现点击按钮“查看详情”弹窗展示详情列表操作
- ubuntu系统,网页版音乐播放器无声音
- Linux CentOS 6不能使用yum安装命令
- VMware 苹果虚拟机 Xcode真机调试失败 设备不信任该机器
- 3D成像方法汇总(原理解析):双目视觉、激光三角、结构光、ToF、光场、全息...
- 做数据分析需要学什么?这几项技能你掌握了吗?
- Autonomous automobile trajectory tracking for off-road driving翻译学习
- 【数据结构应用】航空客运订票系统
- Restful 风格的通信接口
热门文章
- mysql本周 下周下月,mysql 日期计算,今天,明天,本周,下周,本月,下月
- liunx邮件群发服务器,邮件发送服务器 Postfix
- 让 Nginx 支持 WAF 防护功能web防火墙 - 沧海一粟 - Web系统架构与服务器运维,php开发...
- 基于C++的Qt计算器
- Spring Boot多模块包扫描问题
- 《国资报告》专访高煜光 | 国企数字化转型如何拥抱超自动化?
- 深度学习这么调参训练_深度学习调参技巧
- android+学籍管理,论文基于android的学籍管理系统的设计与实现.doc
- 无法用 CString 类型的值初始化 CWnd 类型的引用(非常量限定)
- using the Connector/J connection property 'autoReconnect=true' to avoid this problem