Holoscan 传感器桥接 v2.0.0

IP 集成

Holoscan 传感器桥接 IP 的顶层模块是 “HOLOLINK_top”。

Holoscan 传感器桥接 IP 设计为易于配置,以适应 IP 的各种用例,例如传感器和以太网端口的数量。它还设计为与多个 FPGA 供应商兼容。以下描述了用户可用的配置。

宏定义

Holoscan 传感器桥接定义文件 “HOLOLINK_def.svh” 定义了以下宏。

宏可以配置为用户 Holoscan 传感器桥接 IP 的应用。默认宏值是已经过测试和验证的配置。

表 13

**宏

测试值

描述

FPGA_VENDOR LATTICE, PSG, MICROCHIP 定义所使用的 FPGA 供应商。
HIF_CLK_FREQ 156250000(对于 DATAPATH_WIDTH=64)
201416016 (对于 DATAPATH_WIDTH=512)
主机接口的时钟频率。单位为 Hz
APB_CLK_FREQ 19531250(对于 DATAPATH_WIDTH=64)
100000000 (对于 DATAPATH_WIDTH=512)
APB 接口的时钟频率。单位为 Hz
BOARD_ID[15:0] 16’h02 用于 Lattice LF-SNSR-ETH-EV
16’h04 用于 Microchip MPF200-ETH-SENSOR-BRIDGE
用于枚举数据包
ENUM_EEPROM 已定义或未定义 定义后,从外部非易失性存储器读取枚举数据包的内容。如果未定义,请使用下面定义的宏…
MAC_ADDR[47:0] 任何值 如果未定义 ENUM_EEPROM,则用于枚举数据包。
BOARD_VER[159:0] 任何值 如果未定义 ENUM_EEPROM,则用于枚举数据包。
BOARD_SN[55:0] 任何值 如果未定义 ENUM_EEPROM,则用于枚举数据包。
FPGA_CRC[15:0] 任何值 如果未定义 ENUM_EEPROM,则用于枚举数据包。
MISC[31:0] 任何值 如果未定义 ENUM_EEPROM,则用于枚举数据包。
DATAPATH_WIDTH 64, 512 传感器 AXI 流 TDATA 的宽度,以位为单位。此数字必须是字节对齐的。即,它必须是可以被 8 整除的数字。
DATAKEEP_WIDTH DATAPATH_WIDTH/8 传感器 AXI 流 TKEEP 的宽度。不应更改此值。
DATAUSER_WIDTH 1 传感器 AXI 流 TUSER 信号的宽度。
SENSOR_IF_INST 1-2 传感器接口的数量。
HOST_WIDTH 64, 512 主机 AXI 流 TDATA 的宽度,以位为单位。此数字必须是字节对齐的。即,它必须是可以被 8 整除的数字。
HOSTKEEP_WIDTH DATAPATH_WIDTH/8 主机 AXI 流 TKEEP 的宽度。不应更改此值。
HOSTUSER_WIDTH 1 主机 AXI 流 TUSER 信号的宽度。
HOST_IF_INST 1-2 主机接口的数量。
HOST_MTU 1500 (对于 10G 系统,请勿更改) 以太网数据包的大小,以字节为单位。
SPI_INST 1-8 SPI 接口的数量。
I2C_INST 1-8 I2C 接口的数量。
GPIO_INST 0-255 GPIO 输入和输出位的数量。
GPIO_RESET_VALUE[GPIO_INST-1:0] 0 GPIO 位的复位值。
REG_INST 1-8 用户寄存器的数量。
SIF_SORT_RESOLUTION 请勿触摸 待定。请勿更改。
SIF_VP_COUNT 请勿触摸 待定。请勿更改。
SIF_VP_SIZE 请勿触摸 待定。请勿更改。
SIF_NUM_CYCLES 请勿触摸 待定。请勿更改。
SIF_DYN_VP 请勿触摸 待定。请勿更改。
SIF_MIXED_VP_SIZE 请勿触摸 待定。请勿更改。
N_INIT_REG 整数值 初始化寄存器的数量。

构建版本

参数 “HOLOLINK_REV” 可以传递到 “HOLOLINK_top” 模块。此参数用于标识 FPGA 和 HOLOLINK 的版本,并作为枚举数据包的一部分发送到主机。

从实例化 “HOLOLINK_top” 模块的模块中,对于 Holoscan SDK v2.0.0 版本,实例化的参数 HOLOLINK_REV[15:0] 必须设置为 16’h2412

枚举数据包

Holoscan 传感器桥接 IP 大约每秒传输一次广播 UDP 枚举数据包。枚举数据包的内容可以来自板载非易失性存储器或 “HOLOLINK_def.svh” 中定义的宏。

批量生产带有 HOLOLINK IP 的板卡需要外部 EEPROM 来存储唯一的 MAC 地址和板卡序列号。当使用评估平台进行测试和启动时,使用宏的固定值是可以接受的。

下面进一步解释了用于枚举数据包的每个宏。

BOARD_ID:此宏定义了板卡 ID。Holoscan 使用此值来识别它正在与哪个板卡接口。此宏必须定义,并且不是可选地存储在非易失性存储器中。

ENUM_EEPROM:当定义此宏时,以下宏的内容会在启动时从板载非易失性存储器中检索。以下宏的内容必须存储在非易失性存储器的特定地址中。更多详细信息可应要求提供。

仅当未定义 ENUM_EEPROM 宏时,才使用下面列出的宏。

MAC_ADDR:此宏定义了 FPGA 的 UDP MAC 地址。对于每个可用的主机接口,MAC 地址递增 1。例如,如果 MAC_ADDR 宏定义为 48’hCAFEC0FFEE00,则主机接口 0 的地址为 48’hCAFEC0FFEE00,主机接口 1 的地址为 48’hCAFEC0FFEE01,依此类推。

BOARD_VER:此宏定义了板卡版本。

BOARD_SN:此宏定义了板卡序列号。

FPGA_CRC:此宏定义了 FPGA 位图的 CRC,仅当未定义 ENUM_EEPROM 宏时才使用。预期功能是供软件通过检查其与软件计算结果的对比来检查 FPGA 位图的有效性。此功能尚不支持。

MISC:此宏定义了杂项信息。

Holoscan 传感器桥接 IP 提供了系统初始化功能,以便在通电时写入寄存器。此功能用于初始化以太网块,以在 FPGA 和主机之间建立以太网连接,并且可以用于顶层设计中的任何其他用户功能。

要初始化的寄存器列表在 “Hololink_def.svh” 中定义为 “init_reg” 数组。“init_reg” 是一个解压缩数组,大小为 [N_INIT_REG] [63:0],其中 N_INIT_REG 宏定义了要初始化的寄存器数量,而 64 位向量用于定义 [63:32] 处的 32 位寄存器地址和 [31:0] 处的 32 位写入数据。

为了给出一个 init_reg 数组条目的示例

{32’h1000_0020, 32’h0000_00FF} //init_reg[0]

将数据 0x0000_00FF 写入 User REG_INST_0 块地址偏移 0x0000_0020。

系统初始化完成后,“o_init_done” 端口将在 “i_apb_clk” 域中被置为高电平。如果用户的逻辑依赖于以太网块初始化,则可以使用此信号来门控他们的逻辑。

上一篇 精确时间协议 (PTP)
下一篇 仿真
© 版权所有 2022-2024, NVIDIA。 上次更新时间为 2025 年 2 月 4 日。