STA:虚拟时钟(virtual clock)与I/O延时约束

news2025/1/17 3:36:40

1.什么是虚拟时钟?

虚拟时钟(virtual clock)是存在但没有clock source(pin/port)定义的时钟,仅作为输入输出端口延时约束的参考时钟。定义方式如下例:

create_clock -name virtual_clock -period 10 -waveform {0 5} ;#虚拟时钟不需要[get_pins /get_ports],不加waveform默认50% duty cycle。所以加不加-waveform {0 5}效果是一样的。

与虚拟时钟相关的端口约束为set_input_delay和set_output_delay。

2.IO端口约束

静态时序分析有四种时序路径,分别是:in2reg,reg2reg,reg2out和in2out,其中三种都与input或output port相关,而工具并不知道input port和output port外部延时,所以需要对其加以约束。

时序分析时,我们把四种时序路径都当做reg2reg来分析,以in2reg为例,如下图,我们在block外设置一个虚拟的寄存器UFF0。

a084aa61323a488ab8e9c048b64d0348.jpg

现在INP1 to UFF1的path就变成了UFF0 to UFF1了,只需要设置好外部延迟即可,设置方式如下:

set_input_delay -max (Tclk2q+Tc1) [get_ports INP1] -clock [get_clocks $CLK]

同理,如果是reg2out,就可以在output port后假定一个虚拟寄存器,如下图。

22a7acd947064019ab708b1a459e6ff4.jpg

set_output_delay -max (Tc2 + Tsetup) [get_ports OUTB] -clock [get_clocks $CLK]

3.virtual clock VS real clock

问题来了,如上图例,这个$CLK用虚拟时钟好还是用真实时钟好呢?这里先说结论,用真实时钟更好。

我们在CTS之前,clock latency都是0,真实时钟和虚拟时钟都一样,区别就在于CTS之后,真实的reg有network latency了(clock latency分为source latency+network)。而虚拟寄存器的latency还是0。

静态时序分析: clock latency

现在的PR工具都会在CTS之后自动update io latency(ICC2叫compute_clock_latency),所以使用real clock的话会在timing报告里属于input/output port的clock network delay 部分显示:

clock network delay (propagated) xxx

这个值是工具计算的值(应该是取中位数)。

如果使用虚拟时钟的话,这里显示的就是:

clock network delay (ideal) 0

所以,要想使用虚拟时钟,又不至于过分乐观或悲观的话,就需要添加set_clock_latency -source xx [get_clocks CLK_VIRTUAL],这样CTS之后仍会保留io latency的值,只不过这个值就需要人工计算,或者使用经验值了,并没有使用real clock那么好用。

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

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

相关文章

第四章:Spring七大核心模块Bean、Core、Context

