오늘은 맑음

Metastability/Metastable state 본문

Digital logic

Metastability/Metastable state

자전거 타는 구구 2019. 12. 4. 11:13
반응형

 Metastable state라고도 하는데 번역하면 준안정상태라고 합니다.

 즉, 안정적이지 않은 상태를 의미합니다.

 보통 서로 다른 clock domain의 flip-flop사이에 데이터를 주고 받을때 발생합니다. 

 A라는 clock domain에서 동작하는 A_ff와 B라는 clock domain에서 동작하는 B_ff가 있다고 하겠습니다.

 A_ff와 B_ff는 서로 다른 clock에 의해 동기화가 되기 때문에 동기화 되는 타이밍이 달라 문제가 발생합니다.

 A_ff는 aclk의 rising edge에 데이터가 동기화 되고 B_ff는 bclk의 rising edge에 데이터가 동기화 됩니다.

 A_ff에서 데이터가 변경될 때 bclk이 rising edge가 되어 동기화를 시킨다면 어떻게 될까요?

 변경되는 데이터를 가져가게 되었으므로 이 데이터는 안정적인 데이터가 아닙니다.

 따라서 B_ff에는 어떤 값인지 모르는 unpredictable한 값이 전달됩니다.

 

위의 상황 외에도 발생할 수 있는 상황으로는

 

1. 입력 시그널이 astynchronous signal일때

2. clock의 skew가 너무 심할때

3. 조합딜레이로 인해 다음 filp-flop에 데이터를 제때 전달하지 못헤 값이 변경될 때

 

와 같은 상황들이 있습니다.

모두 setup time/hold time에서 문제가 생기는 상황들임을 볼 수 있습니다.

이렇게 다양한 이유로 발생하는 만큼 해결 방법도 매우 다양합니다.

출처 : asic-world

반응형

'Digital logic' 카테고리의 다른 글

Multiplication algorithm(1)  (0) 2020.04.17
CDC(Clock Domain Crossing)  (4) 2019.12.05
fpga와 asic설계시 유의사항  (0) 2019.12.01
module 사이의 데이터 전달 방법  (0) 2019.11.30
verilog hdl 설계시 주의할 점(1)  (0) 2019.11.30
Comments