ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

Σχετικά έγγραφα
ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων

Εργαστήριο Ψηφιακών Κυκλωμάτων

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Μηχανές Πεπερασμένων Καταστάσεων

Σχεδίαση Ψηφιακών Συστημάτων

ΗΥ220: Εργαστήριο σχεδίασης ψηφιακών κυκλωμάτων Χριστόφορος Κάχρης

HY430 Εργαςτήριο Ψηφιακών Κυκλωμάτων. 1 ΗΥ430 - Διάλεξθ 10θ - Μθχανζσ Ρεπεραςμζνων Κατάςταςεων

HY220 Pipelines and FSMs Χειμεριν Χειμερι ό Εξ άμη Εξ ν άμη ο

ΗΥ225 Οργάνωση Υπολογιστών. Εισαγωγή στη Verilog

Περιγραφή Κυκλωμάτων με χρήση της VHDL. Δομική περιγραφή και περιγραφή Μηχανών Πεπερασμένων Καταστάσεων

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 18: Διαδικασία Σχεδίασης Ψηφιακών Συστηµάτων - Επανάληψη

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 13: Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων (Κεφάλαιο 6.

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο Διάλεξη 8 η : Μηχανές Πεπερασμένων Κaταστάσεων σε FPGAs

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

Σχεδιασμός Ψηφιακών Συστημάτων

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

Μετρητής Ριπής ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ. Αναφορά 9 ης. εργαστηριακής άσκησης: ΑΦΡΟΔΙΤΗ ΤΟΥΦΑ Α.Μ.:

Ψηφιακή Λογική Σχεδίαση

Πρόγραμμα Μεταπτυχιακών Σπουδών «Πληροφορική και Εφαρμογές»

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Ανάλυση Ακολουθιακών Κυκλωμάτων 1

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Ακολουθιακός Κώδικας

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 Συµπληρωµατική ΔΙΑΛΕΞΗ 14: Περιγραφή Ακολουθιακών Κυκλωµάτων στη VHDL

ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων

Ελίνα Μακρή

Χ. Σωτηρίου. Σχήμα 1: Προτεινόμενο Πρόγραμμα Επαλήθευσης του ολοκληρωμένου Επεξεργαστή

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

Ψηφιακή Λογική Σχεδίαση

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

Ψηφιακά Κυκλώματα (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Ψηφιακή Σχεδίαση. Δρ. Μηνάς Δασυγένης Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Επιβεβαίωση ορθής λειτουργίας απλών ψηφιακών κυκλωμάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή

VERILOG. Γενικά περί γλώσσας

HY225 Οργάνωςη Τπολογιςτών

ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 15: Καταχωρητές (Registers)

VHDL για Σχεδιασµό Ακολουθιακών Κυκλωµάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. VHDL για Ακολουθιακά Κυκλώματα 1

26-Nov-09. ΗΜΥ 210: Λογικός Σχεδιασμός, Χειμερινό Εξάμηνο Καταχωρητές 1. Διδάσκουσα: Μαρία Κ. Μιχαήλ

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων

Περίληψη. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο Καθιερωµένα Γραφικά Σύµβολα. ΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο 2005

HY430 Εργαστήριο Ψηφιακών Κυκλωμάτων. Πολυπλέκτες Καμπύλη Παρέτο. Κωδικοποιητές/Από-κωδικοποιητές D FF

Εισαγωγή στη Verilog με το ISE

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Καταχωρητές 1

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

Χρονισμός και Απόδοση Υπολογιστικών Συστημάτων

Δημοκρίτειο Πανεπιστήμιο Θράκης Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών. Συστήματα VLSI. Πρόοδος Άνοιξη 2018

Τεχνικές σχεδιασμού μονοπατιών ολίσθησης

Ολοκληρωμένα Κυκλώματα

Σχεδίαση της Μονάδας Ελέγχου

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ (Τ.Ε.Ι.) ΚΡΗΤΗΣ Τµήµα Εφαρµοσµένης Πληροφορικής & Πολυµέσων. Ψηφιακή Σχεδίαση. Κεφάλαιο 5: Σύγχρονη Ακολουθιακή

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

ΗΥ-225. Verilog HDL. Τα βασικά...

Σειρά Ασκήσεων 11: Βασική FSM Ελέγχου του Επεξεργαστή

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Ακολουθιακή Λογική. Επιμέλεια Διαφανειών: Δ.

Σχεδίαση Ψηφιακών Συστημάτων

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Γλώσσα περιγραφής υλικού: Verilog

HY330 Ψηφιακά Κυκλώματα - Εισαγωγή στα Συστήματα VLSI. 1 ΗΥ330 - Διάλεξη 7η - Ακολουθιακά Κυκλώματα

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων

Ασύγχρονοι Απαριθμητές. Διάλεξη 7

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΣΧΟΛΗ ΟΙΚΟΝΟΜΙΑΣ, ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ

Καταχωρητές, Μετρητές και Ακολουθιακά Κυκλώματα

Σχεδίαση κυκλωμάτων με SystemVerilog: 2o μέρος

Περίληψη. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο Παράδειγµα: Καταχωρητής 2-bit. Καταχωρητής 4-bit. Μνήµη Καταχωρητών

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΥΛΙΚΟ ΚΑΙ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Ενότητα 1. Λογικής Σχεδίασης. Καθηγητής Αντώνης Πασχάλης

100 ΕΡΩΤΗΣΕΙΣ ΜΕ ΤΙΣ ΑΝΤΙΣΤΟΙΧΕΣ ΑΠΑΝΤΗΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ

HY130 Ψηφιακή Σχεδίαση

Οδηγίες εγκατάστασης και χρήσης του Quartus

Κεφάλαιο 7 ο. Γ. Τσιατούχας. VLSI Technology and Computer Architecture Lab. Ακολουθιακή Λογική 2

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Συντρέχων Κώδικας

Κεφάλαιο 10 ο. Γ. Τσιατούχας. VLSI Systems and Computer Architecture Lab. Ακολουθιακή Λογική 2

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων 15/11/2010. Σχεδιασμός Ακολουθιακών Κυκλωμάτων 1

Καταχωρητές,Σύγχρονοι Μετρητές και ΑκολουθιακάΚυκλώματα

Απόδειξη Ισοδυναμίας Συναρτήσεων

Εργαστήριο Ψηφιακών Κυκλωμάτων. Χειμερινό Εξάμηνο

Ελίνα Μακρή

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων

Λογική Σχεδίαση Ι - Εξεταστική Φεβρουαρίου 2013 Διάρκεια εξέτασης : 160 Ονοματεπώνυμο : Α. Μ. Έτος σπουδών:

Πανεπιστήμιο Πατρών. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών

K24 Ψηφιακά Ηλεκτρονικά 10: Ακολουθιακά Κυκλώματα

K24 Ψηφιακά Ηλεκτρονικά 9: Flip-Flops

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

Παράρτηµα Γ. Τα Βασικά της Λογικής Σχεδίασης. Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση

Μικροηλεκτρονική - VLSI

Ψηφιακή Σχεδίαση Ενότητα 10:

Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II

Σχεδίαση Ψηφιακών Συστημάτων

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ

Άσκηση 3 Ένα νέο είδος flip flop έχει τον ακόλουθο πίνακα αληθείας : I 1 I 0 Q (t+1) Q (t) 1 0 ~Q (t) Κατασκευάστε τον πίνακα

ΚΑΣΣΙΑΝΟΣ ΜΕΛΑΝΙΤΗΣ. Αποκωδικοποιητής ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ. Αναφορά 8 ης εργαστηριακής άσκησης: Α.Μ.:

Ψηφιακή Λογική Σχεδίαση

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

Ψηφιακή Λογική Σχεδίαση

Transcript:

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2017-2018 Μηχανές Πεπερασμένων Καταστάσεων ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 1

FSMs Οι μηχανές πεπερασμένων καταστάσεων Finite State Machines (FSMs) πιο αφηρημένος τρόπος να εξετάζουμε ακολουθιακά κυκλώματα είσοδοι, έξοδοι, τρέχουσα κατάσταση, επόμενη κατάσταση σε κάθε ακμή του ρολογιού συνδυαστική λογική παράγει τις εξόδους και την επόμενη κατάσταση σαν συναρτήσεις των εισόδων και της τρέχουσας κατάστασης. ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 2

Χαρακτηριστικά των FSM Η επόμενη κατάσταση είναι συνάρτηση της τρέχουσας κατάστασης και των εισόδων Moore Machine: Οι έξοδοι είναι συνάρτηση της κατάστασης State / output Mealy Machine: Οι έξοδοι είναι συνάρτηση της κατάστασης και των εισόδων State inputa inputb inputa/outputa inputb/outputb ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 3

Βήματα Σχεδίασης Περιγραφή λειτουργία του κυκλώματος (functional specification) Διάγραμμα μετάβασης καταστάσεων (state transition diagram) Πίνακας καταστάσεων και μεταβάσεων με συμβολικά ονόματα (symbolic state transition table) Κωδικοποίηση καταστάσεων (state encoding) Εξαγωγή λογικών συναρτήσεων Διάγραμμα κυκλώματος FFs για την κατάσταση ΣΛ για την επόμενη κατάσταση και τις εξόδους ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 4

Αναπαράσταση FSM Καταστάσεις: όλες οι πιθανές τιμές στα ακολουθιακά στοιχεία μνήμης (FFs) Μεταβάσεις: αλλαγή κατάστασης Αλλαγή τις κατάστασης με το ρολόι αφού ελέγχει την φόρτωση τιμής στα στοιχεία μνήμης (FFs) 001 In = 0 In = 1 100 010 In = 1 In = 0 Ακολουθιακή λογική Ακολουθία μέσω μιας σειράς καταστάσεων Βασίζεται στην ακολουθία των τιμών στις εισόδους 110 111 ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 5

Παράδειγμα FSM - Reduce 1s Αλλαγή του πρώτου 1 σε 0 σε μια σειρά από 1 Moore FSM zero 0 0 1 one1 1 two1s [1] 0 1 ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 6

Moore FSM: General & State module ReduceMoore( input Clk, input Rst, input In, output reg Out ); reg [1:0] CurrentState; // state reg reg [1:0] NextState; // State assignment parameter STATE_Zero = 2 h0, STATE_One1 = 2 h1, STATE_Two1s = 2 h2, STATE_X = 2 hx; // Implement the state register always @( posedge Clk) begin if (Rst) CurrentState <= STATE_Zero; else CurrentState <= NextState; 0 0 zero 1 one1 1 two1s [1] 0 1 ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 7

Moore FSM: combinatorial always @(In or CurrentState) begin NextState = CurrentState; Out = 1 b0; case (CurrentState) STATE_Zero: begin // last input was a zero if (In) NextState = STATE_One1; STATE_One1: begin // we've seen one 1 if (In) NextState = STATE_Two1s; else NextState = STATE_Zero; STATE_Two1s: begin // we've seen at least 2 ones Out = 1; if (~In) NextState = STATE_Zero; default: begin // in case we reach a bad state Out = 1 bx; NextState = STATE_Zero; case ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 8 0 0 zero 1 one1 1 two1s [1] 0 1

Mealy FSM module ReduceMealy( input Clk, input Rst, input In, output reg Out); reg reg CurrentState;// state register NextState; parameter STATE_Zero = 1 b0, STATE_One1 = 1 b1; always @(posedge Clk) begin if (Rst) CurrentState <= STATE_Zero; else CurrentState <= NextState; 0/0 zero 1/0 0/0 always @ (In or CurrentState) begin NextState = CurrentState; Out = 1 b0; case (CurrentState) STATE_Zero: if (In) NextState = STATE_One; STATE_One1: begin // we've seen one 1 if (In) NextState = STATE_One; else Out = In; case module NextState = STATE_Zero; one1 1/1 ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 9

Moore vs Mealy ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 10

Moore vs Mealy Συμπεριφορά Moore απλοποιούν τη σχεδίαση αδυναμία αντίδρασης στις εισόδους στον ίδιο κύκλο - έξοδοι ένα κύκλο μετά διαφορετικές καταστάσεις για κάθε αντίδραση Mealy συνήθως λιγότερες καταστάσεις άμεση αντίδραση στις εισόδους έξοδοι στον ίδιο κύκλο δυσκολότερη σχεδίαση αφού καθυστερημένη είσοδος παράγει καθυστερημένη έξοδο (μεγάλα μονοπάτια) H Mealy γίνεται Moore αν βάλουμε καταχωρητές στις εξόδους ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 11

Moore Machine σε 1 always block (Bad Idea) module ReduceMoore( input Clk, input Rst, input In, output reg Out ); reg [1:0] state; // state register parameter zero = 0, one1 = 1, two1s = 2; 0 0 zero 1 one1 1 two1s [1] 0 1 ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 12

Moore Machine σε 1 always block (Bad Idea) always @(posedge clk) case (state) zero: begin out <= 0; if (in) state <= one1; else state <= zero; one1: if (in) begin state <= two1s; out <= 1; else begin state <= zero; out <= 0; two1s: if (in) begin state <= two1s; out <= 1; else begin state <= zero; out <= 0; default: begin state <= zero; out <= 0; case module Οι έξοδοι είναι καταχωρητές Μπερδεμένο!!! Η έξοδος αλλάζει στον επόμενο κύκλο ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 13

Υλοποίηση FSMs Mealy outputs inputs combinational logic next state combinational logic Moore outputs current state Προτεινόμενο στυλ υλοποίησης FSM Η συνδυαστική λογική καταστάσεων σε always block (πάντα default) Ο καταχωρητής κατάστασης σε ένα ξεχωριστό always block (clocked πάντα reset) Έξοδοι είτε από το always της CL είτε από wires ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 14

Απλή FSM ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 15

Απλή FSM (1/3) module fsm( Receive, Start, Stop, Error, Clk, Reset_); // input Start, Stop, Error, Clk, Reset_n; output Receive; // parameter [1:0] IdleState = 0, ReceiveState = 1, ErrorState = 2; // reg [1:0] FSMstate, nxtfsmstate; // always @(posedge Clk) begin if (~Reset_n) FSMstate <= #`dh IdleState; else FSMstate <= #`dh nxtfsmstate; // always @(FSMstate or Start or Stop or Error) begin // case(fsmstate) ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 16

Απλή FSM (2/3) IdleState: begin if(error) nxtfsmstate <= ErrorState; else begin if(start) nxtfsmstate <= ReceiveState; else nxtfsmstate <= IdleState; // ReceiveState: begin if(error) nxtfsmstate <= ErrorState; else begin if(stop) nxtfsmstate <= IdleState; else nxtfsmstate <= ReceiveState; // ErrorState : nxtfsmstate <= IdleState; // default : nxtfsmstate <= IdleState; // case ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 17

Απλή FSM (3/3) Οι έξοδοι The Moore Output wire Receive = FSMstate; The Mealy Output wire Receive = ((FSMstate == IdleState ) & Start) ((FSMstate == ReceiveState) & ~Error & ~Stop ); ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 18

Παράδειγμα: «Αυτόματος Πωλητής» (1/5) Βγάζει αναψυκτικό όταν βάλουμε 15 λεπτά του Κερματοδέκτης για νομίσματα των 5 και 10 λεπτών του Δεν δίνει ρέστα! Rst Κερματοδέκτης in5 in10 FSM Αυτόματου Πωλητή open Μηχανισμός Απελευθέρωσης Clk ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 19

Παράδειγμα: «Αυτόματος Πωλητής» (2/5) Αναπαράσταση Τυπικές είσοδοι: o 3 των 5 o 5, 10 o 10, 5 o 2 των 10 Διάγραμμα Καταστάσεων: o Είσοδοι: in5, in10, reset, clock o Έξοδοι: open Assumptions: o in5 και in10 εμφανίζονται για 1 κύκλο o Μένουμε στην ίδια κατάσταση αν δεν έρθει είσοδος o Όταν έρθει reset πάμε στην αρχική κατάσταση in5 S3 in5 S7 [open] S1 in5 in10 S4 [open] S0 Reset in10 in5 S2 S5 [open] in10 S6 [open] ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 20

Παράδειγμα: «Αυτόματος Πωλητής» (3/5) Ελαχιστοποίηση καταστάσεων - επαναχρησιμοποίηση in10 0 5 10 Reset in5 in5 15 [open] in10 in5 in10 present inputs next output state in10 in5 state open 0 0 0 0 0 0 1 5 0 1 0 10 0 1 1 5 0 0 5 0 0 1 10 0 1 0 15 0 1 1 10 0 0 10 0 0 1 15 0 1 0 15 0 1 1 15 0 1 symbolic state table ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 21

Παράδειγμα: «Αυτόματος Πωλητής» (4/5) Κωδικοποίηση Καταστάσεων Τυπική pres. state inputs next state output Q1 Q0 in10 in5 D1 D0 open 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 1 0 0 0 1 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 0 1 ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 22

Παράδειγμα: «Αυτόματος Πωλητής» (5/5) Κωδικοποίηση Καταστάσεων One-hot present state inputs next state output Q3 Q2 Q1 Q0 in10 in5 D3 D2 D1 D0 open 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 1 - - - - - 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 1 - - - - - 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 0 1 1 - - - - - 1 0 0 0 - - 0 0 0 1 1 ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 23

Διαγράμματα καταστάσεων Moore and Mealy Moore machine Έξοδοι από κατάσταση Reset Mealy machine Έξοδοι στις μεταβάσεις Reset in10 in10 in5 in5 0 5 10 in5 in10 in5 in10 in5 in10 in10/0 0 in5/0 in10/1 5 in5/0 10 in5 in10 /0 in5 in10 /0 in5 in10 /0 15 [1] in5 in10 in5 in10 /1 ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 24

Moore Verilog FSM module ving (open, clk, Rst, in5, in10); input clk, Rst, in5, in10; output open; reg open; reg [1:0] state; // state register reg [1:0] next_state; parameter zero = 0, five = 1, ten = 2, fifteen = 3; always @(in5 or in10 or state) case (state) zero: begin if (in5) next_state = five; else if (in10) next_state = ten; else next_state = zero; open = 0; fifteen: begin next_state = zero; open = 1; default: begin next_state = zero; open = 0; case always @(posedge clk) if (Rst) state <= zero; else state <= next_state; in10 in10 in5 in5 0 5 10 15 [1] Reset in5 in10 in5 in10 in5 in10 in5 in10 module ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 25

Mealy Verilog FSM module ving (open, Clk, Rst, in5, in10); input Clk, Rst, in5, in10; output open; reg open; reg [1:0] state; // state register reg [1:0] next_state; parameter zero = 0, five = 1, ten = 2, fifteen = 3; always @(in5 or in10 or state) case (state) zero: begin open = 0; if (in10) next_state = ten; else if (in5) next_state = five; else next_state = zero; five: begin if (in5) begin next_state = ten; open = 0; else if (in10 ) begin next_state = zero; open = 1 ; else begin next_state = five; open = 0; case always @(posedge clk) if (Rst) state <= zero; else state <= next_state; module ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 26 in10/1 in10/0 in5/0 in5/0 in5 in10 /1 0 5 10 Reset in5 in10 /0 in5 in10 /0 in5 in10 /0