【vivado】AXI4接口verilog代碼分析


 用vivado創建new AXI4 IP,配置:AXI4-Full,Master。分析內部關於AXI4接口自動產生的代碼。

 

 

1、在 M_AXI_ACLK 同步時鍾下,抓取 INIT_AXI_TXN 由低變高,讓 init_txn_pulse 產生個pulse信號;

2、輸入信號 INIT_AXI_TXN 是這個ip的一個輸入信號,是由用戶在PL或PS側控制,下有說明;

3、產生信號 init_txn_pulse 負責在運行中初始化接口的關鍵控制信號,如同 M_AXI_ARESETN 下的初始化;

 

 

Write Address Channel

 1、大部分接口都是固定值設置;awburst=01,地址設置成INCR遞增模式;

2、首先協議要求,復位時master側的arvalid、awvalid、wvalid必須low;

3、從代碼判斷,初始時ready=0(axi4協議推薦1),start一次burst是16*4B,一次burst結束后slave側ready=1,master側valid=0,addr+size;

4、從這里可以看出 init_txn_pulse 可以讓地址回到起始,准備下次覆蓋;

 5 、可以看出axi總線的地址是按照byte為單位,而不是width;

burst_size_bytes = C_M_AXI_BURST_LEN * C_M_AXI_DATA_WIDTH/8 = 16* 32/8 = 64 Byte;

 

 Write Data Channel

 1、wlast=1的條件,C_M_AXI_BURST_LEN是對burst的區別,這里是16,只考慮(write_index == 16 - 2) && wnext

 

 

 

 

 1、clogb函數功能是把 len / width,轉換成AxSIZE的匹配mode。規范的代碼都是按照一定的規則來定義對應關系的。

 

 

 

附錄:

amba_axi_protocol_spec.pdf


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM