首页 > 其他分享 >快时钟 慢时钟交互如何检查set/hold time

快时钟 慢时钟交互如何检查set/hold time

时间:2023-06-17 12:22:26浏览次数:28  
标签:set CLKM get clocks time CLKP 时钟

参考书籍《Static Timing Analysis for Nanometer Design》

 

慢时钟 ——> 快时钟

首先进行时钟约束

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]

  由于电路是从慢时钟到快时钟的,因此最严格的建立时间检查路径就是从慢时钟的0时刻 发送,在快时钟的第一个上升沿检测建立时间。

 

特别的:实际电路中,慢时钟域的延时会非常大,可能会超过一个或多个快时钟域周期,因此这个时钟可以根据实际的延时值,规定在第几个时钟周期进行时序分析,而不是从默认的第0个时钟周期开始时序分析。

set_multicycle_path 4 -setup -from [get_clocks CLKM] -to [get_clocks CLKP] -end

快时钟 ——> 慢时钟

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

 

标签:set,CLKM,get,clocks,time,CLKP,时钟
From: https://www.cnblogs.com/powerforme/p/17487283.html

相关文章

  • MegEngine 动态执行引擎 Imperative Runtime 架构解析
    在之前的文章中我们介绍过 MegEngine 的 ImperativeRuntime 以及它与 MegBrain、MegDNN 的关系,这篇文章中我们将介绍 Imperative 中包含的常用组件。在 MegEngine 中,从用户在 python 层编写代码到在 interpreter 层发生计算经过了下面的流程:用户在 python 层......
  • Luogu3792 由乃与大母神原型和偶像崇拜 - 线段树 - set -
    题目链接:https://www.luogu.com.cn/problem/P3792题解:一点小小的空间震撼(ML:125MB)首先询问可以转化成:区间\([l,r]\)的\(max-min+1=r-l+1\)并且区间内没有重复元素。可以考虑对每个点\(i\)记一个前驱结点\(pr_i\),表示\(a_{pr_i}=a_i\),且\(pr_i\)是\(i\)前面离\(i\)......
  • ABP框架中UnitOfWorkManager.Current.SetTenantId()并不是修改AbpSession.TenantId的
    1.结论UnitOfWorkManager.Current.SetTenantId()修改的是ABP过滤器中使用的TenantId,并不会修改AbpSession.TenantId代码演示:2.关于UnitOfWorkManager.Current.SetTenantId()方法的作用前提:ABP框架是是支持多租户的,对于单数据库的多租户设计,需要通过TenantId来区分宿主和......
  • Python中常用set()方法详解!
    set是Python中一种集合数据类型,表示一个无序且不重复的集合。set()方法可以用于创建一个空的集合,也可以将其他可迭代对象转换为集合。与其他Python数据类型不同,set没有索引,不能通过索引访问其元素,但可以使用一些方法来操作和访问集合中的元素。1、add():添加一个元素到set集......
  • HashSet、LInkedHashSet的使用和特点
    HashSet的使用Java中的HashSet是CollectionsFramework中的一个类。它允许您使用哈希表在集合中存储多个值。哈希表借助哈希机制以无序的方式存储值。导入java.util.HashSet包后,以下是在Java中创建HashSet的语法:HashSet<data_type>name=newHashSet(capacity,lo......
  • k8s实战案例之基于StatefulSet控制器运行MySQL一主多从
    1、前言Pod调度运⾏时,如果应⽤不需要任何稳定的标示、有序的部署、删除和扩展,则应该使⽤⼀组⽆状态副本的控制器来部署应⽤,例如Deployment或ReplicaSet更适合⽆状态服务需求,⽽StatefulSet适合管理所有有状态的服务,⽐如MySQL、MongoDB集群等。2、StatefulSet控制器运行MySQL一......
  • 时间转换(tm,mktime,localtime)
    intyear=0;   intmonth=0;   intday=0;   sscanf((char*)strDateInfo,"%4d%2d%2d",&year,&month,&day);    structtmparaTime={0,0,0,day,month-1,year-1900};   __time32_tcurDay= _mktime32(&paraTime);......
  • redis学习八:数据类型命令及落地运用 (Zset)
    有序,附带分数,适用于排行榜1.zaddkeyscore1v1score2v2新增键值对;zrangezsetstartend查看对应范围值zrangekeystartendwithscores带着分数查看;zrevrangekey倒序查看,用法和zrange类似; 2.zrangebyscorekeyminmax取分数范围内的value;也可以在前面加上(是不......
  • 关于vue 使用setInterval定时器关闭失效的问题 原因为事件传播
    /****data.isPlay为显示那个按钮**startHandle开始定时器setInterval**pauseHandle,stopHandle理解为关闭定时器就好了clearInterval**/<viewclass="btn"@click.stop="startHandle"><viewclass="btn-statusbtn-play"><view......
  • git push -u origin master 与git push --set-upstream origin master
    在github上新建仓库时提示push代码的指令:gitinitgitaddREADME.mdgitcommit-m"firstcommit"gitbranch-Mmaingitremoteaddoriginhttps://github.com/helloyzp/AlgorithmProject.gitgitpush-uoriginmain以前的提示一直是gitpush--set-upstreamoriginm......