modelsim和matlab联合使用

思想:两个软件的数据交互通过txt文本,可以通过verilog将Modelsim产生的数据写入txt文本,再在matlab下使用m语言进行读取。

1、verilog读取matlab产生的数据

1)matlab语法:(首先matlab产生了一个256点的正弦波)

 N = 256;
 n = 1:N;
 data = fix(128 + (2^7-1)*sin(2*pi*n/N));
 fid = fopen(‘sin.txt‘,‘w‘);
 fprintf(fid,‘%x\n‘,data);
 fclose(fid);

fix()函数是取整函数,与int()函数的区别是int()函数取整采用四舍五入;fix()函数是不进行四舍五入,只取整数部分。

fopen(‘filename‘,‘permission‘)函数是打开文件函数,若打开成功,返回值fid是+N,N是该文件的文件名代号,打开不成功则返回值是-1。

permission:r,w,r+(Read & Write)...

fclose(fid):close one open files,如果关闭成功return0,如果关闭失败return-1;

fclose(all):close all open files,如果关闭成功return0,如果关闭失败return-1;

2)verilog语法:

在verilog中定义一个256X8bit的存储器,通过$readmemh命令将文件中的数据读取出来到存储器中。

 reg[7:0] data_mem[255:0];
 intial begin
      $readmemh(‘sin.txt’,data_mem);
      end
 //将数据写到存储器之后就可以根据设计一次送到数据端口
 always @ (posedge sclk,negedge rst_n)
    if (!rst_n) begin
       o_data <= 8‘d0;
       i <= ‘d0;
   end
   else begin
       o_data <= data_mem[i];
       i <= i + 1‘b1;
    end 

2、matlab读取verilog仿真产生的数据

3)verilog语法

将仿真过程中的数据通过HDL语言描述写入txt文件

integer w_file;
initial w_file = $fopen(“data_out.txt”);
always @ (i)
begin
$fdisplay(w_file,”%h”,data_out);//自带换行符
if (i == 8’d255)
$stop;
end

4)matlab语法:

fid = fopen(‘data_out.txt’,’r’);
for i = 1:256
num(i) = fscanf(fid,’%x’);//读取16进制数
end
flose(fid);

这样就将txt中的数据读取到了num变量中,注意data_out文件中的数据必须要与i的值相同,不然就可能会出错。

5)$fdisplay、$fwrite、$fmonitor区别

$fdisplay:这个命令需要触发条件,才会把数据写入文件,就如上例的[email protected](i),当i变化时数据才会被写入,该函数每写完一次数据就会自动添加一个换行符,所以在最后一个数据写完之后还会添加一个换行符,最后就需要我们自己删掉,否则matlab会读取错误。

$fwrite:只有触发条件有变化才可以将数据写进文件,但是与$fdisplay区别就是每次写入数据不会自动添加换行符,需要我们自己添加。eg:always @ (i) $fwrite(w_file,”%h\n”,data_out);

$fmonitor: 这个命令基本与$fdisplay相同,只有触发条件发生变化才可以将数据写入文件,eg:initial $fmonitor(w_file,”%h”,data_out);

时间: 2024-10-20 07:10:27

modelsim和matlab联合使用的相关文章

c++与matlab联合编程,调用Deploytool 生成exe文件和dll文件(转)

转自:http://www.cnblogs.com/xlw1219/archive/2012/12/25/2832222.html 首先必须知道联合编程需要知道的一些命令解释: mcc 的作用是将 .m文件编译为 c/c++动态链接库文件,使你可以在 c/c++程序中使用 matlab的一些函数功能.mcc 也可以将.m文件编译为exe可执行文件. mex 的作用是将 c/cpp文件编译为 .m  文件可以调用的库文件,在Windows操作系统里通常是以mexw32或mexw64为扩展名,让你可

[转载] C# matlab联合编程简介

原作者  文月 主要操作说明: 1. 找到matlab安装目录下的MCRInstaller.exe安装 MCRInstaller.exe 在安装目录下的 ..\MATLAB7\toolbox\compiler\deploy\win32\中: 2. 将写好的matlab的.m文件转换为动态链接库 2.1 编辑M文件 比如写了.m文件 f.m.其中的function C=f(A,B)实现的是C=A+B function C=f(A,B) C=A+B; end 2.2 在matlab的命令窗口中输入d

