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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

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

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

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ελίνα Μακρή

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

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

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

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

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

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

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

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

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

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

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

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

Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες.

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

8 η Θεµατική Ενότητα : Εισαγωγή στις Γλώσσες Περιγραφής Υλικού: Μοντέλα Συνδυαστικών Κυκλωµάτων

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

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

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

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

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

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

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

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

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

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

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

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

Καταστάσεων. Καταστάσεων

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

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

7 η Θεµατική Ενότητα : Εισαγωγή στις Γλώσσες Περιγραφής Υλικού

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

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

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

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

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

Μοντέλα Αρχιτεκτονικής στην Σύνθεση

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

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

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

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

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

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

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

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

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

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

Περίληψη. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο Μετρητής Ριπής (Ripple Counter) Μετρητές (Counters) Μετρητής Ριπής (συν.

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

Transcript:

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

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

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

Βήµατα Σχεδίασης 1. Περιγραφή λειτουργία του κυκλώµατος (functional specification) 2. ιάγραµµα µετάβασης καταστάσεων (state transition diagram) 3. Πίνακας καταστάσεων και µεταβάσεων µε συβολικά ονόµατα (symbolic state transition table) 4. Κωδικοποίηση καταστάσεων (state encoding) 5. Εξαγωγή λογικών συναρτήσεων 6. ιάγραµµα κυκλώµατος 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 1 0 0 one1 0 1 two1s [1] 1 ΗΥ220 - Βασίλης Παπαευσταθίου 6

Moore FSM: general & state module Reduce(Out, Clock, Reset, In); output Out; input Clock, Reset, In; 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; 0 0 zero 1 one1 1 two1s [1] 0 1 // Implement the state register always @( posedge Clock) begin if (Reset) CurrentState <= STATE_Zero; else CurrentState <= NextState; ΗΥ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

module Reduce(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; always @ (In or CurrentState) begin NextState = CurrentState; Out = 1 b0; case (CurrentState) STATE_Zero: if (In) NextState = module Mealy FSM 0/0 zero STATE_One; STATE_One1: begin // we've seen one 1 if (In) NextState = STATE_One; else NextState = STATE_Zero; Out = In; case 1/0 one1 0/0 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 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 1 one1 1 two1s [1] 0 1 ΗΥ220 - Βασίλης Παπαευσταθίου 12

Moore Machine σε always @(posedge clk) case (state) zero: begin out <= 0; if (in) state <= one1; else 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 1 always block (Bad Idea) state <= zero; Οι έξοδοι είναι καταχωρητές Μπερδεµένο!!! Η έξοδος αλλάζει στον επόµενο κύκλο ΗΥ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_; 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 - Βασίλης Παπαευσταθίου 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 ); module ΗΥ220 - Βασίλης Παπαευσταθίου 18

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

Παράδειγµα: «Αυτόµατος Πωλητής» (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 - Βασίλης Παπαευσταθίου 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 Q3Q2 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 machine Έξοδοι από κατάσταση Moore and Mealy 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

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 Mealy Verilog FSM in10/1 in10/0 Reset always @(posedge clk) if (Rst) state <= zero; else state <= next_state; module ΗΥ220 - Βασίλης Παπαευσταθίου 26 in5/0 in5/0 in5 in10 /1 0 5 10 in5 in10 /0 in5 in10 /0 in5 in10 /0