Verdi之状态机状态查询nState

目录

5. nState

5.1如何打开状态机视图

5.2 如何在状态机视图中添加状态转移条件

5.3 如何查看状态机个状态对应的相关代码

5.4 查看具体的状态机状态转移时间点

5.5 查找自定义状态 

5.6 查找某个状态执行的次数


5. nState

5.1如何打开状态机视图

1. 将设计文件导入Verdi

2. 选中设计文件,打开设计视图:

Verdi之状态机状态查询nState_第1张图片

3.打开结果如下,可以直接点击状态机,进入状态机视图;

Verdi之状态机状态查询nState_第2张图片

 点击后结果展示:

Verdi之状态机状态查询nState_第3张图片

5.2 如何在状态机视图中添加状态转移条件

 在设计视图打开view->state action/transition condition

Verdi之状态机状态查询nState_第4张图片

 5.3 如何查看状态机个状态对应的相关代码

选中状态机状态/转移条件,鼠标中键按住拖动到代码界面,对应的代码会被标识出来,结果如下:

Verdi之状态机状态查询nState_第5张图片

 5.4 查看具体的状态机状态转移时间点

首先需要理解,设计的状态机类似与一个硬件,实现状态转移必须要进行软件的驱动,这也就是我们的tb验证驱动,所以查看具体状态机的状态转移节点一i的那个是要在仿真过程中实现的。具体的实现步骤如下:

1.首先需要打开dump 波形;

2.点击状态机FSM->state animation,该功能硅记录状态转移的动画

Verdi之状态机状态查询nState_第6张图片

3.选择需要查看的状态,查看转移的时间节点, 

Verdi之状态机状态查询nState_第7张图片

5.5 查找自定义状态 

以上查找只局限于现有的设计定义的单个状态,但是在验证过程中往往休要考虑一系列状态的转移是否实现,这就要求verdi能够实现自定义的状态检查功能,具体的操作如下:

1. 在状态机界面点击 FSM->edit search sequences

Verdi之状态机状态查询nState_第8张图片

 2.进入search界面,如下,第一次点击new,在新建窗口输入新建序列的名称以及具体状态结合,状态的顺序按照sequence 顺序依次从上到下执行。新建完成点击close,如果是modify,点击apply。

Verdi之状态机状态查询nState_第9张图片

3.最后在时序选择的界面会发现刚刚定义的序列已经更新进去了,选中,可按照上边的步骤进行查找;

Verdi之状态机状态查询nState_第10张图片

提示:此时nWave的波形和状态转移的时间是互通的,换句话说,比如,上图的时间是在17500000 ps,在波形上指示线也是停在这个位置.

5.6 查找某个状态执行的次数

1. 如下图,点击FSM->analysis report ,进行报告查询

Verdi之状态机状态查询nState_第11张图片

 2. 可以查询单个状态的实现次数,亦可以相邻状态的转移次数

Verdi之状态机状态查询nState_第12张图片

 

 

你可能感兴趣的:(VCS,uvm,Verdi,状态机,FSM,vcs)