Fehler in einer GAL Logik

1, 2

Fehler 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.
:jumpie::jumpie::jumpie::jumpie::jumpie::jumpie::jumpie::jumpie::jumpie::jumpie::jumpie::jumpie:

@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 :beer: 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 :D 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