主要内容

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

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

金宝app支持的数据类型

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

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

  • int8int16int32int64

在仿真金宝app软件®MATLAB函数块端口必须使用数字类型sfix64ufix64对于64位的数据。
真正的
用以下方法生成的HDL代码MATLAB代码中的数据类型可以用于模拟,但不能合成。当您在Simulink模型中使用这些数据类型时,可以生成可合成的代码。金宝app有关更多信息,请参见:
字符 字符 - - - - - -
逻辑

逻辑

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

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

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

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

向量
  • 无序{N}

  • {1, N}

  • {N, 1}

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

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

矩阵

{N, M}

设计算法体支持矩阵,但不支金宝app持将矩阵作为顶级设计函数的输入。

不要在测试台上使用矩阵。

结构 结构体

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

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

枚举 枚举

枚举值必须单调递增。

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

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

  • IP核生成工作流

  • FPGA交钥匙工作流

  • FPGA-in-the-Loop

  • 高密度脂蛋白Cosimulation

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

金宝app支持运营商

请注意

为大的向量和矩阵输入生成的HDL代码会导致低效的代码。这些操作符的代码不会自动流水线。

算术运算符

操作 操作符的语法 等效函数 限制
二进制加法 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) - - - - - -
逻辑异或 xor 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编码器不支持非标量表达金宝app式语句。相反,使用所有任何将逻辑向量折叠成标量的函数。

如果

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

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

开关

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

  • uint8uint16uint32int8int16,或int32数据类型

  • 标量数据

如果多个情况下语句对相同的变量、数值类型和进行赋值fimath每个变量的规格必须相同情况下声明。

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

  • 打破

  • 继续

  • 返回

  • parfor

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

  • isequal

  • bitrevorder

另请参阅

|

相关的话题