如果我们已经书写了一段FSM代码,现在想倒过来把它转换成为状态转移图,方便我们直观地检查我们书写的状态对不对(在写论文什么的画图太麻烦的时候,有个自动生成的是多方便啊!),应该怎么弄呢?通过在Vivado中调用ModelSim,可以直接完成这个操作,下面我们就来看看这个神奇的转换是如何完成的。

首先介绍一下软件环境:

ü  操作系统win7 sp1 64位

ü  Vivado2014.1 64位

ü  Modelsim SE-64 10.2c

然后就是打开Vivado,新建一个RTL工程,配置好器件……这个步骤大家都写过了,所以在此略过。然后在Vivado中新建顶层文件,然后输入一段FSM代码。接下来我们要先配置ModelSim的路径,使得Vivado知道ModelSim在哪里。方法是在Vivado中点击菜单栏的Tools---Options---General,在最后面的一行里选择ModelSim的安装路径,如图1所示。

图1 配置ModelSim的路径

然后我们要为Xilinx的FPGA器件编译生成供ModelSim仿真使用的库。点击Vivado工具栏上的Tools---Compaile Simulation Libraries,如图2所示。

图2 编译仿真库

在图2的配置窗口中选择仿真器类型(例如ModelSim、Active-HDL等)、编程语言(Verilog或者HDL或者全选)、库的类型(Unisim或者SimPrim或者全选)、器件家族(例如Kintex/ Virtex/ Artix -7, ,Zynq-7000, Kintex/Virtex UltraScale系列,或者干脆全选)。中间的框是选择编译之后输出的库文件的路径以及第三方仿真工具的路径。最后是其它杂项,例如是否覆盖现有的库,是不是编译32位的库,是不是启用啰嗦模式等。ISE相比,在Vivado中编译仿真库只需要点击这两个步骤然后等待几分钟就可以了,步骤只有ISE的五分之一,需要我们决定的选择框要少了非常多,花的时间则只有几分钟,比ISE编译仿真库的效率要高了好几倍。

编译很快就完成了。然后我们在Vivado设计流程管理器中点击Simulation下面的Simulation Settings,如图3所示。

图3 改变仿真设置

然后把仿真软件设置为ModelSim,如图4所示。

图4 改变仿真软件

在Vivado的仿真配置中,我们可以直接指定Vsim的选项,如图5所示。

图5 指定Vsim选项

然后就可以在Vivado设计流程管理器中在Simulation上点击右键,运行行为仿真了,如图6所示。

图6 运行行为仿真

很不幸的是,ModelSim启动之后遇到了错误,如图7所示。

图7 仿真错误(单击图片可放大)

这也许是两个软件的版本不太兼容造成的。为了在ModelSim里显示FSM,我们又必须使用-coverage –fsmdebug两个参数,那怎么办呢?目前可以采用的办法是,暂时不能在图5中启用相关的选项,重新运行行为仿真,此时在ModelSim启动完成并且不抱错。然后我们修改FSM1.do文件,或者直接在ModelSim的命令窗口里输入下面的命令(加黑字体为更改的部分):

vsim -L unisims_ver -L unimacro_ver -L secureip  -L xil_defaultlib -lib xil_defaultlib -voptargs=\"+acc\" -t 1ps -coverage -fsmdebug xil_defaultlib.FSM1 xil_defaultlib.glbl

此时我们便可以查看FSM的状态转移图了,点击ModelSim菜单栏上的View---FSM List,然后在任务视图里点击FSM List,就能看到状态转移图了,如图8所示。

图8 FSM的状态转移图(单击图片可放大)

最后,感谢大家的支持

