【博文连载】Wishbone总线周期之复位操作

一个总线周期由多个不可分的时钟周期构成,完成单次读/写操作、块读/写操作或者读改写操作。总线周期也分为单次读/写周期、块读/写周期和读改写周期。一次块读/写总线周期完成多次数据读/写操作。一般情况下,一次操作由主设备和从设备控制信号间的一次握手,以及同时进行的地址和数据总线的一次传输构成。块操作表示整个操作需要完成多次数据传送。在总线周期中主设备和从设备预先设定好的共同遵守控制信号握手规则,以及地址和数据总线的传输规则称作总线协议。

在下文(包括以后的博文中)所给图例中给出的信号均为主设备的输入输出信号。因此,对操作的描述也从主设备信号的角度展开,以便于读者对照正文理解图例。比如"在时钟上升沿1到达之前,从设备检测到主设备发起的操作,将适当的数据放到主设备的输入信号DAT_I()和TGD_I(),将主设备的ACK_I置高作为对主设备STB_O的响应。"的等价描述为:"在时钟上升沿1到达之前,从设备检测到主设备发起的操作,将适当的数据放到其输出信号DAT_O()和TGD_O(),将输出信号ACK_O置高作为对主设备STB_O的响应。"

复位操作

复位是数字系统最基本的操作。复位后,系统进入预定的状态。在遵守Wishbone总线规范的系统中,当RST_I信号有效,系统开始复位。由于Wishbone规范规定的复位是同步复位,因此在复位信号有效后接下来的时钟上升沿,所有信号和寄存器进入预定状态。因此,Wishbone规范要求RST_I信号有效时间至少要一个时钟周期。在数字系统中,实际上更多的采用的是异步复位,而且复位信号的长度一般大于系统电平稳定时间和系统时钟频率稳定时间。如果在Wishbone接口中使用的是异步复位,设计者需要在文档中说明,因为Wishbone接口默认的是同步复位。

图6 Wishbone总线的复位操作

在图6中,我们只给出了STB_O和CYC_O这两个信号,而没有给出其它信号。当这两个信号无效时,所有其他信号没有意义。

规则3.00:所有的Wishbone接口必须在RST_I置位(变为1)后的第一个时钟上升沿进入初始化状态,直到RST_I被复位(变为0)后的第一个时钟上升沿到来。

规则3.05:RST_I必须被置位至少一个完整的时钟周期,才能有效地完成复位。

允许3.00:当然,RST_I也可以被置位多个时钟周期,但是数量必须是有限的。

规则3.10:所有的Wishbone接口必须能够在任意时间响应RST_I信号(优先级足够高)。

规则3.15:所有的Wishbone自启动状态机核计数器必须在RST_I置位(变为1)后的第一个时钟上升沿进入初始化状态,直到RST_I被复位(变为0)后的第一个时钟上升沿到来。

规则3.20:以下主机信号必须在RST_I置位(变为1)后的第一个时钟上升沿复位(变为0),直到RST_I被复位(变为0)后的第一个时钟上升沿到来:STB_O,CYC_O。所有的其他主机此时不能操作这些信号,以响应复位周期。RST_I被复位(变为0)后的第一个时钟上升沿到来后,主机接口的STB_O和CYC_O信号可以被立即置位(变为1)。

注意3.10:在标准模式下(除了流水线之外的模式),当STB_I被复位(变为0)时,从机接口应自动将ACK_O,ERR_O和RTY_O置位。

推荐3.00:设计SYSCON模块时,应保证上电复位时将RST_O信号置位。并且RST_O信号应该保持置位状态,直到电压和时钟频率进入稳定状态。最好使用同步复位的方式,以保证设计的兼容性。

注意3.15:在使用门控时钟的情况下,如果时钟被禁止了。此时,Wishbone总线将不能响应RST_I信号。

建议3.00:如果一些IP核或者SoC模块需要异步复位,应当将复位信号定义为非Wishbone标准信号。这样可以保证Wishbone接口使用纯同步时序,以避免造成疑惑。

注意3.20:所有的Wishbone接口信号都应能响应复位信号,除了IP核接口。

传输周期初始化

