开始定制生成的SystemVerilog代码

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

需求和先决条件

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

  • MATLAB®

  • 金宝app仿真软件®

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

  • 导师图形®ModelSim®/ QuestaSim®

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

背景

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

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

设置示例

运行以下代码来设置设计

cd (tempdir);[~, ~, ~] = rmdir('svdpi_SimpleFeedBack', 's');mkdir (“svdpi_SimpleFeedBack”);cd (“svdpi_SimpleFeedBack”);open_system (“svdpi_SimpleFeedBack”);

建立代码生成模型

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

选择代码生成->系统目标文件。单击Browse按钮并选择“systemverilog_dpi_gr .tlc”。

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

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

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

现在我们已经完成了配置参数面板。点击“确定”按钮关闭。

生成SystemVerilog DPI组件

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

rtwbuild('svdpi_SimpleFeedBack/F0') rtwbuild('svdpi_SimpleFeedBack/F2') rtwbuild('svdpi_SimpleFeedBack/F3') rtwbuild('svdpi_SimpleFeedBack/F0') rtwbuild('svdpi_SimpleFeedBack/F4')

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

复制测试台文件

运行以下命令将所有需要的测试工作台文件复制到当前目录

拷贝文件(fullfile (matlabroot,“工具箱”,‘hdlverifier’,‘hdlverifier_examples’,‘svdpi_SimpleFeedBack’,‘*’), pwd)

在测试台上连接控制信号,使其从Simulink中执行顺序较高的模块流向Simulink中执行顺序较低的模块。金宝app

运行生成的测试工作台

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

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

做sim.do

仿真结束后,您可以在ModelSim的波形窗口中检查各个子系统的输出与捕获信号之间的差异。