因为Modelsim软件现在已经不受相关公司维护,所以软件使用中的一些问题一直没有得到处理,只能在遇到问题时一个个查询,下面记录一些自己遇到的问题:
仿真不显示信号
使用了译码器的testbench文件,相关实例可见第二章。
`timescale 1ns/1ps
module yimaqi_tb;
reg [2:0]x;
wire [7:0]y;
initial
begin
x[2]=1'b0;
x[1]=1'b0;
x[0]=1'b0;
end
always@(*)
begin
#100 x[0]=~x[0];
#200 x[1]=~x[1];
#300 x[2]=~x[2];
end
yimaqi_1 yimaqi_tb_1(
.x(x),
.y(y));
endmodule
在进行仿真后,待仿真信号不显示,没法操作,见下图:

这个问题在网上有很多提及的解决方法,例如:No objects found matching解决方法和
Error loading design解决方法
但是因为Modelsim版本不同,我使用的是20年的版本,在确认了代码无错再进行了上述操作后,仍会出现上述问题:
如果优化,则信号不显示,如果不优化,则报出Error loading design的问题,有点两难的尴尬了。
此时需要这样操作如下:
在Start Simulation中,勾选Enable optimization:

点击Optimization Options,在显示界面的Visibility界面,选取Customized visibility,点击Add:

在Add Access Flags页面,勾选上Apply to all modules,并在work中勾选上自己的tb文件:
一路再点击OK,即可运行:
再添加波形即可:
接下来点击Run-All,问题解决:

但是这种方法不能一劳永逸,每一次退出软件再重新打开后,这一系列步骤都要重新操作。
另外可以调整时间,和Run来生成不断地波形。

重复定义问题
在引入.v文件后,报出下列错误:

是因为在.v文件中的module声明中写成 module bianmaqi_youxian( input x,output y );
,虽然单独在Tang Density软件中编译成功,但是到了Modelsim软件中则编译报错,可以改为:module bianmaqi_youxian( x,y );