(1)时钟偏差要加以控制
在同步电路里,时钟信号要连接到所有的寄存器,触发器以及锁存器等器件上。这些巨大的负载就
象一个大电容加在时钟线上,再加上时钟线本身的分布电容和电阻,这样时钟线就象分布的RC线。由于
RC线的延时是线长的函数,这样就使得连到同一根时钟线上的时钟由于距离时钟源的远近不一而产生不
同的延时。因而造成了同一时钟到达各个器件的时间不一致,使得各个以时钟为基准器件的动作也不一
致,而造成时序上的混乱。这就是同步电路时钟偏差。
要让同步电路可靠地运行,就要对时钟偏差进行控制,以使时钟偏差减小到可用的范围。影响时钟
偏差的主要有以下几个因素:
1、用于连接时钟树的连线
2、时钟树的拓扑结构
3、时钟的驱动
4、时钟线的负载
5、时钟的上升及下降时间
在通常的FPGA设计中对时钟偏差的控制主要有以下几种方法:
1、控制时钟信号尽量走可编程器件的全局时钟网络。在可编程器件中一般都有专门的时钟驱动器
及全局时钟网络,不同种类、型号的可编程器件,它们中的全局时钟网络数量不同,因此要根据不同的
设计需要选择含有合适数量全局时钟网络的可编程器件。一般来说,走全局时钟网络的时钟信号到各使
用端的延时小,时钟偏差很小,基本可以忽略不计。
2、若设计中时钟信号数量很多,无法让所有的信号都走全局时钟网络,那么可以通过在设计中加
约束的方法,控制不能走全局时钟网络的时钟信号的时钟偏差。如在UCF文件中加上:NET *** MAXSKEW=3;
一般而言,时钟偏差的控制值应按保持时间要求来计算: △T < T1 - T_hold 。
注意:Xilinx器件应用中,MAXSKEW约束必须直接加在触发器的时钟端上,MAXSKEW约束不能通过任
何门电路,尤其是对芯片PAD进行约束时,应对IBUF之后的信号加约束,许多人在初学时经常忘记这一
点。
3、异步接口时序裕度要足够大
局部同步电路之间接口都可以看成是异步接口,比较典型的是设计中的高低频电路接口、I/O接口,
那么接口电路中后一级触发器的建立-保持时间要满足要求,时序裕度要足够大。
4、在系统时钟大于30MHz时,设计难度有所加大,建议采用流水线等设计方法。
采用流水线处理方式可以达到提高时序电路的速度,但使用的器件资源也成倍增加。
5、要保证电路设计的理论最高工作频率大于电路的实际工作频率;
最高频率是指设计软件经综合,布局,布线后,软件计算出的可工作的最高频率。比如经过综合及
布局布线后,最长的延时为20ns,则其理论最高工作频率为50MHz。需要指出的是:此频率更设计有很
大关系,良好的设计可使器件工作在更高的频率范围。
所谓电路的实际工作频率是指所设计的逻辑电路实际要达到的工作频率,既实际电路中所使用的时
钟频率。
要使时序电路可靠地工作就必须使理论最高工作频率大于电路的实际的工作频率,但理论要高于实
际的值是多少,这需要根据实际情况而定。主要要考虑的是时钟的最大可能抖动是多少。