由于英特尔® Quartus® Prime 专业版软件 v21.1 及更早版本出现问题,如果结构实例可变名称与其成员之一相同,则您可能会发现合成结果不正确。
例如,在下面的结构定义中,当设计 在.data 中使用时,将其合成为 in.data.data,后者是结构的元素。这意味着位宽度为 256 位,即 258 位,即 1 位 sop、1 位 eop 和 256 位数据。
接口测试 #(参数宽度=256)();
typedef 结构封装 {
逻辑哎呀;
逻辑 eop;
逻辑 [宽度-1:0] 数据;
} data_t;
data_t数据;
结束对比
......
测试 #(。宽度 (256)英寸();
分配 dout = in.data;
......
要解决此问题,如果是成员,不要将同一个结构名称作为同一个名称。
这个问题从英特尔® Quartus® Prime 专业版软件 v21.2 开始得到了修复。