38장2부 4k boundary
340
작성한 질문수 7
안녕하세요 다름이 아니라 이런식으로 4096이 넘어갈때만 4kboundary규칙을 적용하게 코드를 작성했는데 왜 강의에서 case5에서 transfer byte가 10240일때를 보면 4k바운더리 규칙이 적용되는 구간이 여러번 등장하게 되는데 그러면 8192인 값에서도 4k boundary 규칙이 적용된다는 것인데 왜 적용되는 지 모르겠습니다..!
wire [12:0] addr_4k = 13'h1000;
assign is_4k_boundary_burst = (last_addr_in_burst > addr_4k[12:AXI_DATA_SHIFT]);
답변 1
0
안녕하세요 🙂
4K boundary rule은 "read request address + burst_size 가 4096 byte align 을 넘어서면 안된다." 입니다.
일부러 4K boundary 로직이 잘 동작하는지 확인하기 위한 case 5의 경우,
max burst 는 7개 입니다. (원래드렸던 것은 16 개 였죠.) 즉, 4096 bytes 에 align 되지 않는 burst size 를 발행하기 위해서 바꾼거였어요.
만약에
max burst 가 16 이라면 한번의 transaction 에 8 byte 가 가고요. 8*16 = 128 bytes 씩 read request 가 발행됩니다. 즉 4096 % 128 == 0 으로 시작 address 가 4Kbytes align 이었다면, 4K boundary 내에서 burst 가 넘어가지 않아요. 마찬가지로 10240 % 128 ==0, 8192 % 128 == 0 으로 4K boundary 가 넘어가는 경우가 재현되지 않습니다.
max burst 가 7 이라면 (case 5), 한번의 read request 는 8*7 = 56 bytes 씩 발행됩니다.
따라서 4096 % 56 == 8 입니다. 즉 8 bytes 가 4K boundary 를 벗어나게 되버립니다.
따라서 8*6 을 통해서 4K boundary 에 align 시켜야 해요. 이것을 재현해보고자 했던게 case 5 였습니다.
결국 한번의 transaction 에 해당하는 size 는, 4K boundary 를 넘어가면 안됩니다. 넘어가면 transaction 횟수를 분할해서 보내야 해요.
34장의 맛비 패턴 generator 관련 질문입니다!
1
52
2
34장과 35장에서 설계한 IP는 DDI의 구조를 설계한 것인가요?
1
53
1
[HDL 32장-2부] 참고 링크 관련
1
65
2
[HDL 22장] F/F CE 관련 질문
1
77
2
13강에 언급된 강의 내용 질문
1
80
2
22장 vaild/ready
1
111
1
output, reg 선언
1
100
3
gvim
1
77
1
fifo의 stall과 퍼포먼스 드랍
1
77
2
Design Valid I/F
1
81
2
valid/ready 스트림 구조 관련 질문이 있습니다!
1
107
2
IDLE state의 시점관련
1
79
2
skid buffer의 handshake 방향이 반대로 되어 있는 이유
1
131
3
[wdma] AWLEN_w의 값이 1일 경우 r_burst_cnt_w와 AWLEN_w의 async 인한 bready 발행X 이슈?
1
83
2
system verilog 사용이유.
1
143
2
AXI_VIP 사용 시 glitch 발생
1
108
1
왜 배속이 안되요?
1
130
2
다이어그램 이해
1
83
2
27.[프로젝트-1] Mem copy IP를 FPGA에 올려보기
1
86
2
27.[프로젝트-1] Mem copy IP를 FPGA에 올려보기
1
101
3
[HDL 38장: RDMA 코드 실습편] MOR fifo에서 "ARLEN_r" 존재의 이유가 궁금합니다
1
122
2
[HDL 35장 AXI-Stream I/F 실습편] sync_fifo 사용 이유
1
145
1
예외처리 관련 질문
1
84
2
AXI의 ID의 역할은?
1
209
2





