一. 概述

Debussy是NOVAS Software, Inc ( 思源科技 )发展的HDL Debug & Analysis tool,这套软体主要不是用来跑模拟或看波形,它最强大的功能是:能够在HDL source code、schematic diagram(原理图)、waveform、state bubble diagram(状态图)之间,即时做trace,协助工程师debug。
之前使用MoselSim进行仿真并进行验证,MoselSim中查看波形进行调试已经很方便,详见另一篇博文ModelSim的tcl命令。但Debussy用于debug查看波形更为方便,能在源代码、原理图和波形三者之间进行切换。
下面为整个Debussy 的原理架构,可归纳几个结论:
Debussy有四个主要单元(component),nTrace、nWave、nSchema、nState
nTrace – Hypertext source code analysis and browse tool (超文本源码分析浏览工具,为Debussy 所开启的主画面)
nWave – Waveform analysis tool (波形分析工具,可由nTrace内开启)
nSchema– Hierarchy schematic generator(层次结构逻辑示意图生成器)
nState – Finite State Machine Extraction and analysis tool(有限状态机提取和分析工具)
Debussy本身不含模拟器simulator(注:仿真器为emulator),必须呼叫外部模拟器(如Verilog-XL or ModelSim)产生FSDB file,其显示波形的单元"nWave"透过读取FSDB file,才能显示波形或讯号值的变化。

二. 安装配置

首先电脑上要安装好这两款软件并破解,我的电脑上目前安装的是Debussy 5.4v9 + Modelsim SE 10.1c。

2.1 对于32位的modelsim,网上通常的做法是:

第一步:挂PLI

1、拷贝文件…\Novas\Debussy\share\PLI\modelsim_pli\WINNT\novas.dll 至文件夹…\modeltech_10.0c\win32
2、取消文件. …\modeltech_10.0c\modelsim.ini的只读属性后,打开,找到

; Veriuser = veriuser.sl

改为

Veriuser = novas.dll

注意将前面的;去掉,保存,关闭,设为只读。

第二步:修改环境变量

变量名:DLIBRARY PATH
变量值:Debussy安装目录下的novas.dll如
D:Debussy’\share plilmodelsim pli\winnt\novas.dll
变量名:PLIOBJS
变量值:同上
(注:上述步骤只需配置一次)

2.2 但是对于64位modelsim的计算机

按照上面所说的配置,在仿真的时候会出现错误:Error: (vsim-3193) Load of “F:\modeltech64_10.1c\win64/novas.dll” failed: Bad DLL format.

所以我们不能按照32位机的要求来配置,可能小伙伴就要问了,如果不添加novas.dll的话,我们是不能使用$ fsdbDumpfile()函数的,那咋办呢?
办法就是使用

$dumpfile(“wave.vcd”);
; $dumpfile(“wave.dump”); 也可

$dumpvars;

即可,最后在debussy使用波形的时候添加.vcd或者.dump文件,debussy会将它自动变为.fsdb文件,具体操作请往下看。

图中的.fsdb文件为debussy根据.vcd文件自动添加的。

三. 实例

以ModelSim的tcl命令中的sfifo为例子进行讲解。
如果结合Debussy,ModelSim的唯一功能就是产生Debussy可以识别的波形文件-FSDB文件了。
对于32位modelsim,在测试平台(testbench)中添加FSDB系统函数,典型的可以把下列语句加到testbench中:

initial  begin$fsdbDumpfile("wave_test.fsdb");     //文件名随便起$fsdbDumpvars;
end

ModelSim仿真完成后,工程目录下会生成wave_test.fsdb,这就可以为Debussy所用了!
对于64位modelsim,在测试平台(testbench)中添加dumpfile系统函数,典型的可以把下列语句加到testbench中:

initial  begin$dumpfile("wave_test.vcd");     //文件名随便起, 或者用$dumpfile("wave_test.dump");$dumpvars;
end

ModelSim仿真完成后,工程目录下会生成wave.vcd或wave.dump,这就可以为Debussy所用了!

3.1 设计文件导入

首先导入设计文件。File -> Import Design,选择From File。从左下角的窗口里选择design所在的目录,然后从右下角的窗口里选择要加载的design文件并双击之,文件会出现在Design Files的框里,然后单击OK按钮,design就被加载到软件里了。

也可以将设计文件放在.f文件中,如图所示,.f文件中内容为:

设计加载后:

注:
设计文件和.f文件不要同时导入,否则会有warning:

按照提示,打开.log文件查看warning原因:

可知是因为编译了两次设计文件,导致宏定义发生了覆盖。