Spring框架七大模块 容器模块(spring core)、应用上下文模块(spring context)、AOP模块(spring aop)、JDBC抽象和DAO模块(spring dao)、对象/关系映射集成模块(spring o…

R3LIVE代码详解(三)

0. 简介 在上一章中,我们过完了主函数以及LIO的操作,由于这部分代码在FAST-LIO2中已经充分详细的介绍过了,所以说这里在R3LIVE中就不过多介绍了,下面我们来看一下本系列的重点,即VIO部分。 1. 主函数 我们在之前分析…

美国访问学者申请|J1签证官方指定材料大全

美国访问学者申请需要哪些材料?下面就随知识人网老师一起来看一看J1签证官方指定材料大全。 一、 有效护照:如果您的护照将在距您预计抵美日期的六个月内过期、或已损坏、或护照上已无空白的签证签发页, 请在前来面谈之前先申请一本新护照。 二、DS-160…

leetcode:1957. 删除字符使字符串变好

难度:简单 一个字符串如果没有 三个连续 相同字符,那么它就是一个 好字符串 。 给你一个字符串 s ,请你从 s 删除 最少 的字符,使它变成一个 好字符串 。 请你返回删除后的字符串。题目数据保证答案总是 唯一的 。 示例 1&#xf…

Podman 部署私有镜像仓库

Podman 部署私有镜像仓库 文章目录Podman 部署私有镜像仓库1. 安装 Podman 和 httpd-tools2. 配置仓库存储位置3. 生成访问仓库的凭据3.1 htpasswd 用户名和密码3.2 TLS 密钥对4. 启动容器5. 测试5.1 登陆5.2 API访问5.3 镜像入库5.4 查询镜像信息Podman是一个无守护进程的开源…

JavaScript基础(14)_in、hasOwnProperty、instanceof的用法、垃圾回收

in 用法:检查对象和原型对象是否含有该属性。 语法:"属性名" in 对象名 hasOwnProperty 用法:检查对象自身是否含有该属性。 语法:对象名.hasOwnProperty("属性名") instanceof 用法:检查一个对…

在裸机上输出Hello,world! [rCore-lab1]

引言 非常简单的“Hello, world”应用程序,实际上有着多层硬件和软件工具和支撑环境隐藏在它背后,才让我们不必付出那么多努力就能够创造出功能强大的应用程序。生成应用程序二进制执行代码所依赖的是以 编译器 为主的开发环境;运行应用程序执行码所依赖…

寻找更好的分类模型loss

寻找更好的loss1.CE loss并不完美2.可能更好的loss函数2.1 CC-LOSS2.2 Center-LOSS参考文献1.CE loss并不完美 最常用于深度学习分类模型的损失函数可以说就是CE(交叉熵) loss了。正如CC-LOSS paper中所述,该loss更关注各类是否separated,而非不同类之间…

Zookeeper:实现“通知协调”的 Demo

应用配置集中到节点上,应用启动时主动获取,并在节点上注册一个 watcher,每次配置更新都会通知到应用。数据发布/订阅(Publish/Subscribe)系统,即所谓的配置中心,顾名思义就是发布者将数据发布到…

[机器翻译]——pivot-based zero-shot translation based on fairseq

文章目录前言翻译到en生成"伪"的、到英语的数据文件把每一个zs语言对翻译到en从fairseq-generate生成的文件中,抽取纯en文件把en数据和所有zs语言对的tgt数据形成平行语料,然后做预处理形成en到tgt的平行语料预处理在en到tgt语言的"伪&qu…

IMC附录A

目录 A.1 恒等式与不等式 THEOREM A.1 (Binomial expansion theorem) PROPOSITION A.2 PROPOSITION A.3 PROPOSITION A.4 A.2 渐进符号 DEFINITION A.5 A.3 概率论基础 PROPOSITION A.7 (Union Bound) THEOREM A.8 (Bayes’ Theorem) PROPOSITION A.9 PROPOSITI…

图扑 Web SCADA 零代码组态水泥生产工艺流程 HMI

水泥是建筑工业三大基本材料之一,素有“建筑工业的粮食”之称。2022 年 1-9 月水泥产量为 15.63 亿吨,生产方法包括新型干法、立窑、湿窑、干法中空窑和立波尔窑等。 水泥生产线链条长、关键环节多的特性要求执行严密的流程监控。图扑软件大屏组态、UI 组…

国内家具行业数据浅析

大家好,这里是小安说网控。 家具是国民消费必需品之一,受疫情影响,近期销量数据不佳。2022年上半年,规模以上家具制造业企业营业收入3604亿元,同比下降4%;实现利润总额174.8亿元,同比增长2.6%。…

数据结构排序算法之冒泡排序

一 相关概念 稳定排序:如果原数据中a在b之前,而且ab,排序后a任然在b之前 不稳定排序:如果原数据中a在b之前,而且ab,排序后a在b之后 时间复杂度:对排序数据的总的操作次数,反映当n变…

安装Ruby和安装Rails详细步骤详解

rbenv安装Ruby rbenv可以管理多个版本的ruby。可以分为3种范围(或者说不同生效作用域)的版本: local版:本地,针对各项目范围(只在某个目录下有效) global版:全局,没有shell和local版时使用global版 shell版&#xf…

[MySQL]-删库后恢复

[MySQL]-删库后恢复 sen格 | 2022年11月 本文旨在记录个人在数据库的删库恢复演练过程中的一些总结,如有不足,欢迎指正。 一、恢复场景 1)假设生产实例MySQL端口为:3306 2)本地实例MySQL端口为:3307 在这…

pytorch快速入门

文章目录一、Tensorstensors的初始化(四种):tensors的属性和numpy的联系二、数据集的数据加载器加载数据集标号和可视化自己创建数据集用DataLoaders准备数据用于训练Transforms三、神经网络准备训练设备定义网络的类模型的layersnn.Flattennn.Linearnn.ReLUnn.Sequentialnn.So…

Python之基本扩展模块

一、datetime模块 1.1 主要的模块 datetime.date() #处理日期(年、月、日) datetime.time() #处理时间(时、分、秒和毫秒) datetime.datetime() #处理日期时间 datetime.timedelta() #处理时段(时间间隔…

基于Java+springboot+SSM的医疗报销系统的设计与实现

项目开发工具: IDEA, MYSQL, JDK1.8 项目使用技术: SpringBoot, SSM, H-UI, JSP, JQUERY, HTML 医疗报销系统【功能列表】 【前台用户】登录,注册,首页新闻轮播图,首页新闻按分类展示列表,栏目分类模块,报销流程模块,修改密码,个人信息展示,新增家庭成员, 家庭成品列表展示,…

Spring框架教程

Spring框架教程Spring框架教程1. 前言2. Spring框架概述2.1 什么是spring?2.2 Spring有哪些优点?2.3 Spring 有两个核心部分:IoC 和AOP2.4 Spring 特点2.5 Spring架构图,Spring由哪些模块组成?3. IOC容器3.1 IOC底层原理3.2 什么…