zoukankan      html  css  js  c++  java
  • 用Modelsim仿真QuartusII综合后网表时库的添加方法(转)

    这两天做综合后仿真,发现FPGA器件库又不会加了,无奈上网找方法。说起来不好意思,很早就接触Modelsim这个仿真软件了,可是没有好好琢磨。把这两天找的方法贴出来,再加上自己的理解,以后忘了可以上博客翻翻,也适合新手看。(这个办法是quartusII综合完后启动Modelsim仿真综合后的网表,要是quartusII里直接启动Modelsim需不需要加库不清楚,我没试过)

    -----------------------------------转载分割线-----------------------------------------------------

    以下内容转载Efronc博客园http://www.cnblogs.com/Efronc/archive/2010/06/25/1765446.html

    Altera仿真库(Verilog)的添加

    1.设置工作路径

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

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

     用Modelsim仿真QuartusII综合后网表时库的添加方法
     

    2.新建库

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


    用Modelsim仿真QuartusII综合后网表时库的添加方法

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

        Quartus II安装目录下找到quartusedasim_lib文件夹,用于编译资源库的文件有220model.v220model.vhd220pack.vhdaltera_mf.valtera_mf.vhdaltera_mf_components.vhdaltera_primitives.valtera_primitives.vhdaltera_primitives_components.vhdcycloneii_atoms.vcycloneii_atoms.vhdcycloneii_components.vhd文件。方便起见把它们复制到alterasrc文件夹下。

        网上的很多教程都是把这些文件一起编译,这样适用于VerilogVHDL混合仿真,但如果只用一种语言,如Verilog则完全没必要全部编译。这几个文件可分为Verilog组:220model.valtera_mf.valtera_primitives.vcycloneii_atoms.vVHDL组:220model.vhd220pack.vhdaltera_mf.vhdaltera_mf_components.vhdaltera_primitives.vhdaltera_primitives_components.vhdcycloneii_atoms.vhdcycloneii_components.vhd

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

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

        VHDL文件编译有所不同,LPM库的220model.vhd220pack.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.vhdcyclone_components.vhdcyclone_atoms.v
    用Modelsim仿真QuartusII综合后网表时库的添加方法

    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

    完成后如图:
    用Modelsim仿真QuartusII综合后网表时库的添加方法

    7.添加搜索库

       可以根据自己需要添加某个库,可以不全加进来。如图所示:
    用Modelsim仿真QuartusII综合后网表时库的添加方法

    用Modelsim仿真QuartusII综合后网表时库的添加方法

    8.编译自己的vo文件和testbench文件到work库即可仿真。

    -----------------------------------转载分割线-----------------------------------------------------

    另外,文章中还介绍了Modelsim中调用的四种常用库,转载如下:

    -----------------------------------转载分割线-----------------------------------------------------

    Modelsim仿真中会调用四种常用的仿真库:

    1)元件库,例如cycloneII元件库,在仿真中必用的特定型号的FPGA/CPLD的库。

    2primitive,调用altera的原语(primitive)设计仿真时需要;

    3altera_mf,调用MagaFunction的设计仿真时需要;
    4lpm,调用lpm元件的设计仿真时需要;
       
     第一种元件库是进行时序仿真时不可缺少的资源库。后三种库是调用了相应的Altera设计模块进行设计时才必须用到的库。值得一提的是,在modelsim-alteraAE版本中,后三种库是已经编译好的,在modelsim-altera安装目录下altera文件夹中可以找到。

    -----------------------------------转载分割线-----------------------------------------------------

        记得第7步,要加库。

        我在编译的时候遇到的问题:

    按照上述步骤编译了cycloneii库后,仿真报错,取其中一条:

    ** Error: (vsim-3033) D:/projcet/modelsim_prj/div5/div5.vo(432): Instantiation of 'cycloneii_io' failed. The design unit was not found.

    提示是在work库中找不到cycloneii_io,这就是没加库,按照第7步第一个图把库加上,就可以了。另外,其实把cycloneii_atoms.v直接编译到work可是可以过的,总之,只要让软件找到要的模块,就能过,只是后一种方法看起来比较随便,不够专业,呵呵。

        另外,在新建project时,新手们有没注意到


    用Modelsim仿真QuartusII综合后网表时库的添加方法

        在modelsim工程里头如果没写ini文件,则启动工程的时候modelsim会到安装目录下去找ini文件,如果对工程的库有改动,工程会将ini文件复制到工程目录下,打开后会发现这样一句话

    [Library]

    others = $MODEL_TECH/../modelsim.ini

        按照上面说的做,在每次启动后这些库都在,原因就在这,这种方法适合单机,一次加好库,以后建立工程都可以用。如果只想给这个工程建库,或者modelsim装在服务器上,可以这样做:

    关闭当前工程àchange directory,到你需要加库的工程à新建一个库àCompileà注意库选你新建的库,默认是work库,不要编译到work库里了

        然后再打开工程,库应该就OK~

  • 相关阅读:
    使用 Dockerfile 定制镜像
    UVA 10298 Power Strings 字符串的幂(KMP,最小循环节)
    UVA 11090 Going in Cycle!! 环平均权值(bellman-ford,spfa,二分)
    LeetCode Best Time to Buy and Sell Stock 买卖股票的最佳时机 (DP)
    LeetCode Number of Islands 岛的数量(DFS,BFS)
    LeetCode Triangle 三角形(最短路)
    LeetCode Swap Nodes in Pairs 交换结点对(单链表)
    LeetCode Find Minimum in Rotated Sorted Array 旋转序列找最小值(二分查找)
    HDU 5312 Sequence (规律题)
    LeetCode Letter Combinations of a Phone Number 电话号码组合
  • 原文地址:https://www.cnblogs.com/feitian629/p/3192778.html
Copyright © 2011-2022 走看看