Autor Thema: GAL Programmierung der einstieg  (Gelesen 8616 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline FrankR

  • Benutzer
  • Beiträge: 24
  • Es gibt nichts Gutes, außer man tut es - Kästner
Re: GAL Programmierung der einstieg
« Antwort #40 am: Fr 20.08.2021, 18:21:56 »
Schon klar, aber die Frage war, welche Bedeutung das "!" an einer Pin-Bezeichnung im Abschnitt %PINS hat. Ist es dort einfach nur ein Namensbestandteil oder hat es dort bereits die Bedeutung von NOT? In Letzterem Fall frage ich mich, welche Auswirkungen das auf den Code hat.
KANDINSKY MUSIC PAINTER
Atari 1040STFM, SM 124, Ultrasatan

Offline Lukas Frank

  • Benutzer
  • Beiträge: 11.172
  • fancy Atari Musik anDA Dance "Agare Hinu Harukana"
Re: GAL Programmierung der einstieg
« Antwort #41 am: Fr 20.08.2021, 19:10:26 »
Die Bedeutung an den Pins und im Code ist der gleiche.

Offline tuxie

  • Benutzer
  • Beiträge: 6.714
  • Falcon! Milan! Schuetzt die Raubvoegel!
Re: GAL Programmierung der einstieg
« Antwort #42 am: Fr 20.08.2021, 20:30:31 »
Bedeutung ist NOT
Tschau Ingo


PC Intel i7 4820, 16gb quad @2400,Mac OS X El Capitan
http://tuxie.de http://hwbot.org/user/tuxie/

Offline FrankR

  • Benutzer
  • Beiträge: 24
  • Es gibt nichts Gutes, außer man tut es - Kästner
Re: GAL Programmierung der einstieg
« Antwort #43 am: Fr 20.08.2021, 22:35:29 »
Ok, Danke Euch beiden. Das hilft!

Gruß und Dank
Frank
KANDINSKY MUSIC PAINTER
Atari 1040STFM, SM 124, Ultrasatan

Offline FrankR

  • Benutzer
  • Beiträge: 24
  • Es gibt nichts Gutes, außer man tut es - Kästner
Re: GAL Programmierung der einstieg
« Antwort #44 am: Sa 21.08.2021, 15:32:00 »
Leider muss ich nochmal nerven. Folgendes File bekomme ich einfach nicht assembliert.

%IDENTIFICATION
   Adressdecoder fuer TOS 2.06

%TYP
   GAL16V8
   
%PINS
   A23  A22  A21       A20  A19  A18  RW  AS  ROM2  GND
   NC   CE   DTACK.T  NC   NC   NC   NC  NC  NC    VCC

%LOGIC
   CE = !RW *  ROM2 +
        !A23 * ROM2 +
        !A22 * ROM2 +
        !A21 * ROM2 +
         A20 * ROM2 +
         A19 * ROM2 +
         A18 * ROM2 +
         AS *  ROM2;
   DTACK.E = !RW + !A23 + !A22 + !A21 + A20 + A19 + A18 + AS;
   DTACK =   !RW + !A23 + !A22 + !A21 + A20 + A19 + A18 + AS;
   
%END

Der JEDI V0.45 sagt im Logfile
Fehler: 'Oder' in einer OE-Zuweisung.
File NICHT erfolgreich gescannt!

Ich würde das ja in UND umformulieren, dann müsste ich den Ausdruck aber Klammern setzen und negieren. Klammern versteht der JEDI aber offenbar nicht. Oben hieß es, dass ich die DATCK.E Zuweisung wie die DTACK Zuweisung formulieren soll.
Daher habe ich außerdem folgendes probiert:
   !DTACK.E = RW * A23 * A22 * A21 * !A20 * !A19 * !A18 * !AS;
   !DTACK =   RW * A23 * A22 * A21 * !A20 * !A19 * !A18 * !AS;

Da kommt er beim Assemblieren deutlich weiter, schreibt aber einen anderen Fehler ins Logfile
' OLMC 6:
 !DTACK.OE    = RW * A23 * A22 * A21 * !A20 * !A19 * !A18 * !AS;
 !DTACK       = RW * A23 * A22 * A21 * !A20 * !A19 * !A18 * !AS;
' OLMC 7:
 CE           = !RW * ROM2
              + !A23 * ROM2
              + !A22 * ROM2
              + !A21 * ROM2
              + A20 * ROM2
              + A19 * ROM2
              + A18 * ROM2
              + AS * ROM2;

----------------------------------------------------------------------
Error: Es konnte kein GAL-Modus gefunden werden!
Mode 'combinational' nicht realisierbar, weil ein Ausgang den 'tristate'-Mode ben”tigt.
Mode 'registered' nicht realisierbar, Signal 'A23' wird nicht rckgekoppelt!
Mode 'tristate' nicht realisierbar, Ausgang 'CE' braucht mehr als 7 Zeilen!
GAL-Logik NICHT erfolgreich aufgearbeitet!

Was mache ich falsch?
KANDINSKY MUSIC PAINTER
Atari 1040STFM, SM 124, Ultrasatan

Offline Lukas Frank

  • Benutzer
  • Beiträge: 11.172
  • fancy Atari Musik anDA Dance "Agare Hinu Harukana"
Re: GAL Programmierung der einstieg
« Antwort #45 am: Sa 21.08.2021, 18:39:54 »
Ich habe keine Ahnung aber muss es nicht so aussehen?

!DTACK.E = VCC;
   !DTACK =   RW * A23 * A22 * A21 * !A20 * !A19 * !A18 * !AS;

Offline FrankR

  • Benutzer
  • Beiträge: 24
  • Es gibt nichts Gutes, außer man tut es - Kästner
Re: GAL Programmierung der einstieg
« Antwort #46 am: Sa 21.08.2021, 21:55:43 »
Kann ich ja mal ausprobieren. Allerdings meinte Ingo in #33, dass DTACK.E dieselbe Gleichung bräuchte wie DTACK. Aber evtl. habe ich da auch etwas missverstanden…
KANDINSKY MUSIC PAINTER
Atari 1040STFM, SM 124, Ultrasatan

Offline FrankR

  • Benutzer
  • Beiträge: 24
  • Es gibt nichts Gutes, außer man tut es - Kästner
Re: GAL Programmierung der einstieg
« Antwort #47 am: Mi 25.08.2021, 00:12:31 »
@tuxie : könntest du zu dem Vorschlag !DTACK.E = VCC etwas sagen. Es kommt mir nun doch so vor, dass der Ausgang dadurch immer aktiv ist, also entweder high oder low ist aber nie hochohmig. Ich kanns gerade nicht ausprobieren.
KANDINSKY MUSIC PAINTER
Atari 1040STFM, SM 124, Ultrasatan

Offline tuxie

  • Benutzer
  • Beiträge: 6.714
  • Falcon! Milan! Schuetzt die Raubvoegel!
Re: GAL Programmierung der einstieg
« Antwort #48 am: Mi 25.08.2021, 10:52:14 »
Damit ist der Ausgang immer Aktiv ! Man muss ja schon definieren wann der Ausgang eingeschaltet werden soll.
@Lukas Frank schau doch mal in das Gal listing was wir hin und her gesendet haben!

So sollte das Listing übrigens aussehen

/CE = /AS * A23 * A22 * A21 * /A20 * /A19 * /A18
       + /ROM2;

RW brauchst du nicht verknüpfen!!
Und wenn du in der Pindefinition schon /CE definierst anstatt CE dann kannst du das / auch weglassen bei der Gleichung.
Tschau Ingo


PC Intel i7 4820, 16gb quad @2400,Mac OS X El Capitan
http://tuxie.de http://hwbot.org/user/tuxie/

Offline FrankR

  • Benutzer
  • Beiträge: 24
  • Es gibt nichts Gutes, außer man tut es - Kästner
Re: GAL Programmierung der einstieg
« Antwort #49 am: Mi 25.08.2021, 20:42:41 »
Besten Dank Ingo! Wenn meine 4-Mbit Eproms für umschaltbares TOS angekommen sind, werd ich das austesten.

Bzgl. dem DTACK Signal hatte ich inzwischen daran gedacht, es mir einfach zu machen und eine Schottky Diode hinter das GAL zu setzen anstelle Verwendung des tristate. Müsste auch gehen.
KANDINSKY MUSIC PAINTER
Atari 1040STFM, SM 124, Ultrasatan

Offline pakman

  • Benutzer
  • Beiträge: 96
Re: GAL Programmierung der einstieg
« Antwort #50 am: Do 26.08.2021, 01:23:55 »

' OLMC 6:
 !DTACK.OE    = RW * A23 * A22 * A21 * !A20 * !A19 * !A18 * !AS;
 !DTACK       = RW * A23 * A22 * A21 * !A20 * !A19 * !A18 * !AS;
' OLMC 7:
 CE           = !RW * ROM2
              + !A23 * ROM2
              + !A22 * ROM2
              + !A21 * ROM2
              + A20 * ROM2
              + A19 * ROM2
              + A18 * ROM2
              + AS * ROM2;

----------------------------------------------------------------------
Error: Es konnte kein GAL-Modus gefunden werden!
Mode 'combinational' nicht realisierbar, weil ein Ausgang den 'tristate'-Mode ben”tigt.
Mode 'registered' nicht realisierbar, Signal 'A23' wird nicht rckgekoppelt!
Mode 'tristate' nicht realisierbar, Ausgang 'CE' braucht mehr als 7 Zeilen!
GAL-Logik NICHT erfolgreich aufgearbeitet!

Was mache ich falsch?

Ein GAL hat gewisse Beschränkungen..

Im Modus 'combinational' können die Gleichungen bis zu 8 Oder-Terme haben.
Dann sind aber alle Ausgänge immer aktiv.

Im Modus 'tristate' dürfen die Gleichungen max. 7 Oder-Terme haben.
Die achte Gleichung wird nämlich jeweils für den Enable-Term verwendet.

In o.g. Gleichungen hast Du definiert:
- DTACK ist ein Tristate-Ausgang -> GAL-Modus müsste dazu 'tristate' sein
- CE hat 8 Oder-Terme -> GAL-Modus müsste dazu 'combinational' sein
Beides gleichzeitig geht aber nicht, deshalb die Fehlermeldung!

Abhilfe: CE umschreiben, wie von Tuxie vorgeschlagen:
/CE = /AS * A23 * A22 * A21 * /A20 * /A19 * /A18
    + /ROM2;

Und DTACK sollte so aussehen:
DTACK.OE    = RW * A23 * A22 * A21 * !A20 * !A19 * !A18 * !AS;
/DTACK      = GND; 'falls unter %PINS  DTACK steht
Es geht auch:
DTACK.OE    = RW * A23 * A22 * A21 * !A20 * !A19 * !A18 * !AS;
DTACK       = VCC; 'dann muss unter %PINS  /DTACK stehen
PAK68/3 54MHz mit Flash-ROMs, FRAK/1 16 MByte, Panther/2 mit ATI Mach32
CompactFlash Adapter (modifizierter Panther/1)

Offline FrankR

  • Benutzer
  • Beiträge: 24
  • Es gibt nichts Gutes, außer man tut es - Kästner
Re: GAL Programmierung der einstieg
« Antwort #51 am: Do 26.08.2021, 11:13:35 »
Hey super, das muss ich ja nur noch abschreiben  :) ich berichte, wenn alles fertig ist. Vielen Dank auch für die Erläuterung der Begrenzungen des GALs!
Gruß und Dank
Frank
KANDINSKY MUSIC PAINTER
Atari 1040STFM, SM 124, Ultrasatan

