The present invention is a systematic and data-driven-decomposition (DDD)
method and apparatus for use in VLSI synthesis. The invention decomposes
a high level program circuit description into a collection of small and
highly concurrent modules that can be implemented directly into
transistor networks. This enables an automatic implementation of a
decomposition process currently done by hand. Unlike prior art
syntax-based decompositions, the method of the present invention examines
data dependencies in the process' computation, and then attempts to
eliminate unnecessary synchronization in the system. In one embodiment,
the method comprises: a conversion to convert the input program into an
intermediate Dynamic Single Assignment (DSA) form, a projection process
to decompose the intermediate DSA into smaller concurrent processes, and
a clustering process that optimally groups small concurrent processes to
make up the final decomposition. Another embodiment is a decomposition,
projection, and clustering tool implemented in computer program codes.