中文 英语

时钟的问题

时钟耗电量大,占地面积大,很难以可控的方式分配。正在采取什么措施来控制这些笨重的野兽?

受欢迎程度

同步数字设计范式使我们能够设计出控制良好的电路,但这只有在时钟本身控制良好的情况下才能实现。

虽然过度设计技术确保了早期ASIC开发的情况,但今天的设计负担不起这样的奢侈品。当我们追求更低的功率和更高的工作频率时,时钟已经成为一个关键的设计元素。即使使用现代设计技术,时钟网络也会消耗大量的路由资源,占总设计功率的30% - 40%。

在ASIC开发的早期,做了很多假设和简化。大门上有延迟,电力供应完全稳定,没有开关,时钟分布完美。这些假设中的许多都反映在我们今天使用的设计语言中,例如Verilog而且硬件描述语言(VHDL)设计文件必须补充其他数据,包括电源意图和后布局时间等信息。

其他信息留给工具来提取。时钟树合成(CTS)是那些已经变得更加复杂的领域之一。今天,它依赖于设计方法、工具、人工干预以及前端和后端团队中不同团队之间传递的大量信息的组合。

“设计团队在项目中花费了大量的时间来设计一个时钟树,以满足设计的时间和功率标准,”Arvind Narayanan说,产品营销架构师Mentor是西门子旗下的企业.时钟树的复杂性直接取决于设计架构和终端应用程序。”

并不是所有的设计都具有相同的时钟复杂度。“首先,时钟的数量会影响时钟树的设计,”微软公司Digital & Signoff group的软件工程组主管查克·阿尔珀特(Chuck Alpert)指出节奏.“一些设计有数百个时钟和各种倾斜限制。其他设计只有一个扫描和功能时钟。其次,业绩目标是一个很大的因素。宽松的倾斜和转换(转换)约束使一个更节能的时钟。除此之外,其他因素还包括技术节点的特征、平面图特征和单元库行为。”

添加自动化
时钟倾斜一直是复杂设计的一个问题。“定制或半定制处理器设计有数百万个门都在同一个时钟上,所以他们有倾斜的问题,”首席技术官说超音速.“如果没有过度的解决方案,这将是一场灾难。他们使用结构化技术,比如把时钟放在电力线后面,他们会铺设结构化的H树或网格时钟。”

时钟树合成的发展就是为了避免这种过度杀伤。为了解决日益严重的问题,已经开发了几代产品。早期的工具假设只有一个时钟时钟门控成为一种节省电力的流行方式,工具必须能够处理多个子树。随着时间的推移,这些子树变得有层次。

使用时钟的困难之一是它们在流中的位置。它们既不是前端,也不是后端。相反,他们处于分歧之中。RTL的首席技术产品经理Arti Dwivedi指出:“时间、倾斜和面积可以在实施过程中解决,但设计一个节能的时钟树需要RTL尽早开始努力。有限元分析软件

在大多数情况下,交付的RTL网表不模拟时钟倾斜,尽管今天,倾斜预算可能在运行物理综合之前建立。温加德解释说:“CTS必须实现一个倾斜预算,希望在最小的功率下,它通过过度驱动某些节点来加速它们,或者它可以在其他路径上增加延迟。”“让时钟慢下来比让它快起来容易。当您尝试在更大的距离上平衡低倾斜时钟时,串联的缓冲区数量会增加。这意味着从树顶部的源节点到到达叶节点的延迟(称为插入延迟)会增加。倾斜预算越小,时钟树就越深。”

Alpert断言:“构建时钟树本质上是一个小型物理合成(P&R)流程。一个人必须的地方时钟智能细胞,优化单元格大小和净缓冲,时间时钟,提取电线,还有路线钟响了。因此,时钟树合成中使用的算法范围涵盖了物理设计的巨大范围。”

Mentor公司的纳拉亚南指出,这是一个多层次的问题。“由于叶子集群(电线和引脚)在时钟树中承载了大部分电容,在CTS期间动态更新RC计算允许叶子集群最小化电容,从而降低功耗。CTS工具还应该与全局路由引擎一起工作,在时钟缓冲区插入期间,CTS引擎可以看到更准确的拓扑和拥塞。”

管理倾斜
偏差必须得到管理,而不是必须从源头最小化。Narayanan说:“CTS引擎通常通过平衡所有flop的信号到达时间来实现零倾斜,而不管它们位于时钟树的哪个级别。”“然而,并不是所有的时钟端点都需要相互平衡。这些不同的组有不同的时钟端点,更广为人知的说法是‘倾斜组’。”

在许多情况下,CTS工具可以分析触发器的相互作用,以得出不同时钟树级别的倾斜平衡需求,也可以跨不同的电压岛。工具还可以通过分析时序数据结构中的连接组件来发现倾斜组。Narayanan补充说:“使用倾斜组可以省去手动CTS规范和多次CTS运行,从而节省了处理时间。”“它还通过减少插入的缓冲区数量来节省电力。”

时钟门控
时钟是一个高活性节点,它的切换速度是大多数数据的两倍。Narayanan指出:“在较小的技术节点上,时钟网络负责任何芯片消耗的大约一半的功率,其中大部分是由于切换时钟而产生的动态功率。”“传统的时钟树和基于网格(H-Tree或Fishbone)的时钟树都会消耗大量的芯片面积,因为时钟树中有大驱动器和中继器,以满足严格的平衡要求。用于优化功率的时钟门控也对面积有直接影响。”

时钟门控通过关闭未使用的块的时钟来降低时钟功率,但必须小心操作。Dwivedi指出:“单独的合成时钟门控可能会导致插入太多的时钟门,这本身可能会消耗大量的电力。””RTL技术可以量化预先节省的电力,并确定哪些时钟门可以节省电力。”

