vivado软件中也自带仿真工具,但用了几天之后感觉仿真速度有点慢,至少比modelsim慢挺多的。而modelsim是我比较熟悉的一款仿真软件,固然选它作为设计功能的验证。为了将vivado和modelsim关联,需要进行一些设置,下面一一介绍。

一、在vivado中设置modelsim(即第三方仿真工具)的安装路径。在vivado菜单中选择“Tools”——>“Options...”,选择“General”选项卡,将滚动条拉倒最底部,在“QuestaSim/ModelSim install path”栏中输入或选择modelsim工具的安装路径,如图1所示。

图1  设置modelsim的安装路径

二、器件库编译。首先,在modelsim安装路径中新建一个名为vivado2014_lib的文件夹(路径和文件名可改),如图2所示。

图2  在modelsim安装路径下新建vivado2014_lib文件夹

接着选择vivado菜单“Tools”——>“Compile Simulation Libraries...”命令,如图3所示。

图3  选择“Compile Simulation Libraries...”命令

在弹出的对话框中设置器件库编译参数,仿真工具“Simulator”选为ModelSim,语言“Language”、库“Library”、器件家族“Family”都为默认设置All(当然也可以根据自己的需求进行设置),然后在“Compiled library location”栏设置编译器件库的路径,这里选前面新建的vivado2014_lib文件夹,此外在“Simulator executable path”栏设置modelsim执行文件的路径,其他参数默认,如图4所示。

图4  设置器件库编译参数

设置好参数后点击“Compile”按钮开始器件库的编译。图5所示为正在编译器件库的过程中。器件库编译结束后给出编译报告,从报告中看出0个警告和0个错误,如图6所示。

图5  正在编译器件库的过程中

图6  器件库编译结束后产生编译报告

打开modelsim安装路径下的vivado2014_lib文件夹,便可以看到已经产生了器件库,如图7所示。

图7  已在vivado2014_lib文件夹中生成器件库

三、在vivado中关联了modelsim软件和编译器件库之后,就可以在vivado中调用modelsim软件对设计进行仿真了。不过,在对每一个新建的工程设计进行仿真时需要进行一些设置。选择vivado菜单“Flow”——>“Simulation Settings...”命令或点击流程向导中选择“Simulation Settings...”命令,分别如图8和图9所示。

图8  从菜单选择“Simulation Settings...”命令

图9  从流程向导中选择“Simulation Settings...”命令

在弹出的对话框中,设置仿真工具为modelsim、仿真语言为verilog或VHDL或混合,当设计中用到vivado中自带的仿真工具时,还要指定器件库的路径,如图10所示。关于仿真的其他参数在这里就不作介绍了。

图10  设置仿真参数

设置好仿真参数后,如果设计文件和仿真文件也准备好,那么就可以开始对设计的功能进行仿真了。选择菜单“Flow”——>“Run Simulation”——>选相应的仿真类型或点击流程向导中的“Run Simulation”——>选相应的仿真类型进行仿真,如图11所示。

图11  选择相应的仿真类型进行仿真