3.2 nTrace

nTrace的一个最重要也是最优秀的功能就是可以自动trace一个信号的driver和load。如果我们想知道in_data的driver,那么我们直接双击in_data就可以了。双击以后,首先右边窗口会转移到in_data第一个driver的语句上,在窗口左侧有标记显示出来。
如果一行上存在driver,那么行号左边会有一个标记。如果该信号有多个driver,可以拖动滚动条查看,此外在软件下方的Message window中查看其他driver的信息。

我们可以看到in_data共有四个driver,可以双击左键进行定位查看,非常方便。

同理,如果你要看一个信号的load,那么把鼠标放到这个信号上,然后右键,选择trace load,那么这个时候,窗口里就会显示出该信号的load。在Message window中查看其他load的信息。

当然使用工具栏中“D”与“L”也可以查看此信号的drivers与loads,右侧的箭头用于选择上一个与下一个。

3.3 nWave

nWave是用来查看信号波形的,所以使用nWave的前提就是你已经生成了格式为fsdb的波形文件(前面已经讲过,在ModelSim仿真时产生)。Debussy默认的界面是nTrace,我们在nTrace界面下,单击下图红色方框里的图标,即NewWaveform。

nWave的界面如下:

打开nWave后,就可以加载之前生成的fsdb(或.vcd或.dump)波形文件了。用File-> Open打开波形文件。当打开名字为wave.vcd的波形文件后,界面如下图所示。


在左侧窗口会有一个默认为G1的信号组。因为我们还没有在波形中拉出来任何的信号,所以除此之外窗口中还没有任何显示。
我们可以通过菜单栏上打开文件左边的Get Signals按钮来加入想要查看的信号。可以通过左下角选择添加的类型,默认是ALL。


添加信号后,如下图所示。

3.4 有几个操作知识点:

1.改变信号位置,可以通过按住鼠标中键(即滚轮)进行移动(左键点击为选择)。

2.如果想改变某个信号的颜色显示,可以在左边选中该信号,然后在菜单栏中WaveForm-> Color/Pattern进行选择。

3.右边波形窗口中有两条线,分别是黄线代表光标时间线(鼠标左键来点击),白色代表标记时间线(鼠标中键来点击),两者的数值在工具栏中有显示,并给出了两者之间的时间差。可以通过单击鼠标右键放大两者之间的显示,即铺满波形窗口。

工具栏

铺满

4.下图ns[2:0]和cs[2:0]为状态机。

波形显示的数值,不够直观,怎么能显示我定义的参数名字呢?软件还是提供了这功能的。切换到nTrace窗口,执行Tools –> Extract Interactive FSM,弹出如下窗口。


选择哪个都可以,区别是选择第二个的话适用于全部的状态机。我选择了第二个,毕竟比较直观,喜欢看状态名字,也便于调试。

双击,便可打开状态机转化图

状态机以状态名字显示

4.nTrace和nWave的交互使用

Debussy的强大更在于各个功能窗口之间的交互。

4.1.最实用的是我们可以在nTrace的源代码中想查看某个信号的波形,我们可以选中后按住鼠标中键别松开,直接拖到nWave进行显示,非常方便。

4.2.在调试波形过程中发现错误,我们可以双击鼠标左键,软件会自动定位到源代码中的位置,便于我们调试。

4.3.在nTrace中,执行Source –> Active Annotation可以标出仿真结果在source code下方,非常利于我们调试。在波形中选择一个时间点,那么在代码下方显示的就是这个信号在此时间点的值或者趋势。此外,还打开了参数注释,执行Source –> Parameter annotation,在状态机参数下方显示定义的数值。

5. nSchematic介绍

点击工具栏中的New Schematic即可进入nSchematic

上面的工具栏中,有常用的放大、缩小, 这2个图标的功能是选择design中的上一层与下一层

当到达最底层时,可以通过双击某一图形单元查看其代码

点击View->Detail RTL可以查看RTL级电路

RTL级电路

6.同时观察

nWave, nTrace, nSchematic窗口可以一起观察,是不是很方便呢!

7.如何保存当前调试的所有设置和界面?

在你启动debussy 到退出debussy 之前是一段很长的调试过程,你可以保存当前的调试环境,并在下次调用debussy 的时候使用。Debussy 自动把当前的调试环境保存在工作目录下的DebussyLog 的lastSession.ses 中。File->Save Session 保存当前调试状态,下次启动后File->Restore Session.

四.总结

ModelSim的功能太强大了,于是就有点繁琐。和Debussy协同仿真,我们就省却了许多不必要,何乐而不为呢。当然,还有许多的功能,由于水平有限,就写到这里吧。希望对大家有帮助!

