Design Check: LVDS Messages
When you check your design, the Interface Designer applies design rules to your LVDS settings. The following tables show some of the error and warning messages you may encounter and explains how to fix them.
lvds_rule_bidir_tx (error)
| Message | Output enable pin name must be configured in Bidirectional LVDS Tx |
| To fix | If you are using a bidirectional LVDS block, you need to specify the output enable pin name. |
lvds_rule_clkout_mode (error)
| Message | Serial clock name must be configured in clock output mode |
| To fix | When you are using the LVDS serializer (serialization width greater than 1), you need to specify the serial clock pin name. |
| Message | Parallel clock name must be configured in clock output mode |
| To fix | When you are using the LVDS serializer (serialization width greater than 1), you need to specify the parallel clock pin name. |
| Message | Clock output mode is not supported with serialization width 1 |
| To fix | When you set the serialization width to 1, you are bypassing the serializer and using the block as a simple buffer. As a simple buffer, you cannot use the block as a reference clock output. Change the serialization width. |
| Message | Clock output mode is not supported with serialization disabled |
| To fix | If you turn off Enable Serialization, you are bypassing the serializer and using the block as a simple buffer. As a simple buffer, you cannot use the block as a reference clock output. Turn on Enable Serialization and set the serialization width. |
lvds_rule_deserial_rate (error)
| Message | Half rate deserialization only allowed with even deserialization width |
| To fix | When you turn on Enable Half Rate Serialization, you can only use an even number for the deserialization width. Change the width to an even number or turn the option off. |
lvds_rule_output_mode (error)
| Message | Instance of LVDS Tx has invalid configuration |
| To fix | The block settings are not correct. It might be best to remove the block and start over :) |
| Message | Output name must be configured in data output mode |
| To fix | Specify a valid pin name. |
| Message | Parallel clock name must be configured in data output mode |
| To fix | When you are using the LVDS serializer (serialization width greater than 1), you need to specify the parallel clock pin name. |
| Message | Serial clock name must be configured in data output mode |
| To fix | When you are using the LVDS serializer (serialization width greater than 1), you need to specify the serial clock pin name. |
lvds_rule_resource (error)
| Message | Resource name is empty Resource <string> is not a valid LVDS
device instance |
| To fix | You need to choose a valid resource. |
lvds_rule_resource_excluded (error)
| Message | Resource <resource> is excluded in Package Planner. Please use another resource |
| To fix | The pins for the affected resource have been excluded in the Package Planner, and cannot be assigned. Remove the excluded setting in the Package Planner or choose another resource. |
lvds_rule_usage (error)
| Message | Resource <res name> was assigned multiple times |
| To fix | You cannot assign the same resource to more than one block type. Change the resource to a different one. |
lvds_rule_rx_alt_conn (error)
| Message | Connection type <type> is not supported by the resource |
| To fix | If you want to use the alternate funciton of an LVDS block, you need to choose a resource that supports it. You can filter for resources by alternate function in the Resource Assigner. |
| Message | The resource only supports normal connection type |
| To fix | You need to choose the normal connection type or assign a different resource that supports the connection type you want to use. You can filter for resources by alternate function in the Resource Assigner. |
lvds_rule_alt_conn (warning)
| Message | Connection type <type> must be used by valid PLL |
| To fix | The LVDS block is connected to a PLL clock input but is the resource you assigned does not support the pll_clkin alternate function. Choose a different resource that supports it. You can filter resources by alternate function in the Resource Assigner. |
| Message | Connection type <type> cannot be used on an unbonded resource |
| To fix | You get this error if the resource you choose is not available in the FPGA/package combination you are using. Choose another resource. |
| Message | pll_clkin connection to PLL clock source not being used in <instance> |
| To fix | The LVDS block is set to be a PLL reference clock (pll_clkin connection type) but the PLL is not configured to use it. Make sure that the clock you are choosing in the PLL is associated with this GPIO's resource. |
| Message | pll_clkin connection to PLL clock source but none of the external clock source in PLL <instance> is selected |
| To fix | The LVDS block is set to be a PLL reference clock (pll_clkin connection type) but the PLL is not configured to use it. In the PLL block, choose external or dynamic as the Clock Source and make sure that the clock you are choosing is associated with this GPIO's resource. |
| Message | pll_clkin connection to PLL clock source but PLL Clock source on <instance> is set to core |
| To fix | The LVDS block is set to be a PLL reference clock (pll_clkin connection type) but the PLL is not configured to use it. In the PLL block, choose external or dynamic as the Clock Source and make sure that the clock you are choosing is associated with this GPIO's resource. |
| Message | pll_extfb connection to PLL external feedback pin but PLL feedback on <inst> is not set to default |
| To fix | The LVDS block is set to be external feedback for the PLL (pll_extfb connection type) but the PLL is not configured to use it. In the PLL Clock Calculator, choose External as the Feedback Mode. |
lvds_rule_rx_clock (error)
| Message | Serial and parallel clocks cannot be the same clock |
| To fix | You cannot use the same clock for both the serial (FASTCLK) and parallel (SLOWCLK) clocks. |
| Message | Serial clock name is not a PLL output clock |
| To fix | Use a PLL output clock as the serial (FASTCLK) clock. |
| Message | Parallel clock name is not a PLL output clock |
| To fix | Use a PLL output as the parallel (SLOWCLK) clock. |
| Message | Serial and parallel clocks are not from the same PLL instance |
| To fix | You need to use the same PLL to generate both clocks. |
| Message | Invalid phase shift difference: <phase shift difference> = Serial: <serial clk shifted time> - Parallel: <parallel clk shifted time> (max=<max shift difference allowed>, min=<min shift difference allowed>) |
| To fix | Adjust the phase shift for the serial clock and parallel clock to ensure that the phase-shifted time difference falls within the range of 45 to 135 degrees, relative to the phase-shifted time of the serial clock. |
| Message | Serial clock frequency has to be <float> times faster than parallel clock |
| To fix | Make sure that the PLL output clock frequencies are set correctly.
Half rate calculation—serial clock frequency =
parallel clock frequency * (serialization / 2) Full rate
calculation—serial clock frequency = parallel clock *
serialization |
| Message | Invalid phase shift difference: {phase shift difference} = Serial:
{serial clk shifted time} - Parallel: {parallel clk shifted time} (max={max
shift difference allowed}, min={min shift difference allowed) Example:
Invalid phase shift difference: 0.0000 ps = Serial: 400.0000 ps =
Parallel: 400.0000 ps (max=600.0000 ps, min = 200.0000
ps) |
| To fix |
Adjust the phase shift for the serial clock and parallel clock to ensure that the phase-shifted time difference falls within the specified range. |
lvds_rule_rx_clock_region (error)
| Message | Serial and Parallel clocks generated by PLL have to be driven to the same clock network. <Serial|Parallel> clock <name> was generated by PLL output clock 4 that connects to regional clock network |
| To fix | In Ti35, Ti60 FPGAs, the PLL's output clock 4 can only drive the regional clock network. You should use the other clock outputs for the serial and parallel clocks. |
lvds_rule_rx_config (error)
| Message | Input name must be configured |
| To fix | Specify a valid pin name. |
| Message | Serial clock name must be configured |
| To fix | When you are using the LVDS deserializer (deserialization width greater than 1), you need to specify the serial clock pin name. |
| Message | Parallel clock name must be configured |
| To fix | When you are using the LVDS deserializer (deserialization width greater than 1), you need to specify the parallel clock pin name. |
lvds_rule_rx_distance (warning)
| Message | These HSIO GPIO must be placed at least 1 pair away from LVDS <name> in order to avoid noise coupling from GPIO to LVDS: <violated list> |
| To fix | When using HSIO pins as GPIO, make sure to leave at least 1 pair of unassigned HSIO pins between any GPIO and HSIO used as LVDS RX in the same bank. This separation reduces noise. |
lvds_rule_rx_dpa (error)
| Message | Half-rate deserialization is not supported with DPA delay mode |
| To fix | You can only use full-rate serialization with DPA mode. Turn off the Enable Half Rate Deserialization option. |
lvds_rule_rx_dpa_es_device (error)
| Message | DPA delay mode is not supported in ES device |
| To fix | The ES FPGA does not support DPA. |
lvds_rule_rx_dpa_data_rate (info)
| Message |
DPA usage on data rate < 800Mbps is not significant. DPA might not find an optimum step to lock, dis-enable DPA and assume DPA has locked when DLY_DBG stepped on 0 or 63. Refer to AN 044 for more info. |
| To fix | Data rates below 800 Mbps can result in a rolloff or overflow in the value of DLY_DBG, which in turn can cause a jump directly from 0 to 63, or 63 to 0. Such a rolloff invalidates the DPA operation. Refer to "Calibrating with Dynamic Phase Alignment (DPA) (Titanium/Topaz only)" in AN 044: Aligning LVDS Clock and Data. |
lvds_rule_rx_dpa_serial (error)
| Message | DPA delay mode is not supported with deserialization disabled |
| To fix | You cannot use dynamic phase alignment in bypass mode. |
| Message | DPA delay mode is not supported with deserialization width less than 3 |
| To fix | You cannot use dynamic phase alignment with x1 or x2 modes. |
lvds_rule_rx_empty_pins (error)
| Message | Empty pin names found: <list> |
| To fix | You need to specify the pin names listed in the message. |
lvds_rule_rx_fifo (error)
| Message | Clock Crossing FIFO is not supported with deserialization width <1/2> |
| To fix | The Clock Crossing FIFO is only available for deserialization widths > 2. Disable the Clock Crossing FIFO or change the serialization value. |
| Message | Clock Crossing FIFO is only supported with deserialization enabled |
| To fix | The Clock Crossing FIFO is only available for deserialization widths > 2. Disable the Clock Crossing FIFO or change the serialization value. |
lvds_rule_rx_param (error)
| Message | Invalid parameters configuration: <list> |
| To fix | One of the parameters you set was incorrect. Review any other errors for details. |
lvds_rule_rx_pll_refclk (error)
| Message | Serial clock name is not a PLL output clock |
| To fix | Use a PLL output clock as the serial (FASTCLK) clock. |
| Message | Parallel clock name is not a PLL output clock |
| To fix | Use a PLL output as the parallel (SLOWCLK) clock. |
lvds_rule_rx_pll_refclk (warning)
| Message | Serial clock is expected to be from the following PLL instance: <resource> |
| To fix | Only a specific PLL instance can drive the LVDS RX clocks. Change the PLL to use that resource. See PLL Requirements for Serial and Parallel Clocks. |
| Message | PLL driving the serial clock should have its reference clock from an LVDS in pll_clkin connection type |
| To fix | The PLL's reference clock needs to be driven by a specific resource. Create an LVDS RX block and set the Connection Type to pll_clkin. Then use that block as the PLL reference clock. |
| Message | Parallel clock is expected to be from the following PLL instance: {} |
| To fix | Only a specific PLL instance can drive the LVDS RX clocks. Change the PLL to use that resource. See PLL Requirements for Serial and Parallel Clocks. |
| Message | PLL driving the parallel clock should have its reference clock from an LVDS in pll_clkin connection type |
| To fix | The PLL's reference clock needs to be driven by a specific resource. Create an LVDS RX block and set the Connection Type to pll_clkin. Then use that block as the PLL reference clock. |
lvds_rule_rx_serial_width (error)
| Message | Unsupported deserializaion width: 9 |
| To fix | The LVDS block does not support a deserialization wiudth of 9. Choose another width. |
lvds_rule_tx_width_1or2 (error)
| Message | Parallel clock name is required with serialization width
2 Serialization width <1/2> only requires the parallel clock name
to be specified |
| To fix | When you are using the LVDS serializer (serialization width greater than 1), you need to specify the parallel clock pin name. |
lvds_rule_rx_width_1or2 (error)
| Message | Parallel clock name is required with deserialization width
2 Deserialization width <1/2> only requires the parallel clock
name to be specified |
| To fix | When you are using the LVDS deserializer (serialization width greater than 1), you need to specify the parallel clock pin name. |
lvds_rule_serial_rate (error)
| Message | Half rate serialization only allowed with even serialization width |
| To fix | When you turn on Enable Half Rate Serialization, you can only use an even number for the serialization width. Change the width to an even number or turn the option off. |
lvds_rule_tx_clock (error)
| Message | Serial and parallel clocks cannot be the same clock |
| To fix | You cannot use the same clock for both the serial (FASTCLK) and parallel (SLOWCLK) clocks. |
| Message | Serial clock name is not a PLL output clock |
| To fix | Use a PLL output clock as the serial (FASTCLK) clock. |
| Message | Parallel clock name is not a PLL output clock |
| To fix | Use a PLL output as the parallel (SLOWCLK) clock. |
| Message | Serial and parallel clocks are not from the same PLL instance |
| To fix | You need to use the same PLL to generate both clocks. |
| Message | Invalid phase shift difference: <phase shift difference> = Serial: <serial clk shifted time> - Parallel: <parallel clk shifted time> (max=<max shift difference allowed>, min=<min shift difference allowed>) |
| To fix | Adjust the phase shift for the serial clock and parallel clock to ensure that the phase-shifted time difference falls within the range of 45 to 135 degrees, relative to the phase-shifted time of the serial clock. |
| Message | Serial clock frequency has to be <float> times faster than parallel clock |
| To fix | Make sure that the PLL output clock frequencies are set correctly.
Half rate calculation—serial clock
frequency = parallel clock frequency * (serialization /
2) Full rate calculation—serial clock frequency = parallel clock *
serialization |
| Message | Invalid phase shift difference: {phase shift difference} = Serial:
{serial clk shifted time} - Parallel: {parallel clk shifted time} (max={max
shift difference allowed}, min={min shift difference allowed) Example:
Invalid phase shift difference: 0.0000 ps = Serial: 400.0000 ps =
Parallel: 400.0000 ps (max=600.0000 ps, min = 200.0000
ps) |
| To fix |
Adjust the phase shift for the serial clock and parallel clock to ensure that the phase-shifted time difference falls within the specified range. |
lvds_rule_tx_clock_region (error)
| Message | Serial and Parallel clocks generated by PLL have to be driven to the same clock network. <Serial | Parallel> clock <name> was generated by PLL output clock 4 that connects to regional clock network |
| To fix | In Ti35, Ti60 FPGAs, the PLL's output clock 4 can only drive the regional clock network. You should use the other clock outputs for the serial and parallel clocks. |
lvds_rule_tx_distance (error)
| Message | These HSIO GPIO must be placed at least 1 pair away from LVDS <name> in order to avoid noise coupling from GPIO to LVDS: <violated list> |
| To fix | When using HSIO pins as GPIO, make sure to leave at least 1 pair of unassigned HSIO pins between any GPIO and HSIO used as LVDS TX in the same bank. This separation reduces noise. |
lvds_rule_tx_empty_pins (error)
| Message | Empty pin names found: <list> |
| To fix | You need to specify the pin names listed in the message. |
lvds_rule_tx_param (error)
| Message | Invalid parameters configuration: <list> |
| To fix | One of the parameters you set was incorrect. Review any other errors for details. |
lvds_rule_tx_serial_width (error)
| Message | Unsupported serializaion width: 9 |
| To fix | The LVDS block does not support a serialization wiudth of 9. Choose another width. |
lvds_rule_tx_vref (error)
| Message | This resource is reserved as vref for bank <name>. Us a different resource to configure LVDS Tx custom output differential type |
| To fix | Some resources can be used as the VREF for an I/O standard. If you are using an I/O standard that uses a VREF pin, you must use this resource as a VREF. Choose another resource for the LVDS function. |
| Message | GPIO <name> has to be configured as vref input mode to support LVDS
Tx custom output differential type GPIO <name> has to be configured
as vref input to support LVDS Tx custom output differential
type |
| To fix | If you are using an I/O standard that uses a VREF pin, you must use this resource as a VREF. Configure the GPIO as an input and choose vref as the Connection Type. |
| Message | LVDS Tx custom output differential type cannot be used due to unbonded
vref resource on the same bank <bank> LVDS Tx custom output
differential type cannot be used due to vref resource not bonded
out |
| To fix | If a VREF pin is not available in the I/O bank (e.g., it is not in the FPGA/package you chose), you cannot use an I/O standard that requires it. Instead choose a different I/O standard or a different resource. |
lvds_rule_clkout_ser_disabled (error)
| Message | Output clock name must be configured in clock output mode with serialization disabled |
| To fix | Specify the output clock name. |
lvds_rule_rx_pll_feedback (warning)
| Message | PLL <pll_slow_inst_name> driving the LVDS Rx clock sources should have its feedback mode set to core for optimized performance |
| To fix | Set feedback mode of the PLL to core for better performance. |