MCDF-实验2

结构建立:注意一定要有接口,否则无法发送激励和监测激励

验证环境建立的三个步骤

1.结构

2.接口传递、组件连接

3.运行


    在类里面,声明接口的指针一定要用virtual关键词



没有延迟

上升沿后1ns驱动



  • fork   join相关知识。首先fork join内部语句时并行执行。

     

1.fork join:当fork join内部全部执行完之后,才会继续往下顺序执行;

2.fork join_none:fork join_none语句块执行的同时,父线程会继续执行,即全部并行执行;

3.fork join_any:执行到fork join_any内部语句时,当有任意一个语句执行完,那么后续的父类线程也会继续顺序执行。




直接调用task定义的test

  • 首先在外部声明了句柄t,没有创建对象,开辟内存空间,在function new(int n)中,this.num和this.id是初始化外部的变量。在new函数里,不需要开辟内存空间。

  • 而function chnl_trans get_trans();创建了一个chnl_trans类型的函数,可以看到该函数中t.data等,已经开辟了内存空间给t指向的对象。但是在该函数中并没有出现开辟函数内存空间的语句,因此会报错,t.data、t.id、t.num是引用chnl_trans类中的变量,需要实现开辟内存空间,因此需要在引用前先创建对象,如图修改。

  • 首先,trans[$]用于存放句柄。在function new(int n)中创建实例,三个chnl在初始化时只创建一个实例,而在get_trans()函数中只有一个实例的话,不论data产生了多少,最终句柄都指向一个对象,只有一个数字,如果repeat(100),那么会产生1个句柄和第一百个数据,因为数据不断被覆盖直至最后一个。在function chnl_trans get_trans()内创建实例,每次调用产生数据都会创建一个对象,并将句柄保存至trans[$]中,如果repeat(100),那么会产生100个句柄和100个不同的数据。


tb4与tb3的不同在于,tb4把以下图的例化,放与chnl_agent类中进行例化。

chnl_agent  agent[3];//例化三个agent,也就是例化了三个generator和initiator


在tb4模块里引入chnl_pkg包中的所有类。


  • 9
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值