ptp module

PTP (Precision Time Protocol) Peripheral ICL (Instrument Control Layer). Abstracts the FPGA registers into a more user-friendly interface, including a wrapper for configuration registers inside the IP core.

class ptp.Ptp(*args: Any, **kwargs: Any)[source]

Bases: FpgaPeripheral

ICL for Base PTP Peripheral Configuration

command(cmd: PtpCommand) None[source]

Execute a PTP command

property mac_address: ska_low_cbf_fpga.IclField.<class 'str'>

Get MAC address

startup(mac_address: int = 66051, domain: int = 1) None[source]

Start PTP

Parameters:
  • mac_address (int) – MAC address, only the low 3 bytes are used.

  • domain (int) – PTP domain

property user_mac_address: ska_low_cbf_fpga.IclField.<class 'int'>

Get the user-configurable portion of the MAC address (lower 3 bytes)

class ptp.PtpCommand(value)[source]

Bases: IntEnum

Command codes used by the PTP core

DISABLE = 2
ENABLE = 1
PPS_MODE = 5
PTP_MODE = 6
RELOAD_PROFILE = 0
SERVO_RESUME = 4
SERVO_STOP = 3