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

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

3天内不再提示

一种用于随机约束仿真的SAT增强的字级求解器

芯华章科技 来源:未知 2023-06-07 17:35 次阅读

首届EDA国际研讨会(International Symposium of EDA,ISEDA)已在南京落下帷幕。作为国内领先的系统级验证EDA解决方案提供商,芯华章受邀出席并深度参与活动各环节,不仅受邀参展、发表主题演讲、参与圆桌论坛,并贡献专业文章入围ISEDA2023论文评选,全方位展示了公司在EDA验证领域的深厚积累和专业洞察。

本文节选自ISEDA2023入选论文《A SAT Enhanced Word-Level Solver for Constrained Random Simulation》。

摘 要

随着硬件设计复杂度的激增,验证已被广泛认为是制约整个芯片设计流程的瓶颈。基于仿真的验证通常通过生成一系列满足特定布尔/位向量约束的随机激励验证设计行为。在该验证方法学中,验证效率很大程度上取决于产生合法激励的约束求解器的性能。 本文我们首先讨论了字级求解器在求解包含特定操作符(如IF-THEN-ELSE、IMPLIES和布尔OR)的约束时遇到的挑战。为了克服这一挑战,我们引入布尔可满足性(SAT)求解器剪枝原始约束并压缩字级求解器的搜索空间。试验结果表明,在包含这些特定操作符的测试用例中,本文提出的混合求解器比原始的字级求解器平均性能提升约50%。

简 介

近几十年来,硬件设计复杂性的快速增长对功能验证提出了巨大挑战。随机约束仿真是当今行业中广泛采用的功能验证方法之一,其达到覆盖率目标所需时间的长短,很大程度上依赖于产生随机激励的约束求解器的性能与解的分布的好坏。 目前用于产生随机激励的约束求解器主要有三种:/ 01 /基于二元决策图(Binary Decision Diagram, BDD)的求解器。 该求解器通过创建BDD获取约束的所有解,因而可以轻易产生均匀的分布;然而,由于众所周知的内存爆炸问题,BDD并不适用于过于复杂的约束。 / 02 /基于值域推断的字级求解器。 该求解器通过推断压缩每个变量的可取值域构成的搜索空间,并反复从搜索空间中随机取值获取满足约束的一组解,具有易于实现、天然随机性等特性;然而,逻辑推理能力的缺失导致其在求解包含特定运算符(如IF-THEN-ELSE,IMPLIES和布尔OR)的约束上效率低下。 / 03 /基于可满足性模理论(Satisfiability Module Theory, SMT)的求解器。 该求解器扩展自比特级可满足性(Satisfiability, SAT)求解器,继承了SAT在逻辑推理上的优势,同时,得益于其广泛的应用,SMT求解器在工业界与学术界获得了极大的关注,成果颇丰;然而,SMT求解器被设计为求得一组解,因此随机性较差,且求解包含位向量的约束时需将位向量打散为单个比特,性能受限。 以上三种求解器各有优劣,综合利用第二、第三种求解器的优势,可在不牺牲易于实现与天然随机性的情况下进一步提升性能,是一条极具前景的优化随机约束仿真的路径。

一些挑战

如上所述,基于值域推断的字级求解器的性能很大程度上取决于推断结果的好坏,当推断器无法有效压缩变量的搜索空间时,该字级求解器变得无效。实践中,我们发现基于值域推断的字级求解器在求解包含特定运算符(如IF-THEN-ELSE,IMPLIES和布尔OR)时遇到挑战。例如图1所示的约束,由于推断器并不知道ITE的then分支还是else分支需要被满足,因此推断器无法压缩变量a和b的取值空间。此时,通过给变量a、b随机赋值的方式,很难从庞大的搜索空间中找出仅有的两组解。 这种挑战也可被视作是字级求解器缺乏逻辑推理能力的结果。因此,引入SAT求解器,增强字级求解器的逻辑推理能力,便自然成为一种克服该挑战的方法。 cc3d7170-0515-11ee-90ce-dac502259ad0.png 图1. 例1  

