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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

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

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

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

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

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

Ελίνα Μακρή

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ελίνα Μακρή

Χρονισμός Σύγχρονων Κυκλωμάτων, Καταχωρητές και Μανταλωτές. Χειμερινό Εξάμηνο

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

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

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

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

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

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

Ακολουθιακές εντολές. (Peter Ashenden, The Students Guide to VHDL)

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

Εισαγωγή στην πληροφορική

UNIVERSITY OF CALIFORNIA. EECS 150 Fall ) You are implementing an 4:1 Multiplexer that has the following specifications:

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

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

Transcript:

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Μηχανές Πεπερασμένων Καταστάσεων Χειμερινό Εξάμηνο 2009 2010 ΗΥ220 University of Crete 1

Τι είναι οι FSMs? 10 FSM Κερματοδέκτης open Μηχανισμός Αυτόματου 20 Απελευθέρωσης Πωλητή 30 cents each can ΗΥ220 University of Crete 2

Τι είναι οι FSMs? 0 10 20 10 10 20 10 20 30 40 30 cents each can OPEN OPEN Give 10 ΗΥ220 University of Crete 3

FSMs Οι μηχανές πεπερασμένων καταστάσεων Finite State Machines (FSMs) πιο αφηρημένος τρόπος να εξετάζουμε ακολουθιακά κυκλώματα Είσοδοι, έξοδοι, τρέχουσα κατάσταση, επόμενη κατάσταση Σε κάθε ακμή του ρολογιού συνδυαστική λογική παράγει τις εξόδους και την επόμενη κατάσταση σαν συνάρτησεις των εισόδων και της τρέχουσας κατάστασης. ΗΥ220 University of Crete 4

Χαρακτηριστικά των FSM Η επόμενη κατάσταση είναι συνάρτηση της τρέχουσας κατάστασης και των εισόδων Moore Machine: Οι έξοδοι είναι συνάρτηση της inputa κατάστασης State / output Mealy Machine: Οι έξοδοι είναι συνάρτηση της κατάστασης και των εισόδων inputa/outputa inputb State inputb/outputb ΗΥ220 University of Crete 5

Βήματα Σχεδίασης 1. Περιγραφή φήλειτουργία του κυκλώματος (functional specification) 2. Διάγραμμα μετάβασης καταστάσεων (state transition diagram) 3. Πίνακας καταστάσεων και μεταβάσεων με συβολικά ονόματα (symbolic state transition table) 4. Κωδικοποίηση η καταστάσεων (state encoding) 5. Εξαγωγή λογικών συναρτήσεων 6. Διάγραμμα κυκλώματος FFs για την κατάσταση ΣΛ για την επόμενη κατάσταση και τις εξόδους ΗΥ220 University of Crete 6

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

Παράδειγμα FSM Count couples Η έξοδος γίνεται 1 για κάθε ζευγάρι από 1 Moore FSM zero [0] 1 0 0 one1 [0] 0 1 1 two1s [1] ΗΥ220 University of Crete 8

Moore FSM: general & state module moore(out, Clock, Reset, In); output Out; input Clock, Reset, In; zero [0] reg Out; 1 0 reg [1:0] CurrentState; // state reg 0 reg [1:0] NextState; // State assignment parameter STATE_Zero = 2 h0, STATE_One1 = 2 h1 h1, STATE_Two1s = 2 h2, STATE_X = 2 hx; // Implement the state register always @( posedge Clock) begin if (Reset) CurrentState <= STATE_Zero; else CurrentState t <= NextState; t one1 [0] 0 1 1 two1s [1] ΗΥ220 University of Crete 9

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 t = STATE_One1; STATE_One1: begin // we've seen one 1 if (In) NextState = STATE_ Two1s; 0 else NextState = STATE_Zero; STATE_Two1s: begin // we've seen at 2 ones Out = 1; if (In) NextState = STATE_One1; else NextState = STATE_Zero default: begin // in case we reach a bad state Out = 1 bx; NextState = STATE_Zero; case 0 zero [0] one1 [0] 1 0 0 1 1 two1s [1] ΗΥ220 University of Crete 10

Παράδειγμα FSM Count couples Η έξοδος γίνεται 1 για κάθε ζευγάρι από 1 Mealy FSM Είσοδος 0/0 Έξοδος zero 0/0 1/0 1/1 one1 ΗΥ220 University of Crete 11

Mealy FSM module mealy(clock, Reset, In, Out); input Clock, Reset, In; output Out; reg Out; reg CurrentState;// state register reg NextState; parameter STATE_Zero = STATE_One1 = 1 b0, 1 b1; always @(posedge Clock) begin if (Reset) CurrentState <= STATE_Zero; else CurrentState <= NextState; 0/0 zero one1 1/0 0/0 1/1 always @ (In or CurrentState) t begin NextState = CurrentState; Out = 1 b0; case (CurrentState) STATE_Zero: if (In) NextState = STATE_One1; STATE_One1: begin // we've seen one 1 NextState = STATE_Zero; if (In) Out = 1; module case ΗΥ220 University of Crete 12

