This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADC12QJ1600: Microchip Polarfire FPGA JESD204B configuration (8 Lanes)

Part Number: ADC12QJ1600

Tool/software:

Hello,

I would like to configure Microchip's JESD204B core for PolarFire FPGA together with the ADC12QJ1600 ADC.

Hardware has all 8 lanes connected to the FPGA.

I would like to use JMODE9 (8-bit, 8B/10B encoding, 8 lanes), Basic question is

1. How should I configure the ADC ?

2. How should I configure the FPGA JESD core? 

Following is the setup and configuration I am thinking of considering.

Clocking setup for ADC

Configuration Sequence for ADC:

As per the below datasheet

Pins: PLL_EN = '0'; PLLREF_SE = '0'; CLK+/- = 1000 MHz;

Step1. PD = '1'  (For how long this should be high ? Right now ~40 us)

Step2. PD = '0' (For how long this should be low? Right now ~40 us)

Step3: Issue SOFT_RESET: Write register - CONFIG_A (Address: 0x000; Value: 0xB0)

Step4: Wait for 1280 ns (as per specification, it needs to wait 750 ns)

Step4: Read INIT_STATUS: Read register - INIT_STATUS (Address: 0x030)

Step5: If INIT_DONE  is '1', then Step 6 else Step4

Step6: Read VENDOR_ID: Read register - VENDOR_ID (Address: 0x00C)

Step7: If VENDOR_ID = 0x0451, then Step 8 else Issue ERROR

Step8: Stop JESD204: Write register - JESD_EN (Address: 0x200; Value: 0x00)

Step9: Stop Calibration: Write registers - CAL_EN (Address: 0x061; Value: 0x00)

Step10: Default to High Performance mode

Step11: JMODE selection: Write register - JMODE (Address: 0x201; Value: 0x09)

Step12: Desired KM1 value: Write register - KM1 (Address: 0x202; Value: 0x1F)

Step13: SYNC_SEL: Write register - JCTRL (Address: 0x204; Value: 0x03)

Step14: Calibration settings: Write register - CAL_CFG0 (Address: 0x062; Value: 0x01)

Step15: Calibration settings: Write register - CAL_CFG1 (Address: 0x065; Value: 0x01)

Step16: Enable TRIGOUT: Write register - TRIGOUT_CTRL (Address: 0x057; Value: 0x81)

C_PLL is disabled, so not reading VCO_CAL_STATUS register at this time

Step17: Enable Calibration: Write register - CAL_EN (Address: 0x061; Value: 0x01)

Step18: Enable Over-range: Write register - OVR_CFG (Address: 0x213; Value: 0x0F)

Step19: Re-start JESD204: Write register - JESD_EN (Address: 0x200; Value: 0x01)

Step20: Enable Calibration: Write register - CAL_PIN_CFG (Address: 0x06B; Value: 0x01)

Step21: Set CALTRIG = '0' (For how long this should be low ? Right now 5.1 us)

Step22: Set CALTRIG = '1' (For how long this should be high ? Right now it will be high till CALSTAT = '1')

If CALSTAT = '1', then CALTRIG <= '0';

FPGA Setup

FPGA transceiver core can take only 4 Lanes, so 2 transceiver cores are used to make 8 lanes.

Configuration of Transceiver Core

Configuration of JESD204BRX Core

Please let me know if you have any questions or concerns.

Please let me know your thoughts:

Thanks

Madhu