Offline artik-wroc

  • Neuer Benutzer
  • Beiträge: 3
Re: GAL Programmierung der einstieg
« Antwort #52 am: Sa 28.08.2021, 19:29:03 »
Und wie ist eine solche Gleichung zu verstehen, bei der Pin 22 auf beiden Seiten der Gleichung steht?
!P22      = !P22 * P5
          + !P22 * P4

Offline FrankR

  • Benutzer
  • Beiträge: 24
  • Es gibt nichts Gutes, außer man tut es - Kästner
Re: GAL Programmierung der einstieg
« Antwort #53 am: Do 16.09.2021, 18:23:17 »
Und DTACK sollte so aussehen:
DTACK.OE    = RW * A23 * A22 * A21 * !A20 * !A19 * !A18 * !AS;
/DTACK      = GND; 'falls unter %PINS  DTACK steht

Das hat nun leider nicht geklappt. Unter %PINS steht "DTACK" (an Pin 13) und die Logik habe ich ebenfalls einfach abgknipst.
Pin 13 geht offenbar unter gar keiner Bedingung auf low.
Gibt es noch irgendwelche speziellen Beschaltungen, die ich am GAL vornehmen muss um den tristate Modus nutzen zu können? Oder habe ich doch noch irgendetwas missverstanden?
Hier der Code
%IDENTIFICATION
   Adressdecoder fuer TOS 2.06