Moore vs Mealy CLK Input 0 0 1 1 0 0 0 Moore Out 0 0 0 1 0 0 0 State Zero Zero One 1 Two 1s 0 0 0 Mealy Out 0 0 0 1 0 0 0 State Zero Zero One 1 Zero 0 0 0 ΗΥ220 University of Crete 13

Moore vs Mealy Συμπεριφορά Moore απλοποιούν τη σχεδίαση αδυναμία αντίδρασης στις εισόδους στον ίδιο κύκλο έξοδοι ένα κύκλο μετά διαφορετικές καταστάσεις για κάθε αντίδραση Mealy συνήθως λιγότερες καταστάσεις άμεση αντίδραση στις εισόδους έξοδοι στον ίδιο κύκλο δυσκολότερη σχεδίαση αφού καθυστερημένη είσοδος παράγει καθυστερημένη έξοδο (μεγάλα μονοπάτια) H Mealy γίνεται Moore αν βάλουμε καταχωρητές στις εξόδους ΗΥ220 University of Crete 14

Moore Machine σε 1 always block (Bad Idea) module reduce (clk, reset, in, out); input clk, reset, in; output out; reg out; reg [1:0] state; // state register parameter zero = 0, one1 = 1, two1s = 2; 0 0 zero [0] 1 one1 [0] 1 two1s [1] 0 1 ΗΥ220 University of Crete 15

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 University of Crete 16

Υλοποίηση 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 University of Crete 17

Moore Mealy Dataflow CLK INPUTS Next Statet Registers Outputs CLK INPUTS Next State Registers Outputs ΗΥ220 University of Crete 18

Απλή FSM ΗΥ220 University of Crete 19

Απλή FSM (1/3) module fsm( Receive, Start, Stop, Error, Clk, Reset_); // input Start, Stop, Error, Clk, Reset_; output Receive; // parameter [1:0] IdleState = 0, ReceiveState = 1, ErrorState = 2; // reg [1:0] FSMstate, nxtfsmstate; // always @(posedge Clk) begin if (~Reset_) FSMstate <= #`dh IdleState; else FSMstate <= #`dh nxtfsmstate; // always @(FSMstate or Start or Stop or Error) begin // case(fsmstate) ΗΥ220 University of Crete 20

Απλή 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 case : nxtfsmstate <= IdleState; ΗΥ220 University of Crete 21

Απλή FSM (3/3) Οι έξοδοι The Moore Output wire Receive = FSMstate[0]; The Mealy Output wire Receive = ((FSMstate == IdleState ) & Start) ((FSMstate == ReceiveState) & ~Error & ~Stop ); module d ΗΥ220 University of Crete 22

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

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

Παράδειγμα: «Αυτόματος Πωλητής» (3/5) Ελαχιστοποίηση καταστάσεων επαναχρησιμοποίηση in10 Reset 0 in5 5 in10 in5 10 in5 in10 15 [open] 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 University of Crete 25

Παράδειγμα: «Αυτόματος Πωλητής» (4/5) Κωδικοποίηση Καταστάσεων Τυπική 0 5 10 15 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 University of Crete 26

Παράδειγμα: «Αυτόματος Πωλητής» (5/5) Κωδικοποίηση Καταστάσεων One hot 0 5 10 15 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 University of Crete 27

Διαγράμματα καταστάσεων Moore and Mealy Moore machine Έξοδοι από κατάσταση Reset Mealy machine Έξοδοι στις μεταβάσεις Reset in10 in10 0 [0] in5 5 [0] in5 10 [0] 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 in5 in10 15 [1] in5 in10 /1 ΗΥ220 University of Crete 28

Moore Verilog FSM module ving (open, clk, Rst, in5, in10); input clk, Rst, in5, in10; output open; Reset 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) 0 case (state) in5 in10 [0] zero: begin if (in5) next_state = five; in5 else if (in10) next_state = ten; else next_state = zero; in10 5 open = 0; in5 in10 [0] in5 fifteen: begin next_state = zero; 10 open = 1; in10 in5 in10 [0] default: begin in5 in10 case next_ state = zero; open = 0; always @(posedge g clk) if (Rst) state <= zero; else state <= next_state; module ΗΥ220 University of Crete 29 15 [1]

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 case next_ state = five; open = 0; in10/1 in10/0 in5/0 in5/0 in5 in10 /1 0 5 10 Reset in5 in10 /0 always @(posedge clk) if (Rst) state <= zero; else state <= next_state; module ΗΥ220 University of Crete 30 in5 in10 /0 in5 in10 /0