System Verilog 中的覆盖点

2023-12-28

是否可以根据参数从特定组中排除某些覆盖点?

covergroup NEW (string for_exclusion) @ (clk);
option.per_instance = 1;
option.comment = for_exclusion;

apples: coverpoint (available) { bins hit1 = {1'b1};}
bananas: coverpoint ({not_available, less}) {bins hit1 = {1'b1};}
oranges: coverpoint ({available, less}) {bins hit1 = {1'b1};}
rose: coverpoint ({available, flower}) {bins hit1 = {1'b1};}

这是原始文件的一小部分。我想根据参数从该封面组中排除“玫瑰”参数 IDENTITY = 2'b00我已经在模块中传递了它。有没有办法做到这一点? (如果有语法错误,请忽略。我现在不担心它们)

我尝试使用这个,但没有成功。

covergroup NEW (string for_exclusion) @ (clk);
option.per_instance = 1;
option.comment = for_exclusion;

apples: coverpoint (available) { bins hit1 = {1'b1};}
bananas: coverpoint ({not_available, less}) {bins hit1 = {1'b1};}
oranges: coverpoint ({available, less}) {bins hit1 = {1'b1};}

generate
if (IDENTITY = 2'b01) begin
rose: coverpoint ({available, flower}) {bins hit1 = {1'b1};}
end
endgenerate`

你不能使用generate在声明另一个构造的过程中。您能否将该覆盖点分离到另一个覆盖组中,而不是根据其他参数对其进行构造/采样?

另一种选择是根据参数将覆盖点的权重设置为0。您可以在构造覆盖组之前或之后在过程代码中执行此操作。

if (IDENTITY != 2'b01)
  NEW::rose::type_option.weight = 0;

或在覆盖点内

rose: coverpoint ({available, flower}) {
  bins hit1 = {1'b1};
  option.weight = (IDENTITY == 2'b01};
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

System Verilog 中的覆盖点 的相关文章

  • 【原创】SystemVerilog和Verilog中的表达式位宽

    Verilog和SystemVerilog作为一种 松散类型 的语言已经被很多工程师广泛的用于设计验证领域 xff0c 但是这并不是说各种电路结构或者验证环境中就可以肆无忌惮的随意使用 xff0c 特别是在不同位宽的信号进行计算时 xff0
  • 《SystemVerilog验证测试平台编写指南》学习笔记——连接设计和测试平台(三)

    一 SystemVerilog断言 1 立即断言 2 定制断言行为 3 并发断言 4 断言的进一步探讨 二 四端口的ATM路由器 1 使用端口的ATM路由器 2 使用端口的ATM顶层网单 3 使用接口简化连接 4 ATM接口 5 使用接口的
  • How to Control Power Switch Rush Current

    原文链接 https community cadence com cadence blogs 8 b lp posts how to control power switch rush current While there are mul
  • systemverilog的timescale作用域

    参考文献1 https www chipverify com verilog verilog timescale scope 在数字电路仿真过程中 如果没有模块本身没有指定timescale 则编译器本身可能插入一个默认的timescale
  • 【EDA Tools】Spyglass 检查 Verilog 和 SystemVerilog 混合语言及 Lint 检查

    目录 写在前面 读入设计 发现问题并解决 Lint 检查 写在前面 Spyglass可以用于检查混合设计中的语言互操作性和一致性问题 对于设计中包含多种硬件描述语言的情况 Spyglass 能够识别并解析其中的模块及其互连 并对其进行验证
  • AHB VIP Example 的tb_ahb_svt_uvm_basic_ral_sys中关于slave和master接口连接的问题

    AHB 的tb ahb svt uvm basic ral sys中关于slave和master接口连接的问题 这里代码不完整太多没有截完 一 原始使用方法 hdl interconnect中文件的DUT的部分内容是 DUT外面还做了封装
  • 何时使用tick(')进行Verilog数组初始化?

    数组初始化可以通过或不通过 int a 8 0 1 2 3 4 5 6 7 Packed int b 8 0 1 2 3 4 5 6 7 Unpacked 有没有correct方式 假设数组使用不可打包的类型 例如int string ET
  • 如何在 SystemVerilog 中将变量值传递给宏?

    我认为这个问题很好地概括了我想要的 将变量的值传递给 SystemVerilog 中的宏 例如我想要的 比如说 有 4 个名为 abc X def 的信号 我想将它们全部初始化为 0 所以 没有宏 abc 0 def 4 b0000 abc
  • 如何改变变量赋值的较低索引?

    我想对具有较低索引的变量进行赋值 这就是我想做的 int i logic 63 0 data i someCalculatedNumber data 63 i 8 h0 我知道这不会编译 完成这项任务的最佳方法是什么 如果您希望将 LSB
  • 带有always_comb结构的Systemverilog问题

    我对这个 SystemVerilog 代码有疑问 这是代码 module mult multiplicand multiplier Product clk clear Startm endm input 31 0 multiplicand
  • 使用数据流模型的T触发器

    我正在尝试模拟 t flipflop 的工作 timescale 1ns 1ps module t flipflop input t input clk input clear output q output qbar wire sbar
  • 在 SystemVerilog 中 fork join_none 后仅等待一些线程完成

    在 SystemVerilog 中 我需要等待在 fork join none 结构内执行的一些线程完成 但是在另一个 fork join none 结构中还有另一个永远不会结束的进程 我的代码如下所示 fork process that
  • System Verilog fork join - 实际上不是并行的?

    我正在学习系统verilog 并认为为每个进程创建单独的线程fork join 但是 我发现如果我有一个while在我的第一个进程中循环 我的第二个进程没有启动 这让我想到fork join实际上并不平行 class A task run
  • 用于 Verilog 或 SystemVerilog 的 TAP(测试任何协议)模块

    是否有 TAP 测试任何协议 http testanything org Verilog 的实现 那就太好了 因为这样我就可以使用证明来自动检查我的结果 更新 10 9 09 有人问为什么不使用断言 部分 TAP 为我提供了一些很好的报告
  • 如何在RTL中使用时钟门控?

    我正在对一些时钟进行门控latch以及我设计中的逻辑 我在综合和布局布线方面没有太多经验 在 RTL 中实现时钟门控的正确方法是什么 示例1 always comb begin gated clk clk latch update en e
  • 连接分层模块:SystemVerilog 中的结构与接口

    在 SystemVerilog 中 分层模块可以通过简单数据类型 复杂数据类型 结构 联合等 或接口进行连接 我感兴趣的功能是将两个模块之间的所有信号聚合到一个地方 这简化了代码的维护 例如 在下面的例子中 更改 s point 的定义而不
  • 将枚举转换为逻辑

    考虑以下模块声明 module DFF d q CLK RESET parameter W 2 input W 1 0 d input CLK input RESET output logic W 1 0 q endmodule 当 d 和
  • 如何使用 don't cares 参数化 case 语句?

    我有一条称为输入的电线 我想检测前导的数量 我正在尝试创建一个模块 该模块使用下面的 case 语句根据前导零的数量更改输出数据 然而 输入的大小是可参数化的 如果 X 是固定值 4 我将创建一个 case 语句 case input 4
  • 如何在Verilog中将二维数组中的所有位设置为0?

    我构建了一个 8 2bits 数组来表示 Verilog 中的一块内存 reg 1 0 m 0 7 该存储器有一个复位信号 如果复位为1 则该存储器中的所有位都应重置为0 但是我不知道如何以简洁的方式设置m的所有位 因为如果有数百个内存中有
  • reg 声明中的位顺序

    如果我需要使用 4 个 8 位数字 我会声明以下 reg reg 7 0 numbers 3 0 我对第一个和第二个声明 7 0 和 3 0 之间的区别感到很困惑 他们应该按什么顺序来 第一个是保留数字的大小 而第二个是保留数字的数量 还是

随机推荐