zoukankan      html  css  js  c++  java
  • [转帖]ISE与Modelsim联合观察中间信号

    如何仿真IP核(建立modelsim仿真库完整解析)

    来源:http://www.ednchina.com/ART_49023_19_0_AN_7116cf44.HTM

    IP核生成文件:(Xilinx/Altera 同)

      IP核生成器生成 ip 后有两个文件对我们比较有用,假设生成了一个 asyn_fifo 的核,则asyn_fifo.veo 给出了例化该核方式(或者在 Edit->Language Template->COREGEN 中找到verilog/VHDL 的例化方式)。asyn_fifo.v 是该核的行为模型,主要调用了 xilinx 行为模型库的模块,仿真时该文件也要加入工程。(在 ISE中点中该核,在对应的 processes 窗口中运行“ View Verilog Functional Model ”即可查看该 .v 文件)。如下图所示。asyn_fifo.v

     1. 在 ISE 集成环境中仿真 IP核

    IP 核应该在新建的工程中进行仿真与例化;在原工程中可以例化使用,但好像不能直接对它加 testbench 后进行仿真。如下两图所示。

     直接在工程中对 ip核加 testbench 仿真时出错

    图 1:直接在工程中对 ip核加 testbench 仿真时出错
    新建工程单独对 ip核仿真

    图 2:新建工程单独对 ip核仿真

    2.在 modelsim中仿真 ip 核

     a.在 modelsim中编译库(Xiliinx)

     

    (1)在$Modeltech_6.0d/Xilinx_lib_tt下新建文件夹 Xilinx_lib($代表安装盘符)
    (2)打开 Modelsim->File->Change Diriectory,将路径指向刚才新建的文件夹 Xilinx_lib,这样 Xilinx 编译的所有库都将会在该文件夹下。
    (3)编译 Xilinx 库。在$Xilinx->verilog->src 下有三个库“simprims”,“unisims”和“xilinxcorelib”。在 modelsim 的 workpace 窗口 Library 属性中点右键->new->library(或在File 菜单下 new->libary),输入库名(自定义)如 Xilinx_lib_tt,这样在 workpace library 属性下就可看到 Xilinx_lib_tt 了。
    (4)modelsim 中选中 compile,在弹出的对话框中,library 选择刚才新建的 xilinx_lib_tt,查找范围为 xilinx 库($Xilinx/verilog/src/),如 XilinxCoreLib,选中文件编译即可。

     b. 在 modelsim中加载已编译的库  

      当要在 modelsim 中仿真带有 ip 核的设计时,需要加载对应公司的库才能仿真。仿真Xilinx 公司ip 核时需要在原工程文件中加入 ip 核的行为描述文件(<核名>.v)。

     

      如果工程文件直接包含在 xilinx“ XilinxCoreLib” library中,则可直接进行仿真。如果工程文件开始默认包含在“work”library 中,则需要在 Simulation->Start Simulation->library 中添加已编译的库,如图示。这样就可以对 ip 核进行仿真了。

      aa.在 modelsim中编译 Altera 的库与 Xilinx方法一样 

      bb.在 modelsim中对 ip 核进行仿真,与 xilinx 一致;首先需要在 modelsim工程中加入设计文件,testbench 文件以及核的行为描述文件(<核名>.v);其次,自 File 菜单中更改库路径指向已编译的 altera库路径(否则原先编译的 altera 库将变为不可用,unavailable),这时原先编译的库将变为可用,然后在 Simulation->Start Simulation->library中添加库路径(同Xilinx,图4,图附 3)。

     编译xilinx 库

     图 3:编译xilinx 库 
      加入库进行核仿真
    图 4:加入库进行核仿真 

      使用 modelsim 进行仿真,相对在 ISE 或 Quartus 中直接调用 modelsim,至少有三个好处: 

    1.速度快。仿真必然会不停的修改设计,每次修改设计后在 ISE 中需要重新综合后才能调用 modelsim;而在 Quartus 中时间花费更多,它还要等布局布线完成了才能调用。这样每次等待是件很痛苦的事。而直接在 modelsim 里面仿真,修改后只要重新编译即可仿真,速度要快的多。不过这样有一个坏处,那就是设计不一定是可综合的。但只要我们编程时时刻遵循可综合设计规则,培养良好的编程风格,这个缺点影响可减到最低。

    2.调试方便。在 ISE/Quartus 中调用 modelsim仿真只能看到输入输出信 号,而对于设计的中间信号/变量,特别是ip核的内部信号/变量无法观测。而在modelsim中直接仿真可以观测设计中出现的任何信号/变量无和 ip 核内的任何信号/变量,这样我们设计的数据流向就可以很清楚的表示出来,还可以检测不同编程方式的处理效果,极大的方便了调试。

    3.修改参数方便。在 modelsim中仿真 ip 核时需要将该 ip 核的行为描述文件加入到工程中去。修改该行为描述文件中 ip 核的参数可以方便的更改 ip 核特性。

      附 A:在 ISE/Quartus中直接调用 modelsim。
       a.先安装 ISE,再安装 modelsim,则 modelsim会自动嵌入到 ISE 中去,如图附 1。ISE集成环境下:Edit->Preferences->Integrated Tools可以设置常用的第三方仿真,综合工具。

     ISE 中调用 modelsim

    图附 A1:ISE 中调用 modelsim

      b.直接在 ISE 中编译库

       除了可以用前面介绍的方法自己编译ISE的库外,还可以在ISE环境下自动编译库,编译完成之后将会自动嵌入到 modelsim的 libarary中去,非常方便。

       编译之前,首先把modelsim的属性文件 modelsim.ini$Modeltech_6.0d/modelsim.ini)的“只读”属性去掉,否则每次都要重新编译。然后在 ISE 环境下新建一个工程,选中芯片型号,在出现的 process 窗口中可以看到“Desin Entry Utilities”,展开它可以看到“Compile HDL Simulation Libraries”,双击它即可自动编译 ISE 的库(要确保 Process属性窗口中“Target Simulator”正确设置为“Modelsim SE”,如图附 2);编译好的库放在$Xilinx/Verilog/mti_se/ 下(在 modelsim中仿真 ip 核需添加库时指向该路径即可,如图附 3)。ISE中编译库

    图附 2:ISE中编译库

    ISE中编译库后自动在 modelsim里加载 
    图附 3:ISE中编译库后自动在 modelsim里加载

      aa.在 Quartus 中设置第三方工具

      在 Quartus 环境下:Assignment->EDA Tool Settings->….如图附 3 所示,在“EDA Tool Settings”下拉框中选择“Simulation”窗口,设置“Tool name”(如 Modelsim(verilog)),并选中下面的“Run this tool automatically after compliation”。这样每次 Quartus 综合完之后将会自动调用 modelsim仿真了。同时要注意,在“More Setting”中“command/macro file”应选为“None”,否则当你使用别的 testbench 时,调用将会出错。 
     
      bb.在 Quartus 中自动编译库:  尚未发现有此方法,暂时只能由用户自己编译。
     
      附 B:Xilinx/Altera 库文件

    a. 与 Xilinx 相关的库有三个:

      (编译路径:$Xilinx/Verilog/src/(XilinxCoreLib, unisims,simprims),编译时可改名)-L 表示仿真时需要的库文件。(下面的命名方式可以使 Modelsim对库进行准确映射)

    Xilinxcorelib_ver对应 Xilinx 提供的软核的功能仿真库;

    Unisims_ver  对应使用 ECS所做的原理图的功能仿真库;
    Simprims_ver 对应项目布局布线以后的时序仿真库。
     b. 与 Altera 相关的库暂时只用到一个(Altera 的用的还不熟哦^_^):
    (编译路径:$Quartus50/eda/sim_lib)命名方式可以任意

     

  • 相关阅读:
    asp.net core 不依赖autofac实现aop
    C# 获取调用者信息
    IIS 命令学习
    Jenkins + PowerShell + .net core 自动打包
    gogs 自定义配置
    搜索文件内容神器:SearchMyFiles
    非常强大的磁盘计算大小工具:TreeSizeFree
    rancher入门教程
    IQueryable 表达式解析学习
    Sql server 入门权威指南
  • 原文地址:https://www.cnblogs.com/zlh840/p/2489614.html
Copyright © 2011-2022 走看看