原文 http://blog.sina.com.cn/s/blog_72c14a3d01015q7m.html
nWave是用来查看信号波形的,所以使用nWave的前提就是你已经生成了格式为fsdb的波形文件(在仿真中生成fsdb波形文件的方法可参考本博客中相关的文章)。
上面我们说过,debussy默认的界面是nTrace,我们在nTrace界面下,可以通过单击下图红色箭头所指的按钮来打开nWave
nWave的界面如下:
打开nWave后,用File-> Open打开波形文件。当打开名字为test.fsdb的波形文件后,界面如下图所示,右上会有所打开波形文件的存储路径和波形文件的名字。在左侧窗口会有一个默认为G1的信号组。因为我们还没有在波形中拉出来任何的信号,所以除此之外窗口中还没有任何显示。
我们可以通过下图红色箭头所示的按钮将需要显示的信号波形拉到窗口里显示出来。
单击上面的按钮后,会出现下面的窗口。最左边的窗口里显示出来的是design的层次列表,在这里可以选择你要查找 的信号所在的层次模块。如果你选择了其中的一个层次模块,左键单击之,则在中间靠上的窗口里,会给出该层次模块的子模块,在中间靠下的窗口里,会给出该层 次模块下的所有信号。有一个技巧可以掌握,在窗口的左下角,默认是All的选项,意思是在窗口里显示所有的信号,如果信号很多,你又只想看input,那 么你就可以用input的那个过滤项,只把input信号显示出来。具体有哪几个过滤项,你们可以自己试试看。
如果你想要将一个信号的波形在窗口里显示出来,则直接双击这个信号,那么在右边的窗口里,默认就把该信号(DS1302_SCLK)加入到了G1组里。然后单击apply,再查看nWave的主窗口,就会发现,DS1302_SCLK的波形就已经显示出来了,如下图所示:
上图中,左边窗口G1组里,显示了DS1302_SCLK的信号名字,另外又多出了一个空的G2组。在中间窗口,显示了信号在某一个时刻的值,这个时刻是通过鼠标单击波形来选择的。在右边窗口,就是信号的波形了。
我们主要关注一下下面几个快捷键的功能,前三个都跟波形的显示有关系,缩小,放大和100%显示,大家应该都比较熟 悉了,肯定在其他软件里也看到过。后面三个是查找相关的,下拉框是选择查找模式,默认的是上升沿,后两个是查找方向。软件提供了多种查找模式,大家可以试 一下每一个都是怎么使用的。最后一个是显示的时间单位,默认是1ps,可以根据自己的需要改变成其他的时间单位,比如ns,fs等。
再看下面的时间显示。首先要说明的是,这个时间是以后面选择的时间单位为基准的。最左边显示的时间是黄色竖线所在点 的仿真时间(黄色竖线的位置选择可以通过在波形中单击鼠标左键来实现)。中间显示的是白色竖线所在点的仿真时间(白色竖线的位置选择可以通过在波形中单击 鼠标右键来实现)。右边显示的是两个时间点之间的间隔。如果我们想查看一个信号在某一个状态下的时间,就可以通过移动两个竖线来查看。
一般情况下,用不同的颜色表示不同性质的信号,前两个信号是争产过的,第三个LCD_DB是HighZ,SEL_KEY[3:0]是unknow,DATA_CNT[9:0]就是多bit的信号。
多bit的信号,默认是16进制显示的,可以在中间窗口,选择要更改的信号,点右键,选择其他的进制。比如将上面的DATA_CNT[9:0]换成二进制显示:
对于一个状态机的状态,默认是按数字显示的,如下图:
如果一个状态机的状态比较少的话,定义比较好记,我们可以直接看数字就知道是代表的什么意思。但如果状态比较多,比如我们这个状态机有11个状态,用数字表示的话,就很难直观的看出来。这里我们介绍一种直接显示状态机状态名字的方法。
下面是这个状态机在设计中的定义,我们要做的是把DS_IDLE等一系列状态名字按照对应的数字显示在波形里。
先在波形里选中DS1302SM[10:0]。然后执行Tools -> Bus Contention命令,会弹出一个状态机相关的新窗口,直接把它关掉。然后在波形中间窗口DS1302SM[10:0]信号的位置上单击右键,在弹出 的快捷菜单里选择ds1302z.DS1302SM(注意,这里的这个名字跟状态机所在的位置和状态机的名字有关,在你的设计里,可能是找不到这个的,不 过肯定有对应的名字),然后你就会发现,波形变成了下面的样子:
实际上nWave的功能是非常强大的,用这么短的篇幅只能介绍其常用功能的一少部分。要想玩儿熟练nWave,还是需要自己多做尝试。这里就不再介绍其他的功能了。
文章评论(0条评论)
登录后参与讨论