从定制生成的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波形窗口中捕获的信号之间的差异。