Visible to Intel only — GUID: nik1398706939440
Ixiasoft
Visible to Intel only — GUID: nik1398706939440
Ixiasoft
2.7.8. Native PHY IP Ports for PIPE
Port | Direction | Clock Domain | Description |
---|---|---|---|
Clocks | |||
rx_cdr_refclk0 | In | N/A | The 100/125 MHz input reference clock source for the PHY's TX PLL and RX CDR. |
tx_serial_clk0/tx_serial_clk1 | In | N/A | The high speed serial clock generated by the PLL. Note: For Gen3 x1 ONLY tx_serial_clk1 is used. |
pipe_hclk_in[0] | In | N/A | The 500 MHz clock used for the ASN block. This clock is generated by the PLL, configured for Gen1/Gen2. Note: For Gen3 designs, use from the fPLL that is used for Gen1/Gen2. |
pipe_hclk_out[0] | Out | N/A | The 500 MHz clock output provided to the PHY - MAC interface. The pipe_hclk_out [0] port can be left floating when you connect tx_clkout to the MAC clock input. |
PIPE Input from PHY - MAC Layer | |||
tx_parallel_data[31:0], [15:0], or [7:0] | In | tx_coreclkin |
The TX parallel data driven from the MAC. For Gen1 this can be 8 or 16 bits. For Gen2 this is 16 bits. For Gen3 this is 32 bits. Note: unused_tx_parallel_data should be tied to '0'. Active High. Refer to table Bit Mappings when the Simplified Interface is Disabled for additional details. |
tx_datak[3:0], [1:0], or [0] | In | tx_coreclkin |
The data and control indicator for the transmitted data. For Gen1 or Gen2, when 0, indicates that tx_parallel_data is data, when 1, indicates that tx_parallel_data is control. For Gen3, bit[0] corresponds to tx_parallel_data[7:0], bit[1] corresponds to tx_parallel_data[15:8], and so on. Active High. Refer to table Bit Mappings when the Simplified Interface is Disabled for additional details. |
pipe_tx_sync_hdr[(2N-1):0] 44 | In | tx_coreclkin |
For Gen3, indicates whether the 130-bit block transmitted is a Data or Control Ordered Set Block. The following encodings are defined: 2'b10: Data block 2'b01: Control Ordered Set Block This value is read when pipe_tx_blk_start = 1b'1. Refer to Lane Level Encoding in the PCI Express* Base Specification, Rev. 3.0 for a detailed explanation of data transmission and reception using 128b/130b encoding and decoding. Not used for Gen1 and Gen2 data rates. Active High |
pipe_tx_blk_start[(N-1):0] | In | tx_coreclkin |
For Gen3, specifies the start block byte location for TX data in the 128-bit block data. Used when the interface between the PCS and PHY-MAC (FPGA Core) is 32 bits. Not used for Gen1 and Gen2 data rates. Active High |
pipe_tx_elecidle[(4N-1):0] | In | Asynchronous |
Forces the transmit output to electrical idle. Refer to the Intel® PHY Interface for PCI Express (PIPE) for timing diagrams. Gen1 - Width of signal is 1 bit/lane. Gen2 - Width of signal is 2 bits/lane. For example, if the MAC connected to PIPE Gen2x4 has 1bit/lane, then you can use the following mapping to connect to PIPE: {pipe_tx_elecidle[7:0] = {{2{tx_elecidle_ch3}},{2{tx_elecidle_ch2}},{2{tx_elecidle_ch1}},{2{tx_elecidle_ch0}}} where tx_elecidle_* is the output signal from MAC. Gen3 - Width of signal is 4 bits/lane. For example, if the MAC connected to PIPE Gen3x4 has 1bit/lane, then you can use the following mapping to connect to PIPE: {pipe_tx_elecidle[15:0] = {{4{tx_elecidle_ch3}},{4{tx_elecidle_ch2}},{4{tx_elecidle_ch1}},{4{tx_elecidle_ch0}}} where tx_elecidle_* is the output signal from MAC. Active High |
pipe_tx_detectrx_loopback [(N-1):0] | In | tx_coreclkin |
Instructs the PHY to start a receive detection operation. After power-up, asserting this signal starts a loopback operation. Refer to section 6.4 of the Intel® PHY Interface for PCI Express (PIPE) for a timing diagram. Active High |
pipe_tx_compliance[(4N-1):0] | In | tx_coreclkin |
Asserted for one cycle to set the running disparity to negative. Used when transmitting the compliance pattern. Refer to section 6.11 of the Intel® PHY Interface for PCI Express (PIPE) Architecture for more information. Gen1 - Width of signal is 1 bit/lane. Gen2 - Width of signal is 2 bits/lane. For example, if the MAC connected to PIPE Gen2x4 has 1bit/lane, then you can use the following mapping to connect to PIPE:{pipe_tx_compliance[7:0] = {{2{tx_compliance_ch3}}, {2{tx_compliance _ch2}},{2{tx_compliance_ch1}}, {2{tx_compliance _ch0}}}. Where tx_compliance_* is the output signal from MAC. Gen3 - Width of signal is 4 bits/lane. For example, if the MAC connected to PIPE Gen3x4 has 1bit/lane, then you can use the following mapping to connect to PIPE: {pipe_tx_compliance[15:0]= {{4{tx_ compliance _ch3}}, {4{tx_ compliance _ch2}}, {4{tx_ compliance _ch1}}, {4{tx_ compliance _ch0}}}. Where tx_ compliance _* is the output signal from MAC. Active High |
pipe_rx_polarity[(N-1):0] | In | Asynchronous |
When 1'b1, instructs the PHY layer to invert the polarity on the received data. Active High |
pipe_powerdown[(2N-1):0] | In | tx_coreclkin |
Requests the PHY to change its power state to the specified state. The Power States are encoded as follows: 2'b00: P0 - Normal operation. 2'b01: P0s - Low recovery time, power saving state. 2'b10: P1 - Longer recovery time, lower power state . 2'b11: P2 - Lowest power state. |
pipe_tx_margin[(3N-1):0] | In | tx_coreclkin |
Transmit VOD margin selection. The PHY-MAC sets the value for this signal based on the value from the Link Control 2 Register. The following encodings are defined: 3'b000: Normal operating range 3'b001: Full swing: 800 - 1200 mV; Half swing: 400 - 700 mV. 3'b010:-3'b011: Reserved. 3'b100-3'b111: Full swing: 200 - 400mV; Half swing: 100 - 200 mV else reserved. |
pipe_tx_swing[(N-1):0] | In | tx_coreclkin |
Indicates whether the transceiver is using Full swing or Half swing voltage as defined by the pipe_tx_margin. 1'b0-Full swing. 1'b1-Half swing. |
pipe_tx_deemph[(N-1):0] | In | Asynchronous |
Transmit de-emphasis selection. In PCI Express Gen2 (5 Gbps) mode it selects the transmitter de-emphasis: 1'b0: –6 dB. 1'b1: –3.5 dB. |
pipe_g3_tx_deemph[(18N-1):0] | In | Asynchronous |
The pipe_g3_tx_deemph port is used to select the link partners transmitter de-emphasis during equalization. The 18 bits specify the following coefficients: [5:0]: C-1 [11:6]: C0 [17:12]: C+1 Refer to Preset Mappings to TX De-emphasis for presets to TX de-emphasis mappings. In Gen3 capable designs, the TX de-emphasis for Gen2 data rate is always -6 dB. The TX de-emphasis for Gen1 data rate is always -3.5 dB. Refer to section 6.6 of Intel® PHY Interface for PCI Express (PIPE) Architecture for more information.
Note: Intel® recommends transmitting Preset P8 coefficients for Arria® 10 receiver to recover data successfully.
|
pipe_g3_rxpresethint[(3N-1):0] | In | Asynchronous |
This is used to trigger CTLE adaptation in Phase2 (EP) /Phase 3 (RP) to achieve receiver Bit Error Rate (BER) that is less than 10-12. Gen3 capable design at Gen1/Gen2 speeds: This should be set to 3’b000. Gen3 capable design at Gen3 speed: Refer to section “PHY IP Core for PCIe (PIPE) Link Equalization for Gen3 Data Rate” for details on when to set/reset this port. |
pipe_rx_eidleinfersel[(3N-1):0] | In | Asynchronous |
When asserted high, the electrical idle state is inferred instead of being identified using analog circuitry to detect a device at the other end of the link. The following encodings are defined: 3'b0xx: Electrical Idle Inference not required in current LTSSM state. 3'b100: Absence of COM/SKP OS in 128 ms. 3'b101: Absence of TS1/TS2 OS in 1280 UI interval for Gen1 or Gen2. 3'b110: Absence of Electrical Idle Exit in 2000 UI interval for Gen1 and 16000 UI interval for Gen2. 3'b111: Absence of Electrical Idle exit in 128 ms window for Gen1.
Note: Recommended to implement Receiver Electrical Idle Inference (EII) in FPGA fabric.
|
pipe_rate[1:0] | In | Asynchronous |
The 2-bit encodings defined in the following list: 2'b00: Gen1 rate (2.5 Gbps) 2'b01: Gen2 rate (5.0 Gbps) 2'b10: Gen3 rate (8.0 Gbps) |
pipe_sw_done[1:0] | In | N/A |
Signal from the Master clock generation buffer, indicating that the rate switch has completed. Use this signal for bonding mode only. For non-bonded applications, this signal is internally connected to the local CGB. |
pipe_tx_data_valid[(N-1):0] | In | tx_coreclkin |
For Gen3, this signal is deasserted by the MAC to instruct the PHY to ignore tx_parallel_data for current clock cycle. A value of 1'b1 indicates the PHY should use the data. A value of 0 indicates the PHY should not use the data. Active High |
PIPE Output to PHY - MAC Layer | |||
rx_parallel_data[31:0], [15:0], or [7:0] | Out | rx_coreclkin |
The RX parallel data driven to the MAC. For Gen1 this can be 8 or 16 bits. For Gen2 this is 16 bits only. For Gen3 this is 32 bits.Refer to Bit Mappings When the Simplified Interface is Disabled for more details. |
rx_datak[3:0], [1:0], or [0] | Out | rx_coreclkin |
The data and control indicator. For Gen1 or Gen2, when 0, indicates that rx_parallel_data is data, when 1, indicates that rx_parallel_data is control. For Gen3, Bit[0] corresponds to rx_parallel_data[7:0], Bit[1] corresponds to rx_parallel_data[15:8], and so on. Refer to tableBit Mappings When the Simplified Interface is Disabled for more details. |
pipe_rx_sync_hdr[(2N-1):0] | Out | rx_coreclkin |
For Gen3, indicates whether the 130-bit block being transmitted is a Data or Control Ordered Set Block. The following encodings are defined: 2'b10: Data block 2'b01: Control Ordered Set block This value is read when pipe_rx_blk_start = 4'b0001. Refer to Section 4.2.2.1. Lane Level Encoding in the PCI Express Base Specification, Rev. 3.0 for a detailed explanation of data transmission and reception using 128b/130b encoding and decoding. |
pipe_rx_blk_start[(N-1):0] | Out | rx_coreclkin |
For Gen3, specifies the start block byte location for RX data in the 128-bit block data. Used when the interface between the PCS and PHY-MAC (FPGA Core) is 32 bits. Not used for Gen1 and Gen2 data rates. Active High |
pipe_rx_data_valid[(N-1):0] | Out | rx_coreclkin |
For Gen3, this signal is deasserted by the PHY to instruct the MAC to ignore rx_parallel_data for current clock cycle. A value of 1'b1 indicates the MAC should use the data. A value of 1'b0 indicates the MAC should not use the data. Active High |
pipe_rx_valid[(N-1):0] | Out | rx_coreclkin |
Asserted when RX data and control are valid. |
pipe_phy_status[(N-1):0] | Out | rx_coreclkin |
Signal used to communicate completion of several PHY requests. Active High |
pipe_rx_elecidle[(N-1):0] | Out | Asynchronous |
When asserted, the receiver has detected an electrical idle. Active High |
pipe_rx_status[(3N-1):0] | Out | rx_coreclkin |
Signal encodes receive status and error codes for the receive data stream and receiver detection. The following encodings are defined: 3'b000 - Receive data OK 3'b001 - 1 SKP added 3'b010 - 1 SKP removed 3'b011 - Receiver detected 3'b100 - Either 8B/10B or 128b/130b decode error and (optionally) RX disparity error 3'b101 - Elastic buffer overflow 3'b110 - Elastic buffer underflow 3'b111 - Receive disparity error, not used if disparity error is reported using 3'b100. |
pipe_sw[1:0] | Out | N/A | Signal to clock generation buffer indicating the rate switch request. Use this signal for bonding mode only. For non-bonded applications this signal is internally connected to the local CGB. Active High. Refer to Bit Mappings When the Simplified Interface Is Disabled Bit Mappings When the Simplified Interface is Disabled for more details. |
Signal Name | Gen1 (TX Byte Serializer and RX Byte Deserializer disabled) | Gen1 (TX Byte Serializer and RX Byte Deserializer in X2 mode), Gen2 (TX Byte Serializer and RX Byte Deserializer in X2 mode) | Gen3 |
---|---|---|---|
tx_parallel_data | tx_parallel_data[7:0] | tx_parallel_data[29:22,7:0] | tx_parallel_data[40:33,29:22,18:11,7:0] |
tx_datak | tx_parallel_data[8] | tx_parallel_data[30,8] | tx_parallel_data[41,30,19,8] |
pipe_tx_compliance | tx_parallel_data[9] | tx_parallel_data[31,9] | tx_parallel_data[42,31,20,9] |
pipe_tx_elecidle | tx_parallel_data[10] | tx_parallel_data[32,10] | tx_parallel_data[43,32,21,10] |
pipe_tx_detectrx_loopbacK | tx_parallel_data[46] | tx_parallel_data[46] | tx_parallel_data[46] |
pipe_powerdown | tx_parallel_data[48:47] | tx_parallel_data[48:47] | tx_parallel_data[48:47] |
pipe_tx_margin | tx_parallel_data[51:49] | tx_parallel_data[51:49] | tx_parallel_data[51:49] |
pipe_tx_swing | tx_parallel_data[53] | tx_parallel_data[53] | tx_parallel_data[53] |
rx_parallel_data | rx_parallel_data[7:0] | rx_parallel_data[39:32,7:0] | rx_parallel_data[55:48,39:32,23:16,7:0] |
rx_datak | rx_parallel_data[8] | rx_parallel_data[40,8] | rx_parallel_data[56,40,24,8] |
rx_syncstatus | rx_parallel_data[10] | rx_parallel_data[42,10] | rx_parallel_data[58,42,26,10] |
pipe_phy_status | rx_parallel_data[65] | rx_parallel_data[65] | rx_parallel_data[65] |
pipe_rx_valid | rx_parallel_data[66] | rx_parallel_data[66] | rx_parallel_data[66] |
pipe_rx_status | rx_parallel_data[69:67] | rx_parallel_data[69:67] | rx_parallel_data[69:67] |
pipe_tx_deemph | N/A | tx_parallel_data[52] | N/A |
pipe_tx_sync_hdr | N/A | N/A | tx_parallel_data[55:54] |
pipe_tx_blk_start | N/A | N/A | tx_parallel_data[56] |
pipe_tx_data_valid | N/A | N/A | tx_parallel_data[60] |
pipe_rx_sync_hdr | N/A | N/A | rx_parallel_data[71:70] |
pipe_rx_blk_start | N/A | N/A | rx_parallel_data[72] |
pipe_rx_data_valid | N/A | N/A | rx_parallel_data[76] |