主要内容

金宝app支持MATLAB数据类型,操作符和控制流语句

当您从MATLAB生成HDL和SystemC代码时®算法,使用HDL Coder™支持的数据类型,操作符和控制流语句。金宝app

金宝app支持的数据类型

HDL编码器不支持单元格数组和金宝app数据类型。下表显示了支持的MATLAB数据类型子集。金宝app

类型 金宝app支持的数据类型 限制
整数
  • uint8uint16uint32uint64

  • int8int16int32int64

在仿真金宝app软件®MATLAB函数块端口必须使用数字类型sfix64ufix64对于64位数据。
真正的

生成的HDL代码你的MATLAB代码中的数据类型可以用于模拟,但不能合成。在Simulink模型中使用这些数据类型时,可以生成可合成的代码。金宝app有关更多信息,请参见:

SystemC代码生成不支持真实数据类型。金宝app

字符 字符 - - - - - -
逻辑

逻辑

- - - - - -
不动点
  • 缩放(仅限二进制点)定点数

  • 自定义整数(零二进制点)

不支持斜率(不等于1.0)和偏差(不等于0.0)的定点数。金宝app

定点数字的最大字长为128位。

向量
  • 无序{N}

  • {1, N}

  • {N, 1}

允许的向量元素的最大数量是2^32。

在变量下标之前,必须完全定义它。

矩阵

{N, M}

矩阵在设计算法的主体中得到金宝app支持,并作为顶层设计函数的输入。

结构 结构体

不支持结构的数组。金宝app

对于FPGA Turnkey和IP Core Generation工作流,结构在设计算法的主体中得到支持,但不支持作为顶层设计功能的输入。金宝app

结构不支持作为SystemC代码生成的金宝app顶级DUT端口的输入和输出。

枚举 枚举

枚举值必须是单调递增的。

如果您的目标语言是Verilog®,所有枚举成员名在设计中必须是唯一的。

以下工作流或验证方法不支持顶级DUT端口上的枚举:金宝app

  • IP核生成流程

  • FPGA交钥匙工作流程

  • FPGA-in-the-Loop

  • 高密度脂蛋白Cosimulation

  • SystemC代码生成工作流

在SystemC代码生成的顶级DUT端口上金宝app,不支持枚举作为输入和输出。

HDL和SystemC代码生成不支持全局变量。金宝app

金宝app支持运营商

请注意

为算术运算的大型矢量和矩阵输入生成的HDL和SystemC代码可能导致代码效率低下。这些操作符的代码不会自动流水线化。

算术运算符

操作 操作符的语法 等效函数 限制
二进制加法 A + B + (A, B) 既不一个也不B可以是数据类型逻辑
矩阵乘法 A * B mtimes (A, B)

为矩阵算术运算生成的HDL代码没有流水线化,可能导致代码效率低下。

Arraywise乘法 a * B 时报》(A, B) 既不一个也不B可以是数据类型逻辑
矩阵幂 A ^ mpower (A, B)

一个而且B必须是标量,和B必须为整数。

为矩阵算术运算生成的HDL代码没有流水线化,可能导致代码效率低下。

Arraywise权力 B a . ^ 功率(A, B) 一个而且B必须是标量,和B必须为整数。
复杂的转置 一个“ ctranspose (A) - - - - - -
矩阵的转置 一个。” 置(A)
矩阵concat [B] 没有一个 - - - - - -
矩阵指数 c (r) 没有一个 在使用变量之前,必须完整地定义它。

逻辑运算符

操作 操作符的语法 M函数等价 笔记
逻辑和 方式 和(A, B) - - - - - -
逻辑或 A | 或(A, B) - - - - - -
逻辑异或 A异或B xor (A, B) - - - - - -
逻辑和(短路) A&&B

N/A

在条件语句中使用短路逻辑运算符。
逻辑或(短路) 一个| | B

N/A

在条件语句中使用短路逻辑运算符。
元素的补充 ~一个 (一) - - - - - -

关系运算符

关系 操作符的语法 等效函数
不到 < B lt (A, B)
小于或等于 < = B 勒(A, B)
大于或等于 > = B 通用电气(A, B)
大于 A > gt (A, B)
平等的 A = = eq (A, B)
不平等的 ~ = B ne (A, B)

控制流程报表

HDL Coder支金宝app持以下带有限制的控制流语句和构造。

控制流程表 限制

不要使用没有静态边界的循环。

请勿使用而且|的条件下的运算符声明。相反,使用& &而且||操作符。

的条件下,HDL Coder不支持非标金宝app量表达式语句。相反,使用所有任何函数将逻辑向量折叠为标量。

如果

请勿使用而且|的条件下的运算符如果声明。相反,使用& &而且||操作符。

的条件下,HDL Coder不支持非标金宝app量表达式如果语句。相反,使用所有任何函数将逻辑向量折叠为标量。

开关

a中的条件表达式开关情况下语句只能使用:

  • uint8uint16uint32int8int16,或int32数据类型

  • 标量数据

如果多个情况下语句对同一变量进行赋值,即数值类型和fimath该变量的说明必须在每一个中都相同情况下声明。

不支持以下控制流语句:金宝app

  • 打破

  • 继续

  • 返回

  • parfor

避免使用以下向量函数,因为它们可能生成包含打破声明:

  • isequal

  • bitrevorder

另请参阅

|

相关的话题