考虑在哪里执行时钟门控也很重要。温加德说:“你需要进行多层时钟树门控。“接近登记册有利于做出本地决策,这可能发生得非常快,但其他时候你想要一些与国家有关的东西知识产权块,以便您可以删除该块的本地时钟。有时您需要更高级别的东西,可能是子系统级别,也可能是时钟生成单元。门越靠近源,动态功率就越低。”

德维威迪表示同意。“设计师可以使用粗时钟门控和细时钟门控的组合来更好地控制时钟功率和定时关闭。块级时钟门被插入以关闭在特定操作模式下不被期望激活的块的时钟。粗时钟门控可以在一个或两个阶段实现,以确保大块或寄存器库的有效时钟门控。RTL技术可以识别这样的场景。”

所有这些导致了额外的复杂性。Narayanan说:“随着移动设备的普及,时钟树已经变成了极其复杂的电路,每种电路的运行模式都有不同的时钟跟踪。”“构建能够承受工艺变化的坚固时钟树对设计团队来说是一个巨大的挑战。”

工作模式、工艺角和电源状态数量的增长,加上各个工艺角的电阻变化很大,要求设计人员采用更智能的CTS和时钟优化方法。Narayanan补充道:“具体来说,为了降低时钟树的功耗,CTS引擎必须处理MCMM场景,并使用智能时钟门控、倾斜组和旋转整形等先进技术。”通过对功率敏感的CTS优化,设计师可以在不牺牲面积或闭合时间的情况下,实现功率和时间的最佳QoR。”

缴纳的时钟

图1:管理芯片上的偏差。由Synopsys提供

过犹不及
在芯片上保持时钟的低偏度似乎是一件好事。事实上,这可能会导致问题。Dwivedi说:“时钟门的同时开关会导致峰值功率和高di/dt,这对配电网络造成压力。”“这对测试模式也很重要。RTL早期基于周期的功率分析可以帮助设计人员识别动态压降分析的关键向量。”

为了减少这些峰值,可以故意扭曲时钟到达时间。“如果你使时钟信号在不同的时间到达不同的电池,你就可以在整个时钟周期内均匀地分配电力使用。Teklatech.“因此,整个电路的峰值功率基本上降低到单个电池的峰值功率。”

另一种降低功耗的方法是让时钟边缘不那么完美。Narayanan解释说:“转换是指时钟转换,也就是时钟切换所需的时间。”更慢的转换意味着更慢的计时和更低的功率,而更快的转换会消耗更多的功率,但可以改善计时和信号完整性。回转成形能够消除过度悲观的过渡,以降低动态功率,同时满足时间限制。”

fpga中的时钟
如果不至少提到fpga内的时钟,关于时钟的讨论将是不完整的。fpga有固定的布线,固定大小的缓冲器和许多其他限制。幸运的是,所有的延迟都是预先知道的。

Jarrod Thorne,负责计时和同步的高级产品线经理Microsemi,指出了时钟树生成中一些重要的项。“输入和输出的数量是时钟树解决方案复杂性和所需设备数量的主要驱动因素。频率族会影响最终时钟树解决方案的复杂性,你必须问这样的问题,“所有的时钟都需要在上电时吗?”在受到功耗、成本、电路板面积和设备数量限制的情况下,利用这些需求,设计人员可以映射到设备以创建他们的时钟树。”
回避问题
越来越多地使用的一种技术是在设计的最高层次上避免这个问题。完全全球同步的系统正在变得不切实际。相反,在设计系统时,时钟被视为来自不同的锁相环。实际上,它们被认为是彼此异步的。

然而,需要小心时钟/数据域交叉.温嘉德指出:“同步器设计的理论依赖于这样一个事实,即时钟彼此不同步,因此由发送时钟发送并由接收时钟记录的输入边会随着时间的推移相对移动。”“如果它们实际上是同步的,那么最终可能会导致倾斜成为同步器的敌人。从元稳定性的角度来看,设计可能是糟糕的,因为两个同步的东西被视为异步的。”

结论
在RTL模型中,时钟并不是一个完美的信号。它可能是整个设计中最复杂的信号,影响系统的各个方面,从定时关闭到峰值功率需求,从芯片架构到布局。大多数公司都有与他们处理时钟和工具相关的明确定义的方法,在检测可以做什么和找到合适的解决方案方面已经走了很长一段路。但在一天结束的时候,工程师们永远不能把他们的目光从球上移开——在这种情况下,是时钟的边缘。

有关的故事
选择节能技术
有太多的选择,最好的并不总是显而易见的。
电源状态切换变得更加困难
理解和实现电源状态切换延迟可以决定设计的成败。
权力的时间维度
权力是一个复杂的多维度、多学科的问题。你的流程是否解决了所有问题?
终极左移
许多实现步骤已经在设计流程的早期移动。接下来是楼层规划,它包括从建筑到物理的一切。



1评论

卡尔·史蒂文斯 说:

“fpga中的时钟
如果不至少提到fpga内的时钟,关于时钟的讨论将是不完整的。fpga有固定的布线,固定大小的缓冲器和许多其他限制。幸运的是,所有的延迟都是事先知道的。”
英特尔Stratix10具有“无处不在的寄存器”,并根据输入路径和输出路径选择FF,以便有更多的时间来解析长路径。
下一步是使用布线延迟到时间时钟,以允许网络解决自时钟,而不是同步时钟。
这将有助于实现异步设计。

留下回复


(注:此名称将公开显示)

Baidu