结构类型的总线的覆盖范围

我有以下公交车

typedef struct packed { logic vld; logic [ASI_MAX_PCL_CYC_M:0] cyc; } type_t;

以一定的宽度说[3:0]

所以 type_t [3:0] my_bus_req;

我该如何写一个覆盖点说在任何时钟周期,只有一个vld为高 即my_bus_req [0] .vld = 1,rest =0。(仅一个请求进入)

如果信号不是结构类型,例如逻辑[3:0] my_req_bus; 我们可以简单地完成

覆盖点仅当(my_bus_req [i] .vld == 1 && $ onehot(my_bus_req))

但不确定如何处理结构类型的总线

zhouwentao951 回答:结构类型的总线的覆盖范围

自从将其制作为打包数组以来,没有简单的表达式可以直接使用,而无需创建单独的函数或转换为未打包的数组。

typedef type_t type_unpacked_t[4];
type_unpacked temp;
temp = type_unpacked'(my_bus_req);
...
coverpoint i iff (temp[i].vld == 1 && temp.sum() with (int'(item.vld)) == 1)
本文链接:https://www.f2er.com/3121075.html

大家都在问