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