vivado 自动派生时钟

2023-12-22 21:37:03

自动派生时钟

自动派生的时钟也称为自动生成的时钟。Vivado IDE自动在时钟修改块(CMB)的输出引脚上创建这些的约束,只要已经定义了相关的主时钟。在AMD 7系列设备系列中,CMB有:

?MMCM*/PLL*

?BUFR

?相位器*

在AMD UltraScale中?设备系列,CMB是:

?MMCM*/PLL*

?BUFG_GT/BUFGCE_DIV

?GT*_COMMON/GT*_CHANNEL/IBUFDS_GTE3

?BITSLICE_CONTROL/RX*_BITSLICE

?订单3

如果还创建了用户定义的时钟(主时钟或生成时钟),则不会创建自动生成的时钟定义在同一网表对象上,即在同一定义点(网络或引脚)上。自动派生的时钟是用网络最顶层结构中的段名称命的,即连接到定义点。

自动派生时钟示例

以下自动导出的时钟示例是由MMCM生成的时钟。主时钟clkin驱动MMCME2实例clkip/mmcm0的输入clkin。这个自动生成的时钟的名称为cpuClk,其定义点为clkip/mmcm0/CLKOUT。

本地网络名称

如果CMB实例位于设计的层次结构内,则本地网络名称(即没有其父单元名称的名称)用于生成的时钟名称。例如,对于名为clkip/cpuClk的分层网络:

?父单元格名称为clkip。

?生成的时钟名称为cpuClk。

名称冲突

如果两个自动生成的时钟之间存在名称冲突,Vivado IDE会添加唯一的后缀来区分它们,例如:

? usrclk
? usrclk_1
? usrclk_2

要强制生成时钟的名称,请执行以下操作:

?在RTL中选择唯一且相关的网络名称,或

?使用create_generated_clock强制生成时钟的名称。

重命名自动衍生时钟

可以重命名工具自动创建的生成时钟。这个重命名过程包括使用有限的参数数量:

create_generated_clock -name new_name [-source master_pin] [-master_clock
master_clk] source_object

必须指定的参数是新生成的时钟名称和源对象

生成的时钟的。生成的时钟的源对象是创建自动派生时钟的对象(CMB输出引脚、UltraScale的GT输出引脚等)。-来源和-只有当多个时钟通过源引脚,以消除任何歧义。

局限性

?自动衍生时钟只能在其产生的引脚处重命名,例如在时钟修改块(PLL、MMCM…)的输出。例如,自动导出的时钟不能在BUFG的输出处重命名,即使它在其中传播。

?主时钟或用户定义生成的时钟不能重命名。仅自动派生的时钟可以使用此机制重命名。

?source_object必须与创建自动派生时钟的对象相匹配。

如果工具无法重命名生成的时钟,则返回错误。主时钟也必须在完成重命名时存在。自动派生的时钟可以随时重命名在XDC内部,即使在它们已经被一些定时约束引用之后。例如,以下是的输出引脚处生成的时钟的report_clocks摘要MMCM:

====================================================
Generated Clocks
====================================================
Generated Clock : clkfbout_clk_core
Master Source : clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKIN1 Master
Clock : clk_pin_p
Multiply By : 1
Generated Sources : {clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKFBOUT}
Generated Clock : clk_rx_clk_core
Master Source : clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKIN1 Master
Clock : clk_pin_p
Multiply By : 1
Generated Sources : {clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKOUT0}
Generated Clock : clk_tx_clk_core
Master Source : clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKIN1 Master
Clock : clk_pin_p
Edges : {1 2 3}
Edge Shifts : {0.000 0.500 1.000}
Generated Sources : {clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKOUT1}

下面的三个命令说明了重命名时必须指定的命令行选项

MMCM输出端的三个自动导出时钟:

create_generated_clock -name clk_rx [get_pins clk_gen_i0/clk_core_i0/inst/
mmcm_adv_inst/CLKOUT0]
create_generated_clock -name clk_tx [get_pins clk_gen_i0/clk_core_i0/inst/
mmcm_adv_inst/CLKOUT1]
create_generated_clock -name clkfbout [get_pins clk_gen_i0/clk_core_i0/inst/
mmcm_adv_inst/CLKFBOUT]

重命名后,以下是report_clocks的摘要:

====================================================
Generated Clocks
====================================================
Generated Clock : clkfbout
Master Source : clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKIN1 Master
Clock : clk_pin_p
Multiply By : 1
Generated Sources : {clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKFBOUT}
Generated Clock : clk_rx
Master Source : clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKIN1 Master
Clock : clk_pin_p
Multiply By : 1
Generated Sources : {clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKOUT0}
Generated Clock : clk_tx
Master Source : clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKIN1 Master
Clock : clk_pin_p
Edges : {1 2 3}
Edge Shifts : {0.000 0.500 1.000}
Generated Sources : {clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKOUT1}

文章来源:https://blog.csdn.net/cckkppll/article/details/135161067
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。