mikrocontroller.net

Forum: FPGA, VHDL & Co. VHDL generic


Autor: Philipp Helle (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Philipp Helle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
outp soll natürlich kein Vektor sein :)

Autor: Philipp Helle (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So, im weiteren Fortschreiten auf meinem Holzweg ist nun dies
herausgekommen. Jemand schaue es sich an und zeige mir wie es einfacher
geht. Danke,

Phil

Autor: Henrik (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Bin selbst noch nicht so ganz firm inder Materie. Mit erweiterbaren
Komponenten habe ich noch keine Erfahrung. Im Anhang siehst du meinen
"Schnell-Schuss". Keine Ahnung, ob der sich "Fitten" lässt.

Gruß Henrik

Autor: Philipp Helle (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Henrik (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Philipp Helle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah, geht ja doch :)
Dann hab ich beim ersten Versuch wohl mist gebaut.

danke,
Phil

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.