FPGA时序束缚根底
一、时序束缚的意图
因为实践信号在FPGA内部期间传输时,因为触发器等逻辑期间并非抱负期间,因而不可避免地存在传输延时,这种推迟在高速作业频率、高逻辑级数时会形成后级触发器地树立时刻和坚持时刻不满足,形成时序违例。(这也是为什么需求把FPGA规划不能以高档编程言语思想看的原因,规划时,需求做到“心中有电路”)一般来说在一个高速体系(时钟频率大于100M),或存在高速信号如DDR,千兆网络等情况下,有必要进行时序剖析和束缚,以进步体系的鲁棒性和安稳性。
二、基本概念
2.1 树立时刻和坚持时刻
setup time是指在时钟有用沿(下图为上升沿)之前,数据输入端信号有必要坚持安稳的最短时刻。
hold time是指在时钟有用沿(下图为上升沿)之后,数据输入端信号有必要坚持安稳的最短时刻。hold time时序查看确保新数据不会在触发器安稳输出初始数据之前过早抵达D端而掩盖其初始数据。
简略来说:数据传输至触发器时,数据有必要在时钟的树立时刻前坚持安稳,并且数据有必要坚持到时钟的坚持时刻点后才干吊销,才干确保该级触发器能够正常存放该数据。
三、模型剖析
下面以经典的时序剖析模型剖析:
如图,data信号传输经存在DFF1、组合逻辑后传输至DFF2,因为触发器推迟tco和组合逻辑延时,clk1传输推迟,
因而树立时刻余量为:
Tslack = (T-tsu+tclk2)-(tclk1+tco+tdelay),
坚持时刻余量为:
Thd_slack = (T+tdelay+tco+tclk1)-(T+thd+tclk2)
以上能够看出,体系的极限性能参数(时钟能跑多快,即T的巨细)只与树立时刻余量有关。