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

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

3天内不再提示

标准Wishbone协议:流水线Wishbone协议

SwM2_ChinaAET 来源:未知 作者:李倩 2018-07-12 08:38 次阅读

握手发生在主设备和从设备之间。握手协议是主设备和从设备在握手时所遵守的共同规则。除了,B3版中的标准模式之外,B4版的Wishbone官方手册中还新增了流水线模式。下面将依次进行介绍。

标准Wishbone协议

如图7所示,当主机准备传输数据时,应将STB_O置位,直到从机将以下任一信号(周期结束信号)置位:ACK_I、ERR_I或者RTY_I。在每一个时钟(CLK_I)上升沿,系统都会对周期结束信号进行采样。当任一周期结束信号被置位时,STB_O信号就会被复位。这就让主机和从机接口都有机会来控制数据的传输速率。

图7 标准总线握手协议,异步从机

图8 标准总线握手协议,同步从机

允许3.10:在标准模式下,如果从设备保证能够在主设备发起操作时及时做出操作成功的响应,此时ERR_I和RTY_I信号可以不使用,ACK_O信号可以设计为STB_I和CYC_I信号的逻辑与。因此ERR_O和RTY_O信号是可选的,而ACK_O信号是必须的。在点对点连接中,甚至可以将ACK_I信号直接置高。当存在ERR_O和RTY_O信号,主设备当发现ERR_O和RTY_O信号之一有效时如何进行响应取决于主设备的设计。

注意3.25:在标准模式下,从机接口会置位一个周期结束信号来响应STB_I。然而,STB_I信号只有在CYC_I信号有效地时候才有效。

注意3.30:在总线周期期间置位ERR_I信号,会立即结束该周期,意味着从机通知主机在该周期期间发生了错误。当从机逻辑电路检测到错误,便会置位ERR_I信号。例如,如果从机使用了奇偶校检,当发生错误时,从机便会通过ERR_I做出反应。

在总线周期期间置位RTY_I信号,也会立即结束该周期,意味着从机通知主机在该周期期间发生了故障(Aborted)。该信号一般用于共享内存或者总线桥接。当本地资源处于忙状态时,从机电路便会置位RTY_I信号。应当注意,Wishbone规范并未强制要求主机何时对RTY_I信号做出相应。

规则3.40:实际上,对于主设备,其最小配置为ACK_I、CLK_I、CYC_O、RST_I和STB_O。所有的其他信号都是可选的(optional)。

允许3.20:主机和从机接口之间可以被设计成支持ERR_I/ERR_O信号。但是Wishbone规范并未要求主机对ERR_I信号做出什么响应,用于可以根据自己的需求设计。

允许3.25:主机和从机接口之间可以被设计成支持TRY_I/TRY_O信号。但是Wishbone规范并未要求主机对TRY_I信号做出什么响应,用于可以根据自己的需求设计。

规则3.45:当从机支持ERR_O和TRY_O信号时,应保证从机同一时刻只能将三个周期结束信号的其中之一置位。

注意3.35:如果从机支持了ERR_O和RTY_O信号,而主机不支持这些信号,可能会造成系统的死锁。

推荐3.10:通过设计INTERCON模块可以阻止死锁的情况发生。其中一种解决方法就是,设计一个看门狗定时器用来监控STB_O信号。当ERR_I或者RTY_I信号周期技术超出了预定义的限制时,INTERCON模块可以被设计成将Wishbone总线连接断开。

推荐3.15:在图7中,从STB_O到ACK_I存在一个长组合逻辑路径,在实际系统中很可能成为关键路径。因此,在设计中应尽量保证STB_O是触发器的直接输出。如果从STB_O到ACK_I存在一个长组合逻辑路径延迟不能满足设计的时序要求,可将从设备的ACK_O经过触发器寄存后再输出,从而将长组合逻辑打破,但系统的吞吐量也将因此减小。

规则3.50:从机接口必须被设计成ACK_O、ERR_O和RTY_O信号的置位或复位与STB_I信号的置位或复位有关。

允许3.30:ACK_O、ERR_O和RTY_O信号的置位允许被设计成异步逻辑(例如,STB_I与ACK_O之间的组合逻辑路径)。

注意3.40:ACK_O、ERR_O和RTY_O信号的异步置位可以保证每一个时钟周期可以完成一次数据传输。进一步来说,可以简化多主机情况下的仲裁器设计。

注意3.45:在某些场合,ACK_O、ERR_O和RTY_O信号的异步置位可能不能实现。例如,从机等待状态早于用寄存器实现的ACK_O信号。

注意3.50:在部分高速设计场合,ACK_O、ERR_O和RTY_O信号的异步置位可能会导致不可接受的延时时间,一般是由于主机和从机之间的回路延时导致的。使用寄存器实现ACK_O、ERR_O和RTY_O信号可以显著地减少这种回路延时。

允许3.35:在特定情况下,从机接口可能被设计成保持ACK_O信号一直处于置位状态。例如,一个单从机,单主机,点对点的接口,从机操作根本不需要等待时间。

规则3.55:当从机接口保持ACK_I信号为置位状态时,主机接口应当被设计为正常操作模式。

流水线Wishbone协议

在流水线模式下,握手协议主要有以下差异:

·主机在输出下一个地址/数据 字到总线上之前,不能等待ACK_I信号;

·主机接口上的STALL_I信号用于表示从机流水线此时可以接受另一个请求。总线仲裁器应该选择目标从机STALL_O信号,并将其告知主机。这种路径应当被设计成非寄存式的(non-registered)。

