思路:在coverage里面定义了几个implementation函数,
18#定义了一个coverage group ,因为monitor里面只收集了数据, 所以coverage point 重新写了几组,里面的bin包含了一个direction和address等。
这里main的数据,data最好用区间表示,default表示除了定义外的其他数。
39#cross,data和delay,data和direction
#43行,是收集uart的coverage,这里没有direction,因为tx和rx的方向是固定的,然后就是data和delay进行了cross一下。
下面就是new了一下transction,然后例化port,new几个coverage,set coverage的名字
#96是一个write函数,rx-frame.clone()返回值是一个object类型,需要做一个转换。
然后调用一下sample函数,每次在monitor里收到值的时候,write的时候这边都会进行一个类型转换和覆盖率的收集。
例化到环境中
复用seq发送激励。定义数据和delay.这里是uart发送到apb的。
然后是apb发送到uart端的,
写了两个seq,重复数据,
vseq里面管理这些seq,先配制寄存器,再写一个定向测试apb的,然后再写个随机测试。uart测同理。
写一个test启动,config——db的方式set进去,
我们uart做一遍,能够跑起来,走一遍这个flow,最基本的receive和transmit