时钟是SOC或块级设计最重要的组成部分之一,在设计概念构思/规划阶段中,需要很好地定义和理解时钟的架构。单个SOC拥有各类模块,如内核、闪存、存储器和外设,这些模块需要在不同频率下运行。它们的最大运行速率可能受到所使用的实现技术、实施架构、功率目标、以及IP访问时间等因素的限制。时钟分频器电路是必不可少的,它可以从主锁相环(PLL)/振荡器时钟,或任何系统时钟中产生分频时钟,并将不同的分频时钟馈送到不同的器件模块。由于时钟也可以被应用驱动,时钟分频器必须是可配置的。需要可配置性的原因有很多,包括:
* 以较低的频率运行系统时钟,从而减少动态功耗。
* 以高于或低于处理器的频率运行外设的状态机。
* 设置发送/接收外设帧的波特率。
本文阐述了目前SOC中各种可配置时钟分频器逻辑的实施方案,强调了各自的问题、优势及局限性。可配置分频有各种实施方案,但是数字化设计行业中最简单且最经常使用的实施方案包括:
* 纹波分频器
* 具有50%占空比的基于Div解码的2N倍分频器
* 不具有50%占空比的基于时钟门控使能技术的整数分频器
* 具有整数分频和50%占空比的基于多路选择器的分频器。
纹波分频器
图1:可配置纹波分频器的电路示意图。
纹波分频器是传统的分频器,由于它们在安装和保持时间上有严格的要求,目前的SoC设计中通常避免使用这种分频器。
优势:
* RTL复杂性最小
* 生成的分频时钟占空比为50%。
局限性:
* 时钟时延随着更高版本分频时钟的应用而增加(时钟上升沿的延迟大小排列为DIV16》 DIV8》 DIV4》 DIV2》 DIV1。)
如果启动时钟和捕获时钟从带不同分频因子的不同分频器产生,这个缺陷可能导致更大的路径不一致。
例如,设想一个带两个纹波分频器的简单时钟架构(见下图),其中一个用于为内核提供时钟,另一个用于为闪存提供时钟。两个时钟之间的比例必须是4:1。这会导致设计本身有意想不到的偏差。
图2:可配置时钟示例。
闪存时延–平台时延= 2个触发器的CK-Q延迟
* 即使有时钟树平衡,也要确保强大的时序签收功能,这对于设计进入投产阶段非常重要。STA工程师需要在四个不同触发器的输出上定义时钟,因为每个触发器都在生成具有不同时延的时钟。这增加了人工工作,需要在设计中人工定义并检查所有可能生成的时钟。
基本RTL如下所示:
图3:Div解码分频器实施。
在需要分频的输入时钟的每个上升沿上都更新一次postscale_count寄存器的值。分频时钟可以从postscale_count寄存器的MSB中产生。下一个计数寄存器的值取决于分频因子。
优势:
* 这类分频器拥有最简单的RTL。
* 它们产生的输出时钟占空比为50%,且不会像纹波分频器一样导致固有偏移,因为分频时钟总产生于一个点。
局限性:
* 这类分频器仅限于2N倍分频。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)