• 电力电子转战数字IC20220820day65——uvm实战1B


    实验目标

    加入文件到仿真后编译并运行。

    储存数据 log -r /*

    运行仿真 run -all

    验证环境结构 

     

     和实战1A中的图是对应的。

     tb下只有一个接口,接口包含了时钟块和覆盖组。

    仿真结果

    写操作。默认的idle_cycle是1,这是在item也就是apb_transfer时进行的soft约束了

    1. class apb_transfer extends uvm_sequence_item;
    2. // USER: Add transaction fields
    3. rand bit [31:0] addr;
    4. rand bit [31:0] data;
    5. rand apb_trans_kind trans_kind;
    6. rand int idle_cycles;
    7. constraint cstr{
    8. soft idle_cycles == 1;
    9. };

     读操作。有很多数据是0,因为随机读取的地址之前没有被写入数据,所以读出来是0

     先写后读

     功能覆盖率

    view——coverage——covergroup

    点开后可以看到,从覆盖组到覆盖点到bin的具体的覆盖率数据

     如何运行两个test并且收集合并的覆盖率?

    具体见SV实验5。

    这里用命令+TESTNAME 也不行,改了tb中的runtest也不行,只能改变tb后重新开始仿真,应该是+TESTNAME命令有问题,等找一下之前做的实验,记得是有成功过的。

    单独的apb_burst_transaction_test覆盖率如下:

     使用到的命令如下:

    vsim -i -classdebug -solvefaildebug -coverage -coverstore C:/coverage -testname apb_burst_transaction_test -sv_seed random +TESTNAME=apb_burst_transaction_test -l apb_burst_transaction_test.log work.apb_tb

    quit -sim

    vsim -i -classdebug -solvefaildebug -coverage -coverstore C:/coverage -testname apb_single_transaction_test -sv_seed random +TESTNAME=apb_single_transaction_test -l apb_single_transaction_test.log work.apb_tb

    qiut -sim

     vcover merge -out merged-coverage.ucdb C:/coverage

    各个命令的作用如下:

    -classdebug 提供更多的SV类调试功能

    -solvefaildebug 在SV随机化失败后有更多信息提供出来

    -sv_seed 0 给出固定的种子0,random就任意给

    +TESTNAME=apb_single_transaction_test 指定仿真进行的test

    -l apb_single_transaction_test.log 将仿真的记录保存在这个文件名中

    vcover merge -out merged-coverage.ucdb C:/coverage 将合并后的覆盖率报告生成在merged-coverage.ucdb文件中(这个文件的位置是工程路径!) C表示用来合并的覆盖率路径

    储存数据 log -r /*

    运行仿真直到结束 run -all

    最终的覆盖率merged-coverage.ucdb中

  • 相关阅读:
    JAVA 校验图片视频属性
    java.util.HashMap cannot be cast to com.XXX.XXX
    浏览器Browser截屏截长图使用记录220813
    Zookeeper选举Leader源码剖析(上)
    Redis过期策略2020-架构师(六十三)
    c语言练习85:通讯录的实现(基于顺序表实现)
    加密 K8s Secrets 的几种方案
    go-zero 微服务实战系列(二、服务拆分)
    智能告警:如何通过监控易实现精准故障预警与快速定位
    Go 初识微信订阅号(测试号)
  • 原文地址:https://blog.csdn.net/weixin_39668316/article/details/126431367