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

Σχετικά έγγραφα
HY430 Εργαςτήριο Ψηφιακών Κυκλωμάτων.

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

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

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

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

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

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

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

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

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

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

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

HY523 Εργαςτηριακό Σχεδύαςη Ψηφιακών Κυκλωμϊτων με εργαλεύα Ηλεκτρονικού Σχεδιαςτικού Αυτοματιςμού.

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

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

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

HY220 Εργαςτήριο Ψηφιακών Κυκλωμάτων. 9/28/ ΗΥ220 - Διάλεξθ 3θ, Επανάλθψθ

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

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

3 θ διάλεξθ Επανάλθψθ, Επιςκόπθςθ των βαςικϊν γνϊςεων τθσ Ψθφιακισ Σχεδίαςθσ

Εισαγωγή στη Verilog

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

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

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

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

ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ. Κεφάλαιο 8 Η γλϊςςα Pascal

Σχεδίαςη Σφγχρονων Ακολουθιακών Κυκλωμάτων

ΠΛΕ- 027 Μικροεπεξεργαστές 4ο μάθημα: γλώσσα περιγραφής υλικού Verilog

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

HY422 Ειςαγωγή ςτα υςτήματα VLSI. 5/9/ ΗΤ422 - Διάλεξθ 10θ Χρονιςμόσ. Γενικό Μοντζλο φγχρονου Κυκλώματοσ

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

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

Συπικζσ Γλϊςςεσ Περιγραφισ Τλικοφ Διάλεξθ 5

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι

Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Εργαςτιριο 1

Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Διάλεξθ 4

HY220 Εργαςτήριο Ψηφιακών Κυκλωμάτων. Διδάςκων: Χ. ωτηρίου, Βοηθοί: Ε. Κουναλάκησ, Π. Ματτθαιάκησ, Δ. Σςαλιαγκόσ.

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

HY437 Αλγόριθμοι CAD

Ακολουκιακά Λογικά Κυκλώματα

Παράςταςη ςυμπλήρωμα ωσ προσ 1

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

Ψθφιακά Ηλεκτρονικά. Ενότθτα 7 : Ελαχιςτοποίθςθ και κωδικοποίθςθ καταςτάςεων Φϊτιοσ Βαρτηιϊτθσ

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

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

Αρχιτεκτονική Υπολογιστών

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

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ

Λαμβάνοντασ υπόψη ότι κατά την πρόςθεςη δφο δυαδικϊν ψηφίων ιςχφει: Κρατοφμενο

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

Ραραπάνω παρουςιάηεται ο πυρινασ των εντολϊν του επεξεργαςτι MIPS, με τισ οποίεσ, και τθν υλοποίθςθ τουσ ςε υλικό κα αςχολθκοφμε.

Εισαγωγή στη γλώσσα περιγραφής υλικού VHDL. Γενικά χαρακτηριστικά, σύνταξη και τύποι. Ψηφιακή Σχεδίαση µε CAD ΙΙ - ιάλεξη 1 -

x n D 2 ENCODER m - σε n (m 2 n ) x 1 Παραδείγματα κωδικοποιθτϊν είναι ο κωδικοποιθτισ οκταδικοφ ςε δυαδικό και ο κωδικοποιθτισ BCD ςε δυαδικό.

HY437 Αλγόριθμοι CAD

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

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

Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα

ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4.1

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

Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό. Βαγγζλθσ Οικονόμου

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

Ψθφιακά Ηλεκτρονικά. Ενότθτα 5 : Ανάλυςθ κυκλώματοσ με D και JK FLIP- FLOP Φώτιοσ Βαρτηιώτθσ

Θεςιακά ςυςτιματα αρίκμθςθσ

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

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

Ελλθνικι Δθμοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Ψθφιακά Ηλεκτρονικά. Ενότθτα 13 : Άλλοι Μετρθτζσ Φϊτιοσ Βαρτηιϊτθσ

Πολυπλέκτες. 0 x 0 F = S x 0 + Sx 1 1 x 1

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

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

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

HY225 Οργϊνωςη Υπολογιςτών

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

