Visible to Intel only — GUID: jfm1484328141656
Ixiasoft
Visible to Intel only — GUID: jfm1484328141656
Ixiasoft
2.5.1.8. Native PHY IP Core Ports for PIPE
Port | Direction | Clock Domain | Description |
---|---|---|---|
Clocks | |||
rx_cdr_refclk0 | In | N/A | The 100 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: The tx_serial_clk1 is only used in Gen3 x 1 mode. |
pipe_hclk_in[0: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:0] | Out | N/A | The 500 MHz clock output provided to the PHY - MAC interface. |
PIPE Input from PHY - MAC Layer | |||
tx_parallel_data[31: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 Bit Mappings When the Simplified Interface Is Disabled for more 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 Bit Mappings When the Simplified Interface Is Disabled for more details. |
pipe_tx_sync_hdr[(2*N-1):0] | 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 datarates. 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 datarates. Active High |
pipe_tx_elecidle[(N-1):0] | In | Asynchronous |
Forces the transmit output to electrical idle. Refer to the Intel PHY Interface for PCI Express (PIPE) for timing diagrams. 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[(N-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. 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[(2*N-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[(3*N-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_txdeemph[(18*N-1):0] | In | Asynchronous |
For Gen3, selects the transmitter de-emphasis. The 18 bits specify the following coefficients: [5:0]: C-1 [11:6]: C0 [17:12]: C+1 Refer to the Preset Mappings to TX De-emphasis section for presets to TX de-emphasis mappings. In Gen3 capable designs, the TX de-emphasis for Gen2 datarate is always -6 dB. The TX de-emphasis for Gen1 datarate is always -3.5 dB. Refer to section 6.6 of Intel PHY Interface for PCI Express (PIPE) Architecture for more information. |
pipe_g3_rxpresethint[(3*N-1):0] | In | Asynchronous |
Provides the RX preset hint for the receiver. Set this to 3'b000 for PIPE Gen3 configurations. |
pipe_rx_eidleinfersel[(3*N-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[(2*N)-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_eq_eval | In | tx_coreclkin | Assert high to start evaluation of the far end transmitter TX EQ settings. Active High |
pipe_eq_invalidreq | In | tx_coreclkin | Assert high to indicate that the link partner TX EQ setting was out of range. Active High |
pipe_eq_inprogress | In | tx_coreclkin | Assert high to indicate the MAC is in Phase 2 of Recovery.Equalization. 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 Bit Mappings When the Simplified Interface Is Disabled for more details. |
pipe_rx_sync_hdr[(2*N-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 datarates. 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[(3*N-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 for more details. |
Signal Name | Gen 1 (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[18:11,7:0] | tx_parallel_data[56:49,47:40,18:11,7:0] |
tx_datak | tx_parallel_data[8] | tx_parallel_data[19,8] | tx_parallel_data[57,48,19,8] |
pipe_tx_compliance[(N-1):0] | tx_parallel_data[9] | tx_parallel_data[9] | tx_parallel_data[9] |
pipe_tx_elecidle[(N-1):0] | tx_parallel_data[10] | tx_parallel_data[10] | tx_parallel_data[10] |
pipe_tx_detectrx_loopback[(N-1):0] | tx_parallel_data[20] | tx_parallel_data[20] | tx_parallel_data[20] |
pipe_powerdown[(2*N-1):0] | tx_parallel_data[22:21] | tx_parallel_data[22:21] | tx_parallel_data[22:21] |
pipe_tx_margin[(3*N-1):0] | tx_parallel_data[25:23] | tx_parallel_data[25:23] | tx_parallel_data[25:23] |
pipe_tx_swing[(N-1):0] | tx_parallel_data[27] | tx_parallel_data[27] | tx_parallel_data[27] |
pipe_tx_deemph[(N-1):0] | N/A | tx_parallel_data[26] | N/A |
pipe_tx_sync_hdr[(2*N-1):0] | N/A | N/A | tx_parallel_data[29:28] |
pipe_tx_blk_start[(N-1):0] | N/A | N/A | tx_parallel_data[30] |
pipe_tx_data_valid[(N-1):0] | N/A | N/A | tx_parallel_data[31] |
pipe_rate[(2*N)-1):0] | tx_parallel_data[33:32] | tx_parallel_data[33:32] | tx_parallel_data[33:32] |
pipe_rx_polarity[(N-1):0] | tx_parallel_data[34] | tx_parallel_data[34] | tx_parallel_data[34] |
pipe_eq_eval | N/A | N/A | tx_parallel_data[35] |
pipe_eq_inprogress | N/A | N/A | tx_parallel_data[36] |
pipe_eq_invalidreq | N/A | N/A | tx_parallel_data[37] |
pipe_g3_rxpresethint[(3*N-1):0] | N/A | N/A | tx_parallel_data[60:58] |
pipe_g3_txdeemph[(18*N-1):0] | N/A | N/A | tx_parallel_data[78:61] |
rx_parallel_data | rx_parallel_data[7:0] | rx_parallel_data[22:15,7:0] | rx_parallel_data[62:55,47:40,22:15,7:0] |
rx_datak | rx_parallel_data[8] | rx_parallel_data[23,8] | rx_parallel_data[63,48,23,8] |
rx_syncstatus | rx_parallel_data[10] | rx_parallel_data[25,10] | rx_parallel_data[65,50,25,10] |
pipe_phystatus[(N-1):0] | rx_parallel_data[32] | rx_parallel_data[32] | rx_parallel_data[32] |
pipe_rx_valid[(N-1):0] | rx_parallel_data[33] | rx_parallel_data[33] | rx_parallel_data[33] |
pipe_rx_status[(3*N-1):0] | rx_parallel_data[36:34] | rx_parallel_data[36:34] | rx_parallel_data[36:34] |
pipe_rx_sync_hdr[(2*N-1):0] | N/A | N/A | rx_parallel_data[31:30] |
pipe_rx_blk_start[(N-1):0] | N/A | N/A | rx_parallel_data[37] |
pipe_rx_data_valid[(N-1):0] | N/A | N/A | rx_parallel_data[38] |