AXI VIP Master

 here is block diagram for AXI MASTER VIP.

1. semaphore put-then-get can notify all previously queued task are finished.  wait until wait transaction are executed. Just like sync or block instruction.

2. each loop (write/read address/data or wirte response) is endless loop. they are parallel arranged with fork... join_none to behavior as Master BFM.

3. writedata put transactions both on AW and WD mailbox, it also create mailbox to store write response. Once done, increase wrRespPtr.

    每個beat都put到 AW 以及WD中。 AW中的transaction更新了地址, WD中的transaction更新了寫數據以及對應的strobe。但是在buffer中的data沒有全部傳完之前,WrRespPtr指針不變。(剛開始default爲0)。 在buffer中的data全部傳完後纔將WrRespPtr增加1.

4. readdata put transaction on AR mailbox, it also create mailbox to store read data. Once a transaction was put into AR mailbox, it increase RdDataPtr befor quit task.

5. write data loop once get WRITE  data transaction, drive data onto the interface, then put WRITE data transaction into B mailbox to active write resp loop.

6. read address loop get READ data transaction, drive address onto the interface , then put READ transaction into RD mailbox to active read data loop.

 

注意以上沒有加入reorder,interleave,issuing capability(outstanding depth)的支持。不過加入這些特性也很方便,譬如:

1) outstanding depth。 只需要加入變量用以配置mailbox的深度就可以了。

2) interleave, reorder。 只需要在 write Resp loop 和 read data loop 中實現根據ID把返回值放入到transaction的buffer中,一旦一個完整的transaction數據收集完畢,則put到RdDataArrayBox對應的項目中。這也許需要一個開闢對應ID數的loop以及mailbox,將RD mailbox 中的transaction根據ID分到各個後級mailbox(labeled with ID)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章