hi, nach stundenlager Fehlersuche und googlen finde ich einfach keine Lösung. Bei der Simulation zeigt er die richtigen Werte für den Vektor E an, jedoch sind die des Ausgangsvektors die Werte der when others (< when others => A <= x"E"; >) Zuweisung. Für einen Tipp wäre ich sehr Dankbar... Grüße dominic
wie gut das nieman weiss wovon du überhaupt redest. nen bissl quelltext und vielleicht nen screenshot vonner simulation oder so was den fehler ein wenig näher dokumentiert wäre schön.
dein modul, welches du testen möchtest hat dummerweise keinen eingang. also gibst die dein "E" signal aus der testbench auch nicht bis zu deinem impulsgenerator durch. da das interne signal "E" im impulsgenerator nur angelegt aber nicht initialisiert wird hat es keinen der werte, die in der state machine abgefragt werden. deswegen springt sie immer in den OTHERS-Zweig. bei in die entity mal dein eingang mit ein und verbinde alles, dann könnte vielleicht auch was passieren. ;)
ah, das klingt alles sehr logisch :) , vielen Dank! Habe das gewünschte Ergebnis rausbekommen. Gibt es jedoch noch eine bessere Lsg., oder war das die Lsg. im Sinne deiner Antwort? Gibt es eventuell ein gutes Tutorial, wo die Siumulation etwas genauer erklärt (als in meine Buch: VHDL-Synthese von Reichard)?
So etwas wie globale Variablen in C gibt es in VHDL nicht. Die Entity ist die Schnittstelle in ein VHDL-Modul. Ausschliesslich über diese Signale kommuniziert deine Komponente mit der Aussenwelt. Bei dir soll im IMPULSGEN abhängig von E etwas zurückgegeben werden. Der Rück-Weg mit A geht über die Entity. Aber der Hin-Weg von E ist unvollständig: du definierst zwr ein E in der Testbench, du verwendest ein E im IMPULSGEN, aber die beiden sind nicht miteinander verbunden. Das hast du offenbar auch selber gemerkt und ein lokales Signal E im IMPULSGEN definiert. Richtig wäre aber ein [vhld] port ( E : in std_logic_vector(2 downto 0); A : out std_logic_vector... [/vhdl] mit der entsprechenden Verdrahtung über die port map.
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.