跨时钟数据传输问题(Clock domain crossing)-verilog

一、跨时钟数据传输可能产生的问题

当两个不同时钟域的系统进行对接,由于对接的端口是异步可能会出现许多我们不希望出现的情况(setup/holdtime violation、亚稳态、数据传输不稳定)。

1.1什么是异步?

不同的时钟频率:
跨时钟数据传输问题(Clock domain crossing)-verilog_第1张图片
相同时钟周期,但是相位不同
跨时钟数据传输问题(Clock domain crossing)-verilog_第2张图片

1.2 处理跨时钟域的数据传输的方案

  • 采用握手信号交互
  • 采用异步FIFO

二、握手信号

2.1 只使用握手信号存在的问题

跨时钟数据传输问题(Clock domain crossing)-verilog_第3张图片

  • A module向B module进行传递数据,想要利用握手信号达到不同时钟传输数据的目的,这里利用了req和ack两个信号,但是这里很容易产生亚稳态;
  • 当A发送req

你可能感兴趣的:(Verilog,verilog)