SAT增强的字级求解器

cc5157d0-0515-11ee-90ce-dac502259ad0.png 图2. 例1的抽象语法树  图2是例1的抽象语法树表示。从图2中,我们惊喜地发现,位于关系操作符之上的全是布尔操作符,位于关系操作符之下的则全是位向量操作符。因此,约束问题中存在一个清晰的分界线,将原始问题分割成布尔和位向量两部分。SAT求解器有极强的逻辑推理能力,特别适合求解布尔约束;基于值域推断的字级求解器能快速求解位向量约束,尤其是包含数学运算符的位向量约束。约束问题的这一独特结构,使得充分利用不同求解器的优势求解约束的不同部分成为可能。具体的求解步骤如图3所示: cc841030-0515-11ee-90ce-dac502259ad0.png 图3 求解流程  

01

将关系操作符所代表的位向量表达式替换成不同的布尔变量,构建原问题的命题骨架(例1的命题骨架如图4);

02

利用SAT求解器产生一系列满足命题骨架的布尔变量的赋值;

03

随机选取一组布尔变量的赋值,并用字级求解器求解其所代表的位向量约束;

04

若第三步有解,则返回该解,若无解则返回第三步,选择另一组赋值。

cc946d0e-0515-11ee-90ce-dac502259ad0.png 图4 例1的命题骨架  

试验结果

为验证上述求解策略是否有效,我们用纯字级求解器(W Solver)和SAT增强的字级求解器(W-SAT Solver)求解了14个测试用例,其用时如下表所示。ccb0028a-0515-11ee-90ce-dac502259ad0.png对于布尔操作符占主导的test1至test7,由于引入了SAT,W-SAT求解器的性能得到极大提升,最大为79%,平均约50%;对于位向量操作符占主导的test8至test14,由于增加了额外操作,W-SAT的性能略有下降,平均下降约10%,几乎可忽略不计。 试验结果表明,SAT增强的字级求解器继承了字级求解器在求解位向量操作符占主导时在约束上的优势,同时,求解布尔操作符占主导的约束时,性能也获得可观提升,证明了其求解各种约束的有效性。

结论与展望

在保留易于实现与天然随机性等特性的前提下,相较于纯字级求解器,SAT增强的字级求解器在求解布尔操作符占主导的约束时,性能有显著提升,求解位向量占主导的约束的性能几无差别,因此能有效处理多种不同约束。 实践中,我们也发现当约束过于复杂时,SAT求解器产生的大部分布尔变量赋值可能并不满足原始约束,如何更高效地剔除这些无效的布尔变量赋值,将会是我们下一步研究的重点。 论文作者:袁宸/刘军/余胜蛟/齐正华


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

    关注

    0

    文章

    164

    浏览量

    11370

原文标题:一种用于随机约束仿真的SAT增强的字级求解器

