当前位置:   article > 正文

Quartus/Modelsim使用记录_modelsim仿真找不到文件

modelsim仿真找不到文件

Modelsim

0.出现bug第一个排除的可能原因!

  工程文件的路径或源文件中是否包含中文空格

1.Modelsim找不到文件

  第一个排除的可能原因:Quartus中Assignments-Settings-Simulation中仿真文件的输出路径是否正确!
  下面是一个示例。
  Modelsim仿真时报错找不到两个txt文件:


  源文件层级如下:


  这两个txt文件是在顶层文件CNN.v中读取的:


  最后的解决方法就是把两个txt文件放在Modelsim仿真时生成的simulation文件夹里。
  附工程代码链接

2.do文件

  仿真时,如果按照默认的方法从Quartus中调用Modelsim,那么只能得到testbench中的信号波形。子模块中的信号波形需要自己手动添加,信号的格式(比如进制)也要自己手动设置,然后重新仿真。当子模块较多,需要观察的信号波形较多,且仿真时间长时,每修改一下代码然后仿真,就要手动添加一次,甚是麻烦。这个问题可以用.do文件来解决。
  从Quartus中调用Modelsim时,在文件夹simulation-modelsim中会生成一个“top_level_module_name_run_msim_rtl_verilog.do”文件。这个文件长这样(顶层模块名为DYNAMIC_8SEG_DISPLAY,故文件名为“DYNAMIC_8SEG_DISPLAY_run_msim_rtl_verilog.do”)

在这里插入图片描述
  在Quartus中选择“Tools-Run Simulation Tool-RTL Simulation”调用Modelsim,Modelsim会先执行这个文件。
  把自己想要添加的波形写在一个run.do文件,然后在Quartus中选择“Assignments-Settings-Simulation-Use script to set up simulation”,选择写好的run.do文件,则上面的“DYNAMIC_8SEG_DISPLAY_run_msim_rtl_verilog.do”文件变成如图所示。可以看到,最后会调用我们自己写的run.do文件。

在这里插入图片描述

3.工程文件名不要有空格

  工程文件名如果有空格,Modelsim启动时会报错。

4.报错“Error: (vsim-3047) … actual value for formal …”

  出现这个的原因是task有输出信号,调用task时传给这个信号的变量误写成wire型,改为reg型即可。

task reset;
	output rst_n;
	begin
		rst_n = 1'b0;
		#100
		rst_n = 1'b1;
	end
endtask
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
module demo(...);
    ...
    // wire rst_n; // 会产生3047错误
    reg rst_n;
	initial begin
		...
		reset(rst_n);
		...
	end
endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Quartus

1.FPGA型号的逻辑单元不够用

  从Github上下载了一个Verilog实现的三层CNN,在Quartus编译中的Fitter阶段时报错。原因就是块资源不足,此时选用的是Stratix V系列中资源最多的型号了。可以从这里看到用FPGA在实现CNN时面临着资源不足的问题。


2.关于cdf文件的疑惑(已解决)

  每次下载代码时,需要点击programmer图标,弹出下载窗口,关闭时会要求保存为“Chain+数字.cdf“文件。每点击一次,就会有一个新的窗口,且命名中的数字依次递增。我的疑惑就是每次下载代码都要保存一个cdf文件吗?还是打开原有的cdf文件(尝试了菜单栏里的“文件-打开文件”,并不方便”)?还是说每次下载代码都不要保存.cdf文件?为什么每次下载代码都要保存一个.cdf文件呢?
  已解决。第一次下载时保存.cdf文件,可以在左侧导航栏“Files"中看到该.cdf文件,每次下载时打开它就可以了。

3.Quartus中的文件说明

  点开菜单栏中的“文件-打开文件”,点击“文件类型”的下拉框就可以看到所有文件类型的说明。


4.查看RTL视图

  先完成编译,然后点击菜单栏“Tools-Netlist Viewer-RTL Viewer”,即可查看RTL视图。左方可以查看Logics,Operators,Registers和Ports。


  在RTL Viewer窗口中点击菜单栏“Tools-Properties”,可以查看各个单元的信号值,以及扇出扇入。


5.分配管脚

  ①只需要配置output引脚和inout引脚的slew rate。
  ②需要较大驱动电流时,修改current strength。

6.报错

  点击“Tools-Run Simulation Tool-RTL Simulation”时错误如下。原因是已经打开了一个Modelsim。把打开的Modelsim关闭,再重新仿真即可。
在这里插入图片描述

7.关于宏

  define.v写了一个宏,比如BIT,调用的时候写成了BLT,编译器是查不出来宏写错了,会报一些奇怪的错误。所以下次如果出错的那一行有宏,先判断宏是否写对了。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号