Gast
#2824542
Hallo,
für ein Projekt benötige ich ein Latch, welches 8 Datenleitungen beim
Zugriff auf eine bestimmte Adresse (D406) zwischenspeichert, welches
aber auch per Taster manuell gesetzt werden kann.
Wenn der Taster gedrückt wird, soll OUT_D0 gesetzt werden, wird der
Taster erneut gedrückt, soll OUT_D1 gesetzt und OUT_D0 gelöscht werden.
Wird der Taster erneut gedrückt, soll OUT_D2 gesetzt und OUT_D0/D1
gelöscht werden. Das ganze weiter bis OUT_D7.
Diese Taster-Logik raubt mir schon seit Tagen die Nerven, ich komme
einfach nicht weiter.
Vielleicht hat jemand eine Idee dazu?
Leider sind die vergebenen PINs und Signale alle festgelegt, so daß es
keine Änderung an diesen geben darf.
Da die Latch-Funktion im GAL per Register erfolgt, bekommt das GAL
seinen Clock-Impuls bei jedem Zugriff auf die Adresse bzw. beim
Tastendruck.
Hier das Listing:
CHIP DUALMOD1 GAL22V10 REGISTERED_MODE
CLK_IN
PHI0 (ist ein 1.77Mhz Clock)
D406
D0
D1
D2
D3
D4
D5
D6
D7
GND
ENABLE
KEY
OUT_D0
OUT_D1
OUT_D2
OUT_D3
OUT_D4
OUT_D5
OUT_D6
OUT_D7
CLK_OUT
VCC
CLK_OUT = /D406 * /PHI0 * ENABLE
+ /KEY * /PHI0;
/OUT_D0 := /D406 * /D0
+ /KEY * ?????;
/OUT_D1 := /D406 * /D1
+ /KEY * OUT_D2;
/OUT_D2 := /D406 * /D2
+ /KEY * OUT_D3;
/OUT_D3 := /D406 * /D3
+ /KEY * OUT_D4;
/OUT_D4 := /D406 * /D4
+ /KEY * OUT_D5;
/OUT_D5 := /D406 * /D5
+ /KEY * OUT_D6;
/OUT_D6 := /D406 * /D6
+ /KEY * OUT_D7;
/OUT_D7 := /D406 * /D7
+ /KEY * OUT_D0;
Vielen Dank schonmal im Voraus!
Gruß,
Wolfram