·主机当STALL_I信号为低电平时,输出请求。当STALL_I信号被置位时,则处于等待状态。即,当STALL_I信号被置位,流水线不能够产生任何请求。

·如果总线周期由N个转换构成,则最后一个ACK_I表示转换的终止。当接收到最后的ACK_I脉冲后,主机结束总线周期。

·只有当ACK_I信号为高电平时,读取数据操作才是有效的。

图9 流水线模式 单次访问

规则3.57:在流水线模式下,当CYC_I和STB_I信号被置位后,紧接着STALL_I和WE_I信号被复位时,一个读转换操作开始。

规则3.58:在流水线模式下,当CYC_I、STB_I和WE_I信号被置位后,紧接着STALL_I信号被复位时,一个写转换操作开始。

规则3.59:在流水线模式下,完成转换初始化后,主机必须能在任意时间接受ACK_I信号。

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

    关注

    11

    文章

    2791

    浏览量

    76753
  • 总线
    +关注

    关注

    10

    文章

    2881

    浏览量

    88076
  • Wishbone
    +关注

    关注

    0

    文章

    16

    浏览量

    10429

原文标题:【博文连载】Wishbone总线周期之握手协议

文章出处:【微信号:ChinaAET,微信公众号:电子技术应用ChinaAET】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA中的流水线设计

    `流水线设计前言:本文从四部分对流水线设计进行分析,具体如下:第一部分什么是流水线第二部分什么时候用流水线设计第三部分使用流水线的优缺点第四
    发表于 10-26 14:38

    周期精确的流水线仿真模型

    使用软件仿真硬件流水线是很耗时又复杂的工作,仿真过程中由于流水线的冲突而导致运行速度缓慢。本文通过对嵌入式处理器的流水线, 指令集, 设备控制器等内部结构的分析和
    发表于 12-31 11:30 9次下载

    什么是流水线技术

    什么是流水线技术 流水线技术
    发表于 02-04 10:21 3927次阅读

    流水线中的相关培训教程[1]

    流水线中的相关培训教程[1]  学习目标     理解流水线中相关的分类及定义;
    发表于 04-13 15:56 1050次阅读

    基于WISHBONE总线的FLASH闪存接口设计

    本文简要介绍了AMD 公司Am29LV160D 芯片的特点,并对WISHBONE总线作了简单的介绍,详细说明了FLASH memory 与WISHBONE 总线的硬件接口设计及部分Verilog HDL 程序源代码。
    发表于 06-23 16:32 18次下载
    基于<b class='flag-5'>WISHBONE</b>总线的FLASH闪存接口设计

    电镀流水线的PLC控制

    电镀流水线的PLC控制电镀流水线的PLC控制电镀流水线的PLC控制
    发表于 02-17 17:13 36次下载

    装配流水线控制系统设计

    装配流水线控制系统设计
    发表于 12-17 15:26 14次下载

    采用单通道通讯协议设计高速异步流水线控制器STFB电路的设计

    单元GasP电路,在文中提出的准延时无关QDI异步流水线控制单元WCHB(weak condition half buffer)、PCHB(precharged fullbuffer),以及在文中提出的基于单通道通讯协议的QDI异步流水
    的头像 发表于 08-30 08:04 2743次阅读
    采用单通道通讯<b class='flag-5'>协议</b>设计高速异步<b class='flag-5'>流水线</b>控制器STFB电路的设计

    FPGA之为什么要进行流水线的设计

    流水线又称为装配线,一种工业上的生产方式,指每一个生产单位只专注处理某一个片段的工作。以提高工作效率及产量;按照流水线的输送方式大体可以分为:皮带流水装配线、板链线、倍速链、插件线、网带线、悬挂线及滚筒
    的头像 发表于 11-28 07:04 3612次阅读

    各种流水线特点及常见流水线设计方式

    按照流水线的输送方式大体可以分为:皮带流水装配线、板链线、倍速链、插件线、网带线、悬挂线及滚筒流水线这七类流水线
    的头像 发表于 07-05 11:12 7348次阅读
    各种<b class='flag-5'>流水线</b>特点及常见<b class='flag-5'>流水线</b>设计方式

    滚筒输流水线故障排除方法

    在工程建造中,滚筒流水线演着重要的角色。在一些工程建造过程中,经常看到滚筒流水线的身影。在工业不断发展下的今天,滚筒流水线日益增长,走向多元化。滚筒流水线能够长距离的输送,而且支持重量
    发表于 07-08 09:32 1906次阅读

    如何选择合适的LED生产流水线输送方式

    LED生产流水线输送形式分为平面直线传输流水线、各种角度平面转弯传输流水线、斜面上传流水线、斜面下传流水线这四种输送方式,企业也是可以根据L
    发表于 08-06 11:53 1028次阅读

    嵌入式_流水线

    流水线一、定义流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,他们可同时为多条指令的不同部分进行工作。• 把一个重复的过程分解为若干个子过程
    发表于 10-20 20:51 6次下载
    嵌入式_<b class='flag-5'>流水线</b>

    CPU流水线的问题

    1989 年推出的 i486 处理器引入了五级流水线。这时,在 CPU 中不再仅运行一条指令,每一级流水线在同一时刻都运行着不同的指令。这个设计使得 i486 比同频率的 386 处理器性能提升了不止一倍。
    的头像 发表于 09-22 10:04 1997次阅读

    什么是流水线 Jenkins的流水线详解

    jenkins 有 2 种流水线分为声明式流水线与脚本化流水线,脚本化流水线是 jenkins 旧版本使用的流水线脚本,新版本 Jenkin
    发表于 05-17 16:57 1084次阅读