​数字IC设计基本概念之多时钟设计​

news2024/9/17 7:11:49

当设计中使用了多个时钟时,这些时钟域之间的关系可能是synchronousasynchronous或者exclusive的。如下所示:

Synchronous:

Asynchronous:

Exclusive:

需要人为地指定设计中时钟之间的关系,EDA工具才能正确地分析不同时钟域之间的路径。

Synchronous Clocks

如果两个时钟共享一个共同的时钟源,并且有固定的相位关系,则两个时钟相互同步。 除非特别指定,否则EDA工具会假设任意两个时钟是同步的。如下所示:

create_clock -period 4 -name CK1 -waveform {0 2}
create_clock -period 4 -name CK2 -waveform {1 3}
create_clock -period 6 -name CK3 -waveform {2 3}
 

以上三个时钟CK1,CK2,CK3在时间0时刻同步。

在实际的设计阶段,需要通过set_clock_groups -logically_exclusiveset_false_path命令指定不同时钟之间的非同步关系。

Asynchronous Clocks
如果在设计中两个时钟域不相互通信,则它们是异步的。例如,片上振荡器产生的时钟与从外部进入芯片的系统时钟异步。两个时钟域中的时钟边沿可以在任何时间发生,没有任何关系。 在这种情况下,

EDA不会检查由一个时钟触发并由另一个时钟捕获的时序路径,就像在两个时钟之间声明false path。

要声明两个时钟之间的异步关系,使用set_clock_groups -asynchronous命令。

Exclusive Clocks

如果两个时钟不会交互,则它们是exclusive的。 例如,电路可能将两个不同的时钟信号复用到一个时钟线上,其中一个是用于正常操作的快速时钟,另一个是低功耗运行的慢速时钟。在任何给定的时间,只有两个时钟中的一个被使能,所以两个时钟不会交互。

为了防止EDA工具花时间去检查exclusive clocks时钟之间的时序关系,你可以声明时钟之间的false path或使用set_clock_groups -logically_exclusive命令将时钟声明为exclusive。否则,你可以使用case analysis来禁用您不想包含在当前的时钟。

声明时钟CK1和CK2是exclusive的:

set_clock_groups -logically_exclusive  -group {CK1} -group {CK2}

这会使EDA工具忽略从CK1时钟域开始到CK2时钟域结束和从CK2时钟域开始到CK1时钟域结束的任何时序路径。

这就类似于,在CK1至CK2和CK2至CK1之间设置了一个false path。

可以在每个组中指定多个时钟。例如,声明时钟CK1、CK2和CK3、CK4之间是exclusive的:

set_clock_groups -logically_exclusive -group {CK1 CK2} -group {CK3 CK4}

如果指定两个以上的组,则每个组相对于另一个组是exclusive的:

set_clock_groups -logically_exclusive -group {CK1 CK2} -group {CK3 CK4} -group {CK5}

如果仅指定一个组,则该组对于所有其他时钟是exclusive的:

set_clock_groups -logically_exclusive -group {CK1 CK2}

也可以选择为时钟组指定一个名称:

set_clock_groups -logically_exclusive -name EX1  -group {CK1 CK2} -group {CK3 CK4}

时钟组可以是物理exclusive,也可以是逻辑exclusive。物理exclusive时钟之间没有串扰,也没有逻辑互动。在这种情况下,使用-physically_exclusive选项而不是-logically_exclusive选项。这可以防止工具执行时钟网络之间的串扰分析。

使用get_clock_relationship命令报告时钟之间的关系:

get_clock_relationship {CK1 CK2}

要删除时钟分组声明,使用remove_clock_groups命令:

remove_clock_groups -logically_exclusive -name EX1

删除使用set_clock_groups命令进行的所有exclusive时钟分组声明:

remove_clock_groups -logically_exclusive –all

例1:四个时钟和一个选择信号

考虑具有四个时钟CK1,CK2,CK3,CK4的电路示例。默认情况下,EDA工具分析所有时钟组合之间的相互作用。但是,SEL逻辑在任意时刻只会选择两个时钟,CK1和CK3或CK2和CK4。

防止在无关时钟之间进行检查的一种方法是设置false path。例如:

set_false_path -from CK1-to CK2
set_false_path -from CK2 -to CK1
set_false_path -from CK3 -to CK4
set_false_path -from CK4 -to CK3
set_false_path -from CK1-to CK4
set_false_path -from CK4 -to CK1
set_false_path -from CK2 -to CK3
set_false_path -from CK3-to CK2

在这种情况下,EDA工具会分析所有时钟的有效组合,而忽略无效的组合。

另一种方法是使用case analysis,在SEL输入上设置逻辑值0或1,

它检查SEL = 0或SEL = 1的特定情况的时间。例如:

set_case_analysis 0 [get_ports SEL]

SEL = 0时,只有CK1和CK3有效,CK2和CK4被忽略。如果你想分析两种情况下,需要进行两次分析:一次SEL = 0,另一次SEL = 1。

