关于握手信号,一篇文章说清楚

发布时间 2023-04-03 03:31:12作者: yinhuachen

https://zhuanlan.zhihu.com/p/359330607

三种情况:

  • valid先发起请求

  • ready先发起请求

  • 同时发起请求

 

 

 

 

 

仔细观察上述3幅时序图,我们了解valid-ready握手机制需要注意三件事:

  1. valid与ready不可过度依赖,比如valid不可以等待ready到达再拉高(为了防止死锁TODO: 有没有具体点的例子?说明后果),但是在axi协议中的握手信号,ready是可以等待valid拉高再拉高的,valid不可依赖ready的原因是防止死锁(deadlock),本文的代码他俩彼此可以互相独立发出请求拉高;
  2. valid拉高时与有效数据同步,时钟要对齐;(valid与有效数据拉高的时钟要对齐,提高效率)
  3. 当数据计算好后,valid可以拉高等待ready拉高,但是每当握手成功之后,数据需要更新,如果此时没有新的有效数据,valid要拉低。

 

通过一个Ready信号告诉自己前面的模块暂停数据传输的方法被称之为‘反压’。