金宝app支持MATLAB数据类型,操作符和控制流语句
当您从MATLAB生成HDL和SystemC代码时®算法,使用HDL Coder™支持的数据类型,操作符和控制流语句。金宝app
金宝app支持的数据类型
HDL编码器不支持单元格数组和金宝app正
数据类型。下表显示了支持的MATLAB数据类型子集。金宝app
类型 | 金宝app支持的数据类型 | 限制 |
---|---|---|
整数 |
|
在仿真金宝app软件®,MATLAB函数块端口必须使用数字类型sfix64 或ufix64 对于64位数据。 |
真正的 |
|
生成的HDL代码 SystemC代码生成不支持真实数据类型。金宝app |
字符 | 字符 |
- - - - - - |
逻辑 |
|
- - - - - - |
不动点 |
|
不支持斜率(不等于1.0)和偏差(不等于0.0)的定点数。金宝app 定点数字的最大字长为128位。 |
向量 |
|
允许的向量元素的最大数量是2^32。 在变量下标之前,必须完全定义它。 |
矩阵 |
|
矩阵在设计算法的主体中得到金宝app支持,并作为顶层设计函数的输入。 |
结构 | 结构体 |
不支持结构的数组。金宝app 对于FPGA Turnkey和IP Core Generation工作流,结构在设计算法的主体中得到支持,但不支持作为顶层设计功能的输入。金宝app 结构不支持作为SystemC代码生成的金宝app顶级DUT端口的输入和输出。 |
枚举 | 枚举 |
枚举值必须是单调递增的。 如果您的目标语言是Verilog®,所有枚举成员名在设计中必须是唯一的。 以下工作流或验证方法不支持顶级DUT端口上的枚举:金宝app
在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) |
为矩阵算术运算生成的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中的条件表达式
如果多个 |
不支持以下控制流语句:金宝app
而
打破
继续
返回
parfor
避免使用以下向量函数,因为它们可能生成包含打破
声明:
isequal
bitrevorder