Quartus II下使用Modelsim仿真

本文详细介绍了如何在 Altera Quartus II 中调用 ModelSim 进行电路仿真,包括工程创建、配置 EDA 工具、编译、编写 Testbench 文件、仿真设置和执行等关键步骤。通过遵循此指南,用户可以更高效地完成电路仿真调试。
下面是基于在Altera Quartus II 下如何调用ModelSim 进行仿真的一个实例。 

  不能否认,Quartus II(我用的7.0)无法像ISE 那样方便的直接调用ModelSim,而是需要额外的做一些工作。这确实给我们的仿真调试带来了一些不便。特权同学也是在摸索了好久以后才彻底搞定这个问题,下面分享下,力求明白易懂,让大家少走一些弯路。 

  1、 打开Quartus II,新建一个工程,工程代码如下(只是做一个简单的二分频电路): 
module modelsim_test( 
clk,rst_n,div 
); 
input clk; //系统时钟 
input rst_n; //复位信号,低有效 
output div; //2 分频信号 
reg div; 
always @ (posedge clk or negedge rst_n) 
if(!rst_n) div <= 1'b0; 
else div <= ~div; 
endmodule 

  2、 进入菜单栏的Assignments EDA Tool Settings,进入如下界面: 

  双击“EDA tools”下的“Simulation”选项,弹出如下界面: 

点击Tool name 最右侧的下拉条,选择“ModelSim”,在弹出的界面做如下设置: 

  3、 以上设置完成,重新编译工程。 

  打开工程目录,看到多了一个“simulation”文件夹,再打开该文件夹下的“modelsim”文件夹。看到有三个文件,其中.vo 文件就是我们的代码布局布线信息。仿真还需要几个文件,我们把它们都拷贝到该目录下。 

  4、 打开“C:altera70quartusedasim_lib”(具体quartus 软件安装文件的根目录视您的实际情况而定,大体路径都一样),因为我们用的是MAX II器件,所以把“maxii_atoms.v”拷贝到3 中提到的目录下,这个文件是仿真元件库。 

  5、 编写一个工程RTL 源码的Testbench 文件,用于作为仿真激励(具体如何编写清参考相关数据文档资料)。这个实例的testbench 如下: 

  module vtf_test; 
// Inputs 
reg clk; 
reg rst_n; 
// Output 
wire div; 
modelsim_test u1( 
.clk(clk), 
.rst_n(rst_n), 
.div(div) 
); 
initial begin 
clk = 0; 
forever 
#10 clk = ~clk; //产生50MHz 的时钟 
end 
initial begin 
rst_n = 0; 
#1000 rst_n = 1; //上电后1us 复位信号 
#1000; 
$stop; 
end 
endmodule 
将该文件命名为tb_test.v,保存到3 提到的文件夹下。 

  6、 在wokspace 的library 面板的空白处单击右键,选择“new”→“library” 

在新弹出界面中做如下设置,然后点击“OK”。 

  7、 启动ModelSim 软件,点击菜单栏的Compile

Library 选择刚才新建的“work_test”,查找范围定位到我们3 提到的文件夹下。全选在该目录下可以看到的文件,点击Compile(注意该文件夹必须在全英文/数字路径下,否则会出错无法编译)。 

  8、 我们回到wokspace 的library 面板,work_test 多处了下拉框,点击后如下: 

我们右键单击vtf_test 文件,在弹出的菜单中选择Simulation 

  9、 执行上面的操作后,软件自动弹出wokspace 的sim 面板如下: 

在vtf_test 栏单击右键,在弹出菜单中选择Add to Wave。然后软件将弹出波形窗口。

  10、 波形窗口如下:

波形窗口

这时我们点击全速编译(一次不行,多点一次,工具栏倒数第三个按钮),
然后点击观看全部波形(放大缩小按钮后面一个蓝色按钮)。

  11、 仿真结果如下:

仿真结果

可以看到div 信号确实是clk 的二分频。呵呵,基本的操作就到此结束了。

