AMBA的CHI协议相比于AXI协议在一致性方面有很多扩展, 其使用场景、交互方式、信息传递、拓扑结构等都有很多不同. 本着有更多交流的目的, 分享在学习中的见解和内容。
Rx和Tx
以SN作为主视角如下图.

先对主视角进行规定是因为这里所有的信号前缀Tx/Rx都是相对的. 例如REQ Channel中FLITV是RN发送的, 是SN接收的. 所以REQ Channel的FLITV和LCRDV对于SN来说, 是Rx; 对于RN来说, 是Tx.
即
- TXSACTIVE是output用来指示当前接口正在或者将要发出transaction;
RXSACTIVE是input用来指示对端接口正在或者将要发出transaction.
SN的TXSACTIVE就是RN的RXSACTIVE. - RxLINKACTIVEREQ是input用来指示对端接口要建立链接, assert RxLINKACTIVEACK后可以接收FLITV.
TxLINKACTIVEREQ是output用来指示当前接口要建立链接, 收到TxLINKACTIVEACK assert后可以发送FLITV. - REQ和WDAT Channel中SN是接收方, 是Rx;
RSP和RDAT Channel中SN是发送方, 是Tx.
以SN作为主视角如下图. 该图来自于协议, 作为与上述的对比.

时序图示例

- RN在assert RxSACTIVE时必须及时active Link Layer, 例如同cycle assert RxLINKACTIVEREQ(a->b). 但是没有严格的时序要求在这二者, 例如SN可在Link Layer activated之后再assert TxSACTIVE(c->d).
- 在LINKACTIVEREQ之后任意cycle可以assert LINKACTIVEACK(b->e).
- 至少在assert LINKACTIVEACK的同cycle发送LCRDV(e->f). 也可以在assert LINKACTIVEACK之后发送LCRDV(g->h).
- 在接收到LCRDV之后才能够发送FLITV(f->l). 至少在发送FLITV当拍active Protocol Layer(m->d).
小结
本文针对Protocol Activity, Link Activation和L-Credit以timing diagram的方式做一个简单的示例; 理解谁作为active的req和ack者, 谁作为Flitv, Credit的发出者和接收者有助于我们理解它们之间的关系.
协议在Link Handshake章节有更为详细的描述, 作为实现者只需要不违背其约束而不必全部支持.

被折叠的 条评论
为什么被折叠?



