仅对英特尔可见 — GUID: ewo1418427128467
Ixiasoft
4.1.7.3. PTP发送功能
通过开启参数编辑器中的 Enable IEEE 1588 向 25GbE IP核发送1588 PTP数据包时,必须使用TX SOP信号置位以下输入信号中的一个(且仅一个),以告知IP核传入的是1588 PTP数据包:
- tx_egress_timestamp_request_valid:置位此信号,告知IP核以two-step处理模式处理当前数据包。
- tx_etstamp_ins_ctrl_timestamp_insert:置位此信号,告知IP核以one-step处理模式处理当前数据包,并在数据包中插入退出时间戳(插入模式)。
- Tx_etstamp_ins_ctrl_residence_time_update:置位此信号, 告知IP核以one-step处理模式处理当前数据包,并通过IP核将延迟添加到数据包中保留的累加延迟字段,从而实现数据包中时间戳更新(校正模式)。该模式支持透明时钟系统。
PTP处理后,IP核发送以太网帧中1588 PTP数据包。
One-step模式下,IP核既可通过数据包退出时间戳来覆盖用户指定偏移处提供的时间戳信息(插入模式), 还可将该系统中的停留时间添加到指定偏移处的值中(校正模式)。通过使用TX SOP信号置位正确的信号来告知IP核如何处理时间戳。您必须在插入模式下指定数据包中时间戳的偏移量(tx_etstamp_ins_ctrl_offset_timestamp),或者校正模式中数据包中矫正字段的偏移量(tx_etstamp_ins_ctrl_offset_correction_field。另外,根据相斥的tx_etstamp_ins_ctrl_checksum_zero和tx_etstamp_ins_ctrl_checksum_correct信号,IP核清零或更新UDP校验和,或原样保留UDP校验和。
Two-step PTP处理会忽略one-step处理信号的值。在two-step处理模式下,IP核不会修改数据包中的当前时间戳。相反,在IP核开始发送以太网帧时,它会在单独的tx_egress_timestamp_96b_data[95:0]或tx_egress_timestamp_64b_data[63:0]总线上发送由two-step导出的时间戳。tx_egress_timestamp_{96b,64b}_data总线上的值就是数据包退出时间戳。当对应的tx_egress_timestamp_{96b,64b}_valid信号被置位时,tx_egress_timestamp_{96b,64b}_data总线保持一个有效值。
此外,要帮助客户端识别数据包,可在与时间戳相同的时钟周期内指定一个将由IP核传递的指纹。要为特殊指纹值指定一个IP核可处理的数字,请将 Fingerprint width参数设置到所需的W位数。通过tx_egress_timestamp_request_fingerprint[(W–1):0]信号为IP核提供指纹的值。在IP核置位tx_egress_timestamp_{96b,64b}_valid信号时,才通过相应输出时间戳从正确的tx_egress_timestamp_{96b,64b}_fingerprint[(W–1):0]端口上导出指纹。
IP核计算数据包退出时间戳。
退出TOD = 输入TOD + IP核保留的预期延迟 + 用户配置的PMA延迟
- 输入TOD是数据包在进入IP核时,tx_time_of_day_96b_data或tx_time_of_day_64b_data中的值。
- 经过IP核的预期延迟时一个静态值。IP核内部保留该值。
- IP核从 TX_PTP_PMA_LATENCY寄存器读取 用户配置的PMA延迟。该选项旨在提供用户灵活性。
不同处理模式下,IP核提供的退出TOD方式有所不同。
- Two-step模式下,IP核可以在tx_egress_timestamp_96b_data上和tx_egress_timestamp_64b_data上,(如有),驱动退出TOD。
- One-step处理插入模式下,IP核将退出TOD插入您在tx_etstamp_ins_ctrl_offset_timestamp中所指定数据包时间戳字段的偏移处。
- 在one-step处理校正模式中,IP核计算退出TOD并仅通过其计算停留时间。
在one-step处理校正模式中,IP核计算更新的校正字段值:
退出校正字段值=输入校正字段值+停留时间+不对称额外延迟
- 停留时间=退出TOD – 输入(入口)时间戳。
- 输入(入口)时间戳是IP核接收到TX客户端接口上数据包时,SOP周期中tx_etstamp_ins_ctrl_ingress_timestamp_{95,64}b上的值。应用程序负责使用正确值驱动该信号以进行累积计算。该正确值取决于系统配置。
- 如果tx_egress_asymmetry_update信号被置位,则IP核从TX_PTP_ASYM_DELAY寄存器读取不对称额外延迟。该选项旨在提供额外的用户定义精度。可设置该寄存器的值并设置tx_egress_asymmetry_update信号以指示延迟计算中应包含的寄存器值。