开始使用MATLAB基于SystemVerilog的DPI生成
这个例子向您展示了如何为MATLAB®编写的可编程方波发生器生成SystemVerilog DPI组件,并将其导出到HDL模拟器。
为了演示目的,本示例在64位Windows®7中使用Modelsim®10.3c。然而,同样的过程可以很容易地复制到其他系统和模拟器中。
需求和先决条件
下载188bet金宝搏本示例所需的产品:
MATLAB编码器™
模拟器:Mentor Graphics®ModelSim®/QuestaSim®或Cadence®Xcelium™
支持的C编译器之一:M金宝appicrosoft®Visual c++或GNU GCC
MATLAB设计
本例中使用的MATLAB代码演示了一个简单的可编程方波发生器。本例还提供了一个MATLAB测试台架来练习设计。
下图展示了在这个例子中生成的DPI组件:
'On_time'和'Off_time'控制输出信号占空比。
例如,当On_time=1, Off_time=1时,产生的方波占空比为50%。
用MATLAB测试台进行仿真设计
为了确保没有运行时错误,并且设计满足需求,在代码生成之前用提供的测试台模拟设计。在MATLAB中输入以下命令:
ProgSWGenerator_tb
它应该绘制如下图:
注意,图中显示的输出信号被编程成如下行为:
时钟周期< 100:= 1 = 1
250: 100 <时钟周期< = 2,= 1
250 <时钟周期:= 1 = 2
使用DPIGEN命令生成DPI组件
使用DPIGEN,生成DPI组件。
在MATLAB中执行DPIGEN命令如下:
dpigen-testbenchProgSWGenerator_tbProgSWGeneratorarg游戏{0}
生成的目录结构如下:
dpi_tb:所有与测试工作台相关的文件所在的文件夹。
ProgSWGenerator_dpi。sv:生成的DPI组件。
ProgSWGenerator_dpi_pkg。sv:生成的SystemVerilog包。
libProgSWGenerator_dpi.dll:包含所有导入函数定义的库。
注意:DPIGEN会自动尝试编译库。为了只生成文件而不编译,你应该使用-c选项。例如:
dpigen- c-testbenchProgSWGenerator_tbProgSWGeneratorarg游戏{0}
在HDL模拟器中运行生成的测试台
对于ModelSim/QuestaSim,请执行以下步骤:
在GUI模式下启动ModelSim/QuestaSim。
在HDL模拟器中,将您的当前目录更改为代码生成目录下的"dpi_tb"。
输入以下命令开始模拟
做run_tb_mq.do
例如:
生成以下波形:
注意,输出波(底部的波)的行为与在MATLAB测试台中绘制的信号完全相同。
对于Xcelium和VCS模拟器:
启动终端外壳
将当前目录更改为代码生成目录下的“dpi_tb”
对于Xcelium,在shell中输入以下命令。
上海run_tb_xcelium.sh
对于VCS,在shell中输入以下命令。
上海run_tb_vcs.sh
当模拟结束时,你应该在控制台中看到以下文本:
************** 测试完成(通过 )**************
这结束了基于MATLAB的SystemVerilog DPI组件生成的入门示例。