Está en la página 1de 4

5η αναφορά λογικής σχεδίασης

Δημήτρης Τριγκάκης – Στέλιος Μπαρμπεράκης – Νάντια Ιμπραχήμ


Μωχάμεντ Άλη

Μηχανές πεπερασμένων καταστάσεων

Σχεδιάζουμε ένα chip το οποίο χρησιμεύει για την λειτουργία των


flash/alarm σε αμάξι. Το αμάξι έχει έξι φώτα, 3 δεξιά , 3 αριστερά. Οι
είσοδοι είναι οι 00, 01 , 10, 11, όπου 00 σημαίνει ότι δεν αλλάζουμε
κατάσταση, 01 σημαίνει φλας δεξιά, 10 σημαίνει φλας αριστερά και 11
σημαίνει αλαρμ. Προφανώς, μπορούμε να θεωρήσουμε ξεχωριστά κάθε
μερια, δεδομένου ότι τα αλαρμ είναι σαν ταυτόχρονη ενεργοποίηση των
δύο φλας.

Αρχίζουμε με τους πίνακες για κάθε πλευρά του αυτοκινήτου:

L2 L1 L0 R2 R1 R0

Για το L2, έχουμε :

L2 L1 L0
L(αριστερ 00 01 11 10
ό φλας) 00 0 0 0 0
L2(πριν) 01 0 0 0 0
11 Χ Χ 0 Χ
10 0 0 1 Χ

Από απλοποίηση βλέπουμε ότι το L2 γράφεται L2(επόμενο) = L * (L2’) * L1

L1 L1(πριν) L0
L(αριστερ 00 01 11 10
ό φλας) 00 0 0 0 0
L2(πριν) 01 0 0 0 0
11 Χ Χ 0 Χ
10 0 1 1 Χ

Από απλοποίηση βλέπουμε ότι το L1 γράφεται L1(επόμενο) = L * (L2’) * L0

L0 L1(πριν) L0
L(αριστερ 00 01 11 10
ό φλας) 00 0 0 0 0
L2(πριν) 01 0 0 0 0
11 Χ Χ 0 Χ
10 1 1 1 Χ

Από απλοποίηση βλέπουμε ότι το L0 γράφεται L0(επόμενο) = L * (L2’)


Για το R2, έχουμε :

R0 R1 R2
R(αριστερ 00 01 11 10
ό φλας) 00 0 0 0 0
R0(πριν) 01 0 0 0 0
11 Χ Χ 0 Χ
10 0 0 1 Χ

Από απλοποίηση βλέπουμε ότι το R0 γράφεται R0(επόμενο) = R * (R0’) *


R1

R1 R1(πριν) R2
R(αριστερ 00 01 11 10
ό φλας) 00 0 0 0 0
R0(πριν) 01 0 0 0 0
11 Χ Χ 0 Χ
10 0 1 1 Χ

Από απλοποίηση βλέπουμε ότι το R1 γράφεται R1(επόμενο) = R * (R0’) *


R2

R2 R1(πριν) R2
R(αριστερ 00 01 11 10
ό φλας) 00 0 0 0 0
R0(πριν) 01 0 0 0 0
11 Χ Χ 0 Χ
10 1 1 1 Χ

Από απλοποίηση βλέπουμε ότι το R0 γράφεται R0(επόμενο) = R * (R0’)

Οι πίνακες κατασκευάστηκαν με διαφορετικό τρόπο λόγω συμμετρίας (το


L0 -> R2 & L2 -> R0 & L1 -> R1)

Στον κώδικα, έχουμε:

Πιν 1 το ρολόι, πιν 2 την μεταβλητή του αριστερού φλας, πιν 3 την
μεταβλητή του δεξιού φλας, πιν 14 L0, πιν 15 L1, πιν 16 L2, πιν 17 R0, πιν
18 R1, πιν 19 R2

Equations:

Είναι οι τύποι που δηλώσαμε πριν(χρήση := διότι οι έξοδοι εξαρτώνται


απ’τις προηγούμενες καταστάσεις του κυκλώματος):

L0 := /L2 * l
L1 := l * /L2 * L0

L2 := l * /L2 * L1

R0 := r * /R0 * R1

R1 := r * /R0 * R2

R2 := r * /R0

Simulation:

Θέλουμε τις μεταβλητές l και r οπότε:

Vector mode:=[l r]

Αρχικοποιούμε όλες τις μεταβλητές στο 0, καθώς και τις εξόδους που
επαναχρησιμοποιούνται απ’το κύκλωμα(preload f and set f):

Plrdf /L0 /L1 /L2 /R0 /R1 /R2

Setf /clk /l /r

Μετά θέλουμε το simulation να τρέξει για όλες τις τιμές των μεταβλητών
l (left) r (right) και να προχωρήσει και το κλοκ, οπότε:

For i:=0 to 3 do

Begin

Setf mode := i

For j:=0 to 3 do

Begin

CLOCKF clk

End

End

---- τέλος κώδικα

Προφανής η χρήση του chip στο κύκλωμα. Έχουμε εξόδους από 14 – 19


στα LED με την σειρά. Συνδέουμε τροφοδοσία και ground , καθώς και τις
εισόδους στα πιν 2,3(dip switches)... Στο πιν 1 συνδέουμε το κλοκ(button)

----------------------------------------------------Τέλος
Αναφοράς-------------------------------------------------

También podría gustarte