[静态时序分析简明教程(九)]多周期路径set_multicycle_path

news2025/1/16 20:51:26

静态时序分析简明教程-多周期路径

    • 一、写在前面
      • 1.1 快速导航链接·
    • 二、多周期路径
      • 2.1 多周期路径的SDC命令
      • 2.2 路径常规约束
      • 2.3 建立/保持规格
      • 2.4 位移量
      • 2.5 多时钟周期案例
    • 三、总结

一、写在前面

一个数字芯片工程师核心竞争力是什么?不同的工程师可能给出不同的答复,有些人可能提到硬件描述语言,有些人可能会提到对于特定算法和协议的理解,有些人或许会提到对于软硬件的结合划分,作者想说,这些说法,其实对也不对,硬件描述语言,翻来覆去无非是always和assign这几个语句的反复使用,而一些基础的协议算法深究起来其实也并不复杂,于作者而言,在常规的技能以外,有两项额外的技能颇为重要,其中之一便为sdc/STA的分析能力,它的重要之处在于作为桥梁建立了前端和后端的连接,虽然对于DE工程师而言,初版交付的sdc往往不甚准确,也没有办法通过这份sdc生成一份无误的timing report,但sdc的内容体现却是完完整整的将时序约束从行为级的描述映射到了gate level这样一个真实的电路层次上面。
写此专栏,一为学习记录,二为交流分享,以犒粉丝读者。

1.1 快速导航链接·

静态时序分析简明教程(一)绪论
静态时序分析简明教程(二)基础知识:建立保持时间,违例修复,时序分析路径
静态时序分析简明教程(三)备战秋招,如何看懂一个陌生的timing report
静态时序分析简明教程(四)时钟常约束
静态时序分析简明教程(五)生成时钟
静态时序分析简明教程(六)时钟组与其他时钟特性
静态时序分析简明教程(七)端口延迟
静态时序分析简明教程(八)虚假路径
静态时序分析简明教程(九)多周期路径
静态时序分析简明教程(十)组合电路路径
静态时序分析简明教程(十一)模式分析与约束管理
静态时序分析简明教程(十二)浅议tcl语言

二、多周期路径

通常情况下,在本周期时钟边沿启动的数据,会在下一个时钟上升沿捕获,如下图所示
在这里插入图片描述

但是也有些情况,我们希望在数个时钟周期后再进行捕获(比如为了确保复位信号有效的多周期低电平等),在时序分析中进行额外周期约束的方案,称为多周期路径
在这里插入图片描述

2.1 多周期路径的SDC命令

set_multicycle_path		[-setup]
						[-hold]
						[-rise][-fall]
						[-start][-end]
						[-from from_list]
						[-to to_list]
						[-through through_list]
						[-rise_from rise_from_list]
						[-rise_to rise_to_list]
						[-rise_through rise_through_list]
						[-fall_from fall_from_list]
						[-fall_to rise_to_list]
						[-fall_through fall_through_list]
						path_multiplier
						[-comment comment_string]

2.2 路径常规约束

虚假路径相似的,多周期路径的约束过程中也出现了以下常规约束

[-rise],[-fall],
[-from],[-to],[-through],
[-rise_from],[-rise_to],[-rise_through],
[-fall_from],[-fall_to],[-fall_through]

具体的内容可以参考静态时序分析简明教程(八)虚假路径中的有关内容进行学习

2.3 建立/保持规格

对于多周期路径的约束而言,[-setup]和[-hold]的选项,理解起来可能会有些复杂。
在这里插入图片描述
常规路径中,数据假如在A处启动,那么应该在B处进行捕获,换言之,建立时间的分析应该发生在A边沿,和B边沿;
而在多周期路径中,通过[-setup]选项,我们可以改变捕获沿,需要注意的是,这里改变的边沿是捕获沿位置,我们可以将捕获沿右移,留出更多的时钟周期,但是需要注意的是,假如移动了捕获沿到D后,不仅仅是建立时间的检查移动到了D处,保持时间的检查也同样会进行移动,我们当然可以在D处同时进行建立时间检查和保持时间检查,但是这存在一个问题,即对于综合工具而言,它会在时序路径上插入buffer类的缓冲器来满足严苛的保持时间检查,增大面积和功耗。

为了解决这个问题,我们可以使用[-hold]选项,将保持时间的检查左移回A处或B处。

