搭建UVM平台验证I2C slave,driver及monitor的写法请教
时间:10-02
整理:3721RD
点击:
Hi, all
我最近在学习UVM,想尝试自己搭建一个UVM平台来验证I2C slave。对于,其中driver及monitor的写法有点疑惑。I2C master发出的命令结构为:开始信号 + 器件地址 + W + ACK + 偏置地址 + R + ACK + 开始信号 + data + STOP信号。对于,driver来说,我初步想法是driver里驱动数据(开始信号 + 器件地址 + W + ACK + 偏置地址 + R + ACK + 开始信号),而data + STOP信号由monitor来完成。但感觉这样不是很正确。想请教一下高手,我应该在driver及monitor里各完成什么样的任务?请不吝赐教。
我最近在学习UVM,想尝试自己搭建一个UVM平台来验证I2C slave。对于,其中driver及monitor的写法有点疑惑。I2C master发出的命令结构为:开始信号 + 器件地址 + W + ACK + 偏置地址 + R + ACK + 开始信号 + data + STOP信号。对于,driver来说,我初步想法是driver里驱动数据(开始信号 + 器件地址 + W + ACK + 偏置地址 + R + ACK + 开始信号),而data + STOP信号由monitor来完成。但感觉这样不是很正确。想请教一下高手,我应该在driver及monitor里各完成什么样的任务?请不吝赐教。
monitor其实直接采样就可以了
I2C 有Read 也有 Write,这些都应该在cmd里面传递给driver,所以driver不仅仅是写操作,读回的数据也应该由driver来处理。
然后就是uvm_driver里面有默认的req和rsp两个sequence_item,你可以利用rsp把读回的数据发给需要它的模块。
monitor可以实现一些protocol check以及coverage collection这类的工作。
这是一种实现思路,仅供你参考。
读写数据都在driver中完成。monitor只是做check和coverage收集。
最近也在做I2C SLAVE 验证,也需要搭建UVM平台,小编做的怎么样了?
好人呀,赞下
首先回答下你的问题,monitor和driver可以理解为技术工人和监工,driver负责正常的相应以及传输,monitor在端口上将driver和rtl交互信号进行采集看一下是否正确,当然数据比对什么的要放在sb里做。然后个人感觉最好不要用i2c作为练手的第一个case,会让你有挫败感的,原因只有一个没有那么简单,可以作为进阶使用,毕竟这玩意想侧完善了还是有一定难度的。