当前位置:   article > 正文

数字电路跨时钟域处理-单比特(3)_数字电路一般什么情况用握手同步

数字电路一般什么情况用握手同步

这篇文章专门学习一下握手法。握手法分为半握手和全握手两种。

半握手的流程为:

①发送方将发送数据send_data输出,同时拉高REQ信号。

②接收方对REQ信号进行同步,并采样send_data,此时已经接收到数据了。

③接收方返回一个ACK信号,同时输出回写信号wb_data给发送方。

④发送方对ACK信号进行同步,并采样来自接收方的回写信号。

⑤发送方拉低REQ信号,发送方认为流程结束。可在下一个时钟周期重新拉高REQ信号开启下一次传输。

⑥接收方对REQ信号进行同步,若检测到REQ信号的拉低,则拉低ACK信号

全握手的流程为:

①~④与半握手完全一样。

⑤发送方拉低REQ信号,此时,全握手的行为将于半握手出现分歧。

⑥接收方对REQ进行同步,检测到REQ由高电平转低电平后,拉低ACK信号。

⑦发送方对ACK信号进行同步,检测到ACK由高电平转低电平后,认为流程结束。可在下一个周期重新拉高REQ信号开启下一次传输

半握手与全握手的本质区别在于传输结束的触发条件不一样。

半握手:

传输结束条件:发送方接收到ACK信号

优点:传输周期短,传输效率高。

缺点:实用性受限,无法应用于快时钟转到满时钟的场合。

如果在快转满场景中应用半握手传输,将会出现发送方数据间隔性地传输到接收方的情况。比如发送方发送的数据是1->2->3->4->5->6->7,那么接收方接收到的数据可能是1->3->5->7。

全握手

传输结束条件:发送方接收到ACK信号的撤销。

优点:实用性强,快->慢,慢->快均适用

缺点:传输效率低,速度慢。

如图,发送方从001开始发送递增数,然而接收方每接收到一个数就要漏掉3个数,因此快时钟域到满时钟域是不可以使用半握手的。 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/206845?site
推荐阅读
相关标签
  

闽ICP备14008679号