Asynchronous FIFO2 [CDC] 10. Asynchronous FIFO(4) 이전 포스트들을 통해서 Asynchronous FIFO를 설계하기 위한 기본적인 사항들을 알아보았다. Meta-stability 상태를 제거하기 위하여 2-Stage Synchronizer, Multi-bit CDC를 하기 위한 Gray Code, FIFO의 Empty, Full 상태를 알아보기 위한 Pointer 연산까지 살펴보았다. 이 사항들을 조합하여 Asynchronous FIFO를 설계해보도록 하자. Asynchronous FIFO를 이해함에 있어서 가장 중요한 점은 Asynchronous FIFO에 저장되는 데이터가 아니라 Write Domain과 Read Domain의 Pointer에 CDC(Clock Domain Crossing) 기법을 적용한다는 것이다. Asynchronous FIFO에.. 2022. 4. 25. [CDC] 07. Asynchronous FIFO(1) 이번 포스트에서는 CDC(Clock Domain Crossing)를 수행할 때 가장 많이 쓰이는 Asynchronous FIFO에 대해서 알아보도록 하겠다. FIFO는 First In First Out의 약자로 처음 넣은 데이터가 처음 나오는 기능을 수행한다. 즉 순차적으로 입력한 데이터가 순차적으로 출력된다. 이런 동작을 수행하기 위해서 FIFO에서 Write Pointer, Read Pointer가 존재한다. Write를 수행하면 Write Pointer가 '+1' 증가되며, Read를 수행하면 Read Pointer가 '+1' 증가된다. 두 Pointer 간의 비교를 통해서 FIFO 내부에 데이터가 존재하는지(empty) 혹은 꽉 찼는지(full)를 알 수 있다. 예를 들어 Pointer가 0~7까.. 2022. 3. 29. 이전 1 다음