In reply to frodus:
We strongly recommend declaring a type for the associative array index, rather than using the [*] wildcard index. A wildcard index is very restrictive if you try to use it with other constructs like a foreach loop. What you probably meant is
typedef bit [DEPTH_BITS-1:0] depth_t;
bit[WIDTH_BITS-1:0] index[3][depth_t];
And if you really wanted a queue of an associative arrays, that would be declared as
bit[WIDTH_BITS-1:0] index[$][depth_t];