单次读/写操作每次操作只完成一次读或者写,是最基本的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 标准流水线单次读周期
|
|