路科验证(Rocker IC)专注于验证系统思想和前沿工程资讯,拥有一支活跃的技术原创团队,著有《芯片验证漫游指南》一书,致力为高校微电子相关专业学生与IC从业人员提供技术食粮。 您可以在手机移动端同步关注微信订阅号“路科验证”或是登录网页www.rockeric.com了解更多资讯。如果您需要联系我们,请发送邮件至 rocker.ic@vip.163.com 。

天哪!竟然还有UVM寄存器模型的隐藏剧情(续)

上一篇 / 下一篇  2018-12-01 20:36:45 / 个人分类:验证前沿资讯

因此,在顶层env中在对寄存器模型完成了build以后,我们还可以创建my_vreg_frontdoor_sequence,并且通过指定regmodel.bus.reg0.set_frontdoor(frontdoor)来指定在访问该sequence时,需采取专用的frontdoor sequence完成寄存器访问。

这种用户自定义的前门访问方式,作为传统的register model + adapter + bus sequencer方式的补充,使得面对更为复杂的寄存器访问时,我们依然可以灵活应对。


自定义后门访问序列

对于常用的后门访问,套路也已经为路粉们熟知了吧(不懂就去看红宝书喽),不过资深一点的verifier都知道,这种方法也主要是应对访问寄存器的,因为寄存器往往由reg类型(Verilog)来实现,容易做到HDL路径的映射。然而对于存储可不太一样,这是由于我们无法针对存储中的每一个地址都做到映射(会累死的吧)。不过考虑到大部分的存储模型都是一些reg数组,我们只需要做一些从访问地址到DUT存储模型数组索引的映射,再配合自定义后门访问序列就可以解决这个头疼的问题。


从下面的代码可以看到,通过自定义后门访问序列,结合UVM DPI函数uvm_hdl_deposit/uvm_hdl_read,实现了内存模型的批量读写(for loop提供)。

除了上面路桑谈到的这两个与大家接下来可能相关的寄存器模型使用方法以外,该论文还有一些其它的有趣应用,例如uvm_reg_callback用来对一些特殊的寄存器访问做读写前后的处理。如果这篇论文正说中了你现在面临的问题,你可以到路科验证的官网资源页中去下载,或者点击左下角阅读原文。

http://rockeric.com/resource/paper/



TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

路科验证

路科验证

路科验证(Rocker IC)专注于验证系统思想和前沿工程资讯,拥有一支活跃的技术原创团队,为高校微电子相关专业学生与IC从业人员提供技术食粮。 您可以在手机移动端同步关注微信订阅号“路科验证”。如果您需要联系我们,请发送邮件至 rocker.ic@vip.163.com 。

日历

« 2018-12-19  
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

数据统计

  • 访问量: 201584
  • 日志数: 268
  • 建立时间: 2016-06-25
  • 更新时间: 2018-12-09

RSS订阅

Open Toolbar
博评网