IC笔试: 时钟约束中 clock,generated clock ,virtual clock区别与联系

2023-11-04

时钟约束sdc常用的命令有:
creat_clock
creat_generated_clock
set_clock_uncertainty
set_clock_groups
时钟的三要素:Waveform ,uncertainty 和clock group

creat_clock

主要定义一个clock的source 源端,周期和信号上升沿下降沿的时间点,例如:
在这里插入图片描述
这个时钟描述成的sdc语句就是
creat_clock -name SYSCLK -period 20
-waveform {0 5}[get_ports2 SCLK]
waveform 后面跟的是上升沿的时间点,如果没有指定默认waveform为{0,period/2}

creat_generated_clock

generated clocks 是另外一个重要的时钟概念:
genreated clocks 是从master clock 中取得的时钟定义,master clock 就是creat_clock 命令指定的时钟产生点,如图:
在这里插入图片描述
我们一般把时钟的源头定义为creat_clock ,而分频时钟则会定义为creat_generated_clock ,generated clock 并不会产生新的clock domian ,而且定义generated clcok 后,clcok path 的起点始终位于master clcok,这样source latency并不会重新计算,这就是定义generated clcok 的优点所在。

Virtual Clock

craat_clocok ,creat_generated_clock 都是real clock ,而virtual clock 则不挂在任何port或者pin上,只是虚拟创建出来的时钟。
//定义虚拟时钟
creat_clock -name VCLK -period 10 -waveform {0 5}
我们通常会把input /output delay 挂在virtual clcok上,因为input/output delay 约束本来就是指片外的时钟,所以挂在虚拟时钟上比较合理,当然如果要省事情,直接挂在real clock 上也是可以的。

set_clock_uncertainty

主要定义了clcok信号到时序器件的clock端可能早到或者晚到的时间,主要是用来降低jitter(时钟抖动对有效周期的影响)。值得注意的是,在setup check中,clock uncertainty是代表着降低了时钟的有效周期;而在hold check中,clock uncertainty是代表着hold check所需要满足的额外margin。

set_clock_groups

定义完时钟后,我们也需要通过设置clock group来确认各个时钟之间的关系。这是很重要的一步,因为通常我们还需要做cross domain check,如果clock group设错了,会导致整个STA检查错误。一般有三个选项:asynchronous,physically_exclusive和logically_exclusive。

asynchronous代表两个异步的clock group
physically_exclusive代表两个clock group在物理意义上相互排斥,比如在一个source pin上定义了两个时钟。
logically_exclusive代表两个clock group在逻辑上相互排斥,比如两个clock经过MUX选择器。一个简单的例子:
set_clock_groups -physically_exclusive
-group {CLK1 CLK2} -group {CLK3 CLK4}
为了判别划分时钟组,将不同的时钟划分成以下两类:

a. Synchronous Clocks

当两个时钟间的相位是固定的,则可以称这两个时钟为同步时钟(synchronous clock)。一般同源,如由同一个MMCM or PLL产生的两个时钟可以称为同步时钟。因此可以将主时钟和与之对应的衍生时钟约束成同一个时钟组

b. Asynchronous Clocks

无法判定两个时钟间相位时,则可以称这两个时钟为异步时钟(asynchronous clocks)。两个来自不同晶振的时钟,一定是异步时钟。通常情况下设计中不同的主时钟肯定是异步时钟,因此可以将这两个主时钟及其衍生时钟约束成不同的时钟组。
对于异步时钟,由于其两个时钟间相位不固定,时序分析的结果定然不确切,因此这部分的分析可以通过设置时钟组约束忽略,但是这并不意味着这部分的设计能工作正常(使用动态时序分析);对于异步时钟间的设计,必须做跨时钟域处理,避免亚稳态的产生。

笔试 virtual clock 例子

有一电路图,假设输入IN 的input delay 恒定为1ns:
在这里插入图片描述
在这里插入图片描述
可以把输入端挂在virtual clock 上,红色虚线表示关键路径。

笔试 generated clock 例子

