UVM lab02解析

lab2主要是写一个test,给test override一个sequence, 把trans里的一个field改成3。
解释要点:

  1. 实验要求
  2. 新写test,加constraint
  3. 跑仿真,makefile改一下,test.sv改成小写,命令为:make TEST=test_da_3_inst
  4. 看log,解释instance override的作用
  5. 改一下override方式,改成env.i_agent*.seqr.packet_sequence.*, 再跑仿真试试看。
  6. 改一下override方式,改成env.i_agent*.seqr.packet_sequence.req, 再跑仿真试试看。这里指定的就是全路径
  7. 第二个例子:set_type_override_by_type和set_inst_override的区别是,前者是全局的,后者的路径是指定了override的范围。

lab3:

实验要求:如何用uvm_do;写一个sequence

  1. 注释里的话,看一下,想一想rtl
  2. packet_sequence里,63行解释一下config_db。从资源池里拿一个叫“item_count”的值。如果拿不到,也不会报错。搜索解释一下item_count的意义 - trans个数。
  3. 多考虑写tb的时候,要做足够多的控制逻辑,可配性越高,test ben ch就越灵活.
  4. 看test collection,如何给config db set 值。
  5. 为什么在pre_randomize()? 只会在sequence启动之前,会做随机化,可以用这里的call back.
  6. 在test的build phase去set函数;在run_phase, sequence start(此处是default sequence)的地方去get,一定能get到。写test的时候要保证,set一定要在get之前。
  7. 最后da结果都是3,不但可以通过override,还可以用8=‘100,配置第三个口enable。da一直=3
  8. 看一下router_env.sv, 配置了reset agent. 目前还没有driver,产生的trans还没地方送。后面再用。这里不是重点。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值