Vivado时钟的两大特性

FPGA/ASIC技术

190人已加入

描述

时钟延迟(Clock Latency)

FPGA内部时钟通常由外部时钟源提供,经过PLL/MMCM生成内部所用时钟。从时钟源比如晶振或者上游芯片经过板级走线到FPGA的专用时钟管脚,这个过程必然有板级走线延迟;由create_clock定义的时钟端口到同步原件的时钟端口也必然有延迟。这两类延迟共同构成了时钟延迟,前者为时钟源延迟(Source Latency),后者为时钟网络延迟(Network Latency)。两者的关系如下图所示。

时钟

对于时钟网络延迟,Vivado为自行分析计算。对于时钟源延迟,可通过set_clock_latency来定义。如下Tcl脚本所示。
# Minimum source latencyvalue for clock sysClk (for both Slow and Fast corners)
set_clock_latency -source-early 0.2 [get_clocks sysClk]
# Maximum source latencyvalue for clock sysClk (for both Slow and Fast corners)
set_clock_latency -source -late 0.5 [get_clocks sysClk]

时钟的不确定性(Clock Uncertainty)

我们先看一下时钟不确定性的计算公式,如下图红色方框所示,在Vivado中打开时序路径,选中其中的Clock Uncertainty后面的数据,点击即可出现明确的计算公式。

时钟

这个公式表明,时钟的不确定性主要的构成因素为时钟抖动,包括输入抖动(Input Jitter)和系统抖动(System Jitter)。时钟抖动的具体概念可形象地用如下图表示,时钟周期为10ns的理想的时钟上升沿应该在0ns,紧邻之的下降沿应该在5ns,但因为抖动,上升沿可能会出现在0.1ns,下降沿出现在5.1ns。
在Vivado中可通过set_clock_uncertainty来设定时钟的不确定性。如下Tcl脚本所示。
set_clock_uncertainty-setup 0.213 [get_clocks wbClk]
set_clock_uncertainty-hold 0.167 [get_clocks wbClk]

设定时钟的不确定性的一个好处是可以在时序分析时时序过约束,而避免直接修改时钟周期。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分