Forum: FPGA, VHDL & Co. Gal & ISP Logik (D-Latch beschreiben)


von Zinsmaier Michael (Gast)


Angehängte Dateien:

Lesenswert?

Hi brauche für ein Schulprojekt dringend Hilfe

Vereinfacht gesagt geht es darum mit einem GAL (GAL22V10 15LP) einen
D-Latch zu simulieren. Soweit ich aus dem Datenblatt schlau werde
müsste das im RegisterMode mit aktive High am einfachsten gehen.

(Datenblatt im Anhang)

Die Frage ist jetzt wie sieht das in ISP Logik und Beschaltung aus?

Wenn man auf den I/CLK einen externen Clock hängt und
Pin Nr 2 als Eingang des simulierten D-Latchs sieht während z.B.
Pin Nr 14 als Ausgang verwendet wird wie muss ich das dann in ISP Logik
beschreiben?


Hier mal ein erster Entwurf:

DECLARATIONS

E,A PIN 2,14 ISTYPE 'buffer,com';

Equations

A = E;

END;


funktioniert das so oder muss ich irgendwie den Clock noch in den
Quelltext einbinden und wie stell ich sicher das beim schreiben des
GALs auch wirklich der Registered Mode mit aktive High gewählt wird?

Vielen Dank im Voraus für eure Hilfe
Michael

von tobi (Gast)


Lesenswert?

Das würde so nicht funktionieren, aber der Ansatz ist schonmal nicht
schlecht. Ich habe mal Beispielcode geschrieben.



module mac
title 'D latch demo'

      m1      device 'P16V8'                     ;
      D,wr         pin                           ;
      out          pin   istype 'buffer'         ;
      !oe          pin                           ;
equations ;
out.oe = oe ;
when wr ==  1 THEN out = D else out = out;

Die Simulation hat jedenfalls funktioniert mit dem Code


Simulate EZ-ABEL 4.30  Date: Sun Apr 10 12:01:48 19:5
Fuse file: 'mac.tt1'  Vector file: 'mac.tmv'  Part: 'PLA'
               o
         w o   u
       D r e   t

V0001  0 0 0   L
V0002  0 0 0   L
V0003  1 0 0   L
V0004  1 1 0   H
V0005  1 0 0   H
V0006  0 0 0   H
V0007  0 1 0   L
V0008  0 0 0   L
V0009  0 0 0   L
V0010  0 0 0   L

10 out of 10 vectors passed.

G. Tobi

von tobi (Gast)


Lesenswert?

Sorry hatte noch einen Fehler drin.
Zeile:
 out          pin   istype 'buffer'         ;
muss ersetzt werde durch:
Zeile:
 out          pin   istype 'buffer,invert'         ;

dann erstellt das programm auch die jedec

von Zinsmaier Michael (Gast)


Lesenswert?

