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만 보게 된다.
'공부방 > Verilog_노진호교수님_서울기술교육센터_필기' 카테고리의 다른 글
240624_microblaze_interrupt (0) | 2024.06.24 |
---|---|
240620_ microblaze myIP (0) | 2024.06.20 |
240619_ Microblaze _ intro (0) | 2024.06.19 |
240619_ UVM _ axi_ slave _ mem (0) | 2024.06.19 |
240618_ UVM_tutorial --> Adder (0) | 2024.06.18 |