云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > link - for - modelsim - 的简易用法

link - for - modelsim - 的简易用法

  • 62 次阅读
  • 3 次下载
  • 2025/5/1 9:08:57

本内容涉及到一些matlab与modelsim连接的方法。首先说说我对于link for modelsim 的理解。首先matlab对于数据处理的方面有无可比拟的优越性,而modelsim应用于verilog语言和VHDL语言的仿真。有时候会遇到这样一些情况:我们仿真的输入数据很是复杂,比如是一个加入了杂散的高频的信号,我们用Verilog语言编写test bench 的话则很是复杂,但是用matlab产生的话就相对简单了许多。基于这种想法我在matlab帮助文件中输入link for modelsim,得到了一些启示。在这里与大家分享一下 1、 软件的下载于匹配

下载好的完整的matlab中有link for modelsim的功能的。对于匹配问题,开始我的matlab是2010a,modelsim是modelsim SE 6.4。结果运行的时候出现版本不匹配的错误。我又按照要求下载了modelsim SE 6.5结果可以用的。怎么确定你的matlab对应的modelsim版本,首先你在你的matlab中输入,demo然后在搜索框中输入link for modelsim。有这样的一个NOTE.。

如果modelsim不匹配的话建议在官网上下载一个,然后找一个破解文件就可以了。

2、 新建一个文件夹用来存放matlab函数和modelsim工程。文件夹的目录中不要有汉字。

把写好的matlab函数保存到已经建立的文件夹中,在这里我写的一个小程序,函数名为add1.m。

3、 建立一个连接端口。首先打开你的matlab软件,输入hdldaemon('status'),因为连接点还

没有建立,matlab显示HDLDaemon is NOT running。我们用hdldaemon('socket', 0),这个命令来建立一个连接。运行后显示HDLDaemon socket server is running on port 2325 with 0 connections。表示连接点已经建立端口号为2325,但是还没有和modelsim连接。要记住2325这个数字,后面的命令中还要用到的。

4、 在modelsim中输入vsim命令来打开你的modelsim。建立你的modelsim工程并保存在

步骤2中的文件夹中。在这里我的verilog程序为add1.v。

5、 建立matlab和modelsim的连接。在modelsim的命令行中输入vsimmatlab modsimrand,

其中modsimrand为你要仿真的块,在此实验中为add1,此时modelsim命令行窗口中会显示如下的信息。

接着输入以下的命令:

matlabtb add1 -mfunc add1 -rising /add1/clk -socket 2325

这里的 第一个add1 表示你的modelsim文件的实体名上面说过了,我的函数名为add1

-mfunc add1 表示matlab函数的名为add1 我的matlab函数名同样为add1 -rising/add1/clk 那么这个又是表示什么意思呢,这个表示在modelsim的实体的clk信号为上升沿的时候来调用我的matlab函数。

-socket 2325 这个表示连接到我们在第三步中建立的端口。

此时你在matlab中输入hdldaemon('status'),就会显示已经连接。 6、 设置verilog文件中的clk,rst 在modelsim中输入命令

force /add1/clk 0 0,1 5 ns -repeat 10 ns

表示零刻度出clk的值为0,一刻度出的值为5ns,每10ns重复 force /add1/rst 1 0, 0 50 ns同上 view wave 显示波形 add wave *加入输入输出 run 10000ns运行程序

此时你就会在你的modelsim的窗口中看到图形了。 下面介绍一下matlab及modelsim的文件的编写。

function [iport,tnext] = add1(oport, tnow, portinfo) %UNTITLED Summary of this function goes here % Detailed explanation goes here

tnext=[];

iport = struct(); persistent x; if isempty(x) x=0; else x=x+0.01; end %y=sin(x);

y=round(sin(x)*100); iport.addin=dec2mvl(y,16); end

这个函数的功能是将每隔0.01rad的sin的值输出作为verliog模块的输入。 第一行的函数定义比较有讲究

function [iport,tnext] = add1(oport, tnow, portinfo) oprt对应modelsim模块的输出。 tnow这一时刻调用函数的时间。

Portinfo第一次函数调用时传达的参数 Tnext下一次调用matlab函数的时间 Iport对应modelsim模块的输入

如果做一些简单的函数调用的话用不到tnow和tnext,我们可以用modelsim中 -rising/add1/clk这部分的设置来进行matlab函数调用。其中portinfo也很少用,看看matlab中的link for modelsim文件。

tnext=[];

iport = struct();

对输出的两个参数进行初始化,大家应该注意到初始化iport的时候用的是

struct()这个类似于C中的结构体。比如,你的verilog模块中有很多的输入 iport.addin就表示名为addin的输入。这样就可以对你单个的输入进行控制。

persistent x;要把x定义为静态变量,因为你要很多次调用函数。对于静态变量的初始化使用

if isempty(x) x=0; else x=x+0.01; end

不晓得能看明白不

iport.addin=dec2mvl(y,16);

这个也很重要,涉及到数据类型的转换,我们要把数据按一定的位数输出。这里我们把y作为16位输出的。 下面看一下verilog函数

module add1(clk,rst,addin,addout); input clk,rst;

input [15:0] addin; output[15:0] addout; reg [15:0]add1;

always@(posedge clk) begin if(rst) begin

add1=0; end else begin

add1=addin+1; end end

assign addout=add1; endmodule

这个模块是把输入的addin+1,作为输出。简单的模块。

好了,以上是简单的介绍,基于输入很复杂的小应用。如果想更深的研究的话建议看 Matlab帮助,很详细的。

Demo link for matlab,全是英文看了三四天了,才有点收获。

搜索更多关于: link - for - modelsim - 的简易用法 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

本内容涉及到一些matlab与modelsim连接的方法。首先说说我对于link for modelsim 的理解。首先matlab对于数据处理的方面有无可比拟的优越性,而modelsim应用于verilog语言和VHDL语言的仿真。有时候会遇到这样一些情况:我们仿真的输入数据很是复杂,比如是一个加入了杂散的高频的信号,我们用Verilog语言编写test bench 的话则很是复杂,但是用matlab产生的话就相对简单了许多。基于这种想法我在matlab帮助文件中输入link for modelsim,得到了一些启示。在这里与大家分享一下 1、 软件的下载于匹配 下载好的完整的matlab中有link for modelsim的功能的。对于匹配问题,开始我的matlab是2010a,modelsim是modelsim SE 6.4。结果运行的时候出现版本不匹

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com