본문 바로가기

Clock domain crossing2

[CDC] 01. Metastability란 무엇인가? 이전 글에서는 서로 다른 두 Clock을 사용하는 Register들을 연결하는 경로가 존재할 때 Register 간의 타이밍을 잡을 수 없다는 것을 알아보았다. 그렇다면 Timing violation이 발생하면 어떤 문제가 생기는지 알아보자. Timing violation이 발생하는 상황, 예를 들어 destination register의 setup/hold timing을 맞추지 못한 경우 destination register의 출력은 metastable 상태로 전환될 수 있다. 이러한 metastable 상태에서의 Register 출력은 정상 전환 시점 이후에도 High state(1'b1)와 Low state(1'b0) 사이의 값에 머무른다. 이런 상황을 Metastability라고 이야기한다. 아래.. 2022. 2. 21.
[CDC] 00_CDC(Clock Domain Crossing) 이란 무엇인가? 일반적으로 디지털 설계에서는 동일한 Clock Domain 내에서 로직을 구성한다. 아래 그림처럼 두 개의 레지스터(Reg_X, Reg_Y)에는 동일한 Clock(clk_A)으로 동기화되어 있으며, 그 사이에 존재하는 로직은 동일한 Clock으로 1-Cycle 안에 처리 될 수 있도록 설계한다. 동일 Clock Domain으로 구성되어 있으므로, clk_A의 clock period와 Reg_X의 Clock to Q delay와 Combo Logic의 Delay와 Reg_Y의 Setup/Hold를 계산하여 타이밍을 맞출 수 있다. 그런데 다른 Clock을 사용하는 부분 간에 신호를 주고 받아야 할 경우가 발생한다. 아래 그림과 같이 다른 Clock domain을 가진다면 어떻게 타이밍을 맞출 수 있을 까?.. 2021. 12. 28.