| Module Select | Offset | Register Name | Data Width (bit) | Default Value | Access Type | Description |
|---|---|---|---|---|---|---|
| 0x0 | 0x02 | LUT Bank Switch | 2 | 0 | RW | Bit-1 to set LUT bank switch mode (0=fabric control, 1=register
control). In fabric control mode, the LUT bank select input port switches between PING PONG memories. In register control mode, bit-0 selects PING PONG memories (0= PONG, 1=PING).
This register has no effect on LUT bank switching of NLF1/NLF2, when NLF1/NLF2 PP_LUT_MODE = Delay line control. |
| 0x0 | 0x03 | LUT Write Broadcast | 1 | 0 | RW | When bit-0 is enabled, LUT writes are broadcast to both NLFs.
This feature is available in both LUT interface modes. The typical use case of broadcast is to write same LUT values to both NLFs for three-phase or four-phase designs. |
| 0x0 | 0x04 | Overflow Status | 8 | 0 | RO |
|
| 0x0 | 0x05 | Clear Overflow Status | 2 | 0 | WO | When bit-0 is enabled, NLF1 overflow status is cleared. When bit-1 is enabled, NLF2 overflow status is cleared. This register is auto-cleared after one clock cycle of |
| 0x0 | 0x06 | Cascade Output Bit select | 1 | 0 | RW | Selects output bits. This is applicable only for the double
grid configurations with NUM_PHASES = 1 or 2 and NUM_NLFs = 2.
Used to increase the dynamic range of output. |
| 0x0 | 0x08 | NLF IP Version | 12 | 0x102 | RO |
|
| 0x0 | 0x09 | HW Configuration | 12 | - | RO |
|
| 0x0 | 0x10 | Programmable Signal Delay | 5 | 0 | RW | The programmable signal delay to NLF2 with respect to NLF1.
This is applicable only for double grid configurations with NUM_PHASES = 1 or 2 and
NUM_NLFs = 2. Depending on the column/horizontal distance (signal delay) between the two grids, the NLF2 input signal has to be delayed. Use this register to set that delay. |
| 0x0 | 0x11 | Programmable Index Delay | 5 | 0 | RW | The programmable index delay to NLF2 with respect to NLF1.
This is applicable only for double grid configurations with NUM_PHASES = 1 or 2 and
NUM_NLFs = 2. Depending on the row/vertical distance (index delay) between the two grids, the NLF2 input index has to be delayed. Use this register to set that delay. |
| 0x0 | 0x41 | NLF1 LUT Target | 20 | 0 | RW | Selects the target LUT in NLF1. This is applicable only when
the LUT access is through AXI4-Lite
(LUT_AXIS_EN=0).
Each LUT has 256 values, which are addressed using LUT address (7:0). Program this register to select the LUT and the LUT address for the selected LUT to write LUT data to that location using the NLF1 LUT data register. Internally two LUT addresses are maintained, one
(
The read back of this register gives the NLF1 LUT target with current |
| 0x0 | 0x42 | NLF1 LUT Data | 32 | 0 | RW | Data input to LUT which is written into the current LUT address
(NLF1_LUT_Addr_wr) location of target LUT of
NLF1. This is applicable only when LUT access is through AXI4-Lite (LUT_AXIS_EN=0).
Auto-increment of the LUT address (NLF1_LUT_Addr_wr) after each LUT data write avoids writing the LUT target register for each LUT data write. After writing the LUT target once, you can write 256 LUT values. The register read gives LUT data of current LUT address ( Auto-increment of the LUT address ( If you want to write/read LUT data from a particular address of a particular LUT of NLF1, write the NLF1 LUT target register first, then write/read the NLF1 LUT data register. |
| 0x0 | 0x81 | NLF2 LUT Target | 20 | 0 | RW | Selects the target LUT in NLF2. This is applicable only when
LUT access is through AXI4-Lite
(LUT_AXIS_EN=0).
Each LUT has 256 values, which are addressed with LUT address(7:0). Program this register to select the LUT and the LUT address for the selected LUT to write the LUT data to that location using NLF2 LUT data register. Internally two LUT addresses are maintained, one
(
The read back of this register gives the NLF2 LUT
target with current |
| 0x0 | 0x82 | NLF2 LUT Data | 32 | 0 | RW | Data input to LUT which is written into the current LUT address
(NLF2_LUT_Addr_wr) of the target LUT in NLF2.
This is applicable only when LUT access is through AXI4-Lite (LUT_AXIS_EN=0).
Auto-increment of LUT address ( Reading this register gives the LUT
data of the current LUT address ( Auto-increment of LUT address ( If you want to write/read LUT data from a particular address of a particular LUT of NLF2, first write the NLF2 LUT target register, then write/read NLF2 LUT data register. |
| 0x1 | 0x01 | NLF1 UNIT_EN | 16 | 0 | RW | Enables each NL unit of NLF1.
|
| 0x1 | 0x02 | NLF1 PP_LUT_MODE | 1 | 0 | RW | Sets the PING PONG LUT switch mode for NLF1. This is broadcast
to all NL units of NLF1.
In direct fabric control, the PING PONG switching is done
either using the In delay line control,
the switching is done using |
| 0x1 | 0x03 to 0x12 | NLF1 SIGNAL_SELECT | 16 | 0 | RW | Selects signal from delay line for processing for each NL unit
of NLF1. One register per unit.
For the one-phase design, the valid values for the signal delay line tap are 3 to 18. For the two-phase design, the valid values for the signal delay line tap are 2 to 18 (includes one sample delay from phase0 to phase1 of two-phase input signal). For the three-phase design, the valid values for signal delay line tap are 1 to 18 (includes two sample delay from phase0 to phase2 of three phase input signal). For the four-phase design, the valid values for the signal delay line tap are 0 to 18 (includes three sample delay from phase0 to phase3 of four phase input signal). |
| 0x1 | 0x23 to 0x32 | NLF1 INDEX_SELECT | 32 | 0 | RW | Selects index from the delay line for processing for each NL
unit of NLF1. One register per unit.
For the one-phase design, the valid values for the index delay line tap are 3 to 18. For the two-phase design, the valid values for the index delay line tap are 2 to 18 (includes 1 sample delay from phase0 to phase1 of two phase input signal). For the three-phase design, the valid values for the index delay line tap are 1 to 18 (includes 2 sample delay from phase0 to phase2 of three phase input signal). For the four-phase design, the valid values for the index delay line tap are 0 to 18 (includes 3 sample delay from phase0 to phase3 of four phase input signal). |
| 0x1 | 0x43 | NLF1 DL_OUT_EN | 1 | 0 | RW | Enables internal delay line outputs to fabric. |
| 0x1 | 0x44 | NLF1 PRE_ADD_EN | 16 | 0 | RW | Enables pre-addition for each NL unit of NLF1. One bit per
unit. If pre_addition is enabled, the output of the unit = signal X (LUT0[LUT0_INDEX] + LUT1[LUT1_INDEX]) If pre_addition is disabled, the output of the unit = signal X (LUT0[LUT0_INDEX] ) |
| 0x1 | 0x45 | NLF1 SHIFT_MODE | 2 | 0 | RW | Sets NLF1 delay line shift mode. The shift mode depends on the NUM_PHASES. SHIFT_MODE must be NUM_PHASES-1. |
| 0x1 | 0x46 | NLF1 OUT_SCALE | 4 | 0 | RW | NLF1 output scaling factor applied before saturation and rounding. NLF1 output is left shifted by the OUT_SCALE number of bits. Valid range of values is 0 to 12. |
| 0x1 | 0x47 | NLF1 FABRIC_INDEX_SELECT | 1 | 0 | RW | Selects the fabric as the index source instead of the absolute
value of the signal for NLF1. If this register is set, the index
bits of |
| 0x1 | 0x48 to 0x49 | NLF1 SIGNAL_TAP_SELECT | 5 | 0 | RW | Selects NLF1 signal delay line tap for fabric output. One
register for each phase.
This register is active when DL_OUT_EN is enabled. |
| 0x1 | 0x4A to 0x4B | NLF1 INDEX_TAP_SELECT | 5 | 0 | RW | Selects NLF1 index delay line tap for fabric output. One
register for each phase.
This register is active when NLF1 DL_OUT_EN is enabled. |
| 0x2 | 0x01 | NLF2 UNIT_EN | 16 | 0 | RW | Enables each NL unit of NLF2.
|
| 0x2 | 0x02 | NLF2 PP_LUT_MODE | 1 | 0 | RW | Sets the PING PONG LUT switch mode for NLF2. This is broadcast
to all NL units of NLF2.
The PING PONG switching is done either using In delay line control, switching is done using |
| 0x2 | 0x03 to 0x12 | NLF2 SIGNAL_SELECT | 16 | 0 | RW | Selects signal from delay line for processing for each NL unit
of NLF2. One register per unit.
Valid range of values of signal delay line tap are 0 to 18 as explained in the NLF1 SIGNAL SELECT register description. |
| 0x2 | 0x23 to 0x32 | NLF2 INDEX_SELECT | 32 | 0 | RW | Selects index from delay line for processing for each NL unit
of NLF2. One register per unit.
Valid range of values of index delay line tap are 0 to 18 as explained in the NLF1 INDEX SELECT register description. |
| 0x2 | 0x43 | NLF2 DL_OUT_EN | 1 | 0 | RW | Enables NLF2 delay line outputs to fabric. |
| 0x2 | 0x44 | NLF2 PRE_ADD_EN | 16 | 0 | RW | Enables pre-addition for each NL unit. One bit per unit. If pre_addition is enabled, the output of the unit = signal X (LUT0[LUT0_INDEX] + LUT1[LUT1_INDEX]) If pre_addition is disabled, the output of the unit = signal X (LUT0[LUT0_INDEX] ) |
| 0x2 | 0x45 | NLF2 SHIFT_MODE | 2 | 0 | RW | Sets the delay line shift mode for NLF2. The shift mode depends on the NUM_PHASES. SHIFT_MODE must be NUM_PHASES-1. |
| 0x2 | 0x46 | NLF2 OUT_SCALE | 4 | 0 | RW | NLF2 output scaling factor applied before saturation and
rounding. NLF2 output is left shifted by the OUT_SCALE number of bits. Valid range of values is 0 to 12. |
| 0x2 | 0x47 | NLF2 FABRIC_INDEX_SELECT | 1 | 0 | RW | Selects the fabric as the index source instead of the absolute
value of the signal for NLF2. If this register is set, the index bits of s_axis_din_tsuser are used as the fabric index. |
| 0x2 | 0x48 to 0x49 | NLF2 SIGNAL_TAP_SELECT | 5 | 0 | RW | Selects the NLF2 signal delay line tap for fabric output. One
register for each phase. Valid range of values are 0 to 18 as explained in the NLF1
SIGNAL_TAP_SELECT register description. This register is active when NLF2 DL_OUT_EN is enabled. |
| 0x2 | 0x4A to 0x4B | NLF2 INDEX_TAP_SELECT | 5 | 0 | RW | Selects the NLF2 index delay line tap for fabric output. One
register for each phase. Valid range of values are 0 to 18 as explained in the NLF1
INDEX_TAP_SELECT register description. This register is active when NLF2 DL_OUT_EN is enabled. |