You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Quartus调用ModelSim进行RTL仿真时多模块文件未定义问题求助

解决ModelSim无法识别多模块仿真中依赖模块的问题

你遇到的核心问题是Quartus默认启动RTL仿真时,只会将顶层实体和指定的Testbench文件传递给ModelSim,而没有包含依赖的add_v.v模块文件,导致ModelSim找不到模块定义。下面是几种规范且简便的解决方案,不用合并模块:

方法1:配置Quartus仿真设置,包含所有依赖文件

这是最贴合你当前工作流的方法,不需要脱离Quartus操作:

  • 打开Quartus,点击顶部菜单栏的Assignments > Settings
  • 在左侧导航栏展开EDA Tool Settings,选择Simulation
  • 确认仿真工具是ModelSim-Altera,然后点击右侧的More Settings按钮
  • 在弹出的窗口中切换到Design Files标签页,检查列表里是否有add_v.v:
    • 如果没有,点击Add按钮,从你的项目文件夹中选中add_v.v添加进去
  • 保存所有设置,重新启动RTL仿真(Tools > Run Simulating Tool > RTL Simulation)

这样Quartus就会把所有需要的模块文件都传递给ModelSim,仿真时就能正常识别add_v模块了。

方法2:直接在ModelSim中创建独立仿真工程

如果需要更灵活的多模块仿真控制,推荐直接用ModelSim创建工程:

  1. 打开ModelSim,点击File > New > Project,给项目命名并选择保存到你的项目文件夹
  2. 点击Project > Add to Project > Existing File,把add_b.v、add_v.v、add_b_tb.v全部添加到项目中
  3. 选中所有添加的文件,右键点击Compile > Compile All,确保没有编译错误
  4. 点击Simulate > Start Simulation,在弹出的窗口中展开work库,选中add_b_tb模块,点击OK即可启动仿真

这种方法完全脱离Quartus的限制,适合复杂多模块的仿真场景,也方便后续单独调试仿真。

额外注意事项

  • 尽量保持模块名和文件名一致(比如add_v模块放在add_v.v中),这是Verilog开发的规范,能避免很多路径和识别问题
  • 如果你之前只是把文件放在项目文件夹但没添加到Quartus项目中,记得先通过Project > Add/Remove Files in Project把add_v.v加入Quartus项目,这样分析综合和仿真都能正常识别它
  • 不要用合并模块到同一个文件的方式,虽然临时能用,但会导致代码耦合度高,不利于模块复用和后期维护

内容的提问来源于stack exchange,提问作者cserp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 19:04:04