VHDL generic

Gast #201790
Lesenswert?

Hi Leuts,
Ich brauche ein und-Gatter entity von dem ich Instanzen mit einer
beliebigen Anzahl von Eingängen erstellen kann.
Also irgendwie sowas:

entity g_and is
  generic(numInp: positive := 2);
  port (
    inp : in std_logic_vector(numInp downto 1);
    outp : std_logic_vector
  );
end entity;

architecture arch_g_and of g_and is
begin
  -- und nu ?
end architecture;


Nur, wie schreib ich die architecture ?
Gast #201794
Lesenswert?

Das hab ich auch schon versucht. Daraus wird leider nur ein einziges
und-Gatter mit 2 Eingängen. Der eine Eingang ist mit einem Eingang der
entity Verbunden und in den anderen ist der Ausgang des und-Gatters
zurückgekoppelt; also nicht ganz die gewünschte Funktion ;).
Die "temp" Variable bleibt ein einziges Signal, welches in jedem
Schleifendurchlauf mit sich selbst und dem nächsten Eingang ver-und-et
wird :(.
Meinen strukturellen Ansatz könnte man verbessern, indem man nicht wie
jetzt pro und-Gatter einen einzigen weiteren eingang verrechnet,
sondern irgendwie einen Binärbaum aufbaut.. so ein Käse!

Sowas muss es doch fertig geben, oder wie ver-und-et ihr alle bits
eines Vektors mit variabler Breite ?
Gast #201795
Lesenswert?

Sehe ich nicht so. Wenn ich hingehe und width = 5 setze, das compiliere
und mir die RTL-Schematik ansehe, sehe das im Anhang. Das ist für
meinen Geschmack ein AND mit 5 Eingängen. Du solltest eine Variable für
Temp nehmen, kein Signal.

Gruß Henrik
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren