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
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.