AXI 总线的读写顺序

  • Post author:
  • Post category:其他


@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();


  1. master_driver_task

  2. begin
  3. reset_signal();
  4. @posedge(*)
  5. get_and_driver();
  6. driver_write_request();
  7. driver_write_data();
  8. receive_write_response();
  9. driver_read_request();
  10. receivr_read_data():
  11. end
  12. 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=有几个对应宽度的数;



版权声明:本文为lavah原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。