[sv-ac] delay/concatenation syntax


Subject: [sv-ac] delay/concatenation syntax
From: dudani@us04.synopsys.com
Date: Wed Feb 19 2003 - 12:49:28 PST


After digesting the discussion so far, I would like to propose the following syntax for delay/concatenation. Please review and provide your feedback.  Also attached are examples written in this syntax. The examples are borrowed from the vfv committee.
sequence_expr ::=
                  sequence_instance
         | '(' sequence_expr ')'
         | boolean_expr
         | range sequence_expr
         | sequence_expr { ';' range sequence_expr }
         | sequence_expr ‘*‘ range
         | boolean_expr '*=' range
         | sequence_expr  'within' sequence_expr
         | boolean_expr 'throughout' sequence_expr
         | sequence_expr and sequence_expr
         | sequence_expr or sequence_expr
         | sequence_expr intersect sequence_expr
         | first_match '(' sequence_expr ')'
         | '(' var_decl {,var_decl};  sequence_expr ')'
range ::=
                ‘[’ constant_range_expression ‘]’
          | ‘[’ constant_range_expression ‘:’ constant_range_expression ‘]’
          | ‘[’constant_range_expression ‘:’ inf  ‘]’
Main advantages:
1) Consistent notation for unary and binary delays
2) Single operator for concatenation
3) Minimum rules
4) No extra parenthesis required
5) overall less typing

Disadvantage:
1) No default for concatenation with delay 1 (;)

Following are the main differences from 0.80 version :
1) unary and binary delays are allowed
2) unary delay 0 means the current evaluation tick
3) binary delay 0 means overlapped concatenation
4) No extra parenthesis required to delineate sequences
5) No default delay 1 for concatenation

Please note that
1) boolean operators have higher precedence than sequence operators
2) precedence of sequence operators in order as below:
       * , =*
       ; range
       and , intersect
       or
       throughout
       within
3) left to right association



**********************************************
Surrendra A. Dudani
Synopsys, Inc.
377 Simarano Drive
Suite 300
Marlboro, MA 01752

Tel:   508-263-8072
Fax:   508-263-8123
email: dudani@synopsys.com
**********************************************




This archive was generated by hypermail 2b28 : Wed Feb 19 2003 - 12:51:47 PST