Skip to main content

Register Space

The JESD204C core is configured using an AXI4-Lite Register Interface. The register map is shown in the following table.

note

The JESD204C AXI4-Lite interface currently does not support outstanding transactions. The ongoing transaction data access must end completely before the next transaction starts. Otherwise, the new transaction data might get incorrectly stored at the address of the previous transaction data.

The RX and TX cores share a common address map and register definitions where possible, exceptions are highlighted.

tip

Recommended: AMD recommends that if significant configuration changes are made using the control registers (in particular, changes to framing parameters), the core should be reset to ensure that the link is resynchronized using the updated parameters.

Register Address Space​

AXI4-LiteRegisters Name64B66B8B10B
TX Access TypeRX Access TypeTX Access TypeRX Access Type
0x000IP_VERSIONRRRR
0x004IP_CONFIGRRRR
0x020RESETR/WR/WR/WR/W
0x024CTRL_ENABLER/WR/WN/AN/A
0x028CTRL_TX_SYNCN/AN/AR/WN/A
0x030CTRL_MB_IN_EMBR/WR/WN/AN/A
0x034CTRL_SUB_CLASSR/WR/WR/WR/W
0x038CTRL_META_MODER/WR/WN/AN/A
0x03CCTRL_8B10B_CFGN/AN/AR/WR/W
0x040CTRL_LANE_ENAR/WR/WR/WR/W
0x044CTRL_RX_BUF_ADVN/AR/WN/AR/W
0x048CTRL_TEST_MODER/WR/WR/WR/W
0x04CCTRL_RX_MBLOCK_THN/AR/WN/AN/A
0x050CTRL_SYSREFR/WR/WR/WR/W
0x054STAT_LOCK_DEBUGN/ARN/AN/A
0x058STAT_RX_ERRN/AN/AN/AR
0x05CSTAT_RX_DEBUGN/AN/AN/AR
0x060STAT_STATUSRRRR
0x064CTRL_IRQR/WR/WR/WR/W
0x068STAT_IRQRRRR
0x070CTRL_TX_ILA_CFG0N/AN/AR/WN/A
0x074CTRL_TX_ILA_CFG1N/AN/AR/WN/A
0x078CTRL_TX_ILA_CFG2N/AN/AR/WN/A
0x07CCTRL_TX_ILA_CFG3N/AN/AR/WN/A
0x080CTRL_TX_ILA_CFG4N/AN/AR/WN/A
0x4001 (Lane 0) STAT_RX_BUF_LVLN/ARN/AR
0x4041 (Lane 0) CTRL_TX_ILA_LIDN/AN/AR/WN/A
0x4101 (Lane 0) STAT_RX_ERROR_CNT0N/ARN/AN/A
0x4141 (Lane 0) STAT_RX_ERROR_CNT1N/ARN/AN/A
0x4601 (Lane 0) CTRL_TX_GTR/WR/WR/WR/W
0x4641 (Lane 0) CTRL_RX_GTR/WR/WR/WR/W
0x4681 (Lane 0) CTRL_TX_VERSAL_GTY/GTYPR/WR/WR/WR/W
0x46C1 (Lane 0) CTRL_TX_VERSAL_GTMR/WR/WR/WR/W

1 As shown, lane 0 registers start at 0x400. Lane 1 registers occupy the equivalent space starting at 0x480, lanes 2-7 follow the same pattern (that is, lane 2 = 0x500, lane 3 = 0x580, etc.).

IP_VERSION​

BitsDefault ValueDescription
31:24-Version: Major
23:16-Version: Minor
15:8-Version: Revision
7:0-Reserved (read 0x00)

IP_CONFIG​

BitsDefault ValueDescription
18-1 = FEC Included
0 = FEC not included
(FEC is only available when configured for 64B66B)
17-1 = Core is 64B66B
0 = Core is 8B10B
16-1 = Core is TX
0 = Core is RX
3:0-Number of lanes in core.

RESET​

