本节主要介绍FPGA源同步输入约束——时序例外约束
时序例外约束其实就是告诉fpga的静态时序分析工具 ,哪些路径需要进行时序分析,哪些不用进行时序分析。如果不加入时序例外约束,fpga就会把一些不相关时钟域的信号进行时序分析,从而得到错误的时序分析结果。
针对源同步输入约束,其时序例外就是告诉fpga 输入时钟数据的关系,是同沿采样还是相反沿采样。一般,就下面四种情况:
(1) 同沿捕获,输入时钟数据边沿对齐;
(2) 同沿捕获,输入时钟数据中心对齐;
(3) 相反沿捕获,输入时钟数据边沿对齐;
(4) 相反沿捕获,输入时钟数据中心对齐;
这里说的同沿捕获,相反沿捕获的意思就是,外部器件发送数据的时钟沿,与fpga采样数据所用的时钟沿是不是都是相同类型的时钟边沿。比如,外部器件在时钟的上升沿发送数据,fpga在时钟的上升沿捕获数据,那么这就是同沿捕获,要是fpga在时钟的下降沿捕获数据,那么这就是相反沿捕获。
对于同沿捕获,时序例外有下面几类(即相反沿捕获都是时序例外)
建立时间关系,时序例外:
虚拟时钟的下降沿与数据时钟的上升沿;
虚拟时钟的上升沿与数据时钟的下降沿。
保持时间关系,时序例外:
虚拟时钟的上升沿与数据时钟的上升沿;
虚拟时钟的下降沿与数据时钟的下降沿。
当进行约束时,如果是SDR输入,同沿捕获时,比如是上升沿捕获,那么同沿的下降沿也是需要进行时序例外约束的。因为同沿约束指令 只对相反沿进行时序例外约束,而实际在SDR时,只用到 了单沿,即上升沿或者是下降沿。这样剩下的那个沿也是需要时序例外约束的。
1、同沿捕获,输入fpga时钟数据边沿对齐
Figure 65就是输入时钟数据边沿对齐,外部器件在时钟上升沿发送数据,fpga在时钟上升沿进行数据采样。图中红色的实线箭头就是正确的建立时间关系,蓝色的实线箭头就是正确的保持时间关系。虚线的红色和蓝色箭头是时钟偏斜时的建立保持时间关系。建立时间关系是在虚拟时钟(外部器件发送数据用的时钟)和数据时钟(fpga捕获数据用的时钟)相近的上升沿间,保持时间关系是在数据时钟的上升沿与 右边与其相邻的虚拟时钟的下降沿间。
对于同沿捕获的时序例外约束指令如下:
2、同沿捕获,输入fpga时钟数据中心对齐
Figure 66是同沿捕获(上升沿),输入fpga时钟数据中心对齐的输入方式,红色箭头是正确的建立时间关系,蓝色的箭头是正确的保持时间关系。
时序例外约束指令如下,这里只把相反沿进行例外约束:
对于相反沿捕获,时序例外有下面几类(即相反沿捕获都是时序例外)
建立时间关系,时序例外:
虚拟时钟的上升沿与数据时钟的上升沿;
虚拟时钟的下降沿与数据时钟的下降沿。
保持时间关系,时序例外:
虚拟时钟的下降沿与数据时钟的上升沿;
虚拟时钟的上升沿与数据时钟的下降沿。
3、相反沿捕获,输入fpga时钟数据边沿对齐
外部器件在虚拟时钟的上升沿发送数据,fpga输入时钟的下降沿捕获数据。建立时间关系如下图67所示的红色箭头,保持时间关系如下图67所示的蓝色箭头。
时序例外约束指令如下: