数据路径:数据在整个传输起点和传输终点所经过的路径。
时钟路径:时钟从源端到达源端寄存器和目的寄存器的路径。通常由时钟源到源寄存器和时钟源到目的寄存器两条路径组成。
FPGA和外部芯片的同步通信接口,根据时钟来源可以分为系统同步接口和源同步接口。
FPGA与外部芯片之间的通信时钟都由外部同一时钟源(系统时钟)产生时,称为系统同步接口。(外部时钟分别给外部芯片和FPGA)
FPGA与外部芯片之间的通信时钟都是由源寄存器所在一侧(输出端产生),称为源同步接口。(从FPGA给到外部芯片、外部芯片给到FPGA)就是输入到FPGA的数据引脚,有对应的同步时钟信号也连接到FPGA引脚,并且在FPGA器件的内部也使用这个同步时钟信号去锁存该输入的数据信号。
时序分析的四种模型:
- reg——reg
- reg——pin
- pin——reg
- pin——pin
全局时钟网络是走的网络节点,时钟到达每个寄存器的偏斜(skew)比较小,而自分频时钟走的是数据线,到达每个寄存器的延时不一样,跟布线就有关系。
Osc(振荡器)
Input_delay:发射延(lunch)到达数据开始的位置。
LrMax(lunch rise)越大,影响的是建立时间。
LrMin(lunch rise)越小,影响的是保持时间。
Output_delay:采样延(latch)到数据开始的位置。
1、input_delay
控制时钟,控制(延时)数据
IDELAYE2 #(
.CINVCTRL_SEL("FALSE"), // Enable dynamic clock inversion (FALSE, TRUE)
.DELAY_SRC("IDATAIN"), // Delay input (IDATAIN, DATAIN)
.HIGH_PERFORMANCE_MODE("FALSE"), // Reduced jitter ("TRUE"), Reduced power ("FALSE")
.IDELAY_TYPE("FIXED"), // FIXED, VARIABLE, VAR_LOAD, VAR_LOAD_PIPE
.IDELAY_VALUE(18), // Input delay tap setting (0-31)
.PIPE_SEL("FALSE"), // Select pipelined mode, FALSE, TRUE
.REFCLK_FREQUENCY(200.0), // IDELAYCTRL clock input frequency in MHz (190.0-210.0, 290.0-310.0).
.SIGNAL_PATTERN("DATA") // DATA, CLOCK input signal
)
IDELAYE2_inst_data (
.CNTVALUEOUT(), // 5-bit output: Counter value output
.DATAOUT(rx_dat_t[i]), // 1-bit output: Delayed data output
.C(1'b0), // 1-bit input: Clock input
.CE(1'b0), // 1-bit input: Active high enable increment/decrement input
.CINVCTRL(1'b0), // 1-bit input: Dynamic clock inversion input
.CNTVALUEIN(5'd0), // 5-bit input: Counter value input
.DATAIN(1'b0), // 1-bit input: Internal delay data input
.IDATAIN(rx_dat[i]), // 1-bit input: Data input from the I/O
.INC(1'b0), // 1-bit input: Increment / Decrement tap delay input
.LD(1'b0), // 1-bit input: Load IDELAY_VALUE input
.LDPIPEEN(1'b0), // 1-bit input: Enable PIPELINE register to load data input
.REGRST(1'b0) // 1-bit input: Active-high reset tap-delay input
);