主要内容

用于HDL代码生成的模型引用

模型引用对代码生成的好处

在DUT子系统中引用模型使您能够:

  • 将大型设计划分为较小设计的层次结构,以便重用、模块化开发和加速仿真。

  • 增量地生成和测试代码。

    HDL Coder™增量生成代码的参考模型根据配置参数对话框>模型引用面板>重建选项。

    然而,HDL Coder处理如果检测到任何变化而且如果检测到任何已知依赖项的变化是一样的。例如,如果你设置重建要么如果检测到任何变化如果检测到任何已知依赖项的变化, HDL Coder仅在引用模型发生更改时才为引用模型重新生成代码。

如何为引用模型生成代码

默认情况下,为单个库中的模型引用生成VHDL代码启用。VHDL代码在单个库中生成,而不是在单独的库中生成。在本例中,设置ScalarizePorts财产在生成HDL代码之前。

在生成代码时,如果您在连接两个或多个生成的VHDL时遇到向量端口之间的输入或命名冲突®代码模块,使用ScalarizePorts属性生成不冲突的端口定义。有关更多信息,请参见Scalarize港口

在模型引用边界上使用矢量或矩阵端口需要在生成的VHDL代码中对端口进行缩放,或者将类型定义或代码放在单个库中。当生成VHDL代码时,任意设置Scalarize港口或使为单个库中的模型引用生成VHDL代码选择。

您可以使用UI或命令行为引用的模型生成HDL代码。

界面方式

  1. 右键单击Model块并选择HDL代码>HDL块属性

  2. 体系结构中,选择ModelReference

  3. 从DUT子系统生成HDL代码。

命令行方式

  1. 设置体系结构属性的模型块ModelReference.例如,对于DUT子系统,mydut,其中包括一个模型参考,referenced_model,输入如下命令:

    hdlset_param (“mydut / referenced_model”...“架构”“ModelReference”);

  2. 为您的DUT子系统生成HDL代码。

    makehdl (“mydut”);

为模型参数生成代码

生成一个Verilog®模块或硬件描述语言(VHDL)实体有关具有不同模型参数值的引用模型的实例,请参见为参考模型生成参数化代码

生成的评论

中输入文本模型块属性对话框描述字段,HDL Coder在HDL代码中生成注释。

限制

  • 模型块必须有块参数的默认值。

  • 模型块不能是被屏蔽的子系统。

  • 引用同一模型的多个模型引用必须具有相同的HDL块属性。

  • 引用的模型不能是受保护的模型。

  • 必须禁用分层分布式管道。

HDL Coder不能跨模型引用移动寄存器。因此,引用模型可以抑制这些优化:

  • 分布式流水线

  • 受限输出流水线

  • 流媒体

要使用这些优化,请考虑使用子系统引用而不是模型引用。有关更多信息,请参见子系统的参考

当您拥有模型引用并生成HDL代码时,生成的模型、验证模型和联合仿真模型可能无法编译或模拟。要修复编译或模拟错误,请确保已加载引用的模型或在搜索路径上。

编码器可以应用资源共享优化来共享引用的模型实例。但是,只有当所有指向相同引用模型的模型引用在优化和速率传播后具有相同的速率时,您才能应用此优化。模型参考最终速率可能与原始速率不同,但所有指向相同参考模型的模型引用必须具有相同的最终速率。