仅对英特尔可见 — GUID: nik1412467947555
Ixiasoft
3.5.5.1. 写突发(Write Bursts)
这些规则应用于一个写突发开始于大于1的burstcount的情况:
- 当值为<n>的burstcount出现在突发的开始时,agent必须接受<n>个连续单元的 writedata以完成突发。host-agent对之间的仲裁保持锁定,直到突发完成。此锁定保证在写突发完成之前没有其他host能够在agent上执行事务。
- Agent必须在write置位时才能捕获writedata。在突发期间,host通过解除write置位时才能捕获writedata。解除置位write不会终止突发。write解除置位会延迟突发,并且没有其他host可以访问agent,从而降低了传输效率。
- agent通过置位waitrequest,强制writedata,write,burstcount和byteenable保持不变来延迟一个传输。
- byteenable信号的功能对于突发和非突发agent是相同的。对一个64-bit agent的32-bit host突发写操作(burst-writing),从字节地址4开始,agent看到的第一个写传输在它的地址0上,byteenable = 8'b11110000。byteenables可以根据突发的不同字进行改变。
- byteenable信号不必都置位。突发host写局部字能够使用byteenable信号识别当前被写入的数据。
- 将全部为0的byteenable信号的写操作作为有效事务传递到 Avalon® -MM agent。
- constantBurstBehavior属性指定突发信号的行为。
- 当constantBurstBehavior对于一个host为true时,此host在整个突发期间保持address和burstcount稳定。当对一个agent为true时,constantBurstBehavior声明此agent期望address和burstcount在整个突发期间保持稳定。
- 当constantBurstBehavior为false时,host仅对突发的第一个事务保持address和burstcount稳定。当constantBurstBehavior为false时,agent仅在突发的第一个事务上采集address和burstcount。
图 14. 将Host和Agent的constantBurstBehavio设置为False的写突发下图显示了一个长度为4的agent写突发。在此实例中,agent置位waitrequest两次来延迟突发。 l
此时序图中的编号标识了以下转换:
- host置位address,burstcount,write并驱动writedata的第一个单元。
- agent立即置位waitrequest,表明agent尚未准备好继续传输。
- waitrequest为低电平。agent捕获addr1,burstcount和writedata的第一个单元。在随后的传输周期中,address和burstcount被忽略。
- agent在clk的上升沿采集数据的第二个单元。
- write解除置位期间突发暂停。
- agent在clk的上升沿采集数据的第三个单元。
- agent置位waitrequest。作为响应,所有输出在另一个时钟周期内保持不变。
- agent在clk的上升沿采集数据的最后一个单元。agent写突发结束。
上图中,beginbursttransfer信号在突发的第一个时钟周期置位,在下一个时钟周期解除置位。即便agent置位waitrequest,beginbursttransfer信号也仅在第一个时钟周期置位。
相关信息