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

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

3天内不再提示

VCS ICO的主要功能有哪些呢?

rfdqdzdg 来源:IC Verification Club 2023-09-19 14:59 次阅读

ico是vcs提供的用于优化覆盖率的feature;一般用户通过distsolver bofore等约束了变量的随机概率,而ico会在用户约束的基础上,做一些自动“修正”,以此来优化随机激励,提高随机多样性,加速覆盖率收敛,缩短 turn-around timeTAT。主要功能包含如下几部分:

1.Prognosis: 用于查看当前平台是否适用ico,对于都是直接用例测试,没有随机策略的平台,ico并不适用;

2.Auto Bias:利用设定策略,ico会改变原有constraint solver的行为,施加一定bias修正随机值;

3.RCA: root cause trace, 用于诊断变量未随机到的bins,是否存在过约束等;

4.Delta-debug: 提供replay复现功能,对比两次结果间的差异;

5.AutoPurge: 当前回归得到的ico database可以用于下一次回归,多次迭代;

ico最主要的功能就是Auto Bias,宣称使用了AI机器学习ML,增强学习EL等手段,在回归过程中,利用共享case之间的ico database,提高随机多样性;通过一个简单例子演示下:

covergroupcg_datawithfunctionsample(inputlogicvalid,logic[7:0]data);
cpt_value:coverpointdataiff(valid){
binszero={0};
binsothers[]={[1:31]};
illegal_binsinvalid={[32:255]};
}
endgroup

classtrextendsuvm_transaction;
randlogic[7:0]data;
constraintc_tr{datainside{[0:31]};
datadist{0:=1,[1:31]:=100};
}
endclass

如上,对data的约束中,data=0这一条件的概率很低;

PRJ:=$(shellecho$(CURDIR)|sed-r's|/ico_test/.*|/ico_test|')
exportPRJ

all:comprun
all_ico:comprun_ico

SEED:=${SEED}

regress_ico:clean
mkdir-p${PRJ}/comp_src;
cd${PRJ}/comp_src;
cp${PRJ}/Makefile${PRJ}/comp_src;
makecomp;
foriin12;do
mkdir-p${PRJ}/test_$${i};
cp${PRJ}/Makefile${PRJ}/test_$${i};
cd${PRJ}/test_$${i};
ln-s${PRJ}/comp_src/simv.daidirsimv.daidir;
ln-s${PRJ}/comp_src/csrccsrc;
ln-s${PRJ}/comp_src/simvsimv;
makerun_icoSEED=$${i};
done
makecov_merge;
makecrg_report;

regress:clean
mkdir-p${PRJ}/comp_src;
cd${PRJ}/comp_src;
cp${PRJ}/Makefile${PRJ}/comp_src;
makecomp;
foriin12;do
mkdir-p${PRJ}/test_$${i};
cp${PRJ}/Makefile${PRJ}/test_$${i};
cd${PRJ}/test_$${i};
ln-s${PRJ}/comp_src/simv.daidirsimv.daidir;
ln-s${PRJ}/comp_src/csrccsrc;
ln-s${PRJ}/comp_src/simvsimv;
makerunSEED=$${i};
done
makecov_merge;

comp:
vcs-full64
-kdb-lca
-debug_access+all
-ntb_optsuvm
-sverilog
-timescale=1ns/1ns
${PRJ}/dut.sv
${PRJ}/top_tb.sv
+incdir+${PRJ}
-lcomp.log

run_ico:
./simv-lsim.log+ntb_random_seed=${SEED}
+ntb_solver_bias_mode_auto_config=2
+ntb_solver_bias_shared_record=${PRJ}/shared_record
+ntb_solver_bias_wdir=ico_work
+ntb_solver_bias_test_type=uvm
+ntb_solver_bias_diag=3


crg_report:
crg-dir${PRJ}/shared_record-reportrpt-auto-formatboth-mergemerged_db-zip1-illegal_group-illegal_attr

run:
./simv-lsim.log+ntb_random_seed=${SEED}

verdi:
verdi-ssftop_tb.fsdb&

cov_open:
verdi-cov-covdirsimv_merge.vdb&

cov_merge:
urg-dir${PRJ}/test_1/simv.vdb-dir${PRJ}/test_2/simv.vdb-dbname${PRJ}/simv_merge.vdb