举个例子,将建立沿移动三个周期至D沿,保持分析自动移动至C处,此时C对应的保持倍数为0,B对应的保持倍数为1,A对应的保持倍数为2
通过 [-hold] N 的选项,N为保持倍数,可以将检查边沿向左挪动
而对于[-setup] N来说,该选项指定的N为将建立沿挪动到第N个周期(需要注意和挪动了N个周期的区别)存在1个周期的差。以上图为例,D对应的N为4,换言之,挪动了3个周期。

2.4 位移量

2.3中,我们讨论的内容是捕获沿的移动,那么,对于建立沿来说,是否有办法,也可以使其左右移动呢?
答案是可以的,我们可以使用[-start] [-end]的选项来移动
总结来说:
-end意味着捕获沿的移动,采样沿可以理解为采样时钟信号的边沿
-start意味着启动沿的移动,启动沿可以理解为启动时钟信号的边沿

2.5 多时钟周期案例

让我们来举一个例子搞明白多周期路径的应用
在这里插入图片描述
上面的图片是一个什么样的逻辑关系呢?

Cs驱动F1寄存器产生data信号,同时驱动F2寄存器产生enable信号,这个enable信号进入到FSM(即小云朵一样的图形中),经过N个周期输入给F3,F3寄存器再Cd的驱动下,接收到en拉高,采样data

我们发现,data信号不需要立即进入到F3寄存器中,它可能需要N个时钟周期才能抵达,因此在SDC中我们可以对其进行如下的约束

set_multicycle_path -from Cs -through F1/Q -setup N -end
set_multicycle_path -from Cs -through F1/Q -to Cd -hold N-1 -end

三、总结

DMUX或者异步复位同步释放的情境中,data或复位信号并不是单拍被下一级获取,而是需要经过几个时钟周期后才进行采样,因此,我们可以通过set_multicycle_path的SDC命令进行约束,该命令不仅可以约束建立时间检查或保持时间检查,也可以约束捕获沿或采样沿

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

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

相关文章

C语言 字符指针

1、介绍 概念: 字符指针,就是字符类型的指针,同整型指针,指针指向的元素表示整型一样,字符指针指向的元素表示的是字符。 假设: char ch a;char * pc &ch; pc 就是字符指针变量,字符指…

群晖安装wireguard(群晖7.1)

前言 上篇文章介绍了乌班图如何安装wireguard,但是感觉虚拟机安装有损优雅性。 本期视频我们介绍使用群晖安装wireguard。 由于原来黑群晖内核版本太低了。 我这里升级到群晖dns918(7.1版本) 内核版本为4.4 实际上这仍然不满足wireguar…

知识图谱基本工具Neo4j使用笔记 四 :使用csv文件批量导入图谱数据

文章目录 一、系统说明二、说明三、简单介绍1. 相关代码以及参数2. 简单示例 四、实际数据实践1. 前期准备(1) 创建一个用于测试的neo4j数据库(2)启动neo4j 查看数据库 2. 实践(1) OK 上面完成后&#xff0…

【多模态】25、ViLT | 轻量级多模态预训练模型(ICML2021)

文章目录 一、背景二、ViLT 方法三、效果3.1 数据集3.2 分类任务 VQA 和 NLVR23.3 Image Retrieval 论文:ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision 代码:https://github.com/dandelin/vilt 出处:…

【项目管理】PMP备考宝典-第二章《环境》

第一节:概述 1.项目所处的组织环境 (1)事业环境因素(EEFs) 组织内部的事业环境因素: 企业都会有愿景、使命、价值观,这些决定了企业的发展方向。不忘初心,坚定地走自己的路&#…

「已解决」iframe 本地生效 但是在测试环境不生效问题

背景 我有一个表格中一列是个详情,这个详情可被点击,点击后弹出抽屉,抽屉里是后端传给我详情字段的值对应的 url 的 iframe 展示。 问题是,在本地 localhost 下运行,ifame 运行正常,但是部署到测试环境就看…

搭建 Python 环境 | Python、PyCharm

计算机 计算机能完成的工作: 算术运算逻辑判断数据存储网络通信…更多的更复杂的任务 以下这些都可以称为 “计算机”: 一台计算机主要由以下这几个重要的组件构成 CPU 中央处理器:大脑,算术运算,逻辑判断 存储器&…

传输层协议——udp

