『转载』Debussy快速上手(Verdi相似)

Debussy 是NOVAS Software, Inc(思源科技)发展的HDL Debug & Analysis tool,这套软体主要不是用来跑模拟或看波形,它最强大的功能是:能够在HDL source code、schematic diagram、waveform、state bubble diagram之间,即时做trace,协助工程师debug。

可能您会觉的:只要有simulator如ModelSim就可以做debug了,我何必再学这套软体呢? 其实Debussy v5.0以后的新版本,还提供了nLint -- check coding style & synthesizable,这蛮有用的,可以协助工程师了解如何写好coding style,并养成习惯。

下图所示为整个Debussy 的原理架构,可归纳几个结论:

Debussy有四个主要单元(component),nTrace、nWave、nSchema、nState

l nTrace -- Hypertext source code analysis and browse tool (为%Debussy &所开启的主画面)

l nWave -- Waveform analysis tool (可由nTrace内开启,或直接%nWave &开启)

l nSchema -- Hierarchy schematic generator

l nState -- Finite State Machine Extraction and analysis tool

Debussy本身不含模拟器(simulator),必须呼叫外部模拟器(如Verilog-XL or ModelSim)产生FSDB file,其显示波形的单元"nWave"透过读取FSDB file,才能显示波形或讯号值的变化

快速上手五部曲: (Debussy v.5.2)

1. Import Files and generate FSDB file
2. Trace between hierarchy browser and source code
3. Trace between hierarchy browser、source code and schematic
4. Trace between hierarchy browser、source code、schematic and waveform
5. nLint
(nState本文没介绍,有兴趣的读者,请依文后的连结,自行下载CIC所提供的NOVAS原厂编写教材参考)

1.Import Files and generate FSDB file

1-1 启动Debussy:% Debussy & (此处的D大小写都可以,但其它指令的大小写可能就有差别)

开启nTrace window如下,此时工作目录下会新建一个"DebussyLog"目录

1-2 Import Files:File \ Import Design...

结果如下图所示:nTrace视窗中,含有三个区域,Hierarchical Brower、Source code window、Message window。
(如果不想看波形,只想查看source code与schematic的关係,您可以直接跳到step 2-1)

此时DebussyLog目录内会有Debussy.cmd、turbo.log、compiler.log三个档案。Debussy.cmd纪录所有import
的档案与之后所有的执行程序。我们可以直接引用这个档案来执行上一次我们做过的一连串程序(refer to 1-5)。

1-3 设定外部模拟器,藉其產生FSDB file: Tools \ Options \ Preferences...

1-4 切换到Interactive Mode:Tools \ Interactive Mode (此时ToolBar上会出现Simulation选单)
开始执行模拟:Simulation \ Run/Continue (模拟结束工作目录下就会產生dump_i.fsdb )

Source code目录下,要有先前ModelSim所建立的此project的work library,不然会有错误讯息:Failed to access library 'work' at "work"。另外,你不能只是开一个work资料夹,而是要真的用ModelSim產生work library,并且把design compile to the work library后,step 1-4才会正确动作。

1-5 结束程式:File \ Exit

1-6 快速启动执行序

把DebussyLog目录下的指令记录档Debussy.cmd复制到目前工作目录下,重新编辑此档 (删掉最后一行的"debExit"
然后储存),引用它来开启Debussy可重复之前同样的动作程序

% Debussy -play Debussy.cmd &(结果相当於从步骤1-1做到1-4)

1-7 其他启动Debussy的方法

% Debussy -f xxx.f (类似开启一个事先编写的批次档,可以同时一次载入多个.v)
% Debussy -vhdl -f xxx.f (类似开启一个事先编写的批次档,可以同时一次载入多个.vhd)

以上都是属於Import design from file的方法,另外还有一种方法是Import design from library。两者的差异在於:
Import design from file是将design compile to RAM,而Import design from library则是将design compile to library
(default lib. is "work")。

