FPGA - 프로세서 그리고 데이터의 이동/JESD204

3.3 JESD204 구현에 필요한 하드웨어 - Clock

망고토마토 2021. 5. 22. 07:24
반응형

Jesd204 문서를 보면, 언급되는 클럭들이 참 많다.  용도도 다르고, 제조사마다 클럭의 용어가 달라서 헷갈린다.

 

JESD204B를 공부하면서 Clock이 사용되는 곳과 용도에 대해 정리해보았다. 

 

JESD204B 통신을 구현할 때 TI사의 PLL, ADC를 사용하였고, Xilinx사의 FPGA를 사용하였다. 

Xilinx 사의 JESD204B 관련 문서(PG006 JESD204 IP)에 언급되는 클럭은 core clock, reference clock, byte clock, local multi frame clcok 등이 있다.

TI사의 JESD204B 관련 문서(TI JESD204 IP 문서)에 언급되는 클럭은 sys clock, mgt ref clock 등이 있다. 

 

다음은 JESD204B 통신을 구성하는 하드웨어(칩)와 신호를 정리한 것이다. 하드웨어의 역할을 설명하고, JESD204B에 언급된 클럭에 대해 설명하겠다.

 

우선 각 칩의 역할에 대해 설명한다. 

PLL or clock distributor : 기준 주파수 source에서 클럭을 입력 받고, 이 source를 기준으로 ADC, FPGA에 필요한 클럭과 Sysref 신호를 만들어주는 역할이다.

ADC : 아날로그 신호를 디지털 신호로 변환한다. JESD 204B 통신을 지원하기에 그림에 그려진 ADC 내부에는 JESD204B TX 모듈이 들어있다. 

FPGA : ADC가 송신한 데이터를 수신한다. ADC가 JESD204B 통신방식으로 송신한 데이터를 JESD204B 방식으로 수신해야 하므로, JESD204B RX모듈이 필요하다. JESD204B 모듈은 IP 형태로 FPGA 제조사 또는 ADC 제조사에서 제공한다. 

JESD204B IP는 PHY, MAC, Transport Layer로 구성되어 있다. 특히 PHY 부분은 FPGA의 고속통신 트랜시버로 구현이 되며, Xilinx의 경우 GTY, GTP 모듈이 고속통신 트랜시버의 역할을 한다. 

 

JESD 204B 통신 구성도

각 하드웨어에 들어가는 clock 신호의 용도에 대해 알아보자

ADC가 사용하는 클럭 

ADC에 입력되는 클럭은 Sampling clock으로,아날로그 신호를 샘플링 할 때 사용한다.  그리고 위 그림에서 언급되지 않았지만 이 Sampling clock은 JESD204B TX모듈에도 사용된다(?).  JESD204B TX모듈은 ADC가 출력한 디지털 데이터를 JESD204B 통신의 데이터 형태로 변경한다. 

 

FPGA가 사용하는 클럭

FPGA에는 2가지의 클럭이 입력된다. 2가지 클럭은 위의 그림에서 보다시피,

1. 트랜시버의 ref. clock,

2. Core clk or Sysclk(제조사마다 이 clk에 대한 이름이 다르다.)

이다.

 

1. 트랜시버의 ref. clock은 JESD204B PHY 부분의 고속트랜시버 모듈의 클럭으로 사용된다. 

2. Core clk or Sys clk의 쓰임이 가장 이해하기 어려웠다. Xilinx사에서는 Core clock, TI에서 Sys clock로 언급된다. 아직도 뚜렷하게는 잘 모르겠지만 JESD204B의 PHY부분을 제외한 부분에 전부 사용되는 클럭이라는 느낌을 받았다. 

JESD204B 형태의 데이터(ADC가 보낸)를 JESD204B Receiver가 수신하고 이것을 ADC data로 변환하는데에 Sys ref 신호 catch, mac layer, transport layer등이 있다. Core clk or Sys clk은 이 일련의 과정을 수행하는데 사용된다. 

 

※ Mac layer, Transport layer를 보면 Byte clock, Frame clock 등의 클럭 용어를 볼 수 있는데, 어찌되었든 이런 클럭들은 2. Core clk or Sys clk을 기준으로 동작한다. (조금 더 공부가 필요하지만 이렇게 이해하였다.

 

FPGA 외부에서 받은 Core clk or Sys clk 대신에 트랜시버 ref. clk로 구동하는 PHY 모듈이 생성한 클럭(=usr clk)을 사용하는 것도 된다고  칩 제조사에서 말하기도 하지만, 되도록이면 usr clk대신 FPGA 외부에서 받은 Core clk or Sys clk을 사용하라고 적혀 있다. 

 

Core clk의 역할 중 하나인 Sysref catch가 있는데, 다음그림은 그 예시로, Device clk가 Core clk이다. 다음 그림에서는 device clk의 Rising edge에서 Sysref 신호의 변경을 인식한다. 

 

 

Sysref 신호 Catch (사진 출처 : TI 사 JESD204B Physical Layer)

TI 사 JESD204B Physical Layer (PHY) 참고

 

반응형