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 ?
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
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
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 ?
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.