Παραπάνω παρουςιάηεται ο πιο ςυνικθσ χωροκζτθςθ αρικμθτικϊν, λογικϊν κυκλωμάτων. Η μονάδα επεξεργαςίασ είναι θ λζξθ (λ.χ. 32-bit ςε επεξεργαςτζσ,

HY437 Αλγόριθμοι CAD

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα

Η γλώςςα προγραμματιςμού C

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

HY437 Αλγόριθμοι CAD

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

Ψθφιακά Ηλεκτρονικά. Ενότθτα 4 : Ανάλυςθ ακολουκιακϊν κυκλωμάτων με ρολόι Φϊτιοσ Βαρτηιϊτθσ

Ελλθνικι Δθμοκρατία Σεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Ψθφιακά Ηλεκτρονικά. Ενότθτα 11 : Μετρθτζσ Ριπισ Φϊτιοσ Βαρτηιϊτθσ

ΧΕΔΙΑΜΟ ΠΡΟΪΟΝΣΩΝ ΜΕ Η/Τ

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

Ελλθνικι Δθμοκρατία Σεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Ψθφιακά Ηλεκτρονικά. Ενότθτα 9 : Διαδικαςία φνκεςθσ Φϊτιοσ Βαρτηιϊτθσ

Μετατροπι Αναλογικοφ Σιματοσ ςε Ψθφιακό. Διάλεξθ 10

Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν:

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


ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν

Δομζσ Δεδομζνων Πίνακεσ

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 19. Αλφαριθμητικά II. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

Δομθμζνοσ Προγραμματιςμόσ. Βαγγζλθσ Οικονόμου Εργαςτιριο 9

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

Ελλθνικι Δθμοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Ψθφιακά Ηλεκτρονικά. Ενότθτα 1 : Ειςαγωγι. Φϊτιοσ Βαρτηιϊτθσ

ΑΝΑΠΣΤΞΘ ΕΦΑΡΜΟΓΩΝ Ε ΠΡΟΓΡΑΜΜΑΣΙΣΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 3 ο ΓΕΝΙΚΟ ΛΤΚΕΙΟ Ν. ΜΤΡΝΘ- ΕΠΙΜΕΛΕΙΑ: ΠΤΡΙΔΑΚΘ Λ.

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

Κυκλωμάτων» Χειμερινό εξάμηνο

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

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

Transcript:

HY225 Οργάνωςη Τπολογιςτών Διδάςκοντεσ: Δ. Νικολόπουλοσ, Χ. ωτηρίου. http://www.csd.uoc.gr/~hy225 1 Περιεχόμενα Τυπικι οι Σχεδίαςθσ Ιεραρχία ςτθν Σχεδίαςθ Μθχανζσ Ρεπεραςμζνων Καταςτάςεων Η Γλϊςςα Τι είναι ΜΡΚ; Επίπεδα Αφαίρεςθσ ςτθν Σχεδίαςθ Οριςμόσ ΜΡΚ Αναπαράςταςθ και Υλοποίθςθ ςε Ειςαγωγι ςτθν μζςω Δομι Mealy/Moore ΜΡΚ Κωδικοποίθςθ Καταςτάςεων Ρεριγραφι ΜΡΚ ςτθν παραδειγμάτων 1, 2 ι 3 always τμιματα Αναλυτικι Επιςκόπθςθ τθσ Ρροτεινόμενθ Υλοποίθςθ ΜΡΚ Χρόνοσ-Κακυςτζρθςθ ςτθν Ραραδείγματα Υλοποίθςθσ ΜΡΚ Λειτουργικόσ Ζλεγχοσ και ςε Ρροςομοίωςθ Ρεριγραφζσ Moore/Mealy Συνκεςιμότθτα Αρχικοποίθςθ 2 1

Περιεχόμενα Τυπικι οι Σχεδίαςθσ Ιεραρχία ςτθν Σχεδίαςθ Μθχανζσ Ρεπεραςμζνων Καταςτάςεων Η Γλϊςςα Τι είναι ΜΡΚ; Επίπεδα Αφαίρεςθσ ςτθν Σχεδίαςθ Οριςμόσ ΜΡΚ Αναπαράςταςθ και Υλοποίθςθ ςε Ειςαγωγι ςτθν μζςω Δομι Mealy/Moore ΜΡΚ Κωδικοποίθςθ Καταςτάςεων Ρεριγραφι ΜΡΚ ςτθν παραδειγμάτων 1, 2 ι 3 always τμιματα Αναλυτικι Επιςκόπθςθ τθσ Ρροτεινόμενθ Υλοποίθςθ ΜΡΚ Χρόνοσ-Κακυςτζρθςθ ςτθν Ραραδείγματα Υλοποίθςθσ ΜΡΚ Λειτουργικόσ Ζλεγχοσ και ςε Ρροςομοίωςθ Ρεριγραφζσ Moore/Mealy Συνκεςιμότθτα Αρχικοποίθςθ 3 Συπική Ροή χεδίαςησ (Design Flow) Requirements, VHDL Simulate Synthesis Gate-level Model Simulate Test Bench ASIC or FPGA Place & Route Timing Model Simulate 4 2

Περιεχόμενα Τυπικι οι Σχεδίαςθσ Ιεραρχία ςτθν Σχεδίαςθ Μθχανζσ Ρεπεραςμζνων Καταςτάςεων Η Γλϊςςα Τι είναι ΜΡΚ; Επίπεδα Αφαίρεςθσ ςτθν Σχεδίαςθ Οριςμόσ ΜΡΚ Αναπαράςταςθ και Υλοποίθςθ ςε Ειςαγωγι ςτθν μζςω Δομι Mealy/Moore ΜΡΚ Κωδικοποίθςθ Καταςτάςεων Ρεριγραφι ΜΡΚ ςτθν παραδειγμάτων 1, 2 ι 3 always τμιματα Αναλυτικι Επιςκόπθςθ τθσ Ρροτεινόμενθ Υλοποίθςθ ΜΡΚ Χρόνοσ-Κακυςτζρθςθ ςτθν Ραραδείγματα Υλοποίθςθσ ΜΡΚ Λειτουργικόσ Ζλεγχοσ και ςε Ρροςομοίωςθ Ρεριγραφζσ Moore/Mealy Συνκεςιμότθτα Αρχικοποίθςθ 5 Ιεραρχία ςτην χεδίαςη Top-Down (Επάνω προσ Κάτω) ι Bottom-Up (Κάτω προσ επάνω) Ρρακτικά γίνεται μίξθ των δυο Τελικό ςφςτθμα αποτελείται από τα Τερματικά Τμιματα ι φφλλα ( Leaf blocks) που λειτουργοφν όλα παράλλθλα. Κφκλωμα Μονάδα 1 Μονάδα 2 Μονάδα 3 Μονάδα 4 Υπο-μονάδα 1 Υπο-μονάδα 2 Υπο-μονάδα 1 Υπο-μονάδα 1 Υπο-μονάδα 2 Τερμαηικό Τμήμα Υπο-υπο μονάδα 1 Υπο-υπομονάδα 1 Υπουπομονάδα 2 6 3

Περιεχόμενα Τυπικι οι Σχεδίαςθσ Ιεραρχία ςτθν Σχεδίαςθ Μθχανζσ Ρεπεραςμζνων Καταςτάςεων Η Γλϊςςα Τι είναι ΜΡΚ; Επίπεδα Αφαίρεςθσ ςτθν Σχεδίαςθ Οριςμόσ ΜΡΚ Αναπαράςταςθ και Υλοποίθςθ ςε Ειςαγωγι ςτθν μζςω Δομι Mealy/Moore ΜΡΚ Κωδικοποίθςθ Καταςτάςεων Ρεριγραφι ΜΡΚ ςτθν παραδειγμάτων 1, 2 ι 3 always τμιματα Αναλυτικι Επιςκόπθςθ τθσ Ρροτεινόμενθ Υλοποίθςθ ΜΡΚ Χρόνοσ-Κακυςτζρθςθ ςτθν Ραραδείγματα Υλοποίθςθσ ΜΡΚ Λειτουργικόσ Ζλεγχοσ και ςε Ρροςομοίωςθ Ρεριγραφζσ Moore/Mealy Συνκεςιμότθτα Αρχικοποίθςθ 7 Η Γλώςςα Γλϊςςα Ρεριγραφισ Υλικοφ (HDL) Γλϊςςα προγραμματιςμοφ με υποδομζσ για υλοποίθςθ υλικοφ Ζννοια του χρόνου, ζννοια του ςιματοσ Δυνατότθτεσ 1. να αναπαριςτά (ςε διάφορα επίπεδα) και 2. να προςομοιϊνει ψθφιακά κυκλϊματα. 3. ζνα υποςφνολο τθσ είναι ςυνκζςιμο (HDLκυκλωματικι δομι) Υποςτθρίηει Ραράλλθλθ εκτζλεςθ τμθμάτων υλικοφ και παράλλθλεσ διαδικαςίεσ Σθμαςιολογία (semantics) για χρόνο και τιμζσ ςθμάτων Ραραδείγματα ςχεδίαςθσ με HDL Intel Pentium, AMD K5, K6, Athlon, ARM7, etc Thousands of ASIC designs using HDL Άλλεσ HDL : VHDL, SystemC, System 8 4

Περιεχόμενα Τυπικι οι Σχεδίαςθσ Ιεραρχία ςτθν Σχεδίαςθ Μθχανζσ Ρεπεραςμζνων Καταςτάςεων Η Γλϊςςα Τι είναι ΜΡΚ; Επίπεδα Αφαίρεςθσ ςτθν Σχεδίαςθ Οριςμόσ ΜΡΚ Αναπαράςταςθ και Υλοποίθςθ ςε Ειςαγωγι ςτθν μζςω Δομι Mealy/Moore ΜΡΚ Κωδικοποίθςθ Καταςτάςεων Ρεριγραφι ΜΡΚ ςτθν παραδειγμάτων 1, 2 ι 3 always τμιματα Αναλυτικι Επιςκόπθςθ τθσ Ρροτεινόμενθ Υλοποίθςθ ΜΡΚ Χρόνοσ-Κακυςτζρθςθ ςτθν Ραραδείγματα Υλοποίθςθσ ΜΡΚ Λειτουργικόσ Ζλεγχοσ και ςε Ρροςομοίωςθ Ρεριγραφζσ Moore/Mealy Συνκεςιμότθτα Αρχικοποίθςθ 9 Περιεχόμενα Τυπικι οι Σχεδίαςθσ Ιεραρχία ςτθν Σχεδίαςθ Μθχανζσ Ρεπεραςμζνων Καταςτάςεων Η Γλϊςςα Τι είναι ΜΡΚ; Επίπεδα Αφαίρεςθσ ςτθν Σχεδίαςθ Οριςμόσ ΜΡΚ Αναπαράςταςθ και Υλοποίθςθ ςε Ειςαγωγι ςτθν μζςω Δομι Mealy/Moore ΜΡΚ Κωδικοποίθςθ Καταςτάςεων Ρεριγραφι ΜΡΚ ςτθν παραδειγμάτων 1, 2 ι 3 always τμιματα Αναλυτικι Επιςκόπθςθ τθσ Ρροτεινόμενθ Υλοποίθςθ ΜΡΚ Χρόνοσ-Κακυςτζρθςθ ςτθν Ραραδείγματα Υλοποίθςθσ ΜΡΚ Λειτουργικόσ Ζλεγχοσ και ςε Ρροςομοίωςθ Ρεριγραφζσ Moore/Mealy Συνκεςιμότθτα Αρχικοποίθςθ 10 5

Επίπεδα Αφαίρεςησ SYSTEM Matlab, SystemC, System + MODULE GATE, VHDL CIRCUIT S n+ DEVICE G D n+ VLSI 11 Επίπεδα Αφαίρεςησ Σφςτθμα - Εφαρμογι Αλγόρικμοι Αρχιτεκτονικι Γλϊςςα Ρεριγραφισ Υλικοφ (HDL) Ρφλεσ Τρανηίςτορσ 12 6

Περιεχόμενα Τυπικι οι Σχεδίαςθσ Ιεραρχία ςτθν Σχεδίαςθ Μθχανζσ Ρεπεραςμζνων Καταςτάςεων Η Γλϊςςα Τι είναι ΜΡΚ; Επίπεδα Αφαίρεςθσ ςτθν Σχεδίαςθ Οριςμόσ ΜΡΚ Αναπαράςταςθ και Υλοποίθςθ ςε Ειςαγωγι ςτθν μζςω Δομι Mealy/Moore ΜΡΚ Κωδικοποίθςθ Καταςτάςεων Ρεριγραφι ΜΡΚ ςτθν παραδειγμάτων 1, 2 ι 3 always τμιματα Αναλυτικι Επιςκόπθςθ τθσ Ρροτεινόμενθ Υλοποίθςθ ΜΡΚ Χρόνοσ-Κακυςτζρθςθ ςτθν Ραραδείγματα Υλοποίθςθσ ΜΡΚ Λειτουργικόσ Ζλεγχοσ και ςε Ρροςομοίωςθ Ρεριγραφζσ Moore/Mealy Συνκεςιμότθτα Αρχικοποίθςθ 13 Αναπαράςταςη και Τλοποίηςη ςε H μπορεί να χρθςιμοποιθκεί ςε διάφορα ςτάδια για τθν υλοποίθςθ ενόσ ςυςτιματοσ από ιδζα ςε κφκλωμα Δυνατότθτεσ: Οριςμόσ Απαιτιςεων (Requirements Specification) Ζγγραφθ Τεκμθρίωςθ (Documentation) Ζλεγχοσ μζςω Ρροςομοίωςθσ (Simulation) Λειτουργικόσ Ζλεγχοσ (Functional Test) Συνκεςιμότθτα ςε Σχθματικό, δθλ. ςφνολο από πφλεσ τόχοι Αξιόπιςτθ διεργαςία ςχεδίαςθσ με χαμθλζσ απαιτιςεισ κόςτουσ και χρόνου Αποφυγι και πρόλθψθ λακϊν ςχεδίαςθσ 14 7

Περιεχόμενα Τυπικι οι Σχεδίαςθσ Ιεραρχία ςτθν Σχεδίαςθ Μθχανζσ Ρεπεραςμζνων Καταςτάςεων Η Γλϊςςα Τι είναι ΜΡΚ; Επίπεδα Αφαίρεςθσ ςτθν Σχεδίαςθ Οριςμόσ ΜΡΚ Αναπαράςταςθ και Υλοποίθςθ ςε Ειςαγωγι ςτθν μζςω Δομι Mealy/Moore ΜΡΚ Κωδικοποίθςθ Καταςτάςεων Ρεριγραφι ΜΡΚ ςτθν παραδειγμάτων 1, 2 ι 3 always τμιματα Αναλυτικι Επιςκόπθςθ τθσ Ρροτεινόμενθ Υλοποίθςθ ΜΡΚ Χρόνοσ-Κακυςτζρθςθ ςτθν Ραραδείγματα Υλοποίθςθσ ΜΡΚ Λειτουργικόσ Ζλεγχοσ και ςε Ρροςομοίωςθ Ρεριγραφζσ Moore/Mealy Συνκεςιμότθτα Αρχικοποίθςθ 15 Μονάδα NAND Οριςμόσ dataflow (ροήσ) module nand(a, b, f); a b g1 t NAND g2 f input a, b; output f; module 16 8

Μονάδα NAND Οριςμόσ dataflow (ροήσ) module nand(a, b, f); a b g1 t g2 f input a, b; output f; module 17 Μονάδα NAND Οριςμόσ dataflow (ροήσ) module nand(a, b, f); a b g1 t g2 f input a, b; output f; wire t; assign t = a & b; assign f = ~t; module 18 9

Πολυπλέκτησ Οριςμόσ dataflow a b f module mux(a, b, sel, f); input a, b, sel; output f; module sel a b sel f x y 0 x x y 1 y 19 Πολυπλέκτησ Οριςμόσ dataflow a b f module sel(a, b, sel, f); input a, b, sel; output f; assign f = sel? b : a; sel module a b sel f x y 0 x x y 1 y 20 10

Πολυπλέκτησ Οριςμόσ ςυμπεριφοράσ a b sel f module sel(a, b, sel, f); input a, b, sel; output f; reg f; always @(sel or a or b) begin a b sel f module x y 0 x x y 1 y 21 Πολυπλέκτησ Οριςμόσ ςυμπεριφοράσ a f b sel a b sel f x y 0 x x y 1 y 22 module sel(a, b, sel, f); input a, b, sel; output f; reg f; always @(sel or a or b) begin if (sel==0) f <= a; else f <= b; module 11

Μανταλωτήσ D (Latch) οριςμόσ ςυμπεριφοράσ module latch(d, g, q); input d, g; output q; reg q; D G Q x 0 Q module G 0 1 0 1 1 1 23 Μανταλωτήσ D (Latch) οριςμόσ ςυμπεριφοράσ module latch(d, g, q); input d, g; output q; reg q; D G Q x 0 Q 0 1 0 always @(g or d) begin if (g) q = d; module 1 1 1 24 12

Μανταλωτήσ D (Latch) με CLR οριςμόσ ςυμπεριφοράσ module latch(d, g, clr, q); input d, g, clr; output q; reg q; D G CLR Q module x x 1 0 0 1 0 0 1 1 0 1 25 Μανταλωτήσ D (Latch) με CLR οριςμόσ ςυμπεριφοράσ module latch(d, g, clr, q); input d, g, clr; output q; reg q; D G CLR Q x x 1 0 0 1 0 0 1 1 0 1 always @(g or d or clr) begin if (clr) q = 1'b0; else if (g) q = d; module 26 13

Καταχωρητήσ D (FF) οριςμόσ ςυμπεριφοράσ module dff(d, clk, q); input d, clk; output q; reg q; C CLK Q module 0 0 1 1 27 Καταχωρητήσ D (FF) οριςμόσ ςυμπεριφοράσ module dff(d, clk, q); input d, clk; output q; reg q; D CLK Q 0 0 1 1 always @(posedge clk) begin q <= d; module 28 14

Καταχωρητήσ D (FF) με SET οριςμόσ ςυμπεριφοράσ module dff(d, clk, s, q); input d, clk, s; output q; module d clk S q x 1 1 0 0 0 1 0 1 29 Καταχωρητήσ D (FF) με SET οριςμόσ ςυμπεριφοράσ module dff(d, clk, s, q); input d, clk, s; output q; reg q; d clk S q x 1 1 0 0 0 1 0 1 always @(posedge clk) begin if (s) q <= 1'b1; else q <= d; module 30 15

Μετρητήσ Οριςμόσ υμπεριφοράσ module counter (CLK, CLR, Q); input CLK, CLR; output [3:0] Q; reg [3:0] tmp; module CLR CLK Q X 0000 0 Q+1 31 Μετρητήσ Οριςμόσ υμπεριφοράσ module counter (CLK, CLR, Q); input CLK, CLR; output [3:0] Q; reg [3:0] tmp; CLR CLK Q X 0000 0 Q+1 always @(posedge CLK or posedge CLR) begin if (CLR) tmp <= 4'b0000; else tmp <= tmp + 1'b1; assign Q = tmp; module 32 16

Περιεχόμενα Τυπικι οι Σχεδίαςθσ Ιεραρχία ςτθν Σχεδίαςθ Μθχανζσ Ρεπεραςμζνων Καταςτάςεων Η Γλϊςςα Τι είναι ΜΡΚ; Επίπεδα Αφαίρεςθσ ςτθν Σχεδίαςθ Οριςμόσ ΜΡΚ Αναπαράςταςθ και Υλοποίθςθ ςε Ειςαγωγι ςτθν μζςω Δομι Mealy/Moore ΜΡΚ Κωδικοποίθςθ Καταςτάςεων Ρεριγραφι ΜΡΚ ςτθν παραδειγμάτων 1, 2 ι 3 always τμιματα Αναλυτικι Επιςκόπθςθ τθσ Ρροτεινόμενθ Υλοποίθςθ ΜΡΚ Χρόνοσ-Κακυςτζρθςθ ςτθν Ραραδείγματα Υλοποίθςθσ ΜΡΚ Λειτουργικόσ Ζλεγχοσ και ςε Ρροςομοίωςθ Ρεριγραφζσ Moore/Mealy Συνκεςιμότθτα Αρχικοποίθςθ 33 Δομή τησ Γλώςςασ Μοιάηει αρκετά με τθν C Ρρο-επεξεργαςτι (Preprocessor) Λζξεισ Κλειδιά (Keywords) Τελεςτζσ = ==,!= <, >, <=, >= &&? : & and or ~ not ^ xor Είναι βαςιςμζνθ ςτθν ζννοια του «γεγονότοσ» (event) `timescale 1ns / 1ns `define dh 2 // e.g.: q <= #`dh d; // `undef dh `ifdef dh / `ifndef dh... `else... `if `include def.h 34 17

Λίςτεσ Ευαιςθηςίασ (Sensitivity Lists) @() (διαβάηεται at) Λογικι ζκφραςθ Επιτρζπονται μόνο οι εκφράςεισ: or posedge (+ακμι), negedge (-ακμι) always @(posedge clk or negedge rst_)... always @(opcode or b or c) if (opcode == 32 h52a0234e) a = b ^ (~c); always @(posedge a or posedge b)... always @(posedge a, posedge b) always #5 clk=~clk Στθν περιγραφι ςυνδυαςτικισ λογικισ, όλα τα ςιματα πρζπει να περιλαμβάνονται Οι (+, -) ακμζσ χρθςιμοποιοφνται μόνο για ολόγια Σιματα αρχικοποίθςθσ (reset) 35 Σμήματα always και initial Τμιμα initial initial begin // run once a=0; b=0; #5; a=1; b=1; Εκτελείται μια φορά, ςτθν εκκίνθςθ τθσ προςομοίωςθσ Δεν επαναλαμβάνεται Χρθςιμοποιείται για να παρζχει διανφςματα ειςόδου ςτο κφκλωμα Δεν είναι ςυνκζςιμο Τμιμα always always @(b or c) begin // run always a <= b & c; Εκτελείται ςτθν εκκίνθςθ τθσ προςομοίωςθσ Είναι άπειροσ βρόχοσ Χρθςιμοποιείται για να περιγράφει διαρκι και μόνιμθ ςυμπεριφορά (ςυνδυαςτικι ι ακολουκιακι) Είναι ςυνκζςιμο 36 18

Σύποι Δεδομένων και Πράξεισ Τιμζσ Σιματοσ ςε Λογικι 4-ρων τιμϊν (4-value logic) Σιμι Ερμθνεία Χριςθ 0 Λογικό 0, άρνθςθ Λογικό 0 1 Λογικό 1, κατάφαςθ Λογικό 1 X Άγνωςτο ι Μθ αρχικοποιθμζνο i. Τιμι εκκίνθςθσ ακολουκιακϊν ςτοιχείων και ςθμάτων, ii. Ζξοδοσ πφλθσ με ειςόδουσ ςτο Z, iii. Τιμι ςε περίπτωςθ ταυτόχρονθσ ανάκεςθσ (0 και 1) Z Υψθλισ εμπζδθςθσ αςφνδετο ι τρικατάςτατο i. Τιμι μθ οδθγοφμενθσ ειςόδου, ii. Ζξοδοσ τρικατάςτατου οδθγθτι 37 Σύποι Δεδομένων και Πράξεισ AND 2 ειςόδων: AND 4-ρων τιμϊν 0 1 X Z 0 0 1 0 0 1 0 1 X X initial... X 0 X X X always @(posedge clk) if (reset)... else... Z 0 X X X 38 19

υμβάςεισ τησ γλώςςασ Η είναι case sensitive. Οι λζξεισ κλειδιά πρζπει να είναι με μικρά γράμματα Σχόλια Για μία γραμμι: // Για πολλζσ: /* */ Τφποι Δεδομζνων Σιμι Ερμθνεία 0 Λογικό 0, άρνθςθ 1 Λογικό 1, κατάφαςθ X Άγνωςτο ι Μθ αρχικοποιθμζνο Z Υψθλισ εμπζδθςθσ αςφνδετο ι τρικατάςτατο 39 Αναπαράςταςη Ακέραιων Αριθμών <size> <base><number> <size> δείχνει τον αρικμό από bits <base> είναι θ βάςθ Βάςθ φμβολο Επιτρεπτζσ Σιμζσ Δυο b ι B 0, 1, x,x, z, Z,?, _ Οκτϊ o ι O 0-7, x, X, z, Z,?, _ Δζκα d ι D 0-9,x, X, z, Z,?, _ Δεκαζξι h ι H 0-9,a-f, A-F, x, X, z, Z,?, _ Αν παραλειφκεί ο αρικμόσ bits το μζγεκοσ εξαρτάται (32-bits) Το _ χρθςιμοποιείται για ευκολότερθ ανάγνωςθ 100 4 b1111 6 h3a 6 b111010 12 h13x 8 b10_10_1110 40 20

Σελεςτέσ -1 Αρικμθτικοί Σελεςτισ Χριςθ Περιγραφι + m + n Ρρόςκεςε m και n - m n Αφαίρεςε n από m - -m Συμπλιρωμα/Άρνθςθ του m (2 s complement) * m * n Ρολλαπλαςίαςε m και n / m / n Διαίρεςθ m με n % m % n Υπόλοιπο Διαίρεςθσ m με n Επιπζδου bit ~ ~m Αντζςτρεψε κάκε ψθφίο του m & m & n AND κάκε ψθφίου των m και n m n OR κάκε ψθφίου των m και n ^ m ^ n XOR κάκε ψθφίου των m και n ~^ ^~ m ~^ n m ^~ n XNOR κάκε ψθφίου των m και n 41 Σελεςτέσ - 2 Ελάττωςθσ Σελεςτισ Χριςθ Περιγραφι & &m AND όλων των ψθφίων του m (1-bit αποτζλεςμα) ~& ~&m NAND όλων των ψθφίων του m (1-bit αποτζλεςμα) m OR όλων των ψθφίων του m (1-bit αποτζλεςμα) ~Ι ~ m NOR όλων των ψθφίων του m (1-bit αποτζλεςμα) ^ ^m XOR όλων των ψθφίων του m (1-bit αποτζλεςμα) ~^ ^~ ~^m ^~m XNOR όλων των ψθφίων του m (1-bit αποτζλεςμα) Λογικοί!!m Είναι το m ψευδζσ; (1-bit αποτζλεςμα) && m && n Είναι το m και το n αλθκι; (1-bit αποτζλεςμα) m n Είναι το m ι το n αλθκζσ; (1-bit αποτζλεςμα) 42 21

Σελεςτέσ - 3 Ιςότθτασ, Ανίςωςθσ Σελεςτισ Χριςθ Περιγραφι == m == n Είναι το m ίςο με το n; (1-bit αποτζλεςμα)!= m!= n Είναι το m διάφορο του n; (1-bit αποτζλεςμα) > >= < <= m > n m >= n m < n m <= n Είναι το m μεγαλφτερο του n; Είναι το m μεγαλφτερο ι ίςο του n; (1-bit αποτζλεςμα) Είναι το m μικρότερο του n; Είναι το m μικρότερο ι ίςο του n; (1-bit αποτζλεςμα) Μετατόπιςθσ << m << n Μετατόπιςε το m αριςτερά n φορζσ >> m >> n Μετατόπιςε το m δεξιά n φορζσ 43 Σελεςτέσ - 4 Διάφοροι Τελεςτισ Χριςθ Ρεριγραφι? : sel? m : n Αν το sel είναι αλθκζσ επζςτρεψε m αλλιϊσ n {} {m, n} Ζνωςε τα διανφςματα m και n επιςτρζφοντασ τθν ςυνζνωςθ τουσ {{ }} {n{m}} Επανάλαβε το διάνυςμα m ν φορζσ 44 22

Βαςική Οντότητα Μονάδα - Module module MOD1(a, b, f); a b MOD1 f input a, b; output f; include mod2.v module 45 Θύρεσ Είςοδοι, Έξοδοι μιασ Μονάδασ arith1 module arith1 (bi_out, out, in1, in2, in3); in1 in2 bi_out inout bi_out; output out; input in1, in2; input in3; in3 out module 46 23

Μονάδεσ και Εμφανίςεισ (Instances) Η διαδικαςία που επικαλοφμαςτε μια μονάδα και τθν τοποκετοφμε ςτο κφκλωμα ονομάηεται εμφάνιςθ (instantiation) module nand(out, a, b,); input a, b; output out; wire out = ~ (a & b); module 47 υντακτική Δομή μιασ Μονάδασ δθλϊςεισ τμιματα always 1 ι περιςςότερα τμιμα initial 1 ι κανζνα modules/primitives instantiations module test(a, b); input a;output b; reg b; wire c; always @(posedge a) begin b = #2 a; always @(negedge a) begin b = #2 ~c; not N1 (c, a); initial begin module b = 0; 48 24

Χρόνοσ ςτην - 1 Μονάδεσ χρόνου ςτθν προςομοίωςθ `timescale <time_unit base>/<precision base> time_unit base μονάδα μζτρθςθσ χρόνου: αρικμόσ 1, 10 ι 100 με φυςικζσ μονάδεσ time_precision βιματα δεκαδικισ ακρίβειασ τθσ μονάδασ κατά τθν προςομοίωςθ φυςικζσ μονάδεσ χρόνου: s, ms, us, ns, ps, fs Ραράδειγμα: timescale 1 ns / 10 ps οι μονάδεσ κα είναι ςε 1 ns με ακρίβεια 10 ps, 2 δεκαδικά Αδρανειακι Κακυςτζρθςθ #(delay) : αναμονι για χρόνο (delay) μονάδεσ Ραράδειγμα: #5 a=8 h1a; 49 Χρόνοσ ςτην - 2 Χρονικι Αναμονι θμάτων @(<edge> σήμα or <edge> σήμα or ) edge posedge (κετικι ακμι) ι negedge (αρνθτικι ακμι) or Αναμονι ςε πολλαπλά εναλλακτικά ςιματα Ραραδείγματα: always @(posedge clk) always @(negedge clk) always @(w) always @(a or b or c) always @(posedge clk or posedge reset) 50 25

Θεμελιώδη τοιχεία Η ορίηει κεμελιϊδεισ μονάδεσ-ςτοιχεία που μποροφν να χρθςιμοποιθκοφν ωσ εμφανίςεισ gate_type #(delay) instance_name [instance_array_range] (terminal, terminal, ) and or xor Σφποσ Πφλθσ nand nor xnor ειρά υνδζςεων 1 ζξοδοσ, 1 ι περιςςότερεσ είςοδοι buf Not 1 ζξοδοσ, 1 είςοδοσ Ραραδείγματα: and i1 (out,in1,in2); and #2 U100 (out, a, b); and #5 (o,i1,i2,i3,i4); not ib [31:0] (y, a); 51 Σύποι Μοντελοποίηςησ Δομικι (Structural) module_name instance_name [instance_array_range] (signal, signal,... ); module_name instance_name [instance_array_range] (.port_name(signal), (.port_name(signal),...); counter counter_1( clk, enable, count_out); dff u2 (.clk(clock),.q(q[1]),.data(d[1])); Ροι Δεδομζνων (Dataflow) υμπεριφοράσ ι Διαδικαςτικι (Behavioural, Procedural) gate_type #(delay) instance_name [instance_array_range] (terminal, terminal, ); wire = (a & b) (c & d); initial always @ (sensitivity list) begin-- always @(a or b or ci) begin sum = a + b + ci; initial begin bus = 16'h0000; #10 bus = 16'hC5A5; #20 bus = 16'hFFAA; 52 26

Σύποι μεταβλητών ςτην Σφποσ Ιδιότθτεσ Παράδειγματα wire reg parameter integer 53 Μοντελοποιεί μια ςφνδεςθ, «καλϊδιο», θ οποία δομικά διαςφνδεει δυο ςιματα Αποκθκεφει τιμι ανάκεςθσ από διαδικαςία, κρατϊντασ τθν για κφκλο «δζλτα» ι μζχρι τθν επόμενθ ανάκεςθ. Δεν ςυνεπάγεται απαραιτιτωσ ςφνκεςθ ςε καταχωρθτι. Στακερά. Ρρζπει να είναι ακζραια τιμι για ςφνκεςθ. Ακζραια μεταβλθτι για χριςθ ςε βρόχουσ. Δεν ζχουν απεικόνιςθ ςτο υλικό και κρατάνε απλά αρικμθτικζσ τιμζσ. wire Net1; wire [2:0] fout; assign Net1 = 1 b1; reg [3:0] Y1, Y2; parameter A=4 b1011, B=4 b1000; parameter Stop=0, Slow=1, Medium=2, Fast=3; integer N; Μεταβλητέσ wire Ρεριγράφουν μόνο ςυνδυαςτικι λογικι δεν ζχουν μνιμθ δεν υλοποιοφν ςτοιχεία μνιμθσ Η αξιολόγθςθ τουσ και θ ςθμαςιολογία τουσ αντιςτοιχοφν ςε παράλλθλεσ οντότθτεσ wire sum = a ^ b; wire c = sum b; wire a = ~d; wire sum;... assign sum = a ^ b; wire muxout = (sel == 1)? a : b; wire op = ~(a & ((b)? ~c : d) ^ (~e)); 54 27

Μεταβλητέσ wire Ραράδειγμα μονάδασ πρόςκεςθσ 1-bit module adder(a, b, sum, cout); input a, b; output sum, cout; wire sum = a ^ b; wire cout = a & b; module 55 Μεταβλητέσ reg, διεργαςίεσ και ακολουθιακή λογική μεταβλθτζσ με μνιμθ διατθροφν τθν κατάςταςθ τουσ μζχρι τθν επόμενθ ανάκεςθ μεταβλθτζσ διαδικαςιϊν always, initial δεν ςυνεπάγονται καταχωρθτι ςε επίπεδο υλικοφ reg a; initial begin a = 0; #5; a = 1; reg q; always @(posedge clk) begin q = #2 (load)? d : q; 56 28

Μεταβλητέσ reg, διεργαςίεσ και ακολουθιακή λογική in1 in2 out in3 reg out; Ιζοδύναμοι οριζμοί always @(in1 or in2 or in3) out = in1 (in2 & in3); wire out = in1 (in2 & in3); 57 Αναθέςεισ ςε Διαδικαςίεσ Με κακυςτζρθςθ a = #10 b; c = a; @t = 0 @t =10 : a = b; // b @t=0 // @t = 10 : c = a; // a @t= 10 // #10 a = b; c = a @t = 0 @t =10 : a = b; // b @t=10 // @t = 10 : c = a; // a @t= 10 // a <= #10 b; c <= a; @t = 0 @t =10 : a = b; // b @t= 0 // @t = 0 : c = a; // a @t= 0 // 58 29

Θύρεσ Μονάδων net inout net, reg input net output net, reg net Οι είςοδοι και οι είςοδοι-ζξοδοι ζχουν τφπο wire μζςα ςτθν μονάδα Οι ζξοδοι μπορεί να ζχουν είτε τφπο wire (ςυνδυαςτικι εξίςωςθ) είτε reg από always τμιμα 59 υνδέςεισ Μονάδων και Εμφανίςεων Κατά κζςθ ιματοσ Κατά όνομα ιματοσ module adder(sum, in1, in2);... module; adder adder_inst (a, b, c); // sum = a, // in1 = b, // in2 = c. module adder(sum, in1, in2);... module; adder adder_inst(.sum(c),.in1(a),.in2(b)); // sum = c, // in1 = a, // in2 = b. 60 30

Δίαυλοι - Busses arith in1[1:0] in1[1] in1[0] in2[1:0] in2[1] out[0] module arith (out, in1, in2); output [1:0] out; input [1:0] in1, in2; out[1:0] in2[0] out[1] module 61 Δίαυλοι - Busses Συμβάςεισ [MSB:LSB] Ρροςοχι ςτο πλάτοσ module adder (a, b, sum, cout); input [7:0] a, b; output [7:0] sum; output cout; wire [8:0] temp = a + b; wire [7:0] sum = temp[7:0]; wire cout = temp[8]; module; 62 31

υνένωςη ημάτων // sign-ext 8-bit number // a b 3 5 8 c wire [7:0] unsigned; wire [15:0] sign_ext = { (unsigned[7]? 8 hff : 8 h0), unsigned }; wire [2:0] a; wire [4:0] b; wire [7:0] c = {a, b}; wire [2:0] a; wire [4:0] b; wire [7:0] c = {a, b}; wire [11:0] d = {2{b}, b}; wire [11:0] d = {b, b, b}; wire [25:0] e = {2{3{b}}, a}; 63 υνθήκη if/else το if/else επιτρζπεται μόνο ςε always αν θ ςυνκικθ περικλείει πολλαπλζσ εντολζσ χρθςιμοποιείται begin/ επιτρζπονται πολλαπλά else if if μζςα ςε if module mux (a, b, sel, out); input [4:0] a, b; input sel; output [4:0] out; reg [4:0] out; always @(a or b or sel) begin if (!sel) else module out = a; out = b; 64 32

υνθήκη case το case επίςθσ επιτρζπεται μόνο ςε always μόνο για ςτακερζσ εκφράςεισ δεν υπάρχει break module mux (a, b, c, d, sel, out); input [4:0] a, b, c, d; input [1:0] sel; output [4:0] out; reg [4:0] out; always @(a or b or c or d or sel) begin case (sel) 2'b00: out = a; 2'b01: out = b; 2'b10: out = c; 2'b11: out = d; default: out = 5'bx; case module 65 Παράμετροι και Χρήςη τουσ Καταχωρθτισ Μεταβλθτοφ Πλάτουσ module RegLd(D, Q, load, clk); parameter N = 8; parameter dh = 2; input [N-1:0] D; output [N-1:0] Q; input load, clk; reg [N-1:0] Q; always @(posedge clk) if (load) Q = #dh D; Πικανζσ Εμφάνιςεισ του RegLd reg0(d0, q0, ld, clk); RegLd #(16,2) reg1(d1, q1, ld, clk); RegLd reg2(d2, q2, ld, clk); defparam reg2.n = 4; defparam reg2.dh = 4; module 66 33

Διαδικαςίεσ υςτήματοσ Κακιερωμζνεσ διαδικαςίεσ που ορίηει ζνα εργαλείο EDA Ξεκινοφν με $, λ.χ. $monitor Όνομα Διαδικαςίασ $time $display $monitor $stop $finish $random $readmemh, $readmemb 67 Λειτουργία Επιςτρζφει τον χρόνο τθσ προςομοίωςθσ Τυπϊνει τιμζσ ςθμάτων ανάλογθ τθσ printf $display("format-string", expr1,, exprn); %d (decimal), %h (hex), %b (binary), %t (time) Ραρακολουκεί ςιματα ωσ γεγονότα, και τα τυπϊνει όταν αποκτιςουν νζα τιμι ζχει ανάλογα ορίςματα όπωσ θ $display Διακόπτει τθν προςομοίωςθ Ολοκλθρϊνει τθν προςομοίωςθ Επιςτρζφει ζνα 32-bit ψευδοτυχαίο αρικμό Ανάγνωςθ περιεχομζνων μνιμθσ Διαδικαςίεσ υςτήματοσ Παραδείγματα $display("error at time %t: value is %h, expected %h", $time, actual_value, expected_value); $monitor("cs=%b, ns=%b", cs, ns) $random %64 Όνομα Διαδικαςίασ $dumpon, $dumpoff, $dumpvars $setup, $hold, $period $fopen, $fclose, $fmonitor, $fdisplay $sdf_annotate Λειτουργία Ορίςματα αρχείου Change Dump (VCD) Ζλεγχοι χρονικϊν περιοριςμϊν Συναρτιςεισ αρχείων Επιςφναψθ αρχείου SDF (Standard Delay Format) ςτισ εμφανίςεισ 68 34

Περιεχόμενα Τυπικι οι Σχεδίαςθσ Ιεραρχία ςτθν Σχεδίαςθ Μθχανζσ Ρεπεραςμζνων Καταςτάςεων Η Γλϊςςα Τι είναι ΜΡΚ; Επίπεδα Αφαίρεςθσ ςτθν Σχεδίαςθ Οριςμόσ ΜΡΚ Αναπαράςταςθ και Υλοποίθςθ ςε Ειςαγωγι ςτθν μζςω Δομι Mealy/Moore ΜΡΚ Κωδικοποίθςθ Καταςτάςεων Ρεριγραφι ΜΡΚ ςτθν παραδειγμάτων 1, 2 ι 3 always τμιματα Αναλυτικι Επιςκόπθςθ τθσ Ρροτεινόμενθ Υλοποίθςθ ΜΡΚ Χρόνοσ-Κακυςτζρθςθ ςτθν Ραραδείγματα Υλοποίθςθσ ΜΡΚ Λειτουργικόσ Ζλεγχοσ και ςε Ρροςομοίωςθ Ρεριγραφζσ Moore/Mealy Συνκεςιμότθτα Αρχικοποίθςθ 69 Χρόνοσ και Γεγονότα Η ςθμαςιολογία και προςομοίωςθ βαςίηονται ςε αξιολόγθςθ γεγονότων a = #5 b; #10 c = a; wait (a) b = 1; always @(posedge clk) a = b + 1; a <= b; always clk = #(`period/2) ~clk; b <= a; c <= a & b; @(negedge clk); Κάκε πρόταςθ τθσ ςυνεπάγεται Αξιολόγθςθ εκφράςεων (Δεξιά) (t, e) Ειςαγωγι τθσ ανάκεςθσ ςτθν ουρά γεγονότων (Αριςτερά) Για γεγονότα που ςυμβαίνουν παράλλθλα δεν υπάρχει εγγφθςθ ωσ προσ τθν ςειρά τουσ 70 35

