UVM和System verilog笔记总结(三)

常用的几个phase
在这里插入图片描述

使用raise和drop标签来让phase机制同步运行。
在这里插入图片描述
断言assertion有助于提高效率,定位报错,在property里面写判断语句。
在这里插入图片描述
上面的意思是sequence配合.ended语句判断是否全部符合条件,验证人员编写端口的assertion。

|—>同一个时钟沿触发后面的句子
|=>下一个时钟沿触发后面的句子
在这里插入图片描述
判断“|”前面的request是否为高电平,然后触发后面的sequenct。
在这里插入图片描述
这里的【1:4】的意思是在时序1到4之间的acknowledge都必须是1,否则报错。
这里如果用RTL来写,至少要10行,所以SV的验证方法学很重要。类似于一个while(True):
do something
在这里插入图片描述
assertion是一门非常重要的技术,对于时序的断言非常有效。

SV里面的sequence是时序修改状态的,而UVM里面的sequence是一个在task body()函数里面写rand激励,写响应的,transaction确定好数据格式,sequencer将激励送给driver解析,再利用interface送到DUT,最后用befor_monitor和after_monitor查看scoreboard。
在这里插入图片描述 从左到右执行,##1 表示慢1拍。