DC-WG: Subset issues

Tom Dewey (tom_dewey@mentorg.com)
Wed, 30 Jun 1999 09:27:42 -0700 (PDT)

Hello everyone.

In the course of creating the translators for the DCDL DAC demo, we recorded 2
main syntax issues that we would like to discuss:

1. Multicycle definition.

The current definition for multicycle path definitions is as follows:

multi_cycle_path
?-target | -source?
?-from <pin_list>?
?-through <pin_list>?
?-to <pin_list>?
?-early | -late?
<cycle_offset>

This syntax seems restrictive. This defintion seems to assume that the -from
list and the -to list are only registers, or primary IOs. There should be no
reason why other points could be used when specifying multicycle paths.

For example, in a modular design, you might have a block that is pure
combinatorial that you know cannot be implemented in a single clock cycle. The
source and destination registers that drive this block might drive many other
blocks, and many registers could potentialy drive this block. In particular,
the block could be a multiply block in a computer design.

The -through switch implements this is some respect, but not
being able to specify a clock limits the utility. We would like to suggest
that the syntax be extended with -waveform, as follows:

multi_cycle_path
?-target | -source? | -waveform <wavename>
?-from <pin_list>?
?-through <pin_list>?
?-to <pin_list>?
?-early | -late?
<cycle_offset>

The semantics should be enhanced to allow any node in the circuit to
appear in the -from and -to lists.

2. Clock definitions

We understand the issues involved with creating separate commands for
each constraint. However, in the case of clock definitions we see a logical
combination.

It seems logical to define clock skew within the clock command. In effect,
this defines an ambiguity region for clock transitions for a particular
signal. Further, it seems logical to define jitter as part of the waveform
command, specifying the variablity of a particular oscilliator.

We would propose modifying the syntax to the following:

waveform
-name <waveform_name>
-period <period>
-edges { <lead> <trail> }
-jitter <percent>
?-inverted?

clock
-waveform <waveform_name>
-skew {earlyRise earlyFall lateRise lateFall} | <value>
<pin_list>

-- 
------------------------------------------------------------------
Tom Dewey                      |   Phone: (503) 685-1417       
Technical Marketing Engineer   |   Email: tom_dewey@mentor.com 
Solutions Partnerships Group   |   FAX:   (503) 685-1268         
Mentor Graphics Corporation    |   Web:   www.mentor.com/partners