Visible to Intel only — GUID: ncb1486507554268
Ixiasoft
Visible to Intel only — GUID: ncb1486507554268
Ixiasoft
6.16.1. Using PRBS Data Pattern Generator and Checker
The PRBS generator and checker are shared between the Standard and Enhanced datapaths through the PCS. Therefore, they have only one set of control signals and registers. The data lines from the various PCSs and shared PRBS generator are MUXed before they are sent to the PMA. When the PRBS generator is enabled, the data on the PRBS data lines is selected to be sent to the PMA. Either the data from the PCS or the data generated from the PRBS generator can be sent to the PMA at any time.
The PRBS generator and checker can be configured for two widths of the PCS-PMA interface: 10 bits and 64 bits. PRBS9 is available in both 10-bit and 64-bit PCS-PMA widths. All other PRBS patterns are available in 64-bit PCS-PMA width only. The PRBS generator and checker patterns can only be used when the PCS-PMA interface width is configured to 10 bits or 64 bits. For any other PCS-PMA width, to ensure the correct clocks are provided to the PRBS blocks you must first reconfigure the width to either 10 or 64 bits before using the PRBS generator and checker. For example, when the transceiver is configured to a 20-bit PCS/PMA interface, you must first reconfigure the PCS-PMA width to 10 bits before setting up the PRBS generator and checker. The PRBS setup does not automatically change the PCS/PMA width.
The 10-bit PCS-PMA width for PRBS9 is available for lower frequency testing. You can configure PRBS9 in either 10-bit or 64-bit width, based on the data rate. The FPGA fabric-PCS interface must run in the recommended speed range of the FPGA core. Therefore, you must configure PRBS9 in one of the two bit width modes, so that the FPGA fabric-PCS interface parallel clock runs in this operating range.
Examples:
- If you want to use PRBS9 and the data rate is 2.5 Gbps, you can use the PRBS9 in 10-bit mode (PCS-PMA width = 10). In this case, the parallel clock frequency = Data rate / PCS-PMA width = 2500 Mbps/10 = 250 MHz.
- If you want to use PRBS9 and the data rate is 6.4 Gbps, you can use the PRBS9 in 64-bit mode (PCS-PMA width = 64). In this case, the parallel clock frequency = Data rate / PCS-PMA width = 6400 Mbps/64 = 100 MHz.
- If you want to use PRBS9 and the data rate is 12.5 Gbps, you can use the PRBS9 in 64 bit mode (PCS-PMA width = 64). In this case, the parallel clock frequency = Data rate / PCS-PMA width = 12500 Mbps/64 = 195.3125 MHz.
Pattern | Polynomial | 64-Bit | 10-Bit |
---|---|---|---|
PRBS7 | G(x) = 1+ x6 + x7 | X | |
PRBS9 | G(x) = 1+ x5 + x9 | X | X |
PRBS15 | G(x) = 1+ x14 + x15 | X | |
PRBS23 | G(x) = 1+ x18 + x23 | X | |
PRBS31 | G(x) = 1+ x28 + x31 | X |
The PRBS checker has the following control and status signals available to the FPGA fabric:
- rx_prbs_done—Indicates the PRBS sequence has completed one full cycle. It stays high until you reset it with rx_prbs_err_clr.
- rx_prbs_err—Goes high if an error occurs. This signal is pulse-extended to allow you to capture it in the RX FPGA CLK domain.
- rx_prbs_err_clr—Used to reset the rx_prbs_err signal.
Enable the PRBS checker control and status ports through the Native PHY IP Parameter Editor in the Quartus Prime software.
Use the PRBS soft accumulators to count the number of accumulated bits and errors when the hard PRBS blocks are used. For more information about using the accumulators and reading the error values, refer to the PRBS Soft Accumulators section.
Description | Reconfiguration Address | Reconfiguration Bits | Value | Attribute Encoding | Attribute Name |
---|---|---|---|---|---|
Select PRBS generator block | 0x006 | [2:0] | 3'b100 | prbs_pat | tx_pma_data_sel |
0x008 | [6:5] | 2'b00 | |||
Enable PRBS 9 in 10-bit mode | 0x006 | [3] | 1'b1 | prbs9_10b | prbs9_dwidth |
Enable PRBS 9 in 64-bit mode | 1'b0 | prbs9_64b | |||
Enable PRBS generator clock | 0x006 | [6] | 1'b1 | prbs_clk_en | prbs_clken |
Disable PRBS generator clock | 1'b0 | prbs_clk_dis | |||
Enable PRBS 7 pattern | 0x007 | [7:4] | 4'b0001 | prbs_7 | prbs_gen_pat |
0x008 | [4] | 1'b0 | |||
Enable PRBS 9 pattern | 0x007 | [7:4] | 4'b0010 | prbs_9 | |
0x008 | [4] | 1'b0 | |||
Enable PRBS 15 pattern | 0x007 | [7:4] | 4'b0100 | prbs_15 | |
0x008 | [4] | 1'b0 | |||
Enable PRBS 23 pattern | 0x007 | [7:4] | 4'b1000 | prbs_23 | |
0x008 | [4] | 1'b0 | |||
enable PRBS 31 pattern | 0x007 | [7:4] | 4'b0000 | prbs_31 | |
0x008 | [4] | 1'b1 | |||
Serializer 64-bit width mode | 0x110 | [2:0] | 3'b011 | sixty_four_bit | ser_mode |
Serializer 10-bit width mode | 3'b100 | ten_bit | |||
Enable xN non bonding | 0x111 | [4:0] | 5'b11000 | xN_non_bonding36 | x1_clock_source_sel |
0x119 | [0] | 1'b0 |
Description | Reconfiguration Address | Reconfiguration Bits | Value | Attribute Encoding | Attribute Name |
---|---|---|---|---|---|
Enable PRBS checker clock | 0x00A | [7] | 1'b1 | prbs_clk_en | prbs_clken |
Disable PRBS checker clock | 1'b0 | prbs_clk_dis | |||
Mask out the initial errors (from error counter threshold to 1023) seen by PRBS checker | 0x00B | [3:2] | 2'b11 | prbsmask1024 | rx_prbs_mask |
Mask out the initial errors (from error counter threshold to 127) seen by PRBS checker | 2'b00 | prbsmask128 | |||
Mask out the initial errors (from error counter threshold to 255) seen by PRBS checker | 2'b01 | prbsmask256 | |||
Mask out the initial errors (from error counter threshold to 511) seen by PRBS checker | 2'b10 | prbsmask512 | |||
Enable PRBS 7 pattern | 0x00B | [7:4] | 4'b0001 | prbs_7 | prbs_ver |
0x00C | [0] | 1'b0 | |||
Enable PRBS 9 pattern | 0x00B | [7:4] | 4'b0010 | prbs_9 | |
0x00C | [0] | 1'b0 | |||
Enable PRBS 15 pattern | 0x00B | [7:4] | 4'b0100 | prbs_15 | |
0x00C | [0] | 1'b0 | |||
Enable PRBS 23 pattern | 0x00B | [7:4] | 4'b1000 | prbs_23 | |
0x00C | [0] | 1'b0 | |||
Enable PRBS 31 pattern | 0x00B | [7:4] | 4'b0000 | prbs_31 | |
0x00C | [0] | 1'b1 | |||
PRBS 9 10-bit | 0x00C | [3] | 1'b1 | prbs9_10b | prbs9_dwidth |
PRBS 9 64-bit | 1'b0 | prbs9_64b | |||
Deserialization factor 10-bit mode | 0x13F | [3:0] | 4'b0001 | 10-bit mode | deser_factor |
Deserialization factor 64-bit mode | 4'b1110 | 64-bit mode |
Section Content
Enabling the PRBS Data Generator in Non Bonded designs
Enabling the PRBS Data Generator in Bonded Designs
Enabling the PRBS Data Checker in Non Bonded design
Enabling the PRBS Checker in bonded designs
Disabling/Enabling PRBS Pattern Inversion
The pattern generators and checkers are supported only for non-bonded channels. If original design is bonded and you would like to use the PRBS generator/checker, you must read and save the value in registers 0x119[0], 0x111[4:0] before changing the x1_clock_source_sel settings to xN_non_bonding (by writing 5'b11000 to 0x119[0], 0x111[4:0]). This changes the design from bonded to non-bonded.
To disable the PRBS generator and restore the design back to original bonded design, you need to restore the original value that was previously saved from registers 0x119[0], 0x111[4:0].