SFP Simulation Link
Description of the SFP Simulation Link protocol and its implementation in the Typhoon HIL Toolchain.
- Vendor agnostic
- Point-to-point link - with the possibility to be routable in the future
- Easy to implement and use:
- Compliant with the majority of the existing real-time simulation platforms
- Light on FPGA resources
- Freely available reference designs / IP cores
- Expandable - versioning allows protocol evolution without sacrificing legacy installations
- High bandwidth - more than 1 million messages per second in typical applications
- Low latency - lower than 1us
- Reliable - built-in synchronization and safety features
Physical Layer
- Duplex dataflow
- Framed data
- 8b/10b encoding
- 5 Gbps line rate
- No Cyclic Redundancy Check (CRC) for data
Application Layer
- Synchronous
- Slave unit responds to the messages from the master unit
- Both sides can be configured as master units
- Asynchronous
- Both units send messages at their own pace
In the current version 0.1 only the master operating mode is supported.
SFP Simulation Link uses Aurora UFC (User Flow Control) interface for auxiliary functions such as time synchronization and status information exchange. UFC messages are sent on every signal value change.
SFP Simulation Link can be implemented on most Xilinx FPGA and SoC devices with gigabit transceivers. Protocol endpoint reference design for Xilinx VC707 development board is available here.
Message format
The following section describes the message format used by the SFP Simulation link version 0.1. Message format might change in the upcoming versions.
- Header
- Payload data
Frame Header
Header content is defined below. It will likely be extended in the upcoming protocol versions.
Field name | Width (bits) | Description |
---|---|---|
Src ID | 4 | Source device ID |
Dest ID | 4 | Destination device ID |
Payload size | 8 | Payload size in words |
Protocol version | 8 | Encoded protocol version. In case of version mismatch between the sender and the receiver the message should be discarded. |
Reserved | 8 | Reserved for future use |
Frame Payload
The payload data type is for now limited to IEEE754 single precision floating point. Maximum payload size is 250 words (4 bytes each).
Typhoon HIL Implementation
Currently, SFP Simulation Link is supported by HIL404 and HIL606. HIL404s upper SFP connector is used when SFP link components are present in the model. When no SFP Link components are present in the model, the upper SFP connector is used for device paralleling or for Egston SFP Link. HIL606 has two SFP ports dedicated exclusively for SFP Simulation Link or Egston SFP Link.
SFP Setup
The SFP Setup component is used to configure the SFP Simulation Link parameters and provide the link status. For now its functionality is limited to setting the device ID used by SFP Send and Receive components. The SFP link device ID can be defined either by the position of the rotary switch or explicitly by the component property. The output port of the SFP Setup component provides the SFP Link physical status where one (1) means that the link is up.
Component | Component dialog | Component properties |
---|---|---|
![]() SFP Setup |
![]() |
|
Component properties are described in Table 3.
Property name | Description |
---|---|
Override HIL device ID | Allows to override the device ID used by the SFP Send and Receive component. When unchecked, the HIL Device ID is defined by the rotary switch on the HIL Device backplate. |
Device ID | The device ID to be used instead of the HIL device ID. |
In models that use multiple devices, one SFP Setup component should exist for each device that uses the SFP link.
SFP Send
The SFP Send component enables sending data through the SFP link. Payload size is calculated from the dimension of the connected terminals.
Component | Component dialog | Component property |
---|---|---|
![]() SFP Send |
![]() |
|
Component properties are listed in the table Table 5.
Property name | Description |
---|---|
Destination device ID | Endpoint Device ID. |
Execution rate | Signal processing execution rate. Execution rate must match with the other components in the model. |
SFP Receive
The SFP Receive component enables receiving data over the SFP link. The number of variables to be received is defined by the Receive Variable Number parameter.
Component | Component dialog | Component properties |
---|---|---|
![]() SFP Receive |
![]() |
|
Component properties are listed in the table Table 7.
Property name | Description |
---|---|
Receive variable number | Specify receive variable number. |
Source device ID | Specify endpoint device ID. |
Execution rate | Refresh rate of the outputs. |
Virtual HIL support
Virtual HIL currently does not support this protocol. When using a Virtual HIL environment (e.g. when running the model on a local computer), inputs to this component will be discarded and outputs from this component will be zeroed.