verilog - ModelSim 编译成功,但我的代码中有错误的声明
问题描述
我是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中确实如此!
解决方案
当您在 jdoodle 上运行时,您正在尝试编译和详细说明您的代码。这将是细化步骤失败(因为没有Half_
模块)。
当您vlog
在 Modelsim 上键入时,您只是在编译,而不是详细说明您的代码。当您尝试详细说明您的代码时,您会在 Modelsim 中遇到错误:
vsim Full_adder
** 错误:Half_Adder.v(7):未定义模块“Half_”。
编译 Verilog 类似于编译 C 或其他语言。每个模块都是单独编译的。细化是尝试将所有模块链接在一起的最后阶段(细化有点类似于 C 和其他语言中的链接)。因此,当任何模拟器尝试详细说明您的代码时,您会收到一个错误,因为没有Half_
模块。
推荐阅读
- android - 将特定工件添加到 Gradle 项目 (Androind)
- python - Python将部分字符串与列表进行比较
- scala - 在 spark scala [Spark] 中操作数据帧的逻辑
- c# - 实体框架未正确显示关系级别
- dialogflow-es - 对话流基本卡中使用的谷歌地图静态图像api出现问题,怎么办?
- javascript - 在 img 点击播放视频
- sql - oracle apex 在使用 INSERT INTO 向表中添加数据时给我一个错误
- python - 在多个设备上的 Flask 应用程序上提供视频时缓冲
- google-apps-script - 如果单元格与列表中的值匹配,则应用脚本删除行
- python - 如何以特定方式重组熊猫数据框?