Re: DC-WG: DCDL DAC demo subset - updated proposal

Steven Schulz (ses@ti.com)
Tue, 20 Apr 1999 14:51:50 -0500

Mark,

Looks good to me. Are you fairly confident this can be prototyped in time
for the demo? This would be a strong showing. Any thoughts on how the
publicity and marketing will be handled to give this proper
attention? Perhaps VI could offer some services here...

Steve

At 06:28 PM 4/19/99, you wrote:
>Here's a second draft proposal for the DCDL subset for the DAC demo.
>I've incorporated some feedback from the early implementation work.
>The changes are:
>
> - a new convention for specifying multiple values, based on
> lots of discussions
> - switch to use slew_time instead of drive_resistance for the
> demo (both will be supported later)
> - a new -inverted option on waveform, to eliminate ambiguity
> about whether the lead edge is rise or fall
>
>The notation conventions still follow the BuildGates strawman:
> -abc specifies a required parameter
> <abc> specifies an argument of a given type
> a | b select either the a option or the b option
> ?<ab> | <de>? select one or none of the specified options within
> the delimiters
> {a b} a list containing elements a and b. The curly braces
> are required in pure DCDL, but DCDL commands embedded
> in a TCL script may use double quotes or refer to
> a variable containing a list instead.
>
>Proposal for the DAC demo subset
>--------------------------------
> 1. Units
>
> These statements must appear before any other dcd statements
>
> dcd::units
> ?-time <multiplier>?
> ?-capacitance <multiplier>?
> ?-resistance <multiplier>?
> ?-voltage <multiplier>?
> ?-temperature <multiplier>?
>
> 2. Clock
>
> dcd::waveform
> -name <waveform_name>
> -period <period>
> -edges { <lead> <trail> }
> ?-inverted?
>
> The default is that the <lead> edge is rising and the <trail>
> edge is falling. The -inverted option indicates that the <lead>
> edge is falling instead.
>
> dcd::clock
> -waveform <waveform_name>
> <pin_list>
>
> 3. Arrival times
>
> dcd::data_arrival_time
> ?-waveform <waveform_name>?
> ?-lead | -trail?
> ?-early | -late?
> ?-rise | -fall?
> <time_value>
> <pin_list>
>
> When any of the options -early, -late, -rise, or -fall are specified,
> <time_value> must be a single value, and it applies to all of the
> value slots implied by the combination of the options.
>
> When none of those options are specified, <time_value> can either be
> a single value that applies to all four value slots, or a list of four
> values, one for each slot:
> { <early_rise> <late_rise> <early_fall> <late_fall> }
>
> Asterisks can be used for one or more of the four values, to indicate
> that the value is unspecified by this statement (the value slot is left
> unchanged). If there are previous statements that specify a value for
> the same slot, the old value will be preserved. Later, we'll add
> a -reset option to each command to support eliminating an existing value
> from a slot.
>
> This approach has the advantage of preserving the common usage for
> initial entry, while also providing a more compact syntax for advanced
> users and for interchange.
>
> 4. Required times
>
> dcd::data_required_time
> ?-target | -source? /* only -target supported for DAC */
> ?-waveform <waveform_name>?
> ?-lead | -trail?
> ?-early | -late?
> ?-rise | -fall?
> <time_value>
> <pin_list>
>
> Same convention for <time_value> as for data_arrival_time.
>
> 5. False paths
>
> dcd::disable
> ?-library <library_name>?
> -cell <cell_name>
> ?-arcs <from_pin to_pin>?
>
> dcd::false_path
> ?-from <pin_list>?
> ?-through <pin_list>?
> ?-to <pin_list>?
> ?-early | -late?
>
> 6. Multi-cycle paths
>
> dcd::multi_cycle_path
> ?-target | -source? /* only -source supported for DAC */
> ?-from <pin_list>?
> ?-through <pin_list>?
> ?-to <pin_list>?
> ?-early | -late?
> <cycle_offset> /* only integer values supported for DAC */
>
> When either of the options -early or -late is specified,
> <cycle_offset> must be a single value, and it applies to just
> the value slot implied by that option.
>
> When neither -early nor -late is specified, <cycle_offset> can either
> be a single value that applies to both value slots, or a list of two
> values, one for each slot:
> { <early_offset> <late_offset> }
>
> 7. Slew time
>
> dcd::slew_time
> ?-early | -late?
> ?-rise | -fall?
> <time_value>
> <port_list>
>
> Same convention for <time_value> as for data_arrival_time.
>
> 8. External load
>
> dcd::external_capacitance
> <capacitance_value>
> <port_list>
>
> In full DCDL this should have -early and -late options, and
> the <capacitance_value> should be either a single value or a
> list of two values. For the DAC demo it will just be a single
> value.
>
> 9. Wire load model (WLM) selection
>
> dcd::wire_load_model
> ?-library <library_name>?
> <wire_load_model_name>
> ?<instance_list>? /* omit for top instance; must omit for DAC */
>
>10. Operating conditions
>
> dcd::operating_conditions
> ?-process <value>?
> ?-voltage <value>?
> ?-temperature <value>?
>
>--
>Mark Hahn phone: (408) 428-5399
>Senior Architect fax: (408) 428-5959
>Cadence Design Systems email: mhahn@cadence.com

Regards,
Steve

----------
Steven E. Schulz, P.E. Internet: ses@ti.com
Senior Member, Technical Staff Voice: (972) 480-1662
Advanced ASIC Architecture FAX: (972) 480-2356
Semiconductor Group P.O. Box 660199, M/S 8645
Texas Instruments Dallas, Tx. 75266-0199

----------