[DV]DMA验证经验总结(一)

                                  DMA验证经验总结(一)

       前言:在Chip中,我们经常会插入一些Debug module,例如DSB(Data Send Back);在通信系统中,用于把A-Die的数据回传到D-Die。但是需要回传的数据会有很多路,因此我们的DSB会有很多Channel。因此这类模块会有如下的信号组合:

sw_trg[192:0];

req[192:0];

work[192:0];

idle[192:0];

       那么这些信号之间的逻辑关系是什么呢?

  • 首先是SW trigger,通过下寄存器指示需要回传哪一路数据
  • 收到SW Trigger信息后,req信号拉高,同T idle信号拉低等DAM回ack之后,req拉低,work信号拉高
  • 等数据传完之后,work信号拉低,idle信号拉高

       那么我们怎样验证这一组(193Channel的话,就有193组)信号的逻辑是否正确呢?

  • 第一种方法就是拉Design内部的信号做Assertion,但是 这种方法有个缺陷,如果这跟信号连回到Register的时候,顺序接错了,我们是发现不了的。
  • 第二,这个模块是给SW Debug使用的,所以SW肯定是通过bus(APB)来读取这些信号的状态的,因此,我们还需要通过RAL Model去读这些信号的状态,以保证States的正确性

一、实现方法

 1.1、通过bus读Register中的States

  • 将系列寄存器的name用数组存储,方便循环算法的实现
string    sw_trg_hp_reg_q[$] = {"DSB_HP_IMM_TR

猜你喜欢

转载自blog.csdn.net/gsjthxy/article/details/106906543
今日推荐