← FPGA中数字电路经典问答

推荐答案 测试一下

多时域设计中 ,如何处理信号跨时域。

问答题 中等 经典问答问答题

参考答案

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

涉及知识点

  • 跨时钟域同步
  • 亚稳态与两级同步器
  • 异步FIFO
  • 格雷码编码
  • 握手协议
  • 建立保持时间
← 上一题
登录后反馈错题
下一题 →