STA——multicycle path

2023-11-17

目录

0. 多周期路径

 1. 发射时钟和捕获时钟相同

2. 发射时钟和捕获时钟不同

3. examples


之前去地平线面试的时候被问到了multicycle path的一点问题,其实这个问题我应该知道,看过《Constraining Designs for Synthesis and Timing  Analysis A Practical Guide to Synopsys Design Constraints (SDC)》,但当时回答的不好。

  看这篇文章需要现对建立时间、保持时间的概念有一些了解。

0. 多周期路径

  一般情况下数据在任意时钟沿发射,在下一个时钟沿被捕获,但是有时设计者需要延迟几个时钟周期data才被捕获,这就是多周期路径。

默认的建立时间时序:

 

 

 多周期的建立时间时序:

 

 

 1. 发射时钟和捕获时钟相同

 

 对于上面的时钟,默认是在A沿发射,B沿捕获。在进行建立时间分析时,我们希望在A沿发射数据,在D沿捕获数据,我们可以通过-setup选项,指定多周期路径为3个周期

1

set_multicycle_path -setup 3 -from xxx -to xxx

setup time analysis变成了:Tc-q +Tlogic +Tsetup < 3*T+skew。约束变宽松了。
 

但是这样的话,在进行hold time分析的时候,工具会对捕获寄存器捕获沿之前的那一个时钟沿,也就是C沿进行hold analysis。这样的话hold time analysis变成了

Tc-q + Tlogic > Thold + 2*T,但这增加了电路的复杂性(需要插入一些buffer来增加延迟),没有必要,通过-hold选项,将hold edge向左移动2个周期

1

set_multicycle_path -hold 2 -from *** -to ***

  注意:-setup制定多周期路径为N个周期,-hold使hold edge向左移动N-1个周期

 

2. 发射时钟和捕获时钟不同

2.1 捕获时钟周期倍长于发射时钟周期

 

上面例子中发射时钟周期为10ns,捕获时钟周期为20ns。 

  默认情况下,setup analysis在B沿发射,N沿捕获,组合逻辑路径最大为10ns。对于hold analysis与保持时钟沿没关系,在hold analysis中,可以在A时钟沿发射,M时钟沿捕获,或者在C时钟沿发射,N时钟沿捕获。

  因为捕获时钟周期大于采样时钟周期,所以在一个捕获周期中,只能发射一个data。对于在N时钟沿捕获的情况,可以在A或者B时钟沿发射数据。在A发射可以增加额外的10ns的延迟余量。通过-start选项可以声明两个源时钟周期的路径,这使得发射沿从B移动到A。当然要指明是-setup。

1

set_multicycle_path -setup -start 2 -from xxx -to xxx

  

  对于hold check有两种情况:
    1. A发射M捕获。

    2.B发射N捕获。

  对于上面两种hold check情况,第二种约束更强,组合逻辑需要增加额外的10ns。我们希望hold check恢复到默认的位置,A发射M捕获(或者B发射N捕获),希望lauch edge从B移动到C,通过-start 和- hold选项。

1

set_multicycle_path -hold -start 1 -from xxx -to xxx

 -hold指定移动的周期数。 

2.2 发射时钟周期倍长于捕获时钟周期

 

发射时钟周期为20ns,捕获时钟周期为10ns。

默认的setup check是M发射B捕获;hold check是 M发射A捕获。

M发射,希望在C捕获,这样可以增加额外的10ns的延迟裕量。这可以通过-end选项来指定2个目的时钟周期的路径。

1

set_multicycle_path -setup -end 2 -from xxx -to xxx

  -setup指定路径的周期数,为N

但这会使得hold check变成M发射B捕获,希望它恢复到默认情况,用-end选项指明捕获沿向左移动一个目的时钟周期。

1

set_multicycle_path -hold -end 1 -from xxx -to xxx

  -hold指定移动的周期数,为N-1

2.3 总结

-start:移动源时钟(发射时钟)沿;

-end :移动目的时钟(捕获时钟)沿;

-setup -start N:向左移动发射时钟沿;

-hold -start N-1:向右移动发射时钟沿;

-setup -end N:向右移动捕获时钟沿;

-hold -end N-1:向左移动捕获时钟沿;

3. examples

3.1 FSM

 

 如上图所示,enable逻辑通过一个N个周期的状态机。那么对于从F1发出的actual data,可以在N个周期内到达F3的输入,所以约束如下:

