8.1. Transmitter Registers
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:2 | Reserved | Reserved | RV | 0x0 |
1 | scr_disable | Setting this bit disables TX scrambler | RW | Compile-time specific |
0 | bit_reversal | This is a compile-time option that you need to set before IP generation. 0 = LSB-first serialization. 1 = MSB-first serialization.
Note: The JESD204C converter device may support either MSB-first serialization or LSB-first serialization.
When bit_reversal = 1, the word aligner reverses TX parallel data bits before transmitting it to the PMA for serialization. For example; in 64-bit mode => D[63:0] is rewired to D[0:63] |
RO | Compile-time specific |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:0 | Reserved | Reserved | RV | 0x0 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:0 | Reserved | Reserved | RV | 0x0 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:0 | Reserved | Reserved | RV | 0x0 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:0 | Reserved | Reserved | RV | 0x0 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:0 | Reserved | Reserved | RV | 0x0 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:0 | Reserved | Reserved | RV | 0x0 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:0 | Reserved | Reserved | RV | 0x0 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:0 | Reserved | Reserved | RV | 0x0 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:0 | Reserved | Reserved | RV | 0x0 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:0 | Reserved | Reserved | RV | 0x0 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:0 | Reserved | Reserved | RV | 0x0 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:0 | Reserved | Reserved | RV | 0x0 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:0 | Reserved | Reserved | RV | 0x0 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:0 | Reserved | Reserved | RV | 0x0 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:0 | Reserved | Reserved | RV | 0x0 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:0 | Reserved | Reserved | RV | 0x0 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:0 | Reserved | Reserved | RV | 0x0 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:16 | Reserved | Reserved | RV | 0x0 |
15:8 | lemc_offset | Upon the detection of the rising edge of SYSREF in continuous mode or single detect mode, the LEMC counter will be reset to the value set in lemc_offset.
LEMC counter operates in link clock domain, therefore the legal value for the counter is from 0 to (E*16)-1.
Note: By default, the rising edge of SYSREF resets the LEMC counter to 0. However, if the system design has a large phase offset between the SYSREF sampled by the converter device and the FPGA, you can virtually shift the SYSREF edges by changing the LEMC offset reset value using this register.
|
RW | Compile-time specific |
7:3 | Reserved | Reserved | RV | 0x0 |
2 | sysref_singledet | This register enables LEMC realignment with a single sample of the rising edge of SYSREF. The bit is auto-cleared by the hardware once SYSREF is sampled. If you require SYSREF to be sampled again (due to link reset or reinitialization), you must set this bit again. This register also has another critical function. The JESD204C IP will never send EoEMB unless at least a SYSREF edge is sampled. This is to prevent race condition between SYSREF being sampled at RX (converter device) and the deterministic timing of EoEMB transmission.
Note:
Intel recommends that you use sysref_singledet with sysref_alwayson even if you want to do SYSREF continuous detection mode. This is because this register is able to indicate whether SYSREF was ever sampled. This register also prevents race condition as mentioned above. Using only SYSREF single detect mode will not be able to detect incorrect SYSREF period.
|
RW1S | 0x1 |
1 | sysref_alwayson | This register enables LEMC realignment at every rising edge of SYSREF. LEMC counter resets when every SYSREF transition from 0 to 1 is detected.
Note: When this bit is set, the SYSREF period will be checked that it never violates internal extended multiblock period and this period can only be n-integer multiplied of (E*32). If the SYSREF period is different from the local extended multiblock period, the IP asserts the sysref_lemc_err (0x60) register and triggers an interrupt.
If you want to change the SYSREF period, this bit should be set to 0 first. After SYSREF clock has stabilized, this bit is set to 1 to sample the rising edges of the new SYSREF. |
RW | 0x0 |
0 | link_reinit | The JESD204C IP reinitializes the TX link by resetting all internal pipestages and status, but not including SYSREF detection information. This bit automatically clears once link reinitialization is entered by hardware.
|
RW1S | 0x0 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:9 | Reserved | Reserved | RV | 0x0 |
8 | tx_gb_overflow_err | Assert when overflow happens on any of the lane’s TX gearbox. | RW1C | 0x0 |
7 | tx_gb_underflow_err | Assert when underflow happens on any of the lane’s TX gearbox. | RW1C | 0x0 |
6 | Reserved | Reserved | RV | 0x0 |
5 | pcfifo_full_err | Detected 1 or more lanes of Phase Compensation FIFO is full unexpectedly when JESD204C link is running.
Note: User MUST reset JESD204C link if this bit is triggered. The transceiver channel, and the JESD204C IP core link reset must be applied.
|
RW1C | 0x0 |
4 | tx_ready_err | Detected 1 or more lanes of tx_ready (from the transceiver) drop when the JESD204C link is running. | RW1C | 0x0 |
3 | cmd_invalid_err | This error bit is applicable only if Command Channel is used in the JESD204C link. This error bit will be asserted if the upstream component deassert the j204c_tx_cmd_valid signal while Link Layer is requesting for command (via j204c_tx_cmd_ready). | RW1C | 0x0 |
2 | frame_data_invalid_err | This error bit is applicable only if you use Intel FPGA transport layer in your design. This error bit will be asserted if the upstream component deasserts j204c_tx_avst_valid signal at the Intel FPGA transport layer Avalon-ST bus. The transport layer expects the upstream device in the system will always send the valid data with zero latency when j204c_tx_avst_ready is asserted by the transport layer. |
RW1C | 0x0 |
1 | dll_data_invalid_err | This error bit will be asserted if the link layer TX detects data invalid on the Avalon-ST bus when data is requested. By design, the JESD204C TX link layer expects the upstream device (JESD204C transport layer) will always send the valid data with zero latency when ready is asserted. |
RW1C | 0x0 |
0 | sysref_lemc_err | When the sysref_ctrl (0x54) sysref_alwayson register is set to 1, the LEMC counter will check whether SYSREF period matches the LEMC counter where it is n-integer multiplier of the (E*32). If SYSREF period does not match the LEMC period, this bit will be asserted. | RW1C | 0x0 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:9 | Reserved | Reserved | RV | 0x0 |
8 | tx_gb_overflow_err_en | TX gearbox overflow error interrupt enable | RW | 0x1 |
7 | tx_gb_underflow_err_en | TX gearbox underflow error interrupt enable | RW | 0x1 |
6 | Reserved | Reserved | RV | 0x0 |
5 | pcfifo_full_err_en | PCFIFO full error interrupt enable | RW | 0x1 |
4 | tx_ready_err_en | Transceiver TX Ready error interrupt enable | RW | 0x1 |
3 | cmd_invalid_err_en | Command invalid error interrupt enable | RW | 0x0 |
2 | frame_data_invalid_err_en | Frame data invalid error interrupt enable | RW | 0x0 |
1 | dll_data_invalid_err_en | Link data invalid error interrupt enable | RW | 0x0 |
0 | sysref_lemc_err_en | SYSREF LEMC error interrupt enable | RW | 0x1 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:9 | Reserved | Reserved | RV | 0x0 |
8 | tx_gb_overflow_err_en_reinit | TX gearbox overflow error reinitialization enable. | RW | 0x0 |
7 | tx_gb_underflow_err_en_reinit | TX gearbox underflow error reinitialization enable. | RW | 0x0 |
6 | Reserved | Reserved | RV | 0x0 |
5 | pcfifo_full_err_en_reinit | PCFIFO full error reinitialization enable.
Note: Link reinitialization sequence does not cover the transceiver reinitialization steps, hence such error will not be recovered via link reinit.
|
RW | 0x0 |
4 | tx_ready_err_en_reinit | Transceiver TX ready error reinitialization enable.
Note: Link reinitialization sequence does not cover transceiver reinitialization steps, hence such error will not be recovered via link reinitialization.
|
RW | 0x0 |
3 | cmd_invalid_err_en_reinit | Command invalid error reinitialization enable | RW | 0x0 |
2 | frame_data_invalid_err_en_reinit | Frame data invalid error reinitialization enable | RW | 0x0 |
1 | dll_data_invalid_err_en_reinit | Link data invalid error reinitialization enable | RW | 0x0 |
0 | sysref_lemc_err_en_reinit | SYSREF LEMC error reinitialization enable | RW | 0x0 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:12 | Reserved | Reserved | RV | 0x0 |
11 | sysref_det_pending | Indicate that SYSREF is yet to be detected. You need to set the sysref_singledet bit to enable link initialization. | ROV | 0x0 |
10 | reinit_in_prog | Indicates that auto or manual link reinitialization is in progress. | ROV | 0x0 |
9:2 | lemc_period | Represent E: the number of multiblock in an extended multiblock. | RO | Compile-time specific |
1:0 | sh_config | Sync header encoding configuration b00: CRC-12 b01: Standalone command channel b10: Reserved b11: Reserved |
RO | Compile-time specific |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:16 | Reserved | Reserved | RV | 0x0 |
15 | lane15_tx_pcfifo_full | TX phase compensation FIFO status full flag for Lane 15 | ROV | 0x0 |
14 | lane14_tx_pcfifo_full | TX phase compensation FIFO status full flag for Lane 14 | ROV | 0x0 |
13 | lane13_tx_pcfifo_full | TX phase compensation FIFO status full flag for Lane 13 | ROV | 0x0 |
12 | lane12_tx_pcfifo_full | TX phase compensation FIFO status full flag for Lane 12 | ROV | 0x0 |
11 | lane11_tx_pcfifo_full | TX phase compensation FIFO status full flag for Lane 11 | ROV | 0x0 |
10 | lane10_tx_pcfifo_full | TX phase compensation FIFO status full flag for Lane 10 | ROV | 0x0 |
9 | lane9_tx_pcfifo_full | TX phase compensation FIFO status full flag for Lane 9 | ROV | 0x0 |
8 | lane8_tx_pcfifo_full | TX phase compensation FIFO status full flag for Lane 8 | ROV | 0x0 |
7 | lane7_tx_pcfifo_full | TX phase compensation FIFO status full flag for Lane 7 | ROV | 0x0 |
6 | lane6_tx_pcfifo_full | TX phase compensation FIFO status full flag for Lane 6 | ROV | 0x0 |
5 | lane5_tx_pcfifo_full | TX phase compensation FIFO status full flag for Lane 5 | ROV | 0x0 |
4 | lane4_tx_pcfifo_full | TX phase compensation FIFO status full flag for Lane 4 | ROV | 0x0 |
3 | lane3_tx_pcfifo_full | TX phase compensation FIFO status full flag for Lane 3 | ROV | 0x0 |
2 | lane2_tx_pcfifo_full | TX phase compensation FIFO status full flag for Lane 2 | ROV | 0x0 |
1 | lane1_tx_pcfifo_full | TX phase compensation FIFO status full flag for Lane 1 | ROV | 0x0 |
0 | lane0_tx_pcfifo_full | TX phase compensation FIFO status full flag for Lane 0 | ROV | 0x0 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:16 | Reserved | Reserved | RV | 0x0 |
15 | lane15_tx_xcvr_ready | TX transceiver ready status flag for Lane 15 | ROV | 0x0 |
14 | lane14_tx_xcvr_ready | TX transceiver ready status flag for Lane 14 | ROV | 0x0 |
13 | lane13_tx_xcvr_ready | TX transceiver ready status flag for Lane 13 | ROV | 0x0 |
12 | lane12_tx_xcvr_ready | TX transceiver ready status flag for Lane 12 | ROV | 0x0 |
11 | lane11_tx_xcvr_ready | TX transceiver ready status flag for Lane 11 | ROV | 0x0 |
10 | lane10_tx_xcvr_ready | TX transceiver ready status flag for Lane 10 | ROV | 0x0 |
9 | lane9_tx_xcvr_ready | TX transceiver ready status flag for Lane 9 | ROV | 0x0 |
8 | lane8_tx_xcvr_ready | TX transceiver ready status flag for Lane 8 | ROV | 0x0 |
7 | lane7_tx_xcvr_ready | TX transceiver ready status flag for Lane 7 | ROV | 0x0 |
6 | lane6_tx_xcvr_ready | TX transceiver ready status flag for Lane 6 | ROV | 0x0 |
5 | lane5_tx_xcvr_ready | TX transceiver ready status flag for Lane 5 | ROV | 0x0 |
4 | lane4_tx_xcvr_ready | TX transceiver ready status flag for Lane 4 | ROV | 0x0 |
3 | lane3_tx_xcvr_ready | TX transceiver ready status flag for Lane 3 | ROV | 0x0 |
2 | lane2_tx_xcvr_ready | TX transceiver ready status flag for Lane 2 | ROV | 0x0 |
1 | lane1_tx_xcvr_ready | TX transceiver ready status flag for Lane 1 | ROV | 0x0 |
0 | lane0_tx_xcvr_ready | TX transceiver ready status flag for Lane 0 | ROV | 0x0 |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:30 | CS | Number of control bits per converter sample. 1-based value. For example, 0=0 bit, 1=1 bit. | RO | Compile-time specific |
29 | HD | High Density format. | RO | Compile-time specific |
28:24 | N | Number of data bits per converter sample. 0-based value. For example, 0=1 bit, 1=2 bits. Note that CSR indexing is different from the parameter indexing. If parameter=`d8, this register field will be `d7. |
RO | Compile-time specific |
23:16 | M | Number of converter per device. 0-based value. For example, 0=1 converter, 1=2 converters.
Note: CSR indexing is different from the parameter indexing. If parameter=`d8, this register field will be `d7.
|
RO | Compile-time specific |
15:8 | F |
Note: CSR indexing is different from the parameter indexing. If parameter=`d8, this register field will be `d7.Number of octets per frame. 0-based value. For example, 0=1 octet, 1=2 octets.
|
RO | Compile-time specific |
7:4 | Reserved | Reserved | RV | 0x0 |
3:0 | L | Number of lanes per link. 0-based value. For example, 0=1 lane, 1=2 lanes.
Note: CSR indexing is different from the parameter indexing. If parameter=`d8, this register field will be `d7.
|
RO | Compile-time specific |
Bit | Name | Description | Attribute | Reset |
---|---|---|---|---|
31:24 | E | Number of multiblock within an extended multiblock. 0-based value. For example, 0=1 multiblock to form extended multiblock, 1=2 multiblock to form an extended multiblock. If (256 Mod F)=1, E must be greater than 1. (The register value should be greater than 0).
Note: CSR indexing is different from the parameter indexing. If parameter=`d8, this register field will be `d7.
|
RO | Compile-time specific |
23:21 | Reserved | Reserved | RV | 0x0 |
20:16 | CF | Number of control words per frame clock per link. 1-based value. I.e 0=0 word, 1=1 word. | RO | Compile-time specific |
15:13 | Reserved | Reserved | RV | 0x0 |
12:8 | S | Number of samples per converter frame cycle. 0-based value. For example, 0=1 sample, 1=2 samples.
Note: CSR indexing is different from the parameter indexing. If parameter=`d8, this register field will be `d7.
|
RO | Compile-time specific |
7:5 | subclass_ver | Device Subclass Version
|
RO | Compile-time specific |
4:0 | NP | Number of data bits+control bits+tail bits per converter sample. 0-based value. For example, 0=1 bit, 1=2 bits.
Note: CSR indexing is different from the parameter indexing. If parameter=`d8, this register field will be `d7.
|
RO | Compile-time specific |