BitsDefault ValueDescription
31:24 1-gt_mst_reset_busy[7:0]
1-bit per enabled GT lane. These bits show the inversion of the mstresetdone inputs from the Versal adaptive SoC GTs.
23:16 1-gt_pma_reset_busy[7:0]
1-bit per enabled GT lane. These bits show the inversion of the pmaresetdone inputs from the Versal adaptive SoC GTs.
7 1-gt_reset_busy
1 = GTs are still in reset
0 = GTs have finished reset
6 1-gt_powergood input state
This bit shows the inversion of the gt_powergood input from the Versal adaptive SoC GT.
1 = gt_powergood not completed
0 = gt_powergood completed
5-Core Reset Register State
1 = tx/rx_reset asserted
0 = tx/rx_reset deasserted
4-Core External Reset Pin State
1 = tx/rx_core_reset asserted
0 = tx/rx_core_reset deasserted
1 10Reset type
1 = Initiates a Datapath only reset
0 = Initiates a PLL+ Datapath reset
Reset type should be asserted first followed by the reset bit 0.
00Reset (not self-clearing)
1 = put core into reset
0 = Release core from reset
After setting this bit to 1 and clearing back to 0, this bit will read back 1 until the reset process has completed.

1 For Versal adaptive SoCs only.

CTRL_ENABLE​

BitsDefault ValueDescription
10Enable Data Interface.
1 = Enables the AXI4-Stream Data interface and transmits/receives data on the link.
0 = The link will be transmitting/receiving scrambled 0s
00Enable Cmd interface.
1 = Enables the AXI4-Stream Cmd interface and the associated processing of the sync header meta data.
0 = Cmd words will be zeroed.

CTRL_TX_SYNC​

BitsDefault ValueDescription
00tx_sync_force.
Force on 8B10B transmitter. When set to 1, this register overrides the value on the tx_sync pin.

CTRL_MB_IN_EMB​

BitsDefault ValueDescription
7:00x1Number of multiblocks in an extended multiblock. Program this register with the actual value.
Note: 0 is not valid.

CTRL_SUB_CLASS​

BitsDefault ValueDescription
1:00x1Sub Class:
0 = Subclass 0
1 = Subclass 1
2 = Subclass 2 (8B10B only)

CTRL_META_MODE​

BitsDefault ValueDescription
1:00x0Meta Mode:
0 = CRC12
1 = N/A
2 = CMD
3 = FEC

CTRL_8B10B_CFG​

BitsDefault ValueDescription
31:240x3ILA multiframes. Multiframes in the Transmitted Initial Lane Alignment Sequence.
Parameter Range: 4–256; program the register with required value minus 1.
21:200x0Reserved. Must be set to zero.
1901 = Enable Link Error counters (Link errors are counted and reported using Link Error Count registers per lane)
0 = Disable Link Error counters
180Error Reporting via sync:
1 = Error reporting using SYNC interface Enabled
0 = Error reporting using SYNC interface Disabled
171ILA Required:
1 = Enable ILA Support
0 = Disable ILA Support
161Scrambling:
1 = Enable Scrambling
0 = Disable Scrambling
12:80xFFrames per Multiframe (K)
Parameter range 1–32;
Program register with required value minus 1 (for example, for K = 16, 0xF should be programmed)
7:00x1Octets per Frame (F)
Parameter range 1–256;
Program register with required value minus 1 (for example, for F = 4, 0x03 should be programmed)

CTRL_LANE_ENA​

BitsDefault ValueDescription
7:00xFFLane Enable. Each bit enables the corresponding lane. The core will not process data for lanes that are disabled.

CTRL_TEST_MODE​

BitsDefault ValueDescription
11:8 10x0PRBS mode select (Versal adaptive SoCs only):
4'b0000: Standard operation mode. (PRBS off)
4'b0001: PRBS-7
4'b0010: PRBS-9
4'b0011: PRBS-15
4'b0100: PRBS-23
4'b0101: PRBS-31
4'b0110: PRBS-13
2:0 20x0Test mode select (8B10B mode):
000 = Normal operation
001 = Transmit receive /K28.5/ indefinitely 2
010 = Synchronize as normal then transmit/receive repeated ILA sequences. 2
101 = Transmit Modified Random Pattern RPAT (TX only) 1
111 = Transmit Scrambled Jitter Pattern JSPAT (TX only) 1

