IC验证学习笔记(MCDF)实验3-generator生成和发送数据、monitor和checker

lab2中,agent控制着发送数据的数量,而数据的内容由generator控制;到了lab3,数据的数量和内容都由generator控制

lab2里initiator没有自己的run任务,它的调用发生在agent里,会被重复调用ntrans次。而在lab3里initiator有自己的run任务,并且用上了forever,就像一个吃的停不下来的胖子,发现generator产生一个数据,就会往接口发送一个数据,永远运行。

         将Lab3中的chnl_initiator和chnl_generator与Lab2中的作对比,可以看出发送数据的逻辑发生了很大的改变。Lab2是generator通过get_trans()获得一个句柄,然后立马返回给initiator的chnl_write(),而在Lab3中,generator产生了一个对象,并把句柄写入到req_mb这个信箱中,然后initiator会拿到这个句柄,并把它消化掉,消化掉以后会重新克隆一个一模一样的对象,发送之前会把变量rsp置为1,表示已经响应,然后把这个已响应的对象放到rsp_mb信箱中,generator就可以通过变量rsp来判断initiator是否已经消化掉了这个数据。

在这里插入图片描述

        chnl_agent类,将generator拿到了test,这样可以通过do_config()事先对generator进行随机化,generator调用自己的run(),通过调用send_trans()来随机化chnl_trans,进而控制产生多少个数据,产生什么样的数据,然后通过信箱将数据发送给initiator,initiator拿到随机化的数据,通过接口进行激励。chnl_agent类里面只剩下了initiator

 在这里插入图片描述

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值