另一种实现相同效果的方法是使用set_disable_timing命令。例如,禁用从CKP2和 CKP4端口开始的时序路径检查:

set_disable_timing [get_ports {CKP2 CKP4}]

另一种方法是指定哪些时钟可以同时有效,以便EDA工具分析所有有效路径。例如:

set_clock_groups -logically_exclusive -name E1 -group {CK1 CK3} -group {CK2 CK4}
set_active_clocks [all_clocks]

如果您只想考虑SEL = 0的情况,可以使用下列命令:

set_clock_groups -logically_exclusive -name E1 -group {CK1 CK3} -group {CK2 CK4}
set_active_clocks {CK1,CK3}

设置时钟CK1和CK3有效,意味着CK2和CK4无效。

例2:四个时钟和两个选择信号

下面考虑一个电路示例,其中包含两个独立的时钟选择输入S1和S2:

CK1和CK2之间以及CK3和CK4之间的路径无效,但所有其他路径组合都是可能的。

要检查所有有效路径,同时避免无效路径,可以声明false paths:

set_false_path -from CK1-to CK2
set_false_path -from CK2 -to CK1
set_false_path -from CK3 -to CK4
set_false_path -from CK4 -to CK3

另一种方法是使用case analysis并在S1和S2上设置逻辑值来检查特定的情况:

set_case_analysis 0 [get_ports S1]
set_case_analysis 0 [get_ports S2]

如果使用case analysis分析所有四个案例,则需要进行四次分析,

使用S1-S2 = 00,01,10和11.

另一种方法是使用set_clock_groups和set_active_clocks命令。 例如,

set_clock_groups -logically_exclusive -name mux1 -group {CK1} -group {CK2}
set_clock_groups -logically_exclusive -name mux2 -group {CK3} -group {CK4}
set_active_clocks {CK1,CK2,CK3,CK4}

EDA工具分析从CK1到CK3和CK4和从CK2到CK3和CK4的所有有效路径(反方向也是有效的)。

如果只想考虑S1-S2 = 00的情况,可以使用

set_active_clocks命令:

set_clock_groups -logically_exclusive -name mux1 -group {CK1} -group {CK2}
set_clock_groups -logically_exclusive -name mux2 -group {CK3} -group {CK4}
set_active_clocks {CK1,CK3}

多路复用时钟Exclusivity点

芯片设计通常在不同的时间,对于不同的电路会服用不同的时钟。例如,有时候在工作的高性能模式,有时候降低工作频率节省功耗。 多路复用器(MUX)单元用于选择这些时钟,如下图所示:

默认情况下,EDA工具会考虑触发和捕获时钟的所有组合,例如由CK1触发数据并由CK2捕获数据。 但是,对于如图所示时钟复用器,在任何给定时间,三个时钟中只有一个可以在路径上运行。它们是exclusive 时钟。

指定exclusive时钟的一种方法是设置“exclusivity points”以标记引脚,在引脚上一次只能传播一个时钟,如下所示:

对于复杂的时钟MUX,此方法更加方便。

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

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

相关文章

燃油车淘汰倒计时开始了?

文 | AUTO芯球 作者 | 璇子 新能源车要取代燃油车了? 油车车主先别喷啊 就在上个月 新能源乘用车月销量数据一经公布 我一看 渗透率居然达到了惊人的51% 啥概念啊 如果卖100台车 51台都是新能源 其他49台才是燃油车 看到这数据 有好多看热闹的人就在说 …

Vue组件:创建组件、注册组件、使用组件

1、创建组件 组件(component)是 Vue.js 最强大的功能之一。通过开发组件可以封装可服用的代码,将封装好的代码注册成标签,扩展 HTML 元素的功能。几乎任意类型应用的界面都可以抽象为一个组件树,而组件树可以用独立可…

【完-移动云-基础】移动云架构和ECS

一、移动云产品架构 产品架构分为IaaS、PaaS、SaaS 我司使用的是IaaS,仅托管了服务器资源。软件则由浪潮提供。 一图理解三者区别 二、云主机ECS 是一种弹性按需提供的云端服务器,可选择不同的配置 基础服务: 虚拟化、镜像、云硬盘、云…

autoware整体架构的分析

autoware framework sensinglidar driver(lidar驱动)PointCloud Preprocessing(点云预处理)Detection(检测)GNSS (全球导航卫星系统)IMU (惯性测量单元) Localization(定位)Pose Ini…

产品需求过程管理重要性

产品需求过程管理重要性 背景 以下都是真实事项经历回顾,在产品开发过程中,产品经理与研发团队之间的沟通至关重要。然而,沟通不畅或信息缺失常常导致需求无法准确传达,最终影响产品的成功。以下是一些常见的问题: 1.需…

Qt插件开发总结6--插件间依赖

文章目录 一、前言二、基本策略三、效果展示四、关键代码4.1、主程序4.2、插件管理器4.3、插件A 一、前言 插件大致可分为:功能性插件、界面插件;一个软件由一堆插件堆起来,必然难以避免插件间相互引用,例如:插件A调用…

