DPI组件生成的因素MATLAB
您可以导出一个MATLAB®作为一个组件与一个直接编程接口(DPI)用于SystemVerilog模拟。高密度脂蛋白校验™包装DPI包装器生成的C代码,与SystemVerilog薄SystemVerilog仿真接口函数。
使用MATLAB,你生成组件dpigen
函数。
请注意
你必须有一个MATLAB编码器™许可使用该特性。
万博1manbetx支持MATLAB数据类型
万博1manbetxMATLAB支持数据类型转换为SystemVerilog数据类型,如表所示。当使用dpigen
功能,使用PortsDataType
属性选择兼容的C类型
,逻辑向量
,或位向量
数据类型。
生成SystemVerilog类型
MATLAB | SystemVerilog | ||
---|---|---|---|
兼容的C类型 | 逻辑向量 | 位向量 | |
uint8 |
字节无符号 |
逻辑(7:0) |
位(7:0) |
uint16 |
shortint无符号 |
逻辑15:0 |
位(15:0) |
uint32 |
int无符号 |
逻辑(31:0) |
位(31:0) |
uint64 |
longint无符号 |
逻辑(63:0) |
位(63:0) |
int8 |
字节 |
逻辑(7:0)签署 |
位签署(7:0) |
int16 |
shortint |
逻辑(15:0)签署 |
位签署(15:0) |
int32 |
int |
逻辑(31:0)签署 |
位签署(31:0) |
int64 |
longint |
逻辑(63:0)签署 |
位签署(63:0) |
逻辑 |
字节无符号 |
逻辑0时 |
位(0时) |
fi (定点数据类型) |
取决于定点单词长度。如果定点单词长度大于主机字大小(例如,64位和32位),那么这个数据类型不能被转换成一个SystemVerilog数据类型MATLAB编码器,你就会得到一个错误。如果定点单词长度小于或等于主机字大小,MATLAB编码器将定点数据类型转换为一个内置的C类型。 |
逻辑向量长度( |
位向量的长度( |
单 |
shortreal |
||
双 |
真正的 |
||
复杂的 |
编码器平缓复杂信号的实部和虚部SystemVerilog组件。 |
||
向量,矩阵 | 数组 例如,一个4×2的矩阵在MATLAB矩阵转化为一维SystemVerilog八个元素的数组。默认情况下,编码器趋于平缓矩阵列为主的顺序。改变行顺序,使用 |
||
结构 |
编码器趋于平缓结构元素为独立的港口SystemVerilog组件。 |
||
枚举数据类型 | 枚举 |
生成共享库
函数dpigen
自动编译运行所需的共享库中导出的DPI组件SystemVerilog环境。的makefile构建共享库的扩展_rtw.mk
。例如,对于fun.m
,使文件名fun_rtw.mk
。
在编译过程中,函数dpigen
生成一个库文件。
窗户®64:
函数
_win64.dllLinux®:
函数
所以
函数
MATLAB函数的名称你的DPI组件生成的。
请注意
如果你使用64位MATLAB在Windows上,你会得到一个64位的DLL,可只有一个64位的HDL模拟器。
确保你的MATLAB版本匹配您的HDL模拟器版本。
生成的测试工作台
函数dpigen
还创建了一个试验台。您可以使用该试验台验证生成的SystemVerilog组件的功能与原来的MATLAB函数。发电机运行时MATLAB代码保存输入和输出数据向量用于试验台。这个试验台并不打算取代系统试验台为您自己的应用程序。不过,您可以使用生成的试验台作为一个开始的例子当创建您自己的系统试验台。
生成的输出
C头文件从你的算法,生成的MATLAB编码器
C和DPI包装器头文件,由高密度脂蛋白验证器生成
SystemVerilog文件公开组件和控制信号
SystemVerilog包文件,其中包含所有的函数声明DPI组件
SystemVerilog试验台(
-testbench
选项)数据文件使用的模拟器(高密度脂蛋白
-testbench
选项)高密度脂蛋白模拟器脚本,如
*,
或* . sh
(-testbench
选项)Makefile
*楼上
SystemVerilog生成包装器
产生控制信号
SystemVerilog代码生成一个连续函数的函数dpigen
包含一组控制信号。
clk
:同步时钟clk_enable
:时钟使重置
:异步复位
当生成SystemVerilog组合设计,生成的代码没有上面的控制信号。指定顺序或组合使用ComponentTemplateType
论点的dpigen
函数。
生成的初始化函数
所有SystemVerilog代码生成的dpigen
功能包括一个初始化
函数。的初始化
在模拟的开始函数被调用。
例如:
导入“DPI”功能无效DPI_Subsystem_initialize ();
如果异步复位信号高(从0到1),初始化
又被称为。
仿真考虑
在高密度脂蛋白环境模拟DPI组件时,重置
,时钟
,clk_enable
表现如下:
限制
大型定点数字超过系统不支持单词长度。万博1manbetx
一些优化,如常量折叠,不支持,因为他们改变界面生成的C函数。万博1manbetx有关更多信息,请参见MATLAB编码器优化生成的代码(MATLAB编码器)。
高密度脂蛋白验证器限制矩阵和向量在SystemVerilog一维数组。例如,一个4×2的矩阵在MATLAB矩阵转化为一维SystemVerilog八个元素的数组。
的
PostCodegen
不支持在配置回调对象。万博1manbetx