Hi,
erst mal danke für die Antwort aber ich fürchte ich peils nicht (:
Das Problem ist das wir das ganze Thema in der Schule mit DesignExpert
durchgenommmen haben ich schätz mal du verwendest eine andere Sotware
(oder eine andere Version) jedenfalls ergeben sich für mich ein paar
fragen.

ok also oe heißt denk ich output enabel und is der Clock ?
out der Ausgang?
D der Daten Eingang?
aber was ist wr? (ich mein zumindest in unserer Formelsammlung hat ein
D-Latch nur Clock,In,Out und das wars)

welche dieser Signale sind Intern welche an Pins gebunden?
heißt das ! vor oe das du den Clock invertierst?

und nicht zuletzt raff ich die Simulation nicht (:
äh ich mein is das nicht irgendwie unlogsich

V0001  0 0 0   L
V0006  0 0 0   H
...

aber ok ich weiß auch nicht wirklich was da durchgeprüft wird.

oh und eh ichs vergess was bewirkt buffer,invert ich kenn nur
buffer,com und buffer,reg

Naja das waren jetzt viele Fragen und die meisten davon sind
wahrscheinlich totale Anfängerfragen /: aber was will man machen.

Ich hoff mal das macht dir nicht zuviel Arbeit und du kannst die Fragen
beantworten.

Gruß Michael

von tobi (Gast)


Lesenswert?

Kein Problem,

Es gibt zwei Arten von D- Flipflops.

1. Variante:

getaktet einzustandgesteuert englische Bezeichnung: Latch danach
hattest du gefragt:
Dateneingang D übernimmt die Daten bei high Pegel von Clk oder wie bei
mir bezeichnet "wr"  und speichert sie intern ab, sowie übergibt sie
nach einer gewissen internen Verzögerungszeit in Abhängigkeit von dem
verwendeten Baustein an den Ausgang des Flipflops. Bei Low Pegel von
clk
oder "wr" bleibt der interne Zustand des Flipflops erhalten.
               o
         w o   u
       D r e   t
V0003  1 0 0   L
V0004  1 1 0   H
V0005  1 0 0   H
V0006  0 0 0   H
Das output enable !oe sagt nur aus, dass wenn am Eingangspin !oe Low
d.h. 0 Volt anliegt der Flip Flop auf hochohmig schaltet man sagt auch
der Flip Flop hat Tri-State Ausgänge also 3 Zustände Low = L = 0 Volt
High = H = 1 Volt und Z = hochohmig.

2. Variante

getaktet einflankengesteuert.

Verhält sich genauso wie Variante 1 nur das die Daten bei Übergang der

Taktflanke des Clk Signals von Logisch 0 auf Logisch 1 wechselt.
Ich bezeichne die Pins meiner Bausteine dann mit clk anstatt mir wr
(engl. abkürzung von write), so weiss ich sofort um welchen Typ von
Flip Flop es sich handelt, aber das kann jeder so machen wie er will

Hier noch die Anwort auf die Frage mit den Pins

                         ==== P16V8C Chip Diagram ====
                                    P16V8C

                         +---------\       /---------+
                         |          \     /          |
                         |           -----           |
                       D |  1                    20  | Vcc

                         |                           |
                      wr |  2                    19  |

                         |                           |
                      oe |  3                    18  | !out

                         |                           |
                         |  4                    17  |

                         |                           |
                         |  5                    16  |

                         |                           |
                         |  6                    15  |

                         |                           |
                         |  7                    14  |

                         |                           |
                         |  8                    13  |

                         |                           |
                         |  9                    12  |

                         |                           |
                     GND | 10                    11  |

                         |                           |
                         |                           |
                         `---------------------------'

               o
         w o   u
       D r e   t

V0001  0 0 0   Z
V0002  0 0 0   Z
V0003  1 0 0   Z
V0004  1 1 1   H
V0005  1 0 1   H
V0006  0 0 1   H
V0007  0 1 1   L
V0008  0 0 1   L
V0009  0 0 1   L
V0010  0 0 1   L
10 out of 10 vectors passed.
Verdeutlicht nochmal die Sache mit der Wirkung von oe

Das Ausrufezeichen sagt, das du dir die Pegel aus der Simulation des
out signal nochmal invertiert denken musst.

Warum fängt euer Lehrer gleich mit Programmierbarer Logik an, ohne euch
erst mal die Grundlagen beizubringen. Das ganze Konzept ist doch von
vornherein zum Scheitern verurteilt. Geh mal einfach in die Bücherei
und Leih dir ein anständiges Buch über Digitalelektronik aus,
dann geht der Rest mit PLD und GAl wie von selbst glaub mir.

G. Tobi

von Zinsmaier Michael (Gast)


Lesenswert?

gut ich glaub jetzt hab ichs kapiert (:

allerdings bringts mir leider nich viel seufz ich brauch nämlich
eigentlich was zu einem flankengesteuerten. (in unserer Formelsammlung
is der so eingezeichnet als D-Latch)

aber davon mal abgesehen wieso hängst du die Daten auf Pin 1 da liegt
doch laut datenblatt der Clock (Datenblatt in meinem 1. Post
angehängt)?

also nochmal hier die genaue beschreibung von dem was ich brauch:

mit dem Gal 22V10 soll ein D-Latch simuliert werden. Dafür will ich
diesen Register Mode verwenden.

Also sollte das so laufen das auf den Pin 1 (auf den I/Clk) ein Clock
gelegt wird und der bei jeder Highflanke dann vom Eingang 1 an den
Ausgang 1 übernimmt.

deine Lösung so wie ich sie jetzt verstehe bringt mir leider nix weil
ich eben mit einer Flanke arbeiten muss und nicht mit einem Pegel und
weil ich diesen I/Clk verwenden sollte.




so und jetzt mal was ganz anderes Buch lesen: kannst du mir eins
empfehlen (will ja nicht auf ewig unschuldige Forennutzer
terrorisieren)

Gruß Michael

von tobi (Gast)


Lesenswert?

Gute Frage das mit den Pins, ich lasse das Programm entscheiden,welche
Pins er nehmen soll. Der Gal hat ja auch 3 verschiedene Modi, den
richtigen Mode wählt das Programm auch selbstständig aus, habe jetzt
mal 2 D-Flip Flops Taktuzstandgesteuert eingehakt, dann wählt der ganz
andere Pins aus. Ich konnte mich immer auf das Programm verlassen, da
ich bei Aufbauten auf dem Steckbrett immer das erwartete Ergebniss
hatte wenn die Simulation meinen Wünschen entsprach. Welche Pins
zugewiesen werden hängt wohl auch mit dem Mode zusammen, den der Gal
benutzen soll.

Hier mal das mit den 2 Latches

EZ-ABEL 4.30  -  Device Utilization Chart         Mon Apr 11 18:54:00
19:5

Demonstrates to difference between MACROs and declared equations

                         ==== P16V8C Chip Diagram ====



                                    P16V8C

                         +---------\       /---------+
                         |          \     /          |
                         |           -----           |
                      D1 |  1                    20  | Vcc
                         |                           |
                      D2 |  2                    19  |
                         |                           |
                      wr |  3                    18  | !out2
                         |                           |
                      oe |  4                    17  | !out1
                         |                           |
                         |  5                    16  |
                         |                           |
                         |  6                    15  |
                         |                           |
                         |  7                    14  |
                         |                           |
                         |  8                    13  |
                         |                           |
                         |  9                    12  |
                         |                           |
                     GND | 10                    11  |
                         |                           |
                         |                           |
                         `---------------------------'

                        SIGNATURE: N/A
♀
D- Flip Flops Taktflankengesteuert werden so erzeugt:

        m1      device 'P16V8';
      clk         pin                           ;
      Q          pin  19 istype 'reg,invert'    ;
      D          pin                            ;
equations ;
Q.clk = clk;
Q    := D  ;
 TEST_VECTORS ([clk  ,D     ]      -> [Q])
              [ .c.  ,0     ]      -> [.X.]   ;
              [ .c.  ,0     ]      -> [.X.]   ;
              [ .c.  ,1     ]      -> [.X.]   ;
              [ .c.  ,1     ]      -> [.X.]   ;
              [ .c.  ,1     ]      -> [.X.]   ;
              [ .c.  ,0     ]      -> [.X.]   ;
              [ .c.  ,0     ]      -> [.X.]   ;
              [ .c.  ,0     ]      -> [.X.]   ;
end

Hier mal für Gal22V10 erzeugt
                                   P22V10

                        +---------\       /---------+
                        |          \     /          |
                        |           -----           |
                    clk |  1                    24  | Vcc
                        |                           |
                      D |  2                    23  |
                        |                           |
                        |  3                    22  |
                        |                           |
                        |  4                    21  |
                        |                           |
                        |  5                    20  |
                        |                           |
                        |  6                    19  | !Q
                        |                           |
                        |  7                    18  |
                        |                           |
                        |  8                    17  |
                        |                           |
                        |  9                    16  |
                        |                           |
                        | 10                    15  |
                        |                           |
                        | 11                    14  |
                        |                           |
                    GND | 12                    13  |
                        |                           |
                        |                           |
                        `---------------------------'

                       SIGNATURE: N/A

Also du siehst, das Programm wählt schon die richtigen Pins selbst.

Q := D    ;   Bedeutet bei steigender Taktflanke Daten übernehmen
Q.clk = clk  ; Das Signal clk wird mit dem takteingang von Q verbunden

Habe schon lange nicht mehr Bücher über digitalelektronik gelesen, wenn
ich was nicht mehr weiss, dann benutze ich ein Nachschlagewerk von
Kories,Schmidt-Walter "Taschenbuch der Elektrotechnik", da stehen so
alle sachen drin die man so mal schnell Wissen will.
Ansonsten habe ich mir damals ein Six-Pack Bücher aus der Bibliothek
gegriffen, und die die ich nicht verstanden habe wieder zurückgegeben.
Kann dir da kein spezielles empfehlen.

G. Tobi

von Zinsmaier Michael (Gast)


Lesenswert?

Hi also ein großes Danke an dich!

Ich habs jetzt endgültig kapiert und weiß auch wie ich s anwenden muss
(:
mach mich dann mal an die Arbeit gg

Gruß Michael

von Weba (Gast)


Lesenswert?

Ist jemand noch erreichbar der mir genau in diesem Thema weiterhelfen 
kann ?

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.