> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/holoscan/sensor-bridge/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/holoscan/sensor-bridge/_mcp/server.

The port descriptions for the Holoscan Sensor Bridge IP are described in the following
sections. For more information on macros defined in "HOLOLINK\_def.svh", refer to
[Macro Definitions](/holoscan/sensor-bridge/fpga-ip/ip-integration#macro-definitions)

## Global Reset

Table 1 Global Reset Port

| **Signal Name** | **Direction** | **Description**                         |
| --------------- | ------------- | --------------------------------------- |
| i\_sys\_rst     | Input         | Global, Asynchronous, Active High Reset |

## User Register Ports

Table 2 User Register Clock and Reset Ports

| **Signal Name** | **Direction** | **Description**                        |
| --------------- | ------------- | -------------------------------------- |
| i\_apb\_clk     | Input         | APB Clock. Must be greater than 20MHz. |
| o\_apb\_rst     | Output        | APB Synchronous, Active High Reset     |

Table 3 User Register APB Ports

| **Signal Name**                            | **Direction** | **Description**     |
| ------------------------------------------ | ------------- | ------------------- |
| i\_apb\_pready \[N-1:0]<sup>1</sup>        | Input         | APB Ready           |
| \[31:0] i\_apb\_prdata\[N-1:0]<sup>1</sup> | Input         | APB Read Data       |
| i\_apb\_pserr\[N-1:0]<sup>1</sup>          | Input         | APB Completer Error |
| o\_apb\_psel\[N-1:0]<sup>1</sup>           | Output        | APB Select          |
| o\_apb\_penable                            | Output        | APB Enable          |
| o\_apb\_paddr\[31:0]                       | Output        | APB Address         |
| o\_apb\_pwdata\[31:0]                      | Output        | APB Write Data      |
| o\_apb\_pwrite                             | Output        | APB Write           |

1. N=`REG_INST`

Table 4 External Enumeration Ports

These ports are only available if `ENUM_EEPROM` is NOT defined in "HOLOLINK\_def.svh"

| **Signal Name**                          | **Direction** | **Description**                                                                         |
| ---------------------------------------- | ------------- | --------------------------------------------------------------------------------------- |
| \[47:0] i\_mac\_addr\[N-1:0]<sup>1</sup> | Input         | MAC Address for each Ethernet interface.                                                |
| i\_board\_sn\[55:0]                      | Input         | Board Serial Number.                                                                    |
| i\_enum\_vld                             | Input         | Enumeration Valid. Once "i\_mac\_addr" and "i\_board\_sn" is set, set and keep it to 1. |

1. N=`HOST_IF_INST`

Table 5 User Register System Initialization Ports

| **Signal Name** | **Direction** | **Description**                                                     |
| --------------- | ------------- | ------------------------------------------------------------------- |
| o\_init\_done   | Output        | System Initialization done. Refer to System Initialization section. |

## Sensor Interface Ports

Table 6 Sensor RX Interface Ports

These ports are only available if `SENSOR_RX_IF_INST` is defined in "HOLOLINK\_def.svh"

| **Signal Name**                                  | **Direction** | **Description**                                                                          |
| ------------------------------------------------ | ------------- | ---------------------------------------------------------------------------------------- |
| i\_sif\_rx\_clk\[N-1:0]<sup>1</sup>              | Input         | Sensor RX Interface Clock.                                                               |
| o\_sif\_rx\_rst\[N-1:0]<sup>1</sup>              | Output        | Sensor RX Interface Synchronous, Active-High Reset                                       |
| i\_sif\_axis\_tvalid\[N-1:0]<sup>1</sup>         | Input         | Sensor RX AXI-Stream Valid                                                               |
| i\_sif\_axis\_tlast\[N-1:0]<sup>1</sup>          | Input         | Sensor RX AXI-Stream Last.                                                               |
| \[W-1:0] i\_sif\_axis\_tdata\[N-1:0]<sup>1</sup> | Input         | Sensor RX AXI-Stream Data.                                                               |
| \[X-1:0] i\_sif\_axis\_tkeep\[N-1:0]<sup>1</sup> | Input         | Sensor RX AXI-Stream Keep. Currently not supported. See Sensor RX section for more info. |
| \[Y-1:0] i\_sif\_axis\_tuser\[N-1:0]<sup>1</sup> | Input         | Sensor RX AXI-Stream User.                                                               |
| o\_sif\_axis\_tready\[N-1:0]<sup>1</sup>         | Output        | Sensor RX AXI-Stream Ready                                                               |

1. N=`SENSOR_RX_IF_INST`, W=`DATAPATH_WIDTH`, X=`DATAKEEP_WIDTH`, Y=`DATAUSER_WIDTH`

Table 7 Sensor TX Interface

These ports are only available if `SENSOR_TX_IF_INST` is defined in "HOLOLINK\_def.svh"

| **Signal Name**                                  | **Direction** | **Description**                                    |
| ------------------------------------------------ | ------------- | -------------------------------------------------- |
| i\_sif\_tx\_clk\[N-1:0]<sup>1</sup>              | Input         | Sensor TX Interface Clock.                         |
| o\_sif\_tx\_rst\[N-1:0]<sup>1</sup>              | Output        | Sensor TX Interface Synchronous, Active-High Reset |
| o\_sif\_axis\_tvalid\[N-1:0]<sup>1</sup>         | Output        | TBD                                                |
| o\_sif\_axis\_tlast\[N-1:0]<sup>1</sup>          | Output        | TBD                                                |
| \[W-1:0] o\_sif\_axis\_tdata\[N-1:0]<sup>1</sup> | Output        | TBD                                                |
| \[X-1:0] o\_sif\_axis\_tkeep\[N-1:0]<sup>1</sup> | Output        | TBD                                                |
| \[Y-1:0] o\_sif\_axis\_tuser\[N-1:0]<sup>1</sup> | Output        | TBD                                                |
| i\_sif\_axis\_tready\[N-1:0]<sup>1</sup>         | Input         | TBD                                                |

1. N=`SENSOR_TX_IF_INST`, W=`DATAPATH_WIDTH`, X=`DATAKEEP_WIDTH`, Y=`DATAUSER_WIDTH`

Table 8 Sensor Event Ports

| **Signal Name**       | **Direction** | **Description**                                                                    |
| --------------------- | ------------- | ---------------------------------------------------------------------------------- |
| i\_sif\_event \[15:0] | Input         | Sensor Interface Event. Asynchronous. Refer to Sensor RX section for more details. |

## Host Interface Ports

Table 9 Host Interface Clock and Reset Ports

| **Signal Name** | **Direction** | **Description**                                                   |
| --------------- | ------------- | ----------------------------------------------------------------- |
| i\_hif\_clk     | Input         | 156.25MHz Host Interface Clock. See clocking section for details. |
| o\_hif\_rst     | Output        | Host Interface Synchronous, Active-High Reset.                    |

Table 10 Host RX Interface Ports

Connect the Host RX AXI-Streaming ports directly to Ethernet MAC RX AXI-Streaming ports.

| **Signal Name**                                 | **Direction** | **Description**  |
| ----------------------------------------------- | ------------- | ---------------- |
| i\_hif\_axis\_tvalid\[N-1:0]<sup>1</sup>        | Input         | AXI-Stream Valid |
| i\_hif\_axis\_tlast\[N-1:0]<sup>1</sup>         | Input         | AXI-Stream Last  |
| \[W-1:0]i\_hif\_axis\_tdata\[N-1:0]<sup>1</sup> | Input         | AXI-Stream Data  |
| \[X-1:0]i\_hif\_axis\_tkeep\[N-1:0]<sup>1</sup> | Input         | AXI-Stream Keep  |
| \[Y-1:0]i\_hif\_axis\_tuser\[N-1:0]<sup>1</sup> | Input         | AXI-Stream User  |
| o\_hif\_axis\_tready\[N-1:0]<sup>1</sup>        | Output        | AXI-Stream Ready |

1. N=`HOST_IF_INST`, W=`DATAPATH_WIDTH`, X=`DATAKEEP_WIDTH`, Y=`DATAUSER_WIDTH`

Table 11 Host TX Interface Ports

Connect the Host TX AXI-Streaming ports directly to Ethernet MAC TX AXI-Streaming ports.

| **Signal Name**                                 | **Direction** | **Description**  |
| ----------------------------------------------- | ------------- | ---------------- |
| o\_hif\_axis\_tvalid\[N-1:0]<sup>1</sup>        | Output        | AXI-Stream Valid |
| o\_hif\_axis\_tlast\[N-1:0]<sup>1</sup>         | Output        | AXI-Stream Last  |
| \[W-1:0]o\_hif\_axis\_tdata\[N-1:0]<sup>1</sup> | Output        | AXI-Stream Data  |
| \[X-1:0]o\_hif\_axis\_tkeep\[N-1:0]<sup>1</sup> | Output        | AXI-Stream Keep  |
| \[Y-1:0]o\_hif\_axis\_tuser\[N-1:0]<sup>1</sup> | Output        | AXI-Stream User  |
| i\_hif\_axis\_tready\[N-1:0]<sup>1</sup>        | Input         | AXI-Stream Read  |

1. N=`HOST_IF_INST`, W=`DATAPATH_WIDTH`, X=`DATAKEEP_WIDTH`, Y=`DATAUSER_WIDTH`

## Peripheral Interface Ports

Table 12 SPI Ports

These ports are only available if `SPI_INST` is defined in "HOLOLINK\_def.svh"

| **Signal Name**                        | **Direction** | **Description**          |
| -------------------------------------- | ------------- | ------------------------ |
| o\_spi\_csn\[N-1:0]<sup>1</sup>        | Output        | Chip Select (Active Low) |
| o\_spi\_sck\[N-1:0]<sup>1</sup>        | Output        | SPI Clock                |
| o\_spi\_oen\[N-1:0]<sup>1</sup>        | Output        | Output Enable            |
| \[3:0]o\_spi\_sdio\[N-1:0]<sup>1</sup> | Output        | SDIO Output              |
| \[3:0]i\_spi\_sdio\[N-1:0]<sup>1</sup> | Input         | SDIO Input               |

1. N=`SPI_INST`

Table 13 I2C Ports

These ports are only available if `I2C_INST` is defined in "HOLOLINK\_def.svh"

| **Signal Name**                     | **Direction** | **Description**         |
| ----------------------------------- | ------------- | ----------------------- |
| i\_i2c\_scl\[N-1:0]<sup>1</sup>     | Input         | I2C Clock               |
| i\_i2c\_sda\[N-1:0]<sup>1</sup>     | Input         | I2C Data                |
| o\_i2c\_scl\_en\[N-1:0]<sup>1</sup> | Output        | I2C Clock Output Enable |
| o\_i2c\_sda\_en\[N-1:0]<sup>1</sup> | Output        | I2C Data Output Enable  |

1. N=`I2C_INST`

Table 14 UART ports

These ports are only available if `UART_INST` is defined in "HOLOLINK\_def.svh"

| **Signal Name** | **Direction** | **Description**      |
| --------------- | ------------- | -------------------- |
| i\_uart\_rx     | Input         | UART Receive         |
| i\_uart\_cts    | Input         | UART Clear To Send   |
| o\_uart\_tx     | Output        | UART Transmit        |
| o\_uart\_rts    | Output        | UART Request to Send |
| o\_uart\_busy   | Output        | UART Busy            |

Table 15 GPIO Ports

| **Signal Name**                  | **Direction** | **Description**                                                                                                            |
| -------------------------------- | ------------- | -------------------------------------------------------------------------------------------------------------------------- |
| i\_gpio\[N-1:0]<sup>1</sup>      | Input         | GPIO In. Synchronous to “i\_apb\_clk”                                                                                      |
| o\_gpio\[N-1:0]<sup>1</sup>      | Output        | GPIO Out. Synchronous to “i\_apb\_clk”                                                                                     |
| o\_gpio\_dir\[N-1:0]<sup>1</sup> | Output        | GPIO Direction. 0=GPIO Output, 1=GPIO Input. User can tri-state the GPIO pin using this port. Synchronous to “i\_apb\_clk” |

1. N=`GPIO_INST`

Table 16 Sensor Reset Port

| **Signal Name**         | **Direction** | **Description**                                                                          |
| ----------------------- | ------------- | ---------------------------------------------------------------------------------------- |
| o\_sw\_sen\_rst \[31:0] | Output        | Register Controlled Reset. Connect to on-board sensor reset pin                          |
| o\_sw\_sys\_rst         | Output        | Register controlled self-clearing reset. Can be used to reset blocks, such as PCS block. |

Table 17 PTP Clock and Reset

| **Signal Name** | **Direction** | **Description** |
| --------------- | ------------- | --------------- |
| i\_ptp\_clk     | Input         | PTP Clock       |
| o\_ptp\_rst     | Output        | PTP Reset       |

Table 18 Internal PTP Port

These ports are only available if `EXT_PTP` is NOT defined in "HOLOLINK\_def.svh". PTP
module is instantiated within the HSB IP and is used to synchronize and timestamp.

| **Signal Name**         | **Direction** | **Description**                                                            |
| ----------------------- | ------------- | -------------------------------------------------------------------------- |
| o\_ptp\_sec \[47:0]     | Output        | PTP Seconds Field per PTP1588-2019 v2 spec. Synchronous to i\_ptp\_clk     |
| o\_ptp\_nanosec \[31:0] | Output        | PTP Nanoseconds Field per PTP1588-2019 v2 spec. Synchronous to i\_ptp\_clk |
| o\_pps                  | Output        | Pulse Per Second. Synchronous to i\_ptp\_clk                               |

Table 19 External PTP Port

These ports are only available if `EXT_PTP` is defined in "HOLOLINK\_def.svh". If the
Ethernet MAC IP has built-in PTP feature, that can be used to pass the timestamp to the
HSB IP.

| **Signal Name**         | **Direction** | **Description**                                                            |
| ----------------------- | ------------- | -------------------------------------------------------------------------- |
| i\_ptp\_sec \[47:0]     | Input         | PTP Seconds Field per PTP1588-2019 v2 spec. Synchronous to i\_ptp\_clk     |
| i\_ptp\_nanosec \[31:0] | Input         | PTP Nanoseconds Field per PTP1588-2019 v2 spec. Synchronous to i\_ptp\_clk |