matlab和modelsim联合仿真

matlab和modelsim联合仿真

ID:32399774

大小:128.03 KB

页数:8页

时间:2019-02-04

matlab和modelsim联合仿真_第1页
matlab和modelsim联合仿真_第2页
matlab和modelsim联合仿真_第3页
matlab和modelsim联合仿真_第4页
matlab和modelsim联合仿真_第5页
资源描述:

《matlab和modelsim联合仿真》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、基于VerilogHDL语言的FPGA设计课程作业学院:电子工程学院专业班级:集电11级3班姓名:朱潮勇学号:05116079作业题目:Matlab和modelsim联合仿真(一)完成日期:2013年11月20日一、设计要求1二、规范说明1三、顶层设计结构图1四、模块详细设计21功能说明22端口定义23设计激励代码24matlab代码25仿真结果3五、结论和问题:3六、补充:3一、设计要求虽然Modelsim的功能非常强大,仿真的波形可以以多种形式进行显示,但是当涉及到数字信号处理的算法的仿真验

2、证的时候,则显得有点不足。而进行数字信号处理是Matlab的强项,不但有大量的关于数字信号处理的函数,而且图形显示功能也很强大,所以在做数字信号处理算法的FPGA验证的时候借助Matlab会大大加快算法验证的速度。关于matlab与modelsim联合仿真有两种,一是以matlab或者modelsim分别产生数据,保存为文本的形式在给modelsim或matlab来调用。这是一种间接的联合仿真的方式。二是用matlab的linkformodelsim的功能,将两者联合。后者的联合仿真功能更加强大

3、。此次实验将进行第一种联合仿真。分为两个例子。第一个例子说明如何用Matlab产生的数据用作Modelsim仿真。第二个例子说明如何用modelsim产生数据用作matlab进行分析。二、规范说明1.Matlab产生数据用作Modelsim仿真首先利用matlab产生一个周期256点8bit的正弦波数据,然后以16进制形式写入sin.txt文件,然后将产生的sin.txt文件复制到Modelsim的工程下,在Verilog文件中先定义一个8bitX256数组,然后通过$readmemh命令,将文

4、件中的数据读入2.Matlab对Modelsim仿真生成的数据进行分析  Matlab对Modelsim仿真生成数据的处理也是通过文件读写实现的。即通过Verilog语句,将仿真过程中的某个信号写入文件,然后在Matlab中在把这个文件的数据读出来,就可以在Matlab中进行分析了。正弦波形Sin.txtModelsimmatdata2modMatlab三、顶层设计结构图直线波形Data_out.txtMatlabModelsimmoddata2mat四、模块详细设计1功能说明第一个例子用Mat

5、lab产生的正弦波数据sin.txt用作Modelsim的matdata2mod模块仿真。第二个例子用modelsim的moddata2mat模块产生直线数据data_out.txt用作matlab进行分析。2端口定义信号名称信号类型详细说明clk1位输入时钟,10MHz,50%占空比。rst1位输入同步复位,高有效。data_mem8bitX256输入存储器data_out8位输出数据在时钟clk上降沿变化。i8位双向数据在时钟clk上升沿变化。w_file32位输出文件的句柄3verilog

6、设计激励代码代码一:matlab产生正弦波数据用作modelsim调用modulematdata2mod;reg[7:0]data_mem[0:255];//定义一个8bitX256的数组regclk;regrst;reg[7:0]data_out,i;initialbegin$readmemh("sin.txt",data_mem);//将sin.txt中的数据读入存储器data_memendalways@(posedgeclk)beginif(rst)begindata_out<=8'd0;

7、i<=8'd0;endelsebegindata_out<=(128+data_mem[i]);//将存储器中的数据输出i<=i+8'd1;endendinitial$monitor($time,"data_out=%d",data_out);initialbeginrst=1;#100rst=0;endinitialbeginclk=0;forever#10clk=~clk;endEndmodule代码二:产生0—255的数组modulemoddata2mat;integerw_file;re

8、g[7:0]i;reg[7:0]data_out;initialw_file=$fopen("data_out.txt");always@(i)begin$fdisplay(w_file,"%h",data_out);if(i==8'd255)////共写入256个数据$stop;endinitialbegini=0;data_out=128;forever#100begini=i+1;data_out=data_out+1;endendendmodule4matlab代码一:用matlab产生

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。