전체 글323 Async FIFO FULL·EMPTY 해제 지연: CDC 동기화와 Backpressure 설계 핵심 요약read로 공간이 생겨도 FULL은 write clock domain에 read 정보가 반영될 때까지 유지될 수 있습니다.반대로 write 후에도 EMPTY는 read domain에 write 정보가 반영되기 전까지 유지될 수 있습니다.해제 latency는 FIFO 구현, 설정과 clock 관계에 따라 다릅니다.읽은 직후에도 FULL이 유지되는 이유read/write 폭이 같은 깊이 8의 independent-clock FIFO가 가득 찬 상태를 가정합니다. 추가 write 없이 read가 한 번 성공하면 실제 저장 데이터는 7개가 됩니다. 그러나 write 회로가 그 사실을 바로 아는 것은 아닙니다. read pointer 정보가 clock domain을 넘어 동기화되고 FULL 계산에 반영될.. 2026. 11. 13. SystemVerilog X Optimism: if-else와 조건 연산자의 시뮬레이션 차이 핵심 요약단일 비트 조건이 X일 때 일반적인 if-else 시뮬레이션은 else 분기를 선택합니다.조건 연산자는 두 후보를 비트별로 비교해 같으면 그 값을, 다르면 X를 반환합니다.출력이 알려진 값이라는 사실만으로 선택 신호가 정상이라고 판단할 수 없습니다.동일한 입력, 다른 시뮬레이션 결과sel=X, a=1, b=0인 단일 비트 조합 회로를 생각해 봅시다. if (sel) y = a; else y = b;는 else를 선택해 y=0이 됩니다. 반면 y = sel ? a : b;는 가능한 두 결과가 서로 다르므로 y=X입니다.a=b=1로 바꾸면 조건 연산자의 결과는 1입니다. 두 선택 경로가 같은 결과를 내기 때문입니다. 이 차이는 X를 다루는 시뮬레이션 의미론의 차이이며, 물리적 회로에 X라는 전압이 .. 2026. 11. 12. FPGA DSP48 곱셈기 Reset: 동기·비동기 Reset과 Pipeline Register 매핑 핵심 요약AMD UG949의 16×16 DSP48 예제에서 비동기 reset pipeline은 추가 fabric register와 LUT를 사용합니다.같은 문서의 동기 reset 예제는 DSP 내부 AREG/BREG, MREG, PREG를 활용합니다.두 reset 방식은 동작 시점이 다르므로 인터페이스 요구를 먼저 확인해야 합니다.비동기 reset이 매핑에 미치는 영향UG949의 예제에서 입력 pipeline이 fabric에 배치되고, 출력 reset을 위한 외부 register와 LUT가 추가됩니다. 해당 예제의 추가 비용은 65개 register와 32개 LUT이며 DSP 설정은 AREG/BREG=0, MREG=0, PREG=1입니다. 이 수치는 특정 예제에 한정됩니다.동기 reset과 DSP 내부 .. 2026. 11. 11. FPGA High-Fanout 신호 복제: 배치 기반 Timing 개선과 CDC 주의사항 핵심 요약High-fanout 제어 신호는 load 수뿐 아니라 load의 물리적 위치와 net delay를 함께 확인합니다.Driver 복제는 동등한 출력을 여러 곳에서 구동합니다. Pipeline register를 추가하는 것과는 다릅니다.CDC synchronizer의 레지스터는 복제하지 않습니다. 필요하다면 체인 뒤에 register를 추가하고 그 한 cycle을 설계에 반영합니다.Driver 복제로 달라지는 경로하나의 enable register가 같은 clock domain의 멀리 떨어진 두 load 그룹을 구동한다고 가정합니다. 배치 기반 최적화로 driver를 복제하면 각 복제본이 가까운 그룹을 구동하도록 배치할 수 있습니다. 물리 경로와 부하가 달라지므로 net delay가 줄 수 있지만.. 2026. 11. 10. SystemVerilog Assertion Vacuity: PASS 결과와 Trigger 도달성 검증 핵심 요약req |-> ack는 req가 참인 같은 샘플링 시점에 ack를 검사합니다.req가 한 번도 참이 아니면 implication은 위반되지 않지만, 의도한 응답 동작은 실행되지 않았습니다.cover property로 req의 도달 가능성을 살피고, assertion으로 요구 조건을 검사합니다. 두 결과는 서로를 대체하지 않습니다.PASS가 생겨도 검사가 실행되지 않는 경우reset이 해제된 상태에서 네 번의 posedge clk마다 req와 ack를 샘플링한다고 가정합니다. req가 0, 0, 0, 0이라면 req |-> ack의 antecedent는 발생하지 않습니다. 이 trace에서 위반은 없지만 요청 이후 동작에 대한 증거도 없습니다.req와 ack가 모두 0, 1, 0, 0이라면 두 번.. 2026. 11. 7. AHB-Lite ERROR 응답: 2-cycle 타이밍과 다음 전송 취소 AHB-Lite ERROR 응답: 2-cycle 타이밍과 다음 전송 취소핵심 요약첫 ERROR cycle: HRESP=1, HREADY=0 — 오류를 알리고 A의 완료를 보류합니다.둘째 ERROR cycle: HRESP=1, HREADY=1 — A가 상승 HCLK 에지에서 오류로 완료됩니다.다음 전송 B: manager는 HTRANS=IDLE로 B를 취소할 수 있습니다. 남은 burst를 계속하는 선택도 허용됩니다.왜 두 cycle이 필요한가?AHB-Lite는 주소 단계와 데이터 단계를 겹쳐 처리합니다. 주소 A의 data phase에서 오류가 발생할 때, 다음 전송 B의 주소가 이미 버스에 나와 있을 수 있습니다.첫 ERROR cycle은 A를 아직 완료하지 않은 채 오류를 알립니다. manager는 .. 2026. 11. 5. [ASIC] False path vs Async path [False path vs Async path] 정의타이밍 분석에서 무시할 수 있는 경로.실제로 데이터 전달이 발생하지 않는 경로.서로 다른 클럭 도메인 간신호 전송에 사용되는비동기 경로.사용 목적타이밍 분석 시 불필요한 경로를 제거하여정확한 분석과 설계를 지원.클럭 도메인 간의 데이터 전송을 위한비동기 처리를 지원.적용 상황1. 제어 신호나 고정 값이 전달되는 경로. 2. 사용되지 않는 논리 경로.1. 클럭 도메인 크로싱 (CDC). 2. 비동기 신호 처리.경로 특성논리적으로 연결되어 있으나실제 타이밍 분석에서 의미가 없는 경로.서로 다른 클럭 도메인에 위치하여타이밍 분석이 불가능한 경로.STA(Static Timing Analysis)타이밍 분석에서 명시적으로 무시하도록 설정.타이밍 분석 대신 비동기.. 2024. 12. 13. [ASIC] Metastability [Metastability]Metastability는 디지털 시스템에서 비동기 신호 또는 클럭 도메인 간 신호가 전송될 때,FlipFlop의 출력이 불안정하거나 예측 불가능한 상태에 빠지는 현상을 의미함.Reason플립플롭의 setup time과 hold time 조건이 충족되지 않을 때 발생.클럭 도메인 간 데이터 전송에서 비동기 신호로 인해 타이밍 불확실성이 생김.Result플립플롭 출력이 안정된 논리 상태(0 또는 1)로 수렴하지 못하고중간 전압 상태를 유지하거나, 불확실한 시간 동안 흔들림.신호가 다음 단계의 논리 회로에 전파되면 오동작 가능. Resolution Time메타스테이블 상태에서 안정된 상태로 전환되기까지 필요한 시간.설계 상에서는 이를 최소화하도록 **MTBF (Mean Time B.. 2024. 12. 13. 이전 1 2 3 4 ··· 41 다음