1 These test modes are only applicable to the JESD204C 8B10B transmitter IP. They are used to set the transceiver to output specific patterns that might be used to evaluate the electrical characteristics of a link using tools such as IBERT. A JESD204C 8B10B receiver core will not synchronize or function if these test patterns are received.

CTRL_RX_MBLOCK_TH​

BitsDefault ValueDescription
2:00x0MB lock threshold.
How many correct/incorrect multiblock alignment markers are required to achieve/lose multiblock lock. The actual value used is 1 plus the number in this register.

CTRL_SYSREF​

BitsDefault ValueDescription
23:160x0(For 64b66b cores only)
SYSRF Delay:
Add additional delay to SYSRF alignment LEMC.
0xFF = 255 core_clk cycles delay
...
0x00 = 0 core_clk cycles delay.
This register is used to retard the phase of the LEMC.
19:160x0SYSRF Delay:
Add additional delay to SYSRF alignment of LMFC.
1111 = 15 core_clk cycles delay
...
0000 = 0 core_clk cycles delay
This register is used to retard the phase of the LMFC.
10:80x0SYSRF Tolerance:
Specify a tolerance value in core_clk cycles for SYSRF detection when in SYSRF Always mode. If a SYSRF event is detected within +/- tolerance core_clk cycles from its expected position, no error signal will be issued.
10SYSRF Required on Re-Sync
1 = Following a Link Re-Sync event, a SYSRF event is required to re-align the local LMFC/LEMC before the link will operate.
0 = No SYSREF is required to restart a link after a Re-sync event.
00SYSREF Always
1 = The core will align the LMFC/LEMC counter on all SYSREF events.
0 = The core will only align the LMFC/LEMC counter on the first SYSREF event following a reset, all subsequent SYSREF events will be ignored.

STAT_LOCK_DEBUG​

BitsDefault ValueDescription
23:16-Lane indicator multiblock aligned.
1 bit per lane.
Set to 1 when multiblock alignment is achieved. 0 otherwise.
7:0-Lane indicator 64B66B sync header aligned.
1 bit per lane.
Set to 1 when sync header alignment is achieved. 0 otherwise.

STAT_RX_ERR​

BitsDefault ValueDescription
31:28-RX Error status lane 7
27:24-RX Error status lane 6
23:20-RX Error status lane 5
19:16-RX Error status lane 4
15:12-RX Error status lane 3
11:8-RX Error status lane 2
7:4-RX Error status lane 1
3:0-RX Error status lane 0
Bit 3: unused
Bit 2: Unexpected K-character(s) received
Bit 1: Disparity Error(s) received
Bit 0: Not in table Error(s) received
Each bit indicates that 1 or more errors of that type have been received in Lane 0 because the register was last read.
All status bits are cleared to 0 on read of this register.

STAT_RX_DEBUG​

BitsDefault ValueDescription
31:28-Link Debug status Lane 7 as per lane 0
27:24-Link Debug status Lane 6 as per lane 0
23:20-Link Debug status Lane 5 as per lane 0
19:16-Link Debug status Lane 4 as per lane 0
15:12-Link Debug status Lane 3 as per lane 0
11:8-Link Debug status Lane 2 as per lane 0
7:4-Link Debug status Lane 1 as per lane 0
3:0-Link Debug status Lane 0
Bit 3: 1 = Start of Data was Detected 1
Bit 2: 1 = Start of ILA was Detected 1
Bit 1: 1 = Lane has Code Group Sync 2
Bit 0: 1 = Lane is currently receiving K28.5's (BC alignment characters) 2

1 The status bits 3:2 latch when set and are cleared on read or when the core is reset. If the core is streaming data when these bits are cleared, they are instantly set again. The purpose of these bits is to detect whether these conditions have occurred because SYNC was asserted.

2 The status bits 1:0 show instantaneous status.

STAT_STATUS​

