您的位置:技术中心首页 > 逻辑验证 >> Modelsim >> 如何仿真IP核(建立modelsim仿真库完整解析)

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

作者:Poordusk   时间:2007-09-28 20:48:01  来自:网上转载  浏览次数:0  文字大小:【】【】【

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 文件)。如下图所示。
  
 
1. 在 ISE 集成环境中仿真 IP核
IP 核应该在新建的工程中进行仿真与例化;在原工程中可以例化使用,但好像不能直接对它加 testbench 后进行仿真。如下两图所示。 
  
  图 1:直接在工程中对 ip核加 testbench 仿真时出错
 
图 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)。
 
图 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可以设置常用的第三方仿真,综合工具。 
                                
图附 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)。
                              
图附 2:ISE中编译库
                          
图附 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)
命名方式可以任意

责任编辑:5life

更多相关 modelsim IP 的文章

Modelsim 包会教程 [2007-09-28]
ModelSim仿真库问题 [2007-09-28]
Modelsim 的验证实例 [2007-09-28]
ModelSim SE操作指南 [2007-09-28]
ModelSim下用SystemC做设计验证方法与示例 [2007-09-28]
如何在ModelSim里仿真Altera的lpm_rom文件 [2007-09-28]
ModelSim,synplify,ISE后仿真流程 [2007-09-28]
Debussy和Modelsim协同仿真(VHDL) [2007-09-28]
Modelsim 初学者心得 [2007-09-28]
在ModelSim波形图中以参数名显示变量 [2007-09-28]
本文共有0条评论,现在显示最新的5条。

栏目导航

电路基础
硬件语言
逻辑验证
电路综合
后端设计
可测设计
基本逻辑
制造工艺
书籍精选
说文解字
工具学习
数字滤波
趣闻逸事
数字锁相
设计杂项
低耗设计

站点最新

更多相关链接

  如何仿真IP核(建立mode...
  Modelsim 包会教程
  ModelSim仿真库问题
  Modelsim 的验证实例
  ModelSim SE操作指南
  ModelSim下用SystemC做设...
  如何在ModelSim里仿真Al...
  ModelSim,synplify,ISE后...
  Debussy和Modelsim协同仿...
  Modelsim 初学者心得

栏目最新

更多相关链接

  如何仿真IP核(建立mode...
  Modelsim 包会教程
  ModelSim仿真库问题
  Modelsim 的验证实例
  ModelSim SE操作指南
  ModelSim下用SystemC做设...
  如何在ModelSim里仿真Al...
  ModelSim,synplify,ISE后...
  Debussy和Modelsim协同仿...
  Modelsim 初学者心得

热点文章

更多相关链接

  Modelsim 教程
  仿真工作流程(Verilog/Model...
  ModelSim SE 十分钟入门
  使用compxlib命令编译Xilinx...
  ModelSim 6.0se 添加Xilinx仿...
  在ModelSim波形图中以参数名...
  Modelsim 初学者心得
  Debussy和Modelsim协同仿真(...
  ModelSim,synplify,ISE后仿真...
  如何在ModelSim里仿真Altera...