altera의 LVDS SERDES block (DPA, Synchronizer, BitSlip) 분석

댓글 0

[FPGA]

2019. 12. 31.


LVDS SERDES Block Diagram





DPA Block

DPA 블록은 differential input buffer에서 high-speed serial data를 가져 와서 데이터를 샘플링하기 위해 left and right PLL에 의해 생성 된 8 개의 phase 중 하나를 선택합니다.

DPA는 serial data의 phase에 가장 가까운 phase을 선택합니다. 수신 된 데이터와 선택된 위상 사이의 최대 위상 오프셋은 1/8 UI이며,

이는 DPA의 최대 양자화 오류입니다. clk의 8 개 위상이 똑같이 나누어 져 45 ° 분해능을 제공합니다.

그림 8–14는 DPA 클록과 수신 직렬 데이터 간의 가능한 위상 관계를 보여줍니다.



DPA 블록은 수신된 serial data의 위상을 지속적으로 모니터링하고 필요한 경우 새 clk 위상을 선택합니다.
각 채널에 사용 가능한 옵션 RX_DPLL_HOLD 포트를 지정하여 DPA가 새 clk 위상을 선택하지 못하게 할 수 있습니다.

DPA 회로는 8 단계 중 최적의 단계에 고정하기 위해 고정 된 training pattern이 필요하지 않습니다. 

선택적인 출력 포트 RX_DPA_LOCKED를 사용하여 초기 DPA 잠금 조건을 최적으로 표시 할 수 있습니다.
이 신호는 DPA가 수신 된 데이터를 샘플링하기 위해 8 개의 clk phase 중에서 new phase를 선택하면 lock이 됩니다. 


하지만, rx_dpa_locked 신호를 사용하여 DPA lock-loss condition(잠금 상실 조건)을 판별하지 마십시오. 

CRC (Cyclic Redundancy Check) 또는 DIP-4 (D 대각선 인터리브 패리티)와 같은 데이터 검사기를 사용하여 데이터를 확인하십시오.

independent reset port인 RX_RESET을 사용하여 DPA 회로를 재설정 할 수 있습니다. 

DPA 회로는 재설정 후 re-training해야 합니다.



Synchronizer

synchronizer는 DPA 블록에 의해 선택된 최적의 클럭 인 DPA_diffioclk와 right and lefft PLL에 의해 생성되는 LVDS_diffioclk 간의 위상차를 보상하는 1 비트 폭 및 6 비트 깊이 FIFO 버퍼입니다. synchronizer는 데이터와 수신기의 input reference clock 간의 주파수 차이가 아닌 위상 차이 만 보상 할 수 있습니다.


내부 로직에 option port 인 RX_FIFO_RESET을 사용하여 동기화 프로그램을 재설정 할 수 있습니다.
DPA가 들어오는 데이터에 처음 lock이 되면 동기화 프로그램이 자동으로 재설정됩니다. 


BitSlip


link에 의해 추가 된 왜곡과 함께 전송 된 데이터의 왜곡은 수신 된 직렬 데이터 스트림에서 채널 간 왜곡을 유발합니다.

DPA가 활성화 된 경우 수신 된 데이터는 각 채널에서 다른 클럭 위상으로 캡처됩니다. 이로 인해 수신 된 데이터가 채널마다 잘못 정렬 될 수 있습니다. 이 채널 간 skew를 보상하고 각 채널에서 올바른 수신 워드 경계를 설정하기 위해 각 수신기 채널에는 비트 지연 시간을 직렬 스트림에 삽입하여 데이터를 재정렬하는 dedicated data re-alignment  회로가 있습니다.


그림 8–15는 deserialization factor가 4로 설정된 1 bit slip pulse 후 수신기 출력 (RX_OUT)을 보여줍니다.



Data re-alignment 회로는 rollover가 발생하기 전에 최대 11 bit-time을 가질 수 있습니다. 

프로그래밍 가능한 bit rollover point은 de-serialization factor 와 상관없이 1 ~ 11 bit-time 일 수 있습니다. 

프로그래밍 가능한 bit rollover point는 de-serialization factor보다 크거나 같아야 단어 정렬 회로의 전체 깊이가 전체 워드를 통과 할 수 있습니다. MegaWizard Plug-In Manager 소프트웨어를 사용하여 bit rollover point의 값을 설정할 수 있습니다. 사전 설정 rollover point에 도달 한 시점을 표시하기 위해 각 채널에서 FPGA 패브릭에 옵션 상태 포트 인 RX_CDA_MAX를 사용할 수 있습니다.

그림 8–16은 롤오버가 발생하기 전에 미리 설정된 4 비트 시간 값을 보여줍니다.

rx_cda_max 신호는 한 번의 rx_outclock주기 동안 펄스되어 롤오버가 발생했음을 나타냅니다.