clean:
-rm-rfshared_record/simv*test_*WORK/*logurgReport/vdCovLog/rpt-auto/merged_db/comp_src/novas.*

make regress跑了两个case,第一个caseseed=1,第二个caseseed=2; 通过verdi查看覆盖率报告:跑了两次的回归merge结果:87.5%

331651d4-569f-11ee-939d-92fbcf53809c.png

make regress_ico是使能icofeature,结果:100%

33275df8-569f-11ee-939d-92fbcf53809c.png

+ntb_solver_bias_diag使能debug信息,默认debug log放在+ntb_solver_bias_wdir指定的ico database下:随机32次,ico影响constrain solver,bias了29次的随机结果;所以对于data=0这样的小概率事件,也随机到了;

333f0250-569f-11ee-939d-92fbcf53809c.png

因为ico会影响constrain solver的随机结果,所以复现时,不仅要保证seed一样,还需要额外指定ico database,这样才能正确复现随机结果。生成当前回归所有用例的merge report: html report会罗列所有随机变量:DIVERSITY通过shannon entropy香农熵衡量变量的“多样性”;

335e27fc-569f-11ee-939d-92fbcf53809c.png在这里插入图片描述

每个变量,ico会自动的划分bins,显示随机详细结果;

ico支持同一个case内多次randomize之间相互影响,也支持一次回归不同case之间相互影响,也可以将本次回归的database作用于下一次回归;

对于ico加速覆盖率收敛的实际效果,博主使用一个block tb亲测效果不太显著;从他人的presentation上看,大概有10%-15%的提升;但是ico对于随机多样性确实是有一定效果的,+ntb_solver_bias_mode_auto可以指定ico对随机的bias力度。

336bdec4-569f-11ee-939d-92fbcf53809c.png
337c14f6-569f-11ee-939d-92fbcf53809c.png

如果ico可以通过AI,EL等对功能覆盖率进行反推,缩减重复随机值,那将会大大提高覆盖率收敛,期待后续EDA进一步的"进化”吧。






审核编辑:刘清

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

    关注

    0

    文章

    78

    浏览量

    9590
  • RCA
    RCA
    +关注

    关注

    0

    文章

    28

    浏览量

    8776
  • 机器学习
    +关注

    关注

    66

    文章

    8377

    浏览量

    132406

原文标题:VCS ICO - Intelligent Coverage Optimization

文章出处:【微信号:数字芯片设计工程师,微信公众号:数字芯片设计工程师】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问TIMx有哪些主要功能

    TIMx简介TIMx主要功能
    发表于 11-09 08:56

    MusrLicManage的主要功能

    MusrLicManage简介MusrLicManage主要功能
    发表于 12-16 07:22

    ECC是什么?有什么主要功能

    ECC是什么?有什么主要功能
    发表于 06-21 07:00

    电子学综合实训台QY-DQJ05装置主要功能有哪些?

    电子学综合实训台QY-DQJ05装置主要由哪几部分组成?电子学综合实训台QY-DQJ05装置主要功能有哪些?
    发表于 07-11 06:10

    软启动器的主要功能有哪些

    器的主要功能有哪些?1.过载保护功能:软起动器引进了电流控制环,因而随时跟踪检测电机电流的变化状况。通过增加过载电流的设定和反时限控制模式,实现了过载保护功能,使电机过载时,关断晶闸
    发表于 09-13 06:19

    操作系统内核的主要功能有哪些

    什么是操作系统?操作系统内核的主要功能有哪些?Linux是什么?什么是软件移植?
    发表于 10-19 07:46

    网卡实现的主要功能是什么

    从介质访问控制方法的角度局域网可分为哪几类?以太网交换机是根据什么去转发数据帧的?网卡实现的主要功能是什么?
    发表于 10-20 06:24

    DC的主要功能或者主要作用是什么

    什么是DC?DC能接受多少种输入格式?DC的主要功能或者主要作用是什么?如何配置DC?
    发表于 10-20 07:02

    STM32定时器的主要功能有哪些差异

    Stm32定时器一共分为几种?STM32定时器的主要功能有哪些差异
    发表于 11-17 06:56

    Linux内核主要功能包括哪些

    Linux内核是什么?Linux内核主要功能包括哪些
    发表于 02-28 08:44

    基于Android 9.0最新系统的SDK主要功能有哪些

    基于Android 9.0最新系统的SDK主要功能有哪些
    发表于 03-04 07:40

    数码录音笔主要功能有哪些?

    数码录音笔主要功能有哪些?    
    发表于 12-22 11:27 1126次阅读

    直线导轨的主要功能

    直线导轨的主要功能
    的头像 发表于 07-26 17:42 1065次阅读
    直线导轨的<b class='flag-5'>主要功能</b>

    电池bms主要功能有哪些?bms主要有哪六个功能

    电池bms主要功能有哪些?bms主要有哪六个功能 电池管理系统(BMS)是为了保护电池并确保其操作安全而使用的一种电子装置。BMS不仅可以监控电池的性能和状态,而且可以提供有关如何改进电池性能和维护
    的头像 发表于 10-16 15:42 8228次阅读

    bms主要功能有哪些

    、储能系统等新能源领域的关键部件,其主要功能是对电池组进行实时监控、保护和管理,以保证电池组的安全、稳定和高效运行。本文将对BMS的主要功能进行详细介绍。 数据采集:BMS通过传感器对电池组的电压、电流、温度等关键参数进行实时采集,以便对电池组的工作状态进行全面了解。这些
    的头像 发表于 01-05 18:09 7882次阅读
    bms<b class='flag-5'>主要功能有</b>哪些