这个例子展示了如何从Simulink®模型中的比例-积分-微分(PID)控制器生成SystemVerilog DPI组件,以及如何将组件导出到HDL模拟器。万博1manbetx
本例中需要这s manbetx 845些产品。
其中一个受支持的HDL模拟万博1manbetx器:Mentor Graphics®ModelSim®/QuestaSim®或Cadence®Incisive
这些受支持的C编译器之一:万博1manbetxMicrosoft®Visual C++或GNU GCC
要使用正确的目标文件设置模型,请打开HDL验证器通过在应用程序中单击其应用程序图标应用程序标签。此操作添加了HDL验证器选项卡添加到Simul万博1manbetxink Toolstrip。然后,在模式节选择DPI组件生成将模型的系统目标文件设置为“systemverilog\u dpi\u grt.tlc”。如果安装了Embedded Coder®,则目标文件将改为“systemverilog\u dpi\u ert.tlc”。
要为DPI组件生成SystemVerilog测试台,请在地图关于HDL验证器选项卡,选择包括试验台.
单击打开模型的配置参数C代码设置在预备节。
在工具链设置节中,如果您使用的是Windows,则选择一个Visual Studio版本;如果您使用的是Linux,则选择一个GCC工具链。
清晰的仅生成代码.
要在SystemVerilog环境中访问DPI组件的内部信号,请使用DPI- c测试点日志功能。
双击要访问的信号以高亮显示该信号并为其输入信号名称。要将信号标记为测试点,请从预备部分,单击万博1manbetx测试点.要捕获内部信号的测试向量并在生成的测试台中回放该向量,请单击日志信号当信号高亮显示时,在画廊中。
启用C API选项。在“配置参数”对话框中的代码生成>接口选项卡,选择信号.
选择要用于访问测试点的SystemVerilog函数的接口。使用上的选项自定义生成的DPI组件代码生成>SystemVerilog DPI标签。
在测试点访问函数,当你设定生成对测试点的访问函数到没有
,将忽略标记的测试点,并且不会生成访问函数。将值更改为每个测试点一个功能
使您能够独立访问每个测试点。此图显示了为该示例生成的接口。
使用值一个用于所有测试点的函数
允许您通过一个函数调用访问所有测试点。
在“svdpi_pid”Simulin万博1manbetxk模型中,选择控制器子系统模块。在产生在“工具条”上,单击生成DPI组件.
点击构建在显示的对话框中。
SystemVerilog组件生成为“Controller\u build/Controller\u dpi.sv”。代码生成完成后,检查新组件。
要选择HDL模拟器,请单击选择模拟器在核实部分,然后选择HDL模拟器或将模拟器添加到路径。
要在批处理模式下模拟SystemVerilog测试台,请单击运行测试台. 或者,您可以通过单击在GUI模式下执行模拟在GUI模式下运行测试台>启动模拟器.
模拟完成后,此文本将在控制台中打印。
**************测试完成(通过)**************