Fehler in einer GAL Logik
1,
2Fehler in einer GAL Logik
von Bernd » Mi 8. Aug 2007, 13:12
Hallo zusammen,
ich brauche Unterstützung bei einer GAL-Logik.
Am Ausgang soll ein Latch angesteuert werden bei der
die Datenübernahme mit steigender Flanke erfolgt.
Latch = /$D500 & /Phi2 & /WR & A4
Das Latch hält die Daten mit fallenden PHI2 Signal
(Zyklus beendet), Schreibzugriff und aktivierten
Speicherbereich $D500 mit aktiver A4 Adressleitung.
Leider klappt es nicht. Gibt es da ein Denkfehler von mir?
Viele Grüße,
Bernd
Re: Fehler in einer GAL Logik
von HiassofT » Mi 8. Aug 2007, 14:06
Hi Bernd!
Bernd hat geschrieben:Latch = /$D500 & /Phi2 & /WR & A4
Ich glaube, Du bist da mit Active-High und Active-Low Signalen etwas durcheinandergekommen (BTW: ich nehme an, mit /$D500 nimmst Du das CCTL Signal am Modulport).
Betrachten wir zuerst mal den Zyklus, bei dem gelatcht werden soll:
Select = /CCTL & PHI2 & /RW & A4.
Dieses Signal ist bei einem Schreibzugriff im 2. Teil des Zyklusses (PHI2 = high) auf logisch 1, sonst 0.
Wenn Du die Datenübernahme mit der steigenden Flanke des Signals machen willst, musst Du das ganze Signal invertieren. zB so:
Latch = /( /CCTL & PHI2 & /RW & A4). Dann hast Du ein Signal, das in der 2. Phase des Zugriffs 0 ist, ansonsten 1.
BTW: Was für ein Latch nimmst Du denn genau?
so long,
Hias
von Bernd » Sa 11. Aug 2007, 21:34
Hallo Hias,
deine Logik, Latch = /( /CCTL & PHI2 & /RW & A4) , würde ich gerne umsetzen.
Leider kann mein Gal Assembler keine () Klammer-Rechnung. Die Logik habe
ich soweit verstanden. Mit /$D500 meinte ich auch /CCTL und WR = RW.
Mals sehen was sich da so machen lässt.
Als Latch benutze ich ein 74LS374. Mit steigender Flanke werden die Daten übernommen.
Danke für die Hilfe,
Bernd
von Mathy » Sa 11. Aug 2007, 21:45
Hallo Bernd
Da gibt es doch Sätze damit man das Umrechnen bzw. vereinfachen kann, oder? Leider ist es schon zu lange her, aber der Satz von "Da Morgen" oder "Morgan" oder so ählich heisst einer dieser Sätze glaub ich. (Kann auch sein das der Satz in Deutschland eine anderen Namen hat. An der Uni habe ich damals bemerkt, das nicht alle Sätze überall den gleichen Namen haben.)
Tschüß
Mathy
von Bernd » Sa 11. Aug 2007, 22:00
Hallo Mathy,
es gibt da ein Lektüre : Der GAL-ante Weg zur programmierbaren Logik.. von Gerd Evers die ich nur empfehlen kann.
Die findest du hier
http://www.inf.fu-berlin.de/lehre/SS03/ ... en/gal.pdf
und ist Grundlektüre bei einem Studium.
Viel Grüße,
Bernd
von Mathy » Sa 11. Aug 2007, 22:14
Hallo Bernd
Hab' ich mir mal kurz angeschaut und gleich mal auf die Platte kopiert. Kann es sein das da ein Fehler drin ist? Bei "De Morgan" steht doch mehr oder weniger: a.b=/a+/b Wenn ich mich nach über 15 Jahren nicht irre sollte da doch stehen: a.b=/(/a+/b) oder?
Tschüß
Mathy
von Bernd » Sa 11. Aug 2007, 23:22
Mathy hat geschrieben:Hallo Bernd
Hab' ich mir mal kurz angeschaut und gleich mal auf die Platte kopiert. Kann es sein das da ein Fehler drin ist? Bei "De Morgan" steht doch mehr oder weniger: a.b=/a+/b Wenn ich mich nach über 15 Jahren nicht irre sollte da doch stehen: a.b=/(/a+/b) oder?
Tschüß
Mathy
Hallo Mathy,
die Frage kannst du dir recht leicht selbst beantworten. Setze jeweils für die Variablen a und b - 1 und 0 ein und rechne die Zustände selber um.
a.b=/a+/b kann nicht stimmen. Bei a.b=/(/a+/b) bin ich mir selbst nicht sicher. Wie war das nochmal, bei negativer Logik wird eine Und Verknüpfung zur Oder...... also stimmt deine Gleichung.
Viele Grüße,
Bernd
von Mathy » So 12. Aug 2007, 00:22
Hallo Bernd
Kontrolliert hatte ich das schon (mit 'ner Wahrheitstabelle). Problem war nur, das ich mir nicht sicher war ob was ich gemacht habe stimmt. Ich habe auch probiert deine Gleichung "/(/CCTL & Phi2 & /RW & A4)" zu vereinfachen. Aber was dann raus kommt sieht mir ziemlich unlogisch aus. Ich war in solchen Sachen mal richtig gut. Aber leider bin ich etwas aus der Übung gekommen.
Tschüß
Mathy
von Mathy » So 12. Aug 2007, 00:45
Hallo Bernd
Du wirst es nicht glauben. Ich habe jetzt deine Formel mit 'ner Wahrheitstabelle vereinfacht. Und es kommt genau das raus, was ich mit "De Morgan" rausbekommen habe.
/(/CCTL & Phi2 & /RW & A4)
wird nach Vereinfachung:
CCTL + /Phi2 + RW + /A4
Tschüß
Mathy (der sein Erfolgserlebniss geniesst)
von HiassofT » So 12. Aug 2007, 11:26
Mathy hat geschrieben:CCTL + /Phi2 + RW + /A4
Stimmt genau! Ein Term wird dadurch invertiert, daß die einzelnen Variablen invertiert werden und AND durch OR ersetzt wird (und umgekehrt).
Meistens unterstützt die GAL-Software von sich aus schon Active Low Signale. In PALASM deklariert man dazu einfach in der Pin-Zuordnung das Signal entsprechend. zB:
- Code: Alles auswählen
PIN 1 PHI2 COMBINATORIAL ; INPUT
PIN 2 /CCTL COMBINATORIAL ; INPUT
...
PIN 22 /LATCH COMBINATORIAL ; OUTPUT
Dadurch wird der Code viel einfacher lesbar und man kommt nicht ständig mit Low und High durcheinander. Der GAL Assembler kümmert sich dann um die richtige Umsetzung in die elektrischen Pegel (ausser man verwendet WinCupl, das ist dabei - zumindest früher - schön durcheinandergekommen und hat ein falsches JEDEC File gebaut).
so long,
Hias
von mega-hz » So 12. Aug 2007, 20:01
leider nicht beim GDS-Win, da dürfen die "pins" nicht mehr negativ aktiv sein! :-Ä(
ein " / " vor der logik sollte aber das gleiche ergebnis bringen.
von HiassofT » Mo 13. Aug 2007, 13:03
mega-hz hat geschrieben:leider nicht beim GDS-Win, da dürfen die "pins" nicht mehr negativ aktiv sein! :-Ä(
Sehr seltsame Software... Hab' mir mal das Manual zu GDS 3.5 (DOS) durchgesehen, da ging's noch.
ein " / " vor der logik sollte aber das gleiche ergebnis bringen.
Stimmt. In den Beispieldateien (aus dem gdswindemo.zip) sieht man einige solche Zeilen. So müsste es auch gehen:
- Code: Alles auswählen
/LATCH = /CCTL & PHI2 & /RW & A4
BTW: In den Beispielen werden auch Terme geklammert. Bernd: welche Software nimmst Du? Die gleiche wie Wolfram?
so long,
Hias
von Bernd » Di 14. Aug 2007, 00:21
Hallo Hias,
auch ich benutze den GDSWin Assembler. Die Logik an den Pins lassen sich leider nicht negieren. Mit der Dos Version geht es aber.
Damit habe ich die MMU neu übersetzt und auf ein GAL programmiert. Dieses arbeitet seitdem in meinem 800XL.
Jetzt erst einmal DANKE-DANKE-DANKE an Mathy und Hias.












@Mathy: Deine Umrechnung ist perfekt!
Meine neue Logik läuft jetzt und das Beste daran ist, ich komme ohne ein einziges TTL aus.
Auf der JHV zeige ich das Ergebnis und da wartet dann noch ein Bierchen

auf euch beide.
Viele Grüße,
Bernd
von Mathy » Di 14. Aug 2007, 00:50
Hallo Bernd
Ich bin kein Biertrinker. Das jetzt alles funktioniert ist toll. Und wenn Du noch mal was hast was umgerechnet werden muss ...
Tschüß
Mathy
von Bernd » Di 14. Aug 2007, 01:01
Mathy hat geschrieben:Hallo Bernd
Ich bin kein Biertrinker. Das jetzt alles funktioniert ist toll. Und wenn Du noch mal was hast was umgerechnet werden muss ...
Tschüß
Mathy
Komm ich

gerne darauf zurück,
Bernd
von Bernd » Do 6. Sep 2007, 10:35
Hi,
ich habe wieder ein Problem und brauche Hilfe.
Wie kann ich einen Synchronausgang eines GAL16V8 "asynchron" zurücksetzen?
/LATCH = /CCTL & PHI2 & /RW & A4
A0 := D0
A0 soll unabhängig vom Latch zurückgesetzt werden.
Beim 22V10 gibt es dazu einen Asynchron-Rücksetz Befehl. Der fehlt beim 16V8.
Meine Idee sah wie folgt aus:
/LATCH = /CCTL & PHI2 & /RW & A4 & /Reset
+ Reset
A0 := D0 & /Reset
Leider klappt es so nicht.
Viele Grüße,
Bernd
von Bernd » Do 6. Sep 2007, 19:08
Hallöchen,
das Problem ist gelöst

. Ich umgehe die ganze Aktion und leite das Resetsignal
mit auf den Ausgang A0 um. Einziger Nachteil - der Einsprungvektor muss umgeleitet
werden um das Modul in Grundstellung zu bringen. 0->$D500
Bernd
von mega-hz » Fr 7. Sep 2007, 01:47
pssst, nicht verraten, daß es sich um ein Modul handelt!

Läuft Deine Reset-Logik nun?
von Bernd » Fr 7. Sep 2007, 16:56
mega-hz hat geschrieben:pssst, nicht verraten, daß es sich um ein Modul handelt!

Läuft Deine Reset-Logik nun?
Hallo Wolfram,
es handelt sich um ein, zwei - drei verschiedene Module.
Megacart ähnlich, XEG´s abschaltbar und ein Mix aus beiden.
Beim HAR Treffen am Sonntag bringe ich einige mit.
Bis dann,
Bernd
von mega-hz » Fr 7. Sep 2007, 21:54
ok, freu mich drauf!
Habe diesbezüglich auch ne ganz nette Idee...
bis Sonntach---
1,
2