在ModelSim中进行仿真需要加入Quartus提供的仿真库,原因是下面三个方面:
   
·Quartus不支持Testbench;
    ·调用了megafunction或者lpm库之类的Altera的函数;
   
·时序仿真要在Modelsim下做仿真。
    下面以Altera器件为例,介绍如何在ModelSim中加入Altera的仿真库,Quartus
II软件中自带有Altera的仿真库,只要把它拿到ModelSim中去编译一下就可以了,具体步骤如下:
1.设置仿真库路径
   
打开ModelSim安装目录(我用的是ModelSim SE
6.5版本,安装在D:\ModelSim_6.5b目录下),新建文件夹altera,我们就在该目录下存放预编译的各种Altera库。
   
启动ModelSim SE 6.5,在主窗口执行【File】/【Change Directory】命令将路径转到altera文件夹。或在命令行中执行cd
D:/ModelSim_6.5b/altera。

      
2.新建库
   
Quartus
II中提供的仿真库文件存放的路径是...\altera\91\quartus\eda\sim_lib,每个库文件提供了两种形式:.v(Verilog)格式和.vhd(VHDL)格式两种,根据你所用的语言选择使用。用于编译资源库的文件有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文件。网上的很多教程都是把这些文件一起编译,这样适用于Verilog和VHDL混合仿真,但如果只用一种语言,如Verilog则完全没必要全部编译。下面以该目录下的altera_mf.v为例介绍建立预编译库的方法。
   
注:ModelSim中仿真库可以分为两大类:第一类是工作库(working),默认值为“work”目录,work目录中包含当前工程下所有被编译的设计单元,编译前必须建立一个work库,并且每个编译有且仅有一个work库;第二类是资源库(resource),存储能被当前编译引用的设计单元,在编译期间允许有多个resource库。
   
在主窗口中选择【File】/【New】/【Library】命令,新建一个名为altera_mf的库。

                   

3.编译库
    方便起见在altera文件夹下新建目录src,把用于编译资源库的文件复制到src文件夹中。
   
在主菜单中选【Compile】/【Compile】命令,弹出Compile Source
Files对话框,library中选择你刚才建立的库名altera_mf,查找范围你选择altera_mf.v文件,刚才你已经把它复制到了...\altera\src目录下。执行编译命令。

           
   
继续按照步骤2和3中介绍的方法添加剩下的几个库。添加完成后如下图所示。


4.配置modelsim.ini文件
   
这一步是为了将前面建立的库添加进系统库,以后就不用再重复添加了。
   
ModelSim安装根目录下的配置文件modelsim.ini的只读属性去掉,用记事本或其他文本编辑程序打开。在[Library]下修改前面添加的库的路径。注意修改后关闭并改回只读属性。
   
注:第1步设置的仿真库路径必须在ModelSim的安装目录下才能事业能够此相对路径。
 altera_primitives =
$MODEL_TECH/../altera/altera_primitives
 220model =
$MODEL_TECH/../altera/220model
 altera_mf =
$MODEL_TECH/../altera/altera_mf

5.添加Altera底层硬件原语仿真库(ATOM)
   
在时序仿真时,必须加载所使用到的对应于具体Altera器件的底层硬件原语的仿真库(ATOM)。
   
上面编译了Altera三个资源库文件:220model.v,altera_mf.v,altera_primitives.v,编译通过之后。根据我们选用的具体器件型号继续编译我们所需要的器件底层原语仿真库文件,比如我们选择使用的是cycloneii,所以编译cycloneii_atoms.v。

当然,在进行具体的仿真的时候,还有注意将这些已经编译的仿真库添加到当前工程中,具体是:打开Start
Simulation窗口,在Libraries栏中将相关仿真库Add进去即可,然后就可以进行相关的仿真了。

若是要进行时序仿真,则还应在SDF一栏将相关的.sdo延时文件添加进去,然后再进行仿真。

