Altifigence Academy

13 / 24 · 概念

接收事件与停顿期间的稳定性

分配源端与接收端的职责,并保持停顿期间的有效载荷。

时钟沿上两个信号都有效才发生传送

Valid 表示源端承诺有一份有效载荷可供传送。Ready 表示接收端承诺可在当前时钟沿接收一份载荷。两个信号都为高的上升沿恰好传送一个事务。有效载荷包含所有伴随字段,例如标签、操作码或地址。持续为高的 valid 可能表示一个停顿中的数据项,也可能表示在连续 ready 时钟沿传送的一系列数据项。

valid 为高且 ready 为低时,保持 valid 和完整载荷稳定。本课程只允许通过复位或明确的清空操作取消这项义务。如果源端等待 ready 才置位 valid,而接收端等待 valid 才置位 ready,两者可能永远等待。准备好的数据项应独立于 ready 提供。这些握手和稳定性原则见 Arm AMBA AXI 规格的 A3 节。这个小型数据流并非完整 AXI 接口的实现。

时钟沿validready有效载荷传送
010tag4,y9无
110tag4,y9无
211tag4,y9tag4 一次
311tag5,y12tag5 一次
401无关无

Tag4 在整个停顿期间必须保持不变。时钟沿 2 传送之后,源端可以呈现 tag5。时钟沿 4 只有 ready,不会产生事务。只统计 valid 可能丢失输入;只读取数据可能重复输出。

这些规则假定只有一个时钟域,不能解决跨时钟域或亚稳态问题。分别根据输入与输出的握手统计已接收输入和已交付输出。没有复位时,已接收数减去已交付数必须等于内部尚未完成的事务数。将已接收标签排入队列,仅在交付时移除。把这种计数与停顿载荷检查结合,即使算术值碰巧相同,也能检测丢失、重复和身份变化。

自己试试

表中四个时钟沿的 valid 为高。发生了多少次传送,传送的是哪些标签?如果时钟沿 1 的 y 变成 10,违反了哪条规则?

阅读解释

发生两次传送:标签 4 和 5 分别在时钟沿 2 和 3 传送。时钟沿 1 改变 y,违反了从时钟沿 0 开始停顿的事务所要求的载荷稳定性。

你的选择适用于此浏览器,可随时在页脚更改。