Hi,
For completeness, we should allow it. I do not have any problem in
allowing it now that we understand how it can be used. I guess it will
be used in the case when the actual is a concat e.g.:
assert property (@clk Prop1(x, y, {1, 2, 3, 4} , 2));
If others think that we should keep it simple, I am fine with that also.
Thanks.
Manisha
________________________________
From: Bisht, Laurence S [mailto:laurence.s.bisht@intel.com]
Sent: Wednesday, January 26, 2011 5:34 PM
To: Kulshrestha, Manisha
Cc: Korchemny, Dmitry; sv-ac@eda.org
Subject: RE: [sv-bc] constant_range_expression in constant_primary
Hello back Manisha,
Following Shalom's response we have two options:
1) Keep the constant_range_expression for cases like:
parameter int Param1 [3:0] = '{ 1, 2, 3, 4 } ; //
property Prop1(a, b, n , delay);
a ##delay[n] b;
endproperty
assert property (@clk Prop1(x, y, Param1, 2));
2) Do not support such cases, I will add a comment for this.
Please let me know what do you think.
Thanks,
Laurence
From: Bresticker, Shalom
Sent: Wednesday, January 26, 2011 1:38 PM
To: Bisht, Laurence S; sv-bc@eda.org
Cc: sv-ac@eda.org
Subject: RE: [sv-bc] constant_range_expression in constant_primary
You can't write 4'b1100[2:1], but rather {4'b1100}[2:1].
See 11.4.12:
"One or more bits of a concatenation can be selected as if the
concatenation were a packed array with the range [n-1:0]. Such a select
shall not be legal as a net_lvalue, variable_lvalue or in any equivalent
use, such as on the left-hand side of an assignment. Example:
byte a, b ;
bit [1:0] c ;
c = {a + b}[1:0]; // 2 lsb's of sum of a and b"
Shalom
From: owner-sv-bc@eda.org [mailto:owner-sv-bc@eda.org] On Behalf Of
Bisht, Laurence S
Sent: Wednesday, January 26, 2011 1:22 PM
To: sv-bc@eda.org
Cc: av-ac@eda.org
Subject: [sv-bc] constant_range_expression in constant_primary
Hello,
I am trying to understand why in constant_primary there exists
[constant_range_expression] after constant_concatenation ? or after
specparam_identifier?
constant_primary ::=
primary_literal
| ps_parameter_identifier constant_select
| specparam_identifier [ [ constant_range_expression ] ]
| genvar_identifier35
| [ package_scope | class_scope ] enum_identifier
| constant_concatenation [ [ constant_range_expression ] ]
| constant_multiple_concatenation [ [ constant_range_expression ] ]
| constant_function_call
| constant_let_expression
| ( constant_mintypmax_expression )
| constant_cast
| constant_assignment_pattern_expression
| type_reference36
My immediate guess is to be able to write 4'b1100[2:1].
However, I am sure that there exists a better explanation, can you
please help?
Thanks,
Laurence
---------------------------------------------------------------------
Intel Israel (74) Limited
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
-- This message has been scanned for viruses and dangerous content by MailScanner <http://www.mailscanner.info/> , and is believed to be clean. --------------------------------------------------------------------- Intel Israel (74) Limited This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies. -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.
This archive was generated by hypermail 2.1.8 : Thu Jan 27 2011 - 22:06:56 PST