7 η Θεµατική Ενότητα : Εισαγωγή στις Γλώσσες Περιγραφής Υλικού
Εισαγωγή Η χειρονακτική σχεδίαση ενός ψηφιακού συστήµατος είναι εξαιρετικά δύσκολη και επιρρεπής σε λάθη Συστήµατα που ξεπερνούς τις µερικές εκατοντάδες πύλες δηµιουργούν προβληµατα Πολυπλοκότητα σχεδίασης Μεγάλος Σχεδιαστικός Φόρτος Δυσκολία επαναχρησιµοποίησης Δυσκολία Ελέγχου Ελλειψη τεκµηρίωσης 2
Γενικά Τα σύγχρονα ψηφιακά συστήµατα είναι αρκετά περίπλοκα (πολλά εκατοµµύρια πύλες). Απαιτείται αντιµετώπιση της πολυπλοκότητας για σχεδίαση µε σιγουριά τήρησης των προδιαγραφών. Χρήση αυτοµατοποιηµένων µεθόδων και τεχνικών τµηµατοποίησης της σχεδίασης Γλώσσες Περιγραφής Υλικού (HDL) Γλώσσα Περιγραφής VHDL 3
HDLs Μία γλώσσα περιγραφής υλικού είναι µία γλώσσα για Η/Υ που περιγράφει ενα σύστηµα σε µορφή κειµένου. Μοιάζουν πολύ σε γλώσσες προγραµµατισµού όπως η C αλλά περιγράφουν την συµπεριφορά λογικών κυκλωµάτων Λογικά Διαγράµµατα Πίνακες Αληθείας Εκφράσεις Boole Περίπλοκες περιγραφές συµπεριφοράς Γλώσσα Περιγραφής VHDL 4
HDLs Είσοδοι HDL Έξοδοι Σχέση σηµάτων εισόδου µε σήµατα εξόδου Τεκµηρίωση Αυτόµατη Σχεδίαση Μεταφορά σε διαφορετικές τεχνολογίες Μοντέλο: Τρόπος αναπαράστασης πληροφοριών και επίπεδο αφαίρεσης. Οι HDLs υποστηρίζουν πολλά επίπεδα αφαίρεσης/ µοντέλα Γλώσσα Περιγραφής VHDL 5
Βασικές Αρχές Μοντέλα Διασυνδέσεων (Interface Models) Μοντέλα Συµπεριφοράς (Behaviour Models) Μοντέλα Δοµής (Structure Models) Μοντέλα Ελέγχου-Επαλήθευσης (Test Bench Models) Προσοµοίωση (Simulation) Σύνθεση (Synthesis) Η δοµή µιας HDL σχεδίασης µοιάζει µε τη δοµή µίας σύγχρονης σχεδίασης λογισµικού: η HDL περιγράφει από κοινού ένα τρόπο διασύνδεσης/επικοινωνίας του σχεδιασµού µε το εξωτερικό περιβάλλον καθώς και µία εσωτερική υλοποίηση. Γλώσσα Περιγραφής VHDL 6
Περιοχές & Επίπεδα Μοντελοποίησης Ι Δοµικό Structural Λειτουργικό Functional υψηλό επίπεδο αφαίρεσης χαµηλό επίπεδο αφαίρεσης Γεωµετρικό Geometric Gajski & Kahn Y-Chart Γλώσσα Περιγραφής VHDL 7
Περιοχές & Επίπεδα Μοντελοποίησης ΙΙ Δοµικό Structural Λειτουργικό Functional Algorithm (behavioral level) Register-Transfer Language Boolean Equations Differential Equations Γεωµετρικό Geometric Gajski & Kahn Y-Chart Γλώσσα Περιγραφής VHDL 8
Περιοχές & Επίπεδα Μοντελοποίησης ΙΙΙ Δοµικό Structural Λειτουργικό Functional Processor Memory Switch (PMS) Register-Transfer Level Gates Transistors Γεωµετρικό Geometric Gajski & Kahn Y-Chart Γλώσσα Περιγραφής VHDL 9
Περιοχές & Επίπεδα Μοντελοποίησης ΙV Δοµικό Structural Λειτουργικό Functional Polygons Sticks Standard Cells Γεωµετρικό Geometric Floor Plan Gajski & Kahn Y-Chart Γλώσσα Περιγραφής VHDL 0
Παράδειγµα Control ALU MPU MPU Interconnect CIO Memory CIO GPR IR PC MAR MDR Bus Drivers ALU8 Γλώσσα Περιγραφής VHDL
Μοντελοποίηση συστηµάτων Ανάγκες χρήσης µοντέλων: καταγραφή προδιαγραφών τεκµηρίωση επαλήθευση µε τη χρήση προσοµοίωσης τυπική επαλήθευση (formal verification) σύνθεση Στόχος αξιόπιστη διαδικασία σχεδίασης, µε ταυτόχρονη ελαχιστοποίηση του κόστους και του απαιτούµενου χρόνου αποφυγή σχεδιαστικών λαθών Γλώσσα Περιγραφής VHDL 2
Βήµατα Σχεδίασης Συστηµάτων Εισαγωγή Σχεδίασης Λογική Εξοµοίωση Λογική Σύνθεση Χρονική Επιβεβαίωση Εξοµοίωση Σφαλµάτων Λογικές Εξισώσεις, Λίστα Συνδεδεµένων Πυλών Πίνακες Αλήθειας, Μοντέλο Συµπεριφοράς Διασυνδεδεµένες Λειτουργικές Μονάδες Συµπεριφορά Συστήµατος µε προβολή ακολουθίας τιµών στην οθόνη (test bench) Δηµιουργία Λίστας Διασυνδεδεµένων Στοιχείων Βιβλιοθήκης Επιβεβαίωση Ταχύτητας Συστήµατος Δηµιουργία Διανυσµάτων για Έλεγχο Ορθής Λειτουργίας Αυτοµατοποίηση µε εργαλεία Σχεδίασης Γλώσσα Περιγραφής VHDL 3
Γλώσσες Περιγραφής Υπάρχουν δύο βασικές γλώσσες προτυποποιηµένες από την ΙΕΕΕ VHDL: VHSIC HDL Very High-Speed Integrated Circuits Verilog Πολύλογη Συνοπτική Ακολουθούν κοινές τεχνικές περιγραφής 4
H Γλώσσα Verilog Βασικά Λεκτικά Στοιχεία Δεσµευµένες λέξεις: module, endmodule, input, output, wire, and, or, not,. Σχόλια γραµµής: // Σχόλια εκτεταµένα: /*...*/ Τα κενά επιτρέπονται µόνο ανάµεσα σε λέξεις και αγνοούνται Αναγνωριστές (Identifiers): ξεκινούν µόνο µε γράµµα Γίνεται διάκριση κεφαλαίων-µικρών 5
Το "Module" Περιγραφή Συνδυαστικής Λογικής σε HDL Σχηµατική Διασύνδεση Πυλών Σχόλιο Σύνολο Λογικών Εξισώσεων Πίνακας Αλήθειας Δεσµευµένες Λέξεις Αναγνωριστές 6
Το "Module" Περιγραφή Συνδυαστικής Λογικής σε HDL Σχηµατική Διασύνδεση Πυλών Σύνολο Λογικών Εξισώσεων Πίνακας Αλήθειας Εδώ δεν µπαίνει ";" 7
Το "Module" Περιγραφή Συνδυαστικής Λογικής σε HDL Σχηµατική Διασύνδεση Πυλών Όνοµα Κυκλώµατος Σύνολο Λογικών Εξισώσεων Πίνακας Αλήθειας Θύρες Ε/Ε Τύπος Θυρών 8
Το "Module" Περιγραφή Συνδυαστικής Λογικής σε HDL Σχηµατική Διασύνδεση Πυλών Σύνολο Λογικών Εξισώσεων Πίνακας Αλήθειας Εσωτερική διασύνδεση Έξοδοι (προηγούνται) Primitive Gates (πρωταρχικές πύλες) Στιγµιότυπα Πυλών Είσοδοι (σε οποιαδήποτε σειρά) Συνδέσεις θυρών 9
Δήλωση ή Στιγµιότυπο; Δήλωση του Module Simple_Circuit Στιγµιότυπα Πρωταρχικών Πυλών (δεν χρειάζονται δήλωση) Η σειρά των στιγµιότυπων δεν παίζει κανένα ρόλο. Μπορούµε να δηµιουργήσουµε πολλά στιγµιότυπα του Simple_Circuit 20
Όλες οι πύλες έχουν καθυστέρηση από είσοδο σε έξοδο Οδηγία προς µεταγλωτιστή Καθυστερήσεις Πυλών Οι καθυστερήσεις είναι σηµαντικές στην εξοµοίωση Μονάδα µέτρησης (default : ns) `timescale ns/00ps Μονάδα στρογγυλοποίησης Καθυστερήσεις Πυλών (#) 2
Καθυστερήσεις Πυλών #30 #20 Αρχικό διάνυσµα εισόδου (Α, Β, C) = (0, 0, 0) Οι εσωτερικές γραµµές και οι έξοδοι µεταβάλονται σε διακριτές χρονικές στιγµές που καθορίζονται από τις καθυστερήσεις των πυλών Μετάβαση στο διάνυσµα (Α, Β, C) = (,, ) Τελική έξοδος (D, E) = (, 0) 22
Καθυστερήσεις Πυλών 0 0 0 #30 #0 0 #20 Χρονική στιγµή 0 ns: Οί είσοδοι µεταβαίνουν στην τιµή όλες µαζί ταυτόχρονα 23
Καθυστερήσεις Πυλών #30 #0 0 #20 0 0 0 Αναµένεται να αλλάξει τιµή η έξοδος σε 0 Χρονική στιγµή 0 ns: Η έξοδος της G2 µεταβαίνει στην τιµή 0 Μαζί αλλάζουν τιµή και η είσοδος της πύλης G3 και η έξοδος Ε αφού συνδέονται απευθείας στην έξοδο της G2 24
Καθυστερήσεις Πυλών #30 #0 #20 0 0 0 0 Χρονική στιγµή 30 ns: Η έξοδος της G µεταβαίνει στην τιµή Προσοχή: έχουν περάσει 20 ns από την στιγµή που άλλαξε η κάτω είσοδος της G3 στο 0 οπότε και η έξοδος D µεταβαίνει στο 0 25
Καθυστερήσεις Πυλών #30 #0 #20 0 0 0 Χρονική στιγµή 50 ns: Η έξοδος της G3 µεταβαίνει στην τιµή και σταθεροποιείται 26
Test Bench Η διαδικασία αυτή είναι πολύ δύσκολη αν γίνεται χειρονακτικά Χρησιµοποιούνται εξοµοιωτές Οι είσοδοι εφαρµόζωνται στο κύκλωµα µε την χρήση ειδικών περιγραφών, τα test benches Οι εσωτερικές τιµές και οι έξοδοι αποτυπώνονται στην οθόνη µε χρήση ειδικού λογισµικού Ενσωµατώνουν τις περιγραφές των κυκλωµάτων Ενσωµατώνουν τις κυµµατοµορφές εισόδου Κυµµατοµορφές Εξόδου & επιλεγµένων εσωτερικών κόµβων 27
Test Bench Οι είσοδοι και έξοδοι της µονάδος δηλώνονται εσωτερικά Δεν υπάρχουν είσοδοι/ έξοδοι στα test benches Στιγµιότυπο Μ ελεγχόµενης οµάδος Έξοδοι wires Είσοδοι reg Μπλοκ παραγωγής τιµών σηµάτων Μπλοκ ολοκλήρωσης της εξοµοίωσης Ένα test bench είναι ένα module που δεν αντιστοιχεί σε πραγµατικό κύκλωµα (δεν συντίθεται) 28
Signal Generator Ξεκινά µε την έναρξη της εξοµοίωσης Το initial µπλοκ εκτελείται µία µόνο φορά Χρονική καθυστέρηση 00 µονάδων Νέες τιµές σηµάτων την χρονική στιγµή #00 Αρχικές τιµές σηµάτων την χρονική στιγµή #0 Κυµµατοµορφές σηµάτων εισόδου 29
Κυµµατοµορφές Εξόδου Καθυστέρηση διάδοσης Αρχικά οι έξοδοι είναι σε άγνωστη κατάσταση Αλλαγή τιµών εισόδου Προσωρινές µεταβάσεις εξόδου Κατάσταση ηρεµίας 30
Λογικές Εκφράσεις Στην Verilog µία έκφραση µπορεί να αποδοθεί απευθείας µε τελεστές assign AND : && OR : NOT :! Λογικοί Τελεστές assign D = (A && B) (!C); assign E =!C; 3
Λογικές Εκφράσεις Παράδειγµα Δεν υπάρχουν ενδιάµεσα σήµατα Η σειρά δεν έχει σηµασία Ταυτόχρονα (concurrent) Οποιαδήποτε αλλαγή στα σήµατα A, B, C, D προκαλεί επαναϋπολογισµό των E, F 32
Primitives οριζόµενα από τον χρήστη Primitives Συστήµατος Ο χρήστης µπορεί να ορίσει δικά του primitives Δεσµευµένη λέξη Δήλωση Πίνακα Πίνακας Αλήθειας του Primitive 33
Primitives οριζόµενα από τον χρήστη 34