Avalon-MM接口中waitrequest信号的实现
0赞1. 从设备waitrequest的实现
在从设备中,waitrequest信号是可选的,只有在可变延时的传输中才需要实现。该信号必须在chipselect信号有效的同一个时钟周期内由从设备给出。系统互连在下一个时钟沿必须采样到该信号的有效电平并保持传输控制信号有效,直到该信号撤除。从设备在数据准备好之后撤除该信号,系统互连在该信号失效后的下一个时钟上升沿采样读出数据或结束写入传输。
由于该信号的响应要求很快,看起来只能采用异步逻辑实现该信号。其实不然,由于Avalon-MM接口规范没有规定waitrequest信号在传输之前的状态,所以该信号可以在传输之前保持有效电平,需要设计的是该信号在数据有效之后的撤除逻辑。
waitrequest信号有效时,系统互连进入等待状态;换一个角度看,waitrequest信号失效时标志着传输数据的有效读出或有效写入。也就是说,waitrequest信号和传输有效信号(接口规范中没有规定,在自定义接口的握手逻辑中经常用到)是互补的。这样一来,就可以把传输有效信号(在读出操作中是数据有效,在写入操作中是写入有效)取反作为waitrequest信号。
这样看来,waitrequest信号的边沿等价于传输有效信号的边沿,只是有效电平相反。
2. 主设备waitrequest的实现
在主设备中,waitrequest信号是必需的,一方面是与带延时的从设备连接的需要,另一方面是支持系统互连逻辑仲裁主设备访问的需要。 riple
当该信号有效时,主设备需要维持所有的传输控制信号内容不变,直到该信号撤除。
该信号由系统互连逻辑在主设备发起传输的同一个时钟周期内给出。主设备可以在发起传输之后的第一个时钟沿采样该信号并决定是否进入等待状态。
由于对该信号的响应可以在发起传输后的下一个时钟驱动,所以可以采用状态机实现上述逻辑:在m_start信号有效后,状态机跳转至M_ACTIVE;在该状态,主设备驱动传输控制信号有效;如果在下一个时钟沿到来时waitrequest信号为无效,则该次传输成功结束;反之,状态机在M_ACTIVE 等待,并保持所有的传输控制信号不变,直到waitrequest信号无效,该次传输成功结束,状态机回到M_IDLE。