2016-03-25 30 views
1

我有一个用脚本生成的寄存器映射。模块的输出是一个巨大的打包结构。这通常不是问题,但是当我将我的代码绑定时,我收到以下警告:基于位位置对打包结构成员的名称进行解码

* W,UNCONO(./module_name.v158)::'reg [1415]'未连接。

所以我可以看到我的一个寄存器位没有被使用,这是不好的,但是哪一个呢?如何将压缩结构中的位位置映射回指定的结构成员?

为了说明我正在寻找某种类型的函数,它会将位置作为输入并返回结构成员名称作为输出。

回答

0

在打包结构中,位从右到左编号,从0到N-1。所以,如果你有

typedef struct packed { 
logic sign; 
logic [7:0] exponent; 
logic [22:0] mantissa; 
} Float32; 

Float32 F; 

然后

assert (F.sign === F[31]); 
assert (F.exponent === F[30:23]); 
assert (F.mantissa === F[22:0]); 
+0

是的,我明白,但在这种情况下,我的结构具有数千个元素,所以我不知道一个简单的方法来位#1415地图到结构的成员而不计算。 – nguthrie