RTScale 产品使用手册FPGA 插件系统

FPGA 插件系统 FPGA模型教程

本章介绍 FPGA 插件系统的使用方法。插件用于把模型的输入输出连接到设备的物理通道,也提供了一些开箱即用的功能模块(如波形发生器、光纤扩展等)。电路模型(InSolver)与数学模型(HDLCoder)两种流程共用同一套插件系统,均在生成比特流的通道映射界面中配置。

配置方法

在生成比特流的通道映射界面中,点击 Plugins 按钮打开插件配置窗口,点击 Add Instance 添加所需的插件并设置参数;返回主界面后,即可把模型端口绑定到该插件提供的通道上。配置完成后点击 Process 即可开始生成比特流。

📝 笔记

通道选择类插件(ai_mux / ao_mux / di_mux / do_mux)在比特流编译完成后仍可重新选择通道,无需重新编译。

可用插件

目前提供以下插件:

插件 用途
ai_mux 模拟输入通道选择:把模型的模拟输入绑定到板卡 ADC 通道,默认 26 通道
ao_mux 模拟输出通道选择:把模型信号输出到板卡 DAC 观察,支持增益 / 偏置调节。28 通道(1~8 为快速通道,9~28 为慢速通道)
di_mux 数字输入通道选择:把板卡 GPIO 接到模型的数字输入(如门控信号),默认 50 通道
do_mux 数字输出通道选择:把模型的数字输出接到板卡 GPIO,默认 50 通道
dynamic_load 动态负载波形发生器:自动循环输出梯形波模拟负载变化,峰值、速率与时间均可在线调整
lpf_sfp_data 光纤数据收发(带均值滤波):两台设备经光纤交换模型数据,两端收发路数需一致
sfp_io 光纤 IO 扩展:主端把模拟输出发往远端扩展箱、并接收远端的数字输入;从端装在远端扩展箱上,自动收发,无需配置

自定义插件

除内置插件外,也可以自行开发插件。插件统一存放在安装目录的 firmware/fpga/rtl/custom_plugin 下,每个插件对应一个独立的文件夹,文件夹内包含两个文件:实现功能的 SystemVerilog 源文件(.sv),以及描述该插件属性的 .json 文件。软件启动时会自动扫描该目录并注册其中的插件,无需额外配置。

描述文件需要包含以下字段:

字段 说明
plugin_name 插件名称,需与文件夹名一致
description 插件用途说明,会显示在插件选择列表中
ip_files 插件包含的 SystemVerilog 文件名列表
parameters 用户在插件配置窗口中可设置的参数,例化时填入
system_parameters 无需用户配置、由系统在编译时自动获取的参数(如模型步长)
system_ports 连接到已有顶层端口的信号(如 clkrst_n),无需额外定义
binding_ports 供模型端口绑定的信号,即插件对外提供的通道
other_ports 插件自身的配置寄存器或观测输出,只能是 CPU 接口

其中 parameters 中的参数会出现在插件配置窗口中供用户填写;binding_ports 决定了该插件能被模型端口绑定的通道;other_ports 中带 label 的参数会显示在界面上,供运行时在线调整。

以内置的 dynamic_load 为例,其描述文件的结构如下(已省略部分字段):

{
  "plugin_name": "dynamic_load",
  "description": "动态负载波形发生器:自动循环输出梯形波模拟负载变化。",
  "ip_files": ["dynamic_load.sv"],
  "parameters": [],
  "system_parameters": [],
  "system_ports": [
    { "name": "clk",   "direction": "input", "data_type": "wire", "interface_type": "none" },
    { "name": "rst_n", "direction": "input", "data_type": "wire", "interface_type": "none" }
  ],
  "binding_ports": [
    { "name": "wave_out", "direction": "output", "data_type": "sfix32_en24", "interface_type": "none" }
  ],
  "other_ports": [
    { "name": "ramp_max", "direction": "input", "data_type": "sfix32_en24",
      "interface_type": "cpu", "is_bin_param": true, "value": 100, "label": "Peak value" }
  ]
}
⚠️ 注意

绑定时需遵守以下规则,否则格式检查会报错:端口的数据类型必须一致方向必须匹配(模型的输出接插件的输入);插件的输入端口不能同时被多个信号绑定(输出端口可以驱动多个信号);数组型端口需使用 实例名@端口名[序号] 的格式且下标不能越界。

自定义插件涉及 FPGA 开发,建议在瞬迦技术支持的协助下进行;也可以参考内置插件目录中的现有实现。