当你从MATLAB生成HDL代码时®算法,使用HDL Coder™支持的数据类型、操作符和控制流语句。金宝app
HDL编码器不支持单元格数组和金宝app正
数据类型。该表显示了MATLAB数据类型的支持子集。金宝app
类型 | 金宝app支持的数据类型 | 限制 |
---|---|---|
整数 |
|
在仿真金宝app软件®,MATLAB函数块端口必须使用数字类型sfix64 或ufix64 对于64位的数据。 |
真正的 |
|
用以下方法生成的HDL代码双 或单 MATLAB代码中的数据类型可以用于模拟,但不能合成。当您在Simulink模型中使用这些数据类型时,可以生成可合成的代码。金宝app有关更多信息,请参见: |
字符 | 字符 |
- - - - - - |
逻辑 |
|
- - - - - - |
不动点 |
|
不支持斜率(不等于1.0)和偏差(不等于0.0)的定点数字。金宝app 定点数字的最大字长是128位。 |
向量 |
|
允许的最大向量元素数是2^32。 在变量下标之前,它必须被完全定义。 |
矩阵 |
|
设计算法体支持矩阵,但不支金宝app持将矩阵作为顶级设计函数的输入。 不要在测试台上使用矩阵。 |
结构 | 结构体 |
不支持结构的数组。金宝app 对于FPGA Turnkey和IP Core Generation工作流程,结构在设计算法体中支持,但不支持作为顶级设计功能的输入。金宝app |
枚举 | 枚举 |
枚举值必须单调递增。 如果您的目标语言是Verilog®,所有枚举成员名在设计中必须是唯一的。 以下工作流或验证方法不支持顶级DUT端口的枚举:金宝app
|
在HDL代码生成中不支持全局变量。金宝app
请注意
为大的向量和矩阵输入生成的HDL代码会导致低效的代码。这些操作符的代码不会自动流水线。
算术运算符
操作 | 操作符的语法 | 等效函数 | 限制 |
---|---|---|---|
二进制加法 | 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) |
- - - - - - |
逻辑异或 | 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式 |
开关 |
中的条件表达式
如果多个 |
不支持以下控制流语句:金宝app
而
打破
继续
返回
parfor
避免使用下列向量函数,因为它们可能生成包含打破
声明:
isequal
bitrevorder