在Vivado中调用ModelSim生成FSM的状态转移图的更多相关文章

  1. Quartus 中调用modelsim的流程及*.vt或*.vht自动生成

    一.自动生成验证程序testbench的方法,setting-EDA Tool->simylation->选择对应的语言(verilog对应*.vt,VHDL对应*.vht)process ...

  2. 示例 - 如何在NodeJS中调用SS生成的DLL

    要想在NodeJS中调用SS生成的DLL, 需要借助EdgeJS. EdgeJS: http://tjanczuk.github.io/edge/ 如果你还不知道如何在SS中生成DLL, 请查看: S ...

  3. vivado中basic memory生成

    vivado中basic memory生成

  4. 在java中调用mockjs生成模拟数据

    一.手写版 在前端有个模拟数据的神器 Mock.js 能生成随机数据,拦截 Ajax 请求,然后我觉得他的这个生成随机数据不错.然后我就到度娘一顿操作,没找到类似的java实现,于是就有了下面的代码: ...

  5. 在C#中调用Java生成的jar包文件的方法

    C#工程调用Java已生成的jar包步骤如下: 一.使用IKVM.NET组件 首先到IKVM官网(http://www.ikvm.net)下载组件,下载地址:https://sourceforge.n ...

  6. 如何在vivado中调用ultraedit 编辑器

    ISE下点击菜单Edit -> Preferences -> Editor. 在Editor选项框里选择Custom,在Command line syntax文本框里输入: {C:/Pro ...

  7. QuartusII中调用Modelsim的方法

    Modelsim的使用 1,  建立工程编译通过之后——证明实例工程无语法等简单错误.编写testbench 2,  将testbench 添加到工程中,进行编译通过.会在工程的file中看到test ...

  8. mysql自定义函数并在存储过程中调用,生成一千万条数据

    mysql 自定义函数,生成 n 个字符长度的随机字符串 -- sql function delimiter $$ create function rand_str(n int) returns VA ...

  9. [原创][FPGA]Quartus中调用Modelsim波形仿真步骤说明

    0. 简介 在使用QuartusII软件的过程中,经常地需要跑仿真,那么说到仿真就不得不说Modelsim这个仿真软件了,我们这里介绍下该软件在QuartusII中的使用方法. 1. 建立Quartu ...

随机推荐

  1. Centos4.3安装MySQL-python-1.2.3,出现error: command 'gcc' failed with exit status 1

    在Linux Centos 4.3上安装MySQL-python-1.2.3的时候出现error: command 'gcc' failed with exit status 1, 具体原因是因为没有 ...

  2. oracle的一种字符串处理机制。

    orcale会把空字符串当成Null进行存储,sqlserver直接存储空字符串

  3. 利用 Dolby® Digital Plus 提供优质音频体验

    John Deutscher Azure媒体服务首席项目经理 随着媒体设备的增多,一项日益增长的需求是,视频流服务能够向用户提供超高音频质量和具有 5.1 环绕音响的优质内容.通过 Azure媒体 ...

  4. apache开源项目-- NiFi

    Apache NiFi 是一个易于使用.功能强大而且可靠的数据处理和分发系统.Apache NiFi 是为数据流设计.它支持高度可配置的指示图的数据路由.转换和系统中介逻辑. 架构: 集群管理器: 主 ...

  5. Selenium 处理windows 上传 窗口

    selenium无法控制windows窗口,故需要引用第三方工具autoit. 在如下网址,下载并安装 http://www.autoitscript.com/site/autoit/ 安装autoi ...

  6. Web---JSP-EL表达式

    EL表达式简介 EL 全名为Expression Language. EL主要作用: 获取数据: EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的java对象中获取数据. 执行运算: 利 ...

  7. [codevs3295]落单的数

    题目描述 Description 有n个数(n是奇数),其中n-1个数两两成对,有1个数落单,找出这个数.要求O(n)的时间复杂度,O(1)的空间复杂度 输入描述 Input Description ...

  8. bzoj 1030 [JSOI2007]文本生成器(AC自动机+DP)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1030 [题意] 给n个小串,随机构造一个长为m的大串,一个串合法当且仅当包含一个或多个 ...

  9. SharePoint 2010 修改默认列表样式

    SharePoint 2010  修改默认列表样式 :可以通过修改 下面两个全局配置进行修改.(未完..更新中...)  C:\Program Files\Common Files\Microsoft ...

  10. POJ1811- Prime Test(Miller–Rabin+Pollard's rho)

    题目大意 给你一个非常大的整数,判断它是不是素数,如果不是则输出它的最小的因子 题解 看了一整天<初等数论及其应用>相关部分,终于把Miller–Rabin和Pollard's rho这两 ...