搜索
您的当前位置:首页正文

quartus II调用ModelSim仿真

来源:意榕旅游网
Quartus II调用ModelSim仿真 

            

下面是基于在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;  reg div;  

//2分频信号 

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:\\altera\\70\\quartus\\eda\\sim_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       

initial begin    

clk = 0; forever  #10 clk = ~clk;     

    

    

    

u1( .clk(clk), .rst_n(rst_n), .div(div) ); 

//产生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Æcompile命令,弹出如下界面: 

 

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

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

 

我们右键单击vtf_test文件,在弹出的菜单中选择Simulation 9、 执行上面的操作后,软件自动弹出wokspace的sim面板如下: 

 

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

波形窗口如下: 

 

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

仿真结果如下: 

 

 

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

modelsim具体的功能使用方面有待大家慢慢琢磨,很容易上手的,大家加油!         

因篇幅问题不能全部显示,请点此查看更多更全内容

Top