Γεγονότα και Καθυςτερήςεισ Κάκε πρόταςθ ςυνδζεται με τον αρχικό τθσ χρόνο Τμιματα initial, always λειτουργοφν ςειριακά, εκτόσ αν περιζχουν ανακζςεισ <= initial begin a = 0; b = 0; c = 0; clk = 0; always begin clk = #10 1; clk = #10 0; wire #4 [3:0] comb = a + b; 0 10, 20, 30, 40, 50 4, 14, 34 0 10 20 30 40 50 always @(posedge clk) a <= b + 1; always @(posedge clk) b <= c + 1; always @(posedge clk) c <= #5 a + 1; 10, 30 10, 30 15, 35 71 Καθυςτερήςεισ Πυλών Α Β C tmp Z Α Β C tmp Z 0 5 10 15 20 25 ns Ζςτω Δ AND = 2ns, Δ OR = 1ns, με μθδενικι κακυςτζρθςθ των ςυνδζςεων Ρόςα και ποια μονοπάτια υπάρχουν; Οι κφματομορφζσ δείχνουν τθν ςυμπεριφορά του κυκλϊματοσ για διανφςματα A, B, C. 72 36

Χρόνοσ Καθυςτέρηςη ςτην Λειτουργικόσ Ζλεγχοσ (Functional Test) Ρροςεγγιςτικι, υψθλοφ επιπζδου κακυςτζρθςθ always @(posedge clk) q <= #2 d; // FF με 2 μονάδες καθσζηέρηζη // Στον λειτουργικό ζλεγχο θ ςυνδυαςτικι κακυςτζρθςθ κεωρείται αμελθτζα Ζλεγχοσ ανά κφκλο (cycle-based, cycle-accurate) wire a = (b & c) d; // μόνο λειηοσργία, ότι καθσζηέρηζη // Στθν δοκιμι οι κακυςτεριςεισ χρθςιμοποιοφνται για να φτιαχτεί το εξωτερικό ερζκιςμα του κυκλϊματοσ Διανφςματα ειςόδου και ο χρονιςμόσ τουσ τατικι Χρονικι Ανάλυςθ (Static Timing Analysis) Μετά τθν ςφνκεςθ γίνεται ζλεγχοσ του κφκλου 73 Περιεχόμενα Τυπικι οι Σχεδίαςθσ Ιεραρχία ςτθν Σχεδίαςθ Μθχανζσ Ρεπεραςμζνων Καταςτάςεων Η Γλϊςςα Τι είναι ΜΡΚ; Επίπεδα Αφαίρεςθσ ςτθν Σχεδίαςθ Οριςμόσ ΜΡΚ Αναπαράςταςθ και Υλοποίθςθ ςε Ειςαγωγι ςτθν μζςω Δομι Mealy/Moore ΜΡΚ Κωδικοποίθςθ Καταςτάςεων Ρεριγραφι ΜΡΚ ςτθν παραδειγμάτων 1, 2 ι 3 always τμιματα Αναλυτικι Επιςκόπθςθ τθσ Ρροτεινόμενθ Υλοποίθςθ ΜΡΚ Χρόνοσ-Κακυςτζρθςθ ςτθν Ραραδείγματα Υλοποίθςθσ ΜΡΚ Λειτουργικόσ Ζλεγχοσ και ςε Ρροςομοίωςθ Ρεριγραφζσ Moore/Mealy Συνκεςιμότθτα Αρχικοποίθςθ 74 37

