作者: lee,来源:FPGA开源工作室
1. 时钟介绍
在数字设计中,时钟代表从寄存器(register)到寄存器可靠传输数据的时间基准。Xilinx Vivado集成设计环境(IDE)时序引擎使用ClocK特征计算时序路径要求,并通过松弛计算报告设计时序裕度(Slack)。
时钟必须正确定义,以获得最佳的时序路径。以下特性定义了时钟:
1,时钟定义在它的树根的驱动器管脚或端口上,被称为源点。
2,时钟的边沿是由周期和波形特性相结合来描述的。
3,周期以纳秒(ns)为单位,时钟对应于波形重复的时间。
4,波形是时钟周期内上升边沿和下降边沿绝对时间的列表,以纳秒(ns)为单位。列表必须包含偶数的值。第一个值总是相对应的。到第一个上升的边沿。除非另有规定,占空比默认为50%,相移到0ns。
如图1所示,时钟CLK0具有10ns周期、50%占空比和0ns相位。时钟CLK1具有8ns周期、75%占空比(8ns内的高电平时间为6ns)和2ns上升沿相位偏移。
Clk0: period = 10, waveform = {0 5}
Clk1: period = 8, waveform = {2 8}
图1 时钟波形示例
1.1 传播时钟(Propagated Clocks)
周期和波形属性代表时钟的理想特性。当进入FPGA并通过时钟树传播时,时钟边沿被延迟并受到噪声和硬件行为引起的变化的影响。这些特性称为时钟网络延迟和时钟不确定性。
时钟的不确定性包括:
1,时钟抖动(Clock jitter)
2,相位误差
3,您指定的任何其他不确定性
默认情况下,Vivado IDE始终将时钟视为传播时钟,即非理想时钟,以便提供包括时钟树插入延迟和不确定性的准确松弛值。
1.2专用硬件资源
Xilinx FPGA的专用硬件资源有效支持大量设计时钟。这些时钟通常由电路板上的外部元件产生。它们通常通过输入端口进入设备。
它们也可以由称为时钟修改块的特殊原语生成,例如:
1,MMCM
2,BUFR
3,PLL
它们也可以通过常规单元格(如LUTS和寄存器)进行转换。
2 主时钟(Primary Clocks)
主时钟是通过输入端口或GT收发器输出引脚(例如,恢复时钟)进入设计的板时钟。
主时钟只能由create_clock命令定义。
如图2所示,板时钟通过端口sysclk进入器件,然后在到达路径寄存器之前通过输入缓冲器和时钟缓冲器传播。
1,时钟周期10ns
2,占空比50%
3,没有相位偏移
相应的Xilinx设计约束(XDC):
create_clock -period 10 [get_ports sysclk]