文章参考:Debussy的安装与使用

ModelSim+Debussy联调相关推荐

  1. 2.Debussy安装 与 modelsim与debussy联调环境的搭建

    前言:因为我跟着学习的老师,使用的是行业内很久以前在用的联调工具,因为目前我们的机器中都是ModelSim Win64,无法实现Debussy与Modelsim联调实现 nWave的功能,又作者这样做 ...

  2. modelsim与debussy联调环境的搭建

    为了方便查看波形,找来了一款软件--debussy,它的一个优点是任你查看设计内信号,只需一个波形文件,如FSDB文件.而不用像modelsim那样想看某些信号,添加了之后还要重新编译仿真,浪费了很多 ...

  3. ModelSim 与Debussy联调

    ModelSim 与Debussy联调 seuchenrui@126.com Windows环境下的Verilog仿真调试工具,也就那么几个: Mentor的ModeLsIM Xilinx的ISIM ...

  4. debussy与modelsim的联调设置

    本文转载自: https://www.cnblogs.com/zhihongyu/archive/2012/03/23/2413552.html 作者:zhihongyu 转载请注明该声明. 前段时间 ...

  5. 1.Debussy安装 与 modelsim与debussy联调环境的搭建

    目录 1.Debussy安装 新增说明:请先阅读<2.Debussy安装 与 modelsim与debussy联调环境的搭建>再返回来看这篇文章的具体步骤,目前已完全解决问题! 博客链接: ...

  6. Modelsim+Debussy联合使用

    首先电脑上要安装好这两款软件并破解,我的电脑上目前安装的是Modelsim6.5e和Debussy5.4V9. 1.拷贝文件..\Novas\Debussy\share\PLI\modelsim_pl ...

  7. Xilinx FPGA 仿真环境设置(ISE + Modelsim + Debussy)

    目的:使用ISE调用modelsim进行仿真,并使用debussy查看仿真波形 准备: 安装ISE.Modelsim和Debussy软件 将C:\modeltech_6.5a\modelsim.ini ...

  8. Quartus prime16.0 与modelsim ae 联调

    前言 quartus和modelsim联调对仿真还是很方便的,当然最好是quartus干综合到烧录的活,modelsim单独仿真.而且ae版的性能比se版差. 流程: 1.配置modelsim ae路 ...

  9. ModelsimSE debussy

    ModelsimSE & debussy FPGA仿真 现在用的是quartus与modelsim-altera的联调,似乎还是可以的,但就是每次稍微改一下代码,想要添加一些输出信号的时候,又 ...

最新文章

  1. hdu2196 树形DP
  2. 2017年9月2日普级组T2 跳格子
  3. C#GDI+编程基础
  4. 【MPI0】学习资料搜集
  5. 上位机与下位机的串口通信实践
  6. Linux系统中使用Xbox360手柄
  7. 配置中心—Consul配置管理
  8. Linux之python版本升级
  9. PLUS模型教程五:多情景设置,附全套教程练习数据
  10. 人脸对齐之SDM论文解析
  11. 解决 Navigating to current location (/userslist) is not allowed问题。
  12. 004.了解Excel宏
  13. AI System 人工智能系统 TVM深度学习编译器 DSL IR优化 计算图 编译 优化 内存内核调度优化 DAG 图优化 DFS TaiChi 函数注册机 Registry
  14. Linux查看/设置服务器时间
  15. (第二章) hive安装之Hive安装部署
  16. Tian Ji -- The Horse Racing(贪心+STL)
  17. 使用飞信api接口实现短信发送(只能发送好友)
  18. 硕士复试自我介绍中英模板
  19. 零和博弈-极大极小搜索Alpha-Beta剪枝(井字游戏)
  20. 【数据存储】从hashMap、mysql、redis、到分布式

热门文章

  1. 二分查找定边界(详细解析)
  2. Python 画降雨图,mash 数据掩膜 裁剪出想要的区域,根据shp文件裁剪tif数据
  3. IntelliJ IDEA修改字体大小
  4. rap2检测哪些接口在使用_RAP2介绍
  5. 十二种标题编写方法,让你流量暴涨
  6. 解决/home/travis/.travis/functions: ./mvnw: Permission denied
  7. 第二次网页前端培训笔记(HTML P4-P7)
  8. 学习web前端历程(十)
  9. 融入开源最好的方法:Learning by doing——ASF董事、华为开源管理中心技术专家姜宁
  10. Stateflow中三种状态转移方式的区别(默认转移、外部转移、内部转移)