Doch! MAn kann in den Tools die option resource sharing aktivieren, was
dazu führt, daß das Synthesetool nach Möglichkeiten sucht, zeitlich
unabhängig agierende Teile zu multilpexen. Dies geht natürlich nur, wenn
es keine Überlappung gibt und das Tool es erkennen kann, weil eine
gewisse Identität gegeben ist.
Den Code mit Hilfe von procedures zu strukturieren, ist ein gutes
Mittel, dem tool sowas anzuzeigen. Auf diese Weise kann man bedenkenlos
redundant instanziieren und es dem tool überlassen, das wieder
zusammenzuschieben.
Gerade bei unübersichtlichen Designs ist es so möglich, sich die
Möglichekeiten des paralleln und sequenziellen Vorgehens bis zum Schluss
offen zu halten. Manchmal ist es möglich, parallel agierende Pfade mit
einem Takt zu verschieben, um sie "pipeline-bar" zu machen.