Λειτουργικόσ Έλεγχοσ Ελζγχουμε τθν κάκε μονάδα χωριςτά Ρροδιαγραφζσ Χρονιςμόσ (ανά κφκλο) Τιμζσ ςθμάτων Λειτουργίασ Συνδζουμε τισ επιμζρουσ μονάδεσ ςτο ςυνολικό ςχζδιο Ελζγχουμε τθν ςυνολικι λειτουργία 75 Λειτουργικόσ Έλεγχοσ Για κάκε μονάδα υλοποιοφμε ζνα πλαίςιο ελζγχου testbench Εμφανίηει τθν υπό ζλεγχο μονάδα Εφαρμόηει διανφςματα ειςόδων ςτον χρόνο Ελζγχει τα διανφςματα εξόδων ςτον χρόνο Μεκοδολογίεσ ελζγχου 1. Μθ-αυτόματα Ο μθχανικόσ ελζγχει ότι τα ςιματα είναι ςωςτά 2. Αυτόματα Οι τιμζσ ελζγχονται αυτόματα ζναντι των αναμενόμενων 76 38

Παράδειγμα testbench Testbench module half_adder_testbench; reg a, b; wire sum, cout; half_adder half_adder_instance (a, b, sum, cout); initial begin a = 0; b = 0; #5 $display( a: %x, b: %x, sum: %x, cout: %x, a, b, sum, cout); a = 1; #5 $display( a: %x, b: %x, sum: %x, cout: %x, a, b, sum, cout); B = 1; #5 $display( a: %x, b: %x, sum: %x, cout: %x, a, b, sum, cout); a = 0; #5 $display( a: %x, b: %x, sum: %x, cout: %x, a, b, sum, cout); Μονάδα module half_adder(a, b, sum, cout); wire sum = a ^ b; wire cout = a & b; module; module; 77 Προςομοιωτήσ Ραράκυρο κειμζνου 78 39

