因为最近事情还挺多的,有一段时间没有更新了,然后想想还是再积累一下再写新的文章,结果就一个月过去了。。。。所以避免拖延症继续发作还是写一篇一直想写的文章吧。
最近自己尝试搭建一个简单的验证平台,入门就先从简单开始!
目录
1 RTL设计
RTL就是一个带时序的1bit加法器,然后验证是否功能正确。理论上的正确功能应该是输入数据a和数据b之后的下个周期输出结果sum等于a+b。
2 UVM验证平台建立
将整个UVM验证平台分为4个部分agent、env、test、tb,逐层递进,关于层次大小结构图可以看下面这篇文章,下图是整个验证平台的hierarchy。
2.1 agent
2.1.1 add_seq_item
首先建立一个transaction,即建立一个数据包。
2.1.2 add_seq
建立一个sequence,用来发送transaction。发送transaction的方式有两种,一种是用start_item()和finish_item(),另外一种是用`uvm_do()的宏。但是两种方法的原理是一样的。
法一: