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

Vassilios Gerousis (vassilios.gerousis@hl.siemens.de)
Tue, 20 Apr 1999 07:41:09 +0200

For the multi-cycle path, you should add conditional statements. Let us take an
example of an adder with some logic around it. For the add function, one clock
cycle should be sufficient. For the multiply operation, it may take let say
three clock cycle. This should be described in the multi-cycle constraints.

Best Regards

Vassilios
-----------------------------------------------------------------------------------
Mark Hahn 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

-- 
############################################################################ 
#  Vassilios Gerousis, Dr.                 phone:(+49 89) 63 62 13 42      #
# InfinEon  HL CAD  (formally Siemens)     fax:(+49 89) 63 62 36 50        #
#  Mch B, Balanstr. 73        Unix Mail:Vassilios.Gerousis@hl.siemens.de   #
#  D-81617 Munich             PC Mail: Vassilios.Gerousis@Infineon.com     #
############################################################################