Προςομοιωτήσ Ραράκυρο κυμματομορφϊν 79 Παράδειγμα Μετρητήσ 8-bit χζδιο Μετρθτι module counter(clk, reset, count); input clk, reset; output [7:0] count; Reg [7:0] count; Μονάδα Ελζγχου module counter_testbench; reg clk, reset; wire [7:0] count; counter counter_instance (clk, reset, count); always (@posedge clk) begin if (reset) count = #2 8 b0; else count = #2 count + 1; module initial begin clk = 0; $monitor("time %d ns: count=%d", $time, count); #100 reset = 1; #150 reset = 0; always begin #20 clk = ~clk; module 80 40

Παράδειγμα Μετρητήσ 8-bit time 0 ns: count= x time 102 ns: count= 0 time 262 ns: count= 1 time 302 ns: count= 2 time 342 ns: count= 3 time 382 ns: count= 4 time 422 ns: count= 5 time 462 ns: count= 6 81 Περιεχόμενα Τυπικι οι Σχεδίαςθσ Ιεραρχία ςτθν Σχεδίαςθ Μθχανζσ Ρεπεραςμζνων Καταςτάςεων Η Γλϊςςα Τι είναι ΜΡΚ; Επίπεδα Αφαίρεςθσ ςτθν Σχεδίαςθ Οριςμόσ ΜΡΚ Αναπαράςταςθ και Υλοποίθςθ ςε Ειςαγωγι ςτθν μζςω Δομι Mealy/Moore ΜΡΚ Κωδικοποίθςθ Καταςτάςεων Ρεριγραφι ΜΡΚ ςτθν παραδειγμάτων 1, 2 ι 3 always τμιματα Αναλυτικι Επιςκόπθςθ τθσ Ρροτεινόμενθ Υλοποίθςθ ΜΡΚ Χρόνοσ-Κακυςτζρθςθ ςτθν Ραραδείγματα Υλοποίθςθσ ΜΡΚ Λειτουργικόσ Ζλεγχοσ και ςε Ρροςομοίωςθ Ρεριγραφζσ Moore/Mealy Συνκεςιμότθτα Αρχικοποίθςθ 82 41

και Λογική ύνθεςη Η διαδικαςία Σφνκεςθσ μετατρζπει τθν περιγραφι ςε: 1. Ρεριγραφι ςε επίπεδο πυλϊν 2. Απεικόνιςθ ςε βιβλιοκικθ πυλϊν επιλογι μεγεκϊν Η διαδικαςία ακολουκεί μια καμπφλθ Ραρζτο Ρολλαπλά ςθμεία (Εμβαδοφ, Κακυςτζρθςθσ) ανάλογα με τουσ περιοριςμοφσ Εμβαδό (μm 2 ) Καμπύλη Παρέηο (Pareto) Μη ΒέληιζηηΛύζη Βέληιζηερ Λύζειρ Καθςζηέπηζη (ns) 83 υνθεςιμότητα υνθέςιμεσ και μη εκφράςεισ Εκφράςεισ που είναι ςυνκζςιμεσ παράγουν ςχθματικό (δίκτυο πυλϊν) για ASIC ι FPGA λ.χ.: wire [7:0] sum = temp[7:0] & {8{a}}; wire cout = temp[8] Μθ ςυνκζςιμοσ κϊδικασ χρθςιμοποιείται για τθν διαδικαςία προςομοίωςθσ Δεν αποτελεί μζροσ του ςχεδίου, αλλά τθσ δοκιμισ/ελζγχου του λ.χ.: initial begin a = 0; b = 0; #5 a = 1; b = 1; 84 42

