自动派生时钟
自动派生的时钟也称为自动生成的时钟。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会添加唯一的后缀来区分它们,例如:
要强制生成时钟的名称,请执行以下操作:
?在RTL中选择唯一且相关的网络名称,或
?使用create_generated_clock强制生成时钟的名称。
重命名自动衍生时钟
可以重命名工具自动创建的生成时钟。这个重命名过程包括使用有限的参数数量:
必须指定的参数是新生成的时钟名称和源对象
生成的时钟的。生成的时钟的源对象是创建自动派生时钟的对象(CMB输出引脚、UltraScale的GT输出引脚等)。-来源和-只有当多个时钟通过源引脚,以消除任何歧义。
局限性
?自动衍生时钟只能在其产生的引脚处重命名,例如在时钟修改块(PLL、MMCM…)的输出。例如,自动导出的时钟不能在BUFG的输出处重命名,即使它在其中传播。
?主时钟或用户定义生成的时钟不能重命名。仅自动派生的时钟可以使用此机制重命名。
?source_object必须与创建自动派生时钟的对象相匹配。
如果工具无法重命名生成的时钟,则返回错误。主时钟也必须在完成重命名时存在。自动派生的时钟可以随时重命名在XDC内部,即使在它们已经被一些定时约束引用之后。例如,以下是的输出引脚处生成的时钟的report_clocks摘要MMCM:
下面的三个命令说明了重命名时必须指定的命令行选项
MMCM输出端的三个自动导出时钟:
重命名后,以下是report_clocks的摘要: