[통신]

AXI bus signal 각각에 대한 설명

Neo Park 2021. 4. 29. 11:05

AXI4를 기준으로 한다. in, out은 master 입장에서.

 

Write Channel

Write Address Channel Signal

  1. AWID(out) : Write address ID; write address group들의 id이다. user IP라면 웬만하면 id 하나만 쓸 듯하다.
  2. AWADDR(out) : write address이고...
  3. AWLEN(out) : Burst length이다. 해당 수치만큼 데이터를 burst해서 가지고 온다.
  4. AWSIZE(out) : burst size인데. data요청의 전체 크기를 말한다. data width * arlen = arsize; 한번의 data beat가 보내는 사이즈의 byte, log2; 즉 log2(wdata_width/8)
  5. AWBURST(out) : burst on/off
  6. AWLOCK(out) : master가 자기가 접근하는 동안 다른 master가 들어오지 몰하게 lock을 걸어 놓는 것을 뜻함; 하지만 AXI4에서 지원 안함.
  7. AWCACHE(out) : AXI4에서 생긴 기능으로써 memory type을 16가지(4bit)로 설정할 수 있고, memory type마다 특성이 있다, user IP라면 웬만하면 device non-bufferable만 쓸 듯하다.
  8. AWPROT(out) : transaction의 권한 레벨을 뜻함, user IP라면 웬만하면 0 unprivileged access를 쓸 듯하다.
  9. AWQOS(out) : AXI4에서만 구현되어 있고 QoS관련, 중요하지 않을 듯
  10. AWREGION(out) : region identifier라는데, 이걸 통해서 여거 가지의 logical interface를 구현할 수 있는 듯 하다.
  11. AWUSER(out) : user defined sygnal
  12. AWVALID(out) : valid signal; address가 유효할때 보내는 신호
  13. AWREADY(int) : ready signal; AXI가 read요청을 받을 준비가 되어 있을 때 보내는 신호
    1. VALID와 READY가 모두 1일이여야지 read 요청이 받아들여진다.

Write Address Channel Signal

  1. WDATA(out) : Data
  2. WSTRB(out, 전체적으로 1) : data가 쓰일 바이트에 대한 on off를 뜻함.
  3. WLAST(out) : write burst의 마지막에 올라간다.
  4. WUSER(out, 0) : user defined signal
  5. WVALID(out) : read valid 데이터가 오기 시작할 때.
  6. WREADY(in) : read ready 우리가 데이터를 받을 준비가 되었을때

Write Response Channel Signal

  1. BID(in) : Data
  2. BRESP(in)
  3. BUSER(in)
  4. BVALID(in)
  5. BREADY(out)

Read Channel

Read Address Channel Signal

  1. ARID(out,0) : Read address ID; read address group들의 id이다. user IP라면 웬만하면 id 하나만 쓸 듯하다.
  2. ARADDR(out) : read address이고...
  3. ARLEN(out) : Burst length이다. 해당 수치만큼 데이터를 burst해서 가지고 온다.
  4. ARSIZE(out) : burst size인데. data요청의 전체 크기를 말한다. data width * arlen = arsize ;한번의 data beat가 보내는 사이즈의 byte, log2; 즉 log2(wdata_width/8)
  5. ARBURST(out,1) : burst on/off,
  6. ARLOCK(out,0) : master가 자기가 접근하는 동안 다른 master가 들어오지 몰하게 lock을 걸어 놓는 것을 뜻함; AXI4에서 지원 안함
  7. ARCACHE(out,0) : AXI4에서 생긴 기능으로써 memory type을 16가지(4bit)로 설정할 수 있고, memory type마다 특성이 있다, user IP라면 웬만하면 device non-bufferable만 쓸 듯하다.
  8. ARPROT(out,0) : transaction의 권한 레벨을 뜻함, user IP라면 웬만하면 0 unprivileged access를 쓸 듯하다.
  9. ARQOS(out,0) : AXI4에서만 구현되어 있고 QoS관련, 중요하지 않을 듯
  10. ARREGION(out,0) : region identifier라는데, 이걸 통해서 여거 가지의 logical interface를 구현할 수 있는 듯 하다.
  11. ARUSER(out,0) : user defined sygnal
  12. ARVALID(out) : valid signal; address가 유효할때 보내는 신호
  13. ARREADY(int) : ready signal; AXI가 read요청을 받을 준비가 되어 있을 때 보내는 신호
    1. VALID와 READY가 모두 1일이여야지 read 요청이 받아들여진다.

Read Address Channel Signal

  1. RID(in, 0) : Read ID
  2. RDATA(in) : Data
  3. RRESP(in) : response signal로써, slave한테 access를 성공했는지, 실패했는지 들을 알려준다. 0:normal 성공, 1:exclusize 성공, 2: access 에서, 3: decode 에러
  4. RLAST(in) : read burst의 마지막에 올라간다.
  5. RUSER(in, 0) : user defined signal
  6. RVALID(in) : read valid 데이터가 오기 시작할 때.
  7. RREADY(out) : read ready 우리가 데이터를 받을 준비가 되었을때.

참조 : myboards.tistory.com/6