728x90

FIFO 3

ASIC Flow - FIFO 구조 및 동작 원리 (CDC, Async, Metastability)

https://insoobaik.tistory.com/676https://insoobaik.tistory.com/677 이전 FIFO 구조 및 동작 원리 이론에 이어서 실제 FIFO 이론을 RTL 설계를 할 것이다.기본적인 FIFO 구조 설계는 FIFO Buffer에 대해 Async 비동기로 Data를 Write, Read하게 된다. 1. FIFO Buffer의 Data Full, Empty에 대한 Flag가 필요하다.2. Write, Read가 비동기로 이루어지기 때문에 FIFO Buffer에 있는 데이터의 위치를 확인하기 위한 각각의 Write, Read Pointer가 필요하다.3. 위 FIFO에 대한 이론 글에서 봤듯이 Pointer Data 손실을 방지하기 위해 Gray Code로 변경하는 코드..

FIFO - Asynchronous, CDC, Metastability, Synchronizer, GrayCounter (2)

https://insoobaik.tistory.com/676FIFO 구조 및 동작 원리 (1)에 이어서 FIFO 사용에 필요한 Asynchronous, CDC, Metastability, Synchronizer, GrayCounter에 대한 내용을 작성해 볼 것이다.이전에 말했듯이 SoC 내부는 여러 Clock Domain을 가지고 있다. 서로 다른 Clock Domain이 Data를 주고 받는 것은 Clock Domain Crossing라고 부르고 줄여서 CDC라고 부른다.CDCClock Domain Crossing 서로 다른 클록 도메인 간의 신호 전달을 의미한다. 위 그림과 같이 위 FF은 clk_A 하나의 클럭에 동기화 되어 있기 때문에 각 Domain에 대한 성능이 동일하다. 같은 Clock을 ..

FIFO - 구조 및 동작 원리 (1)

FIFO(First In, First Out)먼저 들어온 데이터가 먼저 나가게 되는 데이터 처리와 관련된 자료구조에 해당한다.위 그림과 같이 저장소에 먼저 들어온 값을 기준으로 Data가 쌓이고 Data 요청이 들어오게 되면 먼저 들어온 Data부터 나가게 된다.Enqueue, Dequeue = Push, Pop이라고 생각하면 된다.FIFO 사용 이유 FIFO는 일종의 Buffer처럼 사용된다. 위 그림의 왼쪽처럼 A에서 B에게 데이터를 전달해야 하는데, B가 Busy상태에 있으면 A는 다른 작업을 하지 못한채로 B가 데이터를 받을 수 있는 상태(IDLE)가 될 때까지 대기해야 한다. 하지만 우측 그림처럼 중간에 FIFO 방식의 Buffer를 생성하게 되면, A에서 B에게 전달해야 하는 데이터를 Buff..

728x90