点击蓝字,关注我们
ModCoupler-Verilog是PSIM软件的一个模块,专门用于仿真软件ModelSim®和PSIM®之间的通信接口,利用该模块,可以对采用PFGA控制的电力电子设备进行联合仿真。这种情况下,采用Verilog描述的数字控制算法将在ModelSim中进行仿真,而功率级将在PSIM中进行仿真。
在PSIM端,必须在原理图中包含ModCoupler-Verilog功能块,在ModelSim端,不需要进行任何更改。根据PSIM的原理图,用户将向ModCoupler-Verilog模块提供时间步长、Verilog clk信号频率和输入输出信号信息,以配置协同仿真。图1显示了基本的协同仿真结构。
图1 协同仿真体系结构
在每个仿真瞬间,两个仿真器都会停止。ModCoupler模块的输入信号值被转发到负责控制算法的数字电路。一旦ModelSim的计算完成,Verilog的输出值就会被发送回去以完成闭环。之后,每个仿真器运行一个新的仿真步长,并重复该循环。注意,一个PSIM仿真步长对应于多个ModelSim仿真步长。
下面介绍如何从头开始构建协同仿真环境(假设用户为模拟仿真提供PSIM示意图,为数字仿真提供Verilog描述)。
1. ModCoupler-Verilog模块配置
在PSIM原理图文件(如果需要,创建一个新的)中添加一ModCoupler-Verilog块(在Elements菜单的控制子菜单上),如图2所示。
图2 ModCoupler-Verilog模块菜单
图3显示了ModCoupler-Verilog模块的主对话窗口。
图3 ModCoupler-Verilog模块对话框窗口
不同的参数解释如下:
❖
输入数据文件:顶部实体Verilog文件。选择此文件后,将创建输入/输出节点列表。
❖
Wave file:包含要在ModelSim波形窗口中显示的信号的文件。
❖
ModelSim Time Step: ModelSim模拟时间步长。该值必须小于模拟控制的PSIM时间步长ModelSim时间步长:
❖
Clk signal frequency:ModelSim clk信号的频率。请注意,clk信号不作为输入进行处理,因为周期通常小于PSIM时间步长。
❖
ModelSim Run All (Yes/No)(是/否):允许在不按下“运行–全部”按钮的情况下启动ModelSim仿真。建议在第一次运行仿真时将该参数设置为“否”,以便选择要在ModelSim波形窗口中显示的信号。
❖
Split input buses (Yes/No): 分离输入总线(是/否),允许将输入矢量信号拆分为不同的位。
❖
Split output buses (Yes/No): 分离输出总线(是/否),允许将输出矢量信号拆分为不同的位。
2. Verilog文件的编译
ModCoupler-Verilog需要一个Verilog设计的编译模型才能运行。另外,“work”ModelSim库必须位于工作目录中(包含原理图文件的目录)。
建议使用Windows批处理文件的编译方法。批处理文件包括要执行的命令,批处理文件示例(compile.bat)可以在examples目录中找到。编译过程使用了ModelSim应用程序vcom和vlib,因此它们的路径必须在环境变量path中。
注意:如果对Verilog文件进行了任何更改,则必须重新编译模型。
3. 仿真
第一次运行仿真时,将配置项 ModelSim Run All参数设置为“No”,这样ModelSim将在不实际运行仿真的情况下打开。在这种状态下,用户可以选择合适的信号来显示并保存到wave文件中(默认为wave.do)。
按下PSIM“运行PSIM仿真”按钮启动仿真。几秒钟后,将出现一个ModelSim窗口。一旦用户选择了要查看的信号,按下ModelSim中的“Run–All”(运行–全部)按钮即可启动仿真。
在接下来的仿真中,可以将ModelSim Run All参数设置为“Yes”,以启动ModelSim并自动运行仿真。
如果需要具有相同Verilog模型的新仿真(例如,编辑Verilog文件并重新编译或原理图更改后),请在再次按下PSIM“运行PSIM仿真”按钮之前按下ModelSim的“Restart”(重新启动)按钮(不需要关闭ModelSim窗口)。
在接下来的一篇文章中,我们将通过一个具体的电流环路控制的buck变换器案例来说明PSIM与ModelSim(Verilog)协同仿真过程,敬请期待!
END