主机接口通过置位CYC_O信号进行初始化传输周期,当CYC_O信号被复位,其他所有的主机信号都被视为无效。从机也只在其CYC_I信号被置位的情况下,才会响应其他主机信号。应当注意,SYSCON信号不受影响。

规则3.25:在单独写周期、块读写周期和读改写周期(RMW)持续期间。主机接口必须将CYC_O信号置位。CYC_O信号置位时间必须不晚于STB_O置位后的第一个时钟上升沿,CYC_O信号置位时间必须不早于STB_O复位后的第一个时钟上升沿。

允许3.05:主机接口可以在任意时间置位CYC_O。

推荐3.05:仲裁逻辑经常使用CYC_I信号进行主机选择。保持CYC_O一直长时间处于置位状态可能会导致仲裁错误。因此在多主机情况下,应当避免使用【允许3.05】。

规则3.30:当CYC_I被复位时,从机接口可以不响应任何其他主机信号。但是其必须响应SYSCON信号。

 

(0)

相关推荐

  • SIM卡通信协议

    SIM卡通信过程分为4个步骤 SIM卡连接和激活 SIM卡复位 SIM卡和ME之间的命令和响应过程 SIM卡释放 1 SIM卡的连接和激活 正确连接ME和SIM卡后,ME按照如下的顺序激活SIM卡 置 ...

  • SIM卡工作原理

    SIM卡工作原理

  • 基础——再看51单片机复位电路

    51单片机复位方法: 在第9引脚接个持续2us的高电平就可以实现. 何时复位: 51单片机要复位只需要在第9引脚接个高电平持续2us就可以实现[注]1,系统上电启动的时候复位一次,当按键按下的时候系统 ...

  • 【博文连载】Wishbone总线周期之RMW操作

    在操作系统中,有一种重要的进程间的同步机制称作信号量机制.信号量即当前可用资源的计数.信号量是一个用来实现同步的整型或记录型(Record)变量,除了初始化外,对它只能执行等待和释放这两种原子操作.一 ...

  • 【博文连载】Wishbone总线周期之块写操作

    标准块写操作 图17显示的是一个标准的块写周期时序图.块写周期可以在每一个时钟周期完成一次数据传输.但是,本例中显示了主机和从机插入等待状态以控制数据传输速率的情况.图中一共显示了5个传输.第二次传输 ...

  • 【博文连载】Wishbone总线周期之单次写操作

    标准单次写周期 图12显示的是标准单次写周期的时序图. 图12 标准单次写周期 总线协议的执行流程如下: 时钟上升沿0: ·主机将有效地址置于ADR_O()和TGA_O()上: ·主机将有效数据置于D ...

  • 【博文连载】Wishbone总线周期之单次读操作

    单次读/写操作每次操作只完成一次读或者写,是最基本的Wishbone总线操作方式. 规则3.75:所有支持单次读或者单次写周期的,主机和从机接口都应满足下文给出的相关时序要求. 允许3.50:Wish ...

  • 【博文连载】Wishbone总线周期之数据组织

    说明:B.4版的Wishbone手册本节内容写的比较繁琐,因此没有像前文一样继续翻译.数据组织是指数据的传送顺序.目前常见的32为处理器的数据总线粒度为1字节,在传送时,一个32位数据的最高字节可以放 ...

  • 【博文连载】Wishbone总线周期之握手协议

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

  • 【博文连载】Wishbone总线寄存反馈周期结束方式

    在Wishbone寄存反馈周期结束方式中,主设备需要事先通知从设备操作下一时钟周期是否将发起新的总线操作,这是通过周期类型识别地址标签CTI_O()/CTI_I()和突发类型扩展地址标签BTE_O() ...

  • ​【博文连载】Wishbone总线介绍

    图29 Wishbone总线结构图 ● 所有应用使用一个总线体系结构: ● 简单.紧凑的体系结构: ● 支持多控制器: ● 64位地址空间: ● 8-64 位数据总线(可扩展): ● 单周期读和写: ...

  • 【博文连载】Wishbone总线地址译码

    很多总线标准中,从设备必须译码所有的地址,这称为全地址译码.比如在PCI总线中,每一个从设备都必须具有32位的地址输入,并对这32位的地址进行译码以确定如何响应主设备的请求. 片上总线规范比如Wish ...