ModelSim编译成功但我的代码中声明错误

问题描述 投票:0回答:1

我是modelSim和verilog的初学者

modelsim不关心我的名字声明,Half_Adder模块的每个名字都编译成功 在下面的部分我有Half_不正确(因为我的模块名称是Half_Adder)但modelsim编译它没有错误

module Half_Adder(input a,b,output  s,c );
xor (s,a,b);
and(c,a,b);
endmodule
module Full_Adder(input a,b,c,output sum,carry);
wire sum1,carry1,carry2;
Half_  m1(a,b,sum1,carry1);
Half_Adder m2(sum1,c,sum,carry2);
or(carry,carry1,carry2);
endmodule

以上所有代码都在一个.v文件中我不知道它是否正确

我在jdoodle在线verilog编译器上测试了上面的代码,它在名称声明中有错误:jdoodle.v:8:错误:未知模块类型:Half_

但是在modelsim中也是如此!

verilog hdl modelsim
1个回答
2
投票

当你在jdoodle上运行时,你正在尝试编译和详细说明你的代码。这将是失败的精化步骤(因为没有Half_模块)。

当您在Modelsim上键入vlog时,您只是在编译,而不是详细说明您的代码。当您尝试详细说明代码时,您在Modelsim中收到错误:

vsim Full_adder

** Error: Half_Adder.v(7): Module 'Half_' is not defined.

编译Verilog类似于编译C或其他语言。每个模块都是单独编译的。 Elaborating是尝试将所有模块链接在一起的最后阶段(并且详细说明与C和其他语言中的链接类似)。因此,当任何模拟器试图详细说明您的代码时,您会收到错误,因为没有Half_模块。

© www.soinside.com 2019 - 2024. All rights reserved.