对於比较大的project,為了避免每次使用Debussy都要花时间compile,建议採用Import design from library的方
法,而且mixed-language design一定要用Import design from library的方法。

Ex. for Verilog files:%vericom -inc -f run.f
%Debussy -lib work -top xxx &

Ex. for VHDL files:%vhdlcom -93 -f run.f
%Debussy -lib work -top xxx &

2.Trace between hierarchy browser and source code

2-1 在Hierarchy browser点击A1(FourBitAdder)左侧的符号"+",可以展开四个full adder (fa0, fa1, fa2, fa3)

->

2-2 试著双击Hierarchy browser内的testbed or A1 or fa0 ...
右边的source code window会立即切换到相对的module

也可以利用滑鼠"中键",将左边的module name直接拖曳丢进右边source code window,效果相同。
(利用滑鼠中键在不同视窗间拖曳,是Debussy中最常用的方法)

2-3 双击上图source code window内的"fulladder"(in line 8),软体会自动帮你追踪出引用fa0的地方
结果示於下图 -- A1(FourBitAdder)的fa0 (in line 32);若再双击fa0(in line 32),则又回到上图。
--> 你可以藉由这个方法,轻易的追踪出project内的所有design彼此之间的关连性

:恢复上一动作

2-4 除了追踪designs之间的关连性,也可以用同样的方法追踪出signal's drivers and loads。
若双击上图的讯号c_in (in line 24),将显示该讯号的所有的drive loads
结果如下图 -- message window显示,有4处drive c_in,分别在add4test line 69, 71, 73, 75

用Show Next 来查看所有的drive loads (at line 69, 71, 73, 75)

选定line 69, Trace \ Load 则可用来追踪该讯号的所有"loads"

3.Trace between hierarchy browser、source code and schematic

3-1 开启nSchema有三种方法

* (nTrace) Tools \ New Schematic \ ...
* 双击工具列上的New Schematic icon
* 把想看schematic的部分,直接以滑鼠中键,从hierarchy browser拖曳丢进 icon (常用)

下图是把A1(FourBitAdder)丢进New Schematic icon的结果:

如果想直接看symbol "fulladder"的source code,先以左键选定(highlight)该元件,然后按右键,从快速选单选择"Display Source Code"

选择(highlight)第一个full adder的第二条输出讯号,然后按Tools \ New Schematic \Fan-In Cone试试

分别用来缩小/放大画面, 则是让图形大小自动调整至填满整个视窗(如上图)

回前一画面; 回最上层画面

3-2 双击上图内的元件符号(如第一个fulladder)可进一步看到其内容/ 细部电路组成(fa0)

3-3 请自行尝试,在hierarchy browser、source code与schematic window之间,用滑鼠中键互相拖曳designs/signals的效果

4.Trace between hierarchy browser、source code、schematic and waveform

4-1 接下来的操作,需要利用模拟器所产生的资料(.fsdb),以"nWave"显示讯号波形,有两种可能作法

从1-6(对Import files已作compile,也有其.fsdb file),接著开启"nWave"

从1-1~1-2,然后开啟"nWave",载入1-4所产生的dump_i.fsdb。
开启"nWave"的方法有三种
* 按(nTrace)工具列的 (New Waveform icon)
* (nTrace) Tools \ New Waveform
* % nWave &

4-1-1 如果是从1-2接著打开nWave window,一开始nWave内容是空的,要执行(nWave) File \ Open...
以载入dump_i.fsdb。

4-1-2 接著按 Get Signals icon,此时就会看到有讯号可以让你选择了
-- 如果你看不到讯号,把想观察的design(A1),直接从(nTrace) Hierarchy browser拖进nWave就可以

4-1-3 (nWave) View \ Zoom \ Zoom All
-- 如果你看不到波形,请再执行一次 (nTrace) Simulation \ Run/Continue就会看到