安防监控/视频汇聚EasyCVR视频监控平台级联上级,无法播放是什么原因?

EasyCVR视频监控平台,作为一款智能视频监控综合管理平台,凭借其强大的视频融合汇聚能力和灵活的视频能力,在各行各业的应用中发挥着越来越重要的作用。EasyCVR视频汇聚平台采用先进的图像处理技术和传输协议,能够确保高清、稳定的…

Qt (13)【Qt窗口 —— 颜色对话框 QColorDialog】

阅读导航 引言一、颜色对话框 QColorDialog简介二、常用方法介绍⭕参数说明 三、使用示例 引言 在深入探讨了Qt的QMessageBox之后,我们现在转向QColorDialog,一个让用户轻松选择颜色的实用对话框,为Qt应用增添色彩选择的便捷性。 一、颜色对…

Java语言程序设计基础篇_编程练习题题目:17.16 (字符的頻率)

题目:17.16 (字符的頻率) 编写一个程序,提示用户输入一个 ASCII 文本文件名,然后显示文件中每个字符出现的频率。 代码示例 编程练习题17_16FrequencyOfCharacters.java package chapter_17;import java.io.DataInputStream; import java…

【HarmonyOS 4.0】网络请求 - axios

axios 相当于鸿蒙应用项目的一个第三方库,鸿蒙应用项目使用ohpm管理(包括安装,卸载等)第三方库。除了axios,还有很多其他的第三方库可供开发者使用,所有的第三方库都收录在OpenHarmony三方库中心仓。 1. 安…

以低代码技术加速推动企业数字创新

在数字化转型的浪潮中,企业面临着前所未有的挑战和机遇。随着技术的不断进步,企业需要快速适应市场变化,创新产品和服务,以保持竞争力。低代码技术作为一种新兴的开发模式,正逐渐成为企业数字创新的重要推动力。 低代码…

电比例流量泵放大器

电比例泵控制是一种精准的液压传动控制系统,利用输入的电信号按比例来调制液压参数,以实现对流量、压力和方向的连续且成比例的控制。这种控制在现代工业中的应用非常广泛,尤其在需要精确控制的场合。 按控制元件分类:电液比例控…

无人机培训机构必备运营合格证及驾驶员训练机构合格证详解

无人机培训机构在运营过程中,必须持有必要的运营合格证及驾驶员训练机构合格证,以确保其培训活动的合法性、规范性和安全性。以下是对这两种合格证的详细解析: 无人机培训机构运营合格证 无人机培训机构运营合格证是国家或地区民航管理部门…

【软考中级攻略站】-软件设计师(1)-数值及其转换和数据表示

进制转换 n进制->十进制 步骤说明: 识别基数:首先确认你正在处理的是n进制数,这里的n就是该数的基数。 数位权重:从右向左数,每个位置上的数字都有一个权重,最右边的位置权重为0,依次向左…

【JUC】10-Java内存模型JMM

1. JMM 通过JMM来实现和主内存之间的抽象关系。屏蔽各个硬件平台和操作系统的内存访问差异以实现让Java程序在各种平台下都能达到一致的内存访问效果。 三大特性:原子性:互斥,同时成功或失败。有序性:指令重排序后有序。可见性&a…

MySQL递归获取商品分类以及所有下级分类商品

现在就是我们有一张商品表,还有一张分类表,商品表有一个字段用来记录当前商品分类id的,然后查询时候因为分类是有层级的,如果我们想通过顶层分类获取到它和所有子类的商品时就会需要用到MySQL的递归查询了。 首先是针对 MySQL 8.…

NCMMSC-CNVSRC 2024视觉语音识别竞赛圆满落幕

8月16日上午,NCMMSC-CNVSRC 2024 学术研讨会在乌鲁木齐召开的第十九届全国人机语音通讯学术会议(NCMMSC 2024)上举行。会上公布了本次视觉语音识别竞赛 CNVSRC 2024 的最终结果,并举行了颁奖仪式。 本次竞赛由 NCMMSC 2024 组委会…

springboot+vue 进销存管理系统

springbootvue 进销存管理系统 相关技术springbootmybatismysqlmavenvueelementui

ANet-1E1S1智能网关:物联网时代的能源计量新纪元,断点续传引领高效运维

在万物互联的物联网时代,数据的精准采集与高效传输成为了推动各行业智能化转型的关键。ANet-1E1S1以其断点续传技术与强大的RS485接口智能通信管理能力,为水、电、气、油等多领域能源管理带来了便捷与效率的提升。基于嵌入式Linux平台的通用型智能通信管…

高经费打造的史诗级视觉盛宴,惊叹于每一帧的奢华

8月29日,备受期待的《指环王:力量之戒》第二季终于上线了。这一季一上架就放出了三集,立刻引发了影迷们的热烈讨论。 自从2022年首季首播以来,《指环王:力量之戒》就一直备受瞩目。尽管首季受到了不少争议,…