vivado 创建主时钟
创建主时钟
主时钟是指用于为设计定义时序参考的时钟,而时序引擎可利用主时钟获取时序路径要求以及与其它时钟的相位关系。
计算主时钟插入延迟时应从时钟源点 (定义主时钟的驱动器引脚
/
端口位置)开始,一直到时钟扇出所至时序单元的时
钟引脚。
基于这个原因,定义主时钟时很重要的一点是要将主时钟定义在与设计边界相对应的对象上,这样主时钟的延迟以及
间接条件下的偏差,都可以得到精确计算。
典型的主时钟根包括:
•
“
输入端口
”
•
“7
系列器件中千兆位收发器输出引脚
”
•
“
某些硬件原语输出引脚
”
输入端口

约束实例:
create_clock -name SysClk -period 10 -waveform {0 5} [get_ports sysclk]
该实例中,波形的占空比设定为
50%
。上面给出了变量
-waveform
的用法,并且只有在定义占空比不是
50%
的时钟
时才有必要使用该变量。对于差分时钟输入缓存,只需在差分对的
P
侧对主时钟进行定义。
7
系列器件中千兆位收发器输出引脚
千兆位收发器输出引脚,例如已恢复的时钟:

约束实例:
create_clock -name txclk -period 6.667 [get_pins gt0/TXOUTCLK]
建议:
对于面向
7
系列器件的设计,赛灵思还建议定义
GT
输入时钟,因为
Vivado
工具能够计算
GT
输出引脚上的预期
时钟,并将这些时钟与用户创建的时钟进行比较。如果时钟不同或者到
GT
的输入时钟丢失,工具会发出方法检查警
告。
注释:
对于面向
UltraScale
器件的设计,赛灵思不建议在
GT
的输出上定义主时钟,因为在定义相关电路板输入时钟
时,将自动导出
GT
时钟。
某些硬件原语输出引脚
某些硬件原语,例如,
BSCANE2
的输出引脚不含连接同一原语输入引脚的时序
arc
。

重要提示:
在主时钟传递扇出中不应定义另外一个主时钟,因为这种情况不但不符合任何硬件现实,还会妨碍完整的
时钟插入延迟计算,从而阻碍正确的时序分析。如果发生任何这种情况,必须重新修改并修正约束。
下图给出了一个示例,其中时钟
clk1
在时钟
clk0
的传递扇出中定义。
clk1
从其定义位置
BUFG1
的输出开始覆盖
clk0
。因此,
REGA
与
REGB
之间的时序分析就不会准确,因为
clk0
和
clk1
之间存在无效的偏差计算。
