Subject: DC-WG: object typing
From: Mark Hahn (mhahn@cadence.com)
Date: Tue Jul 18 2000 - 09:25:13 PDT
In last week's meeting we discussed a problem with
the current approach of specifying design object types
using an expanded set of keywords, such as -from_pin,
-from_port, -from_instance, ...
The issue is that with this approach, it's not clear how
to express OR-AND semantics for false_path, multi_cycle_path,
and path_delay.  With the OR-AND semantics, we need to be
able to specify that paths through (pin A OR net B) AND
then through (pin C OR instance D) are affected.
With the current approach, pin A and net B have to be separated
into two different options, -through_pin A and -through_net_B,
as do pin C and instance D.  This is inconsistent with the more
intuitive but untyped -through {A B} -through {C D} syntax allowed
in several existing constraint languages.
Proposal:
  - Switch to using a C++ casting style for specifying object
    types within design object lists, and define a default
    object type for each option.
Examples:
  - Assume that we choose pin as the default object type for
    the -from/-through/-to options in set_false_path.
    Then the syntax for the example above would be
      set_false_path -through {A net(B)} -through {C or instance(D)}
  - If there are design objects whose names collide with the
    casting syntax, they must be explicitly typed.
    Suppose we instead have an instance named "pin(A)" and a pin
    named "pin(B)".  Then the required syntax would be
      set_false_path -through {instance(pin(A)) pin(pin(B))}
        -through {C or instance(D)}
Issues:
  - What if we have a pin named "\A)) B"?
    Then the parser could get confused by
      set_false_path -through {pin(\A)) B) C}
  - Should we allow several names within the cast, as in
      set_false_path -through {net(A B)}
Mark
-- Mark Hahn phone: (408) 428-5399 Senior Architect fax: (408) 894-3479 Cadence Design Systems email: mhahn@cadence.com
This archive was generated by hypermail 2b28 : Tue Jul 18 2000 - 09:30:52 PDT