matlab和modelsim联合仿真(一)

上传人:pu****.1 文档编号:525990788 上传时间:2022-09-09 格式:DOC 页数:11 大小:159KB
返回 下载 相关 举报
matlab和modelsim联合仿真(一)_第1页
第1页 / 共11页
matlab和modelsim联合仿真(一)_第2页
第2页 / 共11页
matlab和modelsim联合仿真(一)_第3页
第3页 / 共11页
matlab和modelsim联合仿真(一)_第4页
第4页 / 共11页
matlab和modelsim联合仿真(一)_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《matlab和modelsim联合仿真(一)》由会员分享,可在线阅读,更多相关《matlab和modelsim联合仿真(一)(11页珍藏版)》请在金锄头文库上搜索。

1、基于VerilogHDL语言的FPGA设计课程作业学院:电子工程学院专业班级:集电 11级3班姓名:朱潮勇学号: 05116079作业题目:Matlab和modelsim联合仿真(一)完成日期:2013年11月20日一、设计要求2二、规范说明2三、顶层设计结构图 2四、模块详细设计31功能说明32端口定义33设计激励代码34 matlab 代码55仿真结果6五、结论和问题: 8六、补充: 错误!未定义书签。一、设计要求虽然Modelsim的功能非常强大,仿真的波形可以以多种形式进行显示,但是当涉及到数字信号处理的算法的仿真验证的时候,则显得有点不足。而进行数字信号处理是Matlab的强项,不但

2、有大量的关于数字信号处理的函数,而且图形显示功能也很强大, 所以在做数字信号处理算法的 FPGA佥证的时候借助 Matlab会大大加快算法验证的速度。关于matlab与modelsim联合仿真有两种,一是以matlab或者modelsim分别产生数据,保存为文本的形式在给modelsim或matlab来调用。这是一种间接的联合仿真的方式。二是用matlab的link for modelsim的功能,将两者联合。后者的联合仿真功能更加强大。此次实验将进行第一种联合仿真。分为两个例子。第一个例子说明如何用Matlab产生的数据用作 Modelsim仿真。第二个例子说明如何用 modelsim产生数

3、据用作 matlab进行分 析。、规范说明1. Matlab 产生数据用作Modelsim仿真首先利用matlab产生一个周期256点8bit的正弦波数据,然后以16进制形式写入sin.txt 文件,然后将产生的sin .txt 文件复制到 Modelsim的工程下,在 Verilog 文件中 先定义一个8bit X 256数组,然后通过$readmemh命令,将文件中的数据读入2. Matlab 对Modelsim仿真生成的数据进行分析Matlab对Modelsim仿真生成数据的处理也是通过文件读写实现的。即通过 Verilog语句,将仿真过程中的某个信号写入文件,然后在Matlab中在把这

4、个文件的数据读出来,就可以在Matlab中进行分析了。三、顶层设计结构图Si n.txt正弦波形MatlabModelsim matdata2mod直线波形Data out.txtModelsim moddata2mat . Matlab四、模块详细设计1功能说明第一个例子用 Matlab产生的正弦波数据 sin .txt用作Modelsim的matdata2mod模块仿真。第二个例子用 modelsim的moddata2mat模块产生直线数据 data_out.txt 用作matlab进行 分析。2端口定义信号名称信号类型详细说明clk 1 位输入时钟,10MHz 50%占空比。rst 1

5、位输入同步复位,咼有效。data_mem 8bit X 256输入存储器data_out 8 位输出数据在时钟clk上降沿变化。i8位双向数据在时钟clk上升沿变化。w_file32 位输出文件的句柄3 verilog设计激励代码代码一:matlab产生正弦波数据用作 modelsim调用module matdata2mod;reg 7:0 data_mem0:255; / 定义一个 8bit X 256 的数组reg clk;reg rst;reg 7:0 data_out,i;in itialbegin$readmemh(si n. txt,data_mem); / 将 sin .txt中

6、的数据读入存储器 data_memendalways (posedge elk)beginif(rst)begindata_out = 8dO;i = 8dO;endelsebegindata_out = (128+data_memi); /将存储器中的数据输出 i :OX* .Uixku2n4d创曲弟Oj算Q囊致幽| EL I一一在 modelsim 下产生直线数据 data out.txt 如图data_out -记事本文件(F) 扁辑(E)惜式(0重看(V) 軽助(H)01234 5 67 8 9 a b c d efol234568 8 8 8 8 8 8 8 8 8 8 8 8 8

7、8 8- 9 9 9 9 _9 9 9在matlab下调用 modelsim产生的直线数据 data_out.txt 如图五、结论和问题:通过本次实验掌握了matlab和modelsim联合仿真(一)。也就是两者分别产生数据文件给另一方调用。这样可以很好的利用matlab强大的数字信号处理能力和图形显示功能。同时也体现了 modelsim的底层硬件电路六、补充通过Verilog将数据写入文件有多种方法,上面用的是$fdisplay这个系统函数,当然还有$fmonitor和$fwrite 等几个命令,下面简单说一下这几个命令的不同。$fdisplay这个命令需要有触发条件,才会把数据写入文件,例

8、如,上例的触发条件就是always(i),当i变化的时候才写入。每写入一次数据会自动增加一个换行符。$fmon itor这个命令不需要触发条件,只要有变化就可以将数据写入文件。例如可以通过以下语句in itial $fmo ni tor(w_file,%h,data_out);这样可以将整个仿真过程产生的data_out数据都写入文件中。$fwrite这个命令和$fdisplay 基本相同,也是需要触发条件才会写入,不同的是每写入一个数据不会自动添加换行符。例如可以通过以下语句:always (posedge clk)begin$fwrite(w_file,%hn,data_out);end简单总结一下上面用到的几个函数:关于 Matlab 的函数有:fopen , fscanf , fclose 。关于 Modelsim 的函数有:$fopen , $fclose ,$readmemh, $readmemb $fmonitor ,$fdisplay , $fwrite 。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号