棋子 · 2019年12月18日

AHB可缓冲/不可缓冲写入?

请澄清与AHB写入有关的以下问题:

如果HPROT [2] = 1,AHB写入是可缓冲的,我们需要提供OKAY AHB从接口接收到数据后立即作出响应,而不必关心数据是否实际写入内存。

如果HPROT [2] = 0,则AHB写入不可缓冲,仅当数据实际写入存储器时,AHB从接口才需要向主机提供响应。

问题是,如果我们看到此不可缓冲的事务,则默认情况下HRESP的状态将为OKAY(HREADY为HIGH以接受下一个数据),这意味着我们正在为不可缓冲的写入提前提供响应。

请说明如何区分这两项交易。
如果可能,请提供INCR未定义长度和不可缓冲写入的波形

1 个回答 得票排序 · 时间排序
极术小姐姐 · 2019年12月18日
如果HPROT [2] = 1,则AHB写操作是可缓冲的,我们需要
在AHB从站尽快提供OKAY响应。接口
接收数据而不必关心数据实际上是否已写入
内存。

首先,您不需要提供任何中间模块(而不是目标从站)的响应,这只是您考虑要加快可缓冲写入的传输速度的一种选择。

接下来的事情是您不需要提供OKAY响应。如果您的中间组件决定不允许传输,则可能会给出错误响应。

如果HPROT [2] = 0,则AHB写入不可缓冲,
仅当
数据实际写入存储器时,AHB从属接口才需要向主控提供响应。

问题是,如果我们看到这个不可缓冲交易中,
HRESP的>状态将被默认OKAY(HREADY为高,以
接受下一个数据),这意味着我们正在提供
非>提前响应可缓冲写入。

是的,这是提供早期响应的风险,如果目标从站决定采用其他响应,则您将无法进行任何更改。

请阐明如何区分这两项交易。

好了,您已经知道如何区分它们,这就是HPROT [2]信号的作用。

如果可能,请提供INCR未定义长度的波形&
不可缓冲的写入

这里没有什么特别的地方,我认为需要额外的波形。如果突发序列是不可缓冲的,而您正在通过一些临时缓冲模块,则在每次访问完成到目标设备并将真实响应返回给始发主机时,您只会看到其他等待状态。

你的回答