matlab和modelsim联合仿真(一).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于VerilogHDL语言的FPGA设计 课程作业 学院:电子工程学院 专业班级:集电11级3班 姓名:朱潮勇学号作业题目:Matlab和modelsim联合仿真(一) 完成日期:2013年11月20日 一、设计要求 1 二、规范说明 1 三、顶层设计结构图 1 四、模块详细设计 2 1 功能说明 2 2 端口定义 2 3 设计激励代码 2 4 matlab代码 2 5 仿真结果 3 五、结论和问题: 3 六、补充: 3 一、设计要求 虽然Modelsim的功能非常强大,仿真的波形可以以多种形式进行显示,但是当涉及到数字信号处理的算法的仿真验证的时候,则显得有点不足。而进行数字信号处理是Matlab的强项,不但有大量的关于数字信号处理的函数,而且图形显示功能也很强大,所以在做数字信号处理算法的FPGA验证的时候借助Matlab会大大加快算法验证的速度。 例子说明如何用Matlab产生的数据用作Modelsim仿真。 1. Matlab产生数据用作Modelsim仿真 首先利用matlab产生一个周期256点8bit的正弦波数据,然后以16进制形式写入sin.txt文件 然后将产生的sin.txt文件复制到Modelsim的工程下,在Verilog文件中先定义一个8bit X 256数组,然后通过$readmemh命令,将文件中的数据读入 2. Matlab对Modelsim仿真生成的数据进行分析 ?? Matlab对Modelsim仿真生成数据的处理也是通过文件读写实现的。即通过Verilog语句,将仿真过程中的某个信号写入文件,然后在Matlab中在把这个文件的数据读出来,就可以在Matlab中进行分析了。顶层设计结构图 四、模块详细设计 1 功能说明 第一个例子Matlab产生的数据用作Modelsim仿真。 定义一个8bit X 256的数组 将sin.txt中的数据读入存储器data_mem将存储器中的数据输出//共写入256个数据N = 256; n = 1:256; x = fix(128 + (2^7 - 1) * sin(2*pi*n/N)); fid = fopen(sin.txt,wt); fprintf(fid,%x\n,x); fclose(fid); 二:调用modelsim产生的数据,并画图显示 fid = fopen(data_out.txt,r); for i = 1 : 256; num(i) = fscanf(fid, %x, 1);%这句话的意思是从fid所指的文件以16进制方式读出一个数据。 end fclose(fid); plot(num); 在modelsim下调用matlab产生的正弦波数据sin.txt如图 在modelsim下产生直线数据data_out.txt如图 在matlab下调用modelsim产生的直线数据data_out.txt如图 结论和问题: 通过本次实验掌握了matlab和modelsim联合仿真(一)。也就是两者分别产生数据文件给另一方调用。这样可以很好的利用matlab强大的数字信号处理能力和图形显示功能。同时也体现了modelsim的底层硬件电路 补充 通过Verilog将数据写入文件有多种方法,上面用的是$fdisplay这个系统函数,当然还有$fmonitor和$fwrite等几个命令,下面简单说一下这几个命令的不同。 $fdisplay 这个命令需要有触发条件,才会把数据写入文件,例如,上例的触发条件就是always(i),当i变化的时候才写入。每写入一次数据会自动增加一个换行符。 $fmonitor 这个命令不需要触发条件,只要有变化就可以将数据写入文件。例如可以通过语句 initial $fmonitor(w_file,%h,data_out); 这样可以将整个仿真过程产生的data_out数据都写入文件中。 $fwrite 这个命令和$fdisplay基本相同,也是需要触发条件才会写入,不同的是每写入一个数据不会自动添加换行符。例如可以通过以下语句: always @(posedge clk) begin ??? $fwrite(w_file,%h\n,data_out); end ??????? 简单总结一下上面用到的几个函数: 关于Matlab的函数有:fopen, fscanf,fclose。 关于Modelsim的函数有:$fopen, $fclose,$readmemh,$readmemb,$fmonitor,$fdisplay,$fwrite。 专业 专心 专注 专业资料 参考首选 正弦波形 Sin.txt M

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档