我想使用可合成的verilog检查内存数组中的'XX'

时间:2016-09-16 16:42:13

标签: verilog synthesis

我有一个内存数组,它由一系列有效值组成,从位置0开始。其余值为'XX'。

我想计算内存中有效值的数量。我能想到的一种方法是首次使用'==='来寻找'XX'。但它无法合成。

请建议其他一些方法来做同样的事。

1 个答案:

答案 0 :(得分:1)

根据您所描述的内容,我建议您在一个寄存器中进行设计,该寄存器指示内存中最后一个有效值的地址,您可以在内存加载值时设置。

正如评论中所提到的,一旦合成,你无法知道你已经明确设置的值传递的值(1'bx只是一个模拟占位符,而不关心",意思是在实际运行期间,值可以是1'b11'b0。因此,您可以为未初始化的内存地址设置一个特殊值,在启动时填充整个内存,并在有效数据中显示DOESNT,或者更好的是,使用上面建议的寄存器概念来跟踪您的大小/地址。最后一次有效录入。