当前位置:首页 > 嵌入式 > 嵌入式硬件

引言

随着系统时钟频率的提高,时钟偏斜和干扰开始成为IC工程师重点考虑的问题。增大时序电路的时钟频率,减小时序电路的容差能提升未来的系统性能。低偏斜时钟缓冲器和锁相环时钟驱动器将帮助设计人员设计出速度、偏斜和抗噪性能等指标满足要求的电路系统,但必须将时钟电路设计为一个时钟系统,考虑时钟分步网络的各个方面,包括驱动器、传输线路和信号布线等。

时钟偏斜

时钟偏斜定义为在时钟分布系统中到达各个时钟末端(即器件内部触发器的时钟输入端)的时钟相位不一致的现象。如果时钟偏斜超过所允许的最大值,电路的同步可能会发生失效。

偏斜主要由两个因素造成:一是时钟源驱动器件的偏差,例如同一个PLL输出的不同时钟信号之间的偏斜;另一个是时钟分配网络的偏斜

。由于时钟信号驱动系统中的大量元件为了达到同步必须同时接收到时钟信号,因此它们之间的任何时间差异都将直接影响系统性能。小的偏斜可以忽略,但大到一定程度就会严重影响设计的时序,因此需要在设计中尽量减小其影响。

输出偏斜也叫做引脚到引脚的偏斜,它是指同一器件上同一跃迁的任何两个输出延时之间的差值。电子工程设计发展联合协会(JEDEC)将输出偏斜定义为单一器件输出之间的偏斜,该器件的所有驱动输入应连接在一起,输出部分在同一方向切换,并驱动相同的负载。目前,高性能时钟缓冲器中的常见输出偏斜约为200ps。器件到器件的偏斜也称为封装偏斜,被定义为在相同环境下工作的两个或多个独立器件的任何指定输出之间的传送延时之差。其中,相同的环境指的是相同的输入信号、电源电压、环境温度、封装、负载等。目前的高性能缓冲器中典型的元件到元件偏斜约为500ps。

时序分析

为了保证同步系统的正常运行,所有的时序单元必须在给定的时钟周期内正常工作。如果时序单元的总和超出了可用时间限制,系统就会发生故障。进行时序分析能够确定可能会占用时钟周期的所有因素并评估这些因素所带来的影响,令设计者了解其设计的电路能够以多快的速度运行,以及当前系统还有多大的宽裕度等。

使用同步系统基本元件的简化设计电路如图1所示。寄存器FF1在时钟的每个上升沿驱动,输出Q1并将其作为组合逻辑电路C2的输入信号。寄存器FF2使用与FF1相同的时钟进行控制。来自于组合逻辑电路C2的数据必须先于时钟到达,即需要一定的建立时间;而且必须要持续足够的时间以便使寄存器FF2能够获得正确的输出,即需要一定的保持时间。

解决时钟偏斜的常用方法

时钟偏斜是不可避免的,关键问题是一个系统能够容忍多大的时钟偏斜。通常,可允许的时钟偏斜是由系统要求和工艺参数(例如时钟缓冲器与寄存器的延时)来决定的。设计思路不同,得到的时钟偏斜也不一样。用标准单元方法设计的电路通常要比全定制电路的时钟偏斜大一些。一般而言,一个系统中的流水线级越多,则由于时钟偏斜导致功能错误的可能性越大。

在ASIC设计中,解决时钟偏斜的方法很多。比如:按与数据流相反的方向来分布时钟走线;控制时钟的非交迭时间来消除时钟偏斜;通过分析时钟分布网络来保证时钟偏斜在合理的范围内等。

上面3种方法中最好的是通过分析时钟网络来保证合理的时钟偏斜。设计人员可以通过调整一些参数来控制时钟分布网络,以达到较好的效果。可调整的参数包括时钟网络的互连材料、时钟分布网络的形状、时钟驱动和所用的缓冲配置、时钟线上的负载(扇出)、时钟的上升和下降时间等。总之,时钟分布网络的目的就是使与时钟信号相连的功能子模块的互连线大致等长。

Astro工具的使用

Synopsys公司的Astro是在ASIC设计中流行的后端物理实现工具,是深亚微米芯片设计进行设计优化、布局、布线、计算时延的设计环境。Astro可以满足5千万门、GHz时钟频率、采用0.10um及以下工艺SOC设计的工程和技术需求,其基本流程如下:

1. 读入网表,用晶圆厂提供的标准单元库、Pad库以及宏模块库进行映射;
2. 预布局,规定芯片的大致面积、引脚位置以及宏单元位置等粗略的布局信息;
3. 读入时序约束文件,设置好时序建立的菜单,为后面进行时序驱动的布局布线做准备;
4. 详细布局,力求使布线阶段能顺利满足布线布通率100%的要求和时序要求;
5. 时钟树综合,为了降低时钟树偏斜而产生由许多驱动单元组成的时钟树;

6. 布线,先对电源线和时钟信号布线,然后对信号线布线,目标是最大程度地满足时序;

7. 为满足设计规则从而能成功制造出芯片而做的修补工作,如填充一些dummy单元等。

上面7个步骤是Astro设计的基本流程,下面针对设计中的时序偏斜对第5部分时钟树综合进行重点分析。

时钟树综合是时序优化处理中最重要的一步。时钟树综合的目的是为了减小时钟偏斜和传输延迟,通常是将最重要的时钟放到最后来综合,这是因为前面综合的时钟可能会因后面插入的缓冲器而受到影响。这些缓冲器在芯片内部应均匀分布,力求使时钟偏斜和传输延迟保持在设计范围之内。

时钟树综合解决时钟偏斜的一般方法是:通过分析时钟线路延迟,在时钟树中插入不同尺寸不同驱动能力的缓冲器以改变时钟信号到达触发器的延时,使时钟信号能在同一时间到达各个触发器,让时钟偏斜近似为零。用这种方法可以使电路尽可能不受时钟偏斜的影响,而正确工作。时钟树综合对话框和做完时钟树优化后常见的时钟树结构模型如图2所示。

在进行完时钟树综合与优化之后,可得到电路的时钟树偏斜报告,报告包括全局偏斜(global skew),局部偏斜(local skew)和有用偏斜(useful skew)。此时的时序应为正,否则还要进行继续优化。

结语

对于复杂的同步系统而言,创建时序拓扑并进行时序分析是保证ASIC设计成功的基本因素。解决时钟偏斜的方法很多,主要目的是将时钟偏斜的影响降到最低。其实时钟偏斜并非总是给电路带来负面影响,我们还可以利用它来改进电路的时序,使电路工作在最优性能。


参考文献
1 Steve Furber. ARM SoC 体系结构[M] . 田泽译. 北京:北京 航空航天大学出版社,2003.
2 Synopsys.Synopsys Astro user guide, Clock Tree Synthesis and Clock Tree
3 Optimizations, V-2004.06
4 潘松,黄继业. EDA 技术实用教程,北京,科学出版社,2002
5 D. Harris, M. Horowitz, and D. Liu, “Timing analysis including clock skew,” IEEE Trans. Comput.-Aided Design, vol. 18, no. 11, Nov. 1999.
6 E. G. Friedman, Clock Distribution Networks in VLSI Circuits and Systems.New York: IEEE, 1995.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用

嵌入式开发是一种专门针对特定硬件平台设计和实现软件系统的工程实践,它涵盖了从需求分析、系统设计、编程实现、调试测试直到产品部署及维护的全过程。本文将深入探讨嵌入式开发的主要阶段,分解其流程并阐述每个步骤的关键要点,以便于...

关键字: 嵌入式开发 嵌入式软件
关闭
关闭