Forum: FPGA, VHDL & Co. macro vs. primitive


von ehde76 (Gast)


Lesenswert?

bis jetzt einfach nur benutzt, aber nie gedanken darüber gemacht.. worin
besteht bei xilinx der unterschied aus einem macro und einer primtive?
(ein macro besteht aus mehreren primitiven?)

gruß ehde76

von Klaus F. (kfalser)


Lesenswert?

So viel ich verstanden habe, steht eine primitive für eine Resource, die
im FPGA genau so vorhanden ist.
Bei einem macro wird die Funktion aus mehreren Resourcen
zusammengefügt.
Ein Beispiel wäre z.B. ein D-FF, welches an der abfallende Flanke
schaltet.
Wenn das FPGA über ein solches verfügt, dann wird es als primitive
realisiert.
Wenn das FPGA nur über FFs verfügt, welche an der aufsteigenden Flanke
schalten, dann muß es als Macro, bestehend auf Inverter am Takt und FF
erzeugt werden.
Dies ist aber nur ein Beispiel, normalerweise haben alle FPGAs FFs für
fallender Flanke.

Für den FPGA-Benutzer ist es eigentlich nicht relevant, ob eine
Funktion als macro oder mrimitive vorliegt. Ich würde sogar davon
abraten, die Library Elemente direkt zu verwenden, sondern alles als
VHDL zu beschreiben. Nur wenn man die Elemente nicht als VHDL
beschreiben kann (z.B. DDR-FF in den IOBs), dann muß man sie natürlich
instantiieren.

Grüße
Klaus

von T.M. (Gast)


Lesenswert?

Wenn man Elemente genau platzieren will, kommt man um Instanziierung von
Macros oft nicht herum. Meinetwegen BRAMs oder Multiplier. Macht das
Design dann zwar nicht unbedingt portabel, lässt sich aber manchmal
nicht vermeiden.

von ehde76 (Gast)


Lesenswert?

Hallo Klaus,

danke für die ausführliche Antwort, so ungefähr dachte ich mir das
schon. Das die Nutzung solcher Ps und Ms das Design nicht gerade
herstellerunabhängig macht ist mir klar, spielt aber in meinem Fall
überhaupt keine Rolle.

Gruß ehde76

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.