文章目录 1. 再谈端口号1.1 认识知名端口号 2. netstat3. pidof4. UDP协议4.1 UDP协议端格式4.2 UDP的特点4.3 面向数据报4.4 UDP的缓冲区 1. 再谈端口号 传输层是负责数据能够从发送端传输接收端,那么我们就需要再一次了解端口号。端口号(Port)标识了一个主机上进…

【Bert101】变压器模型背后的复杂数学【01/4】

一、说明 众所周知,变压器架构是自然语言处理(NLP)领域的突破。它克服了 seq-to-seq 模型(如 RNN 等)无法捕获文本中的长期依赖性的局限性。变压器架构被证明是革命性架构(如 BERT、GPT 和 T5 及其变体&…

ARTS 挑战打卡的第8天 ---volatile 关键字在MCU中的作用,四个实例讲解(Tips)

前言 (1)volatile 关键字作为嵌入式面试的常考点,很多人都不是很了解,或者说一知半解。 (2)可能有些人会说了,volatile 关键字不就是防止编译器优化的吗?有啥好详细讲解的&#xff1…

清除pip安装库时的缓存

目录 1、命令清除缓存 2、路径手动清除 在使用pip安装Python库时,如果之前已经下载过该库,pip会默认使用缓存来安装库,而不是重新从网络上下载。缓存文件通常存储在用户目录下的缓存文件夹中,具体位置因操作系统和Python版本而异…

C语言中几种常见数据类型所占字节数

**16位编译器: char/unsigned char :1字节 char :2字节 short int:2字节 int/unsigned int:2字节 long int:4字节 float:4字节 double:8字节* 32位编译器: *char/unsi…

腾讯云服务器标准型CVM实例详细介绍S5/S6/SA2/SR1/SA3/S4等

腾讯云CVM服务器标准型实例的各项性能参数平衡,标准型云服务器适用于大多数常规业务,例如:web网站及中间件等,常见的标准型云服务器有CVM标准型S5、S6、SA3、SR1、S5se等规格,腾讯云服务器网来详细说下云服务器CVM标准…

悬崖传感器调试问题总结

悬崖传感器原理 使用ADC采样电路,周期的进行开/关灯,获取ADC采样值。根据预先设置好ADC门限,判断是否为悬崖。ADC的精度是12位,对应电路的电压是3.3伏,悬崖传感器通过开灯和关灯,接收的不同灯光强度&#x…

【福建事业单位-数学运算】02工程问题-行程问题

【福建事业单位-数学运算】02工程问题-行程问题 一、工程问题1.1给完工时间型(给多个完工时间)——从时间赋值总量例题 1.2 给效率比例型(给效率的比例关系)直接给效率间接给效率(★)特殊给效率 1.3 给具体…

掌握Python的X篇_30_使用python解析网页HTML

本篇将会介绍beutifulsoup4模块,可以用于网络爬虫、解析HTML和XML,对于没有接触过前端,不了解HTML是如何工作的,需要先解释一下什么事HTML。 1. HTML 网页中的各种布局等的背后都是非常简单的纯文本格式,那种格式称为…

【JDBC系列】- 扩展提升学习

扩展提升学习 😄生命不息,写作不止 🔥 继续踏上学习之路,学之分享笔记 👊 总有一天我也能像各位大佬一样 🏆 博客首页 怒放吧德德 To记录领地 🌝分享学习心得,欢迎指正&#xff0…

Golang 基本常量声明及 iota 使用

文章目录 一、局部常量声明二、全局常量声明三、多行常量定义,值表达式为空时自动继承前一个四、常量声明 - iota 一、局部常量声明 package mainimport "fmt"func main() {//局部常量声明//方式一:主动声明类型const lengthA int 10//方式二…

tomcat设置PermSize

最近tomcat老是报错,查看了日志出现PermGen 内存不够用,重启tomcat后查询使用情况 通过启动参数发现没有设置 PermGen,继续通过jmap查看 jmap -heap 21179 发现99%已使用,而且默认是30.5M,太小了,这里设置成256M 1. 创建setenv.sh文件 在/usr/local/tomcat/bin目录下创建一个…

CDN是什么?CDN的好处

近段时间开组会的时候组内的大佬多次提及CDN这个名词,因为以前没有接触过,所以上网查询后写一篇博客来巩固自己对于CDN的理解 1、什么是CDN CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新…