模拟
模拟启动允许用户检查 HOLOLINK IP 实例化和端口连接。 需要进行以下修改以启动配置状态的 HOLOLINK IP,以便从主机 TX 接口流式传输传感器数据。
注释掉 “HOLOLINK_def.svh” 中的 “define ENUM_EEPROM”。 在硬件中,当定义 ENUM_EEPROM 时,HOLOLINK IP 通过 I2C 读取外部 EEPROM 以获取唯一的 MAC 地址和元数据。 但由于这将需要在模拟测试平台中使用 EEPROM 的总线功能模型,因此用户可以注释掉 “define ENUM_EEPROM”。 当未定义 “ENUM_EEPROM” 时,HOLOLINK IP 将使用 “HOLOLINK_def.svh” 中的 “MAC_ADDR” 和其他定义作为以太网接口的硬编码值。
初始化 HOLOLINK IP。 在硬件中,软件 API 配置 HOLOLINK IP 以在主机 TX 接口上进行数据平面流传输。 在模拟中,用户可以使用 “HOLOLINK_def.svh” 中的 “init_reg” 来配置复位后的 HOLOLINK IP。
以下是可以添加到 “init_reg” 以初始化以太网端口 0 的寄存器列表。 一旦传感器 RX AXI-S 接口被驱动 1408 字节或更多,HOLOLINK IP 将驱动主机 TX 接口上的数据平面流。
//Address Data
{32'h0200_0304, 32'h0000_000B}, // dp_pkt_0 , dp_pkt_len
{32'h0200_0308, 32'h0000_12B7}, // dp_pkt_0 , dp_pkt_host_udp_port
{32'h0200_030C, 32'h0000_0001}, // dp_pkt_0 , dp_pkt_vip_mask
{32'h0000_1020, 32'h0000_600D}, // sif_0 , dp_pkt_mac_addr_lo
{32'h0000_1024, 32'h0000_0000}, // sif_0 , dp_pkt_mac_addr_hi
{32'h0000_1028, 32'h0000_BEEF}, // sif_0 , dp_pkt_ip_addr
{32'h0000_102C, 32'h0000_3000}, // sif_0 , dp_pkt_fpga_udp_port
{32'h0000_1000, 32'h0000_0000}, // sif_0 , Destination QP
{32'h0000_1004, 32'h0000_F00D}, // sif_0 , Remote Key
{32'h0000_1008, 32'h0000_0000}, // sif_0 , Buffer 0 Virtual Address
{32'h0000_1018, 32'h0001_0000}, // sif_0 , Bytes per Window
{32'h0000_101C, 32'h0000_0001}, // sif_0 , Buffer Enable
{32'h0200_0108, 32'h0000_0064}, // eth_pkt_0 , Eth pkt data plane priority
以上示例适用于 1 条数据路径,对于其他数据路径
将偏移量 “0x0001_0000” 添加到 dp_pkt 寄存器地址,并将偏移量 “0x0000_0040” 添加到 sif 寄存器地址。
在 HOLOLINK IP HIF TX/RX 接口端口中实例化第二条或更多数据路径。
将 N_INIT_REG 增加添加到初始化的寄存器数量。