vivado 慢速到快速时钟之间的多循环

发布时间:2023年12月26日

慢速到快速时钟之间的多循环

在这种情况下,启动时钟CLK1是慢时钟;捕获时钟CLK2是快速时钟。如下图所示。

例如,假设以下内容:

?CLK2是CLK1频率的三倍。

?接收寄存器上的时钟启用信号允许设置多周期约束在两个时钟之间。如下图所示。

当没有应用多循环时,STA工具解决的设置和保持关系如下图所示。

示例一:设置=3/保持相应移动

例如,假设只定义了三(3)的设置乘数。

set_multicycle_path 3 -setup -from [get_clocks CLK1] -to [get_clocks CLK2]

设置乘法器的结果是移动用于设置的捕获时钟的边缘向前检查两(2)个循环(即3-1个循环)。因为没有保持乘数指定时,保持关系由工具从设置启动和捕获边导出。启动时钟活动边缘不受多周期约束的修改。多周期后的设置和保持关系如下图所示:

不需要在CLK2的一个周期内将数据保存在启动寄存器中功能的这样做会增加不必要的逻辑,从而增加面积并消耗电力。因为接收寄存器具有时钟使能信号,所以可以安全地放宽保持要求没有转移风险。

示例二:设置=3/保持=2(-end)

为了放松上一个示例的保持要求,保持的捕获时钟边沿关系必须向后移动两(2)个时钟周期。这是通过指定-使用set_multycle_path-hold命令的end选项:

set_multicycle_path 3 -setup -from [get_clocks CLK1] -to [get_clocks CLK2]
set_multicycle_path 2 -hold -end -from [get_clocks CLK1] -to [get_clocks
CLK2]

如示例一所示:设置=3/保持移动相应地,设置乘数移动的边用于设置检查的捕获时钟向前两(2)个周期(即3-1个周期)。两个多周期约束后的设置和保持关系如下所示图形。

set_multicycle_path N -setup -from [get_clocks CLK1] -to [get_clocks CLK2]
set_multicycle_path N-1 -hold -end -from [get_clocks CLK1] -to [get_clocks
CLK2]
文章来源:https://blog.csdn.net/cckkppll/article/details/135231634
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。