GAL simmulieren und programmieren

Hi,

ich werde wohl in Zukunft nicht drumrum kommen, GAL's einzusetzen. Hab mir jetzt mal Atmel WinCUPL runtergeladen und installiert. Jetzt wollte ich meine erste Entwürfe mal simulieren, allerdings klappt das hinten und vorne nicht. Hat jemand von euch eine funktionierende Beispieldatei, anhand derer ich die Funktion erforschen kann. Oder sonst ein paar tolle Links oder Infos (vorzugsweise in Deutsch)?

Danke Thomas Frey

--
bitte in der emailadresse "trash" durch "tfrey" ersetzen.
Reply to
Thomas Frey
Loading thread data ...

"Thomas Frey"

Welcher denn?

Bei den einfachsten schiebt man doch nur eine Zustandsfolgetabelle oder logische Gleichungen rein. Bei virtuellen Flip Flops muss man dann schauen... aber das ergibt sich ja automatisch durch die Folge.

Reply to
Makus Grnotte

"Thomas Frey"

Welcher denn?

Bei den einfachsten schiebt man doch nur eine Zustandsfolgetabelle oder logische Gleichungen rein. Bei virtuellen Flip Flops muss man dann schauen... aber das ergibt sich ja automatisch durch die Folge.

Warum willst du denn simulieren? Geht es dir um Laufzeitverhalten oder um die reine Funktion? wenns um reine Funktion geht dann lieber PSpice oder sowas nehmen.

Reply to
Makus Grnotte

Makus Grnotte schrieb:

Es geht mir einfach darum zusehen, ob mein "Programm" auch wirklich das macht, was es soll. Und ob der GAL auch wirklich in der Lage ist, das zu "berechnen". Ich weiss zwar, wie ein Blockschaltbild eines GAL's aussieht allerdings reicht meine fantasie nicht aus, mir vorzustellen, wie weit das reicht.

Hier mal eines meiner ersten versuche:

Name Name ; PartNo 00 ; Date 19.03.2005 ; Revision 01 ; Designer Engineer ; Company ; Assembly None ; Location ; Device G16V8 ;

/* *************** INPUT PINS *********************/ PIN 2 = A0; /* */ PIN 3 = A1; /* */ PIN 4 = Ax; /* */ PIN 5 = RD; /* */ PIN 6 = WR; /* */

/* *************** OUTPUT PINS *********************/ PIN 12 = LCD_EN; /* */ PIN 13 = LCD_RS; /* */ PIN 14 = LCD_RD; /* */ PIN 15 = WR1; /* */ PIN 16 = RD1; /* */ PIN 17 = RD2; /* */

LCD_EN = !Ax & !A1 & (!RD # !WR); LCD_RS = LCD_EN & A0; LCD_RD = LCD_EN & !RD;

WR1 = !(!Ax & A1 & !A0 & !WR);

RD1 = !(!Ax & !A1 & !A0 & !RD); RD2 = !(!Ax & !A1 & A0 & !RD);

--
bitte in der emailadresse "trash" durch "tfrey" ersetzen.
Reply to
Thomas Frey

Du willst wirklich zur Ansteuerung eines LCD einen GAL-Stromfresser einsetzen? Offensichtlich soll das Ding ja an irgendein Prozessorsystem, fällt Dir da keine elegantere Lösung ein? Als ich las, dass Du in der Zukunft GALs einsetzen willst, wollte ich Dich schon an Doc Brown verweisen, vielleicht darfst Du seine Zeitmaschine ja mal benutzen ;) Falls Du dennoch triftige Gründe hast: das da oben sieht so schlecht nicht aus, ob Dein Compiler/Assembler es versteht, kann ich Dir nicht sagen, als ich zuletzt GALs programmier habe, wollte der Assembler noch * als log.-UND, + für ODER usw. Aber im Grossen und Ganzen kommt es hin.

Reply to
Stefan Huebner

Stefan Huebner schrieb: hallo

Es gibt von Atmel auch GALs die weniger strom brauchen. Ausserdem ist das einfach mal ein Test zum ausprobieren :)

Was zum Beispiel? Natürlich bin ich für Alternativen offen. Eine handvoll Std. Logic IC's ist mMn auch nicht eleganter oder ökonomischer...

Der eingesetzte Prozessortyp passt auch dazu: ein nachkomme des legendären 8051 ;)

--
bitte in der emailadresse "trash" durch "tfrey" ersetzen.
Reply to
Thomas Frey

WinCupl hatte ich vor einiger Zeit auch mal ausprobiert, es dann aber bald wieder sein gelassen: Der Editor war sehr absturzfreudig und, das schlimmste, das Programm hat falschen Code generiert. IIRC trat der Bug bei Active-Low Outputs auf. Seither habe ich WinCupl nie wieder getestet.

Jetzt nehme ich für mein GALs den guten alten PALASM. Einfach als CHIP zB PALCE16V8 einstellen. Simulationen/Checks gehen auch recht einfach. zB:

SETF /A0 /A1 CHECK RD1 /RD2 SETF A0 CHECK /RD1 RD2

Beim Compilieren werden diese Checks automatisch überprüft, außerdem werden sie auch als Test-Vektoren ins JEDEC File geschrieben.

so long,

Hias

Reply to
Matthias Reichl

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.