"Clock clock1 is missing an asynchronous definition" 오류는 clock1
과 다른 클럭 도메인 간에 비동기(asynchronous) 관계가 명확히 정의되지 않아서 발생하는 문제입니다. 클럭 도메인 간의 비동기 관계는 각 클럭이 독립적으로 동작함을 의미하며, GCA(Galaxy Clock Analyzer)와 같은 툴에서는 이러한 비동기 관계를 명확히 정의해야 신호 전달에서 메타스태빌리티 및 신호 무결성을 유지할 수 있습니다.
원인
clock1
과 다른 클럭이 비동기적으로 동작하지만, 비동기 관계가 정의되지 않아 툴에서 경고를 발생시키는 경우입니다.- 클럭 정의 또는 경로 설정에서 비동기 크로싱이 명시되지 않았기 때문에 클럭 도메인 간의 신호 전달이 불안정하다고 판단될 수 있습니다.
해결 방법
- 비동기 경로 설정:
clock1
과 비동기 관계에 있는 클럭 간에 비동기 경로를 명시적으로 정의합니다.- 예를 들어, Synopsys GCA나 타이밍 분석 툴에서
set_clock_groups
명령어를 사용하여-asynchronous
옵션을 설정하면 비동기 관계를 정의할 수 있습니다. - 예시:
set_clock_groups -asynchronous -group {clock1} -group {clock2}
- 비동기 Synchronizer 사용:
- 클럭 도메인 크로싱을 위해
Synchronizer
또는async FIFO
를 삽입하여 비동기 클럭 도메인 간 신호가 안전하게 전달되도록 합니다. - Synchronizer 회로를 삽입하면 메타스태빌리티를 방지하고 비동기 신호가 올바르게 처리됩니다.
- 클럭 도메인 크로싱을 위해
- 타이밍 예외 설정:
- 타이밍 예외를 통해
clock1
과 다른 클럭 간 경로를 False Path로 설정할 수도 있습니다. 이는 비동기 관계를 명시하여 툴에서 해당 경로를 분석하지 않도록 합니다. - 예시:
set_false_path -from [get_clocks clock1] -to [get_clocks clock2]
- 타이밍 예외를 통해
비동기 관계를 명확히 정의하는 것은 클럭 도메인 간 신호 전달에서 중요한 요소이므로, 이러한 설정을 통해 경고를 해결하고 안전한 클럭 도메인 설계를 확보할 수 있습니다.
'IT > ASIC | FPGA' 카테고리의 다른 글
타이밍 기초 - 디자인 요소 common design objects (0) | 2024.10.28 |
---|---|
타이밍 기초 - DES0001 vs DES0004 Register clock pin (1) | 2024.10.28 |
반도체 기초 - FMEDA 란? (1) | 2024.10.28 |
반도체 기초 - LBIST vs SCAN (0) | 2024.10.25 |
반도체 기초 - DA, BIST, 테스트 관련 (0) | 2024.10.25 |