文章出处:【微信号:X-EPIC,微信公众号:芯华章科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于助听器开发的一种高效的语音增强神经网络

    受限的微控制单元(microcontroller units,MCU)上,内存和计算能力有限。在这项工作中,我们使用模型压缩技术来弥补这差距。我们在HW上对RNN施加约束,并描述了一种
    发表于 06-07 11:29

    如何设置LTspice来让仿真的速度快些?

    我在用LTspice做电源仿真的时候,我发现仿真的速度很慢,该如何设置LTspice来让仿真的速度快些,thanks
    发表于 01-05 07:03

    SV约束随机化总结

    constraint 约束随机化类中的变量 在main_phase 之前就已经提前产生一个变量的随机值。 用法:一般在类中定义一个rand 类型的变量, 然后根据需求写约束
    的头像 发表于 12-14 14:30 378次阅读
    SV<b class='flag-5'>约束</b><b class='flag-5'>随机</b>化总结

    芯片前仿真和后仿真的区别

    在芯片设计中,前仿真和后仿真都是非常重要的环节,但它们在功能和目的上存在明显的区别。本文将详细介绍前仿真和后仿真的区别,以及它们在芯片设计中的应用和重要性。 一、前
    的头像 发表于 12-13 15:06 3849次阅读

    介绍一种通过SystemC做RTL/C/C++联合仿真的方法

    当FPGA开发者需要做RTL和C/C++联合仿真的时候,一些常用的方法包括使用MicroBlaze软核,或者使用QEMU仿真ZYNQ的PS部分。
    的头像 发表于 12-13 10:11 532次阅读
    介绍<b class='flag-5'>一种</b>通过SystemC做RTL/C/C++联合<b class='flag-5'>仿真的</b>方法

    Saber中如何更好地提高仿真的收敛性(一)

    仿真过程中,由于仿真模型的不连续性,或者模型没有适当地表征/参数化,或者当求解器无法求解控制模型行为的方程时,可能就会出现仿真的收敛问题。
    的头像 发表于 12-05 14:43 902次阅读
    Saber中如何更好地提高<b class='flag-5'>仿真的</b>收敛性(一)

    盘点一下CST电磁仿真软件的求解

    今天我们一起来盘点一下CST电磁仿真软件那些牛叉的求解器。快来数一下,你用了里面的几种吧!
    的头像 发表于 11-20 10:18 4186次阅读
    盘点一下CST电磁<b class='flag-5'>仿真</b>软件的<b class='flag-5'>求解</b>器

    stm32那个中断优先分组?个工程里面是只能有一种吗?

    stm32那个中断优先分组,个工程里面是只能有一种吗,还是可以几种都存在?
    发表于 11-08 08:24

    EMC仿真的方向 EMC仿真的难处在于哪里?

    目前仿真的方向基本上有两个,一个是以试验测试为导向,对产品进行EMC测试项目的仿真
    的头像 发表于 11-04 17:28 1643次阅读
    EMC<b class='flag-5'>仿真的</b>方向 EMC<b class='flag-5'>仿真的</b>难处在于哪里?

    SPICE中的PDN阻抗仿真与分析

    高速信号行为、RF信号传播和PDN仿真是PCB中最难仿真的部分。在这些电磁现象中,高速信号传播和RF传播需要电磁场求解器工具来提取有用的结果。在电路仿真中需要考虑的寄生效应和设计特定效
    的头像 发表于 10-11 07:45 1642次阅读
    SPICE中的PDN阻抗<b class='flag-5'>仿真</b>与分析

    SystemVerilog的随机约束方法

    上一篇文章《暗藏玄机的SV随机化》介绍了SystemVerilog的各种随机化方法,本文将在其基础上引入SystemVerilog的随机约束方法(constraints)。通过使用
    的头像 发表于 09-24 12:15 682次阅读

    能连arduino仿真的电化学软件

    电子发烧友网站提供《能连arduino仿真的电化学软件.zip》资料免费下载
    发表于 09-18 09:25 5次下载
    能连arduino<b class='flag-5'>仿真的</b>电化学软件

    时序仿真与功能仿真的区别有哪些?

    时序仿真与功能仿真的区别有哪些? 时序仿真和功能仿真都是电子设计自动化(EDA)过程中的常见任务,它们都是为了验证或验证电路设计的正确性。然而,它们之间也有明显的区别。 时序
    的头像 发表于 09-17 14:15 4349次阅读

    时序仿真与功能仿真的区别在于

    时序仿真与功能仿真的区别在于 时序仿真与功能仿真是电子设计自动化(EDA)中最常见的两种仿真方式。虽然二者都是
    的头像 发表于 09-08 10:39 4192次阅读

    阐述ADS交流仿真的基本方法和流程

    交流仿真的概念:交流放着是射频电路中最重要的仿真方式之一,主要用于分析电路的小信号特性和噪声特性。
    的头像 发表于 06-29 11:17 1.2w次阅读
    阐述ADS交流<b class='flag-5'>仿真的</b>基本方法和流程