Σχεδίαση Υπολογιστικών

Σχετικά έγγραφα
ΒΑΣΙΚΕΣ ΤΕΧΝΟΛΟΓΙΕΣ ΥΛΟΠΟΙΗΣΗΣ

Περιγραφή Κυκλωμάτων με χρήση της VHDL. Εισαγωγικές έννοιες για σχεδιασμό με τη VHDL

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

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

Εργαστήριο Αρχιτεκτονικής Υπολογιστών Ι. Εισαγωγή στη VHDL

ΕΙΣΑΓΩΓΙΚΟ ΕΓΧΕΙΡΙ ΙΟ ΓΙΑ ΣΧΕ ΙΑΣΜΟ ΜΕ ΧΡΗΣΗ ΤΗΣ ΓΛΩΣΣΑΣ VHDL

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

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

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

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

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

Πτυχιακή Εργασία Σχεδίαση κυκλωμάτων επικοινωνίας με απλές οθόνες, με τη γλώσσα VHDL και υλοποίηση στις αναπτυξιακές πλακέτες LP-2900 και DE2.

ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - VHDL ΑΝΤΩΝΗΣ ΠΑΣΧΑΛΗΣ

ΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο Ένα συνδυαστικό κύκλωµα µπορεί να περιγραφεί από: Φεβ-05. n-είσοδοι

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

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

Εισαγωγή στη VHDL Υλοποίηση στο Quartus

Structural VHDL. Structural VHDL

VHDL Εισαγωγικές έννοιες

H γλώσσα περιγραφής κυκλωµάτων VHDL

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

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

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

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

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

