0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

参数化RTL的验证思路

sanyue7758 来源:验证芯发现 2023-05-05 09:16 次阅读

参数化设计

参数化的设计代码和验证组件具有一定的灵活性:

设计模块常使用参数化,比如FIFO深度,总线宽度等

验证组件支持不同的通道数等

参数化的"水平"复用:

同一个RTL代码可以在不同的项目中交付使用

相同的验证代码适配不同的项目

参数化的代码需要在灵活性和复杂性之间做出平衡,而且高度参数化代码的验证是一个非常具有挑战性的工作。

参数化的"ripple effect"

在验证平台的设计中,参数化class常用来提升验证组件的复用性,如果使用不当,会存在 "ripple effect":使用参数化设计class时,在class的定义和例化时,均需要进行参数传递。当参数个数增多时,会使得代码变得臃肿,代码的简洁性和可读性变差。

4bb20cde-ead3-11ed-90ce-dac502259ad0.png

因此原文中,作者不推荐在验证环境中使用参数化class的设计。而是采取uvm harness,参数信息提取和pairwise测试等手段,提升参数化RTL验证的效率:

避免参数的ripple efect问题

保持tb和rtl参数同步

不同的RTL参数,tb自动化适配

更有效利用验证时间

TB和ENV连接:UVM harness

UVM harness的介绍,可参见:UVM harness:可复用的interface连接方法

这里给出使用UVM harness后的示意图:

4bceab96-ead3-11ed-90ce-dac502259ad0.png

此处的方法和UVM harness的思路相同,实现上略微有些差异,UVM harness中使用的是bind interface to modules,此处使用的是bind module to modules。

RTL参数信息提取和传递

文中也提到自动化提取参数信息的几个出发点:

避免验证平台中大量使用ifdef的宏定义

简化不同参数验证下的功能覆盖率合并

减少DV工程师的工作量,TB的可读性

主要使用两个手段:

在UVM harness中收集RTL参数信息

使用UVM config db向验证环境中传递参数信息

4bf2281e-ead3-11ed-90ce-dac502259ad0.png

核心思路是在UVM harness中使用rtl_info_struct结构体,存储RTL的参数取值,并使用uvm_config_db set方法,将rtl_info_struct传递至验证环境中。

验证环境使用uvm config db get到参数信息后,可以在SVA、RAL以及功能覆盖率的收集中使用。细节编码不在此赘述,可以参见文末的原文链接。

在此给出主要的编码截图:

4c25e82a-ead3-11ed-90ce-dac502259ad0.png

4c4268d8-ead3-11ed-90ce-dac502259ad0.png

4c6ceda6-ead3-11ed-90ce-dac502259ad0.png

参数随机优化

对于参数化的RTL, 当参数个数增多时,很难在有限时间内完全遍历参数的组合场景。此处涉及两个问题:

需要随机出所有参数组合的RTL规格

针对某一个具体的随机规格,需要完成验证完备性的确认

因此文中使用pairwise的方法来代替全组合场景的测试。pairwise保证覆盖任一对参数之间的组合,而不是参数间的全组合。即:for every pair of variables, test every combination of that pair。

pairwise的思路在软件测试中经常被使用,它基于两个假设:

众多参数中的每个参数维度都是正交的

73%的缺陷是由单因子或2因子相互作用产生的

4c92f5d2-ead3-11ed-90ce-dac502259ad0.png





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RTL
    RTL
    +关注

    关注

    1

    文章

    385

    浏览量

    59644
  • UVM
    UVM
    +关注

    关注

    0

    文章

    181

    浏览量

    19119
  • SVA
    SVA
    +关注

    关注

    1

    文章

    19

    浏览量

    10115
  • FIFO存储
    +关注

    关注

    0

    文章

    103

    浏览量

    5953

原文标题:参数化RTL的验证思路:Parameterize Like a Pro

