AXI4를 기준으로 한다. in, out은 master 입장에서.
Write Channel
Write Address Channel Signal
- AWID(out) : Write address ID; write address group들의 id이다. user IP라면 웬만하면 id 하나만 쓸 듯하다.
- AWADDR(out) : write address이고...
- AWLEN(out) : Burst length이다. 해당 수치만큼 데이터를 burst해서 가지고 온다.
- AWSIZE(out) :
burst size인데. data요청의 전체 크기를 말한다. data width * arlen = arsize;한번의 data beat가 보내는 사이즈의 byte, log2; 즉 log2(wdata_width/8) - AWBURST(out) : burst on/off
- AWLOCK(out) : master가 자기가 접근하는 동안 다른 master가 들어오지 몰하게 lock을 걸어 놓는 것을 뜻함; 하지만 AXI4에서 지원 안함.
- AWCACHE(out) : AXI4에서 생긴 기능으로써 memory type을 16가지(4bit)로 설정할 수 있고, memory type마다 특성이 있다, user IP라면 웬만하면 device non-bufferable만 쓸 듯하다.
- AWPROT(out) : transaction의 권한 레벨을 뜻함, user IP라면 웬만하면 0 unprivileged access를 쓸 듯하다.
- AWQOS(out) : AXI4에서만 구현되어 있고 QoS관련, 중요하지 않을 듯
- AWREGION(out) : region identifier라는데, 이걸 통해서 여거 가지의 logical interface를 구현할 수 있는 듯 하다.
- AWUSER(out) : user defined sygnal
- AWVALID(out) : valid signal; address가 유효할때 보내는 신호
- AWREADY(int) : ready signal; AXI가 read요청을 받을 준비가 되어 있을 때 보내는 신호
- VALID와 READY가 모두 1일이여야지 read 요청이 받아들여진다.
Write Address Channel Signal
- WDATA(out) : Data
- WSTRB(out, 전체적으로 1) : data가 쓰일 바이트에 대한 on off를 뜻함.
- WLAST(out) : write burst의 마지막에 올라간다.
- WUSER(out, 0) : user defined signal
- WVALID(out) : read valid 데이터가 오기 시작할 때.
- WREADY(in) : read ready 우리가 데이터를 받을 준비가 되었을때
Write Response Channel Signal
- BID(in) : Data
- BRESP(in) :
- BUSER(in) :
- BVALID(in) :
- BREADY(out) :
Read Channel
Read Address Channel Signal
- ARID(out,0) : Read address ID; read address group들의 id이다. user IP라면 웬만하면 id 하나만 쓸 듯하다.
- ARADDR(out) : read address이고...
- ARLEN(out) : Burst length이다. 해당 수치만큼 데이터를 burst해서 가지고 온다.
- ARSIZE(out) :
burst size인데. data요청의 전체 크기를 말한다. data width * arlen = arsize;한번의 data beat가 보내는 사이즈의 byte, log2; 즉 log2(wdata_width/8) - ARBURST(out,1) : burst on/off,
- ARLOCK(out,0) : master가 자기가 접근하는 동안 다른 master가 들어오지 몰하게 lock을 걸어 놓는 것을 뜻함; AXI4에서 지원 안함
- ARCACHE(out,0) : AXI4에서 생긴 기능으로써 memory type을 16가지(4bit)로 설정할 수 있고, memory type마다 특성이 있다, user IP라면 웬만하면 device non-bufferable만 쓸 듯하다.
- ARPROT(out,0) : transaction의 권한 레벨을 뜻함, user IP라면 웬만하면 0 unprivileged access를 쓸 듯하다.
- ARQOS(out,0) : AXI4에서만 구현되어 있고 QoS관련, 중요하지 않을 듯
- ARREGION(out,0) : region identifier라는데, 이걸 통해서 여거 가지의 logical interface를 구현할 수 있는 듯 하다.
- ARUSER(out,0) : user defined sygnal
- ARVALID(out) : valid signal; address가 유효할때 보내는 신호
- ARREADY(int) : ready signal; AXI가 read요청을 받을 준비가 되어 있을 때 보내는 신호
- VALID와 READY가 모두 1일이여야지 read 요청이 받아들여진다.
Read Address Channel Signal
- RID(in, 0) : Read ID
- RDATA(in) : Data
- RRESP(in) : response signal로써, slave한테 access를 성공했는지, 실패했는지 들을 알려준다. 0:normal 성공, 1:exclusize 성공, 2: access 에서, 3: decode 에러
- RLAST(in) : read burst의 마지막에 올라간다.
- RUSER(in, 0) : user defined signal
- RVALID(in) : read valid 데이터가 오기 시작할 때.
- RREADY(out) : read ready 우리가 데이터를 받을 준비가 되었을때.
'[통신]' 카테고리의 다른 글
SFDR (Spurious Free Dynamic Range) 란 무엇인가 (0) | 2021.08.12 |
---|---|
Standard AXI-stream bus (0) | 2021.05.10 |
CTLE, DFE란? (0) | 2021.01.26 |
SPI(Serial Peripheral Interconnect) 버스 란? (0) | 2020.09.14 |
UART(범용 비동기화 송수신기: Universal asynchronous receiver/transmitter) (0) | 2019.08.23 |