<think>好的,我需要帮助用户找到在Quartus II中不使用ModelSim进行仿真的替代方案或配置方法。首先,用户希望避开ModelSim,可能是因为安装复杂或授权问题。我需要回忆Quartus II支持的仿真工具,以及是否有内置的仿真功能。 首先,Quartus II本身是否提供仿真功能?我记得Quartus Prime自带有门级仿真工具,可能叫“NativeLink”或者直接集成在工具中。另外,用户可能可以使用第三方仿真工具,比如VCS、IES,或者开源工具如GHDL或Verilator。不过需要确认这些工具如何与Quartus II集成。 然后,配置教程方面,用户可能需要步骤说明。例如,使用Quartus自带的仿真器或者设置其他仿真工具。比如,使用Test Bench进行波形仿真,或者使用Signal Tap II进行实时调试。另外,是否可以通过生成网表文件,再导入到其他工具中进行仿真? 还要考虑用户的需求是否包括时序仿真还是功能仿真。如果用户需要时序仿真,可能需要使用其他支持标准延迟格式(SDF)的工具。此外,是否需要编写Testbench,或者使用Quartus生成的测试文件。 还要检查引用内容是否有帮助。引用[2]提到时序仿真可能需要某些文件,但用户想避开ModelSim,所以可能需要其他方法处理这些文件。引用[3]提到Quartus的版本问题,网络版是否支持其他仿真工具? 另外,用户可能需要替代方案的优缺点,比如使用Signal Tap II进行实时调试虽然方便,但资源占用大。或者使用第三方工具需要额外的配置步骤。 总结步骤:1. 使用Quartus自带的仿真工具如Test Bench;2. 使用Signal Tap II进行实时调试;3. 使用第三方仿真工具如VCS、GHDL;4. 导出网表到其他工具。然后每个步骤详细说明如何操作,可能需要配置Quartus的EDA工具设置,生成所需的输出文件,并运行仿真。 需要确保回答结构清晰,分点说明,并引用相关参考资料中的信息,比如引用[1]提到的检查库文件,但用户想避开ModelSim,所以可能需要其他方法避免这类问题。</think>在Quartus II中不依赖ModelSim进行仿真的方法及替代方案如下: --- ### 一、使用Quartus II自带的仿真工具 1. **Test Bench波形仿真(功能仿真)** - 通过Quartus II内置的波形编辑器(Vector Waveform File, .vwf)生成激励信号,直接运行功能仿真。 - **步骤**: 1. 新建`.vwf`文件并添加输入信号波形; 2. 通过`Processing > Start Simulation`运行仿真; 3. 查看输出波形验证逻辑。 - **优点**:无需额外工具,适合简单功能验证[^3]。 2. **Signal Tap II实时调试** - 利用FPGA片内逻辑分析仪抓取实时信号。 - **步骤**: 1. 新建`.stp`文件并配置采样时钟和触发条件; 2. 编译工程并下载到FPGA; 3. 通过JTAG接口捕获信号数据。 - **缺点**:占用片内存储资源,仅支持物理硬件调试[^2]。 --- ### 二、第三方仿真工具集成 1. **开源工具:GHDL/GTKWave** - **配置方法**: 1. 在Quartus II中生成VHDL/Verilog网表(`File > Export`); 2. 使用GHDL编译并仿真: ```bash ghdl -a design.vhd testbench.vhd ghdl -e testbench ghdl -r testbench --vcd=wave.vcd ``` 3. 通过GTKWave查看波形。 - **适用场景**:功能仿真,支持VHDL和简单Verilog[^4]。 2. **商业工具:Synopsys VCS/Cadence Xcelium** - **配置流程**: 1. 在Quartus II中设置EDA工具路径(`Tools > Options > EDA Tool Options`); 2. 生成仿真网表(`Assignments > Settings > Simulation`); 3. 导出文件到第三方工具运行时序仿真。 --- ### 三、替代仿真流程(无需工具集成) 1. **导出网表文件手动仿真** - 生成标准格式文件(如`.vo`/`.sdo`)并手动导入其他仿真工具。 - **文件类型**: - `.vo`:门级网表(功能+时序); - `.sdo`:标准延迟文件(SDF)。 2. **使用Python/Matlab进行算法级验证** - 对关键算法进行行为级建模,验证后再移植到HDL代码。 --- ### 四、配置注意事项 - **版本兼容性**:Quartus网络版支持基本仿真功能,但高级工具需订购版; - **文件依赖**:时序仿真需确保`.sdo`文件与网表匹配,避免路径错误。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值