1

set_multicycle_path -setup N -end -from Cs -through F1/Q -to Cd <br data-filtered="filtered">set_multicycle_path -hold N-1 -end -from Cs -through F1/Q -to Cd

3.2  reset

 In many ASIC designs, the master reset signal remains asserted for several cycles.

So, the assertion of these signals can be declared as multi cycle paths. Assuming an

active low asynchronous reset kept asserted for 3 cycles, the command would be:

1

2

set_multicycle_path -fall -from reset_n -setup 3

set_multicycle_path -fall -from reset_n -hold 2

3.3 Large data path macros

 Some data paths have huge adders, multipliers, or other data path elements . Or, they

might have deep levels of logic. Or, they might have a high setup requirement for 

the capturing device (say, a memory ), or the launching device might have a high

Clk-to-output delay (e.g., a memory). Or, the path might be on a clock which has

very high frequency. In many such cases, it might be diffifi cult for the data to meet

the timing requirements of a single cycle . In such cases, the path might have to be

declared as multi cycle. 

 

3.4 异步时钟

 

 在跨时钟路径中,一般会生命为fault path,这样STA工具不会对这条路径进行时序分析,那么路径可以有任意大小的delay,但是设计者可能想要约束这一段路径的延迟,如下

1

2

set_multicycle_path -from [get_clocks C1] -to [get_clocks C2] -setup 2

set_multicycle_path -from [get_clocks C1] -to [get_clocks C2] -hold 1

  原来是在A发射P捕获,但将路径设置为两个捕获周期之后,在A发射Q捕获,组合逻辑延迟扩展了一个捕获周期。这样就将组异步路径合逻辑延迟约束在一个捕获周期多一点。

  

 

参考:

 《 Constraining Designs for Synthesis and Timing  Analysis A Practical Guide to Synopsys Design Constraints (SDC) 》

《 专用集成电路设计使用教程 》