68.vivado与modelsim的关联以及器件库编译的更多相关文章

  1. modelsim编译Xilinx器件库的另一种方法(节省时间)

    以前在用modelsim对Xilinx进行器件库编译时,我用的比较多的是直接在ISE中编译器件库,感觉很方便简单,就是编译时间有点长.自从前段时间,在自己电脑装MathType,360杀毒软件将它视为 ...

  2. Modelsim编译Xilinx器件库的另一种方法

    由 xooo 于 星期五, 09/18/2015 - 15:35 发表 以前在用modelsim对Xilinx进行器件库编译时,我用的比较多的是直接在ISE中编译器件库,感觉很方便简单,就是编译时间有 ...

  3. vivado与modelsim的联合仿真

    转载: 一.在vivado中设置modelsim(即第三方仿真工具)的安装路径.在vivado菜单中选择“Tools”——>“Options...”,选择“General”选项卡,将滚动条拉倒最 ...

  4. vivado与modelsim的联合仿真(一)

    vivado软件中也自带仿真工具,但用了几天之后感觉仿真速度有点慢,至少比modelsim慢挺多的.而modelsim是我比较熟悉的一款仿真软件,固然选它作为设计功能的验证.为了将vivado和mod ...

  5. vivado与modelsim的联合仿真(二)

     最近在做Zynq的项目,曾经尝试使用ISE+PlanAhead+XPS+SDK组合和Vivado+SDK来搭建工程,使用中发现前者及其不方便后者有诸多不稳定.近期得闻Xilinx退出Vivado20 ...

  6. vivado和modelsim联合调试仿真

    vivado和modelsim联合调试仿真 0赞 发表于 2017/5/10 19:10:59 阅读(881) 评论(0) 使用vivado和modelsim联合调试仿真时,在破解完modelsim后 ...

  7. Vivado级联Modelsim仿真Re-launch问题

    前两天在群里看到有朋友说Vivado级联Modelsim仿真出现修改设计代码后重新run do文件,波形没有随着代码修改而改变,这个问题博主之前没有注意到,因为把Vivado和Modelsim级联好后 ...

  8. Quartus调用Modelsim SE避免重复编译Altera器件库的方法

    最近用Quartus 15.0配合Modelsim SE 10.4的64位版本,简直就是闪电一般的仿真速度.但是众所周知,SE版本最大的问题就是每次由Quartus自动调用时,都要重新编译所使用的器件 ...

  9. 令新手头疼的modelsim库编译

    估计很多人买了CB哥的书来看吧,他们在学习modelsim仿真的过程中可能遇到过明明是按照书上的步骤添加器件库的了,但还是出现如下的错误: 首先,我想说的是CB哥书上的modelsim-altera1 ...

随机推荐

  1. tool debug Android phonegap app

    phonegap debug 最近发现了一个可以调试phonegap的工具  在Google浏览器上调试Android真机的APP  这是好啊!!!跟Mac上的Safari 浏览器一样调试iOS 的A ...

  2. C# 正则表达式及常用正则表达式

    元字符 描述 .点 匹配任何单个字符.例如正则表达式r.t匹配这些字符串:rat.rut.r t,但是不匹配root. $ 匹配行结束符.例如正则表达式weasel$ 能够匹配字符串"He' ...

  3. 移植DNS服务bind

    移植DNS服务bind 标签: makefile工作linuxbuildgcc工具 先写用于DNS的bind. 一. 移植环境 1 .硬件环境: Host : X86 PC Target : MPC8 ...

  4. php中实现17种正则表达式

    php中实现17种正则表达式 该教程来自:php教程网:http://php.662p.com "^\d+[ DISCUZ_CODE_1 ]quot; //非负整数(正整数 + 0) &qu ...

  5. C puzzles详解【51-57题】

    第五十一题 Write a C function which does the addition of two integers without using the '+' operator. You ...

  6. win7如何设置某个软件不弹出用户账户控制

    手动修改注册表: 在 HKEY_CURRENT_USERS\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers 键下面 ...

  7. Hub control

    Hub(中心) 中心页是用户进入应用的入口点.中心页在丰富的平移视图中显示内容,这样用户一眼就能看见新鲜有趣的内容,从而吸引他们深入了解你的应用中的更多内容.中心显示不同的内容类别,每个类别映射到应用 ...

  8. IOS中获取屏幕尺寸

    //app尺寸,去掉状态栏 CGRect appRect = [UIScreen mainScreen].applicationFrame; NSLog(@"%f, %f, %f,%f&qu ...

  9. C# 基础 计算平均值的方法

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  10. c++ 类与函数中static变量初始化问题(转)

    首先static变量只有一次初始化,不管在类中还是在函数中..有这样一个函数: void Foo() { ; // initialize std::cout << a; a++; } 里的 ...