Coverpoint bins 覆盖所有位
Coverpoint bins to cover all the bits
我只是 SystemVerilog 的初学者,现在正在阅读覆盖率。所以我对此有疑问。如何编写覆盖点箱以覆盖信号的所有位?
interface allSignals;
logic [31:0] addr;
logic [15:0] len;
bit trigger;
covegroup signalOne@trigger;
coverpoint addr; //This generates bins automatically(64 bins by
default) with each bin containing 2^32/64 values
coverpoint addr[0]; //each coverpoint covers 2 bins and 50% coverage
coverpoint addr[1]; //is shown even if the value is not covered in
... //that bin
...
coverpoint addr[31];
coverpoint addr{
bins a0[] = {[0:5000]}; //should write 2^32 values which is
bins a1[] = {[5001:10000]}; //very complex
...
...
}
ad: coverpoint addr{
bins a[100] = ad; //creates 100 bins with 2^32/100 values in
} //each bin
endgroup
signalOne cvr1 = new;
endinterface
我怎样才能写出覆盖 "addr" 信号所有 32 位的覆盖点。还有其他更好的方法吗?
您不会通过尝试访问 2**32 个地址来收集 32 位地址的功能覆盖率。在具有 70ns 访问内存的真实硬件中,需要 5 分钟。鉴于软件模拟通常要慢 10000 倍,这将花费您一个月的时间。
大多数人所做的是寻找从 0 到 1 和 1 到 0 的每个位的转换。这就是 切换 覆盖。尽管它是 possible to model toggle coverage 和 covergroup
,但大多数工具都具有内置的分析功能来为您执行此操作。您需要查看模拟工具的用户手册。
如果您确实需要详尽地测试整个 4GB 地址 space,您可能需要针对该任务调查 formal tools 而不是模拟。
我只是 SystemVerilog 的初学者,现在正在阅读覆盖率。所以我对此有疑问。如何编写覆盖点箱以覆盖信号的所有位?
interface allSignals;
logic [31:0] addr;
logic [15:0] len;
bit trigger;
covegroup signalOne@trigger;
coverpoint addr; //This generates bins automatically(64 bins by
default) with each bin containing 2^32/64 values
coverpoint addr[0]; //each coverpoint covers 2 bins and 50% coverage
coverpoint addr[1]; //is shown even if the value is not covered in
... //that bin
...
coverpoint addr[31];
coverpoint addr{
bins a0[] = {[0:5000]}; //should write 2^32 values which is
bins a1[] = {[5001:10000]}; //very complex
...
...
}
ad: coverpoint addr{
bins a[100] = ad; //creates 100 bins with 2^32/100 values in
} //each bin
endgroup
signalOne cvr1 = new;
endinterface
我怎样才能写出覆盖 "addr" 信号所有 32 位的覆盖点。还有其他更好的方法吗?
您不会通过尝试访问 2**32 个地址来收集 32 位地址的功能覆盖率。在具有 70ns 访问内存的真实硬件中,需要 5 分钟。鉴于软件模拟通常要慢 10000 倍,这将花费您一个月的时间。
大多数人所做的是寻找从 0 到 1 和 1 到 0 的每个位的转换。这就是 切换 覆盖。尽管它是 possible to model toggle coverage 和 covergroup
,但大多数工具都具有内置的分析功能来为您执行此操作。您需要查看模拟工具的用户手册。
如果您确实需要详尽地测试整个 4GB 地址 space,您可能需要针对该任务调查 formal tools 而不是模拟。