跨时钟域处理是FPGA设计中经常遇到的问题,而如何处理好跨时钟域间的数据,可以说是每个FPGA初学者的必修课。如果是还在校生,跨时钟域处理也是面试中经常常被问到的一个问题。
这里主要介绍三种跨时钟域处理的方法,这三种方法可以说是FPGA界最常用也最实用的方法,这三种方法包含了单bit和多bit数据的跨时钟域处理,学会这三招之后,对于FPGA相关的跨时钟域数据处理便可以手到擒来。
这里介绍的三种方法跨时钟域处理方法如下:
- 打两拍;
- 异步双口RAM;
- 格雷码转换。
01
方法一:打两拍
大家很清楚,处理跨时钟域的数据有单bit和多bit之分,而打两拍的方式常见于处理单bit数据的跨时钟域问题。 打两拍的方式,其实说白了,就是定义两级寄存器,对输入的数据进行延拍。如下图所示。![0173361df6c4ae4a5096753203830324.png](https://i-blog.csdnimg.cn/blog_migrate/686640a08047937bcf3f0f6da6608126.png)