38장2부 4k boundary
331
작성한 질문수 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 횟수를 분할해서 보내야 해요.
[HDL 32장-2부] 참고 링크 관련
1
38
2
[HDL 22장] F/F CE 관련 질문
1
47
2
13강에 언급된 강의 내용 질문
1
62
2
22장 vaild/ready
1
99
1
output, reg 선언
1
82
3
gvim
1
65
1
fifo의 stall과 퍼포먼스 드랍
1
60
2
Design Valid I/F
1
75
2
valid/ready 스트림 구조 관련 질문이 있습니다!
1
93
2
IDLE state의 시점관련
1
65
2
skid buffer의 handshake 방향이 반대로 되어 있는 이유
1
110
3
[wdma] AWLEN_w의 값이 1일 경우 r_burst_cnt_w와 AWLEN_w의 async 인한 bready 발행X 이슈?
1
72
2
system verilog 사용이유.
1
133
2
AXI_VIP 사용 시 glitch 발생
1
96
1
왜 배속이 안되요?
1
115
2
다이어그램 이해
1
74
2
27.[프로젝트-1] Mem copy IP를 FPGA에 올려보기
1
76
2
27.[프로젝트-1] Mem copy IP를 FPGA에 올려보기
1
91
3
[HDL 38장: RDMA 코드 실습편] MOR fifo에서 "ARLEN_r" 존재의 이유가 궁금합니다
1
115
2
[HDL 35장 AXI-Stream I/F 실습편] sync_fifo 사용 이유
1
130
1
예외처리 관련 질문
1
79
2
AXI의 ID의 역할은?
1
191
2
28장 강의 AXI 이론편관련질문
0
113
1
37장 Data bit width 질문
1
60
2