通过文件读写方式实现Matlab和Modelsim的联合仿真

虽然Modelsim的功能非常强大,仿真的波形可以以多种形式进行显示,但是当涉及到数字信号处理的算法的仿真验证的时候,则显得有点不足.而进行数字信号处理是Matlab的强项,不但有大量的关于数字信号处理的函数,而且图形显示功能也很强大,所以在做数字信号处理算法的FPGA验证的时候借助Matlab会大大加快算法验证的速度. 关于Matlab和Modelsim联合仿真,我从网上看到两种方法,一种是通过Link for Modelsim建立Matlab和Modelsim的联合仿真接口:另一种就是通过文

转载论文关于fir滤波器的fpga实现

摘 要 本文讨论的FIR滤波器因其具有严格的线性相位特性而得到广泛的应用.在工程实践中,往往要求信号处理具有实时性和灵活性,本论文研究FIR的FPGA解决方案正体现了电子系统的微型化和单片化. 本论文主要讨论了以下的问题: 首先,以FIR滤波器的基本理论为依据,研究适应工程实际的数字滤波器的设计方法,确定了直接型网络结构.窗函数设计法的设计方案: 然后,讨论了FPGA的原理与结构特点,总结FPGA的设计流程与设计原则,并用Verilog HDL语言根据设计方案编写出FIR滤波器程序: 接着,采用

1.1 ISE14.7安装

作者:MiS603开发团队 日期:20150911 公司:南京米联电子科技有限公司 论坛:www.osrc.cn 网址:www.milinker.com 网店:http://osrc.taobao.com EAT博客:http://blog.chinaaet.com/whilebreak 博客园:http://www.cnblogs.com/milinker/ "工欲善其事,必先利其器",作为一个FPGA的爱好者,我们首先要知道整个FPGA开发环境,例如需要什么软件.使用什么语言等等.

记录一下进展

最近俩周都在调试caffe的windows和matlab联合使用,真的是超级郁闷的一段时间. caffe编译通过,但是目前有些不能用,当使用image_data时,prototxt文件解析失败,我也不知道到底怎么回事. 另外一个,在matlab调用caffe的mex文件时,总是在初始化就失败了.具体原因是什么,不太清楚.目前定位到在用一个新的prototxt文件初始化一个net时失败,具体是因为prototxt的解析失败还是因为new net时分配内存失败,初步怀疑可能是因为prototxt解析

基于FPGA的音频信号的FIR滤波(Matlab+Modelsim验证)

1 设计内容 本设计是基于FPGA的音频信号FIR低通滤波,根据要求,采用Matlab对WAV音频文件进行读取和添加噪声信号.FFT分析.FIR滤波处理,并分析滤波的效果.通过Matlab的分析验证滤波效果后,将叠加噪声信号的音频信号输出到txt文件里.然后使用Matlab语言编写滤波器模块和测试模块,通过Modelsim软件读取txt文件的数据,将数据送入滤波模块,最后将滤波的结果输出到txt文件里,最后用Matlab将处理的结果从txt文件读出.显示.FFT分析用Verilog设计的FIR滤

(转)Quartus II和Modelsim的联合仿真(详细)

这篇文章不需要在modelsim中建库.映射.建工程等一些繁琐的步骤,直接使用modelsim中的默认work库.使用quartus+modelsim联合仿真. 首先推荐一篇文章 http://www.cnblogs.com/emouse/archive/2012/07/08/2581223.html 首先,根据上一篇文章,建立一个testbench模板: 第一次用modelsim+quartus的时候需要在quartus中设置modelsim的路径,quartus->tools->gener

MiS603 开发板1.3 Xilinx库编译及其联合Modelsim

作者:MiS603开发团队 日期:20150911 公司:南京米联电子科技有限公司 论坛:www.osrc.cn 网址:www.milinker.com 网店:http://osrc.taobao.com EAT博客:http://blog.chinaaet.com/whilebreak 博客园:http://www.cnblogs.com/milinker/ 1.3 Xilinx库编译及其联合Modelsim Xilinx库编译简单的说就是产生Modelsim能够识别的单元,用于仿真,包括前仿