请参阅System Verilog中的仅较低索引

时间:2017-10-23 18:41:42

标签: system-verilog verification system-verilog-assertions

我有一个数组A [32] [16]。

我想检查是否有任何较低的索引值具有某种模式。

例如。

A [1] [8:0]可能具有该模式A [2] [8:0]也可能具有该模式。

A [31 - 0] [8:0]中的任何东西都可能具有该模式。有没有办法在单个语句中引用所有更高级别的索引组件。

类似A [5'bxxxxx] [8:0]?

1 个答案:

答案 0 :(得分:0)

没有语法可以在单个选择中从数组(打包或解包)中选择一组非连续的位。如果A是一个解压缩的数组,则可以使用其中一种数组简化方法来创建可能符合您需求的表达式。

if (A.or()  with (item[8:0] == your_pattern) )  // if any match
if (A.and() with (item[8:0] == your_pattern) )  // if all match

如果A是打包数组,则可以使用复制串联来匹配所有

if ( {32{ {8'b?,your_pattern} } } ?== A )