반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- linux makefile 작성
- Pyvrilog tutorial
- Makefile compile
- Pyverilog 실행
- 남산업힐
- Pyverilog 튜토리얼
- Design DNN Accelerator
- linux c 컴파일
- 클럭 게이팅
- pytest-pythonpath 설치 오류
- 대구 반도체 설계기업 특화
- linux c++ 컴파일
- DNN 가속기
- pygraphviz 설치 오류
- makefile
- 데이터 해저드
- gcc 컴파일
- Data HAzard
- AMBA
- CLOCK GATING
- Pyverilog 설치
- 딥러닝 가속기
- systolic array
- 이진수 곱셈 알고리즘
- CUDA
- pyverilog 설치 오류
- CDC
- DNN Accelerator
- 컨벌루션 연산
- gpgpu-sim
Archives
- Today
- Total
오늘은 맑음
Metastability/Metastable state 본문
반응형
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