新手急问,求好心大神指导,关于modelsim生成的fsdb文件是空的
1、..\Novas\Debussy\share\PLI\modelsim_pli\WINNT\novas.dll 拷贝到modelsim下
2、modelsim.ini找到; Veriuser = veriuser.sl替换为Veriuser = novas.dll
3、仿真脚本do文件
vlib work
vlog -f rtl.f
vsim work.test -pli D:/program/debussy/share/PLI/modelsim_pli/WINNT/novas.dll
run 10us
quit -sim
4、
initial begin
$fsdbDumpfile("wave.fsdb");
$fsdbDumpvars;
end
运行do文件按之后自动弹出是否quit,但无论是还是否,发现生成的fsdb始终是空的
并伴随有wave.fsdb.chain
wave.fsdb.lock
wave.fsdb.slist
wave.fsdb.tlist
四个文件生成那个,度娘说是因为:生成fsdb文件后,如果不关闭modelSim,就用debussy打开fsdb文件,会提示错误,而导致不能打开fsdb文件;或者打开文件后,信号也能导入,但是全部信号都显示NF,也就是没有波形出来。并由此认为这是debussy或者modelSim的问题。其实这是因为在测试平台控制不当,fsdb文件还没有生成好。
解决的方法是:
在ModelSim的Transcript窗口输入Quit –sim;或者写在脚本中。
但是脚本里面已经是这样的退出仿真设置,为什么还不能生成fsdb文件呢?
在线求指教~
信息太少
要真的源文件和testbench文件吗?module asser
(
clk, reset,a,b,
count
);
input clk,reset,a,b;
output [3:0] count;
reg [3:0]count_reg;
assigncount =count_reg;
always @(clk)
begin
if (reset)
count_reg<= 0;
else if (a)
count_reg<= count + 1;
else if (b)
count_reg<= count - 1;
end
endmodule
testbench文件
`timescale 1ns/1ps
moduletest ;
reg a,b,clk,reset;
initial
begin
reset = 0;
# 300 reset = 1;
forever
#5 clk=!clk;
end
initial
reset= 0;
#300
reset =1;
end
initial
begin
a= 0;
b= 0;
#800
a = 1;
#800
b = 1;
end
initial begin
$fsdbDumpfile("wave.fsdb");
$fsdbDumpvars;
# 6000000 $finish;
end
asseru_asser (
.clk(clk),
.reset(reset),
.a(a),
.b(b),
.count()
) ;
endmodule;
6ms是不是太久了,看不出什么问题。
多谢,不能产生fsdb的情况很奇怪,没有改动,但是最近几天仿真一直没有出现fsdb文件时空的现象,百思不得其解。
有时候需要remove掉work文件夹,重新make,我是这么处理的,但本人比较懒,没去追究原因