万博1manbetx将浮点数转换为定点数字仿真软件模型

19日视图(30天)
根据MATLAB代码的图像加密算法,仿真软件的几个从工作区中得到的数据模型。万博1manbetx输入MATLAB函数,我想进行定点生成Verilog HDL,但输出矩阵总是浮点数。该算法首先读取图像信息,得到的数据类型作为unit8,然后将其转换为双。我注释转换建模时的两倍。img uni8的显示模式,但仍然是双输出矩阵。我改变输出unit8,仿真软件预计当一个错误报告的两倍。万博1manbetx这有什么其他输入参数输入时双?我该如何解决这个问题?
我改变了输出数据类型unit8和错误 作业写了“双重”值为“uint8”类型。通过赋值代码生成不支持改变类型。万博1manbetx检查前的作业输入类型规格类型不匹配。函数“unit8Fcn”( # 24.408.411 24),行,列1:“img”启动诊断 报告
函数[img] = system3 (lambd, m, n)
U = lambd;
V = lambd;
W = lambd;
X = 0 (1 m * n);
i = 1: m * n
U =国防部(12 * 251 (U);
V =国防部(13 * V, 241);
W = mod (14 * W, 239);
X (i) =国防部(U + V + W, 256);
结束
img =重塑(X, m, n);
结束

接受的答案

安迪·巴特利特
安迪·巴特利特 2023年2月21日
默认0()给两倍
输出两倍,因为它是如何初始化0()函数
n = 3;
m = 4;
X1 = 0 (1 m * n);
class_X1 =类(X1)
class_X1 =“双”
使用“喜欢”来控制数据类型
迫使零的输出是一样的另一个变量可以使用“喜欢”的论点。这与浮点,整数,定点,布尔。
lambd = uint16 (7);
X2 = 0 (1 m * n“喜欢”,lambd);
class_X2 =类(X2)
class_X2 =“uint16”
如果需要使用类名称参数数据类型是提前知道和MATLAB内置
如果数据类型是提前知道和一个内置的类型,然后你可以给类的名称作为参数。
X3 = 0 (1 m * n“逻辑”);
class_X3 =类(X3)
class_X3 =“逻辑”
这并不与定点,但有一个简单的解决方案。创建一个虚拟变量“原型”和使用“喜欢”语法。
prototypeVar = fi(7)[], 16日;
X4 = 0 (1 m * n“喜欢”,prototypeVar);
class_X4 =类(X4)
class_X4 =“embedded.fi”
元= numerictype (X4)
元= DataTypeMode:定点:二进制扩展Signedness:签了字:16 FractionLength: 7

答案(1)

安迪·巴特利特
安迪·巴特利特 2023年2月21日
建议考虑使用modByConstant
自“分母”你的模是常数,你我希望使用modByConstant函数或类似的模型块。万博1manbetx直接使用国防部可以实现使用一个划分,可以“昂贵”,如果针对嵌入式单片机和FPGA。
modByConstant优化实现只使用一个乘法和转变,可以比基于划分的方法快得多。

翻译的