2024年2月22日发(作者:)

1. 常见错误:Failed to find INSTANCE ...,

问题出在下面所示的第2步或第4步。

正确处理步骤:

(1)Quartus中编译测试码欲调用的顶层模块(设模块名:xxx),设置EDA tool 的simulation

工具,如verilog ,以产生文件及xxx_延时文件;

(2)打开modelsim,新建工程,添加文件、测试用激励波形文件testbench.v、所用器件的网表文件(以cyclone为例:$Quartusedasim_libcyclone_atoms.v)。全部编译。

!!:确认testbench.v中不包含顶层模块xxx代码。

(3)xxx_复制到modelsim工程目录。

(4)最后,建立仿真配置文件:在workspace的project页中右键单击,选simulation

configuration,

如下图

于是,workspace中得到simulation 1。按下图设置:

注意,上面的框中添加xxx_,下面的文本框中设置作用域,格式为:

testbench模块名xxx的实例名。

(5)`timescale 影响仿真结果显示效果。

=================例===================

[1]//文件count4.v

module count4(out,reset,clk);

output[3:0] out;

input reset, clk;

reg[3:0] out;

always @(posedge clk)

begin

if (reset)

out <= 0;

else

out <= out + 1;

end

endmodule

[2]//测试文件count_tp.v

`timescale 1ns/1ns

module count_tp;

reg clk,reset;

wire[3:0] out;

parameter DELY = 100;

count4 mycount(out,reset,clk);

always #(DELY/2) clk = ~clk;

initial

begin

clk = 0; reset = 0;

#DELY reset = 1;

#DELY reset = 0;

#(DELY*20) $finish;

end

initial $monitor($time,,,"clk=%d reset=%d out=%d",clk,reset,out);

endmodule

[3]所用器件:cyclone

[4]结果:明显产生了时延

p.s.-----------------------

网上有朋友指出勾选SDF中的两个选项,将原来的警告禁止,将原来的错误变为警告,

可以成功地进行反标注并运行仿真,但这样做并没有解决实际问题,只能产生功能仿真,

没有得到带时延的时序仿真

2. ** Error: D:/ModelSim_6.5/ModelSim

near "'t": Illegal base specifier in numeric constant.

syntax error, unexpected "BASE", expecting "class"

错误原因:不是’timescale 而是`timescale,那个是键盘左上角的点,不是一撇。

3. ** Error: (vsim-SDF-3894) cnt_: Compiled SDF file was not

found.?

华清远见的视频教程认为:

这是ModelSim软件本身的问题。

提供的解决办法是:

建Project。把除sdf文件以外的文件添加到工程编译。然后打开start simulation对话框,选design页,选中testbench文件,再点开sdf页,添加sdf文件,选中左下角的两个选项(禁止警告,把错误变成警告)。继续仿真即可。

问题的答案似乎是以下两个人的回答综合。我在这里引用一下。因为我按这种方法可行了。

#4楼:是目录设置有问题,我一开始也遇到了这个问题,必须要使.sdo文件的目录和modelsim工程文件的目录在同一个目录下,这样编译就不会报错,究其原因是因为在.vo文件中,与sdf文件有关的命令行如下:

initial $sdf_annotate("modelsim_test_");

实际上.vo默认sdo文件就在和modelsim的工程同一个根目录下,所以才会出现error:

# ** Error: (vsim-SDF-3894) modelsim_test_: Compiled SDF file was not found.

即modelsim没有找到sdo文件

(即可将用QuartusII先生成的.sdo文件考到与工程名同目录下,工程名的后缀名为.mpf)

#8楼:华清远见的视频教程认为:

这是ModelSim软件本身的问题。

提供的解决办法是:

建Project。把除sdf文件以外的文件添加到工程编译。然后打开start simulation对话框,选design页,选中testbench文件,再点开sdf页,添加sdf文件,选中左下角的两个选项(禁止警告,把错误变成警告)。继续仿真即可。

载入sdo文件error:Compiled SDF file was not found

(2012-03-07 20:04:16)

标签: 分类: modlesim学习笔记

杂谈

加载sdo文件时,一直出现以下错误:

# ** Error: (vsim-SDF-3894) xljcq_: Compiled SDF file was not found.

# Loading instances from F:/xljcq/simulation/modelsim/xljcq_

# Loading F:/xljcq/EII_PRIM_DFFE

# Loading timing data from F:/xljcq/simulation/modelsim/xljcq_

# ** Error: (vsim-7) Failed to open SDF file "xljcq_" in read mode.

# No such file or directory. (errno = ENOENT)

# ** Error: (vsim-SDF-3445) Failed to parse SDF file "xljcq_".

#

Time: 0 ps

Iteration: 0

Region: /xljcq_vlg_tst

File:

F:/xljcq/simulation/modelsim/

# Error loading design

试了太多遍之后,找不到自己哪里犯了错,就寻求帮助了:

一、点击simulate,选择SDF项,点击Add,指定.sdo文件,将左下角的两个复选框勾选上(不然要报错,可能是软件的BUG)。

这一条实是简单易行,便试之。

无益。

二、有人说必须在仿真的test_bench中,指定SDF文件的位置。这个不会,没见识过如何做。

三、有人建议查找SDF文件在那里。修改FDO文件,说是有时候是FDO生成的就有错。

但是,不知该作何修改。

四、又还有地方说,把netgen/par文件夹copy到modelsim工程目录下可以解决compiled sdf file was not found的问题。

但是不知netgen/par文件夹为何物,就更不知道在何处了。

五、又有说,将.sdo文件复制到modelsim工程文件目录下就可以了。

开始在modelsim中做后仿真填写SDF选项卡的时候都没有移动sdo文件的目录。如果没有移动,将sdo文件移动到modelsim的工作目录下重新试一下。

问题就是这样不抱希望地解决了。