AHB中的传输等待(Waited Transfer in AHB)

文摘   2024-06-01 00:46   上海  

世界上只有一种真正的英雄主义,

那就是在认清生活的真相后,
依然热爱生活。
--罗曼罗兰

1.本文内容标题截图

2. 什么是Waited transfers (传输等待)

slave如果需要更多的时间来提供或者采样数据,那么他们会用HREADY来插入等待状态。在传输等待期间,master仅限于对传输类型和地址进行更改。

3.传输等待时更改传输类型

(Transfer type changes during wait states)

当slave请求等待状态时,master不能更改传输类型,除非以下几种情况:IDLE传输、定长BURST中的BUSY传输、不定长BURST中的BUSY传输。

3.1 IDLE传输

在传输等待期间,允许Master将传输状态从IDLE变更到NONSEQ。当传输类型(HTRANS)变更到NONSEQ后,master必须保持传输类型不变,直到HREADY拉高。下图展示了一个SINGLE突发的传输等待,并且伴随着传输类型从IDLE到NONSEQ的改变。

3.2 定长BURST中的BUSY传输

BUSY transfer, fixed length burst

在定长突发的传输等待(waited transfer)过程中,允许master在HREADY为低时将传输类型从BUSY更改为SEQ。当传输类型更改(HTRANS从BUSY改变为SEQ)之后,Master必须保持HTRANS不变,直到HREADY拉高。

【注意】因为BUSY传输只能在连续的突发节拍中插入,因此这不适用于SINGLE突发。因此,这种情况适用于以下突发类型:

INCR4, INCR8和INCR16;

WRAP4, WRAP8和WRAP16。

3.3 不定长BURST中的BUSY传输

(BUSY transfer, undefined length burst)

在不定长突发(INCR)的传输等待过程中,允许master在HREADY为低时将BUSY传输更改为其它类型的传输。如果更改为SEQ,那么当前突发将继续,而如果更改为了IDLE或者NONSEQ,那么当前突发结束、进入下一笔突发。

4.传输等待时更改地址

Address changes during wait states

在slave的等待状态下,master只能改变一次地址,除了以下两种情况:4.1 IDLE传输期间;4.2在一次ERROR响应之后。

4.1 IDLE传输期间(during an IDLE transfer)

在传输等待期间,允许master为IDLE transfers改变IDLE传输的地址,当传输类型变为NONSEQ后,master就必须要保证地址不变直到HREADY拉高。

4.2 在一次ERROR响应之后

在传输等待期间,如果slave响应了一个ERROR,那么master就可以在HREADY为低的时候改变地址。如下图所示:

关于ERROR resp请参考本公众号的另外一篇文章:

认真的谈一谈AHB中的ERROR response

5. 如何利用AHB_VIP构造这些场景,只在知识星球内发

6. 欢迎加入知识星球

7. 欢迎关注微信公众号《芯片验证日记》

一切改变源于看见;
看,是一种本能;
看见,是一种学问。
欢迎加入知识星球。星球内每周都有高质量内容更新!每天都会解答大家提出的技术问题。欢迎加入知识星球,助您快速成长。

最后,由于TX修改规则,为了不错过后续内容,欢迎加入QQ群,

另外,由于微信群已经超过200人,添加小编的微信,拉你进入WX学习群。

感谢关注微信公众号《芯片验证日记》,
一起好好学习,天天向上!

芯片验证日记
分享芯片验证相关的知识。
 最新文章