已在signal window选择的讯号,如果想要删除:选定要删除的讯号highlight,按滑鼠右键选择"Cut"
如果是从1-6接著打开nWave window的,直接进行step 4-1-2即可

4-2 启动Active Annotation功能:(nTrace) Source \ Active Annotation
能够在nWave选择讯号触发缘,同时在nTrace的source code的所有讯号符号下方,直接看到数值的变换

4-3 在nWave双击想观察其触发状况的讯号 (如c_out)

4-4 从(nTrace)Hierarchy browser双击A1(FourBitAdder),按 Search Forward icon,看看在nTrace与nWave的变化

5.nLint

5-1 开启图形介面的nLint

% nLint -gui & (大小写不能改,n一定要小写,L一定要大写)

开启nLint window如下,此时工作目录下会新建一个"nLintLog"目录

5-2 Import Files:File \ Import Design... (与step 1-2一模一样的操作后,结果如下所示)

5-3 执行Run \ Compile

5-4 执行Tools \ Rule Organizer,或按 选择check哪些rules
-- 不想检查的项目,就把E/D那一栏的核选框框取消

5-5 执行Run \ Lint -- 会自动跳出ReportViwer显示检查结果

5-6 展开report,选择第一个黄色警示标示,其出错的原因与原始码部份,会即时显示在下方的栏框中。
如果要修改source code,在该错误选项上,按滑鼠右键,选择Show violation \ to default editor

对於不想检查的档案,可以选定该档后,按 再做compile。以此例而言,testbench是不可合成的,
故若先对add4test.v做suppress再执行step 5-5,结果就会变成"0 violation"。

Verdi调试

Verdi调试主要分为以下几步

1、Load design and testbench into Debussy;

2、打开nWave,载入对应的FSDB;

3、在nTrace中将要观察的信号通过鼠标中键Drag&Drop拖放到nWave中;

4、通常都是在波形上发现问题,找到错误地方并双击鼠标,会自动跳到Real driver statement,也即会跳到源代码所在。

5、nTrace中,Active Annotation(快捷键X)标出仿真结果在source code下;

6、在先前driver statement中找个driver来使用active trace来追踪有效驱动。

7、只需执行一遍仿真就可以查看所有的波形,而在modelsim中则需要反复运行add wave命令,每一次都要重新仿真。

8、可以查看设计的原理图schematic,这非常方便查看每一个module和wire的所对应的硬件结构,modelsim现在还没有这个功能。

9、在仿真时可以很轻易地追踪每个信号所对应的源码。

转载于:https://www.cnblogs.com/OneFri/p/5285707.html

