Forum: FPGA, VHDL & Co. GAL22V10 Latch mit Taster - Logik


von Wolfram Fischer (Gast)


Lesenswert?

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

von holger (Gast)


Lesenswert?

Im Prinzip ist das ein Lauflicht;)

von Wolfram Fischer (Gast)


Lesenswert?

naja, so ähnlich..
leider gibt es nur die Möglichkeit mit einem Taster, so daß dies die 
einzige Variante sein kann, daß jeder Ausgang nur alleine aktiv wird.
Es dürfen nicht mehrere Ausgänge gleichzeitig an sein.

von Wolfram F. (mega-hz)


Lesenswert?

hat denn keiner eine idee, wie man das mit dem taster lösen könnte?

mfg,
Wolfram.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Wolfram Fischer schrieb:
> hat denn keiner eine idee, wie man das mit dem taster lösen könnte?
Entprellung

Und blöderweise hast du nur noch 2 Flipflops und einen recht schnellen 
Takt übrig, so dass eine Tasterentprellung mit den verbleibenden 2 
Flipflops im GAL nicht mehr sinnvoll möglich ist. Insbesondere, wenn 
hinterher noch eine Flankenerkennung folgen muss...


Mit sowas bekommst du bei einem Tastendruck incl. Prellen dann gern ein 
paar Glitches am CLK_OUT:
CLK_OUT    =  /D406 * /PHI0 * ENABLE
           +  /KEY  * /PHI0;

von Wolfram F. (mega-hz)


Lesenswert?

hi,
das entprellen mach ich mit nem rc-glied, sollte kein problem sein..
2 freie FlipFlops?
reichen die nicht zur umschaltungvon wenigstens out0 und out1?

gruß,
wolfram.

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.