%TYP
   GAL16V8
   
%PINS
   ROM2 RW A18   A19 A20 AS A21 A22 A23 GND
   NC   NC DTACK CE  NC  NC NC  NC  NC  VCC

%LOGIC
   !CE = !AS * A23 * A22 * A21 * !A20 * !A19 * !A18 + !ROM2;
   DTACK.OE = RW * A23 * A22 * A21 * !A20 * !A19 * !A18 * !AS;
   !DTACK = GND;
   
%END

Ich werde es jetzt erstmal so lösen, dass ich den combinational Mode nehme und hinter Pin 13 eine Schottky-Diode baue, aber interessieren würde es mich schon, warum das nicht funzt

Viele Grüße
Frank
KANDINSKY MUSIC PAINTER
Atari 1040STFM, SM 124, Ultrasatan

Offline FrankR

  • Benutzer
  • Beiträge: 24
  • Es gibt nichts Gutes, außer man tut es - Kästner
Re: GAL Programmierung der einstieg
« Antwort #54 am: Do 16.09.2021, 18:39:43 »
Oh verflixt. Hätte ich wohl besser
DTACK = GND;Oder
!DTACK = VCC;schreiben sollen, damit ich ein low bekommen, wenn die OE Bedingung erfüllt ist?
KANDINSKY MUSIC PAINTER
Atari 1040STFM, SM 124, Ultrasatan