由于Matlab自己提供C的接口库,用户可以通过调用C函数来触发和结束Matlab、传递和得到数据、以及向Matlab发送其它的控制命令。这些Matlab提供的C API包括有:
打开和关闭Matlab的执行引擎
传递和得到变量数据
向Matlab命令窗口(console)传递指令
打开和关闭Matlab的执行引擎
传递和得到变量数据
向Matlab命令窗口(console)传递指令
这些指令可以在Matlab的安装头文件“engine.h”中找到,用户可以在Matlab的安装目录中找到由C调用Matlab的例子$MATLAB/extern/examples/eng_mat/engdemo.c。
#include “engine.h”
main () {
Engine *ep;
ep = engOpen(‘’)
}
有了Matlab与C之间的通信,利用SV DPI的接口就顺利一些了。用户可以进一步将"engine.h"中定义的C函数再导入到SV中。
import “DPI-C” function void engOpen();
借助上面导入的函数,可以定义一个面向Matlab控制的engine class,这个类可以容纳上面导入的所有DPI函数。该类的实现方式如下:
class engine_example;
function void engOpen ();
endclass : engine_example
而通过由UVM导入C方法,继而间接导入Matlab控制函数的方式,用户可以在UVM一侧通过例化上面的engine class,调用它所具备的方法,便可以用来控制M