推荐答案
测试一下
题目
多时域设计中 ,如何处理信号跨时域。
参考答案与知识点
参考答案
不同的时钟域之间信号通信时需要进行同步处理,这样可以防止新时钟域中第一级触发
器的亚稳态信号对下级逻辑造成影响,其中对于单个控制信号可以用两级同步器,如电平、
边沿检测和脉冲,对多位信号可以用 FIFO,双口 RAM,握手信号等。
跨时域的信号要经过同步器同步,防止亚稳态传播。例如:时钟域 1中的一个信号,要
送到时钟域 2,那么在这个信号送到时钟域 2之前,要先经过时钟域 2的同步器同步后,才
能进入时钟域 2。这个同步器 就是两级 d触发器,其时钟为时钟域 2的时钟。这样做是怕时
钟域 1中的这个信号,可能不满足时钟域 2中触发器的建立保持时间,而产生亚稳态,因为
它们之间没有必然关系,是异步的。这样做只能防止亚稳态传播,但不能保证采进来的数据
的正确性。所以通常只同步很少位数的信号。比如控制信号,或地址。当同步的是地址时,
一般该地址应采用格雷码, 因为格雷码每次只变一位, 相当于每次只有一个同步器在起作用,
这样可以降低出错概率, 象异步 FIFO的设计中, 比较读写地址的大小时, 就是用这种方法。
如果两个时钟域之间传送大量的数据,可以用异步 FIFO来解决问题。
涉及知识点
- 跨时钟域同步
- 亚稳态与两级同步器
- 异步FIFO
- 格雷码编码
- 握手协议
- 建立保持时间