如下电路中,ff2的CK和D之间,是同步还是异步关系,该电路是否有时序风险?
在这里插入图片描述
该电路中有三个DFF,一个CLK源。可以认为是同步关系
FF0.CK来自CLK的取反;
FF1.CK来自CLK;
FF2.CK来自FF.Q。属于CLK的分频,可以定义为CLK的generated-clk。
假设数据D端也同样来自CLK,那么它们三个DFF之间的时序路径(timing arc)依然可以由STA(静态时序分析,不能分析异步时钟域)工具保证。
理论上:同一个时钟分组(clock group)是同一个时钟域。

参考:https://www.sohu.com/a/218980533_99933533

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

IC笔试: 时钟约束中 clock,generated clock ,virtual clock区别与联系 的相关文章

  • ARM架构和x86架构有什么区别?

    X86结构和ARM架构是主流的两种CPU架构 X86架构的CPU是PC服务器行业的老大 ARM架构的CPU则是移动端的老大 X86架构和arm架构实际上就是CISC与RISC之间的区别 很多用户不理解他们两个之间到底有那些区别 实际就是他们
  • 【Vim】Vim 常用编辑操作

    目录 正则表达式 vim 命令 vim的工作模式 撤销修改 重做与保存 光标移动命令 文本插入操作 文本删除操作 文本复制 剪切与粘贴 文本的修改与替换 多窗口操作 正则表达式 简单地说 正则表达式是一种符号表示法 用于识别文本模式 在某种
  • Verdi实现信号的平移

    在Verilog System verilog中 xxx可以实现延迟指定时间的功能 而在使用verdi查看信号波形并进行分析时 同样也可以实现类似的功能 注 这种信号平移是有其应用场景的 例如 在某些仿真模型中 为了模拟实际的信号延迟 信号
  • 学习笔记--Verilog HDL高级数字设计--第六章组合逻辑与时序逻辑的综合

    组合逻辑与时序逻辑的综合 综合引擎能够自动完成一组布尔函数的最简化 并将结果映射成能满足设计目标的硬件实现 转换 优化 映射 本章将介绍如何编写易于综合的Verilog模型 综合工具完成的工作 1 检测并消除冗余项 2 查找组合反馈环路 3
  • pt_session流程

    pt 即 prime time 数字IC后端设计人员用于check pr之后的path timing 的重要工具 在从后端拿到pt session的前提下 确认sdc或者cdc sdc是否有语法问题等 完成脚本的快速迭代 确保前端交付质量
  • 【HDLBits 刷题 4】Verilog Language(4)Procedures 和 More Verilog Features 部分

    目录 写在前面 Procedures Alwaysblock1 Alwaysblock2 Always if Always if2 Always case Always case2 Always casez Always nolatches
  • 建议收藏:不能不刷的100道数字IC笔/面试题!

    一 IC设计流程及相应EDA开发工具 前端设计 逻辑设计 1 规格制定 根据客户需求 具体的功能和性能要求 制定芯片规格Spec 2 详细设计 设计方案 具体实现架构 模块划分 3 HDL编码 将实际的硬件电路功能通过HDL语言描述出来 形
  • 数字后端知识点扫盲——芯片harden block的划分

    后端在floorplan阶段 如何摆放macro是一个很重要的问题 如果采用层次化设计 对于每一个block来说都需要在block内部把锁分配的macro摆好 如果某一个block里的macro很多 而且又很大 std cell再多一些 这
  • 【HDLBits 刷题 5】Circuits(1)Combinational Logic

    目录 写在前面 Combinational Logic Basic Gates Wire GND NOR Another gate Two gates More logic gates 7420 chips Truth table Two
  • disable path和false path的作用与区别

    disable path和false path的作用与区别C 欢迎使用Markdown编辑器 链接 disable与false的相同与不同 false path 指定某一条path 工具计算delay 但不报时序 disable path
  • 【HDLBits 刷题 13】Buliding Larger Circuits

    目录 写在前面 Buliding Larger Circuits count1k shiftcount fsm seq fsmshift fsm fancytimer fsm onehot 写在前面 以下的解题方法不一定为最佳解决方案 有更
  • (一)低功耗设计目的与功耗的类型

    一 低功耗设计的目的 1 便携性设备等需求 电子产品在我们生活中扮演了极其重要的作用 便携性的电子设备便是其中一种 便携性设备需要电池供电 需要消耗电池的能量 在同等电能提供下 低功耗设计的产品就能够工作更长的时间 时间的就是生命 因此低功
  • CRC算法并行运算Verilog实现

    因为CRC循环冗余校验码的算法和硬件电路结构比较简单 所以CRC是一种在工程中常用的数据校验方法 尽管CRC简单 但在工程应用中还是有些问题会对工程师产生困惑 这篇文章将介绍一下CRC 希望对大家有所帮助 一 CRC算法介绍 CRC校验原理
  • 数字IC设计学习笔记_静态时序分析STA_ PrimeTime 基本概述

    数字IC设计学习笔记 PrimeTime 基本概述 1 PrimeTime 基本概述 2 运行模式 1 PrimeTime 基本概述 PrimeTime Synopsys公司提出的 针对于复杂的 全芯片的 门级静态时序分析的工具 可集成在逻
  • 【HDLBits 刷题 6】Circuits(2)Sequential Logic---Latches and Filp Flops

    目录 写在前面 Latches and Filp Flops Dff Dff8 Dff8r Dff8p Dff8ar Dff16e D Latch DFF1 DFF2 DFF gate Mux and DFF1 Mux and DFF2 D
  • 数字SOC设计之低功耗设计入门(三)——系统与架构级低功耗设计

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

    目录 写在前面 一 查看信息指令 1 df 查看磁盘驱动器的可用空间 2 free 显示可用内存 二 常用操作指令 1 pwd 查看当前目录 2 cd 改变目录 3 ls 列出目录内容 4 file 确定文件类型 5 切换 root 普通用
  • 约束综合中的逻辑互斥时钟(Logically Exclusive Clocks)

    注 本文翻译自Constraining Logically Exclusive Clocks in Synthesis 逻辑互斥时钟的定义 逻辑互斥时钟是指设计中活跃 activate 但不彼此影响的时钟 常见的情况是 两个时钟作为一个多路
  • 组合逻辑毛刺消除(竞争冒险)

    一 毛刺产生的原因 信号在 IC FPGA 器件中通过逻辑单元连线时 是存在延时的 延时的大小不仅和连线的长短和逻辑单元的数目有关 而且也和器件的制造工艺 工作环境等有关 因此 信号在器件中传输的时候 所需要的时间是不能精确估计的 当多路信
  • 数字后端知识点扫盲——CTS (上)

    后端和前端一样在IC设计中扮演着非常重要的角色 甚至可以说入门的前端设计工程师对timing的理解远不如一个后端设计工程师 因此想要更好的理解电路的timing在后端P R之后或者说在大规模的设计中后端如何实现clock对DFF的驱动 就需

