版主: 51FPGA |
dreamjsc
最后登陆时间:2012-06-04 16:42:28 |
Link for ModelSim介绍
Link for ModelSim®是一个把MATLAB/Simulink和针对FPGA 和ASIC的硬件设计流程无缝连结起来的联合仿真的接口扩展模块。它提供一个快速的双向连接将MATLAB/Simulink和硬件描述语言仿真器Modelsim连接起来。使二者之间直接的联合仿真成为可能,并且让你更高效的在MATLAB/Simulink中验证ModelSim中的寄存器传输级(RTL)模型。 MATLAB 和 ModelSim 经过一个快速的双向的联合仿真接口联系起来,完成二者之间的数据交互特点
使用Link for ModelSim Link for ModelSim使用客户端/服务器结构来提供MATLAB/Simulink和ModelSim之间的接口。可以在一个单独的MATLAB环境或Simulink模型下提供与多个HDL实体和ModelSim的接口。
典型应用 使用 Link for ModelSim ,你可以建立一个有效的环境来进行联合仿真、器件建模、以及分析和可视化。进行如下的实例的开发。 使用ModelSim和MATLAB的接口 使用 Link for ModelSim 后,你可以使用 MATLAB 和它提供的工具箱,比如设计和仿真信号处理,或者其他的数值计算算法。你还可以用 HDL 来取代算法和系统设计中的器件模型,并直接完成 HDL 器件和 MATLAB 中剩余算法的联合仿真。 使用ModelSim和Simulink的接口 你可以通过 Simulink 和相关的 Blockset 创建一个关于信号处理方面或者通信系统方面的系统级设计。你也可以把 HDL 器件合并到设计中或者用 HDL 模块来取代相应的子系统,并借此来创建软件测试基准来验证你的 HDL 实现。 ModelSim 中联合仿真模块的参数对话框可以让你很容易的设置输入输出端口,二者连接的属性,时钟,以及 TCL 命令。
本图显示了在 MATLAB 和 ModelSim 的接口关系。把在 MATLAB 中获得的测试基准代码输出作为输入输入到 VHDL 实体中,并把经过 ModelSim 的输出输入到 MATLAB 函数中 Link for ModelSim 还提供一个模块来生成 VCD 的文件格式,可以用来:
关于滤波器在部分设计实现应用的联合仿真和软件测试基准的实例。相当于 VHDL 代码在 ModelSim 中的执行过程
关于一个 Manchester 接收器的联合仿真和软件测试基准的实例。通过使用 Simulink , DSP Blockset 以及 Communicstions B lockset 来创建的一个系统。该接收机在 VHDL 中实现并在 ModelSim 中仿真。 Matlab与Modelsim设计流程:2. 在MATLAB中配置ModelSim:在命令窗中敲入configuremodelsim,根据提示一步一步进行即可。 3. 创建一个目录用来准备存放ModelSim工程文件(路径最好遵循上面的经验),可以在MATLAB的命令窗中用如下命令完成:cd、mkdir 4. 拷贝如下文件到3准备的文件夹中: MATLABROOT\toolbox\modelsim\modelsimdemos\modsimrand_plot.m MATLABROOT\toolbox\modelsim\modelsimdemos\VHDL\modsimrand\modsimrand.vhd 可如下完成:在MATLAB中采用cd将当前路径转到目标文件夹,用pwd命令查看确保;然后用 copyfile([matlabroot,‘\toolbox\modelsim\modelsimdemos\modsimrand_plot.m’]) 和 copyfile([matlabroot,‘\toolbox\modelsim\modelsimdemos\VHDL\modsimrand\modsimrand.vhd’])实现。 5. 在MATLAB命令窗中采用如下语句打开MATLAB的ModelSim服务器,为建立链接做好准备: hdldaemon (采用的是share memory的方式,也可以采用socket方式,参见help hdldaemon)可以用 hdldaemon(‘status’) 查看服务器状态;用 hdldaemon(‘kill’) 关闭服务器 6. 在MATLAB的cmd中采用 vsim打开ModelSim,可见ModelSim自动转到MATLAB当前目录。在ModelSim的命令窗口中采用vlib work创建work库永远接受工作工程编译结果;在ModelSim的cmd中用 vmap work work进行设计库和当前工作库映射 7. 在ModelSim的cmd中用edit modsimrand.vhd在editor中打开vhdl文件,进行vhdl文件编写设计修改 8. 在ModelSim的cmd中用vcom modsimrand.vhd编译modsimrand.vhd 在ModelSim的cmd中用 vsimmatlab work.modsimrand 将modsimrand导入仿真器在ModelSim的cmd中用 matlabtb modsimrand -mfunc modsimrand_plot -rising /modsimrand/clk -socket portnum初始化真器(这里的各个参数的意义可以查阅matlabtb这个函数的帮助信息) 用 force sim:/modsimrand/clk 0 0,1 5 ns -repeat 10 ns force sim:/modsimrand/clk_en 1 force sim:/modsimrand/reset 1 0,0 50 ns 进行仿真输入信号设置,具体含义请查阅modelSim的用户手册,当然这些信号(实际就是实体的in pin,可以从MATLAB的中获取,这是以后慢慢再学) 9. 在ModelSim的cmd中用 run 80000 于是乎便得到了如下的根据ModelSim中仿真返回的结果绘制的图像如下: Simulink与Modelsim设计流程 1.建立HDL模型。2. ModelSim> vlib work;ModelSim> vmap work work。3. ModelSim> vcom XXXXXX.vhd。4.对Simulik的工程进行配置。5. vsim('socketsimulink', 4449)。6. ModelSim> vsimulink work.XXXXXX。7.开始仿真。 在Matlab与Modelsim联调用到的命令:Malab的命令: configuremodelsim:对Modelsim的安装路径进行配置。 hdldaemon:hdldaemon (默认采用的是share memory的方式,也可以采用socket方式,参见help hdldaemon)可以用 hdldaemon(‘status’) 查看服务器状态;用 hdldaemon(‘kill’) 关闭服务器。 mvl2dec:将比特逻辑值转化成为十进制数。 vsim:从matlab调用Modelsim。 Modelsim的命令: matlabcp:将Matlab函数与Modelsim中的VHDL的entity或者Verilog的module建立联系。例如:vsim> matlabcp u_osc_filter -mfunc oscfilter将Modelsim中的entity:u_osc_filter与Matlab中的函数oscfilter建立关系。其中-mfunc的作用是将不同名的实体或者函数建立关系,若是没有-mfunc则函数与实体的名要一样。 matlabtb:初始化与VHDL的entity或者Verilog的module相关联的Matlab测试平台。例如:matlabtb modsimrand -mfunc modsimrand_plot -rising /modsimrand/clk。 matlabtbeval:调用代表VHDL的entity或Verilog的module的Matlab函数。 nomatlabtb:终止matlab中测试平台的调用。 vsimmatlab:将VHDL的entity和Verilog的module导入仿真器。例如:vsimmatlab work.modsimrand将modsimrand导入仿真器 vsimulink:导入VHDL的entity或Verilog的module与Simulink联系起来。 wrapverilog:使用VHDL封装Verilog的module。在执行Verilog封装之前必须在Modelsim中编译装载,如下例所示: vlib work vmap work work vlog myverilogmod.v vsim myverilogmod wrapverilog -nocompile myverilogmod 其中-nocompile禁止自动编译。封装的结果输出到myverilogmod_wrap.vhd里。 vlib work: vlib work创建work库永远接受工作工程编译结果。 vmap work work:进行设计库和当前工作库映射。 edit XXXX.vhd:在editor中打开vhdl文件,进行vhdl文件编写设计修改。 vcom XXXX.vhd:编译XXXX.vhd。 force:进行仿真输入信号设置,例如: force sim:/modsimrand/clk 0 0,1 5 ns -repeat 10 ns force sim:/modsimrand/clk_en 1 force sim:/modsimrand/reset 1 0,0 50 ns run:仿真开始,例如:run 80000
matlab 与 modelsim联合仿真流程 1、安装所需软件,建议完全安装matlab7.01及以上版本,modelsim6.0及以上版本。另外matlab7.0不能在AMD机器上正常运行,需要安装matlab7.01及以上版本。从matlab R2006a以后,即Link for Modelsim 2.0以后才能完全支持verilog的联合仿真,之前仅支持VHDL,如需支持verilog,则需用modelsim命令wrapverilog进行VHDL打包,不幸的是我没有在modelsim 6.0e中找到该命令。另外建议所有软件安装在默认路径下面。
注意事项: 关键词:有关 MATLAB Modelsim 联合 仿真 |
||||||||||||||||
大山里的娃儿。 |
|||||||||||||||||
halibote523
最后登陆时间:2015-01-07 18:24:15 |
必须加分
|
断肠人在天涯!。 |
|
只为吸引你
最后登陆时间:2011-10-09 20:36:15 |
好东西,留下,慢慢看···呵呵
|
改变自己。 |
|
hust2010
最后登陆时间:2011-10-02 11:24:46 |
|
HXW718059156
最后登陆时间:2015-01-15 19:53:15 |
收到,有用,必须的
|
山高人为峰。 |
|
thmoasmary
最后登陆时间:2014-11-19 13:37:45 |
不错,很先进啊
|
cainiaozwj
最后登陆时间:2014-08-31 21:13:33 |
好东西,感谢分享
|
好好科研。 |
|
yahoo5425
最后登陆时间:2012-11-04 09:45:03 |
怎么使用啊,有没有教程之类的?新手学习 请多多关照 |
visicom
最后登陆时间:2013-09-13 09:46:03 |
嗯,终于找到组织了,一直在默默地使用 |
tanglj86
最后登陆时间:2014-05-19 11:29:05 |
好,写的好,不错 |
共10条 1/1 1 |