静态时序分析(STA)——跨时钟域时序、多时钟
静态 分析 时钟 时序
2023-09-14 09:13:05 时间
目录
基本知识点是一方面,更重要的是能够详细看懂并分析时序报告的各项内容。
1、跨时钟域时序
1、慢时钟域到快时钟域
如下图的示例,
需要注意的是,作用在D触发器时钟引脚的两个时钟,都是由CLKP时钟继承而来的,即时钟同源。这种情况可以进行约束。
但是如果两个时钟域完全没有任何关系,即时钟不同源,那么就应该设置伪路径,不让STA进行分析。
#时钟定义:
create_clock -name CLKM \
-period 20 -waveform {0 10} [get_ports CLKM]
create_clock -name CLKP \
-period 5 -waveform {0 2.5} [get_ports CLKP]
此时的约束一般用多周期约束。如:
set_multicycle_path 4 -setup \
-from [get_clocks CLKM] -to [get_clocks CLKP] -end
set_multicycle_path 3 -hold \
-from [get_clocks CLKM] -to [get_clocks CLKP] -end
2、快时钟域到慢时钟域
如下图示例,存在4个可能的建立时间。最严格的时序检查是 setup4、0时刻hold
时钟声明:
create_clock -name CLKM \
-period 20 -waveform {0 10} [get_ports CLKM]
create_clock -name CLKP \
-period 5 -waveform {0 2.5} [get_ports CLKP]
这种情况下,同样可以用多周期约束:
set_multicycle_path 2 -setup \
-from [get_clocks CLKP] -to [get_clocks CLKM] -start
set_multicycle_path 1 -hold \
-from [get_clocks CLKP] -to [get_clocks CLKM] -start
# -start 选项 指代发起时钟
2、多时钟
1、整数倍关系
时钟定义:
create_clock -name CLKM \
-period 20 -waveform {0 10} [get_ports CLKM]
create_clock -name CLKQ -period 10 -waveform {0 5}
create_clock -name CLKP \
-period 5 -waveform {0 2.5} [get_ports CLKP]
建立时序报告:
保持时序报告:
2、非整数倍关系
时钟定义:
create_clock -name CLKM \
-period 8 -waveform {0 4} [get_ports CLKM]
create_clock -name CLKQ -period 10 -waveform {0 5}
create_clock -name CLKP \
-period 5 -waveform {0 2.5} [get_ports CLKP]
由以上分析:
对应的时序报告:
建立检查:
保持检查:
3、相移
时钟 90 度相移的例子:
create_clock -period 2.0 -waveform {0 1.0} [get_ports CKM]
create_clock -period 2.0 -waveform {0.5 1.5} \
[get_ports CKM90]
建立时间:
保持:
参考说明
【1】B站 邸老师学习视频。
【2】Static Timing Analysis for Nanometer Designs A Practical Approach . J. Bhasker • Rakesh Chadha
相关文章
- 伪静态与重定向之初体验
- PHP之static静态变量详解(一)
- 火端搜索程序V2.1伪静态规则
- 以静态变量保存 Spring ApplicationContext
- Linphone 源码静态分析
- 74、在ListView最后一项添加一个静态Item数据
- 演练:创建和使用静态库 (C++)
- Google Protocol Buffer使用经验分享(一) C++动态消息与静态消息的博弈
- 安卓逆向9-ida静态调试
- 【PHP 】 伪静态 - 3. 伪静态的基本使用
- [Pholcus] Go项目 Pholcus 编写静态规则文件, 0 到 1
- Atitit 项目分析与统计目录1. 静态分析+动态分析 。其中, 12. 模块分析,与模块位置idx 13. 编程语言类型与版本 13.1. 类库统记表 类型与版本 23.2. 中间
- 【SpringBoot笔记04】SpringBoot框架之静态资源的处理
- 【SpringMVC笔记10】SpringMVC处理静态资源
- 关于静态分析技术符号执行,从一个故事讲起······
- 掌握鸿蒙轻内核静态内存的使用,从源码分析开始
- Qt5.8 在windows下mingw静态编译
- 【Android 逆向】Android 逆向通用工具开发 ( 静态库项目中的网络操作核心类 CNetwork 分析 )
- 【Android 逆向】Android 逆向方法 ( 静态逆向解析 | 函数调用分析 | 动态运行跟踪 | 运行日志分析 | 文件格式解析 | 敏感信息分析 | 网络信息监控 | 环境伪装模拟 )
- 【Android 插件化】静态分析应用 APK 安装包是否使用了插件化引擎 ( 虚拟化引擎运行特点 | 恶意软件特点 )
- IC/FPGA设计中的静态时序分析(STA)
- VS2019静态分析工具:C++ Core Check
- 沉浸式测试 | 鸿蒙(HarmonyOS)生态下的智能汽车静态代码分析
- 静态时序分析(STA)—— 基本概念
- 实验三 UML静态建模之类的分析与设计【PowerDesginer】
- 通过实例分析理解浮动静态路由、路由负载分担
- 静态时序分析(STA)附秋招面试提问
- 面对CI/CD分析的代码静态测试工具Klocwork 2023.1版本更新快讯