0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

芯片设计之握手协议

FPGA设计论坛 来源:FPGA设计论坛 2025-05-14 09:16 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文主要介绍握手的基本概念,读者可通过该篇文章对握手有个基本概念。

握手简介

举个简单例子;

c8ffbcea-2596-11f0-9310-92fbcf53809c.png

上图中sender拉高vld发送有效的数据给receiver,receiver拉高ready代表准备好接收数据。

vld==1、ready==1:sender发送有效数据,receiver同时也准备好接收数据,完成一次有效数据传输;

vld==1、ready==0:sender发送有效数据,receiver未准备好接收数据。反压sender,通常情况下sender需保持vld直到receiver拉高ready,完成一次传输;

vld==0、ready==1:send没有数据需要发送,receiver已提前做好接收数据的准备;一旦send发起数据传输,即可完成一次握手;

vld==0、ready==0:send没有数据需要传输,receiver也没有做好接收数据准备;

其实拿流水线的下级和上级很好理解,握手就体现了上下级之间的配合关系,使得流水能够正常运转;

握手与反压

握手的主要工作就是确保上下级之间的流量基本一致。关于反压可以有如下理解:

流水线上若上级处理速度大于下级处理速度,则下级需反馈信息给上级,我接收不过来你的数据了;即拉低ready;

流水线上若下级处理速度大于上级处理速度,则上级需反馈信息给下级,我处理速度跟不上你处理速度,给你的数据没那么快。即通过拉低一段时间的vld,使得上级得以喘息。

其实从这里我也突然悟出来了一个道理,握手是给了每级处理单元一个控制速度的权利。完美的流水线,应该来说是不需要通过握手来实现的(太理想了),因为还需要握手来控制数据的传输等等;

流水线中反压(拉低ready)

反压的目的都是为了屏蔽上级单元送数据来。但根据流水中的每级单元中是否有存储单元,可分为带存储器的反压和不带存储器的反压;在带存储器的反压根据对前级还是前前级的反压可分为:跨级反压、逐级反压;

不带存储器的反压

c916b508-2596-11f0-9310-92fbcf53809c.png

即流水线上的每一级都没有存储单元,后级与前级的耦合性高,当流水线中间某一级错误,导致整条流水线均停止工作;在上图中可以理解成,若C出于某种原因不能接收B_OUT,由于B中没有暂存空间,导致的结果就是B也不能接收A_OUT数据了。可以理解成工厂流水线里头,每一级都没有容器可以存放上一级的输出物。

特点:

1.节省存储器资源,每一级都没有存储器;2.流水控制复杂,后级的流水停止,需对前面的每一级都有控制;(牵一发而动全身)

带存储器的逐级反压

c91e4480-2596-11f0-9310-92fbcf53809c.png

如上图,和不带存储器的流水比起来,各级流水中都加入了一定的缓存容量。这样做的一个好处就是每一级与每一级之间的握手都变成了相对独立的握手模块。这里留个悬念,缓存的大小如何设定?

带存储器的跨级反压

c927331a-2596-11f0-9310-92fbcf53809c.png

如上图,C的反压直接跳过B,反压到A。目前我是没接触过这种设计,但是我认为这种设计也有一定的合理性以及局限性;这种结构需要求C可以无条件接收B_OUT数据,也就是单向握手,只要B给出B_OUT,C 100%可以接收;

握手与反压设计注意点

sender发生数据的vld指示和receiver接收的ready指示应该为独立的逻辑产生,不可将二者扯上联系;

若存在流水,则是否为某一级流水添加存储单元、该存储单元多大都是需要考虑的点,出发点都是为了流水的效率;

流水除了考虑各级的存储深度外,不要忽略流水路上处理中的数据;

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    39

    文章

    7715

    浏览量

    170882
  • 存储单元
    +关注

    关注

    1

    文章

    66

    浏览量

    16689
  • 流水线
    +关注

    关注

    0

    文章

    127

    浏览量

    27121