真理剑客是个武功高强的朝圣者,独自战胜了三个匪徒,在基督徒到达终点之前加入了他的朝圣队伍。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STA——multicycle path 的相关文章

  • 【HDLBits 刷题 10】Circuits(6)Finite State Manchines 10-17

    目录 写在前面 Finite State Manchines Lemmings1 Lemmings2 Lemmings3 Lemmings4 Fsm onehot Fsm ps2 Fsm ps2data Fsm serial 写在前面 HD
  • (三)系统与架构级低功耗设计

    前面讲解了使用EDA工具 主要是power compiler 进行功耗分析的流程 这里我们将介绍在数字IC中进行低功耗设计的方法 同时也结合EDA工具 主要是Design Compiler 如何实现 我们的讲解的低功耗设计主要是自顶向下的设
  • chisel快速入门(三)

    前一篇见此 chisel快速入门 二 沧海一升的博客 CSDN博客简单介绍了chisel 使硬件开发者能快速上手chisel https blog csdn net qq 21842097 article details 121418806
  • ARM架构和x86架构有什么区别?

    X86结构和ARM架构是主流的两种CPU架构 X86架构的CPU是PC服务器行业的老大 ARM架构的CPU则是移动端的老大 X86架构和arm架构实际上就是CISC与RISC之间的区别 很多用户不理解他们两个之间到底有那些区别 实际就是他们
  • chisel快速入门(二)

    上一篇见此 chisel快速入门 一 沧海一升的博客 CSDN博客简单介绍了chisel 使硬件开发者能快速上手chisel https blog csdn net qq 21842097 article details 121415341
  • DFT知识点扫盲——DFT概览

    IC设计公司 无论是研发 测试 PE 质量等岗位 对DFT的概念都不陌生 接下来的几篇内容 谈谈对DFT的理解 有聊得不对的地方 也请做DFT的同行 不吝赐教 1 什么是DFT DFT Design for Test 可测试性是一种设计属性
  • 【HDLBits 刷题 4】Verilog Language(4)Procedures 和 More Verilog Features 部分

    目录 写在前面 Procedures Alwaysblock1 Alwaysblock2 Always if Always if2 Always case Always case2 Always casez Always nolatches
  • 【硬件架构的艺术】学习笔记(2)同步和复位

    目录 写在前面 2 同步和复位 2 1 同步设计 2 1 1 避免使用行波计数器 2 1 2 门控时钟 2 1 3 双边沿或混合边沿时钟 2 1 4 用触发器驱动另一个触发器的异步复位端 2 2 推荐的设计技术 2 2 1 避免在设计中出现
  • 【流水线】FPGA中流水线的原因和方法

    目录 写在前面 什么是流水线 无流水线设计 流水线设计 流水线的后果 结论 写在前面 对 FPGA 现场可编程门阵列 进行编程是一个定制其资源以实现确定逻辑功能的过程 这涉及使用FPGA的基本构建模块 如可编程逻辑模块 CLB 专用多路复用
  • Design compiler 和 Prime time的区别

    相信很多新手同学在接触数字IC不久一定会有过这样的疑问 design compiler和 prime time 它两的区别是啥 如果你没有过 那你好好反思一下 既然design compiler 可以report path的timing 那
  • Vcs+Verdi 联调

    lmg vcs lmdown y 等待两分钟 再次输入指令 lmg vcs 激活license 目录 主要参考示例 问题1 需要修改默认的shell 问题2 v 快速在flist添加路径失败 问题0 bash alias verdi 未找到
  • 数字IC设计学习笔记_静态时序分析STA_ PrimeTime 基本概述

    数字IC设计学习笔记 PrimeTime 基本概述 1 PrimeTime 基本概述 2 运行模式 1 PrimeTime 基本概述 PrimeTime Synopsys公司提出的 针对于复杂的 全芯片的 门级静态时序分析的工具 可集成在逻
  • 【Verilog 常见设计】(0)二进制码和格雷码互转 Verilog 实现

    目录 格雷码介绍 转化原理 Verilog 实现 testbench 测试代码 仿真波形 格雷码介绍 在一组数的编码中 若任意两个相邻的代码只有一位二进制数不同 则称这种编码为格雷码 Gray Code 另外由于最大数与最小数之间也仅一位数
  • 数字SOC设计之低功耗设计入门(二)——功耗的分析

    前面学习了进行低功耗的目的个功耗的构成 今天就来分享一下功耗的分析 由于是面向数字IC前端设计的学习 所以这里的功耗分析是基于DC中的power compiler工具 更精确的功耗分析可以采用PT 关于PT的功耗分析可以查阅其他资料 这里不
  • 芯片面积估计方法

    一 概念 芯片面积的主要涵盖部分分为三部分 IO 芯片的信号及电源pad等 Standard cell 实现芯片的功能逻辑 Macro block 第三方IP PLL DAC POR Memory etc 芯片面积估计就是通过目标工艺的库信
  • 【HDLBits 刷题 12】Circuits(8)Finite State Manchines 27-34

    目录 写在前面 Finite State Manchines 2014 q3c m2014 q6b m2014 q6c m2014 q6 2012 q2fsm 2012 q2b 2013 q2afsm 2013 q2bfsm 写在前面 HD
  • 电力电子转战数字IC——我的IC面试(2022.10.14更新)

    目录 感谢信 HKWS10 14面试 25mins JXC10 13面试 30mins JDSK9 23面试 42mins 快速的自我介绍 介绍一下这个MCDF的项目 你这里写SV搭建的验证环境 和UVM搭建的有什么区别吗 你这里写了覆盖率
  • Design Compiler指南——设计综合过程

    在前面一章介绍完施加约束之后 接下来要做的工作就是将设计进行综合编译 compile 本文我们将主要讨论综合编译的过程 主要分为这样几个部分 优化的三个阶段及其特点 编译的策略 编译层次化的设计 一 优化的三个阶段 这一节我们介绍Desig
  • 【数字电路基础】三态门

    目录 前言 三态门 经典问题 前言 文主要讲解三态门 三态门 其模型为 其实际电路为 其真值表为 B A C 0 0 Z 0 1 Z 1 0 0 1 1 1 注意 Z是高阻 不代表没有电压 而是电压不确定 受自身 旁边cell的影响 经典问
  • IC封装——从基本概念到TSV

    一 IC封装 在之前文章中有大致提过封装 这里展开讲讲 芯片生产流程 沧海一升的博客 CSDN博客每个半导体产品的制造都需要数百个工艺 泛林集团将整个制造过程分为八个步骤 晶圆加工 氧化 光刻 刻蚀 薄膜沉积 互连 测试 封装 芯片生产流程

