Forum: FPGA, VHDL & Co. VHDL - Problem


von Beeblebrox (Gast)


Angehängte Dateien:

Lesenswert?

Ich möchte einen Nummernblock (10 Taster) mit einem XC9536 CPLD abfragen
und die gedrückte Zahl binär ausgeben. Dabei soll bei jedem Tastendruck
ein Interrupt erzeugt werden. Das funktioniert. Jetzt habe ich noch 4
weitere Taster (zum Einstellen von Dingen) die ebenfalls den Interrupt
erzeugen sollen. Signallaufzeiten sind mir nicht wichtig und eine CLOCK
soll möglichst nicht verwendet werden. Wenn ich den Source so wie er im
Anhang steht synthetisiere funktioniert der Teil mit dem Nummernblock
und Interrupt. Wenn ich den auskommentierten Block für die
Einstelltaster dazunehme wird kein Interrupt mehr generiert. Bin selbst
mit so einfachen Dingen überfordert. Warum geht das nicht ?

von Tobias O. (Gast)


Lesenswert?

Probiere mal eine defaultzuweisung "when others" wie unten angegeben.
Dann sollte es funktionieren. Ansonsten kann ich absolut keine Fehler
finden.

EINSTINT <= '0' when EINSTELL = "0000" else
        '1' when EINSTELL = "0001" else
        '1' when EINSTELL = "0010" else
        '1' when EINSTELL = "0100" else
        '1' when EINSTELL = "1000" else
                                '0' when others ;

von Beeblebrox (Gast)


Angehängte Dateien:

Lesenswert?

Habe das versucht (siehe Anhang). Das others Schlüsselwort benötigt
allerdings die with select Anweisung. Funktioniert auch nicht, d.h. die
Einstelltasten lösen jetzt einen Interrupt aus, aber die
Nummernblocktasten nicht.

von Beeblebrox (Gast)


Lesenswert?

*** FEHLER GEFUNDEN ! ***
Hatte einen Portpin vom uC am Eingang des CPLD als Ausgang definiert,
damit wurden ständig Interrupts ausgelöst. War also ein Fehler im
Programm des uC und nicht im CPLD ! Danke für die Hilfe !

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.