棋子 · 2023年12月08日

【芯片设计】握手协议的介绍与时序说明

本文(以及之后同系列文章)的主要内容是聊一聊芯片内部模块间的同步valid-ready握手协议,包括一些典型场景的处理与常用的CBB模块编写,内容偏重于实践少理论。文中的经验与理论知识均来源于网络查询的资料和工作过程中的积累与实践,不能保证在行文过程中没有疏漏与错误,若文章出现事实错误,或编码存在bug,请大家不吝赐教。

image.png

最早接触到握手协议是在校期间学习PCIe的AXI总线时,至今日虽然PCIe的结构已经忘得一干二净,但握手协议经过不断的使用还算掌握的不错。

对于点开这篇文章的人而言,握手协议是什么其实不需要赘述:

"Valid-Ready" 握手协议是一种常用于数字电路中的接口协议,用于控制数据的传输和处理。这种协议通常在两个设备(如芯片、模块或模块间的通信)之间使用,以确保数据的有效传输和正确处理。

下面是 "Valid-Ready" 握手协议的特点和优势:

特点

  • 有效数据传输: "Valid-Ready" 握手协议通过有效信号(Valid)来指示数据是否有效,Ready信号来指示接收方是否已准备好接收数据。只有在Valid和Ready信号都为高电平时,数据传输才会发生,从而确保数据在正确的时机传输。
  • 流控制: Ready信号可以起到流量控制的作用。如果接收方没有准备好接收数据,它可以将Ready信号置低,从而停止发送方的数据传输,以防止数据拥塞。
  • 同步性: "Valid-Ready" 握手协议提供了同步机制,确保发送和接收之间的时序一致性。数据传输只会在双方都准备好的情况下进行,避免了数据的不同步问题。
  • 灵活性: 握手信号的有效和准备状态可以根据具体的应用需求来控制。这使得协议可以适应不同的数据传输速率和处理速度。
  • 错误检测: 在有效信号中,还可以包含错误检测位,以便接收方可以验证传输的数据的正确性。

优势

  • 简单可靠: "Valid-Ready" 握手协议相对简单,易于实现和调试。它的工作原理直观清晰,使得设计者和开发者能够更容易地理解和管理数据传输流程。
  • 节约资源: 与其他复杂的通信协议相比,"Valid-Ready" 握手协议在硬件资源和时钟周期方面的需求较低。这使得它在资源受限的系统中具有优势。
  • 适应性强: 由于其简单性,"Valid-Ready" 握手协议可以适应不同类型的通信和数据处理需求。它可以用于内部芯片通信,模块之间的通信,以及许多其他数字电路场景。
  • 实时性好: 由于有效和准备信号的即时性,"Valid-Ready" 握手协议通常能够满足实时数据传输的需求,特别适用于需要低延迟的应用。

好的,冠冕堂皇的部分结束了。那么一句话来概括握手协议就是:通过valid控制信号发送,通过ready控制信号接收,通过若干info承载信息的一种接口总线,其典型时序图如下:

image.png
握手接口时序

对于发射模块而言,valid/data为输出,ready为输入。对于接收模块而言,valid/data为输入,ready为输出:

image.png
接口方向

对于握手协议的时序,有如下几条较为通用的要求:

  1. 发送方在准备好发送数据之后,需要将valid信号置高,表示数据有效,在接收方的ready置高前(包括当拍)valid不可拉低;
  2. 接收方在准备好接收数据时,需要将ready信号置高,表示已准备好接收数据;
  3. 在数据传输期间,valid 和ready信号需要保持同步,数据传输只能在valid和ready信号同时为高电平时进行;
  4. 解复位后(工作期间)valid不可为不定态,即仿真中valid不允许出现X态和Z态,必须为高/低电平;
  5. 解复位后(工作期间)ready不可为不定态,即仿真中valid不允许出现X态和Z态,必须为高/低电平,注意ready的定态要求不如valid严格(或者说在valid不为1时,ready的不定态一般是允许的,有时也会要求ready全程不可为不定态);
  6. info在valid为1时不可为不定态,在valid为0时无约束;
  7. 在valid置起为1后,到valid和ready进行握手前(包括当拍),info值不能跳变;
  8. valid的产生逻辑中不可包含或隐式包含ready信号;
  9. ready的产生逻辑中可以包含valid信号;

当然了,以上是相对通用的要求,是否需要遵守可以根据实际情况来判断。比如果接收模块需要5拍来处理一个info,那么数据传输就不必非要在valid和ready同时为高时进行,可以在valid拉高后就开始处理,处理完成时再拉高ready接收并丢弃info。

个人的建议是,1、2、4、7、8/9选一为必须遵守的规则,其余为尽量遵守但是可以调整的规则。

作者:尼德兰的喵
文章来源:芯时代青年

推荐阅读

更多IC设计干货请关注IC设计专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
19986
内容数
1306
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息