Re: BNF question


Subject: Re: BNF question
From: Paul Graham (pgraham@cadence.com)
Date: Wed Apr 17 2002 - 08:27:02 PDT


> initial
> mytask( {foo{a}} ); // multiple concat with non-constant replication
> endmodule

> Unfortunately, a customer has run this on XL and NC, and they both allow it.
> Can someone with access to these simulators verify this (and maybe check VCS
> too)? Should it be an error? If not, then I fear that Stefen has more work
> to do 8-).

I can check it out, but what do you want me to check out :-? Whether
a multi-concatenation repeat count can be non-constant? The LRM says
it has to be constant.

Verilog-XL reports a warning for a non-constant repeat count, but supports
it anyway.

NC reports an error.

I wonder why it was made illegal? Because it's hard to synthesize?

> The "{foo{a}}" expression in my example falls under the definition of
> "variable_concatenation" in both BNFs. The only place I can find this used

The "variable_concatenation" non_terminal just means a concatenation of
variables (that is, reg-like objects), not a multi-concatenation with a
non-constant repeat count. So syntactically "{foo{a}}" is not a
variable_concatenation, but a multiple_concatenation, except that "foo" is
not constant.

Paul



This archive was generated by hypermail 2b28 : Wed Apr 17 2002 - 08:28:07 PDT