Περιεχόμενα Τυπικι οι Σχεδίαςθσ Ιεραρχία ςτθν Σχεδίαςθ Μθχανζσ Ρεπεραςμζνων Καταςτάςεων Η Γλϊςςα Τι είναι ΜΡΚ; Επίπεδα Αφαίρεςθσ ςτθν Σχεδίαςθ Οριςμόσ ΜΡΚ Αναπαράςταςθ και Υλοποίθςθ ςε Ειςαγωγι ςτθν μζςω Δομι Mealy/Moore ΜΡΚ Κωδικοποίθςθ Καταςτάςεων Ρεριγραφι ΜΡΚ ςτθν παραδειγμάτων 1, 2 ι 3 always τμιματα Αναλυτικι Επιςκόπθςθ τθσ Ρροτεινόμενθ Υλοποίθςθ ΜΡΚ Χρόνοσ-Κακυςτζρθςθ ςτθν Ραραδείγματα Υλοποίθςθσ ΜΡΚ Λειτουργικόσ Ζλεγχοσ και ςε Ρροςομοίωςθ Ρεριγραφζσ Moore/Mealy Συνκεςιμότθτα Αρχικοποίθςθ 85 Σι είναι οι FSMs? 10 0 10 20 10 20 10 20 Αναψυκτικό 30 40 Αναψυκτικό Ρζςτα 10c Σιμι: 30c 86 43

Σι είναι οι FSMs? 87 Σαξινόμηςη Ακολουθιακών Μοντέλων Τπολογιςμού Μνιμθ, Ρολλαπλζσ ενεργζσ καταςτάςεισ, όχι απαραίτθτθ φπαρξθ υλοποίθςθσ ςε κφκλωμα Δίκτυα Θζςεων- Μεταβάςεων, Άλγεβρεσ Διαδικαςιϊν Μνιμθ, Μία μοναδικι ενεργι κατάςταςθ, Κωδικοποίθςθ Καταςτάςεων, Δυαδικζσ Εξιςϊςεισ Μθχανι Ρεπεραςμζνων Καταςτάςεων (ΜΡΚ) Συνδυαςτικι Λογικι, Αλγεβρικοί/Δυαδικοί Μεταςχθματιςμοί, Διεπίπεδθ/Ρολφ-επίπεδθ Υλοποίθςθ Δυαδικι Άλγεβρα B 88 44

Περιεχόμενα Τυπικι οι Σχεδίαςθσ Ιεραρχία ςτθν Σχεδίαςθ Μθχανζσ Ρεπεραςμζνων Καταςτάςεων Η Γλϊςςα Τι είναι ΜΡΚ; Επίπεδα Αφαίρεςθσ ςτθν Σχεδίαςθ Οριςμόσ ΜΡΚ Αναπαράςταςθ και Υλοποίθςθ ςε Ειςαγωγι ςτθν μζςω Δομι Mealy/Moore ΜΡΚ Κωδικοποίθςθ Καταςτάςεων Ρεριγραφι ΜΡΚ ςτθν παραδειγμάτων 1, 2 ι 3 always τμιματα Αναλυτικι Επιςκόπθςθ τθσ Ρροτεινόμενθ Υλοποίθςθ ΜΡΚ Χρόνοσ-Κακυςτζρθςθ ςτθν Ραραδείγματα Υλοποίθςθσ ΜΡΚ Λειτουργικόσ Ζλεγχοσ και ςε Ρροςομοίωςθ Ρεριγραφζσ Moore/Mealy Συνκεςιμότθτα Αρχικοποίθςθ 89 Μηχανέσ Πεπεραςμένων Καταςτάςεων Μια ΜΠΚ ορίηεται ωσ μια πεντάδα (I, O, S, d, l), όπου I είναι ζνα πεπεραςμζνο, μθ μθδενικό ςφνολο ειςόδων Ο είναι ζνα πεπεραςμζνο, μθ μθδενικό ςφνολο εξόδων S είναι ζνα πεπεραςμζνο, μθ μθδενικό ςφνολο καταςτάςεων δ είναι θ ςυνάρτθςθ επόμενθσ κατάςταςθσ, δ : I x S S λ είναι θ ςυνάρτθςθ εξόδων και αντιςτοιχεί λ : I x S O (Mealy) λ : S O (Moore) Μια ΜΡΚ αναπαρίςταται ωσ γράφοσ όπου οι καταςτάςεισ είναι κόμβοι, οι μεταβάςεισ (δ) ακμζσ ωσ πίνακασ ροισ ωσ πίνακασ κφβων 90 45

Μηχανέσ Πεπεραςμένων Καταςτάςεων Ακολουκιακό υπολογιςτικό πρότυπο, υλοποιιςιμο απευκείασ ςτο υλικό Χαρακτθριςτικά υλοποίθςθσ ΜΡΚ: Είςοδοι, Ζξοδοι, Τρζχουςα κατάςταςθ, Επόμενθ κατάςταςθ Σε κάκε ακμι του ρολογιοφ, ςυνδυαςτικι λογικι παράγει εξόδουσ, επόμενθ κατάςταςθ, ωσ προσ τισ ειςόδουσ και τθν τρζχουςα κατάςταςθ. 91 Μηχανέσ Πεπεραςμένων Καταςτάςεων Συνολικι Κατάςταςθ Πλοι οι πικανοί ςυνδυαςμοί τιμϊν κατάςταςθσ ςτα ακολουκιακά ςτοιχεία μνιμθσ Μετάβαςθ Αλλαγι από τθν κατάςταςθ Χ ςτθν Ψ - ςτθν ακμι του ρολογιοφ Το ρολόι ελζγχει τα ακολουκιακά ςτοιχεία μνιμθσ Ακολουκιακι Λογικι Ακολουκία βάςθ των καταςτάςεων, ανάλογα με τισ τιμζσ ειςόδων Είςοδοσ Επόμενθ Κατάςταςθ Ζξοδοσ Οι καταςτάςεισ τθσ ΜΡΚ τελικά παράγουν μια αλλθλουχία ειςόδων-εξόδων Η αλλθλουχία είναι ιδιότθτα του οριςμοφ τθσ ΜΡΚ (διατθρείται πάντα) Οι ςυγκεκριμζνεσ καταςτάςεισ τθσ όχι (δεν διατθροφνται) 92 46

Περιεχόμενα Τυπικι οι Σχεδίαςθσ Ιεραρχία ςτθν Σχεδίαςθ Μθχανζσ Ρεπεραςμζνων Καταςτάςεων Η Γλϊςςα Τι είναι ΜΡΚ; Επίπεδα Αφαίρεςθσ ςτθν Σχεδίαςθ Οριςμόσ ΜΡΚ Αναπαράςταςθ και Υλοποίθςθ ςε Ειςαγωγι ςτθν μζςω Δομι Mealy/Moore ΜΡΚ Κωδικοποίθςθ Καταςτάςεων Ρεριγραφι ΜΡΚ ςτθν παραδειγμάτων 1, 2 ι 3 always τμιματα Αναλυτικι Επιςκόπθςθ τθσ Ρροτεινόμενθ Υλοποίθςθ ΜΡΚ Χρόνοσ-Κακυςτζρθςθ ςτθν Ραραδείγματα Υλοποίθςθσ ΜΡΚ Λειτουργικόσ Ζλεγχοσ και ςε Ρροςομοίωςθ Ρεριγραφζσ Moore/Mealy Συνκεςιμότθτα Αρχικοποίθςθ 93 Δομή Moore, Mealy ΜΠΚ Είζοδοι Λογικι Επόμενθσ Κατάςταςθσ Καταχωρθτισ Τρζχουςασ Κατάςταςθσ Λογικι Εξόδων (Συνδυαςτικι) Έξοδοι Αζύγσπονη Απσικοποίηζη Είζοδοι Λογικι Επόμενθσ Κατάςταςθσ Καταχωρθτισ Τρζχουςασ Κατάςταςθσ Λογικι Εξόδων (Συνδυαςτικι) Έξοδοι Αζύγσπονη Απσικοποίηζη 94 47

Μηχανέσ Πεπεραςμένων Καταςτάςεων Γράφοσ Καταςτάςεων x /z x /z A B x/z x/z x/z x/z C x /z D x /z Πίνακασ Ροισ ΜΠΚ Μ x x A A, z D, z B A, z C, z C C,z B,z D C, z A, z Πίνακασ Κφβων x PS NS z 0 A A 0 1 A D 1 0 B A 0 1 B C 0 0 C C 0 1 C B 0 0 D C 0 1 D A 1 95 Περιεχόμενα Τυπικι οι Σχεδίαςθσ Ιεραρχία ςτθν Σχεδίαςθ Η Γλϊςςα Τι είναι ΜΡΚ; Επίπεδα Αφαίρεςθσ ςτθν Σχεδίαςθ Οριςμόσ ΜΡΚ Αναπαράςταςθ και Υλοποίθςθ ςε Ειςαγωγι ςτθν μζςω Δομι Mealy/Moore ΜΡΚ Κωδικοποίθςθ Καταςτάςεων Ρεριγραφι ΜΡΚ ςτθν παραδειγμάτων 1, 2 ι 3 always τμιματα Αναλυτικι Επιςκόπθςθ τθσ Χρόνοσ-Κακυςτζρθςθ ςτθν Λειτουργικόσ Ζλεγχοσ και Ρροςομοίωςθ Συνκεςιμότθτα Μθχανζσ Ρεπεραςμζνων Καταςτάςεων Ραραδείγματα Υλοποίθςθσ ΜΡΚ ςε Ρεριγραφζσ Moore/Mealy Αρχικοποίθςθ 96 48

