fpga/nv_hsb_ip代码分析

发布时间:2026/7/28 21:09:34
fpga/nv_hsb_ip代码分析 范围fpga/nv_hsb_ip/语言/风格全部为 SystemVerilog.sv。该目录内没有 README、TCL、XDC 等元数据文件。顶层实体HOLOLINK_toptop/HOLOLINK_top.sv。板级配置HOLOLINK_def.svh/HOLOLINK_pkg位于fpga/board/rtl/top/被本 IP 包含使用。1. 顶层结构与总体角色nv_hsb_ip/是Holoscan Sensor Bridge的 FPGA 核心 IP用于把高速传感器数据流桥接到以太网主机同时提供 APB 控制面、IEEE 1588/gPTP 时间同步、低速控制包处理以及若干外设接口SPI/I2C/UART/GPIO。1.1 顶层模块HOLOLINK_top的外部接口域接口方向作用控制面APBapb_m2s/apb_s2mMaster/Slave对所有内部模块及用户扩展寄存器的读写访问传感器数据i_sif_*AXI-StreamRX/TX 时钟/复位高速传感器数据通路主机数据i_hif_*/o_hif_*AXI-StreamRX/TX 时钟/复位以太网 MAC / 主机数据通路外设SPI、I2C、UART、GPIO外部引脚传感器/外设控制时间同步PTP 时钟 PPS o_ptp_sec/nanosec输入/输出IEEE 1588 / gPTP 授时杂项i_sys_rst、o_init_done、o_sw_*_rst输入/输出系统复位与初始化1.2 主要数据通路传感器 → 主机Sensor RX path: i_sif_axis_* → packetizer_top → dp_pkt_top → eth_pkt → o_hif_axis_* 主机 → 传感器Host RX path: i_hif_axis_* → rx_parser ├── sensor_tx_pkt_proc → tx_stream_buffer → o_sif_axis_* ├── ptp_top ├── rx_ls_parser → eth_pkt 低速控制返回 └── bridge_pkt_proc 桥接模式 低速控制回路: rx_parser → rx_ls_parser → { bootp, ecb_rdwr_ctrl, ctrl_bus_evt_int, arp_ping_pkt_proc } → eth_pkt → 主机 PTP: ptp_top 生成本地时间/PPS或根据外部 PTP 报文进行同步1.3 时钟与复位结构reset_gen为以下时钟域生成同步复位i_apb_clk→o_apb_rsti_hif_clk→o_hif_rsti_ptp_clk→o_ptp_rsti_sif_rx_clk→o_sif_rx_rsti_sif_tx_clk→o_sif_tx_rstglb_ctrl_top提供软件复位位o_sw_sys_rst、o_sw_sen_rst。2. 依赖关系 / 模块层次HOLOLINK_top ├── reset_gen ├── apb_intc_top │ ├── apb_switch 多层user/hololink、global/ptp/event/roce、sensor、host、bridge、peri │ ├── apb_ff │ └── 连接各子系统的 s_apb_reg / s_apb_ram 从机 ├── glb_ctrl_top │ └── s_apb_reg ├── sys_init │ └── m_apb_reg ├── eeprom_info ├── ptp_top │ ├── s_apb_reg │ ├── ptp_ingress │ ├── ptp_parser │ ├── ptp_sync │ ├── ptp_dly │ ├── ptp_calc │ ├── ptp_timer │ ├── dpll │ └── ptp_egress ├── rx_parser每个 HOST_IF_INST 一个 │ ├── s_apb_reg │ ├── axis_buffer (x2) │ ├── axis_reg │ ├── axis_remove │ ├── axis_to_vec │ ├── sc_fifo (x3) │ └── roce_ack ├── rx_ls_parser │ ├── bootp │ ├── ctrl_bus_evt_int │ │ └── ctrl_bus_evt_fsm │ │ └── s_apb_ram │ ├── ecb_rdwr_ctrl │ ├── axis_arb (x2) │ ├── axis_buffer │ ├── axis_hdr │ ├── roce_icrc │ │ └── lfsr_hc来自 roce/ │ └── arp_ping_pkt_proc │ ├── axis_reg, axis_to_vec, vec_to_axis ├── sensor_tx_pkt_proc │ ├── axis_drop │ └── axis_drop_tail ├── tx_stream_buffer每个 SENSOR_TX_IF_INST 一个 │ ├── s_apb_reg │ ├── data_sync (x2) │ └── axis_buffer_tx │ ├── axis_gearbox (x2) │ ├── axis_reg │ ├── dc_fifo_stub → dc_fifo_generic │ ├── pulse_sync │ └── sc_fifo ├── pause_gen │ └── vec_to_axis ├── packetizer_top每个 SENSOR_RX_IF_INST 一个 │ ├── s_apb_reg │ ├── data_sync │ └── packetizer │ └── virtual_port → axis_buffer ├── dp_pkt_top │ ├── s_apb_regper host │ ├── s_apb_ram │ ├── dp_pktper host │ ├── dp_pkt_hdr │ ├── dp_pkt_ts │ ├── roce_icrc → lfsr_hc │ ├── axis_checker │ ├── axis_reg │ └── rrarb ├── eth_pkt每个 HOST_IF_INST 一个 │ ├── s_apb_reg │ ├── axis_arb │ ├── axis_reg │ ├── axis_insert │ └── axis_checker ├── bridge_pkt_proc桥接模式 │ ├── s_apb_reg │ ├── axis_buffer (x3) │ ├── axis_mask │ ├── rrarb (x2) │ └── sc_fifo (x2) ├── routing_table桥接模式 │ ├── axis_to_vec │ ├── cam │ └── rrarb (x2) ├── spi_ctrl_fsm │ ├── s_apb_reg │ ├── dp_ram │ └── spi ├── i2c_ctrl_fsm │ ├── s_apb_reg │ └── i2c ├── uart_ctrl_fsm │ ├── s_apb_reg │ ├── edge_to_pulse │ ├── sc_fifo (x2) │ └── uart └── misc 通用原语 ├── sc_fifo, dc_fifo_generic/dc_fifo_stub, str_fwd_fifo ├── streaming_cdc, data_sync, pulse_sync, reg_cdc, cdc_reset_handshake ├── reset_sync, rst_pb_debounce, debouncer, glitch_filter ├── cam, rrarb, priority_arb, comparator, moving_avg └── dp_ram3. 共享 Package 文件Package文件作用apb_pkglib_apb/apb_pkg.svAPB4 结构体apb_m2s、apb_s2mregmap_pkgreg_map/regmap_pkg.sv地址译码、寄存器偏移、子模块 IDaxis_pkglib_axis/axis_pkg.sv大小端转换与tkeep辅助函数ptp_pkgptp/ptp_pkg.svPTP 常量Ethertype、消息类型、位宽rx_parser_pkgrx_parser/rx_parser_pkg.svEthernet/IP/UDP/ARP/Ping/RoCE 头结构体ecb_pkgecb/ecb_pkg.sv外部控制总线ECB操作码i2s_pkgref_design/i2s/i2s_pkg.svI2S 参考设计常量4. 各子目录详细分析4.1bootp/— BOOTP/DHCP 枚举客户端文件bootp.sv角色在启动阶段发送 BOOTP 风格请求报文解析回复以获取主机 MAC/IP/UDP 端口并为本设备分配 IP。关键接口PTP 时间/PPS、i_dev_mac_addr、i_eeprom_ip_addr、低速 AXI-Stream RX/TX输出o_host_mac_addr、o_host_ip_addr、o_dev_ip_addr、o_dev_udp_port、o_pld_len等。依赖无内部子模块导入HOLOLINK_pkg::*。4.2ctrl_bus_evt/— 事件驱动 APB 控制序列器文件ctrl_bus_evt_fsm.sv、ctrl_bus_evt_int.sv角色ctrl_bus_evt_fsm执行一段存储在 RAM 中的小程序poll/read/write/compare响应事件向量ctrl_bus_evt_int作为包装层把其接入低速控制通路。关键接口APB 从机程序 RAM、事件向量输入、APB 主机输出。依赖ctrl_bus_evt_fsm实例化s_apb_ram导入apb_pkg、regmap_pkg。4.3data_gen/— 内置传感器测试图案生成器文件data_gen.sv、prbs_lfsr_hc.sv、ram_player.sv角色用于调试/ bring-up可向传感器 RX 路径注入 PRBS、计数器或 RAM 回放数据。关键模块data_genAPB 控制输出传感器位宽 AXI-Stream 及复用选择o_data_gen_axis_mux。prbs_lfsr_hcLFSR PRBS 生成器。ram_player基于 APB/RAM 的播放引擎。依赖data_gen实例化prbs_lfsr_hc导入apb_pkg、regmap_pkg、axis_pkg。4.4dp_pkt/— 数据面封包器文件dp_pkt_top.sv、dp_pkt.sv、dp_pkt_hdr.sv、dp_pkt_ts.sv角色接收已按虚拟端口排序的传感器流为其封装 Ethernet/IPv4/UDP/RoCE 头、插入时间戳、计算 CRC输出主机位宽 AXI-Stream 报文。关键模块dp_pkt_top顶层封装含 per-host APB 配置、PTP 时间戳、SOF 向量、MAC/IP 数组。dp_pktper-host 有效载荷/CRC 流水线。dp_pkt_hdr报文头构造。dp_pkt_ts时间戳插入逻辑。依赖实例化s_apb_reg、s_apb_ram、axis_checker、axis_reg、dp_pkt、dp_pkt_hdr、dp_pkt_ts、roce_icrc、rrarb导入apb_pkg、regmap_pkg。4.5ecb/— 外部控制总线ECB读写控制器文件ecb_pkg.sv、ecb_rdwr_ctrl.sv角色解析低速控制包中的 ECB 命令并代为执行 APB 读/写返回响应 AXI-Stream。关键接口APB 从机 APB 主机、低速 AXI-Stream 数据/响应、解析后的主机信息。依赖实例化s_apb_reg定义ecb_pkgRD_BYTE、WR_DWORD等操作码。4.6eth_pkt/— 主机发送聚合器文件eth_pkt.sv角色仲裁多路输入流数据面、PTP、低速控制、暂停帧、桥接汇聚成单一主机 AXI-Stream可插入 VLAN 标签并做 AXI-Stream 协议检查。关键接口APB、PTP 时间触发、N_INPT路 AXI-Stream 输入输出到 MAC 的单路 AXI-Stream、o_ptp_val、o_del_req_val、o_pkt_inc。依赖实例化s_apb_reg、axis_arb、axis_reg、axis_insert、axis_checker导入apb_pkg、regmap_pkg。4.7glb_ctrl/— 全局控制/状态寄存器文件glb_ctrl_top.sv角色保存版本、日期、scratch、GPIO 输出/三态、软件复位输出等全局寄存器。关键接口APB 从机、GPIO in/out/direction、o_hsb_ctrl含o_sw_sys_rst/o_sw_sen_rst。依赖实例化s_apb_reg导入apb_pkg、regmap_pkg。4.8i2c/— APB 控制 I2C 主设备文件i2c.sv、i2c_ctrl_fsm.sv角色APB 控制的 I2C 主外设。关键模块i2c位级 I2C 控制器scl_i/o、sda_i/o、时钟分频。i2c_ctrl_fsmAPB 寄存器接口 事务 FSM支持多实例。依赖i2c_ctrl_fsm实例化s_apb_reg与i2c导入apb_pkg、regmap_pkg。4.9lib_apb/— APB 基础设施库文件apb_pkg.sv、apb_adapter.sv、apb_ff.sv、apb_intc_top.sv、apb_switch.sv、apb_to_axi4l.sv、m_apb_reg.sv、s_apb_ila.sv、s_apb_ram_dyn.sv、s_apb_ram.sv、s_apb_reg.sv角色提供 APB4 结构体、从寄存器/从 RAM、开关路由、流水线寄存器、APB-to-AXI4-Lite 桥、中断控制器与 ILA 探针。关键模块apb_pkgAPB4apb_m2s/apb_s2m打包结构体。s_apb_reg通用控制/状态寄存器 APB 从机。m_apb_reg可播放寄存器初始化序列的 APB 主机。s_apb_ram/s_apb_ram_dynAPB 从 RAM。apb_switch地址译码 APB 路由器。apb_ffAPB 流水线寄存器。apb_intc_top多层 APB 互联被HOLOLINK_top使用。apb_to_axi4lAPB 转 AXI4-Lite 适配器。依赖apb_intc_top实例化多层apb_switch、apb_ff导入HOLOLINK_pkg、regmap_pkg。4.10lib_axis/— 可复用 AXI-Stream 构建块文件axis_arb.sv、axis_buffer.sv、axis_checker.sv、axis_demux.sv、axis_drop_tail.sv、axis_drop.sv、axis_ftr.sv、axis_gearbox.sv、axis_hdr.sv、axis_insert.sv、axis_mask.sv、axis_packer.sv、axis_pkg.sv、axis_reg.sv、axis_remove.sv、axis_to_vec.sv、vec_to_axis.sv、vec_to_axis_dyn_len.sv角色提供缓冲区、仲裁器、转换器、报文头操作、协议检查等通用 AXI-Stream 原语。关键模块axis_buffer单/双时钟 AXI-Stream FIFO支持位宽转换。axis_arb优先级/轮询 AXI-Stream 仲裁器。axis_regskid/流水线寄存器。axis_drop/axis_drop_tail从头部/尾部删除字节。axis_insert/axis_hdr/axis_mask/axis_ftr插入/删除/掩码操作。axis_gearbox位宽转换。axis_demux解复用。axis_packer打包/解包。axis_to_vec/vec_to_axis/vec_to_axis_dyn_lenAXIS 与向量互转。axis_checker协议/断言检查器。依赖virtual_port实例化axis_bufferaxis_buffer_tx实例化axis_gearbox、axis_reg、dc_fifo_stub、pulse_sync、sc_fifo定义axis_pkg。4.11misc/— 通用 FPGA 原语文件cam.sv、cdc_reset_handshake.sv、comparator.sv、data_sync.sv、dc_fifo_generic.sv、dc_fifo_stub.sv、debouncer.sv、dp_ram.sv、edge_to_pulse.sv、glitch_filter.sv、moving_avg.sv、priority_arb.sv、pulse_sync.sv、reg_cdc.sv、reg_fifo.sv、reset_sync.sv、rrarb.sv、rst_pb_debounce.sv、sc_fifo.sv、str_fwd_fifo.sv、streaming_cdc.sv角色全设计公用的基础单元。关键模块FIFOsc_fifo、dc_fifo_generic、dc_fifo_stub、str_fwd_fifo、reg_fifoCDCstreaming_cdc、data_sync、pulse_sync、reg_cdc、cdc_reset_handshake复位reset_sync、rst_pb_debounceIO 调理debouncer、glitch_filter、edge_to_pulse存储/查找dp_ram、cam仲裁rrarb、priority_arb数学comparator、moving_avg依赖dc_fifo_stub实例化dc_fifo_generic。4.12packetizer/— 传感器侧分组/排序文件packetizer_top.sv、packetizer.sv、virtual_port.sv、odd_even_gen.sv角色对输入传感器数据按帧起始SOF进行虚拟端口排序、位宽转换生成供数据面封包器使用的 AXI-Stream 报文。关键模块packetizer_topAPB 控制顶层跨传感器时钟i_sclk与主机时钟i_pclk。packetizer虚拟端口排序引擎支持可配置 VP 数量/大小与排序网络。virtual_portper-VP 缓冲区实例化axis_buffer。odd_even_gen排序网络配置辅助。依赖packetizer_top实例化s_apb_reg、data_sync、packetizerpacketizer实例化virtual_port导入regmap_pkg、apb_pkg。4.13ptp/— IEEE 1588 / gPTP 时间同步子系统文件ptp_pkg.sv、ptp_top.sv、ptp_ingress.sv、ptp_parser.sv、ptp_sync.sv、ptp_dly.sv、ptp_calc.sv、ptp_timer.sv、ptp_egress.sv、dpll.sv角色接收主机 PTP 报文计算 offset/mean delay驱动 DPLL生成本地时间sec/nanosec/frac、PPS并发送 PTP delay-request/response 报文。关键模块ptp_top顶层封装APB 从机、主机 AXI-Stream RX/TX、PTP 时间输出。ptp_ingress捕获并打时间戳。ptp_parser解码 PTP 消息类型/字段。ptp_syncSync/Follow-up 处理。ptp_dlyDelay-request/response 处理与 egress 报文构造。ptp_calcOffset-from-master 与 mean-delay 计算。ptp_timer带频率调整的自由运行时间计数器。dpll数字锁相环。ptp_egress将 PTP 报文转回 AXI-Stream。依赖ptp_top实例化s_apb_reg、pulse_sync、ptp_ingress、ptp_parser、ptp_sync、ptp_dly、ptp_calc、ptp_timer、dpll、ptp_egress定义ptp_pkg。4.14ref_design/— 参考传感器/外设设计这些模块不被HOLOLINK_top直接实例化而是展示如何把外部传感器 IP 接到 Holoscan Sensor Bridge。4.14.1ref_design/delayed_io/文件delayed_io.sv、delayed_io_ctrl_fsm.sv角色带延迟 set/clear 的 APB 控制 GPIO 块。关键模块delayed_io双时钟 cmd/proc可扩展o_io_pins、delayed_io_ctrl_fsm。依赖delayed_io实例化delayed_io_ctrl_fsm导入apb_pkg。4.14.2ref_design/i2s/文件i2s_top.sv、i2s_serdes.sv、i2s_clk_gen.sv、i2s_axis_buffer_rx.sv、i2s_axis_buffer_tx.sv、i2s_pkg.sv角色完整 I2S 音频参考外设含 APB 配置与 TX/RX AXI-Stream 主机接口。关键模块i2s_top、时钟生成i2s_clk_gen、串并转换i2s_serdes、AXIS 缓冲i2s_axis_buffer_rx/tx。依赖i2s_top实例化其余i2s_*模块定义i2s_pkg。4.14.3ref_design/imu/文件imu_top.sv、imu.sv角色基于 I2C 的 IMU 传感器参考读取 IMU 数据并带 PTP 时间戳以 AXI-Stream 输出。关键模块imu_top加时间戳与 AXIS 帧封装、imuAPB 控制 I2C 事务引擎。依赖imu_top实例化imu导入apb_pkg、regmap_pkg。4.14.4ref_design/vsync/文件vsync_gen.sv角色APB 可配置的 VSYNC/帧同步脉冲生成器与 PTP 同步。关键接口APB 从机、PTP PPS/nanosec 输入、o_vsync_strb、GPIO 复用使能。依赖无导入apb_pkg。4.15reg_map/— 寄存器映射中心文件regmap_pkg.sv角色定义全 IP 共享的地址译码字段、子模块索引、global/host/sensor/peripheral 寄存器偏移。依赖被几乎所有带 APB 的模块导入。4.16reset_gen/— 复位生成文件reset_gen.sv角色为所有时钟域生成同步复位。关键接口i_sys_rst低有效异步、i_cfg_rst软复位、各路时钟输出 per-domain 高有效同步复位。依赖实例化misc/reset_sync。4.17roce/— RoCE 支持文件roce_icrc.sv、roce_ack.sv、lfsr_hc.sv角色提供 RoCE 内联 CRCroce_icrc、ACK 生成roce_ack及共享 LFSR CRC 核。关键模块roce_icrcAXIS CRC 追加/删除使用lfsr_hc。roce_ackRoCE ACK 生成与 QP 状态。lfsr_hc硬件优化的 LFSR CRC 引擎。依赖roce_icrc实例化lfsr_hcroce_ack导入apb_pkg、axis_pkg、regmap_pkg、rx_parser_pkg。4.18routing_table/— 桥接模式路由表文件routing_table.sv、bridge_pkt_proc.sv角色在 Hololink 桥接模式下学习源 MAC 并决定转发目的端口。关键模块routing_tableAXIS 输入、CAM 查找、目的端口向量、delay-request 标志。bridge_pkt_procAPB 控制处理 host/sensor AXI-Stream、路由信息、PTP sync/del 标志输出转发流。依赖routing_table实例化axis_to_vec、cam、rrarbx2导入ptp_pkgbridge_pkt_proc实例化s_apb_reg、axis_bufferx3、axis_mask、rrarbx2、sc_fifox2导入ptp_pkg、apb_pkg、regmap_pkg。4.19rx_parser/— 接收侧报文解析与分类文件rx_parser.sv、rx_ls_parser.sv、arp_ping_pkt_proc.sv、rx_parser_pkg.sv角色每个主机接口一个rx_parser解码 Ethernet/IP/UDP/RoCE/VLAN把流量导向传感器 TX、PTP、低速控制、桥接与 RoCE ACK 路径。关键模块rx_parser主机 AXIS 输入输出 sensor TX、PTP、低速 AXIS、bridge TX、RoCE ACK、o_dest_info、o_ptp_sync_msg。rx_ls_parser低速控制聚合器处理 BOOTP、ECB、事件、ARP/ping、回环输出行率 AXIS 到eth_pkt。arp_ping_pkt_proc生成 ARP 响应与 ICMP echo 响应。依赖rx_parser实例化s_apb_reg、axis_bufferx2、axis_reg、axis_remove、axis_to_vec、sc_fifox3、roce_ackrx_ls_parser实例化bootp、ctrl_bus_evt_int、ecb_rdwr_ctrl、axis_arbx2、axis_buffer、axis_hdr、roce_icrc、arp_ping_pkt_procarp_ping_pkt_proc实例化axis_reg、axis_to_vec、vec_to_axis定义rx_parser_pkg。4.20sensor_tx/— 主机到传感器发送路径文件sensor_tx_pkt_proc.sv、tx_stream_buffer.sv、axis_buffer_tx.sv、pause_gen.sv角色剥离网络头与 ICRC缓冲有效载荷跨时钟域并在传感器缓冲区将满时生成 Ethernet 暂停帧。关键模块sensor_tx_pkt_proc移除 RoCE/Ethernet 头ICRC路由到对应传感器。tx_stream_bufferper-sensor CDC 缓冲带可编程阈值与暂停生成。axis_buffer_tx内部双时钟缓冲/变速箱被tx_stream_buffer使用。pause_gen构造 802.3x 暂停帧。依赖sensor_tx_pkt_proc实例化axis_drop、axis_drop_tailtx_stream_buffer实例化s_apb_reg、data_syncx2、axis_buffer_txaxis_buffer_tx实例化axis_gearboxx2、axis_reg、dc_fifo_stub、pulse_sync、sc_fifopause_gen实例化vec_to_axis。4.21spi/— APB 控制 SPI 主设备文件spi.sv、spi_ctrl_fsm.sv角色APB 控制 SPI 主外设支持 QSPI。关键模块spi位级 SPI 引擎CS_N、SCK、4-bitSDIO。spi_ctrl_fsmAPB 寄存器接口、命令/数据 RAM、事务 FSM。依赖spi_ctrl_fsm实例化s_apb_reg、dp_ram、spi导入apb_pkg、regmap_pkg。4.22sys_init/— 系统初始化文件sys_init.sv、eeprom_info.sv角色sys_init上电后播放 APB 寄存器初始化序列eeprom_info从外部 I2C EEPROM 读取 MAC/IP/板卡信息。关键模块sys_init输入i_init、i_init_reg[N_REG]输出 APB master、o_done。eeprom_info输出 APB master 到 I2C/EEPROM以及mac_addr、ip_addr、board_version、board_sn、eeprom_crc_err。依赖sys_init实例化m_apb_reg导入apb_pkgeeprom_info额外导入regmap_pkg。4.23top/— 顶层集成文件HOLOLINK_top.sv角色整个 Holoscan Sensor Bridge IP 的顶层集成模块。关键接口外部 APB 控制面、传感器 RX/TX AXIS、主机 RX/TX AXIS、SPI/I2C/UART/GPIO、PTP 时钟与时间输出、系统复位输出。集成关系reset_gen提供所有复位。apb_intc_top将来自 ECB、sys_init、EEPROM、decoder 的 4 个内部主机端口路由到 device/global、sensor RX/TX、host、peripheral、bridge 与外部用户寄存器。每个主机接口一个rx_parser接收主机报文并分流。rx_ls_parser处理低速控制响应并回送给eth_pkt。ptp_top接收 PTP 报文并驱动 PPS/时间。dp_pkt_toppacketizer_top构成传感器→主机数据通路。sensor_tx_pkt_proctx_stream_buffer构成主机→传感器通路。eth_pkt仲裁所有主机 TX 源。可选桥接模式使用routing_tablebridge_pkt_proc。外设由spi_ctrl_fsm、i2c_ctrl_fsm、uart_ctrl_fsm控制。sys_initeeprom_info完成上电初始化。依赖包含HOLOLINK_def.svh导入HOLOLINK_pkg、apb_pkg、regmap_pkg。4.24uart/— APB 控制 UART 外设文件uart.sv、uart_ctrl_fsm.sv角色带 FIFO 与流控制的 APB 控制 UART 外设。关键模块uart可配置波特率、校验、数据位宽、毛刺滤波的 UART 核心。uart_ctrl_fsmAPB 寄存器接口、TX/RX FIFO、中断生成。依赖uart_ctrl_fsm实例化s_apb_reg、edge_to_pulse、sc_fifox2、uart导入apb_pkg、regmap_pkg。5. 各目录文件数量统计目录.sv文件数bootp1ctrl_bus_evt2data_gen3dp_pkt4ecb2eth_pkt1glb_ctrl1i2c2lib_apb11lib_axis18misc21packetizer4ptp10ref_design10reg_map1reset_gen1roce3routing_table2rx_parser4sensor_tx4spi2sys_init2top1uart2合计1126. 关键结论纯 SystemVerilog 实现nv_hsb_ip完全由.sv源文件构成无 TCL、XDC 或 README 文档。板级相关配置放在fpga/board/rtl/top/。高度模块化通用 APB/AXIS 库lib_apb、lib_axis、misc与面向应用的子系统packetizer、dp_pkt、rx_parser、ptp、sensor_tx等分离清晰。跨时钟域广泛传感器、主机、APB、PTP 多个时钟域之间大量使用misc/中的 CDC 原语streaming_cdc、data_sync、pulse_sync、reset_sync、各类 FIFO。可配置工作模式通过外部HOLOLINK_def.svh与顶层参数可支持 sensor-only、host-only 与 bridge 模式接收数据通路按主机接口数复制gen_rx_parser传感器 TX/RX 与外设按SENSOR_*_IF_INST宏索引。控制面与数据面分离APB 负责寄存器配置和低速命令AXI-Stream 负责高速数据低速控制包通过rx_ls_parser闭环返回主机。