向modesim中添加alter库 (或者在每次仿真时将库文件加入仿真文件夹一起编译)的更多相关文章

  1. Link Binary With Libraries中添加的时候 也找不到libz.dylib 库

    接到一个项目4个静态库找不到 在 Link Binary With Libraries中添加的时候 也找不到libz.dylib  郁闷了 原来是ios9后 原来的dylib后缀名的库全部修改tbd ...

  2. 如何在我自己的web 项目的jsp页面中添加链接,直接让别人通过内网在我的电脑上下载文件

    今天接到一个任务,将昨天年会的视频,音频,图片等放在公司自己的服务器上,使连接同一个路由器的(即同一个内网)的同事可以通过内网下载视频(通过内网下载,可以提高下载速度). 备注:本次用的是tomcat ...

  3. 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "StdAfx.h"”?

    在查找预编译头时遇到意外的文件结尾.是否忘记了向源中添加“#include "StdAfx.h"”? 右键选择该文件.cpp格式的->属性->预编译头,→ 不使用预编译 ...

  4. MFC中添加OpenGL

    WINDOWS下展示OpenGL有多种形式: MFC 或 win32,该如何向MFC中添加OpenGL?下面是介绍最简单OpenGL框架. 1.首先通过VS建立MFC应用程序-MyOpenGL,选择单 ...

  5. (原)netbeans中添加anaconda3安装的opencv

    转载请注明出处: https://www.cnblogs.com/darkknightzh/p/9974310.html 新装了ubuntu16.04后,直接安装了anaconda3,调试c++程序时 ...

  6. 用Retrofit发送请求中添加身份验证

    用Retrofit发送请求中添加身份验证====================在安卓应用开发中, retrofit可以极大的方便发送http网络请求,不管是GET, POST, 还是PUT, DEL ...

  7. fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "StdAfx.h"”? 解决方法

    错误描述: fatal error C1010: 在查找预编译头时遇到意外的文件结尾.是否忘记了向源中添加“#include "StdAfx.h"”? 错误分析:     此错误发 ...

  8. VS2010在空解决方案中添加项目

    如题,在空解决方案中添加第一个项目的时候会看不到那个solution解决方案文件,而是你当前添加的项目,当你再添加其他项目的时候就悲催了,找不到这个solution,只能在这个项目文件上新加文件,很郁 ...

  9. 在MFC对话框中添加状态栏

    如果我们想实现在MFC对话框中添加状态栏显示,如何例如分状态栏为两列,第一列显示鼠标的当前位置,第二列显示当前的时间,(如上图). 1. 首先,打开在资源视图的String Table并添加两个ID: ...

随机推荐

  1. 前端mac下的工具

    1.制作base64图片的 DataURLMaker imageAlpha 减少png图片尺寸 2.共享iphone X-Mirage 3.制作交互图 briefs 4.制作矢量图 sketch

  2. ArcEngine中打开各种数据源(WorkSpace)的连接

    (SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源.在开发过程中我们使用了如下几种数据源 1.企业数据库(SDE) 企业 ...

  3. kendoTreeView,需要注意的地方

    今天使用了下kendoUI中的TreeView控件,一开始的时候总是不成功, 总是会报 Uncaught TypeError: Cannot read property 'toLowerCase' o ...

  4. 【网络编程/C++】修改本机ip地址

    昨天学会了编程实现获取本地网卡信息,今天再接再砺学会了修改本机ip地址.其实原理很简单就是用c++调用一下dos命令而已,不得不说,dos命令实在是太强大了,当然听说还有种修改注册表的方法,不过没有试 ...

  5. TextView实现歌词同步

    利用TextView实现歌词同步显示,这是一个简单的利用TextView实现滚动实时显示歌词的. 里面的内容都已经写上了详细的注释.里面播放音乐的时候歌词同步展示. 做媒体这块的朋友可以学习一下,练练 ...

  6. 史航416第11次作业&总结

    作业1:冒泡排序 #include <stdio.h> ],int n); int main() { ],n,i; printf("输入一个整数n:"); scanf( ...

  7. MySQL root密码找回

    以MySQL多实例为例,演示找回MySQL root的密码 1.关闭mysql服务 [root@mysql ~]# mysqladmin -uroot -poldboy123 -S /data/330 ...

  8. go 获取函数被调用的文件即行数

    import "runtime" _, file, line, ok = runtime.Caller(calldepth) 其中calldepth 指的调用的深度,为0时,打印当 ...

  9. lua 学习笔记一

    参考: http://www.kancloud.cn/digest/luanote/119924 1.基础概念 1.lua八种基本数据类型:nil.boolean.string.function.ta ...

  10. linux命令(8):cp 命令

    cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一.一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数.但是如果是 ...