22.09.2012 Aufrufe

Einführing in sequentielle Logik mit PLD - der HTL Steyr

Einführing in sequentielle Logik mit PLD - der HTL Steyr

Einführing in sequentielle Logik mit PLD - der HTL Steyr

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

state_diagram [Q2,Q1,Q0]<br />

State 0: IF Clr THEN 0 ELSE IF !Dir THEN 1 ELSE 5;<br />

" ich bef<strong>in</strong>de mich im Zustand 0 und bleibe bei Clr == 1 <strong>in</strong><br />

" diesem Zustand. Bei Clr == 0 wird <strong>in</strong> Abhängigkeit von Dir <strong>in</strong><br />

" den nächsten bzw. <strong>in</strong> den vorherigen Zustand gewechselt.<br />

State 1: IF Clr THEN 0 ELSE IF !Dir THEN 2 ELSE 0;<br />

State 2: IF Clr THEN 0 ELSE IF !Dir THEN 3 ELSE 1;<br />

State 3: IF Clr THEN 0 ELSE IF !Dir THEN 4 ELSE 2;<br />

State 4: IF Clr THEN 0 ELSE IF !Dir THEN 5 ELSE 3;<br />

State 5: IF Clr THEN 0 ELSE IF !Dir THEN 0 ELSE 4;<br />

"Ensure return from illegal state<br />

State 6: GOTO 0;<br />

State 7: GOTO 0;<br />

test_vectors 'Test Counter'<br />

( [Clk ,OE, Clr, Dir ] -> [Q2,Q1,Q0])<br />

[ Ck , 0, 1 , 0 ] -> 0;<br />

[ Ck , 0, 0 , 0 ] -> 1;<br />

[ Ck , 0, 0 , 0 ] -> 2;<br />

[ Ck , 0, 0 , 0 ] -> 3;<br />

[ Ck , 0, 0 , 0 ] -> 4;<br />

[ Ck , 0, 0 , 0 ] -> 5;<br />

[ Ck , 0, 0 , 0 ] -> 0;<br />

[ Ck , 0, 0 , 0 ] -> 1;<br />

[ Ck , 0, 0 , 1 ] -> 0;<br />

[ Ck , 0, 0 , 1 ] -> 5;<br />

[ 0 , 1, 0 , 0 ] -> Z;<br />

[ Ck , 0, 1 , 0 ] -> 0;<br />

test_vectors 'preload to illegal states'<br />

( [Clk ,OE, Clr,[Q2,Q1,Q0]] -> [Q2,Q1,Q0])<br />

"durch diese spezielle Anordnung können illegale Zustände simuliert werden.<br />

[ P , 1, 0 , !6 ] -> X;<br />

[ 0 , 0, 0 , X ] -> 6;<br />

[ Ck , 0, 0 , X ] -> 0;<br />

[ P , 1, 0 , !7 ] -> X;<br />

[ 0 , 0, 0 , X ] -> 7;<br />

[ Ck , 0, 0 , X ] -> 0;<br />

end<br />

Aufgaben<br />

1) Erweitern Sie den 3 bit Vorwärtszähler zu e<strong>in</strong>em 10 Bit Vorwärtszähler. Achten Sie auf richtige P<strong>in</strong>wahl -<br />

es könnte sich sonst <strong>mit</strong> den Produkttermen nicht ausgehen.<br />

2) Erweitern Sie das Schieberegister zu e<strong>in</strong>em 8 Bit Schieberegister <strong>mit</strong> parallelem Load.<br />

3) Erweitern Sie den 10Bit Zähler auch Aufgabe 1 zu e<strong>in</strong>em 10Bit Vorwärts/Rückwärts Zähler.<br />

4) Entwerfen Sie e<strong>in</strong> synchrones 4 Bit Schieberegister <strong>mit</strong> rechts- und l<strong>in</strong>ksschieben und parallelem load und<br />

Möglichkeit zur Kaskadierung.<br />

5) Entwerfen Sie e<strong>in</strong>e Schaltung (Handskizze) <strong>mit</strong> <strong>PLD</strong> GAL22V10 welche die Ausgabe e<strong>in</strong>es 8 Bit parallel<br />

A/D Wandlers <strong>in</strong> e<strong>in</strong> RS232 Signal konvertiert. Der dafür notwendige Takt ist vorhanden. E<strong>in</strong>e<br />

Pegelanpassung an RS232 Norm ist zu realisieren. Erstellen Sie auch die notwendigen<br />

Programmierunterlagen für die <strong>PLD</strong>'s.<br />

Beachten Sie, daß manche A/D Wandler e<strong>in</strong> "Start Conversion Signal" benötigen.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!