1 Περίληψη Η εργασία έγινε στα πλαίσια του μαθήματος των Ψηφιακών Ηλεκτρονικών Συστημάτων με σκοπό αρχικά την εκμάθηση της γλώσσας VHDL (Very High Spe

Ψηφιακά ολοκληρωμένα κυκλώματα

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

Εισαγωγή Η VHDL υποστηρίζει τους εξής τρείς βασικούς και διαφορετικούς τρόπους περιγραφής

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

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

Συστήματα VLSI. Εισαγωγή. Γιώργος Δημητρακόπουλος. Δημοκρίτειο Πανεπιστήμιο Θράκης. Άνοιξη 2014

Περιεχόμενα. Πρόλογος... XI. Κεφάλαιο 1. Συστήματα Βασισμένα σε FPGA Κεφάλαιο 2. Τεχνολογία VLSI Εισαγωγή Βασικές Αρχές...

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

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

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

Library, package και subprograms

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

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

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

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

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

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

Προσοµοίωση Συστηµάτων µε VHDL. (Peter Ashenden, The Students Guide to VHDL)

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

i Το τρανζίστορ αυτό είναι τύπου NMOS. Υπάρχει και το συμπληρωματικό PMOS. ; Τι συμβαίνει στο τρανζίστορ PMOS; Το τρανζίστορ MOS(FET)

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

Πανεπιστήµιο Θεσσαλίας

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

Σχεδίαση µε CAD tools

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

Κεφάλαιο 14 ο. Γ. Τσιατούχας. VLSI Systems and Computer Architecture Lab. Σχεδιαστικές Μεθοδολογίες 2

Συστοιχία Επιτόπια Προγραμματιζόμενων Πυλών Field Programmable Gate Arrays (FPGAs)

ΠΑΡΑΡΤΗΜΑ Β. Verification

Ενότητα 6 ΑΝΑΛΥΣΗ & ΣΥΝΘΕΣΗ ΣΥΝΔΥΑΣΤΙΚΗΣ ΛΟΓΙΚΗΣ ΣΥΝΔΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ ΠΟΛΛΩΝ ΕΠΙΠΕΔΩΝ

Εισαγωγή στη Γλώσσα VHDL

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

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

Περιεχόμενα. Πρώτο Κεφάλαιο. Εισαγωγή στα Ψηφιακά Συστήματα. Δεύτερο Κεφάλαιο. Αριθμητικά Συστήματα Κώδικες

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

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

Σχεδίαση σε VHDL και υλοποίηση σε FPGA Μονάδας Παραγωγής Μουσικού Σήματος

Πτυχιακή Εργασία. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL

Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Συναρτήσεις, Διαδικασίες και Δομές Ελέγχου Λειτουργίας Κυκλωμάτων (testbenches)

Εισαγωγή στα κυκλώµατα CMOS 2

Εργαστήριο Εισαγωγής στη Σχεδίαση Συστημάτων VLSI

ΚΕΦΑΛΑΙΟ Συνδυαστικά Κυκλώµατα. 3.2 Σχεδιασµός Συνδυαστικής Λογικής 3.3 ιαδικασία Ανάλυσης 3.4 ιαδικασία Σχεδιασµού.

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Σχεδίαση Ψηφιακών Συστημάτων. Ενότητα: ΚΑΤΑΧΩΡΗΤΕΣ - ΑΠΑΡΙΘΜΗΤΕΣ

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


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

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

Μελέτη και σχεδίαση µιας υποτυπώδους κεντρικής µονάδας επεξεργασίας στα 32 µπιτ.

3. Περιγράμματα Μαθημάτων Προγράμματος Σπουδών

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

VHDL Introduction. Subtitle

ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο Νοε-09. Διδάσκουσα: Μαρία Κ. Μιχαήλ

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

Φόρμα Σχεδιασμού Διάλεξης (ημ/α:15/10/07, έκδοση:0.1 ) 1. Κωδικός Μαθήματος : 2. Α/Α Διάλεξης : 1 1. Τίτλος : 1. Εισαγωγή στην Αρχιτεκτονική Η/Υ

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

Εισαγωγή στον έλεγχο ορθής λειτουργίας ψηφιακών συστημάτων. Δημήτρης Νικολός, Τμήμα Μηχ. Ηλεκτρονικών Υπολογιστών και Πληροφορικής, Παν.

ΑΣΚΗΣΗ 9η-10η ΑΡΙΘΜΗΤΙΚΗ-ΛΟΓΙΚΗ ΜΟΝΑΔΑ ΕΝΟΣ ΨΗΦΙΟΥ (1-BIT ALU)

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

Οργάνωση της φυσικής δομής του ολοκληρωμένου κυκλώματος

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

Οι Διδάσκοντες. Αντώνης Πασχάλης, Καθηγητής, Θεωρία. Χρήστος Κρανιώτης, ΕEΔΙΠ, Εργαστήριο

Εισαγωγή στην Αρχιτεκτονική Η/Υ

Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια

Υ52 Σχεδίαση Ψηφιακών Ολοκληρωμένων Κυκλωμάτων και Συστημάτων 1: Εισαγωγή

VHDL. ΗΜΥ-210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο Απλό παράδειγµα: Entity. Μοντελοποίηση. Απλό παράδειγµα:αρχιτεκτονική. Στοιχεία γλώσσας VHDL

Μοντελοποίηση Λογικών Κυκλωμάτων

ς Ποιότητα ξιολόγηση Α

Εισαγωγή στη σχεδιαστική ροή της Xilinx

ΠΛΗ10 Κεφάλαιο 2. ΠΛH10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: : Αριθμητική περιοχή της ALU 2.5: Κυκλώματα Υπολογιστών

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

Transcript:

Σχεδίαση Υπολογιστικών Συστημάτων Εισαγωγή Μιχάλης Ψαράκης 1 Εισαγωγή Βιβλιογραφία: Βιβλίο Α: «Ψηφιακή Σχεδίαση Ενσωματωμένα Συστήματα με VHDL», P.J. Ashenden. Εκδόσεις Νέες Τεχνολογίες Βιβλίο Β: «Σχεδιασμός Κυκλωμάτων με τη VHDL», V.A. Pedroni. Εκδόσεις Κλειδάριθμος Διαφάνειες Μπορείτε να τις κατεβάσετε από την ιστοσελίδα του μαθήματος Επιπλέον βιβλιογραφία Μπορείτε να βρείτε στην ιστοσελίδα του μαθήματος Διατίθεται σε ηλεκτρονική μορφή μέσω της βιβλιοθήκης: The designer's guide to VHDL (3rd edition), P.J. Ashenden, Morgan Kaufmann, 2008 Ιστοσελίδα μαθήματος: http://gunet2.cs.unipi.gr/eclass/courses/tmc112/ 2

Χρονοδιάγραμμα μαθήματος Τις πρώτες 2 εβδομάδες: Τρίτη 16.15-18.00 + Πέμπτη 8.45-10.00: θεωρία Τις επόμενες εβδομάδες: Τρίτη 16.15-18.00: θεωρία Μία μέρα (2 ώρες) εργαστήριο (στον 2 ο όροφο) 3 Βαθμολογία μαθήματος Μέσω εργασιών: 4 ατομικές ασκήσεις: 10% βαθμού η καθεμία Προθεσμία παράδοσης 1 ή 2 βδομάδες Εξέταση στο εργαστήριο Μπορείτε να τις παραδώσετε μόνο κατά την διάρκεια του εξαμήνου 1 ομαδική εργασία: 60% βαθμού Μπορείτε να τις παραδώσετε στις εξεταστικές του Ιουνίου και Σεπτεμβρίου Οι εργασίες δεν ισχύουν για τα επόμενα ακαδημαϊκά έτη 4

Περιεχόμενο μαθήματος Σχεδίαση ψηφιακών κυκλωμάτων με χρήση γλώσσας περιγραφής υλικού VHDL Σχεδίαση απλών ψηφιακών κυκλωμάτων: Συνδυαστικά κυκλώματα, π.χ. πολυπλέκτες, αποκωδικοποιητές, αριθμητικά κυκλώματα Ακολουθιακά κυκλώματα: flip-flop, καταχωρητές, μετρητές Σχεδίαση πιο πολύπλοκων ψηφιακών συστημάτων: Μηχανές καταστάσεων, μνήμες, επεξεργαστές Προσομοίωση ψηφιακών κυκλωμάτων Χρήση εργαλείων προσομοίωσης (HDL simulators) 5 Προαπαιτούμενα Γνώσεις από το μάθημα λογικής σχεδίασης ψηφιακών συστημάτων: Λογικές πύλες Συνδυαστικά κυκλώματα: πολυπλέκτες, αποκωδικοποιητές Αριθμητικά κυκλώματα αθροιστές, πολλαπλασιαστές Ακολουθιακά κυκλώματα καταχωρητές, καταχωρητές ολίσθησης, μετρητές Μηχανές καταστάσεων 6

Εργαστήριο Περιβάλλον σχεδίασης, προσομοίωσης και αποσφαλμάτωσης ψηφιακών κυκλωμάτων (σε γλώσσα περιγραφής υλικού VHDL) Υλοποίησης των κυκλωμάτων σε εκπαιδευτικές πλατφόρμες FPGA (Field Programmable Gate Arrays) Εργαλείο Xilinx ISE ή Vivado Design Suite Εργαστηριακές ασκήσεις: Γνωριμία με το περιβάλλον Γνωριμία με την πλακέτα FPGA Συνδυαστικά κυκλώματα Ακολουθιακά κυκλώματα Μηχανές πεπερασμένων καταστάσεων Μνήμες Μπορείτε να κατεβάσατε και να εγκαταστήσετε την student version (free) του εργαλείου: http://www.xilinx.com/products/design-tools/ise-designsuite/ise-webpack.html 7 Μεθοδολογία σχεδίασης Απαιτήσεις και Περιορισμοί Σχεδίαση Σύνθεση Φυσική Υλοποίηση Κατασκευή Λειτουργική Επαλήθευση Επαλήθευση μετά τη σύνθεση Φυσική Επαλήθευση Δοκιμή OK; Ναι OK; Ναι OK; Ναι Όχι Όχι Όχι 8

Σύνθεση (synthesis) Συνήθως, η σχεδίαση των συστημάτων γίνεται σε επίπεδο μεταφοράς καταχωρητή (registertransfer-level RTL) Υψηλότερο επίπεδο αφαίρεσης σε σχέση με τη σχεδίαση με πύλες Τα εργαλεία σύνθεσης μεταφράζουν τη σχεδίαση RTL σε ένα κύκλωμα με πύλες που εκτελεί την ίδια λειτουργία Στο εργαλείο σύνθεσης πρέπει να καθορίσουμε: Την τεχνολογία υλοποίησης Περιορισμούς σε χρόνο, επιφάνεια, κτλ. (αν υπάρχουν) Επαλήθευση μετά τη σύνθεση (post-synthesis verification): Ότι το κύκλωμα που έχει προκύψει από τη σύνθεση ικανοποιεί τους περιορισμούς 9 Φυσική υλοποίηση (physical implementation) Δομές υλοποίησης: Application-specific ICs (ASICs) Field-programmable gate arrays (FPGAs) Χωροθέτηση (floor-planning) Τοποθετεί τα υποσυστήματα Τοποθέτηση (placement) Τοποθετεί τις πύλες μέσα στα υποσυστήματα Δρομολόγηση (routing) Συνδέει τις πύλες με αγωγούς Φυσική επαλήθευση (physical verification) Το φυσικό κύκλωμα ικανοποιεί ακόμα τους περιορισμούς Καλύτερη εκτίμηση των χρονικών προδιαγραφών 10

Κατασκευή (manufacturing) Τα ολοκληρωμένα κυκλώματα (integrated circuits) κατασκευάζονται στην επιφάνεια ενός πλακιδίου πυριτίου (silicon wafer) Ελάχιστο χαρακτηριστικό μέγεθος (feature size) που μειώνεται σε κάθε τεχνολογική γενιά Τώρα 25nm Νόμος του Moore: αύξηση του αριθμού των τρανζίστορ CMOS: συμπληρωματικά (complementary) MOSFET κυκλώματα +V είσοδος έξοδος 11 Συσκευασίες ολοκληρωμένων κυκλωμάτων Τα ολοκληρωμένα κυκλώματα ενθυλακώνονται σε προστατευτική συσκευασία Εξωτερικοί ακροδέκτες για να συνδεθούν με την πλακέτα κυκλώματος Καλώδια συγκόλλησης ή συνδέσεις flip-chip 12

Printed Circuit Boards (PCBs) Πλακέτες τυπωμένου κυκλώματος Στρώματα μεταλλικής καλωδίωσης μεταξύ στρωμάτων μονωτικού υλικού (fiberglass) Κατασκευάζεται με χρήση φωτολιθογραφίας και εγχάραξης Οι αγωγοί διασυνδέουν IC και άλλα στοιχεία Εξωτερικές συνδέσεις σε άλλα στοιχεία του συστήματος 13 Ιεραρχική σχεδίαση Τα κυκλώματα είναι αρκετά πολύπλοκα για να σχεδιάσουμε όλες τις λεπτομέρειες με τη μία Σχεδιάζουμε υποσυστήματα για απλές λειτουργίες Συνθέτουμε υποσυστήματα για να σχηματίσουμε το σύστημα Αντιμετωπίζουμε τα υποκυκλώματα ως «μαύρα κουτιά» Επαληθεύουμε ανεξάρτητα, και έπειτα επαληθεύουμε την ολοκλήρωσή τους Σχεδίαση top-down (από πάνω προς τα κάτω) ή bottom-up (από κάτω προς τα πάνω) 14

Ιεραρχική σχεδίαση Αρχιτεκτονική Σχεδίαση Σχεδίαση Λειτουργική Επαλήθευση Όχι OK; Ναι Όχι Σχεδίαση Μονάδων Επαλήθευση Μονάδων Ναι OK; Επαλήθευση Ολοκλήρωσης Όχι OK; Ναι 15 Γλώσσες περιγραφής υλικού Hardware Description Language (HDL) Μια γλώσσα για την μοντελοποίηση της συμπεριφοράς και της δομής των ψηφιακών συστημάτων Electronic Design Automation (EDA) using HDL - Αυτοματοποίηση ηλεκτρονικής σχεδίασης: σχεδίαση ηλεκτρονικών κυκλωμάτων με χρήση εργαλείων CAD (computer-aided design) Εισαγωγή σχεδίασης (design entry) κώδικας αντί για σχηματικά διαγράμματα Επαλήθευση (verification) προσομοίωση του κώδικα Σύνθεση (synthesis) αυτόματη παραγωγή των κυκλωμάτων 16

Πλεονεκτήματα των HDL Υπερτερούν από τα σχηματικά διαγράμματα: H μοντελοποίηση του συστήματος μπορεί να γίνει σε όλα τα επίπεδα (από τα υψηλότερα ως τα χαμηλότερα) Η περιγραφή σε HDL είναι συνήθως (?) πιο κατανοητή από ένα σχηματικό διάγραμμα Η περιγραφή σε HDL είναι ανεξάρτητη από τις βιβλιοθήκες σχεδίασης (design libraries) και τα CAD εργαλεία Υπερτερούν από τις γλώσσες προγραμματισμού: Παρέχουν δομές που περιγράφουν καλύτερα το υλικό Παράλληλη εκτέλεση εντολών αντί για ακολουθιακή Παρέχουν δυνατότητα για περιγραφή χρονισμών 17 Γλώσσες περιγραφής υλικού: VHDL VHDL: VHSIC Hardware Description Language VHSIC: Very High-Speed Integrated Circuits Ιστορική αναδρομή: Ξεκίνησε το 1981 από το Υπουργείο Άμυνας των ΗΠΑ ως γλώσσα περιγραφής ολοκληρωμένων κυκλωμάτων Οι εταιρείες ΙΒΜ, Texas Instruments, Intermetrics ανάπτυξαν και κυκλοφόρησαν την 1η έκδοση το 1985 Πρότυπο από τον οργανισμό ΙΕΕΕ ΙΕΕΕ Standard 1076-1987 (VHDL-87) IEEE Standard 1076-1993 (VHDL-93) IEEE Standard 1076a (VHDL-2000) Πιο διαδεδομένη στην Ευρώπη 18

Γλώσσες περιγραφής υλικού: Verilog Ιστορική αναδρομή: Αναπτύχθηκε ως γλώσσα μοντελοποίησης υλικού από την εταιρεία Gateway Design Automation το 1984 για ιδιωτική χρήση Η εταιρεία Cadence Design Systems αγόρασε την Gateway το 1990 Η εταιρεία Cadence είναι υπεύθυνη για την προώθηση της Verilog ως γλώσσα μοντελοποίησης & προσομοίωσης Η εταιρεία Synopsys είναι υπεύθυνη για την προώθηση της Verilog ως γλώσσα σύνθεσης Πρότυπο από τον οργανισμό IEEE το 1995 Πιο διαδεδομένη στην Αμερική 19 HDL: μοντελοποίηση & προσομοίωση Αρχικά οι γλώσσες περιγραφής υλικού (HDL) σχεδιάστηκαν για τη μοντελοποίηση και τη προσομοίωση των συστημάτων Η ιδέα ήταν να εισάγουν δομές στην γλώσσα που να επιτρέπουν τη μοντελοποίηση και τη προσομοίωση του υλικού στα υψηλότερα επίπεδα αφαίρεσης Χαρακτηριστικά μοντελοποίησης των HDLs: παράλληλη εκτέλεση ιεραρχική σχεδίαση περιγραφή χρονισμών περιγραφή ακολουθίας γεγονότων περιγραφή σύγχρονης/ασύγχρονης συμπεριφοράς 20

HDL: μοντελοποίηση & σύνθεση Αργότερα όμως αναπτύχθηκαν εργαλεία για σύνθεση...... τα εργαλεία σύνθεσης όμως δεν μπορούν να υποστηρίξουν όλες τις δομές των HDLs Hardware HDL Μοντελοποίηση Σύνθεση HDL Hardware Ένα υποσύνολο των HDL είναι συνθέσιμο VHDL for synthesis VHDL for simulation 21 Πώς να ΜΗΝ γράφετε κώδικα VHDL Επειδή οι HDLs έχουν τις ρίζες τους σε γλώσσες προγραμματισμού (η VHDL στην Ada και η Verilog στην C) είναι εύκολες στην εκμάθηση αλλά δύσκολες στη σωστή χρήση τους! Οι αρχάριοι σχεδιαστές τείνουν να γράφουν κώδικα VHDL που μοιάζει με τα προγράμματα υπολογιστών ( πολλές μεταβλητές και πολλούς βρόχους ) Για αυτό: Μη γράφετε VHDL όπως θα γράφατε ένα πρόγραμμα Θυμηθείτε τις δυνατότητες που σας δίνει η VHDL (π.χ. παράλληλη εκτέλεση, περιγραφή χρονισμών, περιγραφή ακολουθίας γεγονότων) Να έχετε πάντα στο μυαλό σας τι κύκλωμα αντιστοιχεί στον κώδικα VHDL που γράφετε 22

Έννοιες μοντελοποίησης της VHDL Διασύνδεση (interface) Συμπεριφορά (behavior) Δομή (structure) Μοντέλα δοκιμής (test benches) 23 Σχεδιαστική μονάδα στη VHDL External interface a b cin Full adder Internal Functionality sum cout 24

Οντότητα (entity) Περιγράφει την εξωτερική διασύνδεση (external interface) της σχεδιαστικής μονάδας Entity name Port type entity full_adder is port ( a, b, cin : in bit; sum, cout : out bit); end entity full_adder; Port name Port mode 25 Αρχιτεκτονική (architecture) Περιγράφει την εσωτερική συνάρτηση (internal functionality) της σχεδιαστικής μονάδας Architecture name Entity name Architecture body architecture behav of full_adder is begin end architecture behav; 26

Οντότητα και αρχιτεκτονικές Υπάρχουν διαφορετικές αρχιτεκτονικές για να περιγράψουν την συνάρτηση μίας οντότητας Entity Behavioral description Structural description Circuit 1 Circuit 2 27 Περιγραφή συμπεριφοράς (behavioral description) architecture behav of full_adder is begin p: process (a,b,cin) is begin if a = '1' then cout <= b or cin; sum <= b xnor cin; else cout <= b and cin; sum <= b xor cin; end if; end process; end architecture behav; 28

Περιγραφή δομής (structural description) entity half_adder is port (a,b : in bit; sum,cout : out bit); end entity half_adder; architecture behav of half_adder is begin sum <= a xor b; cout <= a and b; end architecture behav; 29 Περιγραφή δομής (structural description) architecture struct of full_adder is signal sum1,cout1,cout2: bit; begin ha1: entity work.half_adder(behav) port map(a,b,sum1,cout1); ha2: entity work.half_adder(behav) port map(cin,sum1,sum,cout2); cout <= cout1 or cout2; end architecture struct; 30

Ποια περιγραφή είναι καλύτερη; Πολυπλοκότητα της σχεδίασης: Η περιγραφή συμπεριφοράς προτιμάται για να περιγράψει μία πολύπλοκη συνάρτηση Η περιγραφή δομής προτιμάται για να περιγράψει μία ιεραρχική σχεδίαση (επαναχρησιμοποίηση μονάδων) Απόδοση της σχεδίασης: μέγεθος, καθυστέρηση, κατανάλωση Εξαρτάται από το εργαλείο σύνθεσης Εξαρτάται από την εμπειρία του σχεδιαστή Όλοι οι τύποι περιγραφής μπορούν να συνδυαστούν σε μία σχεδίαση 31 Παράδειγμα: συνδυαστικό κύκλωμα Δύο δοχεία επεξεργασίας υγρών: Διακόπτης επιλογής δοχείου Σωστή θερμοκρασία (μεταξύ 25 C και 30 C) Αισθητήρες θερμοκρασίας Αισθητήρες χαμηλής στάθμης Κύκλωμα ελέγχου που ενεργοποιεί ένα κουδούνι (συναγερμού) Όταν η θερμοκρασία είναι πολύ υψηλή ή πολύ χαμηλή ή Όταν η στάθμη του υγρού είναι πολύ χαμηλή 32

Σχεδίαση κυκλώματος >30 C vat 0 >25 C low level >30 C 0 1 buzzer vat 1 >25 C select vat 1 +V low level select vat 0 33 Σχεδίαση κυκλώματος >30 C above_30_0 temp_bad_0 >25 C low level >30 C or_0a inv_0 above_25_0 below_25_0 low_level_0 above_30_1 temp_bad_1 or_0b wake_up_0 select_mux 0 buzzer 1 buzzer >25 C low level inv_1 above_25_1 below_25_1 low_level_1 or_1a or_1b wake_up_1 select_vat_1 +V 34

Δήλωση οντότητας entity vat_buzzer is port ( above_25_0, above_30_0, low_level_0 : in bit; above_25_1, above_30_1, low_level_1 : in bit; select_vat_1 : in bit; buzzer : out bit ); end entity vat_buzzer; 35 Αρχιτεκτονική δομής library dld; use dld.gates.all; architecture struct of vat_buzzer is signal below_25_0, temp_bad_0, wake_up_0 : bit; signal below_25_1, temp_bad_1, wake_up_1 : bit; begin -- components for vat 0 inv_0 : inv (above_25_0, below_25_0); or_0a : or2 (above_30_0, below_25_0, temp_bad_0); or_0b : or2 (temp_bad_0, low_level_0, wake_up_0); -- components for vat 1 inv_1 : inv (above_25_1, below_25_1); or_1a : or2 (above_30_1, below_25_1, temp_bad_1); or_1b : or2 (temp_bad_1, low_level_1, wake_up_1); select_mux : mux2 (wake_up_0, wake_up_1, select_vat_1, buzzer); end architecture struct; 36

Αρχιτεκτονική συμπεριφοράς architecture behavior of vat_buzzer is begin buzzer <= low_level_1 or (above_30_1 or not above_25_1) when select_vat_1 = '1' else low_level_0 or (above_30_0 or not above_25_0); end architecture behavior; 37 Test Benches Επαλήθευση της σχεδίασης με προσομοίωση Τι είναι ένα test bench; Ένα VHDL μοντέλο χωρίς εισόδους/εξόδους που περιέχει ένα στιγμιότυπο της μονάδας υπό δοκιμή Τι κάνει ένα test bench; Εφαρμόζει ακολουθίες τιμών δοκιμής στις εισόδους της μονάδας Παρακολουθεί τις τιμές στις εξόδους της μονάδας 38

Παράδειγμα test bench entity test_vat_buzzer is end entity test_vat_buzzer; architecture testbench of test_vat_buzzer is begin signal Above_25_0, Above_30_0, Low_level_0 : bit; Above_25_1, Above_30_1, Low_level_1 : bit; Select_vat_1, Buzzer : bit; dut : entity work.vat_buzzer(behav) port map (Above_25_0, Above_30_0, Low_level_0, Above_25_1, Above_30_1, Low_level_1, Select_vat_1, Buzzer); stimulus : process is begin 39 Παράδειγμα test bench (συν.) --Temperature between 25 C and 30 C, Levels OK Above_25_0 <= 1 ; Above_30_0 <= 0 ; Low_level_0 <= 0 ; Above_25_1 <= 1 ; Above_30_1 <= 0 ; Low_level_1 <= 0 ; Select_vat_1 <= 0 ; wait for 20 ns; --Vat0: temperature above 30 C Above_30_0 <= 1 ; wait for 20 ns; --Vat0: temperature below 25 C Above_30_0 <= 0 ; Above_25_0 <= 0 ; wait for 20 ns; --Temperature between 25 C and 30 C, Levels OK Above_25_0 <= 1 ; wait for 20 ns; --Vat1: low level Low_level_1 <= 1 ; Select_vat_1 <= 1 ; wait for 20 ns; wait; end process stimulus; end architecture testbench; 40