关于多比特跨时钟域设计,在前面的文章中我们已经总结了格雷码和异步FIFO。本篇文章我们来看一下握手控制,本文将从以下几点来总结:
- 什么是握手信号
- 多比特跨时钟域握手接口
- 多比特跨时钟域握手设计方案一
- 接口时序
- 电路设计
- 多比特跨时钟域握手设计方案二
- 接口时序
- 电路设计
什么是握手信号
握手指的是两个设备之间通信的一种方式,用来通信的信号就是握手信号。最简单的握手信号是 valid 和 ready,也可以叫 request 和 grant。假设设备1向设备2发送数据,设备1不知道设备2什么时候可以接收数据,设备2也不知道设备1什么时候会发送数据,那么它们之间如果用握手通信可能是这样的顺序:
- 设备1将 valid 信号置1,告诉设备2,数据准备就绪了,请查收
- 设备2此刻正处于忙碌状态无法接收数据,设备2将 ready 信号保持为0
- 设备2空闲了,将 ready 信号置1接收设备1的数据
- 设备1看到设备2的 ready 为1,它知道设备2已经接收好数据了,将 valid 置0同时撤销数据,准备下一次发送。
可以看到因为有握手控制