仅对英特尔可见 — GUID: tss1535358080302
Ixiasoft
2.6.1. Gigabit Ethernet (GbE)和GbE with IEEE 1588v2
2.6.2. 10GBASE-R,10GBASE-R with IEEE 1588v2和10GBASE-R with FEC类别(variant)
2.6.3. 10GBASE-KR PHY IP Core
2.6.4. 1-Gigabit/10-Gigabit Ethernet (GbE) PHY IP Core
2.6.5. 1G/2.5G/5G/10G Multi-rate Ethernet PHY Intel® FPGA IP Core
2.6.6. XAUI PHY IP Core
2.6.7. 缩略语
2.7.1. PIPE的收发器通道数据路径
2.7.2. 受支持的PIPE特性
2.7.3. 如何连接PIPE Gen1、Gen2和Gen3模式的TX PLL
2.7.4. 如何在Arria 10收发器中实现PCI Express* (PIPE)
2.7.5. PIPE的Native PHY IP参数设置
2.7.6. PIPE的fPLL IP Core参数设置
2.7.7. PIPE的ATX PLL IP Core参数设置
2.7.8. PIPE的Native PHY IP端口
2.7.9. PIPE的fPLL端口
2.7.10. PIPE的ATX PLL端口
2.7.11. 到TX去加重的预置映射(Preset Mappings to TX De-emphasis)
2.7.12. 如何对PIPE配置布局通道
2.7.13. Gen3数据速率的PHY IP Core for PCIe* (PIPE)链路均衡
2.7.14. 使用收发器套件(TTK)/系统控制台/重配置接口进行手动调节 Arria® 10 PCIe设计(Hard IP(HIP)和PIPE) (仅用于调试)
2.9.1.1. 如何在Arria 10收发器中实现Basic (Enhanced PCS)和Basic with KR FEC收发器配置规则
2.9.1.2. Basic (Enhanced PCS)和Basic with KR FEC的Native PHY IP参数设置
2.9.1.3. 如何在Basic Enhanced PCS中使能低延迟
2.9.1.4. Enhanced PCS FIFO操作
2.9.1.5. TX Data Bitslip(TX数据比特滑移)
2.9.1.6. TX数据极性反转
2.9.1.7. RX Data Bitslip(RX数据比特滑移)
2.9.1.8. RX数据极性反转
2.9.2.1. 字对齐器手动模式(Word Aligner Manual Mode)
2.9.2.2. 字对齐器同步状态机模式
2.9.2.3. RX比特滑移
2.9.2.4. RX极性反转
2.9.2.5. RX比特反转
2.9.2.6. RX字节反转
2.9.2.7. 基本(单宽度)模式下的速率匹配FIFO
2.9.2.8. 速率匹配FIFO基本(双宽度)模式
2.9.2.9. 8B/10B编码器和解码器
2.9.2.10. 8B/10B TX差异控制
2.9.2.11. 如何在基本模式下使能低延时
2.9.2.12. TX比特滑移(TX Bit Slip)
2.9.2.13. TX极性倒转
2.9.2.14. TX比特反转(TX Bit Reversal)
2.9.2.15. TX字节反转
2.9.2.16. 如何在 Arria® 10 收发器中实现Basic,Basic with Rate Match收发器配置规则
2.9.2.17. Basic,Basic with Rate Match配置的Native PHY IP参数设置
5.2.2.1. RX Gearbox,RX Bitslip和极性反转
5.2.2.2. 模块同步器(Block Synchronizer)
5.2.2.3. Interlaken差异检查器(Interlaken Disparity Checker)
5.2.2.4. 解扰器(Descrambler)
5.2.2.5. Interlaken帧同步器
5.2.2.6. 64B/66B解码器和接收器状态机(RX SM)
5.2.2.7. 伪随机码型验证器
5.2.2.8. 10GBASE-R误码率(BER)检查器
5.2.2.9. Interlaken CRC-32检查器
5.2.2.10. Enhanced PCS RX FIFO
5.2.2.11. RX KR FEC模块
6.1. 重新配置通道和PLL模块
6.2. 与重配置接口进行交互
6.3. 配置文件
6.4. 多个重配置设置文件(Multiple Reconfiguration Profiles)
6.5. 嵌入式重配置流传输器(Embedded Reconfiguration Streamer)
6.6. 仲裁(Arbitration)
6.7. 关于动态重配置的建议
6.8. 执行动态重配置的步骤
6.9. 直接重配置流程
6.10. Native PHY IP或PLL IP Core指导的重配置流程
6.11. 特殊情况的重配置流程
6.12. 更改PMA模拟参数
6.13. 端口和参数
6.14. 多个IP模块之间的动态重配置接口合并
6.15. 嵌入式调试功能
6.16. 使用数据码型生成器和检查器
6.17. 时序收敛建议
6.18. 不支持的功能
6.19. Arria® 10 收发器寄存器映射
6.20. 重配置接口和动态重配置修订历史
8.7.1. XCVR_A10_TX_PRE_EMP_SIGN_PRE_TAP_1T
8.7.2. XCVR_A10_TX_PRE_EMP_SIGN_PRE_TAP_2T
8.7.3. XCVR_A10_TX_PRE_EMP_SIGN_1ST_POST_TAP
8.7.4. XCVR_A10_TX_PRE_EMP_SIGN_2ND_POST_TAP
8.7.5. XCVR_A10_TX_PRE_EMP_SWITCHING_CTRL_PRE_TAP_1T
8.7.6. XCVR_A10_TX_PRE_EMP_SWITCHING_CTRL_PRE_TAP_2T
8.7.7. XCVR_A10_TX_PRE_EMP_SWITCHING_CTRL_1ST_POST_TAP
8.7.8. XCVR_A10_TX_PRE_EMP_SWITCHING_CTRL_2ND_POST_TAP
仅对英特尔可见 — GUID: tss1535358080302
Ixiasoft
2.6.5.3.2. 时序约束(Timing Constraints)
基于最快速度对PHY进行约束。 例如,如果您将PHY配置为1G/2.5G,那么要基于2.5G对其进行约束。
PHY配置 | Constrain PHY for |
---|---|
2.5G | 2.5G数据路径 |
1G/2.5G | 2.5G数据路径 |
1G/2.5G/10G (MGBASE-T) | 10G和1G/2.5G数据路径 |
10M/100M/1G/2.5G/5G/10G (USXGMII) | 10G数据路径 |
当您对1G/2.5G/10G操作模式的外部PHY选择了MGBASE-T配置时,英特尔建议您在时序约束文件中添加以下约束, 以对10G数据路径以及1G/2.5G数据路径约束PHY:
注: 在编辑时序约束文件之前,您必须将PHY层次路径定义为<Installation Directory>/ip/altera/ethernet/alt_mge_phy/example/alt_mge_phy_multi_speed_10g.sdc。
- 为1G/2.5G数据路径创建生成的时钟。由于1G和2.5G硬核PCS配置是相同的,因此约束是基于2.5G数据路径设置的。例如:
# Create the 1G/2.5G RX clock set rx_pma_clk_1g2p5g_name "${ch_phy}rx_pma_clk_1g2p5g" set clock_node "${ch_phy}$native_ls_inst$rx_pma_clk_1g2p5g_target" create_generated_clock -name $rx_pma_clk_1g2p5g_name -source [get_clock_info -targets refclk_1g2p5g] -divide_by 2 -multiply_by 5 [get_pins $clock_node] -add set rx_clk_1g2p5g_name "${ch_phy}rx_clk_1g2p5g" set clock_source "${ch_phy}$native_ls_inst$rx_pcs_clk_1g2p5g_source" set clock_node "${ch_phy}$native_ls_inst$rx_pcs_clk_1g2p5g_target" create_generated_clock -name $rx_clk_1g2p5g_name -source [get_pins $clock_source] -master_clock $rx_pma_clk_1g2p5g_name -divide_by 2 -multiply_by 1 [get_pins $clock_node] -add set rx_clkout_1g2p5g_name "${ch_phy}rx_clkout_1g2p5g" set clock_source "${ch_phy}$native_ls_inst$rx_pld_clk_1g2p5g_source" set clock_node "${ch_phy}$native_ls_inst$rx_pld_clk_10g_target" create_generated_clock -name $rx_clkout_1g2p5g_name -source [get_pins $clock_source] -master_clock $rx_pma_clk_1g2p5g_name -divide_by 2 -multiply_by 1 [get_pins $clock_node] -add # Create the 1G/2.5G TX clock set tx_pma_clk_1g2p5g_name "${ch_phy}tx_pma_clk_1g2p5g" set clock_node "${ch_phy}$native_ls_inst$tx_pma_clk_1g2p5g_target" create_generated_clock -name $tx_pma_clk_1g2p5g_name -source [get_clock_info -targets $serclk_1g2p5g] -divide_by 5 -multiply_by 1 [get_pins $clock_node] -add set tx_clk_1g2p5g_name "${ch_phy}tx_clk_1g2p5g" set clock_source "${ch_phy}$native_ls_inst$tx_pcs_clk_1g2p5g_source" set clock_node "${ch_phy}$native_ls_inst$tx_pcs_clk_1g2p5g_target" create_generated_clock -name $tx_clk_1g2p5g_name -source [get_pins $clock_source] -master_clock $tx_pma_clk_1g2p5g_name -divide_by 2 -multiply_by 1 [get_pins $clock_node] -add set tx_clkout_1g2p5g_name "${ch_phy}tx_clkout_1g2p5g" set clock_source "${ch_phy}$native_ls_inst$tx_pld_clk_1g2p5g_source" set clock_node "${ch_phy}$native_ls_inst$tx_pld_clk_10g_target" create_generated_clock -name $tx_clkout_1g2p5g_name -source [get_pins $clock_source] -master_clock $tx_pma_clk_1g2p5g_name -divide_by 2 -multiply_by 1 [get_pins $clock_node] -add
注: rx_clkout_1g2p5g_name和tx_clkout_1g2p5g_name的时钟节点被分别设置成rx_pld_clk_10g_target和 tx_pld_clk_10g_target,这是因为此配置的设计是相对于最快速度(10G)进行编译的。因此,由 Intel® Quartus® Prime软件创建的此节点连接被重新用于设置1G/2.5G数据路径的时序约束。 - 创建10G数据路径的默认时钟。由于在上述约束中创建了1G/2.5G时钟,因此Timing Analyzer不会创建这些时钟。此外,Timing Analyzer也不会创建来自同一主时钟的时钟。
# Create the 10G (default) clocks which were not created by the IPSTA due to 1G/2.5G clocks just created above set rx_clkout_10g_name "${ch_phy}rx_clkout" set master_src "${ch_phy}rx_pma_clk" set clock_source "${ch_phy}$native_ls_inst$rx_pld_clk_10g_source" set clock_node "${ch_phy}$native_ls_inst$rx_pld_clk_10g_target" create_generated_clock -name $rx_clkout_10g_name -source [get_pins $clock_source] -master_clock $master_src [get_pins $clock_node] -add set tx_clkout_10g_name "${ch_phy}tx_clkout" set master_src "${ch_phy}tx_pma_clk" set clock_source "${ch_phy}$native_ls_inst$tx_pld_clk_10g_source" set clock_node "${ch_phy}$native_ls_inst$tx_pld_clk_10g_target" create_generated_clock -name $tx_clkout_10g_name -source [get_pins $clock_source] -master_clock $master_src [get_pins $clock_node] -add # PMA clock name for setting false path set rx_pma_clk_10g_name "${ch_phy}rx_pma_clk" set tx_pma_clk_10g_name "${ch_phy}tx_pma_clk"
其中,1g2p5g和10g分别指的是1G/2.5G和10G时钟。 - 设置从10G时钟到1G/2.5G PHY逻辑的伪路径(false path),反之亦然。由于1G/2.5G PHY路径不以10G时钟速度运行,因此您不必确保在10G时钟速度上的1G/2.5G数据路径的时序收敛。例如:
set_false_path -from [get_clocks "$rx_pma_clk_10g_name $rx_clkout_10g_name $tx_pma_clk_10g_name $tx_clkout_10g_name"] -to [get_registers "*|alt_mge16_pcs_pma:*|* $hssi_8g_pcs_if"] set_false_path -from [get_registers "*|alt_mge16_pcs_pma:*|* $hssi_8g_pcs_if"] -to [get_clocks "$rx_pma_clk_10g_name $rx_clkout_10g_name $tx_pma_clk_10g_name $tx_clkout_10g_name"]
其中,由10g表示的路径与10G时钟相关联,而alt_mge16_pcs_pma路径表示1G/2.5G PHY逻辑。 - 由于10G PHY逻辑不在1G/2.5G时钟上运行,因此您不必确保在更慢时钟速度上的1G/2.5G数据路径的时序收敛。伪路径被设置为从1G/2.5G时钟到10G PHY逻辑,反之亦然。例如:
set_false_path -from [get_clocks "$rx_pma_clk_1g2p5g_name $rx_clk_1g2p5g_name $rx_clkout_1g2p5g_name $tx_pma_clk_1g2p5g_name $tx_clk_1g2p5g_name $tx_clkout_1g2p5g_name"] -to [get_registers "*|alt_mge_phy_xgmii_pcs:*|* $hssi_10g_pcs_if"] set_false_path -from [get_registers "*|alt_mge_phy_xgmii_pcs:*|* $hssi_10g_pcs_if"] -to [get_clocks "$rx_pma_clk_1g2p5g_name $rx_clk_1g2p5g_name $rx_clkout_1g2p5g_name $tx_pma_clk_1g2p5g_name $tx_clk_1g2p5g_name $tx_clkout_1g2p5g_name"]
其中,由1g2p5g表示的路径与1G/2.5G时钟相关联,而alt_mge_phy_xgmii_pcs表示10G PHY逻辑。