Περιγραφή Κυκλωμάτων με χρήση της VHDL Εισαγωγικές έννοιες για σχεδιασμό με τη VHDL
Οργάνωση Παρουσίασης VHDL εισαγωγικές έννοιες Ροή και επίπεδα σχεδιασμού ψηφιακών κυκλωμάτων Μοντελοποίηση Καθυστερήσεων VHDL Υπομονάδες (Components) ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 2
Αντικείμενο του μαθήματος - Εξέταση Αντικείμενο του μαθήματος: Σχεδίαση και σύνθεση ψηφιακών συστημάτων Θέματα του μαθήματος: Περιγραφή και σύνθεση ψηφιακών κυκλωμάτων / συστημάτων με τη γλώσσα VHDL Τεχνολογίες σχεδιασμού ψηφιακών κυκλωμάτων (ASIC, FPGA, CPLDs, Gate Arrays) Εξέταση: Εργασία σχεδιασμού κυκλώματος / συστήματος με χρήση της VHDL ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 3
Εισαγωγή H VHDL είναι μια γλώσσα που χρησιμοποιείται για την περιγραφή και μοντελοποίηση ψηφιακών κυκλωμάτων VHDL: V HSIC Hardware Description Language (VHSIC: Very High Speed Integrated Circuit) Αρχικοποιήθηκε από το DoD (Department of Defense- USA) στις αρχές του 1980 ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 4
Πεδία Εφαρμογής της VHDL Εξομοίωση ορθής λειτουργίας (Simulation) Σύνθεση ψηφιακών κυκλωμάτων (Synthesis) Επιβεβαίωση ορθού σχεδιασμού (Design Verification) Μοντέλα προδιαγραφών (Specification Models) ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 5
Πλεονεκτήματα της γλώσσας VHDL Παγκόσμιο πρότυπο (ΙΕΕΕ 1076-1987, 1076-1993) Υποστήριξη από πληθώρα αναπτυξιακών εμπορικών εργαλείων σχεδιασμού (CAD tools) Εύκολη μεταφορά κυκλωματικών περιγραφών σε διαφορετικά αναπτυξιακά περιβάλλοντα Δυνατότητα περιγραφής κυκλώματος / συστήματος σε διαφορετικά ιεραρχικά επίπεδα Από επίπεδο πύλης μέχρι επίπεδο συστήματος Υποστήριξη εναλλακτικών σχεδιαστικών μεθοδολογιών (Top-down, Bottom-up, Mixed) ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 6
Πλεονεκτήματα της γλώσσας VHDL Ιεραρχική σχεδίαση (Block Diagrams, Components) Επαναχρησιμοποίηση σχεδιασθέντων υπομονάδων (reusable components) Χρήση βιβλιοθηκών με σχεδιασθέντα κυκλώματα Μικρότερος χρόνος ανάπτυξης βελτιωμένων εκδόσεων του κυκλώματος / συστήματος Περιγραφή κυκλώματος/συστήματος ανεξάρτητα από την τεχνολογία υλοποίησης Επαναχρησιμοποίηση υπάρχουσας κυκλωματικής περιγραφής σε διαφορετικές τεχνολογίες Μικρότερος χρόνος ανάπτυξης βελτιωμένων εκδόσεων του κυκλώματος / συστήματος ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 7
Πλεονεκτήματα της γλώσσας VHDL Υποστήριξη συντρέχουσων και ακολουθιακών δομών (concurrent and sequential constructions) Οι περισσότερες γλώσσες (π.χ. C) υποστηρίζουν μόνο ακολουθιακές δομές Οι συντρέχουσες δομές είναι απαραίτητες για την περιγραφή της λειτουργίας του υλικού Εύκολη διαχείριση λαθών και επιβεβαίωση ορθής λειτουργίας Simulation, Error Management, Design Verification ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 8
Gajski and Kuhn's Y - Chart ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 9
Επίπεδο Συστήματος Περιγραφή των προδιαγραφών του συστήματος Δεν απαιτείται πληροφορία χρονισμών Δεν απαιτείται ακριβής καθορισμός της αρχιτεκτονικής του κυκλώματος / συστήματος Δυνατότητα εξομοίωσης και επιβεβαίωσης ορθής λειτουργίας ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 10
Επίπεδο Συμπεριφοράς Αναλυτικότερη περιγραφή της συμπεριφοράς / λειτουργίας του κυκλώματος Καθορισμός των απαιτούμενων αλγορίθμων για την ικανοποίηση των προδιαγραφών του συστήματος Εμπεριέχει πληροφορίες χρονισμού Μη αναλυτικός καθορισμός της αρχιτεκτονικής του κυκλώματος (καταχωρητές, μνήμες, συνδυαστικά κυκλώματα κ.λ.π.) Ένα μοντέλο περιγραφής σε επίπεδο συμπεριφοράς αποτελείται από τα λειτουργικά στοιχεία και τη διασύνδεση αυτών Κάθε λειτουργικό στοιχείο μπορεί να εμπεριέχει περισσότερα του ενός στοιχεία και πληροφορία χρονισμού ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 11
Επίπεδα Καταχωρητή και Πύλης Επίπεδο καταχωρητή (Register Transfer Level-RTL) Περιγραφή του κυκλώματος με χρήση συνδυαστικών κυκλωμάτων, καταχωρητών, μνημών, σύγχρονων και ασύγχρονων μηχανών πεπερασμένων καταστάσεων Επίπεδο Πύλης (Gate/Logic-Level) Περιγραφή του κυκλώματος σε επίπεδο πύλης Χρήση λογικών εξισώσεων (Boolean functions) Χρησιμοποιείται κυρίως για το σχεδιασμό βασικών συνδυαστικών κυκλωμάτων (αθροιστές, πολ/στές κ.λ.π.) Υψηλοί χρόνοι σύνθεσης και εξομοίωσης ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 12
Υποστηριζόμενα επίπεδα σχεδιασμού ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 13
Διάγραμμα ροής σχεδιασμού ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 14
VHDL Τρόποι Περιγραφής Κυκλωμάτων Συμπεριφοράς Ροής Δεδομένων Δομής (Behavioral VHDL) (Data flow VHDL) (Structural VHDL) Και οι τρεις παραπάνω μέθοδοι περιγραφής μπορούν να χρησιμοποιηθούν σε κάθε επίπεδο της ροής σχεδιασμού Καθώς μετακινούμαστε από το επίπεδο συμπεριφοράς στο επίπεδο δομής: Αναλυτικότερη κυκλωματική περιγραφή Καλύτερο έλεγχο της σύνθεσης του κυκλώματος Μεγαλύτερος κώδικας Υψηλότεροι χρόνοι εξομοίωσης ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 15
Behavioral VHDL Χρησιμοποιείται για την μοντελοποίηση της συμπεριφοράς του κυκλώματος σε υψηλό και αφηρημένο επίπεδο Αλγοριθμική περιγραφή της λειτουργίας του κυκλώματος Δεν περιγράφεται αναλυτικά η κυκλωματική δομή του κυκλώματος Δεν απαιτούνται αναλυτικές λογικές εξισώσεις sum= x+y ; x sum IF (x=1) AND (y=1) carry =1 ; y Half_Adder carry ELSE carry = 0; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 16
Behavioral VHDL Δυνατότητα εξομοίωσης για επιβεβαίωση ορθής λειτουργίας και κατανόησης (καταρχήν) της λειτουργίας του κυκλώματος Επαλήθευση μέσω back-annotated πληροφορίας, επιτρέπει επιπλέον να γίνει επιβεβαίωση ορθής λειτουργίας με στοιχεία της τεχνολογίας ολοκλήρωσης ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 17
Data Flow VHDL Αναλυτικότερη περιγραφή της λειτουργίας του κυκλώματος Χρήση λογικών εξισώσεων για την μοντελοποίηση της ροής δεδομένων Δυνατότητα εξομοίωσης και επιβεβαίωσης ορθής λειτουργίας sum= x'y OR xy' ; carry= x AND y ; x y Half_Adder sum carry ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 18
Structural VHDL Χρησιμοποιείται για την περιγραφή της διασύνδεσης των δομικών μονάδων του κυκλώματος Οι δομικές μονάδες ποικίλουν από απλές πύλες μέχρι σύνθετα κυκλώματα x x y Half_Adder sum carry Sum y x y Carry ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 19
Structural VHDL Προϋποθέτει την ύπαρξη βιβλιοθήκης από σχεδιασθέντα δομικά στοιχεία και την δυνατότητα χρήσης αυτών x x y Half_Adder sum carry Sum y x y Carry ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 20
Ιεραρχική Σχεδίαση Περιγραφή του κυκλώματος σε διαφορετικά ιεραρχικά επίπεδα Ένας ιεραρχικός σχεδιασμός αποτελείται από υπομονάδες που εμπεριέχουν άλλα υπομονάδες, VHDL κώδικές ή συνδυασμούς αυτών Στόχος: Η ευκολότερη κατανόηση και διαχείριση του σχεδιασμού Η πολυπλοκότητα δεν μειώνεται πάντοτε!!! Αποτέλεσμα: Γρηγορότερη και αποτελεσματικότερη σχεδίαση πολύπλοκων κυκλωμάτων ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 21
Ιεραρχική Σχεδίαση Βασική ιδέα: Απόκρυψη μη χρήσιμης πληροφορίας σε κάθε ιεραρχικό επίπεδο Αρχή του μαύρου κουτιού: Μόνο οι είσοδοι / έξοδοι και η λειτουργία του κάθε component ( συμπεριφορά των εισόδων / εξόδων) είναι ορατές ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 22
Ιεραρχική Σχεδίαση 1 VHDL Περιγραφή Component 1.1 VHDL Περιγραφή Component 1.2 1.1 1.2 1.3 1.3.1 1.3.2 VHDL Περιγραφή Component 1.3.2 VHDL Περιγραφή Component 1.3.1 Component 1.3 Component 1 ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 23
Τύποι Καθυστερήσεων Αδράνειας (Inertial delay) Προκαθορισμένος τύπος της VHDL Δυνατότητα καθορισμού καθυστέρησης από το χρήστη Μη μετάδοση μικρής διάρκειας παλμών (spikes) Χρησιμοποιείται για τη μοντελοποίηση καθυστερήσεων των components ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 24
Τύποι Καθυστερήσεων Μεταφοράς (Transport delay) Μετάδοση όλων των παλμών ανεξάρτητα του εύρους τους Δυνατότητα καθορισμού καθυστέρησης από το χρήστη Χρησιμοποιείται για μοντελοποίηση διασυνδέσεων Δεν υποστηρίζονται από κανένα εργαλείο σύνθεσης!!! Χρησιμοποιούνται για ανάπτυξη μοντέλων εξομοίωσης ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 25
Inertial / Transport Delay A B A 10 20 30 40 50 60 [ns] b1 b1<=inertial INERTIAL a after a AFTER 10 ns; 10 ns; b2 b2<=transport TRANSPORT a after a 10 AFTER ns; 10 ns; B3 b3<=reject REJECT 4 ns 4 inertial ns INERTIAL a after 10 a AFTER ns; 10 ns; B1 B2 B3 ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 26
Delta Time Χρησιμοποιείται από τον εξομοιωτή για τη χρονοδρομολόγηση συμβάντων Delta delay χρησιμοποιείται όταν δεν ορίζεται άλλος τύπος καθυστέρησης Είναι απειροελάχιστος (infinitesimal) χρόνος μη ορατός από το χρήστη Δεν εισάγει καμία πραγματική καθυστέρηση b<=a; -- Το σήμα b παίρνει την τιμή του a μετά από delta delay ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 27
Delta Time A B & C D A c<=a and b; d<=not c; c <= a AND b; d <= NOT c; B 10 20 30 40 50 60 [ns] 30 ns+1 delta 57 ns+1 delta C D 30 ns+2 delta 57 ns+2 delta ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 28
Delta Time Ποια η τιμή της εξόδου όταν όλες οι πύλες έχουν μηδενική καθυστέρηση? IN: 1->0 1 A B C NAND evaluate first IN : 1->0 A : 0->1 B : 1->0 C : 0->0 AND evaluate first IN : 1->0 A : 0->1 C : 0->1 B : 1->0 C : 1->0 Διαφορετική και μη προβλέψιμη απόκριση της εξόδου Γένεση spike C (0->1->0) στη δεύτερη περίπτωση Η μη προβλέψιμη απόκριση της εξόδου δεν είναι επιθυμητή για τη σωστή μοντελοποίηση της λειτουργίας του κυκλώματος ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 29
Delta Time Συμπεριφορά του κυκλώματος με delta_delay_time (1ns simulation cycle) Scheduling Using Delta_time IN: 1->0 1 A B C Time Delta Event 0ns 1 IN : 1->0 eval. inv 2 A : 0->1 eval. AND, NAND 3 B : 1->0, C : 0->1 eval. NAND 4 C : 0->1 1ns End of Simulation A=1, B=0, C=0 Πλήρης χρονοδρομολόγηση των συμβάντων και σαφής καθορισμός των τιμών των σημάτων στο τέλος του κύκλου εξομοίωσης ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 30
Υπομονάδες - Components Κάθε υπομονάδα αποτελείται από δύο μέρη: Entity - Σήματα εισόδου / εξόδου (in / out ports) Architecture - Περιγραφή της λειτουργίας του είτε σε επίπεδο συμπεριφοράς είτε σε επίπεδο κυκλώματος Entity IN Architecture OUT ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 31
Υπομονάδες - Components Αρχή του μαύρου κουτιού Μόνο η γνώση των σημάτων εισόδου / εξόδου και της συμπεριφοράς αυτών απαιτούνται για τη χρήση ενός component Δεν μας ενδιαφέρει η υλοποίηση του IN Component OUT ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 32
Υπομονάδες - Components Θεμελιώδης έννοια της VHDL. Χρησιμοποιούνται για την περιγραφή της λειτουργίας απλών πυλών μέχρι συστημάτων (π.χ. επεξεργαστή) Αποθήκευση σχεδιασθέντων υπομονάδων σε βιβλιοθήκη και επαναχρησιμοποίηση αυτών ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 33
Υπομονάδες - Components Copy comp X Instance Comp A Comp X Comp X Library Comp B Schematic_Design ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 34
Βιβλιογραφία / άλλες πηγές P. Ashenden, The Designer s Guide to VHDL, Morgan Kaufman Publishers, 1996 S. Sjoholm and L. Lennart, VHDL for Designers, Prentice Hall, 1997 B. Cohen, VHDL Coding Styles and Methodologies, Kluwer Academic Publishers, 1999 Z. Navabi, VHDL-Analysis and Modeling of Digital Systems, Mc Graw-Hill, 1993 VHDL cookbooks of the synthesis tools ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 35
Βιβλιογραφία / άλλες πηγές On-line μαθήματα σε ASIC/VHDL design: http://www.dacafe.com/asics.htm http://www.ecs.umass.edu/ece/vspgroup/burleso n/courses/558/ http://mikro.e-technik.uni-ulm.de/vhdl/anlengl.vhd/html/vhdl-all-e.html http://www.eas.asu.edu/~yong598d/vhdl_links. html ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 36
Βιβλιογραφία / άλλες πηγές Tutorials/Papers: http://www.vhdl.org/fmf/wwwpages/fmf_ecl_m odels_paper.html http://www.bluepc.com/download.html#downloa dtop http://www.symphonyeda.com/products.htm http://www.angelfire.com/electronic/in/vlsi/vhdl.ht ml#vhdl ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 37
Βιβλιογραφία / άλλες πηγές Freeware VHDL/Synthesis tools: http://www-asim.lip6.fr/recherche/alliance/ http://www.bluepc.com/download.html#downloa dtop http://www.symphonyeda.com/products.htm http://www.ececs.uc.edu/~paw/savant/ http://www.aldec.com/downloads/ ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 38
Βιβλιογραφία / άλλες πηγές Άλλες πηγές: http://www.ieee.org http://www.acm.org http://www.vhdl.org http://tech-www.informatik.uni-hamburg.de/vhdl/ http://www.eeglossary.com/vhdl.htm http://www.ent.ohiou.edu/~starzyk/network/class /ee514/intro.html ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 39