原文标题:芯片设计方法学之--握手

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    valid-ready握手协议和enable-xoff协议对比

    这一篇主要对比下valid-ready握手协议和enable-xoff协议,当然这个对比仅限于同时钟域下的信号传输。
    的头像 发表于 12-04 10:32 1599次阅读
    valid-ready<b class='flag-5'>握手</b><b class='flag-5'>协议</b>和enable-xoff<b class='flag-5'>协议</b>对比

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

    最早接触到握手协议是在校期间学习PCIe的AXI总线时,至今日虽然PCIe的结构已经忘得一干二净,但握手协议经过不断的使用还算掌握的不错。
    的头像 发表于 12-11 14:11 5237次阅读
    【<b class='flag-5'>芯片</b>设计】<b class='flag-5'>握手</b><b class='flag-5'>协议</b>的介绍与时序说明

    无线充项目求助:PD 协议芯片握手后反复重启断电,求解决方案!

    Type-C 接口与 iPad、联想 Pad、三星 Pad 握手充电。 已做尝试及现象: 先后采用劲芯微、易充、美芯晟 20W 以上无线充方案,搭配智融 SW3522 PD 协议芯片给 Pad 供电
    发表于 11-13 14:48

    CH246D USB口与快充充电器协议握手失败是什么原因?

    CH246D USB口与快充充电器协议握手失败,电源一直5-9V之间跳动,不会稳定下来。请问谁知道这什么原因?
    发表于 09-26 07:16

    bq25792握手协议

    Android项目,在没开机前,充电,bq25792 走默认的5v1.5A充电。 在开机后,主控通过i2c与bq芯片通信后,有中断触发,status状态改变,但D+/D- 没有产生握手。适配器不充电
    发表于 06-11 16:20

    基于ECC带缓存的快速SSL握手协议

    标准安全套接层(SSL)握手协议带宽开销大且网络数据通信效率低。该文提出一种基于椭圆曲线密码体制、带缓存的快速SSL握手协议。该协议将服务器
    发表于 04-13 09:41 19次下载

    什么是握手信号? 什么是握手协议?

    什么是握手信号? 什么是握手协议? RS -232通行方式允许简单连接三线:Tx、Rx和地线。但是对于数据传输,双方必须对数据定
    发表于 10-14 10:26 5799次阅读

    什么是询问握手身份验证协议

    什么是询问握手身份验证协议 CHAP(询问握手身份验证协议)是用于远程登录的身份验证协议,通过三次握手
    发表于 04-03 16:06 2919次阅读

    tcp协议三次握手详细过程

    TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由
    发表于 12-08 11:53 1w次阅读
    tcp<b class='flag-5'>协议</b>三次<b class='flag-5'>握手</b>详细过程

    AXI4协议五个不同通道的握手机制

    AXI4 协议定义了五个不同的通道,如 AXI 通道中所述。所有这些通道共享基于 VALID 和 READY 信号的相同握手机制
    的头像 发表于 05-08 11:37 1980次阅读
    AXI4<b class='flag-5'>协议</b>五个不同通道的<b class='flag-5'>握手</b>机制

    握手协议中的Valid及data打拍技巧

    AXI 协议使用的是valid-ready握手的方式去传输数据。
    发表于 06-27 16:12 2811次阅读
    在<b class='flag-5'>握手</b><b class='flag-5'>协议</b>中的Valid及data打拍技巧

    Valid-Ready握手协议的介绍与时序说明

    "Valid-Ready" 握手协议是一种常用于数字电路中的接口协议,用于控制数据的传输和处理。
    的头像 发表于 12-04 10:37 2414次阅读
    Valid-Ready<b class='flag-5'>握手</b><b class='flag-5'>协议</b>的介绍与时序说明

    简述TCP协议的三次握手机制

    TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它主要用于在IP网络中进行数据传输。TCP协议的三次握手
    的头像 发表于 08-16 10:57 3161次阅读

    TCP三次握手协议的作用

    在计算机网络中,数据的传输需要在发送方和接收方之间建立一个稳定的连接,以确保数据的完整性和顺序。TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,它通过三次握手协议
    的头像 发表于 01-03 17:15 1442次阅读

    Sink PD快充协议芯片XSP25支持PD+QC+FCP+SCP+AFC协议

    基于改变快充协议,使电源输出电压和电流满足需求者的要求。 PD诱骗协议工作原理 与供电端进行PD协议握手通信:取电芯片需要与供电端进行PD
    的头像 发表于 10-17 15:21 344次阅读
    Sink PD快充<b class='flag-5'>协议</b><b class='flag-5'>芯片</b>XSP25支持PD+QC+FCP+SCP+AFC<b class='flag-5'>协议</b>