verdi的快捷键
g:加载信号 Get signals
x:标注信号的值(在源代码中)Active Annotation
L :返回至上一个视图 Reload Design
Ctrl+e:Active Trace
Ctrl+w:Add Signal to Wave
H:hierarchical Name
Z:Zoom In
z:Zoom Out
f:Zoom All
l:Last View
http://blog.sina.com.cn/s/blog_72c14a3d01015q7m.html
打开nWave后并加载fsdb波形文件后,使用快捷键G(Get signals)在窗口的左下角,默认是All的选项,意思是在窗口里显示所有的信号,如果信号很多,你又只想看input,那么你就可以用input的那个过滤项,只把input信号显示出来。
状态机在设计中的定义,我们要做的是把DS_IDLE等一系列状态名字按照对应的数字显示在波形里。
先在波形里选中DS1302SM[10:0]。然后执行Tools -> Bus Contention命令,会弹出一个状态机相关的新窗口,直接把它关掉。然后在波形中间窗口DS1302SM[10:0]信号的位置上单击右键,在弹出的快捷菜单里选择ds1302z.DS1302SM(注意,这里的这个名字跟状态机所在的位置和状态机的名字有关,在你的设计里,可能是找不到这个的,不过肯定有对应的名字),然后你就会发现,波形变成了下面的样子:
信号窗口:如果需要拖动信号改变显示顺序,需要点击鼠标中键即滚轮选中需要拖动的信号,如图4所示,而黄色光标表示信号拖动后所处位置;改变黄色光标的位置也需要通过点击鼠标中键来完成,配合剪切、复制和粘贴信号等操作。
http://bbs.ednchina.com/BLOG_ARTICLE_3003298.HTM
波形窗口:在波形窗口中最主要的是光标和标记的操作,可以由三个键的组合操作就能完成所有工作,1. 通过鼠标左键控制光标的位置;2. 通过鼠标中键控制标记的位置;3. 通过鼠标右键放大光标和标记间区域的波形至整个波形窗口。在移动光标和标记时,要注意一个选项Waveform->Snap Cursor To Transitions,在使能该选项时,光标和标记始终处于信号波形变化边沿,如1-bit信号的上升沿或者下降沿;在不使能该选项时,光标和标记可以在信号波形任意位置,如图7所示,左边图为不使能选项效果,右边图为使能时效果。通过鼠标右键放大了光标和标记间区域波形,如图8所示。
http://blog.163.com/cryinrain_cug/blog/static/720214852008320111433611/
(四) 如何让波形,源代码和原理图三个窗口同步显示?
我们可以通过选择Tool->Options->Sync Signal Selection,来同步所有窗口中的信号。一旦你在nWave 或者源代码窗口或者原理图窗口选择了任何一个信号,其他两个窗口也会同步显示该信号。
(五) 如何反标信号数值到源代码和原理图窗口中?
在很多调试情况下,在源代码窗口显示信号或者总线的 数值也有一定的好处。nTrace提供了这样一个功能,Source->Active Annotation。信号值显示Cursor 当前时刻的数值。在原理图窗口中也可以反标,Schematic->Active Annotation。
(六) 如何保存当前调试的所有设置和界面?
在你启动debussy 到退出debussy 之前是一段很长的调试过程,你可以保存当前的调试环境,并在下次调用debussy 的时候使用。Debussy 自动把当前的调试环境保存在工作目录下的DebussyLog 的lastSession.ses中。File->Save Session 保存当前调试状态,下次启动后File->Restore Session.
(八) 如何使用Cursor 和Marker?
nWave 的波形窗口中默认有一个Cursor (黄色)和一个Marker (白色),左键是Cursor,中键是Marker,在波形窗口中右键是放大Cursor 和Marker 之间波形的快捷键。默认情况下Cursor 和Marker 都是停留在信号的Transition 处,你可以通过点击Wave->Snap Cursor To Transitions 关闭或者启动这个功能。
(十一) 如何保存信号列表?
在调试的过程中,你或许会打开很多窗口,同时你也会添加了很多信号,在下次调试的时候你仍然希望添加这些信号,可以通过保存信号的来实现这个想法。
File->Save Signal,把信号保存在*.rc 的文件中,下次打开仿真结果,通过Flie->Restore Signal 就可以看到希望的信号了。
(十三) 如何同步两个波形窗口?
使用两个窗口来分析两个相关的仿真结果。为了保持两个仿真数据处于同一个参考点,
选择Windows->Sync Waveform View 来实现。取消这个设置可以重新选择这个选项。
(十五) 如何在同一个窗口中观察不同的仿真结果?
nWave 允许在一个窗口中显示多个仿真结果。首先打开不同的仿真结果。在添加信号之前,激活你想看的仿真结果,File->Set Active 转换到对应的仿真结果上。
这部分我们通过一个个专题讲述如何使用Debussy,其中涉及到的例子可以在debussy 的
安装目录下的/demo 可以找到。
http://blog.163.com/cryinrain_cug/blog/static/720214852008320111433611/
(一) 如何加载设计?
方式1:命令行加载设计
> debussy –f run.f &
方式2:菜单命令加载
> debussy (运行调用debussy,出现nTrace 界面)
File-> Import Design
选中From File 栏
选中run.f,点击ADD,再点击OK。
上 面两种方式Debussy 都会自动编译run.f 中的所有源文件,而且run.f 文件支持-v这种选项,这样在调用ASIC 的时候可以自动加载使用到的库元件。编译完所有文件之后信息窗口就会显示编译信息,可以通过调用File->ViewImport Log 在独立的窗口查看详细的信息报告。
(二) 如何调用波形窗口和加载波形文件?
nTrace 中左上角(如图红色圈内)分别是波形窗口,原理图窗口和源代码窗口的启动键,点击即可启动一个新的窗口。
启 动波形窗口之后,选择File->Open,就可以打开波形文件,默认方式是fsdb 格式的波形文件,也可以选择vcd 格式的,debussy 在加载的时候自动转换格式。从nTrace的层次窗口或者源代码窗口中选中某个模块或者某个信号(使用中键)拉弋到波形窗口中即可显示对模块的IO 信号或者对应的信号。注意debussy 的波形窗口默认不显示信号的层次结构。也可以通过波形窗口中的Signal->Get Signals 或者点击Get Signal 图标来添加信号。
(三) 如何在波形窗口,源代码窗口中追溯信号的驱动源?
在波形窗口中我们可以通过双击信号的波形来追溯信号的驱动源,从而定位错误出现的位置。在源代码窗口中可以通过双击信号的名字来追溯该信号的驱动源。在源代码窗口中也可以通过右键菜单来实现这个功能。在窗口中选择Trace->Reset Traced Signals’s Color 可以取消追溯过程中带来的信号高亮度的问题。一般情况下我们是从信号的波形图中某一时刻的波形异常处双击该波形,追溯到源代码窗口中的对应赋值语句,从而找到该时刻的驱动源。
(七) 在波形窗口的信号名一栏中使用中键确定添加信号的切入位置。
(九) 如何给信号起别名?
在某些情况下,为了分析方便,如分析状态机状态跳变,我们可以通过使用起别 名的方法。通过使用Waveform->Signal Value Radix ->Add Alias from File 或者Waveform->Signal Value Radix ->Browse Alias 命令来实现。
在这里我们张贴出demo 程序中的一个CPU 状态机的alias 文件,供大家使用参考:
CLRA 8'h04
LDA 8'h14
LDA- 8'h18
STA 8'h28
STA- 8'h2C
ADDA 8'h34
ADDA- 8'h38
SUBA 8'h48
INCA 8'h08
LDX 8'h54
TAX 8'h0C
JMP 8'h8C
BNZ 8'h64
DATA 8'h20
(十) 如何自定义总线信号?
创建自己想要的总线信号,如在16bit 的总线中,你只想看到其中的偶数位的总线,或者你想把几条信号合并成一条总线信号,都可以在debussy 中轻松实现。选中要操作的信号或者总线,Signal->Create Bus.
(十二) 如何使用信号网格?
在某些情况下,通过Cursor 和Maker 来计算Delta 时间是很难估算出两个信号(或者是信号的边沿)之间的周期数的,你可以选中信号的驱动时钟,通过添加网格线的方法来实现周期数的计算。View-> Grid on Rising Edge,这样子网格线就会出现在每个周期中,View->Grid Count 来显示从Cursor 到每个网格线的网格个数。
(十四) 如何显示模拟波形?
在波形窗口中File->Open ,通过修改文件过滤为*.*,打开PowerMill 输出的powermill.out 格式的文件结果。其他操作类似数字波形。
http://blog.sina.com.cn/s/blog_72c14a3d01015p46.html
把鼠标放到一个信号上,然后按鼠标中键,一直按着不放,把信号拖到查找框里,最后放开中键,这个时候,你选中的信号就到了查找框里了,省去你输入信号的功夫了。
如果你所有的design都在一个文件里,比如说verilog文件(扩展名为.v),那么你直接把这个文件加载进去就可以。如果你的design是分布在多个文件里的,那么你可以一次把所有的design都选择上,然后加载。那还有一种方法就是在一个扩展名为.f的文件里把所有的design文件(包括某些IP的库)列出来(可以是绝对路径,也可以是相对路径),然后加载这个.f文件。在上面的操作中,我们实际上就是加载一个包含了所有design文件的run.f文件。
Verdi软件中对应的源代码文件为 verdi.f ,波形文件为 verdi.fsdb;
run.f文件的内容如下:
nTrace的一个最重要也是最优秀的功能就是可以自动trace一个信号的driver和load。如果我们想知道UARTSM的driver,那么我们直接双击UARTSM就可以了。双击以后,首先右边窗口会转移到UARTSM的driver的语句上,在窗口左侧有标记显示出来。
这里UARTSM有两个driver,都给显示出来了。那如果一个信号有很多个driver,一屏幕显示不出来,那么,会显示出最先找到的一个。我们可以从下面的log窗口里查看其他driver的信息,如下图。这里给出了UARTSM的两个driver的信息,并给出了统计数据。如果我们要看某一个driver的代码,直接在log窗口双击该driver,你可以试一下看看有什么效果。
如果你要看一个信号的load,那么把鼠标放到这个信号上,然后右键,选择trace load,那么这个时候,窗口里就会显示出该信号的load。因为很多情况下,信号的load会有很多,那么这个时候一屏幕是很难显示出来的,所以更重要的就是看下面的log窗口了,这里也会列出来所有的load。比如下图:
通过上面的介绍,你就会发现,在nTrace里通过trace信号driver和load的动作,可以很方便的弄清楚信号之间的连接关系,
http://blog.sina.com.cn/s/blog_72c14a3d01015s2n.html
Debussy提供了nTrace和nWave交互的操作模式,我们可以直接把nTrace中的信号,拉到nWave的窗口里,显示出来。执行的方法是,在nTrace中,把鼠标放到要拖拽的信号上,按着鼠标中键(一直按着),把信号拖拽到nWave的窗口里,然后释放鼠标中键,被拖拽的信号就到nWave里了。不过这个前提是打开的波形里,有dump你拖拽的这个信号的波形。另外就是,这个时候就体现出大屏幕或多屏幕的优势了,在屏幕上同时显示nTrace和nWave的窗口才好操作。另外就是可以在nTrace中选中大段的代码,然后按鼠标中键拖到nWave的窗口里。软件会自动识别代码里所有的变量,并把它们都在nWave里显示出来,