Κωδικοποίηςη Καταςτάςεων Αρικμόσ Κατάςταςθσ Ακολουκιακι Κωδ. Gray Johnson One-hot 0 0000 0000 00000000 0000000000000001 1 0001 0001 00000001 0000000000000010 2 0010 0011 00000011 0000000000000100 3 0011 0010 00000111 000000000001000 4 0100 0110 00001111 0000000000010000 5 0101 0111 00011111 0000000000100000 6 0110 0101 00111111 0000000001000000 7 0111 0100 01111111 0000000010000000 8 1000 1100 11111111 0000000100000000 9 1001 1101 11111110 0000001000000000 10 1010 1111 11111100 0000010000000000 11 1011 1110 11111000 0000100000000000 12 1100 1010 11110000 0001000000000000 13 1101 1011 11100000 0010000000000000 14 1110 1001 11000000 0100000000000000 15 1111 1000 10000000 1000000000000000 97 Κωδικοποίηςη Καταςτάςεων Ακολουκιακι Αντιςτοίχθςθ του αρικμοφ τθσ κατάςταςθσ ςε δυαδικό Gray/Johnson Εναλλαγι από τθν κατάςταςθ ν ςτθν κατάςταςθ ν+1 ςτον πίνακα ροισ κατά 1 ψθφίο One-hot/One-cold Εναλλαγι από οποιαδιποτε κατάςταςθ ςε μια άλλθ κατά 2 ψθφία (10, 01) Ανάλογθ τθσ ΜΡΚ Υπάρχουν αλγόρικμοι κωδικοποίθςθσ καταςτάςεων που ςτοχεφουν ςε εμβαδό, κατανάλωςθ, ταχφτθτα Στθν βιομθχανία χρθςιμοποιείται κατά κόρον το one-hot 98 49

Περιεχόμενα Τυπικι οι Σχεδίαςθσ Ιεραρχία ςτθν Σχεδίαςθ Μθχανζσ Ρεπεραςμζνων Καταςτάςεων Η Γλϊςςα Τι είναι ΜΡΚ; Επίπεδα Αφαίρεςθσ ςτθν Σχεδίαςθ Οριςμόσ ΜΡΚ Αναπαράςταςθ και Υλοποίθςθ ςε Ειςαγωγι ςτθν μζςω Δομι Mealy/Moore ΜΡΚ Κωδικοποίθςθ Καταςτάςεων Ρεριγραφι ΜΡΚ ςτθν παραδειγμάτων 1, 2 ι 3 always τμιματα Αναλυτικι Επιςκόπθςθ τθσ Ρροτεινόμενθ Υλοποίθςθ ΜΡΚ Χρόνοσ-Κακυςτζρθςθ ςτθν Ραραδείγματα Υλοποίθςθσ ΜΡΚ Λειτουργικόσ Ζλεγχοσ και ςε Ρροςομοίωςθ Ρεριγραφζσ Moore/Mealy Συνκεςιμότθτα Αρχικοποίθςθ 99 Περιγραφή ΜΠΚ ςτην Καταςτάςεισ Ραράμετροι 1 always τμιμα 2 always τμιματα 3 always τμιματα 1 ακολουκιακό τμιμα always @(posedge ) περιγράφει όλθ τθν ΜΡΚ Επόμενθ κατάςταςθ και εξόδουσ βάςθ τθσ τρζχουςασ και ειςόδων case, if--else Ζξοδοι είναι καταχωρθτζσ 100 Κωδικοποίθςθ ΜΡΚ Τιμζσ των παραμζτρων Η ΜΡΚ αποτελεί ακολουκιακι λογικι Τρζχουςα, επόμενθ κατάςταςθ διαχωρίηονται από το ρολόι always @(posedge ) Κακυςτζρθςθ από τθν ανάκεςθ τθσ κατάςταςθσ 1 ςυνδυαςτικό τμιμα always περιγράφει τθν επόμενθ κατάςταςθ, και τισ εξόδουσ, βάςθ τθσ τρζχουςασ κατάςταςθσ 1 ακολουκιακό τμιμα always @(posedge ) περιγράφει τθν ανάκεςθ τθσ τρζχουςασ κατάςταςθσ Ζξοδοι είναι ςυνδυαςτικζσ 1 ςυνδυαςτικό τμιμα always περιγράφει τθν επόμενθ κατάςταςθ, βάςθ τθσ τρζχουςασ κατάςταςθσ 1 άλλο ςυνδυαςτικό τμιμα always περιγράφει τισ εξόδουσ 1 ακολουκιακό τμιμα always @(posedge ) περιγράφει τθν ανάκεςθ τθσ τρζχουςασ κατάςταςθσ Ζξοδοι είναι ςυνδυαςτικζσ 50

Περιεχόμενα Τυπικι οι Σχεδίαςθσ Ιεραρχία ςτθν Σχεδίαςθ Μθχανζσ Ρεπεραςμζνων Καταςτάςεων Η Γλϊςςα Τι είναι ΜΡΚ; Επίπεδα Αφαίρεςθσ ςτθν Σχεδίαςθ Οριςμόσ ΜΡΚ Αναπαράςταςθ και Υλοποίθςθ ςε Ειςαγωγι ςτθν μζςω Δομι Mealy/Moore ΜΡΚ Κωδικοποίθςθ Καταςτάςεων Ρεριγραφι ΜΡΚ ςτθν παραδειγμάτων 1, 2 ι 3 always τμιματα Αναλυτικι Επιςκόπθςθ τθσ Ρροτεινόμενθ Υλοποίθςθ ΜΡΚ Χρόνοσ-Κακυςτζρθςθ ςτθν Ραραδείγματα Υλοποίθςθσ ΜΡΚ Λειτουργικόσ Ζλεγχοσ και ςε Ρροςομοίωςθ Ρεριγραφζσ Moore/Mealy Συνκεςιμότθτα Αρχικοποίθςθ 101 Προτεινόμενη Τλοποίηςη FSM Είζοδοι Λογικι Επόμενθσ Κατάςταςθσ Καταχωρθτισ Τρζχουςασ Κατάςταςθσ Λογικι Εξόδων (Συνδυαςτικι) Έξοδοι always #1 always #2 Αζύγσπονη Απσικοποίηζη always #1 Δυο (ι τρία) τμιματα always 1 ςυνδυαςτικό always με τθν Λογικι Επόμενθσ Κατάςταςθσ και τισ εξόδουσ (Mealy ι Moore) 1 ακολουκιακό always που ανακζτει τον Καταχωρθτι Καταςτάςεων Αςφγχρονθ αρχικοποίθςθ 102 51

Περιεχόμενα Τυπικι οι Σχεδίαςθσ Ιεραρχία ςτθν Σχεδίαςθ Η Γλϊςςα Τι είναι ΜΡΚ; Επίπεδα Αφαίρεςθσ ςτθν Σχεδίαςθ Οριςμόσ ΜΡΚ Αναπαράςταςθ και Υλοποίθςθ ςε Ειςαγωγι ςτθν μζςω Δομι Mealy/Moore ΜΡΚ Κωδικοποίθςθ Καταςτάςεων Ρεριγραφι ΜΡΚ ςτθν παραδειγμάτων 1, 2 ι 3 always τμιματα Αναλυτικι Επιςκόπθςθ τθσ Χρόνοσ-Κακυςτζρθςθ ςτθν Λειτουργικόσ Ζλεγχοσ και Ρροςομοίωςθ Συνκεςιμότθτα Μθχανζσ Ρεπεραςμζνων Καταςτάςεων Ραραδείγματα Υλοποίθςθσ ΜΡΚ ςε Ρεριγραφζσ Moore/Mealy Αρχικοποίθςθ 103 Παράδειγμα Τλοποίηςησ ΜΠΚ ςε Για μια ςειρά 0, 1, θ μια ζξοδοσ τθσ ΜΡΚ ανακζτεται ςε 1, όταν ςτθν είςοδο περάςουν δυο 1 Μοντζλο Moore Μοντζλο Mealy zero [0] 0 0 1 one1 [0] 1 1 0 0/0 zero 1/0 0/0 1/1 one1 two1s [1] 104 52

Παράδειγμα Τλοποίηςησ ΜΠΚ ςε Υλοποίθςθ με δυο τμιματα always: 1 ςυνδυαςτικό τμιμα always περιγράφει τθν επόμενθ κατάςταςθ, και τισ εξόδουσ, βάςθ τθσ τρζχουςασ κατάςταςθσ 1 ακολουκιακό τμιμα always @(posedge ) περιγράφει τθν ανάκεςθ τθσ τρζχουςασ κατάςταςθσ Μοντζλο Moore 0 0 zero [0] 1 one1 [0] 1 two1s [1] 1 0 PI NS C.L. NS CS PO C.L. PO 105 Παράδειγμα Τλοποίηςησ ΜΠΚ ςε Μοντζλο Moore Δφο always Σμιματα ελίδα 1 θ 0 0 zero [0] 1 one1 [0] 1 1 0 module moore_two1s(out, Clock, Reset, In); output Out; input Clock, Reset, In; reg Out; reg [1:0] CurrentState; // state register // reg [1:0] NextState; // State Encoding // parameter STATE_zero = 2 b00, STATE_one1 = 2 b01, STATE_two1s = 2 b10, STATE_X = 2 bxx; two1s [1] // State Registers Sequential // always @(posedge Clock) begin if (Reset) CurrentState <= STATE_Zero; else CurrentState <= NextState; 106 53

Παράδειγμα Τλοποίηςησ ΜΠΚ ςε Μοντζλο Moore 0 107 0 zero [0] 1 one1 [0] 1 two1s [1] 1 0 Δφο always Σμιματα ελίδα 2 θ always @(In or CurrentState) begin NextState = CurrentState; Out = 1 b0; case (CurrentState) STATE_zero: begin // last input was 0 if (In) NextState = STATE_one1; STATE_one1: begin // last input was 1 if (In) NextState = STATE_two1s; else NextState = STATE_zero; STATE_two1s: begin // seen 2 1 s Out = 1 b1; 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 Παράδειγμα Τλοποίηςησ ΜΠΚ ςε Υλοποίθςθ με δυο τμιματα always: 1 ςυνδυαςτικό τμιμα always περιγράφει τθν επόμενθ κατάςταςθ, και τισ εξόδουσ, βάςθ τθσ τρζχουςασ κατάςταςθσ 1 ακολουκιακό τμιμα always @(posedge ) περιγράφει τθν ανάκεςθ τθσ τρζχουςασ κατάςταςθσ Μοντζλο Mealy 0/0 zero one1 1/0 0/0 1/1 Είζοδορ Έξοδορ PI NS C.L. NS CS PO C.L. PO 108 54

Παράδειγμα Τλοποίηςησ ΜΠΚ ςε Μοντζλο Mealy 0/0 zero one1 1/0 0/0 1/1 Δφο always Σμιματα ελίδα 1 θ module mealy_two1s(out, Clock, Reset, In); output Out; input Clock, Reset, In; reg Out; reg CurrentState; // state register // reg NextState; // State Encoding // parameter STATE_zero = 1 b0, STATE_one1 = 1 b1; // State Registers Sequential // always @(posedge Clock) begin if (Reset) CurrentState <= STATE_Zero; else CurrentState <= NextState; 109 Παράδειγμα Τλοποίηςησ ΜΠΚ ςε Μοντζλο Mealy Δφο always Σμιματα ελίδα 2 θ always @ (In or CurrentState) begin NextState = CurrentState; Out = 1 b0; 0/0 zero one1 1/0 0/0 1/1 case (CurrentState) STATE_zero: begin if (In) NextState = STATE_One1; STATE_one1: begin // last input was 1 NextState = STATE_Zero; if (In) Out = 1 b1; case module 110 55