随机推荐

  • 讲解Oracle数据库SYS密码的找回方法

    1 采用命令行方式 sqlplus nolog connect as sysdba alter user sys identified by 新密码 alter user system identified by 新密码 2 用数据库管理软
  • mybatis DATE_FORMAT 格式化时间输出

    参考 http www cnblogs com yangy608 p 3950095 html 一 在oracle中 当想把字符串为 2011 09 20 08 30 45 的格式转化为日期格式 我们可以使用oracle提供的to date
  • Vue+SpringMVC---前后端分离极简尝试

    前后端分离 的开发方式是目前WEB开发中的一个大的趋势 随着各种前后端框架的出现 加上REST编程规范慢慢深入人心 前端后端之间通过更加轻量级 简洁高效的JSON作为数据传输格式 使得一切变得开朗起来 前后端分工更加明晰 前端被赋予了更多的
  • XSS----payload,绕过,xss小游戏记录

    一 XSS 1 原理 攻击者把恶意的脚本代码注入到网页中 等待其他用户浏览 这些网页 或触发其他条件 从而执行其中的恶意代码 1 xss实例代码 test html
  • 微信小程序数据传递的几种方式,你都掌握了吗?

    1 组件传递内容给页面 给组件设置myevent事件 通过this triggerEvent myevent myEventDetail 触发该myevent事件并传递内容 在页面用onMyEventshi事件监听传递过来的数据 Page
  • 三道典型C语言题(9)

    1 改错 a void test1 char string 10 改为string 11 char str1 0123456789 strcpy string str1 b void test2 char string 10 str1 10
  • 去除影像黑边的N种方法

    在影像处理过程中 有时候需要将几张小的影像图镶嵌为一张大的 但是却被黑边所阻挡 这时候就需要找到一种方法来将黑边去掉了 由于遥感影像一般都太大了 不好获取也不好处理 这里我们选用的的影像是之前用过的一个小影像 虽然是带有白边而不是黑边的 但
  • BeanFactoryPostProcessor扩展

    Configuration ComponentScan com example public class AppConfig Component public class User public User private String na
  • 谈谈你对集成学习的见解与认识,描述一下它们的优势所在?

    每日一问 谈谈你对集成学习的见解与认识 描述一下它们的优势所在 Datawhale优秀回答者 HipHopMan 集成方法有很多种 一种叫做bagging bagging的思想是 我把我的数据做一点微小的调整 就得到了一个跟原来不一样的数据
  • html显示空白字符

    显示空白字符 默认情况下 元素显示内容会产生空白折叠 即对于空白字符 最终会将连续的空白字符显示为一个空格 如果希望能够正常在元素中显示这些空白字符 那么可以进行如下设置 chapterContent white space pre wra
  • BigDecimal中divide方法注意问题

    BigDecimal中divide方法抛异常 Non terminating decimal expansion no exact representable decimal result 在使用 BigDecimal rate new B
  • Android9.0 Camera App代码跟踪之对焦

    各位早安 接着上个博客 今天继续跟踪代码 在我跟踪代码的时候脑子里一直有个疑问 相机是怎么对焦的 今天就带着这个疑问来跟踪下代码解开心中的疑问 第一步 先看下进入预览后相机是怎么启动对焦的 打开PhotoModule java搜索关键字Fo
  • C++核心:类和对象之封装(意义、和struct区别、成员属性设为私有、两个封装案例)

    文章目录 1 封装的意义 2 struct和class区别 3 成员属性设置为私有 4 练习案例1 设计立方体类 2 练习案例2 点和圆的关系 1 封装的意义 封装是C 面向对象三大特性之一 意义 将属性和行为作为一个整体 表现生活中的事物
  • idea Warning: No artifacts marked for deployment

    1 原因是导入的maven项目 maven库没有下载到 2 切换maven库地址 项目重新打开刷新下载maven即可
  • Java单例设计模式与多态

    DAY6 单例设计模式 定义 就是让一个类永远只产生一个对象 饿汉式 将构造方法私有化 在类内部创建一个私有的静态的最终的本类对象 提供一个共有的静态的返回值类型为本类对象的一个方法 代码实现 懒汉式 将构造方法私有化 在类内部声明一个私有
  • gradle无法获取‘.pom’文件(Android Studio3.0)

    错误内容 Could not GET https dl google com dl android maven2 com android tools build gradle 3 1 3 gradle 3 1 3 pom Received
  • Flutter 获取屏幕高度、密度、安全区域等

    获取屏幕相关 MediaQueryData mq MediaQuery of context 屏幕密度 pixelRatio mq devicePixelRatio 屏幕宽 注意是dp 转换px 需要 screenWidth pixelRa
  • 华硕PN62:BIOS来电重启 和win10关闭升级Windows11提示方法

    1 开机长按del键进bios设置界面 点高级 电源管理或APM Restore AC Power Loss有两个都选power on 如果不成功 检查主板上纽扣电池是否有电 restore on ac power loss意思是 交流失电
  • 最新流行的6大优秀DevOps工具

    DevOps作为对开发和运维人员都极为重要的系统 有望在2019年甚至更长时间内保持稳定增长 事实上 据IDC预测 到2022年 全球DevOps软件市场将达到80亿美元 比2017年的39亿美元有所增长 DevOps工具的选择对组织来说也
  • IC笔试: 时钟约束中 clock,generated clock ,virtual clock区别与联系

    时钟约束sdc常用的命令有 creat clock creat generated clock set clock uncertainty set clock groups 时钟的三要素 Waveform uncertainty 和cloc