分享

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

 ChinaAET 2020-10-31

单次读/写操作每次操作只完成一次读或者写,是最基本的Wishbone总线操作方式。

规则3.75:所有支持单次读或者单次写周期的,主机和从机接口都应满足下文给出的相关时序要求。

允许3.50:Wishbone主设备或者从设备也可以不支持单次读/写操作,甚至没有地址和数据总线。

标准单次读周期


图10 标准单次读周期

图10显示的是标准单次读周期的时序图。

总线协议的执行流程如下:

时钟上升沿0:

·主机将有效地址输出到ADR_O()和TGA_O();

·主机将WE_O复位,表示进入读周期;

·主机输出SEL_O()(bank select)表明其操作的数据地址;

·主机将CYC_O和TCG_O置位,以表明读周期开始;

·主机将STB_O信号置位,以表明操作开始(start of phase)。

时钟上升沿1:

·从机解码输入(检测STB_O,以验证数据是否有效),并将ACK_I置位,以做出响应;

·从机将有效数据放入DAT_O()和TGD_I();(如之前博文所述,默认信号名为主机信号名!);

·主机监控ACK_I信号,并准备将DAT_O()和TGD_I()信号上的数据进行锁存;

注意:从机可能会在置位ACK_I信号之前插入多个(数量任意)等待状态(-WSS-),因此允许其限制周期速度。

时钟上升沿2:

·主机锁存DAT_O()和TCG_O()上的数据;

·主机将STB_O和CYC_O复位,以表明周期的结束;

·从机将ACK_I信号复位,以响应STB_O信号的复位。

流水线单次读周期


图11显示的是流水线单次读周期的时序图。

总线协议的执行流程如下:

时钟上升沿0:

·主机将有效地址输出到ADR_O()和TGA_O();

·主机将WE_O复位,表示进入读周期;

·主机输出SEL_O()(bank select)表明其操作的数据地址;

·主机将CYC_O和TCG_O置位,以表明读周期开始;

·主机将STB_O信号置位,以表明操作开始(start of phase)。

时钟上升沿1:

·从机解码输入(检测STB_O,以验证数据是否有效),并将ACK_I置位,以做出相应;

·从机将有效数据放入DAT_O()和TGD_I();

·主机将STB_O信号复位,以表明数据传输的结束(end of data phase);

·主机监控ACK_I信号,并准备将DAT_O()和TGD_I()信号上的数据进行锁存;

时钟上升沿2:

·主机锁存DAT_O()和TCG_O()上的数据;

·主机将CYC_O复位,以表明周期的结束;

·从机将ACK_I信号复位。

图11 标准流水线单次读周期

 

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多