DAILY ASIC / ARCHIVE

설계의 디테일을
하루 한 편씩.

RTL에서 타이밍, CDC와 프로토콜까지. 현장에서 마주치는 질문을 짧은 세미나처럼 풀어낸 기술 아카이브입니다.

전체 글 둘러보기 ↘21 published notes
LATEST NOTE
AXI4 unaligned INCR burst: per-beat WSTRB byte-lane mask 인포그래픽
Protocol / #21𝗔𝗫𝗜𝟰 │ WSTRB=0xFF가 첫 beat를 망칠 때↗

THE COLLECTION

모든 게시물

검토 후 LinkedIn에 게시된 글과 그림을 한곳에 모았습니다.

01 — 21
21개의 글
AXI4 unaligned INCR burst: per-beat WSTRB byte-lane mask 인포그래픽
Protocol

𝗔𝗫𝗜𝟰 │ WSTRB=0xFF가 첫 beat를 망칠 때

DMA가 64-bit AXI 버스로 데이터를 쓰는데, 주소가 정렬됐을 때는 멀쩡하고 0x1003에서 시작할 때만 주변 byte가 바뀝니다. 메모리부터 의심하기 전에 AWADDR, AWSIZE, WSTRB를 같은 beat에서 나란히 보겠습니다.

글 읽기
CDC-6 multi-bit synchronizer warning: 2FF per bit does not guarantee bus coherence 인포그래픽
CDC

𝗖𝗗𝗖 │ 2비트에 각각 2FF를 달면 안전할까?

report_cdc에서 2비트 bus에 CDC-6 warning이 뜹니다. 각 bit에는 2FF synchronizer도 있고 ASYNC_REG도 붙어 있습니다. “필요한 건 다 했는데 왜 경고지?” 이 경고는 metastability 대책의 유무보다, 두 bit를 목적지에서 한 묶음의 값으로 읽어도 되는지를 묻습니다.

글 읽기
Negative `set_output_delay -min` encodes external receiver hold requirement 인포그래픽
Timing

𝗦𝗧𝗔 │ set_output_delay -min은 왜 음수일까?

FPGA에서 외부 칩으로 내보내는 데이터의 hold violation을 잡다가 XDC에서 set_output_delay -min -0.7을 보면 멈칫하게 됩니다. “출력 지연이 음수라니, 데이터가 시간을 거슬러 가나?” 실제로 표현하는 것은 외부 칩의 hold 요구를 FPGA 출력 포트까지 거꾸로 환산한 값입니다.

글 읽기