专栏首页摸鱼范式【日更计划128】数字IC基础题

【日更计划128】数字IC基础题

上期答案

[366] 下面的bin覆盖了哪些范围?

covergroup test_cg @(posedge clk); 
    coverpoint var_a {
        bin hit_bin = { 3[*4]};
    } 
endgroup

[* N]指的是连续的重复操作。因此,上面的bin覆盖的是连续4次采样都是3的翻转覆盖率

[367] 什么是wildcard bins?

wildcard bins可以让bin在定义时使用x、z和?作为0或者1的通配符。下面的例子中,并不关心低两位是多少,只要高两位为11就在覆盖范围内。

coverpoint a[3:0] { 
    wildcard bins bin_12_to_15 = { 4'b11?? };
}

[368] 什么是cross coverage?何时使用它?

coverage可以指定两个或多个coverpoint或变量之间的cross coverage。cross coverage使用cross进行指定的。交叉覆盖率的仓数,等于交叉目标仓数的乘积,因为要覆盖到两者的所有可能组合。

bit [31:0] a_var; 
bit [3:0] b_var; 
covergroup cov3 @(posedge clk); 
    cp_a: coverpoint a_var { 
        bins yy[] = { [0:9] };
    } 
    cp_b: coverpoint b_var; 
    cc_a_b : cross cp_b, cp_a; 
endgroup

cp_a有10个bin,cp_b有16个bin,因此cc_a_b有160个bin。

交叉覆盖率通常用于不同功能或者事件同时发生的情况,去验证这些事件是否同时发生了。

[369] 下面的交叉覆盖率有多少个bin?

bit[1:0] cmd; 
bit[3:0] sub_cmd; 

covergroup abc_cg @(posedge clk);
    a_cp: coverpoint cmd; 
    cmd_x_sub: cross cmd, sub_cmd; 
endgroup

cmd和sub_cmd都是二值变量,a_cp有4个bin,sub_cmd默认有16个bin,因此,交叉覆盖率具有64个bin。

[370] 下面的覆盖率代码有什么错误?

int var_a; 
covergroup test_cg @(posedge clk); 
    cp_a: coverpoint var_a { 
        bins low = {0,1}; 
        bins other[] = default;
    } 
endgroup

代码对int类型进行覆盖率收集,low的bin数为2,而通过default所创建的数量为

2^{32}-2

个,数量十分巨大,这会导致仿真器崩溃或者仿真速度下降。应该尽量避免使用default或者不要使用default。

本期题目

[371] covergroup有几种采样方式?

[372] 如何给covergroup传递参数,何时用它?

[373] covergroup可以引用DUT中的层次信号吗?

[374] 能够对不同covergroup的coverpoint进行交叉覆盖率定义吗?

[375] per_instance和per_type的区别是什么?如何使用覆盖率选项控制它们?

正确答案将在下一期公布,或者到下面的文章获取答案

面试攻略

本文分享自微信公众号 - 摸鱼范式(icparadigm),作者:空白的贝塔

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-06-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【日更计划064】数字IC基础题

    空白的贝塔
  • 【日更计划063】数字IC基础题

    空白的贝塔
  • 【日更计划061】数字IC基础题

    空白的贝塔
  • 【日更计划062】数字IC基础题

    空白的贝塔
  • 【日更计划047】数字IC基础题

    空白的贝塔
  • 【日更计划048】数字IC基础题

    内核是一种计算机程序,它用于管理来自软件的输入/输出请求,并将这些请求转换为CPU指令或其他指令。

    空白的贝塔
  • 【日更计划049】数字IC基础题

    Cron Job是操作系统中基于时间的作业调度程序。它允许在指定的时间,日期,间隔等自动定期运行作业。例如:假设用户具有Shell或Perl脚本,该脚本计算UN...

    空白的贝塔
  • 【日更计划050】数字IC基础题

    “ rsync”代表“Remote Sync(远程同步)”,它是在磁盘,网络,服务器和机器之间复制或同步文件/目录的常用命令。rsync仅移动文件中已更改的那些...

    空白的贝塔
  • 【日更计划043】数字IC基础题

    指针是一个变量,其值是另一个变量的地址。星号*表示指针,int * p 告诉编译器变量“p”是一个指针,其值是存储整数变量的存储位置的地址。同样,float *...

    空白的贝塔
  • 【日更计划012】数字IC基础题

    「实际硬件中的竞争」:以SR锁存器为例,当SR都是1的时候,输出为1,此时如果SR同时变成0,那么Q和Q'就会进入竞争的情况。可以通过添加合适的逻辑避免。

    空白的贝塔
  • 【日更计划123】数字IC基础题

    电源域是共享一个主要电源的设计元素的集合,根据通用电源策略(例如工作电压,电源网络,上电/断电条件等)进行分组。

    空白的贝塔
  • 【日更计划126】数字IC基础题

    Branch/Decision coverage:分支覆盖率评估HDL代码中的条件,例如if-else,case语句和三元运算符(?:)语句,并检测是否同时包含...

    空白的贝塔
  • 【日更计划127】数字IC基础题

    覆盖点(coverpoint)是用于指定需要收集覆盖率的目标。Covergroup可以具有多个覆盖点以覆盖不同的表达式或变量。每个覆盖点还包括一组bin,这些b...

    空白的贝塔
  • 【日更计划124】数字IC基础题

    电源门控是一种低功耗,可以关闭设计中不工作的部分。当不工作时,电源门控可关闭电源,减少漏电功耗,从而降低了功耗。时钟门控有助于降低动态功耗,而时钟门控有助于降低...

    空白的贝塔
  • 【日更计划125】数字IC基础题

    复位恢复时间(Reset Recovery Time)是复位解除和时钟信号有效沿之间的时间。如果发生复位解除,并且在非常小的时间窗口内,如果时钟信号边沿来临,则...

    空白的贝塔
  • 【日更计划122】数字IC基础题-功耗

    静态功耗是电路中没有开关活动时消耗的功耗。它是漏电功耗。例如:打开电路时,由于电流流动,电池开始漏电。

    空白的贝塔
  • 【日更计划084】数字IC基础题【HDL部分】

    斐波那契数列是一种数列,每一项是通过将前两项相加而得到的。从0和1开始,顺序为0、1、1、2、3、5、8、13、21、34,依此类推。通常,表达式为xn = x...

    空白的贝塔
  • 【日更计划085】数字IC基础题【HDL部分】

    空白的贝塔
  • 【日更计划086】数字IC基础题【HDL部分】

    reg和wire是Verilog中就存在的两种数据类型,而logic是SystemVerilog中引入的新数据类型。

    空白的贝塔

扫码关注云+社区

领取腾讯云代金券