当前位置:网站首页>【DVCon2020】基于RAL的UVM Sequence自动生成方法
【DVCon2020】基于RAL的UVM Sequence自动生成方法
2022-04-22 23:23:00 【MangoPapa】
声明:
- 🥭 作者主页:【MangoPapa的CSDN主页】。
- ️ 本文首发于CSDN,转载或引用请注明出处【点击查看原文】。
- ️ 本专栏目的为 学术论文分享,本文为非盈利性质,仅用于 个人学习记录 及 知识分享。
- ️ 若本文所采用图片或相关引用侵犯了您的合法权益,请联系我进行删除。
- 欢迎大家指出文章错误,欢迎同行与我交流 ~
- 邮箱:[email protected]
论文概述
本文题目 Automated Generation of RAL-based UVM Sequences,作者是 Intel 的加拿大工程师。
本文提出了一种 基于RAL(寄存器抽象层)的UVM Sequence自动生成 方法,并探讨了 通过划分TB约束范围来加速仿真 的问题。
研究目的
通常而言,我们通过配置一组寄存器来控制 DUT 的硬件行为,以使 DUT 工作在某一 feature 下。对于不同的 feature,配置的寄存器以及配置寄存器的顺序或有不同。目前,比较常用的配置寄存器的方法是采用 UVM RAL Model 来配置 DUT 寄存器。这就意味着:我们要针对每一个feature制定一个programming sequence,并coding 成uvm sequence。
想必各位DV同学在验证过程中遇到过这些情况:feature太多了,feature又变了,programming sequence又变了,寄存器又变了 …… 手动写、手动改,手都麻了,直让人骂娘。
怎么办?自动化!用脚本实现自动化!
新方法
本文提出了一种 从设计文档自动生成基于RAL的UVM Sequence的方法 ,并探讨了 通过划分TB约束范围来加速仿真 的问题。图1是脚本生成UVM sequence的UVM 测试框架。

该方法的主体思路总结如下:
- 标准设计文档。写一份特定格式的设计spec,要求机器可读。该文档中需包含两个重要子spec,其一是寄存器spec,其二是各个feature的programming sequence spec。
- 解析脚本。用脚本自动解析该文档,自动生成uvm sequence和ral sequence。
- 每次更新设计文档,重新解析一次重新生成相关sequence即可。
以上方法中,有几个地方我重点解释一下:
- 设计文档中的programming sequence设计为有向无环图的状态机形式,便于脚本正确生成对应uvm sequence。
- 为了提高coverage,这需要对RAL Model的寄存器值进行大范围随机。在较大的设计中,但考虑到寄存器间或许存在依赖关系,仅靠ral自己随机或手动在ral内添加随机约束均不太现实,ral model全部寄存器随机约束很复杂,解约束耗时久。而且不同feature下ral model的随机方案也不同。在本文自动生成环境中,是怎么实现的呢?——针对用config_db,每一个feature的test的uvm sequence都对应一个特定的config_db,在test里set给ral sequence,且只随机我们在验证的block相关的寄存器,以此来减小解随即约束的时间(就是前边说的加速仿真),也能过防止随机出预期外的错误结果。
讨论
这个方法好,DV再也不怕设计文档变化啦!
方法是好方法,但实话说,本文所用的自动生成test sequence的概念并不是很新,成熟点的公司都有类似的脚本吧。
真正要把这方法用起来,需要DE同学在写设计spec的时候规范一点。尤其是programming sequence,每个寄存器怎么配、配多少,都要写得清清楚楚。这么多feature …… 这个方法解放了DV,苦了DE啊,估计DE要骂娘了。DE不写DV愿意写也行,谁都不写的话,这方法也用不起来。
完
️ 返回顶部 ️
版权声明
本文为[MangoPapa]所创,转载请带上原文链接,感谢
https://mangopapa.blog.csdn.net/article/details/122076277
边栏推荐
- Importance of safety product design
- Financial information security training -- 22 / 4 / 19 (Part 2)
- Introduction to padding in packet encryption (pkcs1padding / pkcs5padding / iso10126padding)
- 【LeetCode 剑指 Offer 34. 二叉树中和为某一值的路径(中等)】
- Scheme of fingerprint lock PCB circuit board for suitcase
- win10 安装mujoco,mujoco_py,gym
- 解决require is not defined的报错问题
- [swift] code triggers uibutton click event
- SystemVerilog 验证-测试平台编写指南学习笔记(3):连接设计和测试平台
- LeetCode 16. 最接近的三数之和(中等、数组)day13
猜你喜欢
![[原创][开源]C# Winform DPI自适应方案,SunnyUI三步搞定](/img/de/145c3b65d412b863cd845bb861003b.png)
[原创][开源]C# Winform DPI自适应方案,SunnyUI三步搞定

【毅力挑战】PCIe 每日一问一答(2022.04 进行中)
![[HCTF 2018]admin之unicode欺骗](/img/67/227f3ec20f73ab96b2f4bfb735bfd4.png)
[HCTF 2018]admin之unicode欺骗

【毅力挑战】PCIe 每日一问一答(2022.03 归档)

Excel VBA 多条件筛选及汇部统计

Install mujoco and mujoco on win10_ py,gym

(JS)利用String对象的属性和方法实现注册和登录功能,要求用户名长度在3-10范围内,密码在6-20位
![[BJDCTF2020]Easy MD5](/img/94/08b19ead7c48549340b29bc8f34033.png)
[BJDCTF2020]Easy MD5

visio文本框输入公式

Chenshi industrial machine vision | weld detection solution
随机推荐
Importance of safety product design
[swift] code triggers uibutton click event
如何快速转载CSDN中的博客
在Spartacus产品明细页面用outlet显示自定义数据
Basic knowledge of SQL database
Go timer time Ticker
华为机试题——HJ76 尼科彻斯定理
Detailed explanation of Gentoo system installation steps
WebRTC系列-WebRTC基础(七)NAT、stun和turn(1)
SystemVerilog 验证-测试平台编写指南学习笔记(2):过程语句和子程序
【LeetCode 剑指 Offer 36. 二叉搜索树与双向链表(中等)】
Scheme of fingerprint lock PCB circuit board for suitcase
读《Software Engineering at Google》(11)
【毅力挑战】PCIe 每日一问一答(2022.03 归档)
English | day13,14 x sentence true research daily sentence (parallel and nested structure)
Golang中json.Marshal避坑
[原创][开源]C# Winform DPI自适应方案,SunnyUI三步搞定
Pytorch convolution kernel filling and stride, multiple input and multiple output channels, pool layer
STM32 memory allocation analysis and variable storage location
WebRTC系列-WebRTC基础(七)NAT、stun和turn(2)