主要内容

从定制生成的SystemVerilog代码开始

这个例子向您展示了如何在SystemVerilog DPI组件生成过程中自定义生成的SystemVerilog代码。

要求和前提条件

下载188bet金宝搏本示例所需的产品:

  • MATLAB®

  • 金宝app仿真软件®

  • 金宝app仿真软件编码器™

  • Mentor Graphics®ModelSim®/QuestaSim®

  • 支持的C编译器之一:M金宝appicrosoft®Visual c++或GNU GCC

背景

如果默认生成的SystemVerilog代码不满足您的需求,您可以选择自定义生成的代码。这个例子展示了如何定制生成的代码。

在下面的Simulink模型中,所金宝app生成的对应子系统F0、F2、F3和F4的代码分别导出为SystemVerilog模块。默认情况下,每个模块包含三个控制信号:clock、clock enable和reset。在HDL仿真中,子系统更新和输出函数将在时钟信号的上升沿上调用。事件调度器将在HDL模拟器中以与Simulink模型相同的顺序触发这些更新和输出函数。金宝app

开放的例子

运行以下代码打开设计

open_system (“svdpi_SimpleFeedBack”);

建立代码生成模型

从svpid_Si金宝appmpleFeedBack模型打开Simulink模型配置参数面板。设置以下参数:

选择“代码生成->系统目标文件”。点击浏览按钮,选择“systemverilog_dpi_grt.tlc”。

在工具链设置中,如果使用Windows,则选择一个Visual Studio版本,如果使用Linux,则选择一个GCC工具链。确保未选中“仅生成代码”选项。

选择“Code Generation -> SystemVerilog DPI”,勾选“自定义生成的SystemVerilog代码”选项。确保“源文件模板”设置为默认模板“svdpi_event.vgt”。

您也可以点击“编辑”按钮,查看默认的SystemVerilog模板。

现在我们已经完成了Configuration Parameter面板。点击“确定”按钮关闭。

生成SystemVerilog DPI组件

在“svdpi_SimpleFeedBack”模型中,为子系统F0、F2、F3和F4生成C代码。您可以通过在MATLAB中运行以下命令从命令行生成C代码:

slbuild (“svdpi_SimpleFeedBack / F0”) slbuild (“svdpi_SimpleFeedBack / F2”) slbuild (' svdpi_SimpleFeedBack / F3 ') slbuild (“svdpi_SimpleFeedBack / F4”

现在,这些子系统的C代码分别在子目录“F0_build”、“F2_build”、“F3_build”和“F4_build”中生成。

测试工作台文件

在测试工作台“SimpleFeedback_tb.”sv”控制信号被连接,使其从Simulink中执行顺序较高的模块流向Simulink中执行顺序较低的模块。金宝app

运行生成的测试台架

  • 在GUI模式下启动ModelSim/QuestaSim,并在MATLAB中将目录更改为当前目录。在ModelSim/QuestaSim中,输入以下命令来编译您的设计

build.do
  • 在ModelSim/QuestaSim中,输入以下命令来模拟您的设计

sim.do

当模拟完成时,您可以检查每个子系统的输出和ModelSim波形窗口中捕获的信号之间的差异。