Verilog ModelSim错误加载设计

Verilog ModelSim错误加载设计,verilog,modelsim,Verilog,Modelsim,我正在ModelSim中设计主从D触发器实现。编译(Compile>compileall)之后,我在控制台中键入vsim,唯一抛出的错误是 # vsim # Start time: [time] # Error loading design 有没有办法让vsim对出现的问题更加详细?或者,有人能告诉我我做错了什么吗 作为参考,我的代码如下: 方法。v module dFlipFlop( D, Clk, En, Q ); input D, Clk, En; ou

我正在ModelSim中设计主从D触发器实现。编译(
Compile>compileall
)之后,我在控制台中键入
vsim
,唯一抛出的错误是

# vsim
# Start time: [time]
# Error loading design
有没有办法让
vsim
对出现的问题更加详细?或者,有人能告诉我我做错了什么吗

作为参考,我的代码如下:

方法。v

module dFlipFlop(
    D,
    Clk,
    En,
    Q
);

input D, Clk, En;
output Q;
reg Q;

always @ (posedge Clk)
if(~En) begin
    Q <= 1'b0;
end else begin
    Q <= D;
end

endmodule

module masterSlaveDFF(
    D,
    Clk,
    En,
    Q
);

input D, Clk, En;
output Q;

wire Y, inClk;

assign inClk = ~Clk;

dFlipFlop first (.D(D), .Clk(Clk), .En(En), .Q(Y));
dFlipFlop second (.D(Y), .Clk(inClk), .En(En), .Q(Q));

endmodule

如果您的代码编译后,直接调用测试台不起作用,也就是通过类似

vsim-novopt[此处为您的测试台模块名称]

或者只是

vsim

然后,至少在我的情况下,这是一个许可证问题。请注意,我使用的是ModelSim的学生版。当我第一次运行
vsim
时,它给出了一条很长的错误消息,说明我需要将许可证文件(安装过程中获得的)放在某个目录中

对于学生版,必须将文件
Student\u license.dat
重命名为
license.dat
,并将其置于
C:\Modeltech\u pe\u edu\u 10.4a\win32pe\u edu\
中。您的目录结构可能会有所不同,但据我所知,命名约定是相似的

在某些情况下,我还了解到,
license.dat
需要位于
win32pe_edu
的父文件中,但在我的情况下,它在
win32pe_edu
中对Windows用户起作用:


如果您的代码正确,并且已将许可证文件(student\u license.dat)复制到正确的文件夹(C:\Modeltech\u pe\u edu\u[VersionNo])中,但仍然无法运行,请尝试以管理员身份运行ModelSim。这可能会奏效。

我也有同样的问题。我通过右键单击特定库并单击“刷新”解决了此问题。然后,我重新编译并重新启动了模拟,它成功了。

我也遇到了同样的问题。我就是这样修好的。当我安装modelsim时,它最终会引导我进入许可证密钥页面!我填了,但没有收到电子邮件


因此,如果您没有从modelsim收到包含许可证密钥的邮件,则必须重新运行安装!因此,一旦您收到license_file.dat,将其粘贴到modelsim文件夹中,您将不会面临任何此类问题

对我来说,问题在于优化,当我在打开优化的情况下开始模拟时,它没有在testbench中显示创建的实例,通过关闭它,我得到了“错误加载设计”错误。 我如何修复它: 在gui中: 模拟>启动模拟>优化选项>在可见性选项卡中>选中“将完全可见性应用于所有模块(完全调试模式)”。 在终端: vsim-gui-vopt-voptargs=+acc work.Adder_TB
(Adder_TB是我的测试台模块名)。

是的,我也尝试过专门调用我的测试台文件,但没有用。啊。我想出来了。这不是我的代码或配置,尽管这些都是很好的建议。那是学生执照。我会自己解决的哈。不过谢谢你的帮助,@toolic。
`include "methods.v"

module masterSlaveTest();

reg D, Clk, En, Q;

initial begin
    $monitor(D, Clk, En, Q);

    D = 1;
    Clk = 1;
    En = 0;

    #5 $finish;
end

always begin
    #5 Clk = ~Clk;
end

endmodule