主要内容

与持久变量和系统对象模型状态

这个例子展示了如何使用持久性变量和系统对象模型状态和延迟的MATLAB®设计HDL代码生成。

介绍

使用系统对象模型的延迟导致简洁生成的代码。

在MATLAB中,多个调用一个函数有持久变量不会导致多个延迟。相反,国家多次更新函数。

为了重用代码实现一个函数与状态,需要多次重复的功能创建多个实例算法的延迟。

检查MATLAB代码

看看Sobel算法的实现。

检查设计的延迟和缓冲区的建模使用行:

请注意,filterdelay函数是重复的与不同的函数名称mlhdlc_sobel代码实例化多个版本的算法在MATLAB HDL代码生成。

延迟线的实现是通过使用MATLAB持久变量时要复杂得多。

现在检查的简化实现相同的算法使用系统中的对象mlhdlc_sysobj_sobel

如果使用HDL代码生成的约束内,dsp。总是延迟对象映射到寄存器。持久性变量被推断为寄存器,你必须小心阅读变量之前写信给它映射到一个寄存器。

MATLAB设计

demo_files = {“mlhdlc_sysobj_sobel”,“mlhdlc_sysobj_sobel_tb”,“mlhdlc_sobel”,“mlhdlc_sobel_tb”};

已知的限制

预定义的系统对象,高密度脂蛋白编码器™只支持金宝app一步方法,不支持金宝app输出更新方法。

只支持一步金宝app法,延迟不能用于建模的反馈路径。例如,下面的MATLAB代码不能使用的支持金宝appdsp.Delay系统对象。

% # codegen函数y =积累(u)持续的p;如果isempty (p) p = 0;结束y = p;p = p + u;

创建一个新的HDL编码项目

创建一个新项目,输入以下命令:

编码器-hdlcoder不管是新mlhdlc_sobel

接下来,添加文件mlhdlc_sobel.m项目的MATLAB函数mlhdlc_sobel_tb.mMATLAB试验台。

为一个更完整的教程创建并填充MATLAB HDL编码项目,明白了开始使用MATLAB对高密度脂蛋白的工作流

定点运行转换和HDL代码生成

顾问和右键单击启动工作流代码生成的一步。选择的选项选择任务运行从一开始的所有步骤运行通过HDL代码生成。

检查生成的HDL代码通过单击超链接在代码生成日志窗口。

现在,创建一个新项目的系统对象设计:

编码器-hdlcoder不管是新mlhdlc_sysobj_sobel

添加的文件mlhdlc_sysobj_sobel.m项目的MATLAB函数mlhdlc_sysobj_sobel_tb.mMATLAB试验台。

重复代码生成步骤和检查生成的定点MATLAB和HDL代码。

其他说明:

您可以使用整数延迟模型dsp.Delay对象通过设置长度属性大于1。这些延迟对象将被映射到移位寄存器在生成的代码。

如果优化选项持续的数组变量映射到公羊启用,延迟系统对象会映射到块公羊在下列条件:

  • InitialConditions财产的dsp.Delay设置为零。

  • 延迟输入不浮点数据类型。

  • RAMSize(DelayLength * InputWordLength)大于或等于内存映射的阈值