主要内容

为用户定义的生成代码系统对象

如何创建一个用户定义的系统对象

创建一个用户定义的系统对象™和生成代码:

  1. 创建一个类的子类matlab.System

  2. 定义一个以下的方法:

    • setupImplstepImpl

    • setupImpl,outputImpl,updateImpl

  3. 可选地,如果你的系统对象有私人状态属性,定义resetImpl方法来初始化它们为零。

  4. 写一个顶级设计函数创建了一个实例系统的对象并调用对象,或调用输出更新方法。

    请注意

    resetImpl方法在系统对象初始化时自动运行。HDL代码生成,你不能打电话给公众重置方法。

  5. 写一个试验台功能练习顶层设计功能。

  6. 生成HDL代码。

用户定义的系统对象例子

这个例子展示了如何为一个用户定义的系统对象生成HDL代码实现setupImplstepImpl方法。

  1. 在一个可写的文件夹中,创建一个系统对象,CounterSysObj子类从matlab.System。将代码保存为CounterSysObj.m

    classdef CounterSysObj < matlab。系统属性(Nontunable)阈值= int32结束(1)属性(访问=私人)状态结束计数方法函数obj = CounterSysObj(变长度输入宗量)找(obj,输入参数个数,变长度输入宗量{:});结束结束方法(访问=保护)函数setupImpl (obj, ~) % obj初始化状态。数= int32 (0);obj。状态= int32 (0);结束函数y = stepImpl (obj, u)如果obj。阈值> u (1) obj.Count (:) = obj。数+ int32 (1);%增量计算y = obj.State结束;%延迟输出obj。状态= obj.Count;%将新值放在端端端状态
    stepImpl方法实现了系统对象的功能。的setupImpl方法定义了系统中的持久性变量的初始值对象。

  2. 写一个函数,使用这个系统对象并将其保存myDesign.m。这个函数是DUT。

    函数y = myDesign (u)持久obj如果isempty (obj) obj = CounterSysObj(“阈值”,5);结束y = obj (u);结束

  3. 编写一个试验台,调用DUT函数并将其保存myDesign_tb.m

    2 = 1:10 y = myDesign清楚myDesign (int32 (ii));结束

  4. 生成DUT HDL代码像其他MATLAB函数®代码,但跳过定点转换。

相关的话题