Forum: FPGA, VHDL & Co. Synthese einer procedure


von Max (Gast)


Lesenswert?

Hallo!

Wenn ich eine kombinatorische Logik in einer Procedure modelliere, und 
diese an verschieden Stellen in meinem VHDL Code aufrufe, wird diese 
dann bei der Synthese mehrmals erzeugt, oder  nur einmal?
Genauer gesagt: Ist mit einer Procedure eine Ressourceneinsparung 
möglich?

Vielen Dank für eure Antworten!

Viele Grüße

Max

von Falk B. (falk)


Lesenswert?

@ Max (Gast)

>Wenn ich eine kombinatorische Logik in einer Procedure modelliere, und
>diese an verschieden Stellen in meinem VHDL Code aufrufe, wird diese
>dann bei der Synthese mehrmals erzeugt, oder  nur einmal?

Mehrmals.

>Genauer gesagt: Ist mit einer Procedure eine Ressourceneinsparung
>möglich?

Nein.

MFG
Falk

von A. F. (chefdesigner)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.