适用于 PL 内核的 MATLAB API - 2023.2 简体中文

Vitis 统一软件平台文档 应用加速开发 (UG1393)

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 简体中文

此处提供了 PL 内核专用 API 的列表,并演示了如何将其用于集成流量生成器。您可凭借 MATLAB API 创建流量生成器代码以生成数据用于传递到 PL 内核中或者从 PL 内核收集数据。以下 API 可用于例化对象以便发送和接收数据。您可向 send_datareceive_data 提供任意数据类型矢量/列表。

您需要设置 MATLAB 库路径才能使用 API。

vivado = getenv("XILINX_VIVADO");
libPath = fullfile(vivado, "/data/emulation/matlab/xtlm_ipc");
addpath(libPath)
例化各类以发送或接收数据
hls_input_stream(name, datatype)
hls_output_stream(name, datatype)

参数:

  • name:与 PL 内核相匹配的字符串名称
  • datatype:基于 HLS 内核数据类型的字符串值。受支持的值包括 [ "int8", "uint8","int16", "uint16","int32", "uint32","int64", "uint64","float", "bfloat16"]
表 1. 受支持的 PL 内核数据类型
  PL 内核数据类型 EOU API 枚举字符串 示例
1 int8 int8 input_port = hls_input_plio('input_port_name',"int8")
2 int16 int16 input_port = hls_input_plio('input_port_name',"int16")
3 int32 int32 input_port = hls_input_plio('input_port_name',"int32")
4 int64 int64 input_port = hls_input_plio('input_port_name',"int64")
5 uint8 uint8 input_port = hls_input_plio('input_port_name',"uint8")
6 uint16 uint16 input_port = hls_input_plio('input_port_name',"uint16")
7 uint32 uint32 input_port = hls_input_plio('input_port_name',"uint32")
8 uint64 uint64 input_port = hls_input_plio('input_port_name',"uint64")
9 float float input_port = hls_input_plio('input_port_name',"float")
10 double double input_port = hls_input_plio('input_port_name',"double")
send_data()
send_data(data, tlast)
creates a non-blocking call to send data

不返回任何结果

参数:

  • data:对象的指定数据类型列表
  • tlast:布尔值,值为 true (1) 或 false (0)
注释: 数据类型必须在对象例化期间指定
receive_data()
receive_data()
creates a blocking call to receive data

返回指定数据类型的列表

注释: 数据类型必须在对象例化期间指定
receive_data_with_size()
receive_data_with_size(data_size)
creates a blocking call to receive a specified amount of data

返回指定数据类型的列表

参数:

  • data_size:整数值,指定要接收的数据量(以字节为单位)
注释: 数据大小以字节为单位来指定
receive_data_on_tlast()
receive_data_on_tlast()
creates a blocking call returning data after receiving tlast packet

返回指定数据类型的列表

注释: 数据类型必须在对象例化期间指定