@axi. 简介
AXI introduce
AXI 分为五个独立的通道,包括写地址通道,写数据通道,Bresp(写回复通道),读地址通道,读数据通道。
1.write address channel;
2.write data channel;
3.bresponse channel;
4.read address channe;
5.read data channel;
执行task顺序
1.主要几个task:
axi main_task();//main task
// follow was sub task
get and driver ();
reset_signal();
driver_transfer();
driver_read_request();
receive_read_data();
drvier_write_request();
driver_write_data();
receive_write_response();
reset_write_resquest();
reset_write_data();
reset_write_response();
reset_read_request();
reset_read_data();
resetable_delay():
display_respq_staus();
-
master_driver_task
’ - begin
- reset_signal();
- @posedge(*)
- get_and_driver();
- driver_write_request();
- driver_write_data();
- receive_write_response();
- driver_read_request();
- receivr_read_data():
- end
-
endtask
2.以下为各个sub task 的sub task,只写大概的task names,详细的需要按照timing要求进行修改。
2.1 get_and_driver();
#include follow sub coding
driver_transfer(req)
2.2 reset_signal();
#include follow sub coding
reset_write_request*(;
reset_write_data();
reset_write_response();
reset_read_request();
reset_read_data();
wreq_que.delte();//delete queue
rreq_queu.delet();// some as up
wdata_queu.delete();//also like up
2.3 driver_transfer;
#include follow sub coding
if(##trans.readx_write_a#)
ousting_rreq();//.
else
outsting_wreqs();
end
2.4 end
3.
note
channel在没有data发送的时候,都是x, not connect 的时候是Z,一般不建议置为z;
##几个基本的计算公式还是有必要知道的;
(burst_length x 2^burst_size ) / 8 = adds_stept;
Strb = 几个data/8;
Data_width = 8×2^burst_size;
Burst_length=有几个对应宽度的数;