『转载』Debussy快速上手(Verdi相似)相关推荐

  1. 『转载』hadoop2.x常用端口、定义方法及默认端口

    『转载』hadoop2.x常用端口.定义方法及默认端口 1.问题导读 DataNode的http服务的端口.ipc服务的端口分别是哪个? NameNode的http服务的端口.ipc服务的端口分别是哪 ...

  2. 『抽丝剥茧』手把手快速上带你开启文心大模型的奇妙冒险

    『抽丝剥茧』手把手快速上带你开启文心大模型的奇妙冒险 文心大模型简介 文心大模型ERNIE 3.0系列&&ERNIE-ViLG文生图系列 使用文心大模型 网页快速体验 代码调用之ERN ...

  3. 『深度应用』OneFlow快速上手指南

    现实中没有复杂的系统 --<极简主义>范式一:事情其实很简单 0.引子 为什么会有写这篇文章? 1.这不是一篇广告文,笔者不是大V,没人联系写稿,请放心食用. 2.这不是一片解析文,笔者水 ...

  4. Debussy 快速上手教程

    本文为转载,刚瞄了一眼,应该是在LINUX下的应用快速上手教程.Debussy是个很强大的看V代码及Debug V代码工具.你能方便地看到信号从哪里来到哪里去,比较强大.简单地用,用起来也比较简单.在 ...

  5. 『转载』在vs2008(2005)winform中,打开office文档

    最近在准备毕业设计,这个阶段应该是可行性分析阶段吧,在查阅相关的技术问题,由于涉及office,所以今天写下这篇文章,以备日后查阅.这篇文章也是参阅msdn而来的,我在这里提供了实例和下载,方便大家调 ...

  6. 『转载』 SSL协议与数字证书原理

    SSL协议与数字证书原理 1 SSL(Secure Socket Lclientyer)是netscclientpe公司设计的主要用于weserver的安全传输协议.这种协议在WESERVER上获得了 ...

  7. 玉簪花by berta『转载』

    玉簪是一种花,然而现在,这种花却已经不存在了. 它喜阴,不能多见阳光,只适合在南墙根生活: 它喜静,过多的喧哗能使它枯萎: 它喜湿,太过干燥会使它失去叶的滋润与花的幽香. 玉簪花的颜色是纯白: 花的形 ...

  8. [5] 使用 TestLink 进行测试管理 『转载』

    TestLink用于进行测试过程中的管理,通过使用TestLink提供的功能,可以将测试过程从测试需求.测试设计.到测试执行完整的管理起来,同时,它还提供了好多种测试结果的统计和分析,使我们能够简单的 ...

  9. 『转载』|收藏|一张看懂AI知识体系

    一大张图展示AI领域全貌,没事儿多看看了解自己的位置.

最新文章

  1. win32thread.c:(.text+0x60):对‘_beginthreadex’未定义的引用
  2. 【错误记录】Ubuntu 中 ROOT 用户无法启动 Visual Studio Code 开发环境 ( 推荐在普通用户下使用 VSCode 开发环境 )
  3. 详解Linux-I2C驱动
  4. 主梁弹性模量计算_如何用梁格法计算曲线梁桥?
  5. ie9 css过大,CSS 3后台大小不适用于IE9(CSS 3 background-size not working on IE9)
  6. 基于Rainbond开发Python云原生应用
  7. Windows 10 系统优化脚本大全
  8. 联想y7000 Linux显卡驱动,联想Y7000安装ubuntu1804.6双系统和显卡驱动(一)
  9. 思科网络安全解决方案
  10. 手机也能实时查看开关门状态?Zigbee 智慧厕所门亮了
  11. 【嗅探工具】wireshark初步认识
  12. linux下word转pdf
  13. js方法禁止查看源文件、防止复制、禁止右键、防被框架的方法总结
  14. 网站html源代码如何修改,如何修改网页源代码
  15. SAP ALV 导出 Excel 负号前置「实例」
  16. 深入剖析基于并发AQS的(独占锁)重入锁(ReetrantLock)及其Condition实现原理
  17. 局域网内ubuntu显示网络已经连接,能ping通,打不开网页
  18. ALSA声卡驱动中的DAPM详解之一:kcontrol
  19. RPC框架面试总结-RPC原理及实现
  20. PyQt5教程 QLineEdit 限制输入中文和中文字符,如账号密码框验证

热门文章

  1. linux安装用户名,Linux_Linux下用户名修改法,  在安装系统的时候填写 - phpStudy
  2. android8.1获取蓝牙地址,[蓝牙] Android 8.1 获取蓝牙设备地址无效;02:00:00:00:00:00
  3. 如何判断基因组的重复区域_人类参考基因组GRCh37 VS GRCh38
  4. Linux那些事儿之我是Sysfs(3)设备模型上层容器
  5. 树莓派视觉小车 -- 物体跟踪(OpenCV)
  6. 【深度学习】(3) 全连接层、激活函数
  7. win10 java applet_win10系统的ie11浏览器无法打开Java applet
  8. python廖雪峰_【Python】python中实现多进程与多线程
  9. 剑指offer:面试题17. 打印从1到最大的n位数
  10. Hololens Unity 开发入门 之 Hello HoloLens