BitsDefault ValueDescription
15-8B10B Alignment Error:
1 = An 8B10B RX misalignment has been detected. Misalignment is determined by monitoring the Multiframe framing characters. If eight consecutive framing characters are detected in misaligned positions, then this bit is asserted.
14-8B10B RX started:
1 = The link has started outputting data on the AXI4-Stream port. This bit is applicable to an 8B10B RX only.
13-8B10B CGS status:
1 = The link has achieved Code Group Sync. This bit is applicable to an 8B10B RX only.
12-8B10B SYNC status:
1 = The receiver has signaled SYNC has been achieved. This bit is applicable to an 8B10B link only.
10-Buffer Overflow error.
1 = The receiver buffer has overflowed.
5-64B66B Multiblock Lock Status:
1 = Multiblock lock achieved on all lanes.
This bit is a logical AND of the individual lane status bits.
4-64B66B Sync Header Lock Status:
1 = Sync Header lock achieved on all lanes.
This bit is a logical AND of the individual lane status bits.
2-SYSREF error. A sysref was detected out of phase with the local extended multiblock clock.
1-SYSREF captured.
0-Interrupt pending.

CTRL_IRQ​

BitsDefault ValueDescription
1401 = Enable interrupt on 8B10B RX AXI4-Stream data start.
1301 = Enable interrupt on 8B10B RX Resync request.
1201 = Enable interrupt on 8B10B SYNC assertion.
1001 = Enable Interrupt on overflow Error.
901 = Enable Interrupt on 64B66B FEC Error.
801 = Enable Interrupt on 64B66B CRC Error.
701 = Enable Interrupt on 64B66B Multiblock Error.
601 = Enable Interrupt on 64B66B Block Sync Error.
501 = Enable Interrupt on Loss of 64B66B Multiblock Lock.
401 = Enable Interrupt on Loss of 64B66B Sync Header Lock.
201 = Enable Interrupt on SYSREF Error.
101 = Enable Interrupt on SYSREF Received.
00Global Interrupt Enable:
Must be set for any interrupt to function.

STAT_IRQ​

BitsDefault ValueDescription
14-1 = 8B10B RX AXI4-Stream data start interrupt triggered.
13-1 = 8B10B RX Resync request interrupt triggered.
12-1 = 8B10B SYNC assertion interrupt triggered.
10-1 = Overflow Error Interrupt triggered.
9-1 = 64B66B FEC Error detected Interrupt triggered.
8-1 = 64B66B CRC Error detected Interrupt triggered.
7-1 = 64B66B Multiblock Error detected Interrupt triggered.
6-1 = 64B66B Block Sync Error detected Interrupt triggered.
5-1 = 64B66B Multiblock Lock Status Interrupt triggered.
4-1 = 64B66B Sync Header Lock Status Interrupt triggered.
2-1 = SYSREF Error Interrupt triggered.
1-1 = SYSREF Received Interrupt triggered.

CTRL_TX_ILA_CFG0​

BitsDefault ValueDescription
11:80x0BID (Bank ID). Binary value.
7:00x0DID (Device ID). Binary value.

CTRL_TX_ILA_CFG1​

BitsDefault ValueDescription
31:26-Reserved
25:240x0CS (Control bits per Sample). Binary value.
23:21-Reserved
20:160x0N' (Total bits per Sample). Binary value minus 1.
15:13-Reserved
12:80x0N (Converter Resolution). Binary value minus 1.
7:00x0M (Converters per Device). Binary value minus 1.

CTRL_TX_ILA_CFG2​

BitsDefault ValueDescription
28:240x0CF (Control Words per Frame). Binary value.
160HD (High Density format)
12:80x0S (Samples per Converter per Frame). Binary value minus 1.

CTRL_TX_ILA_CFG3​

BitsDefault ValueDescription
31:17-Reserved
160ADJDIR (Adjust Direction) [Subclass 2 Only]. Binary value.
15:9-Reserved
80PHADJ (Phase Adjust Request) [Subclass 2 Only]. Binary value.
7:4-Reserved
3:00x0ADJCNT (Phase Adjust Count) [Subclass 2 Only]. Binary value.
RX: captured configuration data from the ILA sequence (per lane).
TX: Sets the values to be transmitted in the ILA sequence for all lanes.