随机推荐

  • QT连接SQLserver详细教程

    Qt 连接 SQL Sever数据库 环境 一 配置 ODBC数据源 一 在SQL Sever Manger中添加 新的用户 1 打开如下自带的 MSS Management Studio 2 登录时选择 Windows 身份验证 3 去往
  • 在python中使用python-docx实现word文档自动化

    五一马上就要结束了 趁着今天休息的一天 给大家说说在python对办公文档处理 文章中说要详细的介绍python中几个对文档处理的库 今天就介绍一下word文档处理的python docx库 好了废话不多说开始吧 哈哈哈哈哈哈哈啊哈哈 py
  • 学习MongoDB 三: MongoDB无法启动的解决方法

    一简介 我们之前介绍了MongoDB入门 安装与配置 我们今天在打开MongDB时 我们先运行cmd exe进入dos命令界面 然后进入cd D mongodb bin目录下 启动服务或者mongo命令都报了错误 二 解决 1 net st
  • vue实现三级联动

    div div
  • 图片在盒子内等比展示不变形

    通过这个属性 object fit cover 使用场景如下 fatherBox 父盒子要有宽高 width 240px height 240px sonBox 子盒子 width 100 height 100 object fit cov
  • 7种Git错误以及解决方法

    使用Git的时候如果出现报错 要会解决Git错误 以下整理了七种Git错误以及解决的方法 1 当出现fatal not a git repository or any of the parent directories git时 说明不是一
  • vector find() 用法

    int main vector
  • STM32的PA0输出高电平的具体库函数代码操作

    在STM32中 可以使用库函数控制PA0输出高电平 具体的代码如下 初始化GPIOA的引脚模式 设置PA0为输出模式 GPIO InitTypeDef GPIO InitStruct HAL RCC GPIOA CLK ENABLE GPI
  • Score SDE 三种随机微分方程代码解读

    定义SDE类 定义了7个子函数 T End time of the SDE sde marginal prob Parameters to determine the marginal distribution of the SDE p t
  • 计算机二级-简单应用题

    题目要求 编写代码 以实现如下功能 键盘输入小明学习的课程名称及考分等信息 信息间采用空格分隔 每个课程一行 空行回车结束录入 示例格式如下 数学 90 语文 95 英语 86 物理 84 生物 87 屏幕输出得分最高的课程及成绩 得分最低
  • 去除指定css属性

    使得指定css样式失效 layui btn background image initial important 优先使用 layui btn background image initial important padding 0 10p
  • 像程序员一样思考_如何像程序员一样思考-解决问题的经验教训

    像程序员一样思考 by Richard Reis 理查德 里斯 Richard Reis 如何像程序员一样思考 解决问题的经验教训 How to think like a programmer lessons in problem solv
  • Vue-router2.0基础,秒会。

    如果不是模块式开发 请先引入 1 0基础 div h1 Hello App h1 p p div
  • Docker打开远程API服务

    一 开发环境 1 系统环境 2 docker版本 二 步骤 1 查看docker配置文件路径 2 编辑配置文件 3 重启docker 三 测试 1 查看docker客户端服务端版本 docker H localhost 2375 versi
  • C++ 在一个程序中调用exe

    生成exe的代码 include
  • StarRocks 运维工具 StarGo

    优质资源分享 学习路线指引 点击解锁 知识定位 人群定位 Python实战微信订餐小程序 进阶级 本课程是python flask 微信小程序的完美结合 从项目搭建到腾讯云部署上线 打造一个全栈订餐系统 Python量化交易实战 入门级 手
  • Spring Boot Admin 监控告警

    Spring Boot Admin 监控告警 要进行监控 需要两个Project 一个是Admin Server端 负责监控Spring boot的项目 另一个是Admin Client端 是被监控的Spring boot服务 当然也可以一
  • Android优化

    一 布局优化 布局优化就是删除布局中无用的控件和层级 可以用Hierarchy Viewer工具来检测 其次有选择地使用性能较低的ViewGroup include标签 include标签只支持以android layout开头的属性 比如
  • Synchronized的三种写法

    文章目录 前言 一 synchronized是什么 二 synchronized的三种写法 1 同步代码块 2 在实例方法上使用synchronized 3 在静态方法上使用synchronized 总结 前言 总结一下自己在学习Synch
  • STA——multicycle path

    目录 0 多周期路径 1 发射时钟和捕获时钟相同 2 发射时钟和捕获时钟不同 3 examples 之前去地平线面试的时候被问到了multicycle path的一点问题 其实这个问题我应该知道 看过 Constraining Design