System Verilog覆盖率

覆盖率是衡量验证完备性的重要指标
通过建立能够自动统计功能覆盖率的模型,方便的得到当前功能的覆盖率,根据此调整验证策略,使仿真尽快收敛。
你认识到的(完备性)不一定充分,所以从目标上将覆盖率分为代码覆盖率和功能覆盖率

代码覆盖率功能覆盖率
作用:检查代码是否冗余,设计要点是否遍历检查功能是否遍历
被检测对象:RTL代码自定义容器
检测方法:工具自动生成自定义收集条件

vcs支持的代码覆盖率:line(行),cond(条件),fsm(状态机),tgl(翻转),path(路径),branch(分支)

功能覆盖率:基于控制(断言),基于数据(定义的容器被击中)
功能覆盖率模型基于SV模型(用户编写的SV文件),输入之后,工具自动计算覆盖率。功能覆盖率模型由许多监视不同功能的覆盖率组 组成,覆盖率组由覆盖率点或者交叉覆盖率点组成。

覆盖率点交叉覆盖率点
自创建容器或者用户创建容器已定义覆盖率点

tb文件

module tb();
    bit [1:0] mode;
    bit [2:0] cfg;
    bit clk;
    always #20 clk = ~clk;
    covergroup cg @(posedge clk);
        cp_mode    : coverpoint mode;
        cp_cfg_10  : coverpoint cfg[1:0];
        cp_cfg_lsb : coverpoint cfg[0];
        cp_sum     : coverpoint (mode + cfg);
    endgroup

    cg cg_inst;
    initial begin
        cg_inst = new();
        for(int i = 0; i <50; i++)begin
            @(negedge clk)
            mode = $random();
            cfg  = $random();
            $display("[%0t] mode=0x%0h, cfg=0x%0h", $time, mode, cfg);
        end
        #500;
        $finish();
    end
endmodule

覆盖率文件的Makefile

TB_FILE_LIST  =  filelist.list

all: clean comp run

COMP = vcs -full64 -sverilog +v2k -debug_all -fsdb\
	-lca -cm line+fsm+cond+path+branch+tgl       

SIMV = ./simv

comp:
	$(COMP) tb.sv 
run:
	$(SIMV) -l simv.log -sml +ntb_random_seed=$(SEED)\
	 -lca -cm line+fsm+cond+path+branch+tgl		
clean:
	rm -rf AN.DB DVEfiles csrc *.simv *.simv.daidir ucli.key 64
	rm -rf *.log* *.vpd *.fsdb *.vdb novas* *verdi*
	rm -rf simv*

打开vdb文件功能覆盖率

dve -full64 -covdir simv.vdb&

收集结果:
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Vivado是Xilinx公司推出的一款基于FPGA器件的设计开发工具,其中包含System Verilog语言支持。System Verilog是一种基于Verilog的高级硬件描述语言,是IEEE标准的一部分。System Verilog支持面向对象编程思想和高级验证方法,可以大大提高设计的开发效率和可靠性。 在Vivado中使用System Verilog,可以在设计中使用高级特性,如多态和继承等,以更好地组织和维护设计代码。此外,System Verilog还提供了一系列高级验证函数和类,可以有效地进行设计验证和测试。 Vivado系统还提供了一套完整的开发工具和设计流程,可以帮助开发人员快速完成设计和仿真,以及进行综合和实现。总之,Vivado System Verilog提供了强大的设计和验证功能,是FPGA设计中无可替代的一部分。 ### 回答2: Vivado System Verilog 是一种硬件描述语言,可以用于设计和验证数字电路和系统。它是在 SystemVerilog 标准的基础上开发的,广泛应用于 FPGA 和 ASIC 的设计和仿真。Vivado 是一种集成开发环境 (IDE),可用于创建、调试和部署设计。Vivado System Verilog 的特点是具备高层次建模能力和强大的验证功能,包括时序仿真、行为仿真、代码覆盖率、函数覆盖率、分支覆盖率等。Vivado System Verilog 还支持多种验证方法,如模糊测试、约束随机测试、函数测试等,方便用户进行全面的验证和测试。在 FPGA 和 ASIC 的设计中,Vivado System Verilog 可以帮助设计师编写高效且可靠的代码,提高设计的质量和性能。 ### 回答3: Vivado System Verilog是一种硬件描述语言(HDL),它用于设计数字逻辑电路和系统。它是Vivado开发环境中支持的一种编程语言,它集成了Verilog和System Verilog的功能,具有更丰富的特性和更高的灵活性。 Vivado System Verilog可以在设计数字逻辑电路时实现更高级的功能和操作。例如,它提供了许多新的操作符和关键字,例如逻辑循环(logic loop)和连续赋值(continuous assignment),这可以简化代码的编写。此外,它还拥有更好且更可靠的类型系统,例如枚举、结构体和联合体等。这些类型可用于定义信号和端口,以及描述具体的结构和组织。 在Vivado System Verilog中,可以使用逻辑门、寄存器、时序逻辑、状态机和FPGA的高级功能等来进行电路设计。该语言还支持仿真和验证,可以使用Testbench测试电路以确保其正确性。 此外,使用一些高级技术,如异步复位、分层次设计(hierarchical design)、断言(assertions)和SystemVerilog任务(SystemVerilog Tasks),可以更好地进行电路设计,这些技术都是在Vivado System Verilog中实现的。 总之,Vivado System Verilog是一个用于数字逻辑设计的高级编程语言,提供了更好的功能和更高的灵活性。它可以让开发者更好地设计和测试电路,从而更加优化电路逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值