공부방/Verilog_노진호교수님_서울기술교육센터_필기

240621_ MicroBlaze_axi4_lite 분석

맘스터치보단파파이스 2024. 6. 21. 14:57

register 4개를 만들어서 slave_reg 4개가 존재.

 

내가 만든 IP를 사용하기 위해 구성하는 방법.

나만의 IP를 AXI4-Lite의 Slave를 통해서 TOP module 로 묶어서 사용.

Axi Temp의 Top

모듈 안에 모듈이 있는 형식.

TOP안에 Axi4_lite_temp가 있다.

AW, W, B, AR, R 순서로 wire, 존재

--> 내부 모듈을 분석해보자.

 

구현 방식을 아주 조각조각 냈다.

AXREADY 신호를 생성하는 구간.

awready 0 , wr_en = 1 --> 실행. clk 딱 걸리면서

awready = 1이 된다. 

그리고 Addr값이 이때 저장된다.

CLK만 pos -> 변경

wready -> 같이 켜진다.

 

하지만 AWREADY는 다음 클락에 알아서 0이 된다. 

wstrb for처리도 여기서 함.

이때 latching 되면서 slv_reg 값이 들어오며 if문 실행.

 

왜 이렇게 쓴걸까 ? --> address : ,slv_reg의 주소.  0~15의 값으로 들어올 수 있다. 4bit로 선언해서. 

밑의 2bit를 자르면 

32bit 짜리 register를 --> 4byte 간격으로 register 번호를 매김.

4의 배수를 1의 단위로 표현하려고.

결국 axi_awaddr를 ADDR_LSB, OPT_MEM~~~이렇게 쓴 이유는 32bit, 64bit 범용으로 사용하기 위해서.

byte_index  변수. 

32bit / 8 -1 = 3 이 들어간다.

 for문으로 되어있어서 반복.

b_channel -> 

이때 실행하겠다.

arready -> latching이 목표.

axi interface 기준에서는 output만 보게 된다.

axi
axi

 

 

top
top

 

top

 

vitil
vitil