advanced fpga designed: ch6 clock

第六章:时钟域

本章主要介绍在FPGA设计中的多时钟域以及异步信号的处理.

6.1跨时钟域处理

输出到buffer,也将对时钟重大影响。通过一个例子:快时终域是慢时钟域的两倍,说明数据在传输的时候会有冲突.时钟同步问题通常是不可重复的,并且会影响FPGA设计的可靠性。

6.1.1亚稳态

亚稳态会通过组合逻辑传播.advanced fpga designed: ch6 clock_第1张图片亚稳态示意图.

6.1.2 方法1:相位控制

可以使用相位匹配来消除时序冲突.使用PLL和DLL来达到相位匹配.例子:通过DLL使输入时钟和反馈时钟上升沿保持一致.

6.1.3 方法2:双从触发

双触发是在两个异步时钟域之间传递单bit信号时可以使用的一种技术。可以避免后级触发器进入亚稳态.

6.1.4 方法3:利用fifo

在异步时钟域之间传递多位信号时,可以使用FIFO。书中举例fifo在PCI接口中的使用.PCI标准外设接口.

advanced fpga designed: ch6 clock_第2张图片

fifo的主要设计框图.

6.1.5 分区同步模块

在良好的顶层设计中应分为整体的时钟区域,为了每个单独的模块均在合适的时钟区.

6.2 ASIC中的门控时钟

门控时钟是指由组合逻辑信号产生的时钟信号,通常情况下一般不建议使用门控时钟(毛刺现象比较严重).门控时钟可以有效地降低时钟网络的动态功耗,并且不会导致电路在工作时性能下降。在同步数字电路中,很多书籍不建议采用门控时钟进行电路设计。门控时钟被认为是降低芯片动态功耗的最佳方式之一,广泛应用于低功耗设计领域。https://blog.csdn.net/Reborn_Lee/article/details/84898327

6.2.1时钟模块

将所有门控时钟保留在专用时钟模块内,并与功能模块分开。

6.2.2去除门控时钟

通过宏定义来去除工程中的门控时钟

6.3总结

*时钟同步问题通常是不可重复的,并且会影响FPGA设计的可靠性。

*PLL或DLL通过倍频或分频可以进行相位同步.

*双重触发可用于在两个异步时钟域之间同步单比特信号。

*时序分析应忽略第一个同步触发器,并确保最小化同步触发器之间的时序。

*在异步时钟域之间传递多位信号时,可以使用FIFO。

*同步寄存器应作为功能模块之外的独立块进行分区。

*尽可能避免时钟门控。 如果需要门控,请将所有门控时钟保留在专用时钟模块内,并与功能模块分开。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(advanced fpga designed: ch6 clock)