文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    瞬曜EDA发布RTL高速仿真器ShunSim,大幅提升超大规模集成电路验证效率

    (上海)有限公司(简称“瞬曜EDA”)发布RTL高速仿真器——ShunSim。 RTL验证是整个验证流程中耗时最多,人力成本投入最大的环节。 ShunSim聚焦
    发表于 06-24 09:37 1915次阅读
    瞬曜EDA发布<b class='flag-5'>RTL</b>高速仿真器ShunSim,大幅提升超大规模集成电路<b class='flag-5'>验证</b>效率

    关于功能验证、时序验证、形式验证、时序建模的论文

    性能的同时,缩短设计周期,降低开发成本,采用了半定制/全定制混合设计的方法,对RTL级代码进行优化改进,对处理器内核的执行单元采用全定制设计实现。混合设计的复杂性,给验证工作带来了巨大的挑战。本文针对
    发表于 12-07 17:40

    【连载视频教程(十七)】小梅哥FPGA设计思想与验证方法视频教程之使用PLL进行设计+Verilog参数设计介绍

    的多路频率不同的时钟驱动同一个LED闪烁模块,通过比较LED闪烁的频率来验证PLL对时钟信号的正确管理。另外,视频还介绍了Verilog语法中非常有用的一种技巧——参数设计。参数
    发表于 11-11 09:15

    Realtek RTL8723BU和RTL8723DU方案参数对比-已解决

    的蓝牙部分存在一些显著差异。因此,带大家比较一下这两款芯片,其参数如下:类别:Realtek RTL8723BUWiFi标准:iEEE802.11b/g/n蓝牙标准:蓝牙4.0双模接口:USB2.0
    发表于 01-14 14:00

    时序逻辑等效性的RTL设计和验证流程介绍

    关于时序逻辑等效性的RTL设计和验证流程介绍。
    发表于 04-28 06:13

    在SpinalHDL的设计中集成现有RTL设计(IP)的渠道——BlackBox

    接口及parameter参数(这也是我们在RTL里例IP时常用的)。我们来看SpinalHDL-doc给出的example:整个代码里做了三件事:参数声明、端口声明,时钟域映射。
    发表于 06-22 14:59

    怎么解决Conformal做RTL和netlist的形式验证时综合优化的电路也会报不相等?

    用Conformal做RTL和netlist的形式验证,对比结果有很多报不等的是DC综合被优化掉的,conformal没有识别出来这种优化,请问需要设置什么可以解决这个问题?
    发表于 08-09 17:31

    RTL,RTL是什么意思

    RTL,RTL是什么意思 电阻晶体管逻辑电路 RTL电路-电
    发表于 03-08 11:19 1.4w次阅读

    设计复用的RTL指导原则

    设计可复用的基本要求是RTL 代码可移植。通常的软件工程指导原则在RTL 编码时也适用。类似软件开发,基本的编码指导原则要求RTL 代码简单、结构和规则
    发表于 12-24 00:46 32次下载

    参数UVM IP验证环境(上)

    参数的IP是可配置的,这意味着在不同的SOC中IP设计可以有不同的设计参数,设计参数可以对应到协议、端口号、端口名称、以及内部逻辑。大量的IP设计
    发表于 09-15 14:37 6次下载
    <b class='flag-5'>参数</b><b class='flag-5'>化</b>UVM IP<b class='flag-5'>验证</b>环境(上)

    RTL8139C RTL8139C-LF RTL8139CL RTL8139CL-LF

    RTL8139C RTL8139C-LF RTL8139CL RTL8139CL-LF
    发表于 10-25 14:48 23次下载
    <b class='flag-5'>RTL</b>8139C <b class='flag-5'>RTL</b>8139C-LF <b class='flag-5'>RTL</b>8139CL <b class='flag-5'>RTL</b>8139CL-LF

    RTL8382L+RTL8218B+RTL8231L应用参考原理图

    RTL8382L+RTL8218B+RTL8231L应用参考原理图
    发表于 03-09 10:30 373次下载

    时序逻辑等效性的RTL设计和验证流程介绍

    寄存器传输级(RTL验证在数字硬件设计中仍是瓶颈。行业调研显示,功能验证占整个设计工作的70%.但即使把重点放在验证上面,仍有超过60%的设计出带需要返工。其主要原因是在功能
    的头像 发表于 11-23 09:30 8332次阅读
    时序逻辑等效性的<b class='flag-5'>RTL</b>设计和<b class='flag-5'>验证</b>流程介绍

    验证组件配置参数

    一些典型 的 验证组件 配 置参数示例:  一个agent可以被配置为 active 或者 passive 模式。在active模式下agent驱动DUT,在passive模式下agent被动地检查
    的头像 发表于 06-14 10:20 554次阅读
    <b class='flag-5'>验证</b>组件配置<b class='flag-5'>参数</b>

    面向混合集成电路的数字研制目标和思路

    混合集成电路产品数字研制总体思路是:坚持“模型”是核心、“模型贯穿”是主线、“模型构建与仿真验证”是主要抓手的总体思路
    的头像 发表于 04-17 11:26 672次阅读
    面向混合集成电路的数字<b class='flag-5'>化</b>研制目标和<b class='flag-5'>思路</b>