CTRL_TX_ILA_CFG4​

BitsDefault ValueDescription
15:80x0RES2 (Reserved Field 2)
7:00x0RES1 (Reserved Field 1)

STAT_RX_BUF_LVL 1​

BitsDefault ValueDescription
9:0-Buffer fill level.
The amount of data in the receiver buffer for lane 0.
For 64B66B linecoding: The value returned is the number of 64-bit words in the buffer.
For 8B10B Linecoding: The value returned is the number of bytes in the buffer.

1 This is a Per Lane Register.

CTRL_TX_ILA_LID 1​

BitsDefault ValueDescription
31:21-Reserved
20:16LNumber of lanes per link (binary value minus 1).
The default value for all lanes is L (total number of lanes minus 1). These values should be programmed when:
• Not all lanes in the generated IP core are enabled.
• A single TX core is used to drive multiple DAC devices.
• Multiple TX cores are combined to create links with more than eight lanes.
15:5-Reserved
4:0NID of lane N. Value can be anywhere between 0 and 31. The default value N is set to the lane number. For interfaces using more than 8 lanes and hence multiple JESD204C cores, this register should be programmed to ensure each lane has the correct identifier.

1 This is a Per Lane Register.

STAT_RX_ERROR_CNT0 1​

BitsDefault ValueDescription
31:16-CRC error counter.
15:8-64B66B Multiblock alignment error counter.
7:0-64B66B Sync Header alignment error counter.

1 This is a Per Lane Register. The counts are cumulative and are cleared on read or reset. The counts should be cleared with a register read when a link has been successfully established.

STAT_RX_ERROR_CNT1 1​

BitsDefault ValueDescription
31:16-64B66B FEC uncorrected errors counter.
15:0-64B66B FEC corrected errors counter.

1 This is a Per Lane Register.

BitsDefault ValueDescription
31:0-Link Error Count
Count of total received link errors (per lane) when Link Error Counters is Enabled.
Errors counted are Disparity or Not In Table errors indicated by the lane.
The error counter can be reset by disabling and re-enabling the Link Error Counters Enable, bit 19 in the CTRL_8B10B_CFG register.

1 This is a Per Lane Register.

STAT_TEST_ERR_CNT 1​

BitsDefault ValueDescription
31:0-Test Mode Error Count
Count of Errors received in Data link Layer test modes.
Test Mode = 001 (Continuous K28.5): counts any non K28.5 characters received
Test Mode = 010 (Continuous ILA): counts any unexpected characters received
This count resets to zero on transition to an active test mode and retains any count value on transition out of an active test mode.

1 This is a Per Lane Register.

STAT_TEST_ILA_CNT 1​

BitsDefault ValueDescription
31:0-Test Mode ILA Count
Count of total ILA Sequences received when Test Mode = 010 (Continuous ILA)
This count resets to zero on transition to Test Mode = 010, and retains any count value on transition out of test mode.

1 This is a Per Lane Register.

STAT_TEST_MF_CNT 1​

BitsDefault ValueDescription
31:0-Test Mode Multiframe Count
Count of total ILA Multiframes received when Test Mode = 010 (Continuous ILA)
This count resets to zero on transition to Test Mode = 010 and retains any count value on transition out of test mode.

1 This is a Per Lane Register.

CTRL_RX_ILA_CFG0 1​

BitsDefault ValueDescription
31:11-Reserved
10:8-JESDV (JESD204 version):
000 = JESD204A
001 = JESD204B
010 = JESD204C
7:3-Reserved
2:0-SUBCLASS:
000 = Subclass0
001 = Subclass1
010 = Subclass2

1 This is a Per Lane Register.

CTRL_RX_ILA_CFG1 1​

BitsDefault ValueDescription
31:8-Reserved
7:0-F (Octets per Frame). Binary value minus 1.

1 This is a Per Lane Register.

CTRL_RX_ILA_CFG2 1​

