您的位置:首页 > 其它

Modelsim下时序(功能)仿真altera IP核 程序(重要)

2014-08-27 11:17 253 查看
原文链接:http://blog.sina.com.cn/s/blog_3f8b06cc01015h2f.html

用Modelsim对Quartus II工程进行时序仿真(在此只讨论时序仿真)可分两种方式:一种是在Quartus
II中设置run gate-level simulation automatically after compilation,在Quartus II布局布线后自动调用Modelsim,通过do文件自动完成仿真过程之间显示波形;另一种方式是自己启动Modelsim进行时序仿真。第一种方式Quartus II自动完成库的编译、添加和调用,第二种方式则需要自己添加altera仿真库(也可以把库文件跟仿真激励等一起编译,但是work库正大量资源库的模块用起来很不方便)。

     第一部分介绍Quartus
II自动调用Modelsim进行时序仿真的操作过程;第二部分介绍altera仿真库(Verilog)的添加操作过程;

方法一.Quartus II自动调用Modelsim进行时序仿真

 1.Quartus II 下建立新的工程test_sim;



 2.编写Verilog代码

   包括test_sim工程文件和sim仿真激励文件,保存在工程目录下的src文件夹中。

   注意仿真激励文件不要添加进工程。代码如附录;

 3.设置EDA tool settings>simulation

   如图所示:



 4.设置nativelink settings

   如图所示:







 5.点击Start compilation进行全编译,Quartus II自动完成仿真。

 注:自动启动Modelsim需要在tool>options>EDA tool options下设置Modelsim安装路径。



 

方法二.

1。Quartus设置

  1).Quartus II 下建立新的工程test_sim;



 2).编写Verilog代码

   包括test_sim工程文件和sim仿真激励文件,保存在工程目录下的src文件夹中。

   注意仿真激励文件不要添加进工程。代码如附录;

 3).设置EDA tool settings>simulation

   如图所示:(run
gate-level前不划勾)



4)生成sdo和vo文件

    用Qusrtus2产生仿真所需要的网表与SDF文件:在作了第一步的正确设置后,每当你完成一次编译,Quartus2会自动在你的当前Project目录下生成一个simulation目录,在该目录下有一个modelsim的目录。如果使用VHDL语言,网表文件是.VHO,SDF文件是SDO;如果是使用Verilog语言,网表文件是.VO,SDF文件也是SDO。

             

2.Altera仿真库(Verilog)的添加

1).设置工作路径

    打开modelsim安装目录(我的modelsim安装在d:/modelsim目录下),新建文件夹altera。后面的步骤将在该目录下的primitive、altera_mf、lpm、cycloneii文件夹下存放编译的库。

    启动Modelsim SE仿真工具,在主窗口中选择【file】→【change
directory】命令将路径转到altera文件夹。或者在命令行中执行cd D:/modelsim/altera命令。

                 


2).新建库

    在主窗口中选择【file】→【new】→【library】命令,新建一个名为primitive的库。

                         


3).查找编译资源库所需文件

    在Quartus II安装目录下找到quartus\eda\sim_lib文件夹,用于编译资源库的文件有220model.v,220model.vhd,220pack.vhd,altera_mf.v,altera_mf.vhd,altera_mf_components.vhd,altera_primitives.v,altera_primitives.vhd,altera_primitives_components.vhd,cycloneii_atoms.v,cycloneii_atoms.vhd,cycloneii_components.vhd文件。方便起见把它们复制到altera下src文件夹下。

    网上的很多教程都是把这些文件一起编译,这样适用于Verilog和VHDL混合仿真,但如果只用一种语言,如Verilog则完全没必要全部编译。这几个文件可分为Verilog组:220model.v、altera_mf.v、altera_primitives.v、cycloneii_atoms.v和VHDL组:220model.vhd、220pack.vhd、altera_mf.vhd、altera_mf_components.vhd,altera_primitives.vhd,altera_primitives_components.vhd,cycloneii_atoms.vhd,cycloneii_components.vhd。

    编译时根据需要编译一组或全部编译。下面以Verilog组为例,首先编译primitive库。

4). 编译库 

    在主菜单中选【compile】→【compile】命令,对altera_primitives.v进行编译。

    VHDL文件编译有所不同,LPM库的220model.vhd和220pack.vhd可以同时编译,MegaFunction库的先编译altera_mf_components.vhd文件,后编译altera_mf.vhd文件,Primitiv库先编译altera_primitive_components.vhd文件,后编译altera_primitive.vhd文件,元件库,如cyclone
II库先编译cycloneii_atoms.vhd文件,后编译cycloneii_components.vhd文件,如果是其他系列的元件库则只要把对应的cycloneii改成其他系列的名称即可,如cyclone库则文件改为cyclone_atoms.vhd、cyclone_components.vhd或cyclone_atoms.v。



5).重复2.4过程添加剩下的库

    重复2.4过程添加剩下的库。

    还有一种方法是把这些库放到一个库中,即一起编译。根据需要自行选择。

6). 配制modelsim.ini文件

    这一步是为了添加进系统库,以后不用再重复添加。

    将modelsim 根目录下的配制文件modelsim.ini的属性只读改为可写,用记事本或者Ultraedit等其他文本编辑软件打开它。如下图所示添加此库(注:第一步的工程必须在modelsim的安装目录下才能使用此相对路径)。注意修改后关闭并改回只读属性。

 

primitive = $MODEL_TECH/../altera/primitive

altera_mf = $MODEL_TECH/../altera/altera_mf

lpm = $MODEL_TECH/../altera/lpm

cycloneii = $MODEL_TECH/../altera/cycloneii



完成后如图:



三 时序仿真过程

 1).Modelsim新建工程,将前边所生成的.vo和.sda文件放到所建工程下,把tb.v文件也放到工程下

 2).添加搜索库

   可以根据自己需要添加某个库,可以不全加进来。如图所示:





 

3.对于时序仿真,还要加入反标(sdf)文件,单击SDF,再单击Add,将SDF文件加入。如图3.13。

           

 

通过Browse加入SDF文件,在Apply to Region框内填入反标文件所对应的模块。

disco_test为测试激励程序,u1为被仿真的模块在激励程序中的例化名字。

注意:有的时候可以将这两个选中,忽略错误,一般可不选。(有人说这是软件bug,我没发现) 






一定要取消选中,不优化,不然容易出错
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: