前段时间看到别人用verdi看状态机的波形时,可以显示定义的状态参数,觉得很有意思,特地学习了一下
通常拉出状态机信号的波形是下面这样的
这种信号,我们要想知道每个数值代表的状态,还需要跟定义的parameter比对
像这种状态值少的,很容易记住,但如果状态有数十个,找数值对应的状态简直是灾难
但如果状态信号的波形是这样显示的
这样是不是就清晰很多了
下面介绍如何实现
首先先选中信号,点击鼠标右键,会弹出如下窗口
在点击红框选中的部分,会有如下选项
看看有没有箭头指向的选项,如果有选中 Enumerated Literal 状态机的信号就会显示状态名称了
如果没有也没关系,按如下操作
选中 Tool ,在选择箭头指向的位置,然后会有一个弹窗
直接选中 All Stages 就好
然后会出现下面这样的界面
显示的两个图形是 fsm,因为这份rtl里用了两个fsm,所以会显示出两个
在其中一个fsm上点击鼠标右键,弹出如下界面
选中红框圈住的部分,会有如下选项
我这里选择的是箭头指向的选项
然后这个信号就有状态名啦
如果fsm太多,不知道对应的是哪个,可以按照下图进行选择
点击后就可以跳到对应的rtl code
**不过也可以尝试在完成下图操作后,直接在rtl处拉信号,应该也是可行的 **