ύγκριςη Moore/Mealy Moore διαφορετικι κατάςταςθ για κάκε διαφορετικι ζξοδο ευκολότερθ υλοποίθςθ Mealy οικονομικότερθ ωσ προσ τον αρικμό καταςτάςεων μζροσ τθσ κατάςταςθσ είναι ιδιότθτα των ειςόδων πιο πολφπλοκθ υλοποίθςθ κακυςτζρθςθ ειςόδων Πταν οι είςοδοι ζρχονται από το ίδιο ρολόι και καταχωρθτζσ υπάρχει πλιρθσ ιςοδυναμία ειςόδωνεξόδων ανά κφκλο μεταξφ Moore, Mealy. Για κάκε Mealy υπάρχει αντίςτοιχθ Moore. 111 ύγκριςη Moore και Mealy - Χρονoδιάγραμμα CLK In STATE_moore Out_moore STATE_mealy Out_mealy 0 0 0 1 1 0 0 0 1 1 1 0 zero zero zero zero one1 two1s zero zero zero one1 two1s one1 0 0 0 0 0 1 0 0 0 0 1 0 zero zero zero zero one1 zero zero zero zero one1 zero one1 0 0 0 0 0 1 0 0 0 0 1 0 112 56

Παράδειγμα Τλοποίηςησ ΜΠΚ ςε Μοντζλο Moore zero [0] Ζνα τμιμα always ελίδα 1 θ module moore_two1s_1a(out, Clock, Reset, In); output Out; input Clock, Reset, In; reg Out; reg [1:0] State; // state register // 0 0 1 one1 [0] 1 two1s [1] 1 0 // State Encoding // parameter STATE_zero = 2 b00, STATE_one1 = 2 b01, STATE_two1s = 2 b10, STATE_X = 2 bxx; always @(posedge clk) case (State) STATE_zero: begin out <= 1 b0; if (in) State <= STATE_one1; else State <= STATE_zero; 113 Παράδειγμα Τλοποίηςησ ΜΠΚ ςε Μοντζλο Moore Ζνα τμιμα always ελίδα 2 θ 0 0 zero [0] 1 one1 [0] 1 two1s [1] 1 0 one1: out <= 1 b0; if (in) begin state <= STATE_two1s; else begin state <= STATE_zero; two1s: out <= 1 b1; if (in) begin state <= STATE_two1s; else begin state <= STATE_zero; default: begin state <= STATE_zero; out <= 1 b0; case module 114 57

Παράδειγμα Τλοποίηςησ ΜΠΚ ςε - 2 Γράφοσ Καταςτάςεων Οριςμόσ 3 καταςτάςεισ 1 Ζξοδοσ Receive, όταν θ ΜΡΚ είναι ςε κατάςταςθ που λαμβάνει δεδομζνα 115 Παράδειγμα Τλοποίηςησ ΜΠΚ ςε - 2 Γράφοσ Καταςτάςεων Περιγραφι 1 θ ελίδα module fsm( Receive, Start, Stop, Error, Clk, Reset_); input Start, Stop, Error, Clk, Reset_; output Receive; parameter [1:0] IdleState = 2 b00, ReceiveState = 2 b01, ErrorState = 2 b10; reg [1:0] FSMstate, nxtfsmstate; always @(posedge Clk) begin if (~Reset_) FSMstate <= IdleState; else FSMstate <= nxtfsmstate; always @(FSMstate or Start or Stop or Error) begin case(fsmstate) 116 58

Παράδειγμα Τλοποίηςησ ΜΠΚ ςε - 2 Γράφοσ Καταςτάςεων Περιγραφι 2 θ ελίδα 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; 117 Παράδειγμα Τλοποίηςησ ΜΠΚ ςε - 2 Γράφοσ Καταςτάςεων Ζξοδοι Ζξοδοσ Moore wire Receive = FSMstate[0]; Ζξοδοσ Mealy wire Receive = ((FSMstate == IdleState & Start) (FSMstate == ReceiveState & ~Error & ~Stop)) 118 59

Παράδειγμα Τλοποίηςησ ΜΠΚ ςε - 3 Αυτόματοσ Ρωλθτισ Βγάηει προϊόν τιμισ 15 λεπτϊν Υποςτθρίηει νομίςματα 5, 10 λεπτϊν Δεν δίνει ρζςτα in5 Κερματοδζκτθσ in10 ΜΡΚ Αυτόματου Ρωλθτι release Μθχανιςμόσ Απελευκζρωςθσ 119 Παράδειγμα Τλοποίηςησ ΜΠΚ ςε - 3 Οριςμόσ 1 ο Διάγραμμα ΜΠΚ Είςοδοι in5, in10 Reset Είςοδοσ open Συνδυαςμοί που φτάνουν τθν τιμι αγοράσ S1 in5 S0 in10 S2 5, 5, 5 10, 5 5, 10 S3 in5 in5 in10 S4 [open] in5 S5 [open] in10 S6 [open] 10, 10 S7 [open] 120 60

Παράδειγμα Τλοποίηςησ ΜΠΚ ςε - 3 2 ο Διάγραμμα ΜΠΚ Πίνακασ Κφβων in10 0 5 10 Reset in5 in5 15 [open] in10 in5 in10 in5 in10 PS NS open 0 0 0c 0c 0 0 1 0c 10c 0 1 0 0c 5c 0 1 1 - - - 0 0 5c 5c 0 0 1 5c 15c 0 1 0 5c 10c 0 0 0 10c 10c 0 0 1 10c 10c 0 1 0 10c 10c 0 - - 15c 0c 1 121 Παράδειγμα Τλοποίηςησ ΜΠΚ ςε - 3 Κωδικοποίθςθ One-hot in5 in10 PS NS open 0 0 0001 0001 0 0 1 0001 0100 0 1 0 0001 0010 0 1 1 - - - 0 0 0010 0010 0 0 1 0010 1000 0 1 0 0010 0010 0 0 0 0100 0010 0 0 1 0100 0010 0 1 0 0100 0010 0 - - 1000 0001 1 Δυαδικι Κωδικοποίθςθ in5 in10 PS NS open 0 0 00 00 0 0 1 00 10 0 1 0 00 01 0 1 1 - - - 0 0 01 01 0 0 1 01 11 0 1 0 01 10 0 0 0 10 10 0 0 1 10 10 0 1 0 10 10 0 - - 11 00 1 122 61

Παράδειγμα Τλοποίηςησ ΜΠΚ ςε - 3 Διάγραμμα Moore Διάγραμμα Mealy Reset Reset in5 0 [0] in5 in10 in10/0 0 in5 in10 /0 in10 in5 5 [0] in5 in10 in10/1 in5/0 5 in5 in10 /0 in10 10 [0] in5 in10 in5 in10 in5/0 10 in5 in10 /0 15 [1] (in5 in10)/1 123 Παράδειγμα Τλοποίηςησ ΜΠΚ ςε - 3 Διάγραμμα Moore in10 in10 in5 in5 0 [0] 5 [0] 10 [0] 15 [1] Reset in5 in10 in5 in10 in5 in10 in5 in10 Περιγραφι ςε module ving_moore (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 ; module 124 62

Παράδειγμα Τλοποίηςησ ΜΠΚ ςε - 3 Διάγραμμα Mealy Reset Περιγραφι ςε module ving_mealy (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; in10/0 0 in5/0 in10/1 5 in5/0 10 in5 in10 /1 in5 in10 /0 in5 in10 /0 in5 in10 /0 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 125 Περιεχόμενα Τυπικι οι Σχεδίαςθσ Ιεραρχία ςτθν Σχεδίαςθ Μθχανζσ Ρεπεραςμζνων Καταςτάςεων Η Γλϊςςα Τι είναι ΜΡΚ; Επίπεδα Αφαίρεςθσ ςτθν Σχεδίαςθ Οριςμόσ ΜΡΚ Αναπαράςταςθ και Υλοποίθςθ ςε Ειςαγωγι ςτθν μζςω Δομι Mealy/Moore ΜΡΚ Κωδικοποίθςθ Καταςτάςεων Ρεριγραφι ΜΡΚ ςτθν παραδειγμάτων 1, 2 ι 3 always τμιματα Αναλυτικι Επιςκόπθςθ τθσ Ρροτεινόμενθ Υλοποίθςθ ΜΡΚ Χρόνοσ-Κακυςτζρθςθ ςτθν Ραραδείγματα Υλοποίθςθσ ΜΡΚ Λειτουργικόσ Ζλεγχοσ και ςε Ρροςομοίωςθ Ρεριγραφζσ Moore/Mealy Συνκεςιμότθτα Αρχικοποίθςθ 126 63

Αρχικοποίηςη ΜΠΚ Έγκυρεσ και Μη Καταςτάςεισ Για 2 ν καταςτάςεισ, ν ψθφία δυαδικισ κωδικοποίθςθσ 2 ν πικανζσ τιμζσ Για ν καταςτάςεισ, ν ψθφία One-hot κωδικοποίθςθσ ν ζγκυρεσ One-hot τιμζσ 2 ν ν μθ ζγκυρεσ τιμζσ Για 2 ν καταςτάςεισ, 2ν ψθφία Johnson κωδικοποίθςθσ, 2ν ζγκυρεσ Johnson τιμζσ 2 ν -2ν μθ ζγκυρεσ τιμζσ Γενικά για μ καταςτάςεισ μπορεί να ζχουμε ν ψθφία κωδικοποίθςθσ, όπου ν log 2 μ Υπάρχουν μθ ζγκυρεσ καταςτάςεισ 127 Αρχικοποίηςη ΜΠΚ Αςφγχρονθ Αρχικοποίθςθ φγχρονθ Αρχικοποίθςθ Αςφαλζςτεροσ τρόποσ Πλεσ οι ΜΡΚ αρχικοποιοφνται άμεςα ςτθν αρχικι τουσ κατάςταςθ πριν δεχκοφν ειςόδουσ Δεν απαιτείται κωδικοποίθςθ των μθ ζγκυρων καταςτάςεων Ελαχιςτοποιείται θ λογικι Επόμενθσ Κατάςταςθσ Οι καταχωρθτζσ με αςφγχρονθ αρχικοποίθςθ είναι λίγο μεγαλφτεροι Πλεσ οι πικανζσ τιμζσ πρζπει να αποκωδικοποιθκοφν ςε περίπτωςθ ςφγχρονθσ αρχικοποίθςθσ αν το ςιμα αρχικοποίθςθσ είναι ενεργό, είτε είμαςτε ςε ζγκυρθ, είτε άκυρθ κατάςταςθ πρζπει να μποφμε ςτθν αρχικι Ρολυπλοκότερθ λογικι Επόμενθσ Κατάςταςθσ Μικρότεροι καταχωρθτζσ Μεγαλφτερο εμβαδό ςτισ περιςςότερεσ των περιπτϊςεων 128 64