BitsDefault ValueDescription
31:5-Reserved
4:0-K (Frames per Multiframe). Binary value minus 1.

1 This is a Per Lane Register.

CTRL_RX_ILA_CFG3 1​

BitsDefault ValueDescription
31:29-Reserved
28:24-L (Lanes per Link). Binary value minus 1.
23:21-Reserved
20:160x0LID (Lane ID). Binary value.
15:12-Reserved
11:80x0BID (Bank ID). Binary value.
7:00x0DID (Device ID). Binary value.

1 This is a Per Lane Register.

CTRL_RX_ILA_CFG4 1​

BitsDefault ValueDescription
31:26-Reserved
25:24-CS (Control bits per Sample). Binary value.
23:21-Reserved
20:16-N' (Total bits per Sample). Binary value minus 1.
15:13-Reserved
12:8-N (Converter Resolution). Binary value minus 1.
7:0-M (Converters per Device). Binary value minus 1.

1 This is a Per Lane Register.

CTRL_RX_ILA_CFG5 1​

BitsDefault ValueDescription
31:29-Reserved
28:240x0CF (Control Words per Frame). Binary value.
23:17-Reserved
160HD (High Density format)
15:13-Reserved
12:80x0S (Samples per Converter per Frame). Binary value minus 1.
0-SCR (Scrambling Enable) [RX only, not writeable for TX]
1 = enabled

1 This is a Per Lane Register.

CTRL_RX_ILA_CFG6 1​

BitsDefault ValueDescription
31:17-Reserved
160ADJDIR (Adjust Direction) [Subclass 2 Only]. Binary value.
15:9-Reserved
80PHADJ (Phase Adjust Request) [Subclass 2 Only]. Binary value.
7:4-Reserved
3:00x0ADJCNT (Phase Adjust Count) [Subclass 2 Only]. Binary value.
RX: captured configuration data from the ILA sequence (per lane).
TX: Sets the values to be transmitted in the ILA sequence for all lanes.

1 This is a Per Lane Register.

CTRL_RX_ILA_CFG7 1​

BitsDefault ValueDescription
31:24-Reserved
23:160x0FCHK (Checksum) [RX only, not writeable for TX]. Binary value.
15:80x0RES2 (Reserved Field 2)
7:00x0RES1 (Reserved Field 1)

1 This is a Per Lane Register.

CTRL_TX_GT 1​

BitsDefault ValueDescription
31:5-Reserved
40TXINHIBIT
Set High to inhibit transmission of TX data
30TXELECIDLE
Set High to force idle signal on transmitter output
2:10x0TXPD
TX power down
00TXPOLARITY
Set High to invert the polarity of the outgoing TX data

1 This is a Per Lane Register for Versal adaptive SoCs only.

CTRL_RX_GT 1​

BitsDefault ValueDescription
31:3-Reserved
2:10x0RXPD
RX power down
00RXPOLARITY
Set High to invert the polarity of the incoming RX data.

1 This is a Per Lane Register for Versal adaptive SoCs only.

CTRL_TX_VERSAL_GTY/GTYP 1​

BitsDefault ValueDescription
31:15–Reserved
14:100x0TXPOSTCURSOR
Transmitter post-cursor pre-emphasis control
9:50x0TXPRECURSOR
Transmitter pre-cursor pre-emphasis control
4:00x18TXDIFCFTRL
Driver swing control

1 This is a Per Lane Register for Versal adaptive SoCs only.

CTRL_TX_VERSAL_GTM 1​

BitsDefault ValueDescription
31–Reserved
30:250x0TXPOSTCURSOR
Transmitter post-cursor pre-emphasis control
24:190x0TXPRECURSOR3
Transmitter pre-cursor3 pre-emphasis control
18:130x0TXPRECURSOR2
Transmitter pre-cursor2 pre-emphasis control
12:70x0TXPRECURSOR
Transmitter pre-cursor pre-emphasis control
6:00x0TXMAINCURSOR
Driver swing control

1 This is a Per Lane Register for GTM Versal adaptive SoCs only.