Τεχνικές Τμηματικής Εξετασιμότητας και Μελέτης Κατανάλωσης σε Τρισδιάστατα Ψηφιακά Ολοκληρωμένα Κυκλώματα

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Τεχνικές Τμηματικής Εξετασιμότητας και Μελέτης Κατανάλωσης σε Τρισδιάστατα Ψηφιακά Ολοκληρωμένα Κυκλώματα"

Transcript

1 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τομέας Ηλεκτρονικής και Υπολογιστών Διπλωματική Εργασία Τεχνικές Τμηματικής Εξετασιμότητας και Μελέτης Κατανάλωσης σε Τρισδιάστατα Ψηφιακά Ολοκληρωμένα Κυκλώματα Τσιούγκος Ανδρέας Επιβλέπων: Χατζόπουλος Αλκιβιάδης Καθηγητής Α.Π.Θ. Θεσσαλονίκη, Νοέμβριος 2016

2 Ευχαριστίες Αρχικά, ευχαριστώ θερμά τον καθηγητή μου κύριο Αλκιβιάδη Χατζόπουλο, για τη καθοδήγησή του σε όλη τη διάρκεια της διπλωματικής εργασίας μέχρι την επιτυχή ολοκλήρωσή της και την άριστη συνεργασία που είχαμε σε όλη τη διάρκειά της. Επιπλέον, θα ήθελα να ευχαριστήσω το διδακτορικό ερευνητή κύριο Κατσέλα Λεωνίδα για την καθοδήγησή του, τις συμβουλές του και την άμεση βοήθειά του σχετικά με τα εργαλεία της Cadence. Τέλος, θα ήθελα να ευχαριστήσω την οικογένειά μου για την ψυχολογική υποστήριξη και συμπαράσταση που μου προσέφερε καθώς και για την υπομονή που επέδειξαν όλο αυτό το διάστημα. 2

3 Περίληψη Τα τελευταία χρόνια λόγω της ραγδαίας ανάπτυξης της τεχνολογίας και της ολοένα και μεγαλύτερης επικράτησης των ψηφιακών κυκλωμάτων σε βάρος των αναλογικών, ακόμα και σε περιοχές οι οποίες μέχρι πρότινος καλύπτονταν εξ ολοκλήρου από αναλογικά, έχει παρατηρηθεί ανάπτυξη και σε αρκετούς άλλους τομείς που σχετίζονται με αυτά. Ο κυριότερος εξ αυτών είναι η διαδικασία εξέτασης και αποσφαλμάτωσης των ψηφιακών κυκλωμάτων. Μολονότι αυτό γίνεται σε πρώτο επίπεδο κατά το στάδιο σχεδίασης ενός ψηφιακού κυκλώματος, εντούτοις είναι αναπόσπαστο στοιχείο του τελικού προϊόντος, καθώς μπορεί να προέκυψαν λάθη μη λογικής φύσεως οπότε και μη ανιχνεύσιμα κατά τη σχεδίαση, και ως εκ τούτου της γραμμής παραγωγής ενός εργοστασίου παραγωγής ψηφιακών κυκλωμάτων. Επίσης, τα τελευταία χρόνια έχει γίνει οργανωμένα μία προσπάθεια για την παραγωγή τεχνογνωσίας στο χώρο των κυκλωμάτων περισσότερων του ενός επιπέδου πυριτίου όπως τριών διαστάσεων 3D. Η προσπάθεια αυτή έχει οδηγήσει πολλές από τις ήδη υπάρχουσες τεχνικές αποσφαλμάτωσης σε αδυναμία εφαρμογής στα νέα κυκλώματα με αποτέλεσμα να αναζητούνται νέοι τρόποι εξέτασης των 3D κυκλωμάτων. Επιπλέον, έχοντας οι σχεδιαστές ως στόχο την κατά το δυνατό χαμηλότερη κατανάλωση είναι επιτακτική ανάγκη η ανάπτυξη τεχνικών που να παρέχουν πληροφορίες κατανάλωσης στο σχεδιαστή αξιόπιστα και γρήγορα. Στα πλαίσια της παρούσας διπλωματικής εργασίας πραγματοποιήθηκε αρχικά η ανάπτυξη αλγορίθμων ανάλυσης κατανάλωσης των κυκλωμάτων καθώς και απομόνωσης των βαθμίδων εξέτασης (Design for Test) και εν συνεχεία η ανάπτυξη μιας τεχνικής τμηματικού ελέγχου ενός τρισδιάστατου κυκλώματος. Τα πειράματα και οι προσομοιώσεις διεξήχθησαν με τη βοήθεια των εργαλείων της Cadence και κυρίως του Encounter Test (ET) και της Γεννήτριας Παραγωγής Διανυσμάτων Αυτόματης Εξέτασης (Automatic Test Pattern Generation - ATPG). Λέξεις Κλειδιά Εξετασιμότητα ψηφιακών κυκλωμάτων, βαθμός κάλυψης εξετασιμότητας, τμηματικός έλεγχος ψηφιακών κυκλωμάτων, encounter test ET, εξέταση τρισδιάστατων κυκλωμάτων 3Δ, Γεννήτρια Παραγωγής Διανυσμάτων Αυτόματης Εξέτασης. 3

4 Abstract Modular Test and Energy Consumption Analysis Techniques for Three-dimensional stacked integrated circuits 3D SICs Rapid development of technology and increasing prevalence of digital circuits at the expense of analog has been observed in recent years, in areas previously covered entirely by analog yet. That has lead to growth in several areas associated with them and the most of them test and debug process. Although test and debug takes place at the very bottom level, during the design stage of a digital circuit, however, is an integral part of the final product, as it provides the capability of encountering irrational nature mistakes undetectable at design time, and hence of production line in a digital circuit producing factory. Also, a rapid explosion in three dimensional stacked integrated circuits (3D SICs) has been made throughout recent years yielded to subsequent progress in several techniques, because of the inability of traditional ones to be used in 3D SICs test. In addition, researchers try to design more energy-efficient circuits which makes development of new techniques able to give fast and reliable energy information about the designed circuit of vital importance. As a part of current thesis we first developed algorithms able to provided energy information about a given circuit as well as separate the design for test from a given design and finally a technique for modular test in three dimensional stacked integrated circuits (3D SICs). We used Cadence Tools for all of our experiments and simulations and more specifically we used Encounter Test (ET) and Automatic Test Pattern Generation (ATPG). Keywords Testability of digital circuits, test coverage, modular test in 3D SICs, encounter test ET, 3D testing, automatic test pattern generation (ATPG). 4

5 Περιεχόμενα Ευχαριστίες... 2 Περίληψη... 3 Λέξεις Κλειδιά... 3 Abstract... 4 Keywords... 4 Κατάλογος Εικόνων... 9 Κατάλογος Πινάκων Εισαγωγή Γενικά Σπουδαιότητα Εξετασιμότητας Η έννοια της Εξετασιμότητας Σχεδίαση για Εξετασιμότητα (Design for Testability - DFT) Σύστημα σε μορφή ολοκληρωμένου κυκλώματος (System on Chip - SoC) Γεννήτρια Παραγωγής Διανυσμάτων Αυτόματης Εξέτασης (ATPG) Βασικά χαρακτηριστικά Αλγοριθμικές Μέθοδοι Κύκλωμα Περιφεριακής Δομής για Εξέταση (Wrapper) Προβλήματα Σκοπός της διπλωματικής Διάρθρωση του υλικού Γεννήτρια Παραγωγής Διανυσμάτων Αυτόματης Εξέτασης (ATPG) Encounter Test Μοντέλο χρήσης του ATPG Απαιτήσεις Ορισμός φακέλου εργασίας Δημιουργία Έργου με τη χρήση Tcl Προετοιμασία για τον ATPG Κατασκευή Λογικού Μοντέλου (Logic Model) Ανάλυση των αποτελεσμάτων της εντολής Build Model Συμβουλές σχετικά με την εντολή Build Model

6 2.4 Κατασκευή Λειτουργίας Εξέτασης (Test Mode) Ανάλυση των αποτελεσμάτων της εντολής Build Tets Mode Συμβουλές σχετικά με την εντολή Build Τest Mode Επαλήθευση Δομών Εξέτασης (Verification Test Structures) Ανάλυση των αποτελεσμάτων της εντολής Verify Test Structures Συμβουλές σχετικά με την εντολή Verify Τest Structures Κατασκευή Μοντέλου Σφάλματος (Fault Model) Ανάλυση των αποτελεσμάτων της εντολής Build Fault Model Συμβουλές σχετικά με την εντολή Build Fault Model Εκτέλεση της Γεννήτριας Παραγωγής Διανυσμάτων Αυτόματης Εξέτασης (ATPG) Δημιουργία Ελέγχων Αλυσίδας Σάρωσης (Scan Chain Tests) Ανάλυση των αποτελεσμάτων της εντολής Create Scan Chain Test Συμβουλές σχετικά με την εντολή Create Scan Chain Tests Υποβολή Ελέγχων Αλυσίδας Σάρωσης Ανάλυση των αποτελεσμάτων της εντολής Commit Scan Tests Συμβουλές σχετικά με την εντολή Commit Scan Test Δημιουργία Ελέγχων Λογικής (Logic Tests) Ανάλυση αποτελεσμάτων της εντολής Create Logic Test Συμβουλές σχετικά με την εντολή Create Logic Test Υποβολή Ελέγχων Λογικής Καταγραφή Διανυσμάτων Ανάλυση αποτελεσμάτων της εντολής Write vectors Συμβουλές σχετικά με την εντολή Write vectors To Στατικό Μοντέλο (Static ATPG) Διάγραμμα ροής στο στατικό μοντέλο Δημιουργία Δοκιμών Αλυσίδας Σάρωσης (Scan Chain Test) Υποστηριζόμενες Μορφές Δοκιμών Αλυσίδων Σάρωσης (Supported Formats) Το πρότυπο ΙΕΕΕ Γενικά Προετοιμασία Εισόδων για την εντολή Build 1500 Wrapper Σύνταξη και Χρήση ενός CoreSpecList Βιβλιοθήκη Τεχνολογίας IEEE 1500 Wrapper

7 3.3 Εκτέλεση της εντολής Build 1500 Wrapper Προαπαιτούμενα για την εντολή Build 1500 Wrapper Αρχεία εισόδου για την εντολή Build 1500 Wrapper Αποτελέσματα της εντολής Build 1500 Wrapper Επαλήθευση των αποτελεσμάτων του Build 1500 Wrapper Αλγόριθμοι ανάλυσης κόμβων Γενικά Αλγόριθμος διαχωρισμού (separatedft) Περιγραφή της λειτουργίας του αλγορίθμου Αλγόριθμος netprofileclkscan Περιγραφή της λειτουργίας του αλγορίθμου Αλγόριθμος timingprofileclkscan Αποτελέσματα Γενικά Αρχική σχεδίαση s Κύκλωμα s5378 μαζί με το Wrapper IEEE Αρχική σχεδίαση s Κύκλωμα s15850 μαζί με το Wrapper IEEE Αρχική σχεδίαση s Κύκλωμα s38584 μαζί με το Wrapper IEEE Κύκλωμα s3d Αποτελέσματα για όλο το s3d Αποτελέσματα ΙΝ_ΒΥ_ΒΥ Αποτελέσματα ΒΥ_ΙΝ_ΒΥ Αποτελέσματα ΒΥ_ΒΥ_ΙΝ Αποτελέσματα αλγορίθμου Διαχωρισμού (separatedft) Συμπεράσματα Ερμηνεία των αποτελεσμάτων Ανοιχτά θέματα Παράρτημα Ι Υλοποίηση αλγορίθμου διαχωρισμού (SeparateDFT) σε C Υλοποίηση αλγορίθμου netprofileclkscan σε C

8 Υλοποίηση αλγορίθμου timingprofclkscan σε C Κώδικας απεικόνισης των αποτελεσμάτων σε Matlab Plot_Separate Transf2double paintdft Βιβλιογραφικές αναφορές

9 Κατάλογος Εικόνων Εικόνα 1-1 Χρόνος ανάπτυξης ψηφιακού κυκλώματος Εικόνα 1-2 AMD Am286ZX/LX, SoC based on Εικόνα 1-3 Βαθμός κάλυψης - Πλήθος διανυσμάτων εξέτασης Εικόνα 1-4 Προβλέψεις μήκους καναλιού για λογική υψηλής απόδοσης Εικόνα 2-1 Μοντέλο χρήσης του ATPG Εικόνα 2-2 Διάρθωση φακέλων Εncounter Test Εικόνα 2-3 Παράδειγμα κυματομορφών ακροδεκτών συναρτήσεων εξέτασης Εικόνα 2-4 Σχέση Λιστών Σφαλμάτων Εικόνα 2-5 Φόρμα συμπλήρωσης της εντολής Build Test Mode Εικόνα 2-6 Φόρμα συμπλήρωσης της εντολής Verify Test Structures Εικόνα 2-7 Φόρμα συμπλήρωσης της εντολής Build Fault Model Εικόνα 2-8 Φόρμα συμπλήρωσης της εντολής Create Scan Chain Tests Εικόνα 2-9 Σχέση Πειραμάτων - Μοντέλων Σφάλματος Εικόνα 2-10 Φόρμα συμπλήρωσης της εντολής Commit Scan Chain Tests Εικόνα 2-11 Φόρμα συμπλήρωσης της εντολής Create Logic Tests Εικόνα 2-12 Φόρμα συμπλήρωσης της εντολής Write Vectors Εικόνα 2-13 Διάγραμμα Ροής Encounter Test Static ATPG Εικόνα 3-1 Μοντέλο Χρήσης - Δημιουργία 1500 Wrapper Εικόνα 3-2 Αρχιτεκτονική IEEE 1500 Wrapper Εικόνα 3-3 Παράδειγμα CoreSpecList αρχείου Εικόνα 3-4 Διεπαφή WBR κυττάρου Εικόνα 3-5 WC_SD1_COI Εικόνα 3-6 WC_SD1_CII Εικόνα 5-1 Εναλλαγές ανά κύκλο ρολογιού για το s Εικόνα 5-2 Εναλλαγές ανά ακροδέκτη για το s Εικόνα 5-3 Εναλλαγές ανά κύκλο ρολογιού για το s5378 με wrapper Εικόνα 5-4 Εναλλαγές ανά ακροδέκτη για το s5378 με wrapper Εικόνα 5-5 Εναλλαγές ανά κύκλο ρολογιού για το s Εικόνα 5-6 Εναλλαγές ανά ακροδέκτη για το s Εικόνα 5-7 Εναλλαγές ανά κύκλο ρολογιού στο s15850 με wrapper Εικόνα 5-8 Εναλλαγές ανά ακροδέκτη στο s15850 με wrapper Εικόνα 5-9 Εναλλαγές ανά κύκλο ρολογιού στο s Εικόνα 5-10 Εναλλαγές ανά ακροδέκτη για το s Εικόνα 5-11 Εναλλαγές ανά κύκλο ρολογιού στο s38584 με wrapper Εικόνα 5-12 Εναλλαγές ανά ακροδέκτη στο s38584 με wrapper Εικόνα 5-13 Εναλλαγές ανά κύκλο ρολογιού σε όλο το s3d Εικόνα 5-14 Εναλλαγές ανά ακροδέκτη σε όλο το s3d Εικόνα 5-15 Εναλλαγές ανά κύκλο ρολογιού στο s3d s Εικόνα 5-16 Εναλλαγές ανά ακροδέκτη στο s3d - s

10 Εικόνα 5-17 Εναλλαγές ανά κύκλο ρολογιού στο s3d s Εικόνα 5-18 Εναλλαγές ανά ακροδέκτη στο s3d s Εικόνα 5-19 Εναλλαγές ανά κύκλο ρολογιού στο s3d s Εικόνα 5-20 Εναλλαγές ανά ακροδέκτη στο s3d s Εικόνα 5-21 Κύκλωμα s27 - Αρχική σχεδίαση Εικόνα 5-22 Κύκλωμα s27 με δομές εξέτασης DFT Εικόνα 5-23 Εναλλαγές ανά ακροδέκτη στο s Εικόνα 5-24 Επισήμανση ακροδεκτών δομών εξέτασης (DFT) Εικόνα 6-1 Βαθμός Κάλυψης Σφαλμάτων (Test Coverage) Κατάλογος Πινάκων Πίνακας 1 Ορίσματα της εντολής Build Model Πίνακας 2 Περισσότερα ορίσματα της εντολής Build Model Πίνακας 3 Ορίσματα της εντολής Build Test Mode Πίνακας 4 Χαρακτηριστικά ακροδεκτών συναρτήσεων εξέτασης Πίνακας 5 Ορίσματα της εντολής Verify Test Structures Πίνακας 6 Ορίσματα της εντολής Build Fault Model Πίνακας 7 Ορίσματα της εντολής Create Scan Chain Test Πίνακας 8 Ορίσματα της εντολής Commit Tests Πίνακας 9 Ορίσματα της εντολής Create Logic Tests Πίνακας 10 Ορίσματα της εντολής Write Vectors Πίνακας 11 Περιγραφή θυρών wrapper Πίνακας 12 CoreSpecList - Global Keywords Πίνακας 13 Keywords for Functional Ports Πίνακας 14 Clock Keywords and Values Πίνακας 15 Keywords για τους ακροδέκτες ελέγχου του πυρήνα Πίνακας 16 Keyword for WSP and WPP Ports on the Wrapper Πίνακας 17 Λέξεις Κλειδιά Ρυθμίσεων του Wrapper Πίνακας 18 Παραγόμενες τιμές από τον WIR σε διάφορα Mode λειτουργίας Πίνακας 19 Σύνδεση ακροδέκτη εξέτασης του WIR στον ακροδέκτη Mode Πίνακας 20 Υποστηριζόμενοι τύποι WBR κυττάρων Πίνακας 21 Αποτελέσματα ATPG για το κύκλωμα s5378 χωρίς Wrapper Πίνακας 22 Αποτελέσματα συναρτήσεων μελέτης κατανάλωσης στο s5378 χωρίς Wrapper Πίνακας 23 Αποτελέσματα ATPG για το κύκλωμα s5378 με Wrapper Πίνακας 24 Αποτελέσματα συναρτήσεων μελέτης κατανάλωσης στο s5378 με Wrapper Πίνακας 25 Αποτελέσματα ATPG για το κύκλωμα s15850 χωρίς Wrapper Πίνακας 26 Αποτελέσματα συναρτήσεων μελέτης κατανάλωσης στο s15850 χωρίς Wrapper Πίνακας 27 Αποτελέσματα ATPG για το κύκλωμα s15850 με Wrapper Πίνακας 28 Αποτελέσματα συναρτήσεων μελέτης κατανάλωσης στο s15850 με Wrapper

11 Πίνακας 29 Αποτελέσματα ATPG για το κύκλωμα s38584 χωρίς Wrapper Πίνακας 30 Αποτελέσματα συναρτήσεων μελέτης κατανάλωσης στο s38584 χωρίς Wrapper Πίνακας 31 Αποτελέσματα ATPG για το κύκλωμα s38584 με Wrapper Πίνακας 32 Αποτελέσματα συναρτήσεων μελέτης κατανάλωσης στο s38584 με Wrapper Πίνακας 33 Αποτελέσματα ATPG για όλο το κύκλωμα s3d Πίνακας 34 Αποτελέσματα συναρτήσεων μελέτης κατανάλωσης στο s3d Πίνακας 35 Αποτελέσματα τμηματικού ελέγχου του s3d - s Πίνακας 36 Αποτελέσματα συναρτήσεων μελέτης κατανάλωσης στο s3d s Πίνακας 37 Αποτελέσματα τμηματικού ελέγχου του s3d s Πίνακας 38 Αποτελέσματα συναρτήσεων μελέτης κατανάλωσης στο s3d s Πίνακας 39 Αποτελέσματα τμηματικού ελέγχου του s3d s Πίνακας 40 Αποτελέσματα συναρτήσεων μελέτης κατανάλωσης στο s3d - s Πίνακας 41 Βαθμός λειτουργίας μέγεθος κυκλώματος Πίνακας 42 Βαθμός κάλυψης σφαλμάτων - Σύγκριση

12 1 Εισαγωγή 1.1 Γενικά Στο κεφάλαιο αυτό εισάγουμε τις γενικές έννοιες οι οποίες χρησιμοποιούνται στη συνέχεια καθώς και τις βασικές διαδικασίες οι οποίες αξιοποιήθηκαν προκειμένου να γίνει ανάλυση των δυνατοτήτων εξετασιμότητας και αξιολόγηση των αποτελεσμάτων που προέκυψαν. 1.2 Σπουδαιότητα Εξετασιμότητας Η βιομηχανία των ημιαγωγών είναι εξαιρετικά ανταγωνιστική και ζητά τα καλύτερα επίπεδα ποιότητας και αξιοπιστίας με το ελάχιστο δυνατό κόστος κάτι που καθιστά τη διαδικασία εξέτασης εκ των ων ουκ άνευ στην παραγωγή ψηφιακών και όχι μόνο κυκλωμάτων. Επιπλέον, η αύξηση της πολυπλοκότητας (π.χ. περισσότεροι από 100 μικροελεγκτές σε ένα σύγχρονο αυτοκίνητο) σε συνδυασμό με τους μεγάλους χρόνους ζωής των προϊόντων συνήθως από 10 έως 25 χρόνια απαιτούν μηδενικά σφάλματα και άριστη αξιοπιστία. Υπάρχουν ακόμα περιπτώσεις στις οποίες το κόστος ανίχνευσης και επιδιόρθωσης λαθών κατά τη λειτουργία των κυκλωμάτων είναι είτε κοστολογικά ασύμφορο-επί παραδείγματι πολύπλοκα συστήματα τα οποία είναι δύσκολο να ελεγχθούν εν συνόλω χωρίς πρότερη πληροφορία-είτε υψηλού ρίσκου, όπως οι ελεγκτές στα φρένα των αυτοκινήτων. Ένας ακόμα λόγος σε βιομηχανικό επίπεδο ο οποίος καθιστά την εξέταση των κυκλωμάτων απαραίτητη είναι η αξιοπιστία της εταιρίας στο χώρο που δραστηριοποιείται, αν θυμηθούμε ότι το σφάλμα FPDIV της σειράς επεξεργαστών Pentium της Intel που κόστισε στην εταιρία $475 εκατομμύρια δολάρια και ήταν ένα βαρύ πλήγμα στο όνομά της. Επομένως δεν είναι περίεργο που σήμερα περίπου το 40% του χρόνου ανάπτυξης των κυκλωμάτων, όπως φαίνεται στο ακόλουθο σχήμα, αφιερώνεται στη διαδικασία εντοπισμού και διόρθωσης σφαλμάτων. Για όλους αυτούς τους λόγους αλλά και για το γεγονός ότι αποτελεί την τελευταία ευκαιρία για αξιοπιστία και υψηλά επίπεδα ποιότητας οι διαδικασίες εξέτασης αποτελούν αναπόσπαστο κομμάτι του τομέα ανάπτυξης ψηφιακών κυκλωμάτων. Εικόνα 1-1 Χρόνος ανάπτυξης ψηφιακού κυκλώματος 12

13 1.3 Η έννοια της Εξετασιμότητας Η έννοια της εξετασιμότητας ή της εξέτασης συνίσταται στη δυνατότητα να παρατηρούμε και να εξετάζουμε τους κόμβους ενός ψηφιακού κυκλώματος με στόχο τη διαπίστωση της καλής λειτουργίας βάση των προδιαγραφών σχεδίασης και της διόρθωσης τυχόντων λαθών ώστε να λειτουργεί όπως θα έπρεπε. Επομένως η εξετασιμότητα περιλαμβάνει τις έννοιες της παρατηρησιμότητας και τις ελεγξιμότητας. όπου παρατηρησιμότητα είναι η δυνατότητα παρατήρησης της συμπεριφοράς των κόμβων ενός κυκλώματος σε πεπερασμένο χρόνο αξιοποιώντας μόνο τις εξόδους αυτού και ελεγξιμότητα η ικανότητα να τίθενται επιλεγμένες τιμές σε κόμβους χρησιμοποιώντας τις κύριες εισόδους του κυκλώματος. Στη συνέχεια αναφέρουμε τα βασικότερα μοντέλα βλαβών που μπορεί να προκύψουν σε ένα κύκλωμα και είναι τα εξής: το μοντέλο Stuck-at fault, το οποίο είναι το πιο συνηθισμένο και το πιο απλό και περιγράφει την κατάσταση ενός κόμβου οποίος έχει κολλήσει (αγγλ. stuck) σε μια σταθερή λογική στάθμη 0 ή 1. το μοντέλο Bridge fault, το οποίο περιγράφει τη λογική συμπεριφοράς δύο κόμβων του κυκλώματος, οι οποίοι είναι βραχυκυκλωμένοι. Τα συνηθέστερα Bridge fault μοντέλα είναι: το μοντέλο wired-and/or, το οποίο υποθέτει ότι ο κόμβος με τη βλάβη έχει πάντα μια σταθερή τιμή 0/1. το κυρίαρχο μοντέλο βλάβης, το οποίο υποθέτει ότι ο ένας κόμβος κυριαρχεί έναντι του άλλου με αποτέλεσμα να επιβάλλει σε αυτόν τη λογική του τιμή. το μοντέλο Open fault, το οποίο χρησιμοποιείται για τη μοντελοποίηση βλαβών τύπου: ανοιχτού κυκλώματος διάσπασης μη σύνδεσης στρωμάτων του κυκλώματος οι οποίες είναι βλάβες διατήρησης κατάστασης, διακοπής και εξάρτησης από τα διανύσματα εξέτασης και κατά συνέπεια τα μοντέλα περιγραφής τους είναι πιο πολύπλοκα από τα προηγούμενα. το μοντέλο Delay fault, το οποίο περιγράφει βλάβες χρονικά εξαρτώμενες χρησιμοποιώντας τα μοντέλα καθυστέρησης-πύλης και καθυστέρησης-μονοπατιού. Το μοντέλο καθυστέρησης-πύλης υποθέτει ότι η καθυστέρηση λόγω βλάβης βρίσκεται μόνο μεταξύ μίας πύλης εισόδου και εξόδου, ενώ στο μοντέλο καθυστέρησης-μονοπατιού η συνολική καθυστέρηση διαδίδεται (όπως λέει και η ονομασία του) από μια είσοδο σε μια έξοδο μέσω ενός μονοπατιού. 1.4 Σχεδίαση για Εξετασιμότητα (Design for Testability - DFT) Με την ραγδαία ανάπτυξη της τεχνολογίας, όπως αναφέραμε, προέκυψε επιτακτική ανάγκη της ανάπτυξης τεχνικών σε επίπεδο τόσο λογικής όσο και υλικού προκειμένου να δίνεται η δυνατότητα στους σχεδιαστές να εξετάζουν τα κυκλώματα τους για σφάλματα γρήγορα και αποτελεσματικά. Αναπτύχθηκαν για το σκοπό αυτό τεχνικές εξετασιμότητας οι οποίες έχουν διαφορετικές προσεγγίσεις. Οι γενικές τεχνικές σχεδίασης ελέγξιμων κυκλωμάτων είναι: Η αποφυγή του πλεονασμού στη λογική (avoiding logic redundancy) Αρχικοποίηση δομών μνήμης (initialization of memory cells) 13

14 Ο σχεδιασμός του κυκλώματος με τρόπο ώστε να σπάει με λογικό τρόπο τους βρόχους ανάδρασης Οι προαναφερθείσες τεχνικές είναι Ad-hoc προσεγγίσεις, δηλαδή κατά το στάδιο ανάπτυξης και σχεδίασης του κυκλώματος, και μολονότι δίνουν κάποια λύση στο ζητούμενο των δοκιμών εντούτοις εξακολουθεί να είναι πολύ δύσκολο να δημιουργήσουν διανύσματα λογικής (test patterns), τα οποία να επιτυγχάνουν υψηλό βαθμό κάλυψης βλαβών. H περιγραφή των τεχνικών αυτών ξεφεύγει από τα πλαίσια της παρούσας διπλωματικής εργασίας. Οι συστηματικές τεχνικές που καθιστούν το κύκλωμα πιο εξετάσιμο (testable) αναφέρονται με τον όρο Τεχνικές Σχεδίασης για Εξετασιμότητα (Design for Testability - DFT). Υπάρχουν δύο κύριες τεχνικές εξετασιμότητας: Η σάρωση μονοπατιού (scan path testing) Ενσωματωμένη αυτοεξέταση (built in self test - BIST) Αυτές οι τεχνικές μετασχηματίζουν το σύνθετο πρόβλημα των δοκιμών ακολουθιακού κυκλώματος σε ένα απλούστερο πρόβλημα δοκιμής συνδυαστικού λογικού κυκλώματος. Σε γενικές γραμμές το αρχικό κύκλωμα τροποποιείται έτσι ώστε να λειτουργεί είτε σε κανονική λειτουργία (εκτέλεση λειτουργιών όπως σχεδιάστηκε από το χρήστη) είτε σε κατάσταση δοκιμής, η οποία θα εξηγηθεί στη συνέχεια ανάλογα με την περίπτωση. Ωστόσο και αυτές οι προσεγγίσεις ελεγξιμότητας παρουσιάζουν ορισμένα μειονεκτήματα. Η σάρωση μονοπατιού και η μέθοδος BIST είναι τεχνικές οι οποίες περιλαμβάνουν τροποποιήσεις του αρχικού σχεδιασμού, με αποτέλεσμα να έχουμε αύξηση κόστους και καθυστερήσεων στις εξόδους. Ανάλογα με το πώς ο σχεδιαστής θα ενσωματώσει αυτές τις τεχνικές στο σχεδιασμό τα μειονεκτήματα αυτά μπορεί να είναι ή όχι εμφανή. 1.5 Σύστημα σε μορφή ολοκληρωμένου κυκλώματος (System on Chip - SoC) Με τον όρο σύστημα σε μορφή ολοκληρωμένου κυκλώματος (SoC) εννοούμε ένα ολοκληρωμένο κύκλωμα (IC) που ενσωματώνει όλα τα στοιχεία ενός υπολογιστή ή οποιουσδήποτε άλλου ηλεκτρονικού συστήματος σε ένα ενιαίο ολοκληρωμένο κύκλωμα. Μπορεί να περιέχει κυκλώματα ψηφιακά, αναλογικά και μικτού σήματος τα οποία βρίσκονται σε ένα ενιαίο υπόστρωμα. Τα συστήματα σε μορφή ολοκληρωμένου κυκλώματος χρησιμοποιούνται ευρέως στην αγορά κινητής τηλεφωνίας, λόγω της χαμηλής κατανάλωσης. Μία άλλη επίσης τυπική εφαρμογή τους είναι στον τομέα των ενσωματωμένων συστημάτων. Η διαφορά τους με τους μικροελεγκτές είναι ότι οι δεύτεροι έχουν συνήθως κάτω από 100 KB μνήμης (RAM συνήθως μόλις λίγα kilobytes) και ως επί το πλείστον είναι συστήματα ενός μεμονωμένου ολοκληρωμένου, ενώ ο όρος SoC συνήθως χρησιμοποιείται για να δηλώσει ότι είναι αναγκαία η ύπαρξη πολλών ολοκληρωμένων, όπως ισχυρών επεξεργαστών, ικανών να εκτελούν λογισμικό, όπως η επιφάνεια εργασίας των Windows και Linux, τα οποία χρειάζονται εξωτερικό ολοκληρωμένο κύκλωμα μνήμης (flash, μνήμη RAM), για να είναι αποδοτικά και τα οποία χρησιμοποιούνται με διάφορα εξωτερικά περιφερειακά. Εν ολίγοις στα μεγαλύτερα συστήματα, ο όρος σύστημα σε μορφή ολοκληρωμένου κυκλώματος είναι καταχρηστικός και χρησιμοποιείται περισσότερο για να δηλώσει τον προσανατολισμό σχεδίασης παρά την πραγματικότητα: ένα υψηλού βαθμού ολοκληρωμένο κύκλωμα, που οδηγεί προς τη μείωση του κόστους παραγωγής και την παραγωγή μικρότερων συστημάτων. Πολλά συστήματα είναι πολύ περίπλοκα για να 14

15 χωρέσουν σε ένα μόνο ολοκληρωμένο κύκλωμα το οποίο κατασκευάστηκε με επεξεργαστή προσανατολισμένο σε μια μόνο λειτουργία του συστήματος. Εικόνα 1-2 AMD Am286ZX/LX, SoC based on Όταν δεν είναι εφικτό να κατασκευαστεί ένα SoC για μια συγκεκριμένη εφαρμογή, μια εναλλακτική λύση είναι ένα σύστημα σε πακέτο (SIP) που περιλαμβάνει έναν αριθμό ολοκληρωμένων κυκλωμάτων σε ένα ενιαίο πακέτο. Σε μεγάλες ποσότητες, τα SoC πιστεύεται ότι είναι πιο αποδοτικά από τα SIP, δεδομένου ότι αυξάνουν την απόδοση της κατασκευής καθώς η συσκευασία τους είναι απλούστερη. Μια άλλη επιλογή, όπως φαίνεται για παράδειγμα στα κινητά τηλέφωνα, είναι η στοίβα πακέτου σε πακέτο κατά τη συναρμολόγηση. Το SoC περιλαμβάνει επεξεργαστές και πολλά ψηφιακά περιφερειακά και έρχεται σε ένα πακέτο με πλέγμα το οποίο επιτρέπει άνω και κάτω συνδέσεις. Οι χαμηλότερες συνδέσεις χρησιμοποιούνται για τη σύνδεση με την πλακέτα και τα διάφορα περιφερειακά, ενώ οι ανώτερες για τη σύνδεση του στο δίαυλο επικοινωνίας με τη μνήμη που χρησιμοποιείται για την πρόσβαση σε NAND flash και DDR2 RAM. 1.6 Γεννήτρια Παραγωγής Διανυσμάτων Αυτόματης Εξέτασης (ATPG) Η γεννήτρια παραγωγής διανυσμάτων αυτόματης εξέτασης (Automatic Test Pattern Generator / Generation ακρωνύμιο ATPG) είναι μια αυτοματοποιημένη διαδικασία που χρησιμοποιείται προκειμένου να παράγει μια ακολουθία εξέτασης, η οποία όταν εφαρμοστεί στο ψηφιακό κύκλωμα δίνει τη δυνατότητα σε έναν εξοπλισμό αυτοματοποιημένης εξέτασης να διακρίνει μεταξύ της αναμενόμενης συμπεριφοράς του κυκλώματος και της ελαττωματικής, η οποία οφείλεται σε σφάλματα. Τα παραγόμενα διανύσματα χρησιμοποιούνται για να εξετάσουν και ολοκληρωμένα κυκλώματα μετά την κατασκευή ή να επιβοηθήσουν στον εντοπισμό της αιτίας ή των αιτιών που προκάλεσαν σφάλματα. Η αποτελεσματικότητα των ATPG μετράται με τον αριθμό των μοντελοποιημένων σφαλμάτων τα οποία είναι ανιχνεύσιμα και με το μέγεθος των παραγόμενων διανυσμάτων εξέτασης. Αυτές οι μετρικές δείχνουν γενικά την ποιότητα εξέτασης (όσο υψηλότερη τόσο περισσότερα σφάλματα ανιχνεύσιμα) και το χρόνο εφαρμογής του εξέτασης (αυξάνεται με το μέγεθος το πλήθος των διανυσμάτων εξέτασης). Η απόδοση των ATPG είναι επίσης μια σημαντική παράμετρος η οποία επηρεάζεται από τα μοντέλα σφάλματος τα οποία λαμβάνονται υπόψιν, τον 15

16 τύπο του κυκλώματος (πλήρης έλεγχος, σύγχρονο ακολουθιακό ή ασύγχρονο ακολουθιακό), το επίπεδο αφαίρεσης που χρησιμοποιείται για να περιγράψει το κύκλωμα κατά τη διαδικασία εξέτασης (πύλη, καταχωρητής, διακόπτης) και την απαιτούμενη ποιότητα εξέτασης Βασικά χαρακτηριστικά Ελάττωμα είναι ένα σφάλμα που προκαλείται σε ένα κύκλωμα κατά την διαδικασίας κατασκευής του. Ένα μοντέλο σφαλμάτων είναι μια μαθηματική περιγραφή του πώς ένα ελάττωμα αλλάζει τη συμπεριφορά του σχεδιασμού. Οι λογικές τιμές που παρατηρούνται στις κύριες εξόδους του κυκλώματος κατά τη διάρκεια της εφαρμογής ενός διανύσματος εξέτασης σε αυτό (Design under Test - DuT), καλούνται έξοδοι του διανύσματος εξέτασης. Η έξοδος ενός μοτίβου, όταν υποβάλλεται σε έλεγχο ένα κύκλωμα χωρίς σφάλματα, που λειτουργεί ακριβώς όπως σχεδιάστηκε, καλείται αναμενόμενη απόκριση του εν λόγω διανύσματος εξέτασης. Ένα σφάλμα λέγεται ότι ανιχνεύεται από ένα διάνυσμα εξέτασης, εάν η έξοδος του εν λόγω διανύσματος, κατά την εξέταση ενός κυκλώματος που έχει μόνο ένα ελάττωμα, είναι διαφορετική από την αναμενόμενη απόκριση. Η διαδικασία ATPG για ένα συγκεκριμένο σφάλμα αποτελείται από δύο φάσεις: την ενεργοποίηση βλάβης διάδοσης σφάλματος Η ενεργοποίηση της βλάβης αποδίδει μια τιμή σήματος στο μοντέλο σφαλμάτων που είναι διαφορετική από την τιμή που παράγεται από το μοντέλο σφαλμάτων. Η διάδοση σφάλματος μετακινεί την προκύπτουσα τιμή του σήματος μέσω μιας διαδρομής από το σημείο εμφάνισης της βλάβης προς κάποια κύρια έξοδο. Η διαδικασία ATPG μπορεί να αποτύχει να βρει διάνυσμα εξέτασης για μια συγκεκριμένη βλάβη σε τουλάχιστον δύο περιπτώσεις. Πρώτον, η βλάβη μπορεί να είναι εγγενώς μη ανιχνεύσιμη, και ως εκ τούτου δεν υπάρχουν πρότυπα που μπορούν να ανιχνεύσουν το συγκεκριμένο σφάλμα. Το κλασικό παράδειγμα αυτού είναι ένα περιττό κύκλωμα, σχεδιασμένο έτσι ώστε καμία βλάβη να μην έχει ως αποτέλεσμα η έξοδος να αλλάζει. Σε ένα τέτοιο κύκλωμα κάθε μεμονωμένο σφάλμα θα είναι εγγενώς μη ανιχνεύσιμο. Δεύτερον, είναι δυνατόν να υπάρχει διάνυσμα εξέτασης αλλά ο αλγόριθμος δεν μπορεί να το βρει. Δεδομένου ότι το πρόβλημα ATPG είναι NP-πλήρες (με αναγωγή στο Δυαδικό πρόβλημα Ικανοποιησιμότητας ) θα υπάρξουν περιπτώσεις όπου υπάρχουν μεν διανύσματα εξέτασης, αλλά ο μηχανισμός παραγωγής διανυσμάτων εξέτασης διακόπτεται καθώς χρειάζεται υπερβολικά πολύ χρόνο για να τα υπολογίσει (υποθέτοντας ότι P NP). Υπάρχουν δύο βασικές μέθοδοι ATPG: Συνδυαστική, η οποία δίνει τη δυνατότητα για εξέταση μεμονωμένων κόμβων του κυκλώματος χωρίς ο σχεδιαστής να ανησυχεί για τη λειτουργία του συνολικού κυκλώματος. Κατά τη διάρκεια της εξέτασης, η ομώνυμη λειτουργία σάρωσης ενεργοποιείται αναγκάζοντας όλους τους μανδαλωτές (flip-flop) να συνδεθούν σε μία αλυσίδα, παρακάμπτοντας τις διασυνδέσεις που υπάρχουν στην κανονική λειτουργία. Αυτό επιτρέπει τη χρήση μίας σχετικά απλής μήτρας διανυσμάτων για τη γρήγορη εξέταση όλων των μανδαλωτών καθώς και τον εντοπισμό βλαβών. Ακολουθιακή, η οποία ψάχνει μία ακολουθία διανυσμάτων για τον εντοπισμό μίας συγκεκριμένης βλάβης μέσα από μία δεξαμενή με όλες τις πιθανές ακολουθίες. Ακόμα και 16

17 μία απλή βλάβη απαιτεί την εξέταση μίας σειράς από διανύσματα για την ανίχνευσή της σε ένα σειριακό κύκλωμα. Επίσης, η παρατηρησιμότητα και η ελεγξιμότητα των εσωτερικών σημάτων σε ένα σειριακό κύκλωμα είναι πιο δύσκολη σε σχέση με ένα συνδυαστικό Αλγοριθμικές Μέθοδοι Οι δοκιμές πολύ μεγάλης κλίμακας ολοκληρωμένων κυκλωμάτων (VLSI) με υψηλή κάλυψη σφαλμάτων είναι ένα δύσκολο έργο, λόγω της πολυπλοκότητας τους. Ως εκ τούτου, πολλές διαφορετικές μέθοδοι ATPG έχουν κατά καιρούς αναπτυχθεί για την αντιμετώπιση των συνδυαστικών και ακολουθιακών κυκλωμάτων. Οι κυριότερες μέθοδοι από αυτές κατά χρονολογική σειρά εμφάνισης είναι: Οι αλγόριθμοι δημιουργίας πρώιμης εξέτασης, όπως Boolean διαφορές και κυριολεκτικές προτάσεις (literal proposition). Ο D-αλγόριθμος ο οποίος ανήκει πρακτικά στην πρώτη γενιά αλγορίθμων εξέτασης όσον αφορά τις απαιτήσεις μνήμης. Ο D-αλγόριθμος, τον οποίο πρότεινε ο Roth το 1966, εισήγαγε τον συμβολισμό D που συνεχίζει να χρησιμοποιείται στους περισσότερους αλγορίθμους ATPG. O D Αλγόριθμος προσπαθεί να διαδώσει το σφάλμα κολλημένης τιμής (stuck-at-fault) που συμβολίζεται με D (για SA0) ή (για SA1) σε μια κύρια έξοδο. Αλγόριθμος Προσανατολισμένος σε Μονοπάτι Λήψης Αποφάσεων (Path-Oriented Decision Making - PODEM) είναι μια βελτίωση του D-αλγορίθμου. Ο PΟDEM δημιουργήθηκε το 1981, από τον Prabhu Goel, όταν οι ελλείψεις του D-αλγορίθμου έγιναν εμφανείς καθώς η ανάπτυξη της τεχνολογίας οδήγησε σε κυκλώματα για τα οποία ο D-αλγόριθμος δεν μπορούσε να δώσει αποτελέσματα. Αλγόριθμος Προσανατολισμένος σε Fan-Out (Fan-Out Oriented) είναι μια βελτίωση του PODEM. Περιορίζει το χώρο αναζήτησης ATPG ώστε να μειωθεί ο χρόνος υπολογισμού. Μέθοδοι που βασίζονται σε Boolean Ικανοποιησιμότητα μερικές φορές χρησιμοποιούνται για να παράγουν διανύσματα εξέτασης. Ψευδοτυχαία παραγωγή διανυσμάτων, η οποία είναι η απλούστερη μέθοδος δημιουργίας διανυσμάτων. Χρησιμοποιεί μια ψευδοτυχαία γεννήτρια αριθμών για να δημιουργήσει διανύσματα εξέτασης και στηρίζεται σε λογική προσομοίωση για να παράγει αποτελέσματα και σε προσομοίωση σφαλμάτων για να υπολογίσει την κάλυψη σφαλμάτων των παραγόμενων διανυσμάτων. Αυτόματος Κυματιδιακός Παραγωγός Φασματικών Διανυσμάτων (Wavelet Automatic Spectral Pattern Generator - WASP) είναι μια βελτίωση σε σχέση με φασματικούς αλγορίθμους για διαδοχική ATPG. Χρησιμοποιεί ευριστικά κυμάτια προκειμένου να χαρτογραφήσει το χώρο για να πετύχει μείωση του χρόνου υπολογισμού και επιτάχυνση του συμπιεστή. Προτάθηκε από τον Suresh Kumar Devanathan της Rake Software και τον Michael Bushnell, του Πανεπιστημίου Rutgers. Ο Suresh Kumar Devanathan εφηύρε τον WASP ως μέρος της μεταπτυχιακής του διατριβής στο Rutgers. Σχετικά με τη μέθοδο ψευδοτυχαίας παραγωγής διανυσμάτων, την οποία θα χρησιμοποιήσουμε παρακάτω κατά τη διαδικασία δημιουργίας διανυσμάτων εξέτασης για τα κυκλώματά μας, να αναφέρουμε ότι η κάλυψη σφαλμάτων σαν συνάρτηση του αριθμού των διανυσμάτων εξέτασης δεν είναι γραμμική αλλά εκθετική, όπως φαίνεται και στο ακόλουθο σχήμα, κάτι που το καθιστά ιδιαίτερα δημοφιλές ως μια πολύ καλή ισορροπία χρόνου και κόστους, εφόσον αναλυτικός έλεγχος θα έπαιρνε πάρα πολύ χρόνο και θα ήταν κοστολογικά ασύμφορος. 17

18 Επίσης, η μέθοδος αυτή είναι πολύ χρήσιμη σε περιπτώσεις όπου χρειάζεται σε σύντομο χρόνο μια εκτίμηση του βαθμού ελεγξιμότητας ενός κυκλώματος και της ορθής λειτουργίας του. Εικόνα 1-3 Βαθμός κάλυψης - Πλήθος διανυσμάτων εξέτασης 1.7 Κύκλωμα Περιφεριακής Δομής για Εξέταση (Wrapper) Η ανάγκη του να ελεγχθεί ένα κύκλωμα αλλά και έτοιμα ολοκληρωμένα κυκλώματα, πχ. στο στάδιο παραγωγής, οδήγησε στην ανάπτυξη μιας διαδικασίας κατασκευής ενός περιφερειακού κυκλώματος, το οποίο εγκολπώνει το προς εξέταση κύκλωμα (πυρήνας) και μέσω κάποιων σημάτων εξέτασης δίνει τη δυνατότητα να ελεγχθεί σε διάφορες λειτουργίες ο πυρήνας. Προκειμένου να υπάρχει ένα πλαίσιο προτυποποίησης αυτών των περιφερειακών κυκλωμάτων και διαχείρισης της πολυπλοκότητας της εξέτασης των συστημάτων σε ολοκληρωμένα (Systems on Chip - SoC) δημιουργήθηκε το πρότυπο IEEE Το πρότυπο παρέχει μία διεπαφή κι ένα σύνολο από κανόνες για τη δημιουργία ενός περιφερειακού κυκλώματος απομόνωσης μεταξύ του πυρήνα και της περιφερειακής λογικής του πυρήνα. Ο σκοπός του περιφερειακού αυτού κυκλώματος ή αλλιώς wrapper είναι να επιτρέψει την απομονωμένη εξέταση του πυρήνα με χρήση του ελάχιστου αριθμού σημάτων που πρέπει να διατεθούν εξωτερικά σε επίπεδο SoC. Το περιφερειακό κύκλωμα περιλαμβάνει τα περιφερειακά κύτταρα (wrapper cells) για κάθε λειτουργική θύρα εισόδου/εξόδου και κάποιους καταχωρητές, οι οποίοι καθορίζουν τη λειτουργία εξέτασης του πυρήνα. Πολύ περιγραφικά ο Encounter Test μέσω την εντολής Build 1500 Wrapper δίνει τη δυνατότητα να εισάγουμε την περιφερειακή λογική περιμετρικά του κυρίου πυρήνα. Ουσιαστικά παράγει και εισάγει τα ακόλουθα υποχρεωτικά στοιχεία που προβλέπει το πρότυπο ΙΕΕΕ 1500: Καταχωρητής Εντολών του Wrapper (Wrapper Instruction Register - WIR), ο οποίος υποστηρίζει τις υποχρεωτικές εντολές: WS_BYPASS, WS_EXTEST και WS_INTEST_SCAN. Περιφερειακός Καταχωρητής του Wrapper (Wrapper Boundary Register - WBR), ο οποίος αποτελείται από ένα ή περισσότερα περιφερειακά κύτταρα (boundary cells) τα 18

19 οποία επικοινωνούν με τα λειτουργικά τερματικά του πυρήνα. Τα περιφερειακά κύτταρα τα οποία περιέχουν και κύτταρα μνήμης μπορούν να παραχθούν και να ενημερωθούν μέσω της εντολής WS_RELOAD. Παρακαμπτήριος Καταχωρητής του Wrapper (Wrapper Bypass Register - WBY), ο οποίος παρέχει την ελαχίστου μήκους αλυσίδα παράκαμψης του WBR. H εντολή αυτή παράγει επίσης όλα τα απαιτούμενα κυκλώματα επαλήθευσης της σωστής λειτουργίας του παραγόμενου κυκλώματος περιφερειακής δομής για εξέταση. Η επαλήθευση της περιφερειακής αυτής δομής θα μπορούσε να πραγματοποιηθεί εναλλακτικά και ως μέρος μια απλής διαδικασία αυτόματης παραγωγής διανυσμάτων εξέτασης. Θα αναφερθούμε εκτενέστερα στο συγκεκριμένο πρότυπο και στον τρόπο με τον οποίο αξιοποιείται από τον Εncounter Test καθώς και στα σήματα τα οποία χρειάζονται ώστε να λειτουργήσει το περιφερειακό κύκλωμα και να πραγματοποιηθεί ο έλεγχος του πυρήνα σε επόμενο κεφάλαιο. 1.8 Προβλήματα Όπως είναι γνωστό το μέγεθος των τρανζίστορ έχει πλέον φτάσει σε σημείο κόρου αναφορικά με το ελάχιστο μήκος καναλιού στο πυρίτιο και μάλιστα σύμφωνα με δημοσίευμα του περιοδικού ΙΕΕΕ Spectrum Magazine στο τεύχος Σεπτεμβρίου 2016 τα τρανζίστορ θα σταματήσουν να μικραίνουν μέχρι το 2021 σε αντίθεση με τις προβλέψεις του 2013, όπως φαίνεται στο ακόλουθο σχήμα. Εικόνα 1-4 Προβλέψεις μήκους καναλιού για λογική υψηλής απόδοσης Έχοντας γίνει αντιληπτό από το χώρο της βιομηχανίας η τάση πλέον κατασκευής προσανατολίζεται εκτός των άλλων σε κυκλώματα 2.5D και 3D, προκειμένου να επιτευχθεί μεγαλύτερη συγκέντρωση ολοκληρωμένων σε όσο το δυνατόν μικρότερο χώρο. Στον τομέα αυτόν της έρευνας όμως υπάρχουν ορισμένα δυσεπίλυτα - προς το παρόν τουλάχιστον προβλήματα όπως αυτό της απαγωγής της θερμότητας από τα ενδιάμεσα στρώματα κατά τη λειτουργία του κυκλώματος και της τμηματικής εξέτασης του κυκλώματος για να διαπιστωθεί η ορθή λειτουργία του βάση της σχεδίασης. 19

20 Το πρώτο πρόβλημα της απαγωγής της θερμότητας είναι αρκετά σημαντικό κυρίως κατά το στάδιο της εξέτασης, διότι όπως έχουν δείξει αποτελέσματα σχετικών ερευνών ο βαθμός λειτουργίας του κυκλώματος είναι υψηλότερος κατά τη διάρκεια της εξέτασης από ότι στην κανονική λειτουργία. Αυτό συμβαίνει διότι κατά την εξέταση το κύκλωμα σαρώνεται από διαδοχικά διανύσματα εξέτασης προκειμένου να εντοπιστούν οποιαδήποτε σφάλματα. Είναι επίσης γνωστό ότι όσο μεγαλύτερος είναι ο βαθμός λειτουργίας ενός κυκλώματος τόσο μεγαλύτερη είναι η κατανάλωσή του. Κύριο ζητούμενο επομένως των ερευνητών στο συγκεκριμένο χώρο είναι η δυνατότητα να γνωρίζουν ποια είναι η κατανάλωση του κυκλώματος εξέτασης ώστε να την ελαχιστοποιήσουν. Μολονότι υπάρχουν αυτοματοποιημένες διαδικασίες εισαγωγής δομών εξέτασης σε ένα κύκλωμα (πχ Wrapper IEEE 1500) δεν υπάρχει καμία διαθέσιμη πρόταση σχετικά με την απομόνωση του κυκλώματος εξέτασης δοθέντος ενός συνολικού κυκλώματος που να περιέχει το προς εξέταση κύκλωμα και τη δομή εξέτασης. Επίσης, ένα σημαντικό ζήτημα είναι δυνατότητα τμηματικής εξέτασης σε ένα ενιαίο κύκλωμα τριών διαστάσεων 3D. Μολονότι έχουν γίνει αρκετά τα τελευταία χρόνια σχετικά με το κατά πόσο είναι εφικτό κάτι τέτοιο και κυρίως το πόσο ακριβή είναι τα αποτελέσματα που μπορούν να προκύψουν από την εξέταση μεμονωμένων τμημάτων σε ένα 3D κύκλωμα υπάρχουν ακόμα πολλά αναπάντητα ερωτήματα. Το βασικότερο είναι αν ο βαθμός εξετασιμότητας είναι επαρκής με τα διαθέσιμα μέσα. 1.9 Σκοπός της διπλωματικής Ο βασικός στόχος της παρούσας διπλωματικής είναι να μελετήσει το πρόβλημα των σχεδιαστών ψηφιακών κυκλωμάτων σχετικά με τον εντοπισμό του κυκλώματος εξέτασης ώστε να μπορέσουν να μελετήσουν την κατανάλωση της συγκεκριμένης δομής χωρίς να επηρεάζονται από το προς εξέταση κύκλωμα με εύκολο και αυτοματοποιημένο τρόπο ανεξάρτητα από την εκάστοτε σχεδίαση. Αυτό επιτυγχάνεται με τον αλγόριθμο που σχεδιάσαμε, ώστε δοθέντος του καταλόγου κόμβων (netlist) του αρχικού κυκλώματος και του καταλόγου κόμβων μαζί με τη σχεδίαση για εξέταση (Design For Test - DFT) να επιστρέφει έναν κατάλογο με τους κόμβους μόνο της δομής εξέτασης σε μορφή κατανοητή τόσο από το σχεδιαστή όσο και από τα εργαλεία σχεδίασης. Με τον τρόπο αυτό ο σχεδιαστής μπορεί να ανατρέξει εύκολα και γρήγορα σε έναν κόμβο της δομής εξέτασης και να ελέγξει τα χαρακτηριστικά του χωρίς να χρειαστεί πρότερη χειροκίνητη αναζήτηση μέσω ίσως κάποιας διαδρομής της πληροφορίας προκειμένου να εντοπιστεί ο κόμβος. Επίσης, για τις ανάγκες των πειραμάτων της διπλωματικής αναπτύξαμε δύο ακόμη αλγορίθμους οι οποίοι υπολογίζουν το βαθμό λειτουργίας του κυκλώματος μέσα από διάφορες μετρικές όπως τον βαθμό λειτουργίας (switching activity) του κυκλώματος. Αυτοί οι αλγόριθμοι παρέχουν μια γρήγορη εικόνα για την ενεργειακή συμπεριφορά του κυκλώματος ώστε ο ερευνητής να μπορεί να εκτιμήσει σύντομα αν τα αποτελέσματά του είναι τα αναμενόμενα. Τέλος, μέρος της διπλωματικής εργασίας ήταν η ανάπτυξη μιας τεχνικής για την τμηματική εξέταση ενός τρισδιάστατου κυκλώματος. Για το σκοπό αυτό χρησιμοποιήσαμε το πρότυπο IEEE 1500 και τις δομές που προβλέπει ώστε να μπορούμε να ελέγχουμε τμήματα του κυκλώματος που βρίσκονται σε εσωτερικά επίπεδα με λιγότερους ακροδέκτες που βγαίνουν προς τα έξω. Μολονότι η παρούσα τεχνική που προτείνεται διαφοροποιείται από τις ήδη υπάρχουσες τεχνικές που χρησιμοποιούνται τα αποτελέσματά της όπως φαίνονται και στα συμπεράσματα είναι αρκετά ικανοποιητικά. 20

21 Για τον έλεγχο των αλγορίθμων και της τεχνικής μας πραγματοποιήσαμε πειράματα σε τρεις φάσεις. Αρχικά, στην 1η φάση εκτελέσαμε πειράματα για κάθε ένα από τρία κυκλώματα (s5378, s15850 και s benchmarks circuits ISCAS'89) χωρίς την παρουσία περιφερειακού κυκλώματος εξέτασης (wrapper). Στη συνέχεια, στη 2η φάση προσθέσαμε το περιφερειακό κύκλωμα εξέτασης (wrapper) και εκτελέσαμε τα πειράματα διατηρώντας ίδιες τις παραμέτρους ώστε να μπορέσουμε να συγκρίνουμε τα αποτελέσματα με αυτά της 1η φάσης. Τέλος, συνδυάσαμε τα τρία ανωτέρω κυκλώματα σε ένα ενιαίο 3D κύκλωμα συνδέοντάς τα σε σειρά, δηλαδή οι έξοδοι του ενός έγιναν είσοδοι στο επόμενο κύκλωμα, και υποβάλαμε το τελικό αποτέλεσμα τόσο σε συνολική εξέταση όσο και σε τμηματική προκειμένου να διαπιστωθεί αν είναι δυνατή η εξέταση του κάθε υπο-κυκλώματος ξεχωριστά σε ικανοποιητικό βαθμό όντας συνδεδεμένο σε ένα ενιαίο κύκλωμα Διάρθρωση του υλικού Στο πρώτο κεφάλαιο της παρούσας εργασίας γίνεται μια γενική εισαγωγή στις έννοιες και στα ζητήματα που θα μας απασχολήσουν σε όλη την έκταση της εργασίας. Αρχικά, παρουσιάζονται επιγραμματικά και με περιγραφικό τρόπο οι έννοιες τις εξετασιμότητας (Testing), του Αυτόματου Παραγωγού Διανυσμάτων εξέτασης (ATPG) και του Κυκλώματος Περιφερειακής Διασύνδεσης (Wrapper). Στο δεύτερο κεφάλαιο γίνεται μια εκτενής ανάλυση του Αυτόματου Παραγωγού Διανυσμάτων Εξέτασης (ATPG), όπως αυτός υλοποιείται στον Encounter Test καθώς και των διάφορων αρχείων εισόδου που δέχεται και των αποτελεσμάτων που επιστρέφει. Δίνονται επίσης παραδείγματα από τη διαδικασία αυτόματης παραγωγής διανυσμάτων εξέτασης για το κύκλωμα s5378. Στο τρίτο κεφάλαιο γίνεται αρχικά μια περιγραφή του προτύπου IEEE 1500 το οποίο περιγράφει τα χαρακτηριστικά ενός Περιφερειακού Κυκλώματος Διασύνδεσης (Wrapper) και προσδιορίζει τη δομή και τη λειτουργία του. Στη συνέχεια, δίνεται αναλυτικά η διαδικασία πρόσθεσης σε ένα ψηφιακό κύκλωμα του Περιφερειακού Κυκλώματος Διασύνδεσης (Wrapper) μέσα από τον Encounter Test. Σε όλη την ανάλυση της διαδικασίας δίνονται παράλληλα παραδείγματα από διάφορα κυκλώματα ώστε να δίνει κατανοητή από τον αναγνώστη, ενώ δίνεται έμφαση σε ευαίσθητα σημεία και παρέχονται συμβουλές για σωστή σχεδίαση. Στο τέταρτο κεφάλαιο γίνεται μια περιγραφή των αλγορίθμων που αναπτύξαμε προκειμένου να δώσουμε λύση στο πρόβλημα μελέτης της ενεργειακής κατανάλωσης των κυκλωμάτων εξέτασης. Πιο συγκεκριμένα περιγράφεται αρχικά ο αλγόριθμος απομόνωσης των κόμβων (nets) οι οποίοι ανήκουν στο κύκλωμα εξέτασης (Design for Test -DFT) και εν συνεχεία οι αλγόριθμοι υπολογισμού του βαθμού λειτουργίας (switching activity) των κυκλωμάτων με χωρική και χρονική συνάρτηση αντίστοιχα. Στο πέμπτο κεφάλαιο δίνονται τα αποτελέσματα των πειραμάτων στα κυκλώματα s5378, s15850 και s38584 για τις όλες τις φάσεις πειραμάτων μαζί με διαγράμματα, πίνακες και σχόλια επί των αποτελεσμάτων. Παράλληλα παρέχονται αποσπάσματα από τα αρχεία εξόδων που προέκυψαν κατά τη διάρκεια της διαδικασίας, ώστε να υπάρχει σύνδεση των προηγούμενων κεφαλαίων με τα πειράματα με στόχο την ευκολότερη παρακολούθηση της λογικής ακολουθίας από τον αναγνώστη. 21

22 Στο έκτο κεφάλαιο γίνεται μια συνολική σύγκριση των αποτελεσμάτων και εξάγονται τα τελικά συμπεράσματα αναφορικά με το βαθμό ελεγξιμότητας, την ενεργειακή κατανάλωση των κυκλωμάτων και διάφορες άλλες παραμέτρους. Γίνεται επίσης αναφορά σε μελλοντικές επεκτάσεις των μεθόδων και των τεχνικών που αναπτύχθηκαν και χρησιμοποιήθηκαν για την εξέταση των κυκλωμάτων. 22

23 2 Γεννήτρια Παραγωγής Διανυσμάτων Αυτόματης Εξέτασης (ATPG) 2.1 Encounter Test Ο Encounter Τest χρησιμοποιεί πρωτοποριακές τεχνικές που λαμβάνουν υπόψιν τους το χρόνο και την κατανάλωση ώστε να δώσουν τη δυνατότητα στους χρήστες να κατασκευάσουν υψηλότερης ποιότητας και ενεργειακά αποδοτικότερα κυκλώματα, γρηγορότερα και με χαμηλότερο κόστος. Επίσης, τα εργαλεία Διάγνωσης (Encounter Diagnostics) εντοπίζουν κρίσιμα ζητήματα απόδοσης και υποδεικνύουν στο σχεδιαστή πιθανές διορθώσεις. Ο Encounter Test είναι ενσωματωμένος στο εργαλείο Encounter RTL το οποίο κάνει τη μεταγλώττιση και παρέχει υποδομές πλήρους εξέτασης ενός κυκλώματος ώστε να διασφαλίσει υψηλό βαθμό εξετασιμότητας μειώνοντας ταυτοχρόνως το κόστος εξέτασης με συμπίεση των δεδομένων εξέτασης πάνω στο ολοκληρωμένο (on chip compression). Επίσης, υποστηρίζει την κατασκευή σεναρίου εξέτασης κυκλωμάτων χαμηλής κατανάλωσης, χρησιμοποιώντας πληροφορίες που περιγράφουν την κατανάλωση του συγκεκριμένου κυκλώματος και δημιουργεί αυτόματα διακεκριμένα διανύσματα εξέτασης για ενεργούς πυρήνες και ανενεργά περιφερειακά. Εισάγει επιπλέον δομές για εξέταση (Design for Test-DFT) δίνοντας τη δυνατότητα να απενεργοποιηθεί κάποιο στοιχείο κατά τη διαδικασία εξέτασης. Ο μηχανισμός αυτόματης παραγωγής διανυσμάτων εξέτασης που λαμβάνει υπόψιν του την κατανάλωση αποσκοπεί σε χαμηλές ενεργειακά δομές, όπως ολισθητές επιπέδου (level shifters) και κύτταρα απομόνωσης (isolation cells) και παράγει χαμηλής κατανάλωσης διανύσματα εξέτασης, τα οποία μειώνουν την κατανάλωση κατά τη διάρκεια της εξέτασης. Ως εκ τούτου, οι προαναφερθείσες δυνατότητες ελαχιστοποιούν την κατανάλωση κατά την εξέταση επιτυγχάνοντας ταυτόχρονα υψηλή ποιότητα εξέτασης, δηλαδή μεγάλο βαθμό εξετασιμότητας, σε χαμηλής κατανάλωσης κυκλώματα. 2.2 Μοντέλο χρήσης του ATPG Ακολούθως φαίνονται περιγραφικά τα βήματα χρήσης του ATPG: 23

24 Εικόνα 2-1 Μοντέλο χρήσης του ATPG Απαιτήσεις Προκειμένου να είναι δυνατή η χρήση του Encounter Test ATPG είναι απαραίτητα: Μια κατασκευαστική Verilog βιβλιοθήκη τεχνολογίας Μια λίστα από κύριες εισόδους και εξόδους καθώς και τις αντίστοιχες λειτουργίες τους (ενεργοποίηση σάρωσης scan enable, σάρωση εισόδου scan input, ρολόι συστήματος system clock, κλπ) Ορισμός φακέλου εργασίας Είναι καλή πρακτική, επειδή μετά την εκτέλεση του ATPG θα προκύψουν πολλά αρχεία, να δημιουργήσουμε έναν καινούριο φάκελο τον οποίο θα τον χρησιμοποιήσουμε ως φάκελο εργασίας. Με την εντολή Unix mkdir δημιουργούμε έναν φάκελο εργασίας ως ακολούθως: mkdir <directory> To ακόλουθο διάγραμμα παρουσιάζει τη δομή του φακέλου εργασίας όπως δημιουργήθηκε από τον Encounter Test. Εικόνα 2-2 Διάρθωση φακέλων Εncounter Test Στη συνέχεια ορίζουμε το φάκελο εργασίας ώστε να μη χρειάζεται να το κάνουμε πριν από κάθε εντολή. Αυτό γίνεται με την εντολή: setenv WORKDIR <directory> Τέλος πρέπει να δηλώσουμε το όνομα της λειτουργίας εξέτασης/δοκιμής (test mode). Λειτουργία εξέτασης ονομάζεται μια διαδικασία εξέτασης του σχεδιασμένου κυκλώματος χρησιμοποιώντας συγκεκριμένους ακροδέκτες (pins) εξέτασης. Το FULLSCAN είναι η προκαθορισμένη λειτουργία εξέτασης που παρέχει ο Encounter Test. Αυτό γίνεται με την εντολή: setenv TESTMODE FULLSCAN 24

25 2.2.3 Δημιουργία Έργου με τη χρήση Tcl Μπορούμε να χρησιμοποιήσουμε είτε την εντολή new_project, για τη δημιουργία ενός νέου έργου, είτε την εντολή update_project μαζί με τον αντίστοιχο φάκελο. Αν θέλουμε να δημιουργήσουμε προσωρινά ένα νέο έργο χρησιμοποιούμε την εντολή set_global Προετοιμασία για τον ATPG Όπως είδαμε και στο μοντέλο χρήσης του ATPG χρειάζεται να εκτελεστούν ορισμένα βήματα πριν τη χρήση του ATPG. Κατασκευή ενός λογικού μοντέλου (logic model) Κατασκευή μιας λειτουργίας εξέτασης (test mode) Επαλήθευση δομών εξέτασης Κατασκευή ενός μοντέλου σφαλμάτων 2.3 Κατασκευή Λογικού Μοντέλου (Logic Model) Αρχικά πρέπει να φτιάξουμε ένα λογικό μοντέλο με τον Encounter Test διαβάζοντας το αρχείο σχεδίασης με τους κόμβους του κυκλώματος (design netlist) και τις βιβλιοθήκες τεχνολογίας. Για το σκοπό αυτό χρησιμοποιούμε την εντολή build_model. Η σύνταξη της εντολής φαίνεται ακολούθως: build_model workdir=<directory> designsource=<netlist> \ techlib=<techlib_files_or_directories> cell=<top_level_cell> όπου: Πίνακας 1 Ορίσματα της εντολής Build Model Όρισμα workdir=<directory> designsource=netlist techlib=technology_library cell=top_level_module Λειτουργία Καθορίζει το φάκελο στον οποίο θα αποθηκευτούν τα επιμέρους δεδομένα. Καθορίζει το υψηλότερο επίπεδο (top level) της σχεδίασης. Καθορίζει τις απαραίτητες βιβλιοθήκες τεχνολογίας. Μπορούν να καθοριστούν περισσότερες από μία βιβλιοθήκες, αλλά τα αρχεία πρέπει να είναι χωρισμένα με κόμμα (,). Αν ένα αρχείο περιέχει περιγραφές κυττάρων (cell) στη μορφή cellname.v τότε το αρχείο πρέπει να οριστεί ως μια είσοδος techlib. Καθορίζει το όνομα του στοιχείου που βρίσκεται στην κορυφή της σχεδίασης. 25

26 2.3.1 Ανάλυση των αποτελεσμάτων της εντολής Build Model Αρχικά πρέπει να βεβαιωθούμε πως το παραγόμενο μοντέλο δεν περιέχει ανεπιθύμητα μαύρα κουτιά (black boxes), δηλαδή στοιχεία τα οποία επιθυμούμε να εμφανίζονται σε όλο το βάθος της σχεδίασής τους, καθώς σε αυτήν την περίπτωση δεν είναι δυνατή εξέταση του κυκλώματος όπως επιθυμούμε και για το λόγο αυτό θα πρέπει να διορθώσουμε τη σχεδίαση συμπεριλαμβάνοντας τις απαραίτητες βιβλιοθήκες ώστε να μπορεί να γίνει πλήρης αναφορά (reference) στη λειτουργία αυτών των κυκλωμάτων. Αν δεν υπάρχουν μαύρα κουτιά θα εμφανιστεί το εξής μήνυμα: Message TEI-010 οπότε μπορούμε να προχωρήσουμε παρακάτω. Στη συνέχεια εξέτασης με τα στατιστικά που μας παρέχει και μας υποδηλώνουν των αριθμό των λογικών πυλών όπως φαίνεται ακολούθως για την κατασκευή του μοντέλου στο κύκλωμα s5378 χωρίς περιφερειακό κύκλωμα εξέτασης: Circuit Summary Hierarchical Model: Flattened Model: 8749 Blocks 4525 Blocks Pins 4525 Nodes Nets Primary Inputs: Primary Outputs: 43 Input Only 54 Output Only 0 Input/Output 0 Input/Output 43 Total Inputs 54 Total Outputs Tied Nets: Dotted Nets: 5 Tied to 0 0 Two-State 10 Tied to 1 0 Three-State 0 Tied to X 0 Total Dotted Nets 15 Total Tied Nets Selected Primitive Functions: 0 Clock Chopper (CHOP) primitives 0 RAMs 0 ROMs 0 TSDs 0 Resistors 0 Transistors 0 Latches 160 Flip-Flops Συμβουλές σχετικά με την εντολή Build Model Υπάρχουν κι άλλα ορίσματα τα οποία μπορεί να δεχτεί η εντολή build_model και παρουσιάζονται στον ακόλουθο πίνακα: 26

27 Πίνακας 2 Περισσότερα ορίσματα της εντολής Build Model Όρισμα allowincomplete=yes no blackboxoutputs=x z 1 0 industrycompatible=yes truetime=no yes Λειτουργία Επιτρέπει (yes) την αυτόματη δημιουργία μαύρων κουτιών. Καθορίζει τις εξόδους των μαύρων κουτιών στις συγκεκριμένες τιμές. Ρυθμίζει τα μοντέλα σφάλματος πιο κοντά σε άλλα εργαλεία ATPG. Παρέχει επιπλέον έλεγχο για εξέταση των καθυστερήσεων. Επίσης επειδή τα μοντέλα της Verilog για κύτταρα μνήμης (memory cells) συχνά περιέχουν κατασκευαστικές και συμπεριφορικές παραμέτρους οι οποίες δεν υποστηρίζονται από την εντολή build_model είναι πιθανόν να επιστρέψει συντακτικά σφάλματα αν την εκτελέσουμε. Σε μια τέτοια περίπτωση μπορούμε να κάνουμε ένα από τα ακόλουθα: Να αφαιρέσουμε τα συμπεριφορικά μοντέλα από το designsource ή το techlib και να καθορίσουμε allowincomplete=yes ώστε να δημιουργηθούν μαύρα κουτιά. Να αφαιρέσουμε τα συμπεριφορικά μοντέλα και να δημιουργήσουμε τα δικά μας μαύρα κουτιά σε Verilog. Να χρησιμοποιήσουμε την εντολή build_memory_model για να δημιουργήσουμε μοντέλα μνήμης τα οποία μπορεί να διαβάσει η build_model και μπορούν να χρησιμοποιηθούν από τον ATPG. 2.4 Κατασκευή Λειτουργίας Εξέτασης (Test Mode) Κατά την κατασκευή λειτουργίας εξέτασης αναγνωρίζονται οι δομές εξέτασης (αλυσίδες σάρωσης scan chains, ακροδέκτες εξέτασης test pins, δομές συμπίεσης compression structures κλπ ) οι οποίες είναι απαραίτητες προκειμένου να παραχθούν τα διανύσματα εξέτασης και να εκτελεστούν τα εργαλεία διάγνωσης. Ονομάζεται λειτουργία εξέτασης διότι καθορίζει μια συγκεκριμένη μορφή εξέτασης για τη σχεδίαση. Η εντολή η οποία το κάνει αυτό είναι η εξής: build_testmode και η σύνταξή της φαίνεται ακολούθως: build_testmode workdir=<directory> testmode=<name> assignfile=<filename> όπου: Πίνακας 3 Ορίσματα της εντολής Build Test Mode Όρισμα workdir=<directory> testmode=<name> Λειτουργία Καθορίζει το φάκελο στον οποίο θα αποθηκευτούν τα επιμέρους δεδομένα. Καθορίζει τη λειτουργία εξέτασης. Ο Encounter Test αναγνωρίζει αρκετές προκαθορισμένες λειτουργίες εξέτασης και 27

28 assignfile=<filename> είναι σε θέση να προσδιορίσει πολλά χαρακτηριστικά μιας λειτουργίας από το όνομα της. Το FULLSCAN είναι μια λειτουργία εξέτασης η οποία χρησιμοποιεί πλήρη σάρωση (όχι συμπίεση) και είναι ικανή να εκτελέσει στατικό ATPG με χρονοκαθυστέρηση. Καθορίζει τον φάκελο ο οποίος περιέχει μια λίστα με τις κύριες εισόδους και εξόδους του κυκλώματος κατά τη διάρκεια του ATPG και των αντιστοίχων συναρτήσεων εξέτασης. Η ακόλουθη μορφή είναι δήλωση στο αρχείο: assign pin <pinname> test_function = <tf> ; όπου το <pinname> είναι κύρια είσοδος ή έξοδος και το <tf> είναι η συνάρτηση εξέτασης που έχει ανατεθεί στον ακροδέκτη όπως φαίνονται σε ακόλουθο πίνακα. Στη συνέχεια παρουσιάζονται τα πιο συνήθη χαρακτηριστικά ακροδεκτών για τις συναρτήσεις εξέτασης: Πίνακας 4 Χαρακτηριστικά ακροδεκτών συναρτήσεων εξέτασης Συνάρτηση Εξέτασης Τιμή Λειτουργία SC 0, 1, -, + Ρολόι συστήματος (η τιμή είναι η ανενεργή κατάσταση του ρολογιού). ΕC 0, 1, -, + Ακμο-διεγειρόμενο ρολόι σάρωσης (η τιμή είναι η ανενεργή κατάσταση του ρολογιού). SC 0/-, 1/+ Ρολόι συστήματος. Η τιμή είναι η αρχική και τελική κατάσταση του παλμού του ρολογιού. ΕS 0, 1, -, + Ρολόι συστήματος και ρολόι σάρωσης (η τιμή είναι η ανενεργή κατάσταση του ρολογιού). SI Είσοδος σάρωσης (scan input) SO Έξοδος σάρωσης (scan output) SE 0, 1, -, + ή Z Ενεργοποίηση σάρωσης (scan enable) και είναι σταθερή κατά τη σάρωση. TI 0, 1, -, +, Χ ή Ζ Αναστολή Εξέτασης (Test Inhibit) και είναι σταθερή κατά τη σάρωση και κατά την εξέταση. TC 0, 1, -, +, Χ ή Ζ Περιορισμός Εξέτασης (Test 28

29 Constraint) και είναι σταθερή κατά την εξέταση. Στο ακόλουθο σχήμα φαίνονται διάφορες κυματομορφές των παραπάνω σημάτων προκείμενου να γίνει σαφής η λειτουργία τους: Εικόνα 2-3 Παράδειγμα κυματομορφών ακροδεκτών συναρτήσεων εξέτασης Στη συνέχεια φαίνεται ένα παράδειγμα ενός αρχείου ανάθεσης ακροδεκτών.pinassign όπως προέκυψε για το κύκλωμα s5378. assign pin=test_en test_function= +TI; assign pin=scan_en test_function= +SE; assign pin=ck test_function= -ES; assign pin=c_sdi_0 test_function= SI0; assign pin=c_sdo_0 test_function= SO0; assign pin=c_sdi_1 test_function= SI1; assign pin=c_sdo_1 test_function= SO1; assign pin=c_sdi_2 test_function= SI2; assign pin=c_sdo_2 test_function= SO2; assign pin=c_sdi_3 test_function= SI3; assign pin=c_sdo_3 test_function= SO3; assign pin=c_sdi_4 test_function= SI4; assign pin=c_sdo_4 test_function= SO4; # test_mode # shift_enable Ανάλυση των αποτελεσμάτων της εντολής Build Tets Mode Αρχικά, πρέπει να βεβαιωθούμε ότι δεν προέκυψαν προειδοποιητικά μηνύματα τύπου Warning [Severe] ή μηνύματα σφάλματος τύπου Error. Μπορούμε να χρησιμοποιήσουμε τα βοηθητικά μηνύματα που εμφανίζονται για να κατανοήσουμε και να διορθώσουμε τις αιτίες που οδηγούν σε σφάλματα. Αν υποθέσουμε ότι δεν έχουμε καθόλου σφάλματα τότε η εντολή build_testmode παράγει τα ακόλουθα τμήματα πληροφορίας στο αρχείο καταγραφής δραστηριότητας (log file). Το ποσοστό ενεργής λογικής 29

30 1 INFO (THM-814): Testmode contains 99.87% active logic, 0.13% inactive logic and 0.00% constraint logic. Το ποσοστό αυτό υποδηλώνει πόση από τη λογική που υπάρχει στη σχεδίαση είναι παρατηρήσιμη στη λειτουργία εξέτασης. Οποιαδήποτε λογική δεν είναι παρατηρήσιμη στη λειτουργία εξέτασης δεν μπορεί να ελεγχθεί σε αυτή τη λειτουργία. Επομένως θέλουμε το ποσοστό αυτό να είναι όσο το δυνατόν υψηλότερο. Σε αντίθετη περίπτωση, πρέπει να είμαστε σίγουροι ότι η μη παρατηρήσιμη λογική θα ήταν ούτως ή άλλως ανενεργή. Περιορισμένη λογική είναι η λογική η οποία μπορεί να προστεθεί σε ένα μοντέλο με στόχο να αποτρέψει τον ATPG από το να παράγει συγκεκριμένα διανύσματα. Τη λίστα με τις αναθέσεις στους ακροδέκτες των συναρτήσεων εξέτασης Test Function Pin Information for Test Mode: FULLSCAN SC (System Clock) Pins 0 AC (A Shift Clock) Pins 0 BC (B Shift Clock) Pins 0 PC (P Shift Clock) Pins 1 EC (E Shift Clock) Pins 0 OSC (Oscillator) Pins 1 TI (Test Inhibit) Pins 1 SE (Scan Enable) Pins 0 CI (Clock Isolation) Pins 0 OI (Output Inhibit) Pins 5 SI (Scan Input) Pins 5 SO (Scan Output) Pins Pin Index Type Test Function Pin Name / Net Name PI -EC -SC CK / CK 42 PI +TI test_en / test_en 41 PI +SE scan_en / scan_en 1 PI SI c_sdi_0 / c_sdi_0 2 PI SI1 c_sdi_1 / c_sdi_1 3 PI SI2 c_sdi_2 / c_sdi_2 4 PI SI3 c_sdi_3 / c_sdi_3 5 PI SI4 c_sdi_4 / c_sdi_4 43 PO SO c_sdo_0 / c_sdo_0 44 PO SO1 c_sdo_1 / c_sdo_1 45 PO SO2 c_sdo_2 / c_sdo_2 46 PO SO3 c_sdo_3 / c_sdo_3 47 PO SO4 c_sdo_4 / c_sdo_4 Είναι πολύ σημαντικό στο στάδιο αυτό να σιγουρευτούμε πως οι αναθέσεις που φαίνονται είναι οι επιθυμητές. Είναι σημαντικό επίσης να κατανοήσουμε ότι οι +/- τιμές που σχετίζονται με το ρολόι υποδηλώνουν την κατάσταση στην οποία το ρολόι δε δίνει παλμό. Έτσι ένα +SC σημαίνει ότι η κατάσταση ηρεμίας του ρολογιού είναι 1 και οι παλμοί είναι στο 0. Για τις υπόλοιπες λειτουργίες των ακροδεκτών (test function pins) η τιμή αντιπροσωπεύει την κατάσταση όπου ο ακροδέκτης συμπεριφέρεται σαν συνάρτηση εξέτασης. 30

31 Επαλήθευση ότι ο αριθμός των αλυσίδων σάρωσης που υπάρχουν στη λειτουργία εξέτασης. Εφόσον οι αναθέσεις είναι επί παραδείγματι 5 SI και 5 SO θα αναμέναμε να έχουμε 5 αλυσίδες σάρωσης. Αυτό θα εμφανιζόταν με το εξής μήνυμα: 1 INFO (TTM-357): There are 5 scan chains which are controllable and observable. Σε αντίθετη περίπτωση θα λαμβάναμε μηνύματα της μορφής: 1 INFO (TTM-357): There are 1 scan chains which are controllable and observable. 1 Warning (TTM-358): There are 2 scan chains which are only controllable. 1 Warning (TTM-359): There are 2 scan chains which are only observable. Αν η λειτουργία εξέτασης έχει κατασκευαστεί μετά το μοντέλο σφαλμάτων τότε θα δούμε επίσης και έναν αριθμό παρατηρούμενων σφαλμάτων στη λειτουργία εξέτασης. Για κάθε δοθείσα ρύθμιση λειτουργίας εξέτασης (test mode configuration) υπάρχουν συγκεκριμένα σφάλματα στη σχεδίαση τα οποία μπορεί να είναι ανενεργά και άρα να μην μπορούν να ελεγχθούν κατά τη λειτουργία εξέτασης. O Encounter Test παρέχει δύο σύνολα στατιστικών κάλυψης σφαλμάτων. Τα συνολικά στατιστικά (Global Statistics) υπολογίζονται χρησιμοποιώντας το συνολικό αριθμό σφαλμάτων σε μια σύνθεση ως παρονομαστή. Τα στατιστικά της λειτουργίας εξέτασης (Testmode statistics) υπολογίζονται χρησιμοποιώντας τον αριθμό των ενεργών σφαλμάτων στη λειτουργία εξέτασης ως παρονομαστή. Επίσης, μολονότι μπορούμε να δημιουργήσουμε πρώτα το μοντέλο σφάλματος και ύστερα τη λειτουργία εξέτασης ή και το αντίστροφο, τα στατιστικά της λειτουργίας εξέτασης θα εκτυπωθούν στο αρχείο καταγραφής δραστηριότητας (log) ανεξάρτητα από το ποια εντολή εκτελέστηκε τελευταία. Στο ακόλουθο διάγραμμα φαίνεται η σχέση μεταξύ λίστας σφαλμάτων λειτουργίας εξέτασης και λίστας συνολικών σφαλμάτων. Εικόνα 2-4 Σχέση Λιστών Σφαλμάτων Συμβουλές σχετικά με την εντολή Build Τest Mode Η εντολή verify_test_structures ανιχνεύει οποιαδήποτε δομικά προβλήματα ελεγξιμότητας και δίνει τη δυνατότητα στο σχεδιαστή να τα κατανοήσει, πχ. σπασμένες αλυσίδες σάρωσης, κατάσταση επιβολής three-state (three-state contention) κλπ. Επίσης, η εντολή report_test_structures μας δίνει τη δυνατότητα να δούμε λεπτομέρειες σχετικά με τις δομές 31

32 εξέτασης που ταυτοποιήθηκαν όπως μια λίστα αλυσίδας σάρωσης (list of scan chain), δομές συμπίεσης (compression structure), ακροδέκτες συναρτήσεων εξέτασης (test function pins) κλπ. Αξίζει να σημειώσουμε ότι είναι καλή πρακτική να ορίζουμε τα σύγχρονα set/reset σήματα σαν σήματα ρολογιού (-SC ή +SC). Εν κατακλείδι να αναφέρουμε ότι όλη τη διαδικασία που παρουσιάσαμε παραπάνω μπορούμε να την πραγματοποιήσουμε και από το γραφικό περιβάλλον με την φόρμα όπως φαίνεται στο ακόλουθο σχήμα. Εικόνα 2-5 Φόρμα συμπλήρωσης της εντολής Build Test Mode Επαλήθευση Δομών Εξέτασης (Verification Test Structures) H επαλήθευση των δομών εξέτασης αναλύει τη βάση δεδομένων της σχεδίασης για πιθανά προβλήματα, τα οποία μπορεί να είναι προβλήματα αλυσίδας σάρωσης, χρονισμού και επιβολής (contention). H σύνταξη της εντολής για την επαλήθευση των δομών εξέτασης είναι η εξής: verify_test_structures workdir=<directory> testmode=<name> όπου: Πίνακας 5 Ορίσματα της εντολής Verify Test Structures Όρισμα workdir=<directory> testmode=<name> Λειτουργία Καθορίζει το φάκελο στον οποίο θα αποθηκευτούν τα επιμέρους δεδομένα. Καθορίζει τη λειτουργία εξέτασης την οποία θέλουμε να αναλύσει. 32

33 2.4.4 Ανάλυση των αποτελεσμάτων της εντολής Verify Test Structures Αρκεί να εξετάσουμε αν στο αρχείο καταγραφής της verify_test_structures δεν υπάρχουν καθόλου μηνύματα τύπου Error ή Warning [Severe] ή αν υπάρχουν να βεβαιωθούμε ότι τα αναμέναμε και κατανοούμε τι σημαίνουν Συμβουλές σχετικά με την εντολή Verify Τest Structures To κυριότερο είναι να σιγουρευτούμε ότι έχουν πιστοποιηθεί όλες οι αλυσίδες σάρωσης και ότι είναι ακέραιες, δηλαδή είναι συνδεδεμένες από την είσοδο έως την έξοδό τους. Αυτό μπορεί να επιτευχθεί με μια από τις παρακάτω τεχνικές: Σε λειτουργία εξέτασης FULLSCAN θα πρέπει να αναζητήσουμε ένα μήνυμα με κωδικό TSV- 381: To οποίο να πιστοποιεί τον αριθμό των ακεραίων αλυσίδων σάρωσης (complete scan chains). Ο αριθμός αυτός θα έπρεπε ιδανικά να είναι ίσος με το σχεδιασμένο πλήθος αλυσίδων σάρωσης. Σε λειτουργία εξέτασης COMPRESSION, θα πρέπει να αναζητήσουμε την απουσία μηνυμάτων με κωδικό TSV-384 και TSV-385. Σε λειτουργία δοκιμής OPMISR, θα πρέπει να αναζητήσουμε μήνυμα με κωδικούς TSV-181, το οποίο να πιστοποιεί τον αριθμό των ΜΙSRs (Μicro Isolation Shift Registers) που βρέθηκαν, TSV-369, το οποίο πιστοποιεί τον αριθμό των ελέγξιμων αλυσίδων σάρωσης και ΤSV-570, το οποίο μας πληροφορεί για το πλήθος των παρατηρήσιμων αλυσίδων σάρωσης. Επίσης η επιβολή τιμών (contention) είναι κάτι που πρέπει να προσέξουμε. Ο ΑTPG εξ ορισμού δεν παράγει διανύσματα τα οποία να προκαλούν επιβολή τιμών. Χρησιμοποιώντας την ακόλουθη τεχνική για να πιστοποιήσουμε ότι δεν υπάρχουν επιβολές στο κύκλωμα: Να σιγουρευτούμε ότι δεν υπάρχουν μηνύματα με κωδικούς TSV-093 και TSV-193, τα οποία υποδηλώνουν επιβολή κατά τη σάρωση και επιβολή κατά την απελευθέρωση/σύλληψη (release/capture). Αν υπάρχει ελαφρά επιβολή, δηλαδή περίπτωση στην οποία έχουμε απροσδιόριστη τιμή (Χ) ως έξοδο ενώ η αναμενόμενη είναι κάποια γνωστή τιμή (know vs Χ), εξαιτίας μαύρου κουτιού το οποίο είναι συνδεδεμένο σε κόμβο (net) είναι δυνατόν να άρουμε την επιβολή με την λέξη κλειδί blackboxoutputs=z στην εντολή build_model. Αν είμαστε βέβαιοι ότι το κύκλωμα είναι ασφαλές, καθορίζουμε contentionreport=hard στον ATPG και στις εντολές προσομοίωσης (θα τις δούμε παρακάτω) και επιτρέπουμε ελαφρές επιβολές. Εναλλακτικά η διαδικασία μπορεί να γίνει με την εξής φόρμα: 33

34 Εικόνα 2-6 Φόρμα συμπλήρωσης της εντολής Verify Test Structures 2.5 Κατασκευή Μοντέλου Σφάλματος (Fault Model) To μοντέλο σφάλματος αξιοποιείται τόσο από τον αυτόματο παραγωγό διανυσμάτων δοκιμής (ATGP) όσο και από τα διάφορα διαγνωστικά εργαλεία. H εντολή που χρησιμοποιούμε για την κατασκευή του μοντέλου σφάλματος καθώς και η προτεινόμενη σύνταξή της είναι: όπου: build_faultmodel workdir=/directory cellfaults=no Πίνακας 6 Ορίσματα της εντολής Build Fault Model Όρισμα workdir=<directory> cellfaults=yes no Λειτουργία Καθορίζει το φάκελο στον οποίο θα αποθηκευτούν τα επιμέρους δεδομένα. To yes καθορίζει ότι τα σφάλματα θα έπρεπε να συγκεντρωθούν μόνο σε περιφερειακά κύτταρα (boundary of technology cells) και στις κύριες εισόδους και εξόδους. Η προεπιλεγμένη συμπεριφορά αν η παράμετρος αυτή δεν οριστεί είναι να συμπεριλάβει σφάλματα σε όλη τη σχεδίαση Ανάλυση των αποτελεσμάτων της εντολής Build Fault Model Η εντολή build_faultmodel εκτυπώνει, μετά την εκτέλεσή της, στατιστικές πληροφορίες για διάφορες κατηγορίες σφαλμάτων που δημιούργησε. Σκοπός μας είναι να εξετάσουμε αν τα αποτελέσματα αυτά είναι λογικά και αναμενόμενα. 34

35 2.5.2 Συμβουλές σχετικά με την εντολή Build Fault Model Μπορούμε να χρησιμοποιήσουμε την εντολή report_faults για να δημιουργήσουμε μια λίστα από ξεχωριστά σφάλματα τα οποία υπάρχουν στο μοντέλο σφάλματος καθώς και την τρέχουσα κατάσταση. Μπορούμε να χρησιμοποιήσουμε την εντολή report_fault_statistics για να πάρουμε πληροφορίες σχετικά με την κάλυψη σφαλμάτων. Εναλλακτικά μπορούμε να ολοκληρώσουμε τη διαδικασία μέσω της ακόλουθης φόρμας και πατώντας το «Run»: Εικόνα 2-7 Φόρμα συμπλήρωσης της εντολής Build Fault Model 2.6 Εκτέλεση της Γεννήτριας Παραγωγής Διανυσμάτων Αυτόματης Εξέτασης (ATPG) Προκειμένου να εκτελέσουμε την γεννήτρια παραγωγής διανυσμάτων αυτόματης εξέτασης πρέπει να ακολουθήσουμε τα παρακάτω βήματα: Δημιουργία ελέγχων αλυσίδας σάρωσης (Scan Chain Tests) Υποβολή των ελέγχων αλυσίδας σάρωσης Δημιουργία ελέγχων λογικής (Logic Tests) Υποβολή των ελέγχων λογικής 2.7 Δημιουργία Ελέγχων Αλυσίδας Σάρωσης (Scan Chain Tests) H δημιουργία ελέγχων αλυσίδας σάρωσης δημιουργεί διανύσματα εξέτασης τα οποία εξετάζουν τις αλυσίδες σάρωσης. Τα δημιουργηθέντα διανύσματα προσομοιώνονται και οποιαδήποτε λάθη ανιχνευθούν από αυτά τα διανύσματα επισημαίνονται ως ελεγμένα ώστε να μη χρειαστεί να επανεξεταστούν κατά τον λογικό έλεγχο. Η εντολή και η προτεινόμενη σύνταξη για τη δημιουργία των ελέγχων αλυσίδας σάρωσης είναι η εξής: create_scanchain_tests workdir=<directory> testmode=<testmode> \ experiment=<exp_name> 35

36 όπου: Πίνακας 7 Ορίσματα της εντολής Create Scan Chain Test Όρισμα workdir=<directory> testmode=<name> experiment=<exp_name> Λειτουργία Καθορίζει το φάκελο στον οποίο θα αποθηκευτούν τα επιμέρους. To name καθορίζει τη λειτουργία δοκιμής με την οποία θέλουμε να διαβάσει τα διανύσματα. Το όνομα πρέπει να ταιριάζει στη λειτουργία με την οποία παρήχθησαν τα διανύσματα. Ορίζουμε ένα όνομα αντιπροσωπευτικό των διανυσμάτων που δημιουργεί αυτή η εντολή Ανάλυση των αποτελεσμάτων της εντολής Create Scan Chain Test Στο αρχείο καταγραφής δραστηριότητας βρίσκονται πολύ σημαντικές πληροφορίες όπως: Η επιτυχημένη κάλυψη ελεγξιμότητας. **********************Testmode Statistics: FULLSCAN****************** #Faults #Tested #Redund Untested %TCov %ATCov Total Static Total Dynamic Global Statistics #Faults #Tested #Redund Untested %TCov %ATCov Total Static Total Dynamic ********************************************************************* Τα Global Statistics περιέχουν πληροφορία σχετικά με την κάλυψη ελεγξιμότητας βασισμένης σε όλα τα σφάλματα της σχεδίασης, ενώ τα Testmode Statistics αναφέρονται στο βαθμό ελεγξιμότητας υπολογισμένη μόνο με τα σφάλματα τα οποία είναι ενεργά (παρατηρήσιμα) στη λειτουργία δοκιμής (test mode). Τυπικές τιμές του αρχικού βαθμού κάλυψης κυμαίνονται από 10% έως 20%. Λειτουργία Δοκιμής και Global Statistics για παραγωγή εξέτασης. Starting Scan Test generation. ---Tests --- Faults ---- ATCov Faults CPU Time -- Sim. Eff. Detected Tmode Global Aborted Remain. Sim. Total % 31.83% : :00.73 ********************************************************************* ----Stored Pattern Test Generation Final Statistics---- Testmode Statistics: FULLSCAN #Faults #Tested #Redund #Untested %TCov %ATCo Total Static Global Statistics #Faults #Tested #Redund #Untested %TCov %ATCov Total Static

37 Πλήθος των παραγόμενων διανυσμάτων εξέτασης ----Final Pattern Statistics---- Test Section Type # Test Sequences Scan Total Συμβουλές σχετικά με την εντολή Create Scan Chain Tests Αν παρατηρήσουμε μηδενικό βαθμό κάλυψης για τις αλυσίδες εξέτασης πρέπει να δούμε τα αποτελέσματα της verify_test_structures. Συγκεκριμένα πρέπει να ψάξουμε για μηνύματα τα οποία υποδηλώνουν ότι οι αλυσίδες σάρωσης πιθανόν είναι σπασμένες και άρα δε μπορούν να σαρωθούν σωστά. Τέτοια φύσεως σφάλματα πρέπει σίγουρα να διορθωθούν. Σε μερικές περιπτώσεις, τα μαύρα κουτιά ή οποιαδήποτε άλλης μορφής μη μοντελοποιημένης λογικής προκαλούν ελαφρές επιβολές (soft contention) κατά τη διάρκεια της προσομοίωσης των δοκιμών των αλυσίδων σάρωσης. Ελαφρά επιβολή ονομάζεται η κατάσταση κατά την οποία ένας κόμβος έχει πολλαπλές πηγές και μία ή περισσότερες από αυτές είναι σε λογικό Χ (εξαιτίας ίσως ενός μαύρου κουτιού). Όπως προαναφέραμε -σε προηγούμενη παράγραφο- η verify_test_structures κατά την εκτέλεση της δίνει επίσης αναφορά για περιπτώσεις ελαφράς επιβολής. Αν η περίπτωση της ελαφράς επιβολής είναι ανεκτή- το οποίο είναι κάτι που μόνο ο σχεδιαστής γνωρίζει και μπορεί να καθορίσει- τότε μπορούμε να προσθέσουμε την παράμετρο contentionreport=hard στην εντολή create_scanchain_tests. Αυτή η παράμετρος μπορεί να χρησιμοποιηθεί και με άλλες εντολές για να δημιουργήσουμε ή να προσομοιώσουμε διανύσματα δοκιμών. Εναλλακτικά μπορούμε να πραγματοποιήσουμε όλη τη διαδικασία με γραφικό τρόπο όπως φαίνεται ακολούθως: Εικόνα 2-8 Φόρμα συμπλήρωσης της εντολής Create Scan Chain Tests 37

38 Στην εικονιζόμενη φόρμα εισάγουμε το πεδίο Test mode name, καθώς όλες οι ATPG εντολές χρειάζονται μια λειτουργία εξέτασης. Εν συνεχεία εισάγουμε το Create tests experiment name για να περιγράψουμε τα διανύσματα και πατώντας το «Run» ολοκληρώνουμε τη διαδικασία. 2.8 Υποβολή Ελέγχων Αλυσίδας Σάρωσης Η υποβολή των διανυσμάτων έχει την έννοια ότι προωθούνται από το πειραματικό επίπεδο στο επίπεδο της λειτουργίας εξέτασης. Κατά τη διάρκεια της εξέτασης τα διανύσματα αποθηκεύονται και τα μοντέλα γενικών σφαλμάτων ενημερώνονται για τυχόν σφάλματα που εντοπίστηκαν. Στο τέλος το εκάστοτε πείραμα απορρίπτεται. Το ακόλουθο διάγραμμα δείχνει τη σχέση ανάμεσα στα πειράματα που διεξάγονται και την κατάσταση των μοντέλων σφαλμάτων: Εικόνα 2-9 Σχέση Πειραμάτων - Μοντέλων Σφάλματος Η σύνταξη της εντολής είναι η ακόλουθη: commit_tests workdir=<directory> testmode=<testmode> inexperiment=<exp_name> όπου: Πίνακας 8 Ορίσματα της εντολής Commit Tests Όρισμα workdir=<directory> testmode=<name> inexperiment=<exp_name> Λειτουργία Καθορίζει το φάκελο στον οποίο θα αποθηκευτούν τα επιμέρους. Καθορίζουμε ποιος έλεγχος θα χρησιμοποιηθεί. Καθορίζουμε το όνομα μιας γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG) ή ενός πειράματος προσομοίωσης. 38

39 2.8.1 Ανάλυση των αποτελεσμάτων της εντολής Commit Scan Tests Στο στάδιο αυτό πρέπει να σιγουρευτούμε ότι τα διανύσματα υποβλήθηκαν επιτυχώς. Σε διαφορετική περίπτωση, πρέπει να εξετάσουμε αν η αποτυχία οφείλεται στο γεγονός ότι δεν εκτελέστηκε η verify_test_structures ή στα μηνύματα της μορφής Warning [Severe] τα οποία επέστρεψε η verify_test_structures, τα οποία υποδηλώνουν ότι τα διανύσματα εξέτασης πιθανόν να μη δώσουν σωστά αποτελέσματα όταν χρησιμοποιηθούν από τον ελεγκτή. Αν η verify_test_structures δεν έχει εκτελεστεί, πρέπει να την εκτελέσουμε και να ξαναδημιουργήσουμε τις δομές της εξέτασης. Αν αυτό δεν είναι δυνατό, μπορούμε να αναγκάσουμε τα διανύσματα να υποβληθούν με την παράμετρο force=yes έχοντας ωστόσο κατά νου ότι μπορεί να μη δώσουν σωστά αποτελέσματα Συμβουλές σχετικά με την εντολή Commit Scan Test Άπαξ και υποβληθούν τα διανύσματα όλες οι ακόλουθες διαδικασίες ATPG ή προσομοίωσης θα ξεκινήσουν με το βαθμό κάλυψης ελεγξιμότητας από τα υποβληθέντα διανύσματα. Θα πρέπει να έχουμε υπόψιν ότι διαδοχικές εντολές οι οποίες επιδρούν σε υποβληθέντα διανύσματα τα επηρεάζουν κατά περίπτωση χρησιμοποιώντας μόνο το όρισμα της παραμέτρου testmode και όχι αμφοτέρων των παραμέτρων testmode και experiment. Για παράδειγμα η ακόλουθη εντολή: report_faults workdir=<directory> testmode=<testmode> θα αναφέρει όλες τις καταστάσεις σφαλμάτων των υποβληθέντων διανυσμάτων που καθορίζει η παράμετρος testmode. Εναλλακτικά μπορούμε να πραγματοποιήσουμε τη διαδικασία μέσω του γραφικού παραθύρου που φαίνεται ακολούθως: Εικόνα 2-10 Φόρμα συμπλήρωσης της εντολής Commit Scan Chain Tests στο οποίο ορίζουμε το Test mode name και το αρχείο εισόδου, ώστε τα παραγόμενα διανύσματα να συνδεθούν με το test mode και το πείραμα να αφαιρεθεί από τη βάση δεδομένων. 39

40 2.9 Δημιουργία Ελέγχων Λογικής (Logic Tests) Με τον όρο έλεγχοι λογικής περιγράφουμε τα διανύσματα δοκιμής τα οποία χρησιμοποιούνται για να ανιχνεύσουν σφάλματα της μορφής stuck-at fault σε μια σχεδίαση. Η σύνταξη της εντολής για αυτή τη λειτουργία είναι η εξής: create_logic_tests workdir=<directory> testmode=<testmode> \ experiment=<exp_name> όπου: Πίνακας 9 Ορίσματα της εντολής Create Logic Tests Όρισμα workdir=<directory> testmode=<name> experiment=<exp_name> Λειτουργία Καθορίζει το φάκελο στον οποίο θα αποθηκευτούν τα επιμέρους δεδομένα. Καθορίζουμε ποιος έλεγχος θα χρησιμοποιηθεί. Καθορίζουμε το όνομα που περιγράφει τα διανύσματα που θα παραχθούν από αυτή την εντολή Ανάλυση αποτελεσμάτων της εντολής Create Logic Test Από το αρχείο καταγραφής δραστηριότητας μπορούμε να αντλήσουμε τρία πολύ σημαντικά στοιχεία: Αρχική κάλυψη ελεγξιμότητας ********************************************************************* Coverage Definitions: #Faults : Number of Active Faults (observable). #Tested : Number of Active Faults marked tested. #Possibly: Number of Active Faults marked possibly tested. #Redund : Number of Active Faults untestable due to redundancy. #Untested: Number of Active Faults untested. %TCov (%Test Coverage) : #Tested / #Faults %ATCov (%Adjusted TCov) : #Tested / (#Faults-#Redund) ********************************************************************* ********************************************************************* Testmode Statistics: FULLSCAN #Faults #Tested #Redund #Untested %TCov %ATCov Total Static Total Dynamic Global Statistics #Faults #Tested #Redund #Untested %TCov %ATCov Total Static Total Dynamic ********************************************************************* 40

41 Από τη στιγμή που ο έλεγχος αλυσίδας σάρωσης έχει υποβληθεί και εκτελεστεί, ξεκινούν διαδοχικά πειράματα χρησιμοποιώντας αυτή τη λειτουργία εξέτασης με αρχικό βαθμό κάλυψης ελεγξιμότητας αυτόν που παρατηρήθηκε κατά την εξέταση της αλυσίδας. Στα ανωτέρω αποτελέσματα το πείραμα ξεκίνησε με 18.42% κάλυψη ελεγξιμότητας (Tcov). Στατιστικά αναφορικά με την εξέταση λογικής ********************************************************************* INFO(TDA-220):--Tests- -Faults-- -ATCov Faults--- --CPU Time Elapsed Time-- [end TDA_220] INFO(TDA-220):Sim. Eff.Detected Tmode Global Aborted Untested Sim. Total [end TDA_220] INFO(TDA-220): % 1.51% : : :12.49 [end TDA_220] ********************************************************************* Τελικός βαθμός κάλυψης ********************************************************************* ----Stored Pattern Test Generation Final Statistics---- Testmode Statistics: FULLSCAN #Faults #Tested #Redund #Untested %TCov %ATCov Total Static Total Dynamic Global Statistics #Faults #Tested #Redund #Untested %TCov %ATCov Total Static Total Dynamic ********************************************************************* Όπως φαίνεται και από τον ορισμό των εννοιών στα αποτελέσματα οι μετρικές κάλυψης ελεγξιμότητας (ΤCov) και προσαρμοσμένη κάλυψη (ATCov) είναι διαφορετικές και συγκεκριμένα: ( 1 ) ( 2 ) Επίσης, όπως ήδη έχει φανεί από τα διάφορα αποτελέσματα ο βαθμός κάλυψης ελεγξιμότητας της λειτουργίας εξέτασης Testmode Statistics είναι μεγαλύτερος από αυτόν του Global Statistics επειδή τα Global Statistics αναφέρονται σε βαθμό κάλυψης ελεγξιμότητας βασισμένο σε όλα τα σφάλματα της σχεδίασης ενώ τα Testmode Statistics στον βαθμό κάλυψης λαμβάνοντας υπόψιν μόνο εκείνα τα σφάλματα τα οποία είναι ενεργά (παρατηρήσιμα) στη λειτουργία εξέτασης, τα οποία γενικά είναι ένα υποσύνολο όλων των σφαλμάτων της σχεδίασης. Τέλος, δίνονται πληροφορίες σχετικά με τα δημιουργηθέντα διανύσματα. Test Section Type ----Final Pattern Statistics---- # Test Sequences 41

42 Logic Total 482 Μια ακολουθία εξέτασης στον Encounter Test είναι ισοδύναμη με ένα διάνυσμα εξέτασης (test pattern / test vector). Καλό είναι να ελέγξουμε στη σύνοψη μηνυμάτων για την ύπαρξη μηνυμάτων της μορφής Warning [Severe]. Τέτοιου είδους μηνύματα μας ενημερώνουν σχετικά με χαμηλή κάλυψη ελεγξιμότητας, αναπάντεχα μεγάλο πλήθος μοτίβων ή μεγάλου χρόνου εκτέλεσης Συμβουλές σχετικά με την εντολή Create Logic Test Σε ορισμένες περιπτώσεις, τα μαύρα κουτιά ή άλλη μορφή μη μοντελοποιημένης λογικής προκαλούν ελαφρές επιβολές κατά τη διάρκεια της προσομοίωσης των ελέγχων λογικής. Ελαφρά επιβολή ονομάζεται η κατάσταση κατά την οποία ένας κόμβος έχει πολλαπλές πηγές και μία ή περισσότερες από αυτές είναι σε λογικό Χ (εξαιτίας ίσως ενός μαύρου κουτιού). Όπως προαναφέραμε, σε προηγούμενη παράγραφο, η verify_test_structures κατά την εκτέλεση της δίνει επίσης αναφορά για περιπτώσεις ελαφράς επιβολής. Αν η περίπτωση της ελαφράς επιβολής είναι ανεκτή, το οποίο είναι κάτι που μόνο ο σχεδιαστής γνωρίζει και μπορεί να καθορίσει, τότε μπορούμε να προσθέσουμε την παράμετρο contentionreport=hard στην εντολή create_logic_tests. Αυτή η παράμετρος μπορεί να χρησιμοποιηθεί και με άλλες εντολές για να δημιουργήσουμε ή να προσομοιώσουμε διανύσματα δοκιμών. H προεπιλεγμένη προσπάθεια συμπίεσης διανυσμάτων (pattern compaction) είναι ρυθμισμένη σε μέτρια (medium) ώστε να ισορροπεί την προσπάθεια συμπίεσης σε σχέση με το χρόνο εκτέλεσης. Μπορούμε να μειώσουμε τον αριθμό των διανυσμάτων ορίζοντας την παράμετρο compactioneffort=high και επανεκτελώντας το πείραμα, το οποίο πιθανόν θα αυξήσει το χρόνο εκτέλεσης της εντολής. Η προεπιλεγμένη προσπάθεια αυτόματης παραγωγής διανυσμάτων εξέτασης είναι η χαμηλή (low). Αν ο βαθμός κάλυψης ελεγξιμότητας είναι χαμηλότερος από τον αναμενόμενο μπορούμε να ορίσουμε την προσπάθεια σε medium ή high και να επανεκτελέσουμε το πείραμα, κάτι το οποίο πιθανότατα θα αυξήσει το χρόνο εκτέλεσης. Είναι σημαντικό να εκτελούμε πάντα την εντολή verify_test_structures πριν την εκτέλεση της create_logic_tests. Αυτό μας ενημερώνει για προβλήματα ελεγξιμότητας τα οποία μπορούν να οδηγήσουν σε χαμηλό βαθμό κάλυψης ελεγξιμότητας ή υπερβολικά υψηλό χρόνο εκτέλεσης. Μέσω της ακόλουθης φόρμας μπορούμε εναλλακτικά να πραγματοποιήσουμε όλη την ανωτέρω διαδικασία. 42

43 Εικόνα 2-11 Φόρμα συμπλήρωσης της εντολής Create Logic Tests 2.10 Υποβολή Ελέγχων Λογικής Η εντολή commit_logic_tests πρόκειται για μια επέκταση της εντολής commit_tests και χρησιμοποιείται για να αποθηκεύσει τα πειράματα εξέτασης λογικής που δημιουργήθηκαν από την εντολή create_logic_tests. Η διαδικασία είναι ανάλογη με αυτή που περιγράφηκε στο κεφάλαιο «Υποβολή Ελέγχων Αλυσίδας Σάρωσης» 2.11 Καταγραφή Διανυσμάτων Χρησιμοποιώντας την εντολή write_vectors μπορούμε να αποθηκεύσουμε τα διανύσματα με κάποια από τις ακόλουθες μορφοποιήσεις: Verilog WGL STIL TDL H σύνταξη της εντολής είναι η εξής: write_vectors workdir=<directory> testmode=<testmode> \ [inexperiment=<exp_name>] [language=<stil wgl verilog tdl>] όπου: 43

44 Πίνακας 10 Ορίσματα της εντολής Write Vectors Όρισμα workdir=<directory> testmode=<name> inexperiment=<exp_name> language=stil wgl verilog tdl Λειτουργία Καθορίζει το φάκελο στον οποίο θα αποθηκευτούν τα επιμέρους δεδομένα. Καθορίζουμε τη λειτουργία εξέτασης για την οποία δημιουργήθηκαν τα διανύσματα. Καθορίζουμε το όνομα μιας γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης ή ενός πειράματος προσομοίωσης ώστε να κάνει τα διανύσματα συμβατά με το <exp_name>. Αν η παράμετρος παραληφθεί τότε η write_vectors θα κάνει όλα τα διανύσματα συμβατά με το test mode. Καθορίζει τη μορφοποίηση του μετασχηματισμένου διανύσματος εξέτασης. Η προεπιλεγμένη τιμή είναι η verilog Ανάλυση αποτελεσμάτων της εντολής Write vectors Στο σημείο αυτό πρέπει να επιβεβαιώσουμε ότι δεν υπάρχουν μηνύματα της μορφής Warning [Severe] στην λίστα μηνυμάτων. Επίσης, έχουμε τη δυνατότητα να αντλήσουμε πληροφορίες σχετικά με τον απομονωτή εξέτασης (tester buffer) ή με το χρόνο εξέτασης καθώς η εντολή write_vectors παράγει- εκτός από τη λίστα των μετασχηματισμένων μοτίβων- την κάλυψή τους και πληροφορίες για το χρόνο εξέτασης Συμβουλές σχετικά με την εντολή Write vectors Η εντολή write_vectors αυτόματα παράγει μοντέλα χρονισμού για τα διανύσματα βασισμένα σε πληροφορίες που παρέχονται στο αρχείο ορισμού κανόνων εξέτασης (πρόκειται για ένα εξειδικευμένο αρχείο εισόδου στην εντολή build_testmode). Επίσης, η εντολή παρέχει πολλά ορίσματα για ρυθμίσεις των μοντέλων χρονισμού ανάλογα με τις εκάστοτε ανάγκες. Μέσω της ακόλουθης φόρμας μπορούμε εναλλακτικά να ολοκληρώσουμε τη διαδικασία, ρυθμίζοντας κατάλληλα τα πεδία. Αρχικά, επιλέγουμε το Test mode name για το οποίο δημιουργήθηκαν τα διανύσματα. Από τη στιγμή που τα διανύσματα υποβληθούν δεν υπάρχουν καθόλου πειράματα εισόδου. Πρέπει να ελέγξουμε ώστε το κουμπί Commited Vectors να είναι επιλεγμένο. Τέλος επιλέγουμε language και κάνουμε κλικ στο κουμπί «Run». 44

45 Εικόνα 2-12 Φόρμα συμπλήρωσης της εντολής Write Vectors 2.12 To Στατικό Μοντέλο (Static ATPG) Στο κεφάλαιο αυτό θα εξηγήσουμε πώς μπορούμε να χρησιμοποιήσουμε τον ATPG ώστε να δημιουργήσουμε στατικά διανύσματα εξέτασης με τον Encounter Test. Στον Encounter Τest παράγουμε ένα μοτίβο εξέτασης για μια αλυσίδα (scan chain test) ώστε να εξακριβώσουμε αν η αλυσίδα δουλεύει όπως αναμενόταν πριν την εξέταση και λογικούς εξέτασης, οι οποίοι είναι γνωστοί ως έλεγχοι κολλημένων λανθασμένων τιμών (stuck-at fault test) Διάγραμμα ροής στο στατικό μοντέλο Στο σχήμα που ακολουθεί φαίνεται η τυπική διαδικασία που ακολουθείται για την εκτέλεση του στατικού μοντέλου αυτόματης παραγωγής διανυσμάτων εξέτασης. Έχουμε ήδη αναφερθεί στις προηγούμενες παραγράφους στα βήματα για την εκτέλεση του ATPG. 45

46 Εικόνα 2-13 Διάγραμμα Ροής Encounter Test Static ATPG Τα στάδια για λόγους ευκολίας επαναλαμβάνονται στο σημείο αυτό και είναι: Δημιουργία Δοκιμών Αλυσίδας Σάρωσης (Scan Chain Tests) Δημιουργία Λογικών Ελέγχων (Logic Tests) Συμπαγή Διανύσματα (Compact Vectors) Υποβολή των Ελέγχων (Commit Tests) Εγγραφή των διανυσμάτων (Write vectors) Δημιουργία Δοκιμών Αλυσίδας Σάρωσης (Scan Chain Test) Οι δοκιμές των αλυσίδων σάρωσης έχουν ως στόχο τα σφάλματα κατά μήκος των διαδρομών σάρωσης. Γενικά συνιστάται η δημιουργία δοκιμών αλυσίδων σάρωσης (scan chain test) χρησιμοποιώντας την ξεχωριστή εντολή create_scanchain_tests και εν συνεχεία η υποβολή αυτών των δοκιμών σε προηγούμενους λογικούς ελέγχους (logic test) που δημιουργήθηκαν. Υπάρχουν δύο τρόποι να δημιουργήσει κανείς αλυσίδες σάρωσης, όπως αναφέραμε και προηγούμενα: Μέσω της γραφικής διεπαφής του εργαλείου Encounter Test (Encounter Test Gui) Με την εκτέλεση της εντολής create_scanchain_tests. 46

47 Υποστηριζόμενες Μορφές Δοκιμών Αλυσίδων Σάρωσης (Supported Formats) Δύο είναι οι υποστηριζόμενες μορφές για τις δοκιμές στις αλυσίδες σάρωσης: Η φυσιολογική μορφή (normal format) κατά την οποία η αλυσίδα σάρωσης φορτώνεται με μια αλληλουχία επαναλαμβανόμενων μηδενικών (0) ακολουθούμενων από επαναλαμβανόμενες μονάδες (1), πχ , γίνονται ορισμένες ολισθήσεις (explicit shifts) στην αλυσίδα εφαρμόζοντας την παραπάνω αλληλουχία λαμβάνεται μια μέτρηση στις κύριες εξόδους μετά από κάθε ολίσθηση και στο τέλος αδειάζει η αλυσίδα. Οι ορισμένες ολισθήσεις (explicit shifts) είναι σφάλματα τα οποία έχουν προσομοιωθεί για να εντοπίσουν σφάλματα τα οποία έχουν εντοπιστεί κατά μήκος της αλυσίδας. Η φυσιολογική μορφή (format=normal) είναι η προεπιλεγμένη μορφή εκτός αν χρησιμοποιείται ολοκληρωμένος έλεγχος Έξυπνης Σάρωσης (SmartScan) με σειριακή μόνο διεπαφή (Serial-only). Η απλοποιημένη μορφή εξέτασης φορτώνει την αλυσίδα σάρωσης με μια αλληλουχία επαναλαμβανόμενων μηδενικών(0) και μονάδων (1), πχ και στη συνέχεια αδειάζει την αλυσίδα. Δεν υπάρχει καμία προσομοίωση των λαθών κατά τη φόρτωση (load) ή κατά το άδειασμα (unload) της αλυσίδας. Αντιθέτως υπάρχει εκ των προτέρων επισήμανση για τα σφάλματα κατά μήκος της διαδρομής σάρωσης. Η απλοποιημένη μορφή (format=simplified) είναι η προεπιλεγμένη στον ιεραρχικό έλεγχο (hierarchical test). 47

48 3 Το πρότυπο ΙΕΕΕ Γενικά Όπως αναφέραμε και στην εισαγωγή το πρότυπο ΙΕΕΕ 1500 προσθέτει συγκεκριμένο κύκλωμα το οποίο πραγματώνει μια σχέση εξέτασης μεταξύ του πυρήνα (core) και της σχεδίασης (design) στην οποία ο πυρήνας είναι ενσωματωμένος σε μορφή ολοκληρωμένου κυκλώματος (System on Chip - SoC). Το κύκλωμα αυτό καλείται wrapper («εγκολπωτής») καθώς προσφέρει ένα περιβάλλον εξέτασης το οποίο εγκολπώνει τον πυρήνα καθώς αναπτύσσεται γύρω του. Από τη στιγμή που ο πυρήνας έχεις γίνει ένα σύστημα σε μορφή ολοκληρωμένου κυκλώματος (System on Chip), ο wrapper μπορεί να χρησιμοποιηθεί για εξέταση τόσο του πυρήνα όσο και ορισμένης από το χρήστη λογικής μεταξύ πυρήνων. Στο σχήμα που ακολουθεί φαίνεται ένα μοντέλου χρήσης για την κατασκευή 1500 Wrapper. Εικόνα 3-1 Μοντέλο Χρήσης - Δημιουργία 1500 Wrapper Η προτεινόμενη ροή χρήσης του Build 1500 Wrapper εμπεριέχει τη χρήση ενός καταλόγου κόμβων (netlist) στον οποίο έχουν εισαχθεί αλυσίδες σάρωσης (scan-inserted netlist) καθώς και μια περιγραφή του πυρήνα γύρω από τον οποίο πρόκειται να αναπτυχθεί ο wrapper μαζί με τις απαιτήσεις του wrapper. H περιγραφή των απαιτήσεων του πυρήνα και του wrapper γίνεται με το CoreSpecList αρχείο, του οποίου η μορφοποίηση περιγράφεται στη συνέχεια του παρόντος κεφαλαίου. Οι έξοδοι της Build 1500 Wrapper είναι ένας κατάλογος κόμβων (netlist) για τον εγκολπωμένο πυρήνα (wrapped core), ένα αρχείο περιγραφής χαρακτηριστικών χρήσιμο για την κατασκευή του εγκολπωμένου πυρήνα σε μορφή ολοκληρωμένου κυκλώματος (System on Chip) και άλλα αρχεία που μπορούν να χρησιμοποιηθούν από τον Encounter Test για περαιτέρω 48

49 επεξεργασία. Η αρχιτεκτονική του περιφερειακού κυκλώματος IEEE 1500 το οποίο δημιουργείται είναι παρόμοια με την ακόλουθη: Εικόνα 3-2 Αρχιτεκτονική IEEE 1500 Wrapper Τα ακόλουθα χαρακτηριστικά στοιχεία υλικού εικονίζονται στο σχήμα: Ένας Οριακός Καταχωρητής του Wrapper (Wrapper Boundary Register WBR) ο οποίος αποτελείται από ένα ή περισσότερα οριακά κύτταρα και ο οποίος παρέχει ένα περιβάλλον διεπαφής με τους λειτουργικούς ακροδέκτες του συστήματος σε μορφή ολοκληρωμένου κυκλώματος. Ένας Παρακαμπτήριος Καταχωρητής του Wrapper (Wrapper Bypass Resgister WBY) που παρέχει μια ελάχιστου μήκους αλυσίδα παράκαμψης του WBR. Ένας Καταχωρητής Εντολής του Wrapper (Wrapper Instruction Register WIR) και κυκλώματα αποκωδικοποίησης σημάτων τα οποία εξετάζουν τη λειτουργία του wrapper. Μια υποχρεωτική Σειριακή Θύρα του Wrapper (Wrapper Serial Port WSP) αποτελούμενη από ακροδέκτες (pins) Σάρωσης Εισόδου του Wrapper (Wrapper Scan Input WSI), Σάρωσης Εξόδου του Wrapper ( Wrapper Scan Output WSO ) και Σειριακής Εξέτασης του Wrapper ( Wrapper Serial Control WSC). Μια προαιρετική Παράλληλη Θύρα του Wrapper ( Wrapper Parallel Port ) η οποία είναι επίσης και σύνολο ακροδεκτών του wrapper και είναι ενεργοποιημένη μόνο όταν μια παράλληλη λειτουργία εμφανιστεί στον WIR. 3.2 Προετοιμασία Εισόδων για την εντολή Build 1500 Wrapper Προτού εκτελέσουμε την εντολή Build 1500 Wrapper πρέπει να πραγματοποιήσουμε τα ακόλουθα βήματα: 49

50 Δημιουργία ενός CoreSpecList αρχείου - πρβλ Σύνταξη και Χρήση ενός CoreSpecList Δημιουργία ενός καταλόγου κόμβων (netlist) εισόδου για τον πυρήνα. Στην ιδεατή περίπτωση αυτό θα έπρεπε να είναι ένας κατάλογος κόμβων στον οποίον έχει γίνει προσθήκη αλυσίδων σάρωσης (scan-inserted netlist). Επίσης μια βιβλιοθήκη για τα κύτταρα του Οριακού Καταχωρητή του Wrapper που είναι ανεξάρτητα από την τεχνολογία παρέχεται μαζί με τον Encounter Test. Για περισσότερες πληροφορίες στο κεφάλαιο Βιβλιοθήκη Τεχνολογίας IEEE 1500 Wrapper Σύνταξη και Χρήση ενός CoreSpecList Το αρχείο CoreSpecList περιγράφει τους ακροδέκτες του πυρήνα (core pins) και περιέχει πληροφορίες σχετικά με την εξέταση του πυρήνα και τις απαιτούμενες ρυθμίσεις του wrapper. Τα δεδομένα στο αρχείο CoreSpecList χρησιμοποιούνται για τη δημιουργία του wrapper ώστε να είναι σύμφωνος με το πρότυπο IEEE Το αρχείο δημιουργείται χειροκίνητα και δίνεται ως είσοδος στο Build 1500 Wrapper ώστε να δημιουργηθεί ο wrapper αξιοποιώντας συγκεκριμένες πληροφορίες του πυρήνα. Ο πυρήνας παρέχει μόνο πληροφορίες εισόδου και εξόδου με αποτέλεσμα οι απαιτούμενες ρυθμίσεις του wrapper να πρέπει να οριστούν στο CoreSpecList αρχείο. Τα περιεχόμενα ενός CoreSpecList αρχείου είναι τα εξής: Περιγραφή γενικών ορισμάτων ( Global keyword specidication ) Περιγραφή θυρών wrapper ( Wrapper port specification ) Ρύθμιση wrapper ( Wrapper configuration ) Περιγραφή γενικών ορισμάτων ( Global keyword specidication ) Τα γενικά ορίσματα καθορίζουν πληροφορίες σχετικές με τη σχεδίαση wrapper/πυρήνα ως ολότητα. Επί του παρόντος τα γενικά ορίσματα που μπορούν να χρησιμοποιηθούν για να καθορίσουν προδιαγραφές είναι μόνο τα παρακάτω: Το όνομα του κυκλώματος του wrapper το οποίο θα δημιουργηθεί γύρω από τον πυρήνα. Το όνομα του προκαθορισμένου οριακού κυττάρου που θα πρέπει να τοποθετηθεί σε μια λειτουργική θύρα. Το παράδειγμα που ακολουθεί παρουσιάζει τη σύνταξη των γενικών ορισμάτων στο αρχείο CoreSpecList: global_keyword=value Περιγραφή θυρών wrapper ( Wrapper port specification ) Οι πληροφορίες της θύρας του wrapper παρέχουν λεπτομέρειες για τη θύρα εντός του wrapper. Οι πληροφορίες που καθορίζονται είναι οι ακόλουθες: 50

51 Η θύρα του πυρήνα σχετίζεται με τη θύρα του wrapper. Χαρακτηριστικά της θύρας του πυρήνα σχετίζονται με χαρακτηριστικά της θύρας του wrapper (πχ. λειτουργική/δοκιμαστική χρήση). Οι τιμές ενεργοποίησης των λειτουργιών εξέτασης ή κανονικής λειτουργίας της θύρας. Ο επιθυμητός τύπος των οριακών κυττάρων (WBR cell) τα οποία θα προστεθούν σε μια λειτουργική θύρα και προαιρετικά ο τρόπος διασύνδεσης του κυττάρου κατά την τμηματοποίηση του WBR σε παράλληλες εντολές. Δεδομένα για τα ονόματα των WSP και WPP του wrapper. Η περιγραφή της κάθε θύρας του wrapper ξεκινάει σε ξεχωριστή γραμμή στο CoreSpecList αρχείο. Στο σημείο αυτό να σημειώσουμε ότι για τις θύρες που χρειάζονται ένα WBR κύτταρο, η σειρά των θυρών στο αρχείο CoreSpecList καθορίζει και τη σειρά αυτών των κυττάρων στην WBR αλυσίδα. Η σύνταξη για τον καθορισμό μια θύρας του wrapper στο αρχείο CoreSpecList γίνεται όπως φαίνεται παρακάτω: port_name keyword1=value1 keyword2=value2 keyword3=value3 όπου: Πίνακας 11 Περιγραφή θυρών wrapper Όρισμα port_name keyword=value Λειτουργία Είναι το όνομα της θύρας του wrapper. Τα ζεύγη keywordx=valuex δίνουν πληροφορίες σχετικά με τη θύρα του wrapper και τον τρόπο σύνδεσής της στη θύρα του πυρήνα Ρύθμιση wrapper ( Wrapper configuration ) Η ρύθμιση του wrapper συνίσταται στις ακόλουθες πληροφορίες: Λεπτομέρειες αναφορικά με τον WIR και τον WBY (αριθμό δυαδικών ψηφίων και τιμών σύλληψης capture values). Μια λίστα εντολών οι οποίες πρόκειται να υλοποιηθούν και σχετικές πληροφορίες ( opcode, καταχωρητές δεδομέων που θα επιλεγούν κ.α. ) Πρέπει να συμπεριλάβουμε τη ρύθμιση του wrapper στην περιοχή εντός των φράσεων Wrapper_Inline. Πρόκειται για έναν οριοθέτη που καθορίζει τα όρια διαχωρισμού των πακέτων δεδομένων από το CoreSpecList αρχείο. Ένα παράδειγμα αυτής της μορφοποίησης φαίνεται ακολούθως: IOSpecifyData=Wrapper_Inline WIR keyword1=value1 keyword2=value2 WBY keyword1=value1 keyword2=value2 INSTRUCTION keyword1=value1 keyword2=value2 Wrapper_Inline 51

52 CoreSpecList Keywords Στη συνέχεια γίνεται μια περιγραφή των λέξεων κλειδιών (keywords) και των επιτρεπόμενων τιμών για τον καθορισμό της θύρας και των ρυθμίσεων του wrapper Global Keywords Τα Global Keywords και οι τιμές τους πρέπει να τοποθετούνται στην κορυφή του αρχείου CoreSpecList. Συνήθως χρησιμοποιούνται για να τροποποιήσουν την προκαθορισμένη συμπεριφορά του εργαλείου. Πίνακας 12 CoreSpecList - Global Keywords Keyword Τιμή Περιγραφή WRAPPER_MODULE_NAM E DEFAULT_WRAPPER_BAO UNDARY_CELL wrapper_level_nam e boundary_cell_name Αναθέτει το όνομα στο wrapper που πρόκειται να δημιουργηθεί. Αυτό δεν είναι το όνομα της οντότητας του πυρήνα αλλά του wrapper σε επίπεδο wrapper. Αν δεν καθοριστεί, η προεπιλεγμένη τιμή είναι core_name_ieee1500 όπου το core_name είναι το όνομα του πυρήνα που καθορίζεται στον Build 1500 Wrapper Η παρεχόμενη τιμή καθορίζει τον τύπο του οριακού κυττάρου του wrapper που θα χρησιμοποιηθεί σε μια λειτουργική θύρα αν ο χρήστης δεν έχει καθορίσει συγκεκριμένα το κύτταρο για εκείνη τη θύρα χρησιμοποιώντας το keyword wpr_cell. Αν ο χρήστης θέλει το ίδιο οριακό κύτταρο να χρησιμοποιηθεί για όλες τις λειτουργικές θύρες τότε μπορεί να καθορίσει αυτόν τον τύπο κυττάρου χρησιμοποιώντας αυτό το global keyword αντί να ορίζει ξεχωριστά κύτταρα Απαραίτητο/ Προαιρετικό Προαιρετικό Προαιρετικό 52

53 με το wpr_use. Αν δεν καθορισθεί η προεπιλεγμένη τιμή του οριακού κυττάρου είναι WC_SD1_COI Port Specification Keywords Ο καθορισμός της θύρας ορίζει κάθε επίπεδο εισόδου και εξόδου του wrapper καθώς επίσης και τον τρόπο διασύνδεσής της στον πυρήνα. Αυτό το τμήμα περιέχει επίσης μια περιγραφή των σημάτων εξέτασης του πυρήνα καθώς και τις εισόδους και εξόδους του wrapper που χρησιμοποιούνται για τη λειτουργία του wrapper (WSP/WPP). Η σειρά του καθορισμού των θυρών είναι ουσιώδης καθώς η κατασκευή του Οριακού Καταχωρητή του wrapper (WBR) βασίζεται στη σειρά με την οποία οι λειτουργικές θύρες εμφανίζονται στο αρχείο CoreSpecList, από την κορυφή μέχρι το τέλος. Υπάρχει μία ρύθμιση θύρας για κάθε θύρα. Η σχετικές εγγραφές έχουν την ακόλουθη μορφή: port_name keyword1=value1 keyword2=value2 keyword3=value3 Στη συνέχεια παραθέτουμε τις απαιτήσεις σύνταξης καθώς και οδηγίες αναφορικά με τη δήλωση των θυρών: Το όνομα της θύρας πρέπει να είναι το πρώτο στοιχείο της εγγραφής. Ένας κενός χαρακτήρας (white space) χρειάζεται μεταξύ των ζευγών keyword=value. Οι αναθέσεις των λέξεων κλειδιών μπορεί να καθοριστούν με οποιαδήποτε σειρά. Ο ακόλουθος πίνακας παρουσιάζει τις λέξεις κλειδιά για τον καθορισμό των θυρών που εφαρμόζονται σε λειτουργικές θύρες καθώς και τις επιτρεπόμενές τιμές τους: Πίνακας 13 Keywords for Functional Ports Keyword Τιμή Περιγραφή CORE_SYS_USE input output clock Καθορίζει την κατεύθυνση εισόδου/εξόδου και τη χρησιμότητα της θύρας στον πυρήνα. Οι λειτουργικές θύρες που δε σχετίζονται με το ρολόι (non-clock) θα συμπληρωθούν με ένα κύτταρο. Ασύγχρονα σήματα θέσης/επανάθεσης (set/reset) και λειτουργικά ρολόγια χρειάζονται ένα core_sys_use clock. Απαραίτητο/ Προαιρετικό Απαραίτητο 53

54 CORE_IN CORE_OUT WPR_CELL core pin name core pin name/ internal net name wrapper cell type Χρειάζεται αν το όνομα του ακροδέκτη στον πυρήνα είναι διαφορετικό από το όνομα της θύρας σε επίπεδο wrapper. Η θύρα στο κορυφαίο επίπεδο είναι συνδεδεμένη με την CFI είσοδο του οριακού κυττάρου του wrapper. Η CFO έξοδος του οριακού κυττάρου του wrapper είναι συνδεδεμένη σε αυτή του ακροδέκτη του πυρήνα. Αν δεν καθορισθεί η υπόθεση που γίνεται είναι ότι το όνομα της θύρας σε επίπεδο wrapper είναι το ίδιο με το όνομα του ακροδέκτη του πυρήνα. Χρειάζεται αν το όνομα του ακροδέκτη στον πυρήνα είναι διαφορετικό από το όνομα της θύρας σε επίπεδο wrapper. Η θύρα στο κορυφαίο επίπεδο είναι συνδεδεμένη με την CFO έξοδο του οριακού κυττάρου του wrapper. Η CFI είσοδος του οριακού κυττάρου του wrapper είναι συνδεδεμένη σε αυτή του ακροδέκτη του πυρήνα. Αν δεν καθορισθεί η υπόθεση που γίνεται είναι ότι το όνομα της θύρας σε επίπεδο wrapper είναι το ίδιο με το όνομα του ακροδέκτη του πυρήνα. Χρησιμοποιείται για να καθορίσει τον τύπο του WBR κυττάρου που θα χρησιμοποιηθεί από αυτή τη θύρα. Το όνομα πρέπει να ακολουθεί τις συμβάσεις του προτύπου IEEE Η προεπιλογή Προαιρετικό Προαιρετικό Προαιρετικό 54

55 είναι να εισάγει το WC_SD1_COI κύτταρο του wrapper Καθορισμός δοκιμών Εισόδων/Εξόδων του πυρήνα Τα σήματα ολίσθησης εισόδου/εξόδου άλλα σήματα του πυρήνα ( πχ scan-in, scan-out, test enable και scan enable) χρειάζεται επίσης να συνδεθούν σε μια θύρα επιπέδου wrapper. Αυτά θα μπορούσαν να συνδεθούν σε διαφορετικού wrapper επιπέδου θύρες βασισμένα στις εντολές με τις οποίες κατασκευάστηκαν. Κατά τη διάρκεια των παράλληλων εντολών, ένας ακροδέκτης ολίσθησης εισόδου/εξόδου του πυρήνα πιθανόν να συνδεθεί σε διαφορετικούς WPI ακροδέκτες. Κατά τη διάρκεια σειριακών εντολών, ο ίδιος ακροδέκτης ολίσθησης εισόδου/εξόδου θα μπορούσε να είναι εν σειρά συνδεδεμένος μαζί με άλλες αλυσίδες σάρωσης και να προσπελαύνεται μέσω των ακροδεκτών WSI και WSO του wrapper. Επομένως, θα μπορούσε να μην υπάρχει καθόλου θύρα του wrapper με ένα προς ένα αντιστοιχία με ολίσθηση εισόδου/εξόδου. Για τα σήματα ενεργοποίησης σάρωσης (scan enables), μόνο στην περίπτωση υλοποίησης σειριακών εντολών, οι ακροδέκτες στον πυρήνα συνδέονται με το WSR και δεν έχουν μια προκαθορισμένη θύρα επιπέδου wrapper. Κατά τη διάρκεια των παράλληλων INTEST εντολών, τα σήματα ενεργοποίησης σάρωσης (scan enables) του πυρήνα θα χρειαστούν για να λειτουργήσει ο πυρήνας. Στην περίπτωση αυτή θα δημιουργηθούν θύρες επιπέδου wrapper με το ίδιο όνομα όπως οι ακροδέκτες για τα σήματα ενεργοποίησης σάρωσης (scan enables) στον πυρήνα. Αν ένας ακροδέκτης του πυρήνα είναι για σήματα ενεργοποίησης σάρωσης (scan enables) κατά τη διάρκεια μιας τουλάχιστον εντολής INTEST, θα έχει μια συγκεκριμένη θύρα στο wrapper. Επομένως, αυτές οι θύρες επιπέδου wrapper θα δρουν σαν σήματα ενεργοποίησης σάρωσης (scan enables) του πυρήνα κατά τη διάρκεια αυτής της εντολής και άρα θα γίνουν τμήμα των ακροδεκτών του τμήματος Παράλληλης Εξέτασης του Wrapper (Wrapper Parallel Control - WPC). Κατά τη διάρκεια των σειριακών εντολών, οι ακροδέκτες για τα σήματα ενεργοποίησης σάρωσης (scan enables) του πυρήνα θα ελέγχονται από το τερματικό ShiftWR του WSP. Για τα σήματα ενεργοποίησης εξέτασης (test enable) του πυρήνα, τα οποία έχουν μια σταθερή λογική τιμή σε όλες τις μορφές λειτουργίας του πυρήνα, οι ακροδέκτες του πυρήνα θα συνδεθούν μόνο στον WIR και δε χρειάζονται μια συγκεκριμένη θύρα σε επιπέδο wrapper. Αυτό συμβαίνει και στην περίπτωση των παράλληλων και των σειριακών εντολών. Από τη στιγμή που η σύνδεση των εισόδων/εξόδων εξέτασης του πυρήνα με τις θύρες επιπέδου wrapper εξαρτώνται από τις εντολές και τη ρύθμιση του WBR, η σύμβαση που γίνεται είναι να περιγράφουμε αυτές τις εισόδους/εξόδους εξέτασης του πυρήνα σε γραμμές οι οποίες ξεκινούν με τη δεσμευμένη λέξη $TAM αντί να χρησιμοποιούμε το όνομα της θύρας του wrapper. Αυτό υποδηλώνει ότι αυτή η είσοδος/έξοδος εξέτασης θα συνδεθεί στον Μηχανισμό Εξέτασης Πρόσβασης (Test Access Mechanism - TAM), που αποτελείται από τα WPP και WSP, και ο τρόπος με τον οποίον συνδέεται εξαρτάται από τις εντολές και τη ρύθμιση του WBR. Η σύνδεση ενός ακροδέκτη του πυρήνα (καθορισμένου με τη λέξη κλειδί core_in) στον ΤΑΜ γίνεται αυτόματα από την εφαρμογή. Η οδήγηση των σημάτων επιτυγχάνεται είτε μέσα στον WIR, για σήματα ενεργοποίησης σάρωσης (scan enables) και σήματα ενεργοποίησης εξέτασης (test enable), είτε μέσα σε ένα ξεχωριστό στοιχείο του wrapper, το SCANMUX, για σήματα ολίσθησης εισόδου/εξόδου (scan-in/out). 55

56 Για τις εισόδους/εξόδους εξέτασης το όνομα του ακροδέκτη στον πυρήνα πρέπει να καθορίζεται με τις λέξεις κλειδιά core_in και core_out. Είναι σημαντικό να προσέξουμε ότι το όνομα της θύρας πρέπει να ξεκινά με $TAM. Επίσης, ένα αλφαριθμητικό επίθεμα πρέπει να χρησιμοποιείται ώστε να διακρίνονται οι θύρες που συνδέονται στον TAM. Οποιοδήποτε επίθεμα είναι αποδεκτό εφόσον επιτυγχάνεται η διάκριση των θυρών στο αρχείο speclist. Το ακόλουθο παράδειγμα αναφέρεται σε εγγραφές καθορισμού θυρών σε αλυσίδα σάρωσης: $TAM_SI1 core_test_use=scan_in core_in=si1 scan_chain=chain1 scan_clock={clk $TAM_S01 core_test_use=scan_out core_out=so1 scan_chain=chain1 Οι προηγούμενες σειρές περιγράφουν μια αλυσίδα σάρωσης πυρήνα με όνομα chain1 η οποία έχει ακροδέκτη ολίσθησης εισόδου (scan-in) με όνομα SI1 και ακροδέκτη ολίσθησης εξόδου (scan-out) με όνομα SO1. Το ρολόι που χρησιμοποιεί αυτή η αλυσίδα είναι το clk. Για τα ρολόγια του πυρήνα τα οποία χρησιμοποιούνται και για ολίσθηση (shift) και για σύλληψη/σύλληψη (capture), οι γραμμές που τα περιγράφουν θα πρέπει να περιέχουν ταυτόχρονα δηλώσεις core_sys_use=clock, που υπονοεί ότι χρησιμοποιείται για capture και core_test_use=clock, που υπονοεί ότι χρησιμοποιείται για σάρωση αντί να επαναλαμβάνεται η δήλωση σε ξεχωριστή γραμμή. Να σημειωθεί ότι κάθε ρολόι στον πυρήνα θα έχει μια αποκλειστική θύρα στο wrapper. Μπορεί να οριστεί διαφορετικό όνομα για τη θύρα του wrapper η οποία αντιστοιχεί στο ρολόι του πυρήνα. Ο ακόλουθος πίνακας δείχνει τις λέξεις κλειδιά που σχετίζονται με το ρολόι και τις τιμές που μπορούν να λάβουν. Πίνακας 14 Clock Keywords and Values Σκοπός core_sys_use core_test_use Ασύγχρονο set/reset ή λειτουργικό ρολόι Ρολόι μόνο για έλεγχο Ρολόι για κανονική λειτουργία και για έλεγχο Ασύγχρονο ρολόι μόνο για έλεγχο CORE_IN Συνάρτηση Δοκιμής ATPG clock sclk/sclkneg -SC/+SC Μη διαθέσιμο tclk/tclkneg -ES/+ES clock tclk/tclkneg -ES/+ES Μη διαθέσιμο sclk/sclkneg -SC/+SC core pin name Χρειάζεται για ακροδέκτες ολίσθησης εισόδου (scan in), ολίσθησης εξόδου (scan out) και για ενεργοποίηση εξέτασης (test enable) του πυρήνα. Το πώς αυτοί οι ακροδέκτες του πυρήνα συνδέονται με τις θύρες του wrapper εξαρτάται από τις εντολές που έχουν υλοποιηθεί και τις ρυθμίσεις του WBR. Αν μια αποκλειστική θύρα του wrapper Χρειάζεται για τις εισόδους του πυρήνα. 56

57 δημιουργηθεί για ένα σήμα ενεργοποίησης (enable), ως τμήμα του WPC, θα έχει το ίδιο όνομα με τον ακροδέκτη του πυρήνα. clock_a core_sys_use=clock core_test_use=sclk Η ανωτέρω δήλωση στο αρχείο CoreSpecList περιγράφει ένα λειτουργικό ρολόι «clock_a» στον πυρήνα το οποίο θα συνδεθεί στη θύρα clock_a του wrapper. clock_b core_test_use=tclk Η παραπάνω δήλωση στο αρχείο CoreSpecList περιγράφει ένα αποκλειστικό ρολόι εξέτασης «clock_b» στον πυρήνα το οποίο θα συνδεθεί στη θύρα «clock_b» του wrapper. Εκτός από το να επηρεάζουν τη δημιουργία αποκλειστικών θυρών στο wrapper που να είναι συνδεδεμένες στο ρολόι του πυρήνα οι πληροφορίες ρολογιού δεν επηρεάζουν σε κάτι άλλο το υλικό του wrapper με κανένα τρόπο. Στον ακόλουθο πίνακα φαίνονται οι λέξεις κλειδιά για την περιγραφή των θυρών που χρησιμοποιούνται για να περιγράψουν τoυς ακροδέκτες εξέτασης του πυρήνα και τις πιθανές τιμές που μπορούν να λάβουν. Πίνακας 15 Keywords για τους ακροδέκτες ελέγχου του πυρήνα Keyword Τιμή Περιγραφή CORE_TEST_USE scan_enable test_enable scan_in scan_out tclk tclkneg sclk sclkneg Καθορίζει την κατεύθυνση εισόδου/εξόδου μιας θύρας του πυρήνα. Για το σήμα ενεργοποίηση σάρωσης (scan_enable), το WSP ή το WPP θα έχει την εξέταση αυτού του ακροδέκτη κατά τη διάρκεια μια εντολής INTEST και θα λάβει την ενεργή τιμή του κατά τη διάρκεια όλων των λειτουργιών INTEST του πυρήνα και την τιμή κανονικής λειτουργίας του σε όλες τις άλλες εντολές. Η ενεργή του τιμή θα είναι το αντίθετο της τιμής που δίνεται από τη λέξη κλειδί functional_activestate. Αν η δήλωση functional_activestate απουσιάζει ένα σήμα ενεργοποίησης σάρωσης Απαραίτητο/ Προαιρετικό Απαραίτητο 57

58 CORE_IN CORE_OUT SCAN_CHAIN core pin name core pin name chain number or name (scan enable) θα λαμβάνεται σαν ενεργό σε υψηλό δυναμικό (high). Ένα σήμα ενεργοποίησης εξέτασης (test_enable) θα λαμβάνεται ομοίως. Αν ένα σήμα ενεργοποίησης εξέτασης (test_enable) έχει στατική τιμή σε όλες τις λειτουργίες του πυρήνα, τότε δε θα έχει αντίστοιχη θύρα στον wrapper αλλά θα ελέγχεται εξ ολοκλήρου από τον WIR. Να σημειωθεί ότι αυτές οι προκαθορισμένες τιμές μπορούν να τροποποιηθούν με τη λέξη κλειδί testmode_activestate. Χρειάζεται για τους ακροδέκτες ολίσθησης εισόδου(scan in) του πυρήνα και για τα σήματα ενεργοποίησης σάρωσης και ελέγχου (scan,test enable) του πυρήνα. Το πώς αυτοί οι ακροδέκτες συνδέονται στις θύρες του wrapper εξαρτάται από τις εντολές που υλοποιούνται και από τις ρυθμίσεις του WBR. Αν μια αποκλειστική θύρα του wrapper δημιουργηθεί για ένα σήμα ενεργοποίησης (enable), ως τμήμα του WPC, τότε θα έχει το ίδιο όνομα με τον ακροδέκτη του πυρήνα. Χρειάζεται για τους ακροδέκτες ολίσθησης εξόδου (scan out) του πυρήνα. Καθορίζει σε ποια θύρα ολίσθησης εισόδου/εξόδου ανήκει Χρειάζεται για τους ακροδέκτες ολίσθησης εισόδου (scan-in) του πυρήνα. Χρειάζεται για τους ακροδέκτες ολίσθησης εξόδου (scan-out) του πυρήνα. Χρειάζεται για τους ακροδέκτες ολίσθησης εισόδου (scan-in )και 58

59 SCAN_CLOCK TESTMODE_ ACTIVESTATE list of clock domains {instr1:test_fu nction,instr2:t est_function μια αλυσίδα σάρωσης. Από τη στιγμή που τα σήματα ολίσθησης εισόδου/εξόδου (scan-in, scan-out) μιας αλυσίδας θα εμφανιστούν σε διαφορετικές γραμμές, αυτή η λέξη κλειδί χρησιμοποιείται για να τα συσχετίσει. Αν δεν καθορίζεται, η προεπιλογή είναι να ομαδοποιούνται με βάση τη σειρά εμφάνισής τους στο αρχείο CoreSpecList. Θα πρέπει να χρησιμοποιηθούν μόνο ολίσθησης εισόδου/εξόδου ακροδέκτες του πυρήνα. Λίστα των τομέων ρολογιού του πυρήνα που τροφοδοτούν την αλυσίδα σάρωσης. Χρειάζεται μόνο σε εγγραφές που περιγράφουν είτε το σήμα ολίσθηση εισόδου (scan-in) είτε το σήμα ολίσθηση εξόδου (scanout) μιας αλυσίδας. Η προεπιλογή είναι το πρώτο ρολόι εξέτασης του αρχείου CoreSpecList. Επιτρέπει τη χειροκίνητη ρύθμιση των αναθέσεων της συνάρτηση εξέτασης ATPG στις θύρες του πυρήνα σε κάθε εντολή. Οι αναθέσεις αυτές τροποποιούν τις προκαθορισμένες αναθέσεις των συναρτήσεων εξέτασης ακροδεκτών. Εξ ορισμού οι αναθέσεις συναρτήσεων εξέτασης προκύπτουν από τη λέξη κλειδί core_test_use. Επιτρεπόμενες συναρτήσεις εξέτασης ολίσθησης εξόδου (scanout) του πυρήνα. Προαιρετικό Προαιρετικό 59

60 FUNCTIONAL_ ACTIVESTATE 0 1 προς ανάθεση είναι οι +/-{TI,SE. Η ανάθεση ενός TI σημαίνει ότι αυτή η θύρα θα συμπεριφέρεται σαν σήμα ενεργοποίησης εξέτασης (test enable) κατά τη διάρκεια αυτής της εντολής και το ή + υποδηλώνει την ενεργή τιμή (λογικό χαμηλό ή υψηλό αντίστοιχα). Μια θύρα που συμπεριφέρεται σαν σήμα ενεργοποίησης σάρωσης (scan enable) θα έπρεπε να έχει +/- SE. Η τιμή αυτής της θύρας θα έπρεπε να εμφανίζεται μόνο στην κανονική λειτουργία (μόνο για έγκυρες θύρες εξέτασης). Εξ ορισμού, κατά την κανονική λειτουργία η θύρα αυτή τοποθετείται στην αντίθετη τιμή από αυτή που χρειάζεται στην εξέταση. Προαιρετικό Καθορισμός WSP και WPP θυρών του Wrapper Το αρχείο CoreSpecList χρησιμοποιείται επίσης για να καθορίσει τις θύρες στο wrapper που είναι αποκλειστικά για τη λειτουργία του wrapper. Οι θύρες είναι η Σειριακή Θύρα του Wrapper (Wrapper Serial Port) και η Παράλληλη Θύρα του Wrapper ( Wrapper Parallel Port ). H Σειριακή Θύρα του Wrapper (Wrapper Serial Port) αποτελείται από το ShiftWR, CaptureWR, UpdateWR, WRSTN, SelectWIR, WSI και WSO. Από τη στιγμή που θα υλοποιηθεί ο WSP χρησιμοποιώντας αυτά τα προεπιλεγμένα ονόματα ακόμα κι αν ο WSP δεν καθορίζεται στο CoreSpecList, είναι καλή πρακτική αυτά τα ονόματα να μη χρησιμοποιούνται από μη-wsp θύρες του wrapper. Να σημειωθεί ότι οι θύρες WSP στον wrapper μπορούν να λάβουν ονόματα από το χρήστη, όμως σε αυτή την περίπτωση χρειάζεται η λέξη κλειδί wpr_use για να καθοριστεί η λειτουργικότητα WSP της θύρας. Η επόμενη σειρά αποτελεί παράδειγμα της ShiftWR θύρας στο wrapper. myshiftwr wpr_use=shiftwr Ο Παράλληλος Ελεγκτής του Wrapper ( Wrapper Parallel Control WPC ) καθώς και τα τερματικά Παράλληλης Εισόδου/Εξόδου του Wrapper (Wrapper Parallel In/Out - WPI/WPO) αποτελούν την Παράλληλη Θύρα του Wrapper ( Wrapper Parallel Port WPP ). Οι υποχρεωτικοί 60

61 ακροδέκτες είναι οι WPC_ShiftWR και WPC_CaptureWBR, με τον WPC_UpdateWBR ακροδέκτη να είναι προαιρετικός ανάλογα με το αν υπάρχουν οριακά κύτταρα του wrapper που να περιέχουν κύτταρα μνήμης. Να σημειωθεί ότι οι ακροδέκτες WRCK και WRSTN του WSP χρησιμοποιούνται και κατά τις παράλληλες εντολές. Όπως στην περίπτωση των ακροδεκτών WSP, έτσι και εδώ ο χρήστης μπορεί να καθορίσει ονόματα που θα χρησιμοποιηθούν στους WPC ακροδέκτες, με την εντολή wpr_use να καθορίζει την λειτουργικότητα της θύρας. Αν οι WPC ακροδέκτες δεν προσδιορίζονται, οι θύρες του wrapper θα δημιουργηθούν με τα προεπιλεγμένα ονόματα, αν φυσικά υπάρχει έστω και μια παράλληλη εντολή στο αρχείο CoreSpecList. Αν υλοποιούνται παράλληλες INTEST εντολές κάποια από τα σήματα εξέτασης του πυρήνα ίσως γίνουν θύρες του wrapper, ως τμήμα του WPC. Όταν περιγράφονται παράλληλες εντολές, οι Παράλληλες Θύρες Εισόδου/Εξόδου του Wrapper ( Wrapper Parallel In/Out - WPI/WPO ) είναι υποχρεωτικές εφόσον το πλάτος του διαύλου εξέτασης που χρησιμοποιείται για την περιφερειακή πρόσβαση στον WBR και στις αλυσίδες σάρωσης του πυρήνα δε μπορούν να καθορισθούν διαφορετικά. Χρησιμοποιώντας την λέξη κλειδί wpr_use μπορούμε να καθορίσουμε αυτού του είδους την πληροφορία. Στη συνέχεια δίνεται ένα παράδειγμα περιγραφής των θυρών WPI και WPO του wrapper. WPI[0] wpr_use=parallel_in WPI[1:9] wpr_use=parallel_in WPO[0] wpr_use=parallel_out WPO[1:9] wpr_use=parallel_out Στον ακόλουθο πίνακα φαίνονται οι λέξεις κλειδιά για τις ρυθμίσεις θύρας που εφαρμόζονται στους ακροδέκτες των WSP και WPP του wrapper καθώς και τις επιτρεπόμενες τιμές τους. Πίνακας 16 Keyword for WSP and WPP Ports on the Wrapper Keyword Τιμή Περιγραφή WPR_USE selectwir shiftwr updatewr capturewr WRCK WRSTN WSI WSO WPC_ShiftWBR WPC_CaptureWBR WPC_UpdateWBR parallel_in parallel_out Περιγράφει την WSP/WPP λειτουργικότητα αυτής της θύρας του wrapper. Οι τελευταίες πέντε τιμές είναι μέρος των τερματικών παράλληλης θύρας του wrapper. Να σημειωθεί ότι το WRCK και τα ρολόγια του πυρήνα είναι μέρη του WSC και WPC. Απαραίτητο/ Προαιρετικό Χρειάζεται για τους ακροδέκτες των Παράλληλων Εισόδων/Εξόδων του Wrapper Λέξεις Κλειδιά Ρύθμισης του Wrapper (Wrapper Configuration Keywords) Οι λέξεις κλειδιά ρύθμισης του wrapper παρέχουν πληροφορίες σχετικά με τον WIR, τον WBY και τις υλοποιημένες εντολές. Τα περιεχόμενα του τμήματος ρύθμισης του wrapper ορίζονται στην αρχή από τη συμβολοσειρά IOSpecifyData=Wrapper_Inline και στο τέλος από την Wrapper_Inline. Πρέπει να χρησιμοποιήσουμε ξεχωριστές εγγραφές ανά γραμμή για τους WIR, WBY και για κάθε εντολή που υπάρχει στο αρχείο CoreSpecList. 61

62 Επίσης, πρέπει να χρησιμοποιήσουμε τη δεσμευμένη λέξη WIR για να καθορίσουμε τις πληροφορίες που αφορούν τον WIR. Αν μια εγγραφή γραμμής ξεκινάει με WIR τότε οποιοδήποτε ζεύγος keyword=value αναφέρεται στον WIR. Ομοίως η δεσμευμένη λέξη WBY χρησιμοποιείται για να καθορίσει τις πληροφορίες που αφορούν τον WBY. Αν μια εγγραφή γραμμής ξεκινάει με WBY τότε οποιοδήποτε ζεύγος keyword=value αναφέρεται στον WBY. H διαδικασία καθορισμού των πληροφοριών για τον WBY είναι ίδια με αυτήν για τον WIR απλά χρησιμοποιώντας τη λέξη κλειδί WBY. Επιπλέον, πρέπει να καθορίσουμε τις εντολές που θα υλοποιηθούν χρησιμοποιώντας τη λέξη κλειδί INSTRUCTION. Για κάθε εντολή, καθορίζουμε τον αντίστοιχο κωδικό (opcode) και τους καταχωρητές (WBR, αλυσίδες σάρωσης πυρήνα κλπ) που θα τοποθετηθούν στο WSI-WSO ή WPI- WPO μονοπάτι κατά την εκτέλεση της εντολής. Κάθε εντολή ξεκινάει σε ξεχωριστή γραμμή. Αν οι εντολές δεν καθορίζονται χρησιμοποιώντας τη λέξη κλειδί INSTRUCTION τότε υλοποιείται μια σειρά από προεπιλεγμένες εντολές. Οι διαθέσιμες λέξεις κλειδιά για τις εντολές είναι OPCODE, REGISTER_ACCESS και SEGMENTS. Στη συνέχεια δίνεται ένα παράδειγμα τμήματος ρυθμίσεων του wrapper και στον πίνακα που ακολουθεί οι διαθέσιμες λέξεις κλειδιά για τη ρύθμιση του wrapper και οι δυνατές τιμές τους. IOSpecifyData=Wrapper_Inline WIR keyword1=value1 keyword2=value2 WBY keyword1=value1 keyword2=value2 INSTRUCTION keyword1=value1 keyword2=value2 Wrapper_Inline Πίνακας 17 Λέξεις Κλειδιά Ρυθμίσεων του Wrapper Keyword Τιμή Περιγραφή LENGTH CAPTURE integer comma separated list of binary values Περιγράφει το μήκος των καταχωρητών WIR και WBY. Το προεπιλεγμένο μέγεθος είναι 1 δυαδικό ψηφίο (bit). Αν δεν καθορίζεται τιμή για τον WIR τότε το μήκος του αποφασίζεται από τις εντολές που πρέπει να υλοποιηθούν. Το προεπιλεγμένο μέγεθος του WIR είναι 2 δυαδικά ψηφία (bits). Περιγράφει τα δεδομένα που θα συλληφθούν (captured) από τους WIR και WBY. Καθορίζουμε σταθερές τιμές που θα έπρεπε να συλληφθούν (captured) από τους WIR και WBY. Από προεπιλογή κανένα δεδομένο δε συλλαμβάνεται Απαραίτητο/ Προαιρετικό Προαιρετικό Προαιρετικό 62

63 OPCODE SEGMENTS string of binary values comma separated list of WPI terminal names (captured) από τους WIR και WBY. Καθορίζει τις δυαδικές τιμές για τους κωδικούς εντολών(opcode). Αν ο κωδικός δεν καθορίζεται τότε θα ανατεθούν οι προεπιλεγμένες τιμές. Ο κωδικός με όλα μηδενικά είναι δεσμευμένος για την WS_BYPASS. Καθορίζει τη λίστα των WPI ακροδεκτών που θα χρησιμοποιηθούν για την παράλληλη εντολή. Αυτό αντιστοιχεί στον αριθμό των παράλληλων αλυσίδων που χρησιμοποιούνται κατά την εκτέλεση της εντολής. Η προεπιλογή είναι να χρησιμοποιούνται όλοι οι WPI ακροδέκτες. Αυτή η λέξη κλειδί είναι διαθέσιμη μόνο για παράλληλες εντολές. Προαιρετικό Προαιρετικό Τα παραδείγματα που ακολουθούν δείχνουν κάποια σενάρια ρυθμίσεων του wrapper με λέξεις κλειδιά. Λειτουργική Θύρα (Functional Port) a[1:0] core_sys_use=input H γραμμή αυτή στο αρχείο CoreSpecList περιγράφει δύο λειτουργικούς ακροδέκτες (a[1] και a[0]) στο wrapper οι οποίοι είναι ακροδέκτες εισόδου του πυρήνα. Εφόσον δεν υπάρχει λέξη κλειδί core_in, υποτίθεται ότι ο πυρήνας έχει δύο ακροδέκτες με ονόματα a[1] και a[0]. Αυτή η γραμμή θα έχει ως αποτέλεσμα τη δημιουργία δύο θυρών στο wrapper με ονόματα a[1] και a[0] που θα συνδεθούν στους δύο ομώνυμους ακροδέκτες του πυρήνα αντίστοιχα. Επίσης, από τη στιγμή που δεν καθορίζεται καμία λέξη κλειδί wpr_cell το προεπιλεγμένο WBR κύτταρο θα τοποθετηθεί ανάμεσα στη θύρα του wrapper και τη θύρα του πυρήνα. b[1:0] core_sys_use=input wpr_cell=wc_sd1_cii Η γραμμή αυτή περιγράφει δύο θύρες στον wrapper με ονόματα b[1] και b[0] που συνδέονται στους ομώνυμους ακροδέκτες του πυρήνα. Ένα WBR κύτταρο τύπου WC_SD1_CII θα χρησιμοποιηθεί για να τις συνδέσει στον πυρήνα. Σήμα Εξέτασης (Test Signal) 63

64 $TAM_se core_test_use=scan_enable core_in=scan_en H γραμμή αυτή στο αρχείο CoreSpecList περιγράφει ένα σήμα ενεργοποίησης σάρωσης (scan enable) του πυρήνα με όνομα ακροδέκτης του πυρήνα scan_en. Αν πρόκειται να υλοποιηθούν παράλληλες εντολές INTEST, τότε θα υπάρξει μια θύρα του wrapper με όνομα scan_en, διαφορετικά ο ακροδέκτης του πυρήνα θα ελέγχεται μέσω των WPI ακροδεκτών αντί να έχει αποκλειστική θύρα για το σκοπό αυτό στον wrapper. $TAM_SE1 core_test_use=scan_enable functional_activestate=0 \ core_in=scan_en 1 testmode_activestate={wp_extest:-ti Αυτή η γραμμή στο CoreSpecList αρχείο ένα σήμα ενεργοποίησης σάρωσης (scan enable) του πυρήνα με όνομα της θύρας του wrapper (ίδιο με το όνομα του ακροδέκτη του πυρήνα) scan_en και τιμή στην κανονική λειτουργία 0. Το σήμα αυτό χρειάζεται επίσης μια στατική (static) τιμή 0 κατά την WP_EXTEST εντολή. Από τη στιγμή που η τιμή στην κανονική λειτουργία για τη θύρα είναι 0 τότε είναι ένα σήμα ενεργοποίησης σάρωσης (scan enable) που είναι ενεργό όταν είναι σε υψηλό δυναμικό (active high). $TAM_SI[0:19] core_test_use=scan_in core_in=si[0:19] \ scan_chain=chain[0:19] scan_clock={clk $TAM_SO[0:19] core_test_use=scan_out core_out=so[0:19] scan_chain=chain[0:19] Οι προηγούμενες δύο γραμμές περιγράφουν 20 αλυσίδες σάρωσης του πυρήνα με ονόματα chain[0] έως chain[19] και SI[0] έως SI[19] ως ακροδέκτες ολίσθησης εισόδου (scan-in) και SO[0] έως SO[19] ως ακροδέκτες ολίσθησης εξόδου (scan-out). To ρολόι που χρησιμοποιείται για να ελέγξει αυτές τις αλυσίδες είναι το clk. Περιγραφή λειτουργικού ρολογιού και για δοκιμή clock_a core_sys_use=clock core_test_use=tclk core_in=clk H γραμμή αυτή στο αρχείο CoreSpecList υποδηλώνει ότι υπάρχει ένας ακροδέκτης clk στον πυρήνα ο οποίος χρησιμοποιείται και ως ρολόι κανονικής λειτουργίας και ως σήμα ολίσθησης/σύλληψης (shift/capture) κατά τη διάρκεια του εξέτασης. H γραμμή αυτή στο αρχείο CoreSpecList έχει ως αποτέλεσμα μια θύρα του wrapper με όνομα clock_a να συνδεθεί απευθείας στον ακροδέκτη clk του πυρήνα. Να σημειωθεί ότι αυτή η γραμμή πρέπει να εμφανίζεται μόνο στο CoreSpecList αρχείο. Δε χρειάζονται δύο ξεχωριστές γραμμές για το clock_a, τη λέξη κλειδί core_sys_use και τη λέξη κλειδί core_test_use. Προεπιλεγμένη τμηματοποίηση κατά τις παράλληλες εντολές INSTRUCTION NAME=WP_INTEST Όλοι οι WPI WPO ακροδέκτες τα οποία έχουν οριστεί στο CoreSpecList αρχείο θα χρησιμοποιηθούν για να προσπελάσουν τον WBR ή/και τις αλυσίδες σάρωσης κατά την εντολή WP_INTEST. INSTRUCTION NAME=WP_INTEST SEGMENTS={wpi[0],wpi[1] 64

65 Η ανωτέρω γραμμή δείχνει ένα άλλο παράδειγμα στο οποίο η WP_INTEST εντολή ορίζεται μόνο στο CoreSpecList αρχείο. Αντί να χρησιμοποιηθούν όλοι οι ακροδέκτες WPI-WPO, θα χρησιμοποιηθούν μόνο οι wpi{0 και wpi{1 και οι αντίστοιχοι WPO ακροδέκτες για να προσπελάσουν τον WBR ή/και τις αλυσίδες σάρωσης κατά την εντολή WP_INTEST. Στο ακόλουθο σχήμα φαίνεται ένα παράδειγμα ενός CoreSpecList αρχείου. Πρόκειται για ένα αρχείο κειμένου το οποίο παρέχει πληροφορίες σχετικά με τον πυρήνα (συμπεριλαμβανομένων πληροφοριών εξέτασης) καθώς επίσης και ρυθμίσεις του wrapper που πρόκειται να εισαχθεί. ## ## Sample CoreSpecList ## File created 1/28/2005 ## ## Global keywords DEFAULT_WRAPPER_BOUNDARY_CELL=WC_SD1_COI WRAPPER_MODULE_NAME=CoreA_IEEE1500 #### Functional pins on the core a[1:0] core_sys_use=input b[1:0] core_sys_use=input out[2] core_sys_use=output wpr_cell=wc_sd1_cii out[1 core_sys_use=output wpr_cell=wc_sd1_cii out[0 core_sys_use=output wpr_cell=wc_sd1_cii clk core_sys_use=clock core_test_use=tclk #### Core test pins $TAM TE core_test_use=test_enable core_in=test_en $TAM_SE core_test_use=scan_enable core_in=scan_en functional_activestate=0 $TAM_SI1 core_test_use=scan_in core_in=si1 scan_chain=chain1 scan_clock={clk $TAM_S01 core_test_use=scan_out core_out=so1 scan_chain=chain1 $TAM_SI2 core_test_use=scan_in core_in=si2 scan_chain=chain2 scan_clock={clk $TAM_SO2 core_test_use=scan_out core_out=so2 scan_chain=chain2 #### Pins required for wrapper operation WSI wpr_use=wsi WSO wpr_use=wso SelectWIR wpr_use=selectwir ShiftWR wpr_use=shiftwr CaptureWR wpr_use=capturewr UpdateWR wpr_use=updatewr WRCK wpr_use=wrck WRST wpr_use=wrstn WPI[2] wpr_use=parallel_in WPI[1] wpr_use=parallel_in WPI[0] wpr_use=parallel_in WPO[2] wpr_use=parallel_out WPO[1 wpr_use=parallel_out WPO[0] wpr_use=parallel_out #### Section describing wrapper functionality IOSpecifyData=WRAPPER_Inline WIR LENGTH=3 CAPTURE={0,0,0 65

66 WBY LENGTH=1 #### Describe the instructions to be implemented. #### If an instruction required by the standard is#### is not listed below, it #### will be implemented anyway. INSTRUCTION NAME=WP_EXTEST OPCODE=011 INSTRUCTION NAME=WS_INTEST_SCAN INSTRUCTION NAME=WP_INTEST SEGMENTS={WPI[0],WPI[1],WPI[2] WRAPPER_Inline Εικόνα 3-3 Παράδειγμα CoreSpecList αρχείου Βιβλιοθήκη Τεχνολογίας IEEE 1500 Wrapper Σύμφωνα με το πρότυπο IEEE 1500 κάθε λειτουργική θύρα του πυρήνα πρέπει να συνδεθεί σε ένα οριακό κύτταρο του wrapper. Δύο μέθοδοι διατίθενται για να καθορίσουμε ένα WBR κύτταρο σε μια θύρα: Καθορίζουμε έναν τύπο WBR κυττάρου για όλες τις λειτουργικές θύρες του πυρήνα χρησιμοποιώντας το Global Keyword DEFAULT_WRAPPER _BOUNDARY_CELL. Καθορίζουμε τον τύπο του WBR κυττάρου για κάθε θύρα με τη λέξη κλειδί wpr_cell. Αν καθορισθούν τα προεπιλεγμένα κύτταρα για όλες τις θύρες καθώς και ένα ξεχωριστό κύτταρο για μια συγκεκριμένη θύρα τότε ο τύπος κυττάρου που παρέχεται με τη λέξη κλειδί wpr_cell σε αυτή τη θύρα αντικαθιστά τον προεπιλεγμένο τύπο κυττάρου. Το ακόλουθο σχήμα δείχνει τη διεπαφή ενός WBR κυττάρου, ανεξαρτήτως του τύπου. Εικόνα 3-4 Διεπαφή WBR κυττάρου Στη συνέχεια παρατίθενται οι ακροδέκτες που συναντώνται στην κοινή διεπαφή: CFI - Για ένα WBR κύτταρο σε μια λειτουργική θύρα εισόδου του πυρήνα το CFI δέχεται δεδομένα από τον αντίστοιχο ακροδέκτη Λειτουργικής Εισόδου του Wrapper (Wrapper Functional Input WFI pin). Για ένα WBR κύτταρο σε μια λειτουργική θύρα εξόδου του πυρήνα το CFI δέχεται δεδομένα από το λειτουργικό ακροδέκτη του πυρήνα. 66

67 CFO - Για ένα WBR κύτταρο σε μια λειτουργική θύρα εισόδου του πυρήνα το CFO συνδέεται στη λειτουργική είσοδο του πυρήνα. Για ένα WBR κύτταρο σε μια λειτουργική θύρα εξόδου του πυρήνα το CFO συνδέεται στην αντίστοιχη Λειτουργική Έξοδο του Wrapper (Wrapper Functional Output WFO). CTI, CTO Είναι ακροδέκτες στο μονοπάτι ολίσθησης (shift path) του WBR. Ο ακροδέκτης CTI συνδέεται στο CTO του προηγούμενου WBR κυττάρου ή στο WSI, ενώ το CTO συνδέεται στο CTI του επόμενου WBR κυττάρου ή στο WSO. WRCK Πρόκειται για ένα ρολόι το οποίο δεν ελέγχεται από πύλες (ungated) και συνδέεται απευθείας στον αντίστοιχο ακροδέκτη του wrapper. Τα ακόλουθα είναι σήματα έλεγχου από τον WIR: o Mode Όταν το set είναι σε υψηλό δυναμικό (logic high), επιτρέπει τα δεδομένα που βρίσκονται στο WBR κύτταρο να εφαρμοστούν στην έξοδο CFO. Η αντίθετη τιμή επιτρέπει στο CFI δεδομένα να εφαρμοστούν στο CFO. Για τα WBR κύτταρα σε λειτουργικές θύρες εισόδου- σε σχέση με τον τύπο κυττάρου- αυτός ο ακροδέκτης συνδέεται είτε στον ακροδέκτη Mode_0 είτε στον Mode_1 του WIR. Για τα WBR κύτταρα στις λειτουργικές θύρες εξόδου, αυτός ο ακροδέκτης μπορεί να συνδεθεί στον ακροδέκτη Mode_0 είτε στον Mode_1 του WIR. o ShiftEn (Προαιρετικό) Όταν είναι σε υψηλό δυναμικό, επιτρέπει το WBR κύτταρο να ανταποκριθεί στο σήμα σύλληψης (capture event). Είναι συνδεδεμένο στον ακροδέκτη WBR_capture του WIR. Ως προαιρετικό εξαρτάται από τον τύπο του κυττάρου καθώς το WC_COI_G[0/1] κύτταρο δε χρειάζεται ξεχωριστό CaptureEn σήμα. o UpdateEn (Προαιρετικό) Μια λογική τιμή σε υψηλό δυναμικό επιτρέπει στο WBR κύτταρο να ανταποκριθεί στο σήμα ανανέωσης (update event). Είναι παρόν μόνο αν το WBR κύτταρο έχει ένα στοιχείο μνήμης. Συνδέεται στον ακροδέκτη WBR_update του WIR. o SafeEn (Προαιρετικό) Αυτός ο ακροδέκτης χρειάζεται μια λογική τιμή υψηλού δυναμικού ώστε το WBR κύτταρο να εφαρμόσει ασφαλή δεδομένα που παρέχονται μέσω σταθερών συνδέσεων του υλικού (hard-wired). Ο ακροδέκτης είναι παρών στη διεπαφή του κυττάρου μόνο αν το WBR κύτταρο μπορεί να παράσχει ασφαλή (Guarded) δεδομένα. Αν το WBR κύτταρο είναι σε μια είσοδο του πυρήνα, αυτός ο ακροδέκτης συνδέεται στον WBR_safe_in ακροδέκτη, διαφορετικά συνδέεται στην WBR_safe_out ακροδέκτη του WIR. Να σημειωθεί ότι από τη στιγμή που η λογική για τα προηγούμενα σήματα εισόδου παράγεται εντός του WIR, το υλικό του WBR κυττάρου απλουστεύεται. Κάθε WBR κύτταρο περιέχει ένα Shift (πιθανότατα και ένα Update) στοιχείο μνήμης και κάποιους πολυπλέκτες (MUXes) για να επιλέγει ανάμεσα στην ολίσθηση (shift), στην σύλληψη (capture), στην ανανέωση (update) και σε μονοπάτια κανονικής λειτουργίας εντός του WBR κυττάρου. Ανάλογα με τον τύπο του κυττάρου μπορεί επίσης να περιέχει και κάποιες άλλες συνδυαστικές πύλες. Υπάρχουν τέσσερεις λειτουργίες του WBR: normal mode, inward facing, outward facing και non-hazardous mode. Στον πίνακα που ακολουθεί φαίνονται οι τιμές που εφαρμόζονται από τους ακροδέκτες εξέτασης του WIR στα WBR κύτταρα σε κάθε μια από τις λειτουργίες. Ανάλογα με τον τύπο του κυττάρου και το αν το κύτταρο βρίσκεται στην είσοδο ή στην έξοδο του πυρήνα, τα σήματα λειτουργίας και ασφαλών δεδομένων είναι αντίστοιχα συνδεδεμένα. 67

68 Πίνακας 18 Παραγόμενες τιμές από τον WIR σε διάφορα Mode λειτουργίας Εντολές WBR Λειτουργία Mode Signal to WBR cells Mode 0 Mode 1 Mode 2 WBR_ Safe_in WBR_ Safe_out WS_BYPASS Normal WS_INTEST_SCAN WP_INTEST WS_EXTEST, WP_EXTEST Inward facing Outward facing Τα WBR κύτταρα τα οποία είναι σε εισόδους και υποστηρίζουν την παροχή δεδομένων που παρέχονται μέσω σταθερών συνδέσεων του υλικού (hard-wired) ασφαλών (ή προστατευμένων guarded) στον πυρήνα έχουν τους δικούς τους SafeEn ακροδέκτες συνδεδεμένους στον WBR_safe_in ακροδέκτη του WIR. Ομοίως, τα WBR κύτταρα τα οποία είναι σε εξόδους και υποστηρίζουν την παροχή δεδομένων που παρέχονται μέσω σταθερών συνδέσεων του υλικού (hard-wired) ασφαλών (ή προστατευμένων guarded) στον πυρήνα έχουν τους δικούς τους SafeEn ακροδέκτες συνδεδεμένους στον WBR_safe_out ακροδέκτη του WIR. Οι ακροδέκτες ShiftEn, CaptureEn και UpdateEn σε ένα WBR κύτταρο είναι συνδεδεμένοι στους αντίστοιχους ακροδέκτες του WIR WBR_shift, WBR_capture και WBR_update. Όταν το WBR κύτταρο χρειάζεται να διατηρήσει την κατάστασή του, όλοι αυτοί οι ακροδέκτες είναι ανενεργοί (διατηρούνται σε κατάσταση χαμηλού δυναμικού). Ο ακόλουθος Πίνακας 19 Σύνδεση ακροδέκτη εξέτασης του WIR στον ακροδέκτη Mode δείχνει πώς τα σήματα λειτουργίας του Πίνακας 18 Παραγόμενες τιμές από τον WIR σε διάφορα Mode λειτουργίας συνδέονται σε ένα WBR κύτταρο ανάλογα με τον τύπο και τη θέση του κυττάρου. Να σημειωθεί ότι ο ακροδέκτης Mode σε ένα WBR κύτταρο λαμβάνει μόνο ένα από τα τρία (3) αυτά πιθανά σήματα λειτουργίας. Για παράδειγμα ένα WC_SD1_COI κύτταρο στην είσοδο του πυρήνα θα έχει τον ακροδέκτη Mode συνδεδεμένο στον ακροδέκτη Mode_1 του WIR. Ένα WC_SD1_COI κύτταρο στην έξοδο του πυρήνα θα έχει τον ακροδέκτη Mode συνδεδεμένο στον ακροδέκτη Mode_2 του WIR. Πίνακας 19 Σύνδεση ακροδέκτη εξέτασης του WIR στον ακροδέκτη Mode Όνομα/Τύπος WBR κυττάρου Θέση του WBR κυττάρου Είσοδος Πυρήνα Έξοδος Πυρήνα WC_SD1_COI Mode_1 Mode_2 WC_SD1_CII Mode_0 Mode_0 Αναφορά Εικόνα 3-5 WC_SD1_COI Εικόνα 3-6 WC_SD1_CII Η προεπιλεγμένη βιβλιοθήκη για wrapper κύτταρα παρέχεται μαζί με τον Encounter Test. Η βιβλιοθήκη αυτή είναι σε μορφή Verilog, ανεξάρτητη από την τεχνολογία. Ο τύπος των κυττάρων φαίνεται στον ακόλουθο πίνακα και στη συνέχεια ακολουθεί η περιγραφή για κάθε τύπο κυττάρου. 68

69 Πίνακας 20 Υποστηριζόμενοι τύποι WBR κυττάρων Όνομα/Τύπος WBR κυττάρου WC_SD1_COI WC_SD1_CII Περιγραφή κυττάρου Ένα στοιχείο μνήμης στο μονοπάτι ολίσθησης είναι αποκλειστικό για τη λειτουργία του wrapper για σύλληψη (capturing) από το CFO. Ένα στοιχείο μνήμης στο μονοπάτι ολίσθησης είναι αποκλειστικό για τη λειτουργία του wrapper για σύλληψη (capturing) από το CFI. Αναφορά Εικόνα 3-5 WC_SD1_COI Εικόνα 3-6 WC_SD1_CII Η λέξη κλειδί wpr_cell στο αρχείο CoreSpecList επιτρέπει τον καθορισμό του κάθε τύπου κυττάρου σε κάθε ακροδέκτη του πυρήνα. Ο τύπος του WBR κυττάρου θα πρέπει να ταιριάζει με τους τύπους του παραπάνω πίνακα. Ο Build 1500 Wrapper επιλέγει τους αντίστοιχους ορισμούς κυττάρων από τη βιβλιοθήκη. Αν ένας τύπος κυττάρου δεν είναι ορισμένος, τότε χρησιμοποιείται ο τύπος κυττάρου WC_SD1_COI για όλες τις λειτουργικές θύρες του πυρήνα. Περιγραφή των WBR κυττάρων Τα ακόλουθα σχήματα περιγράφουν τα υποστηριζόμενα WBR κύτταρα. Όλοι οι ακροδέκτες οι οποίοι έχουν επισημανθεί στο σχήμα είναι παρόντες στη διεπαφή του WBR κυττάρου. Εικόνα 3-5 WC_SD1_COI 69

70 Εικόνα 3-6 WC_SD1_CII 3.3 Εκτέλεση της εντολής Build 1500 Wrapper Το πρόγραμμα εισαγωγής του wrapper μπορεί να εκτελεστεί είτε μέσω εντολών είτε μέσα από το γραφικό περιβάλλον διεπαφής. Μπορούμε να χρησιμοποιήσουμε οποιαδήποτε μέθοδο για να καλέσουμε το Build 1500 Wrapper μετά την ολοκλήρωση των προαπαιτούμενων ώστε να δώσουμε τις εισόδους. Στη συνέχει δίνεται ένα παράδειγμα της εντολής build_1500_wrapper: build_1500_wrapper corespeclistin=corea.corespeclist innetlist=corea.v \ corename=corea writemic=core synlibs="typical.lib,tpz973gtc.lib" techmap=yes Η παραπάνω εντολή μπορεί να χρησιμοποιηθεί για να δημιουργήσει έναν IEEE 1500 wrapper γύρω από των πυρήνα με όνομα corea. Το αρχείο με τον κατάλογο των κόμβων (netlist) για το coreα είναι το corea.v και το CoreSpecList αρχείο είναι το corea.corespeclist. Το CoreSpecList αρχείο θα μπορούσε να περιέχει μια περιγραφή των εισόδων/εξόδων του corea, καθώς επίσης και ρυθμίσεις του wrapper. Η επιλογή writemic=core δίνει τη δυνατότητα να δημιουργήσουμε ένα Macro Isolatio Control (MIC) αρχείο που περιγράφει τις οριακές εισόδους/εξόδους και τις απαιτήσεις απομόνωσης του πυρήνα corea που μπορούν να χρησιμοποιηθούν εν συνεχεία από άλλα εργαλεία του Encounter Test όπως το Verify Core Isolation. Η επιλογή techmap=yes έχει ως αποτέλεσμα η δομή του wrapper γύρω από τον πυρήνα corea να συντίθεται χρησιμοποιώντας τις προκαθορισμένες βιβλιοθήκες τεχνολογίας με την επιλογή synlibs. Αν το global keyword WRAPPER_MODULE_NAME δεν έχει καθορισθεί μέσα στο αρχείο corea.corespeclist τότε ο wrapper θα έχει ως όνομα το προκαθορισμένο corea_ieee1500. Ένα αρχείο εξόδου με όνομα corea_ieee1500.v θα παραχθεί και θα περιέχει τον κατάλογο με τους κόμβους του wrapper καθώς και του πυρήνα corea. Το παραγόμενο MIC αρχείο θα είναι το corea.mic. Κάποιες από τις πιο κοινές παραμέτρους εντολών για την εντολή Build 1500 Wrapper φαίνονται ακολούθως. [corename=string] Καθορίζει το όνομα του πυρήνα ο οποίος θα περικυκλωθεί από ένα IEEE 1500 wrapper. 70

71 corespeclistin=infilename [innetlist=infilename] [synlibs=infilename] [techmap=yes no] [writemic=core wrapper none] Το καθορισμένο όνομα πρέπει να ταιριάζει με το κορυφαίο στοιχείο στη σχεδίαση που δίνεται ως είσοδος. Καθορίζει το όνομα του αρχείου CoreSpecList που θα εισαχθεί. Καθορίζει το/τα αρχείο/-α εισόδου σε Verilog ή VHDL. Το αρχείο/-α συνίσταται σε ένα κύκλωμα στο οποίο έχουν προστεθεί αλυσίδες σάρωσης (scan inserted netlist) και το οποίο θα περικυκλωθεί από έναν IEEE 1500 Wrapper. Καθορίζει το αρχείο βιβλιοθήκης τεχνολογίας. Μπορούμε να καθορίσουμε πολλαπλά αρχεία χωρίζοντάς τα με κόμμα (,). Καθορίζει αν θα εφαρμοστεί αντιστοίχιση τεχνολογίας στη δομή του IEEE 1500 wrapper. Η σχεδίαση του πυρήνα δε θα αντιστοιχηθεί. Ορίζουμε no για να παράγουμε μια μη-αντιστοιχισμένη περιγραφή RTL. Επιλέγοντας ένα από τα διαθέσιμα δηλώνουμε το όριο για το οποίο θέλουμε να παράγουμε το Macro Isolation Control (MIC) αρχείο Προαπαιτούμενα για την εντολή Build 1500 Wrapper Έχουμε πλέον ολοκληρώσει τις απαιτήσεις για την ανάπτυξη των εισόδων της εντολής Build 1500 Wrapper όπως φαίνεται στην Εικόνα 3-1 και περιγράφηκε στο αντίστοιχο συνοδευτικό κεφάλαιο Προετοιμασία Εισόδων για την εντολή Build 1500 Wrapper Αρχεία εισόδου για την εντολή Build 1500 Wrapper Τα ακόλουθα είναι οι είσοδοι: CoreSpecList Netlist Technology library Αποτελέσματα της εντολής Build 1500 Wrapper Οι ακόλουθες μορφές εξόδου παράγονται από την εντολή Build 1500 Wrapper. Wrapper Netlist Ο κατάλογος των κόμβων του wrapper (netlist) που περιέχει τα ακόλουθα: 71

72 o Προδιαγραφές για τις εισόδους και εξόδους του wrapper o Ένα στιγμιότυπο για κάθε ένα καταχωρητή εντολής του wrapper (WIR) μαζί με την αποκωδικοποιημένη λογική που χρησιμοποιεί, τον καταχωρητή παράκαμψης του wrapper (WBY) και τον αρχικό πυρήνα. o Στιγμιότυπα της λογικής του μονοπατιού σάρωση των πολυπλεκτών (scan path MUXing logic) και άλλη «glue» λογική όπου κρίνεται αναγκαίο. o Ένα στιγμιότυπο για κάθε καθορισμένο οριακό κύτταρο του wrapper. o Όλες τις απαραίτητες διασυνδέσεις για όλα τα στιγμιότυπα. o Ορισμό για τον WIR, τον WBY, τα καθορισμένα οριακά κύτταρα του wrapper και τον πυρήνα. Macro Isolation Control (MIC) αρχείο το αρχείο MIC παράγεται στην ακόλουθη μορφή: MacroIsolation.testmode[.qualifier] To αρχείο αυτό είναι χρήσιμο αν σκοπεύουμε να χρησιμοποιήσουμε τις δυνατότητες του εργαλείου Test Data Migration του Encounter Test για να εφαρμόσουμε δεδομένα από τον πυρήνα (ή τον εγκολπωμένο πυρήνα) στους ακροδέκτες του συστήματος σε μορφή ολοκληρωμένου κυκλώματος. Το MIC αρχείο περιγράφει τα προβλεπόμενα όρια εξέτασης, όπου τα όρια εξέτασης καθορίζονται να είναι το σύνολο των θυρών συμπεριλαμβανομένων των θυρών σάρωσης, τα οποία χρησιμοποιούνται από τα διανύσματα εξέτασης (test patterns). Αν τα διανύσματα εξέτασης προορίζονται για τον πυρήνα τότε το MIC θα περιγράφει τις θύρες του πυρήνα. Αν εφαρμόζουμε ATPG στον εγκολπωμένο πυρήνα τότε τα διανύσματα που θα δημιουργηθούν θα είναι για τον εγκολπωμένο πυρήνα και στην περίπτωση αυτή το MIC θα περιγράφει τις θύρες του wrapper. Η περιγραφή του MIC πρέπει να ταιριάζει με το όριο εξέτασης ώστε να μπορούν οι εφαρμογές verify_macro_isolation και create_macro_tests του Encounter Test να δουλέψουν σωστά. Αρχείο Περιγραφής χαρακτηριστικών (Datasheet) Το αρχείο αυτό είναι χρήσιμο για τον Core Integrator κατά την ολοκλήρωση του πυρήνα σε μορφή ολοκληρωμένου κυκλώματος. Τα περιεχόμενα του είναι τα ακόλουθα: o Περιγραφή του WIR, συμπεριλαμβανομένου και του μήκους, των εφαρμοσμένων εντολών και των κωδικών τους (opcodes) καθώς και του πρωτοκόλλου που χρειάζεται για να λειτουργήσει ο WIR. o Τους σημαντικούς ακροδέκτες του wrapper και ειδικά τους ακροδέκτες WSP και WPP. o Πληροφορίες σχετικά με τους ακροδέκτες του Wrapper που χρειάζονται ασφαλείς καταστάσεις, για όλες τις λειτουργίες εξέτασης (test modes). Αρχεία Αναθέσεις Ακροδεκτών και Ακολουθίες Αρχικοποίησης Testmode Αυτά τα αρχεία είναι χρήσιμα αν σκοπεύουμε να χρησιμοποιήσουμε τον Encounter Test για να εφαρμόσουμε ATPG ή να επιβεβαιώσουμε την ακεραιότητα των δομών εξέτασης (Verify Test Structures) που δημιουργήθηκαν από τον Build 1500 Wrapper. Ένα αρχείο λειτουργίας ακολουθίας αρχικοποίησης και ένα αρχείο ανάθεσης ακροδέκτη παράγονται για κάθε λειτουργία (testmode) η οποία έχει υλοποιηθεί στον wrapper. Ο Encounter Test χρησιμοποιεί τη λειτουργία ακολουθίας αρχικοποίησης για να φορτώσει τον κωδικό (opcode) της εντολής στον WIR. Το αρχείο ανάθεσης ακροδέκτη (pin assignment) περιγράφει τις ATPG συναρτήσεις εξέτασης για τους σχετικούς 72

73 ακροδέκτες εξέτασης. Να σημειωθεί ότι αυτά τα αρχεία είναι αναγνώσιμα από το χρήστη αλλά ταυτόχρονα είναι σε μορφή υποστηριζόμενη από τον Encounter Test Επαλήθευση των αποτελεσμάτων του Build 1500 Wrapper Χρησιμοποιούμε την εντολή Verify Test Structures (VTS) για να επαληθεύσουμε αντιστοιχία με τις εντολές. Ένα αρχείο λειτουργίας ακολουθίας αρχικοποίησης και ένα αρχείο ανάθεσης ακροδέκτη παράγονται για κάθε λειτουργία (testmode) η οποία έχει υλοποιηθεί στον wrapper. Ο Encounter Test χρησιμοποιεί τη λειτουργία ακολουθίας αρχικοποίησης για να φορτώσει τον κωδικό (opcode) της εντολής στον WIR. Το αρχείο ανάθεσης ακροδέκτη (pin assignment) περιγράφει τις ATPG συναρτήσεις εξέτασης για τους σχετικούς ακροδέκτες εξέτασης. Κάθε εντολή που υλοποιείται εντός του wrapper μπορεί να θεωρηθεί ως μια ξεχωριστή λειτουργία (test mode). Μπορούμε να φτιάξουμε μια λειτουργία (testmode) για κάθε εντολή υλοποιημένη στον εγκολπωμένο πυρήνα και να τρέξουμε την Verify Test Structures σε κάθε λειτουργία (test mode) για να επαληθεύσουμε ότι ο σωστός καταχωρητής του wrapper για μια συγκεκριμένη εντολή χρησιμοποιείται μαζί με την αντίστοιχη αλυσίδα σάρωσης και έχει το σωστό μήκος. Για παράδειγμα, χρησιμοποιώντας την εντολή WS_BYPASS, είναι επιθυμητό να επιλέξουμε τον Καταχωρητή Παράκαμψης του Wrapper (Wrapper Bypass Register) ανάμεσα στη WSI και WSO με μήκος 1 δυαδικό ψηφίο. Μπορούμε να συμβουλευτούμε το αρχείο καταγραφής δραστηριότητας (log) της Verify Test Structures για κάθε μια εντολή ώστε να εξασφαλίσουμε ότι η επιθυμητή σχεδίαση έχει επιτευχθεί. Στο σημείο αυτό να επισημάνουμε ότι αν ο πυρήνας είναι μαύρο κουτί κατά τη build_model, δε θα μπορέσουμε να επαληθεύσουμε τις εντολές WS_INTEST_SCAN και WP_INTEST καθώς πρέπει οι εσωτερικές αλυσίδες σάρωσης του πυρήνα να είναι ορατές στον VTS ώστε να επαληθεύσει ότι είναι σωστά συνδεδεμένες με τους ακροδέκτες του wrapper. Επίσης, η δομή του wrapper από μόνη της δεν περιέχει αλυσίδες σάρωσης. Η εισαγωγή αλυσίδας σάρωσης στον wrapper δεν είναι υποχρεωτική από τη στιγμή που οι μανδαλωτές του wrapper είναι ήδη συνδεδεμένοι με έναν τρόπο που να συμπεριφέρονται σαν αλυσίδα σάρωσης στις διάφορες εντολές. Η συμπεριφορά αυτή επαληθεύεται με την Verify Test Structures. 73

74 4 Αλγόριθμοι ανάλυσης κόμβων 4.1 Γενικά Στο παρόν κεφάλαιο θα παρουσιάσουμε και θα περιγράψουμε τους αλγορίθμους που σχεδιάσαμε προκειμένου να βοηθήσουμε την ανάλυση των κυκλωμάτων, με ιδιαίτερη έμφαση στην ενεργειακή πλευρά της ανάλυσης. Αρχικά παρουσιάζουμε τον αλγόριθμο διαχωρισμού separatedft και εν συνεχεία τους αλγορίθμους netprofileclkscan και timingprofclkscan. 4.2 Αλγόριθμος διαχωρισμού (separatedft) Όπως έχουμε ήδη αναφέρει βασικό πρόβλημα των σχεδιαστών είναι η μελέτη της ενεργειακής κατανάλωσης της σχεδίασης για εξέταση προκειμένου να σχεδιάσουν διανύσματα και μεθόδους εξέτασης χαμηλότερης κατανάλωσης. Για να επιτευχθεί όμως αυτό είναι αναγκαίο να γνωρίζει ο σχεδιαστής ποίοι είναι οι κόμβοι των δομών εξέτασης (πχ αλυσίδων σάρωσης κλπ). Πρόκειται για μια κοπιώδη και σύνθετη διαδικασία ο εντοπισμός των κόμβων με τη διαδικασία της κλασικής αναζήτησης έναν-έναν κάθε φορά με υψηλό ποσοστό λάθους. Για να αντιμετωπίσουμε το πρόβλημα αυτό δημιουργήσαμε τον αλγόριθμο separatedft ο οποίος δέχεται ως είσοδο δύο καταλόγους κόμβων (netlists), έναν με τους κόμβους της αρχικής σχεδίασης (initial) και έναν με τους κόμβους τόσο της αρχικής όσο και της σχεδίασης για εξέταση (initial design+dft) και επιστρέφει έναν κατάλογο με τους κόμβους (netlist) μόνο της σχεδίασης για εξέταση (DFT) Περιγραφή της λειτουργίας του αλγορίθμου Ο αλγόριθμος λειτουργεί με τα βήματα που ακολουθούν: 1. Ο αλγόριθμος διαβάζει το αρχείο με τον κατάλογο των κόμβων της αρχικής σχεδίασης (initial design netlist) μέχρι να συναντήσει τη δεσμευμένη φράση κλειδί $enddefinitions $end διότι μετά από τη δήλωση αυτή ακολουθούν πληροφορίες προσομοίωσης που δεν τις χρειαζόμαστε. 2. Εντοπίζει τα τμήματα πληροφορίας που περιέχονται ανάμεσα στις φράσεις $scope module και $end με στόχο να δημιουργήσει μοναδικά ονόματα (modulesnodft) για κάθε στοιχείο του κυκλώματος, συνδυάζοντας όπου είναι αναγκαίο πηροφορία από περισσότερα $scope module ανά όνομα παρεμβάλλοντας τον χαρακτήρα «&». 3. Διαβάζει το αρχείο με τον κατάλογο των κόμβων τόσο της αρχικής σχεδίασης όσο και της σχεδίασης για εξέταση (initial design +DFT netlist) μέχρι να συναντήσει τη δεσμευμένη φράση κλειδί $enddefinitions $end για τον ίδιο με προηγούμενα λόγο. 4. Εκτελεί το βήμα 2 (modulesdft). 74

75 5. Εντοπίζει όλους τους μανδαλωτές του καταλόγου κόμβων συνολικής σχεδίασης, δηλαδή και αρχικής σχεδίασης και σχεδίασης για εξέταση, ελέγχοντας αν έχουν συγκεκριμένους ακροδέκτες που ορίζονται από το εργαλείο ανάλυσης (πχ ακροδέκτης delayed_si και delayed_se). 6. Για κάθε μανδαλωτή που έχει εντοπίσει στο βήμα 5 εξετάζει αν βρίσκεται μόνο στο αρχείο συνολικής σχεδίασης. Στην περίπτωση αυτή για κάθε μανδαλωτή αποθηκεύει σε μια δομή συγκεκριμένους ακροδέκτες (Q, SI, SE, delayed_se, delayed_si, delayed_se bar, int_fwire_0, int_fwire_1, int_fwire_d). Σε αντίθετη περίπτωση απορρίπτει το μανδαλωτή και εξετάζει τον επόμενο μέχρι να ολοκληρωθεί η λίστα των μανδαλωτών του βήματος Επιστρέφει ένα αρχείο με τη λίστα των ακροδεκτών που εντόπισε στα προηγούμενα βήματα. Το τελικό αρχείο περιέχει την κωδική αναπαράσταση κάθε ακροδέκτη όπως έχει οριστεί από το εργαλείο σχεδίασης γεγονός που επιτρέπει αφενός την ανάγνωση από το σχεδιαστή αφετέρου την άμεση χρησιμοποίησή του προκειμένου να εντοπιστεί γρήγορα και εύκολα ένας ζητούμενος κόμβος. Η υλοποίηση του αλγορίθμου φαίνεται στο Παράρτημα Ι. 4.3 Αλγόριθμος netprofileclkscan Ένα ζήτημα που προβληματίζει τους σχεδιαστές ψηφιακών κυκλωμάτων αλλά και όλους όσους ασχολούνται με την εξέταση τέτοιων κυκλωμάτων είναι η κατανάλωση των κυκλωμάτων κατά τη διάρκεια της εξέτασης (test). Για το σκοπό αυτό αναπτύξαμε το συγκεκριμένο αλγόριθμο μαζί με τον επόμενο ώστε να δίνεται η δυνατότητα στο σχεδιαστή να έχει μια εικόνα σχετικά με την κατανάλωση του κυκλώματος. Πιο συγκεκριμένα, ο αλγόριθμος netprofileclkscan παρέχει πληροφορίες σχετικά με το βαθμό λειτουργίας του κυκλώματος (switching activity) και το πόσες εναλλαγές λογικών τιμών (toggles) παρατηρήθηκαν σε κάθε κόμβο (net) Περιγραφή της λειτουργίας του αλγορίθμου O αλγόριθμος ακολουθεί τα παρακάτω βήματα προκειμένου να επιστρέψει τις απαιτούμενες πληροφορίες για την κατανάλωση του κυκλώματος: 1. Ορίζουμε αρχικά το όνομα του σήματος ρολογιού που χρησιμοποιήθηκε κατά την προσομοίωση των διανυσμάτων εξέτασης (πχ CK) διότι μπορεί να υπάρχουν περισσότερα από ένα σήματα ρολογιού και το όνομα του σήματος ενεργοποίησης σάρωσης (scan_enable) (πχ scan_en). 2. Διαβάζει το αρχείο με τα αποτελέσματα της προσομοίωσης.vcd προσπερνώντας όλες τις πληροφορίες μέχρι τη φράση $dumpvars που οριοθετεί τους ορισμούς των δομών του κυκλώματος. 75

76 3. Για το υπόλοιπο αρχείο αναζητά το σύμβολο που αντιστοιχεί στο όνομα ρολογιού που δώσαμε και όταν το βρει ενημερώνει μια λίστα που περιέχει το πλήθος των εναλλαγών σε όλη τη διάρκεια της προσομοίωσης για κάθε κόμβο. 4. Επιστρέφει το πλήθος των κύκλων ρολογιού (clock cycles), το συνολικό πλήθος των κόμβων του κυκλώματος (nets), το σύνολο των εναλλαγών λογικών τιμών που πραγματοποιήθηκαν κατά τη διάρκεια της προσομοίωσης (toggles) και το βαθμό λειτουργίας του κυκλώματος (switching activity). 5. Επιστρέφει ένα αρχείο που περιέχει για κάθε κόμβο το πλήθος των εναλλαγών που πραγματοποιήθηκαν. Στο σημείο αυτό να αναφέρουμε ότι ο υπολογισμός του βαθμού λειτουργίας (switching activity - swac) του κυκλώματος γίνεται με τον ακόλουθο τύπο της βιβλιογραφίας: ( 3) όπου toggles[] είναι ένας πίνακας με τις εναλλαγές για κάθε κόμβο, nets το πλήθος των κόμβων και clock cycles το σύνολο των κύκλων ρολογιού. 4.4 Αλγόριθμος timingprofileclkscan O αλγόριθμος ακολουθεί τα παρακάτω βήματα προκειμένου να επιστρέψει τις απαιτούμενες πληροφορίες για την κατανάλωση του κυκλώματος: 1. Ορίζουμε αρχικά το όνομα του σήματος ρολογιού που χρησιμοποιήθηκε κατά την προσομοίωση των διανυσμάτων εξέτασης (πχ CK) διότι μπορεί να υπάρχουν περισσότερα από ένα σήματα ρολογιού και το όνομα του σήματος ενεργοποίησης σάρωσης (scan_enable) (πχ scan_en). 2. Διαβάζει το αρχείο με τα αποτελέσματα της προσομοίωσης.vcd προσπερνώντας όλες τις πληροφορίες μέχρι τη φράση $dumpvars που οριοθετεί τους ορισμούς των δομών του κυκλώματος. 3. Για το υπόλοιπο αρχείο αναζητά το σύμβολο που αντιστοιχεί στο όνομα ρολογιού που δώσαμε και όταν το βρει ελέγχει αν άλλαξε η τιμή από την τελευταία φορά που εμφανίστηκε και αντίστοιχα ενημερώνει μια λίστα που περιέχει το πλήθος των εναλλαγών σε όλους τους κόμβους για κάθε κύκλο ρολογιού. 4. Επιστρέφει το πλήθος των κύκλων ρολογιού (clk), το συνολικό πλήθος των κόμβων του κυκλώματος (nets), το σύνολο των εναλλαγών λογικών τιμών που πραγματοποιήθηκαν κατά τη διάρκεια της προσομοίωσης (toggles) και το βαθμό λειτουργίας του κυκλώματος (switching activity). 5. Επιστρέφει ένα αρχείο που περιέχει για κάθε κύκλο ρολογιού το πλήθος των εναλλαγών που πραγματοποιήθηκαν. 76

77 Στο σημείο αυτό να αναφέρουμε ότι ο υπολογισμός του βαθμού λειτουργίας (switching activity - swac) του κυκλώματος γίνεται με τον ακόλουθο τύπο της βιβλιογραφίας: όπου toggles[] είναι ένας πίνακας με τις εναλλαγές για κάθε κύκλο ρολογιού, nets το πλήθος των κόμβων και clk το σύνολο των κύκλων ρολογιού. Όπως φαίνεται και από τους τύπους (3) και (4) και όπως αναμέναμε, ο βαθμός λειτουργίας του κυκλώματος προκύπτει ο ίδιος. ( 4) 77

78 5 Αποτελέσματα 5.1 Γενικά Στο παρόν κεφάλαιο παρουσιάζονται τα αποτελέσματα για κάθε ένα από τα κυκλώματα s5378, s15850 και s38584 τόσο στην αρχική τους μορφή όσο και μετά την προσθήκη του κυκλώματος περιφερειακής δομής για εξέταση (wrapper). 5.2 Αρχική σχεδίαση s5378. Τα αποτελέσματα που προέκυψαν από την εκτέλεση της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG) και παρουσιάζονται ακολούθως ελήφθησαν από τα επιμέρους αρχεία καταγραφής δραστηριοτήτων του φακέλου ~/s5378/no_wrapper/run/et_scripts/ testresults/logs/: Πίνακας 21 Αποτελέσματα ATPG για το κύκλωμα s5378 χωρίς Wrapper Testmode and Global Statistics ATCov Testmode Faults Global Faults Testmode Global Tested Untested Tested Untested Total Static 100% 100% Collapsed Static 100% 100% PI Static 100% 100% PO Static 100% 100% INFO (TBD-809): Master test vector file statistics: [end TBD_809] experiments = 1 test sections = 2 tester loops = 2 test procedures = 12 test sequence = 245 init sequences = 2 Από τα ανωτέρω αποτελέσματα εξάγουμε συμπεράσματα που εξηγήσαμε στην και συγκεκριμένα στην περίπτωση μας έχουμε την παραγωγή 245 διανυσμάτων εξέτασης, με βαθμό κάλυψης εξετασιμότητας 100% τόσο για τη συγκεκριμένη λειτουργία ελέγχου που έχει οριστεί να είναι η FULLSCAN όσο και για τα Global Statistics. Αυτό σημαίνει ότι όλη η λογική της σχεδίασης είναι παρατηρήσιμη και εξετάσιμη. Στη συνέχεια παρουσιάζουμε συνοπτικά τα αποτελέσματα των συναρτήσεων netprofileclkscan και timingprofclkscan. 78

79 Πίνακας 22 Αποτελέσματα συναρτήσεων μελέτης κατανάλωσης στο s5378 χωρίς Wrapper netprofileclkscan timingprofclkscan Clock Cycles Nets Toggles Switching Activity 23.64% 23.64% Στην ακόλουθη εικόνα φαίνεται το αποτέλεσμα της συνάρτησης timingprofclkscan για το αποτέλεσμα της προσομοίωσης των αποτελεσμάτων της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG). Εικόνα 5-1 Εναλλαγές ανά κύκλο ρολογιού για το s5378 Συγκεκριμένα έχουμε το ραβδόγραμμα των συχνοτήτων εναλλαγών σε κάθε κύκλο ρολογιού. Επίσης, βλέπουμε ότι έχουμε 7970 (για την ακρίβεια 7973) κύκλους ρολογιού το οποίο συνάδει με το γεγονός ότι έχουμε ns χρόνο προσομοίωσης, όπως αναφέρεται στο αρχείο δραστηριότητας ncverilog_fullscan.log, αν λάβουμε υπόψιν μας ότι το ρολόι έχει οριστεί σε ps και κάθε κύκλος σύλληψης (capture) διαρκεί περίπου διπλάσιο χρόνο για λόγους ασφαλείας των τιμών ( ). Επιπλέον, φαίνονται οι περιοχές λειτουργίας του κυκλώματος οι οποίες χωρίζονται από κύκλους με υψηλό αριθμό εναλλαγών. Αυτοί οι κύκλοι αναφέρονται στη λειτουργία σύλληψης και εμφανίζουν αυξημένο αριθμό εναλλαγών διότι είναι κύκλοι κανονικής λειτουργίας και άρα διεγείρεται όλο το κύκλωμα. Οι ενδιάμεσες ζώνες αναφέρονται στη λειτουργία ολίσθηση σάρωσης (scan shift) κατά την οποία φορτώνονται τα διανύσματα εξέτασης στους μανδαλωτές του κυκλώματος. 79

80 Στην ακόλουθη εικόνα φαίνεται το αποτέλεσμα της συνάρτησης netprofileclkscan για το αποτέλεσμα της προσομοίωσης των αποτελεσμάτων της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG). Εικόνα 5-2 Εναλλαγές ανά ακροδέκτη για το s5378 Όπως παρατηρούμε ο πρώτος ακροδέκτης εμφανίζει τις περισσότερες εναλλαγές. Αυτό ήταν αναμενόμενο αν αναλογιστούμε ότι ο πρώτος ακροδέκτης αναφέρεται στο σήμα ρολογιού του κυκλώματος (clock) και επομένως δε μπορεί να υπάρξει οιαδήποτε λειτουργία χωρίς αυτό. 5.3 Κύκλωμα s5378 μαζί με το Wrapper IEEE Τα αποτελέσματα που προέκυψαν από την εκτέλεση της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG) και παρουσιάζονται ακολούθως ελήφθησαν από τα επιμέρους αρχεία καταγραφής δραστηριοτήτων του φακέλου ~/s5378/syn_wrapper/run/et_scripts/testresults/logs/: Πίνακας 23 Αποτελέσματα ATPG για το κύκλωμα s5378 με Wrapper Testmode and Global Statistics ATCov Testmode Faults Global Faults Testmode Global Tested Untested Tested Untested Total Static 99.95% 93.92%

81 Collapsed Static 99.90% 92.17% PI Static 100% 11.76% PO Static 100% 95.45% NFO (TBD-809): Master test vector file statistics: [end TBD_809] experiments = 1 test sections = 2 tester loops = 2 test procedures = 11 test sequence = 237 init sequencess = 2 Από τα ανωτέρω αποτελέσματα εξάγουμε συμπεράσματα που εξηγήσαμε στην και συγκεκριμένα στην περίπτωση μας έχουμε την παραγωγή 237 διανυσμάτων εξέτασης, με βαθμό κάλυψης εξετασιμότητας 99.95% για τη συγκεκριμένη λειτουργία ελέγχου που έχει οριστεί η FULLSCAN και 93.92% για τα Global Statistics. Στη συνέχεια παρουσιάζουμε συνοπτικά τα αποτελέσματα των συναρτήσεων netprofileclkscan και timingprofclkscan. Πίνακας 24 Αποτελέσματα συναρτήσεων μελέτης κατανάλωσης στο s5378 με Wrapper netprofileclkscan timingprofclkscan Clock Cycles Nets Toggles Switching Activity 22.60% 22.60% Στην ακόλουθη εικόνα φαίνεται το αποτέλεσμα της συνάρτησης timingprofclkscan για το αποτέλεσμα της προσομοίωσης των αποτελεσμάτων της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG). 81

82 Εικόνα 5-3 Εναλλαγές ανά κύκλο ρολογιού για το s5378 με wrapper Στην ακόλουθη εικόνα φαίνεται το αποτέλεσμα της συνάρτησης netprofileclkscan για το αποτέλεσμα της προσομοίωσης των αποτελεσμάτων της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG). Εικόνα 5-4 Εναλλαγές ανά ακροδέκτη για το s5378 με wrapper Στην περίπτωσή του κυκλώματος μαζί με το κύκλωμα περιφεριακής δομής για εξέταση (Wrapper) παρατηρούμε ότι δεν είναι μόνο ένας και μάλιστα ο πρώτος ακροδέκτης που εμφανίζει τις περισσότερες εναλλαγές αλλά περισσότεροι. Εξηγείται από το γεγονός ότι πλέον έχουμε έναν 82

83 ακροδέκτη με το σήμα ρολογιού (CK) κι έναν με το ρολόι για τον wrapper (WRCK), το οποίο μπορούμε να το επαληθεύσουμε και από το WS_INTEST_SCAN αρχείο. 5.4 Αρχική σχεδίαση s Τα αποτελέσματα που προέκυψαν από την εκτέλεση της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG) και παρουσιάζονται ακολούθως ελήφθησαν από τα επιμέρους αρχεία καταγραφής δραστηριοτήτων του φακέλου ~/s15850/no_wrapper/run/et_scripts/testresults/ logs/. Πίνακας 25 Αποτελέσματα ATPG για το κύκλωμα s15850 χωρίς Wrapper Testmode and Global Statistics ATCov Testmode Faults Global Faults Testmode Global Tested Untested Tested Untested Total Static 100% 100% Collapsed Static 100% 100% PI Static 100% 100% PO Static 100% 100% INFO (TBD-809): Master test vector file statistics: [end TBD_809] experiments = 1 test sections = 2 tester loops = 2 test procedures = 9 test sequence = 157 init sequencess = 2 Όπως μπορούμε να διακρίνουμε ο συνολικός βαθμός κάλυψης εξετασιμότητας (test coverage) ανεξάρτητα με τις μετρικές που χρησιμοποιούνται για να υπολογιστεί είναι 100%, το οποίο σημαίνει ότι όλη η λογική που χρησιμοποιήθηκε στη σχεδίαση είναι παρατηρήσιμη και εξετάσιμη. Επίσης, βλέπουμε ότι δημιουργήθηκαν 157 διανύσματα δοκιμής προκειμένου να επιτευχθεί η πλήρης κάλυψη του κυκλώματος. Στη συνέχεια παρουσιάζουμε συνοπτικά τα αποτελέσματα των συναρτήσεων netprofileclkscan και timingprofclkscan. Πίνακας 26 Αποτελέσματα συναρτήσεων μελέτης κατανάλωσης στο s15850 χωρίς Wrapper netprofileclkscan timingprofclkscan Clock Cycles Nets Toggles Switching Activity 24.64% 24.64% 83

84 Στην ακόλουθη εικόνα φαίνεται το αποτέλεσμα της συνάρτησης timingprofclkscan για το αποτέλεσμα της προσομοίωσης των αποτελεσμάτων της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG). Να σημειώσουμε ότι για λόγους ευκρίνειας εικονίζονται μόνο οι 8000 πρώτοι κύκλοι ρολογιού, ώστε να διακρίνουμε τις επιμέρους περιοχές λειτουργίας. Εικόνα 5-5 Εναλλαγές ανά κύκλο ρολογιού για το s15850 Στην ακόλουθη εικόνα φαίνεται το αποτέλεσμα της συνάρτησης netprofileclkscan για το αποτέλεσμα της προσομοίωσης των αποτελεσμάτων της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG). 84

85 Εικόνα 5-6 Εναλλαγές ανά ακροδέκτη για το s15850 Τα συμπεράσματα είναι παρόμοια με αυτά του s5378, καθώς στο διάγραμμα των εναλλαγών ανά ακροδέκτη έχουμε τον πρώτο ακροδέκτη που αντιστοιχεί στο ρολόι του συστήματος να είναι αυτός με τις περισσότερες εναλλαγές (32615 εναλλαγές). Η διαφορά με το κύκλωμα s5378 είναι στο μέγεθος των εναλλαγών τόσο σε επίπεδο κύκλου ρολογιού όσο και ακροδέκτη καθώς στο κύκλωμα s15850 έχουμε κύκλους ρολογιού ακόμα και με πάνω από 5000 εναλλαγές ενώ στο s5378 γύρω στις Ομοίως για τις εναλλαγές ακροδεκτών στο s5378 έχουμε περίπου ενώ εδώ περίπου Οι παρατηρήσεις αυτές ερμηνεύονται από το γεγονός ότι έχουμε να κάνουμε με ένα μεγαλύτερο και πολυπλοκότερο κύκλωμα και ως εκ τούτου τα διανύσματα εξέτασης είναι μεγαλύτερα με αποτέλεσμα να χρειάζονται περισσότεροι κύκλοι ρολογιού για να εξεταστεί στο σύνολό του. 5.5 Κύκλωμα s15850 μαζί με το Wrapper IEEE Τα αποτελέσματα που προέκυψαν από την εκτέλεση της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG) και παρουσιάζονται ακολούθως ελήφθησαν από τα επιμέρους αρχεία καταγραφής δραστηριοτήτων του φακέλου ~/s15850/syn_wrapper/run/et_scripts/testresults/ logs/. 85

86 Πίνακας 27 Αποτελέσματα ATPG για το κύκλωμα s15850 με Wrapper Testmode and Global Statistics ATCov Testmode Faults Global Faults Testmode Global Tested Untested Tested Untested Total Static 99.95% 95.27% Collapsed Static 99.93% 93.33% PI Static 100% 6.45% PO Static 100% 98.40% INFO (TBD-809): Master test vector file statistics: [end TBD_809] experiments = 1 test sections = 2 tester loops = 2 test procedures = 9 test sequence = 158 init sequencess = 2 Όπως μπορούμε να διακρίνουμε ο συνολικός βαθμός κάλυψης εξετασιμότητας (test coverage) είναι 99.95% με βάση τα στατιστικά για τη συγκεκριμένη λειτουργία εξέτασης (FULLSCAN) και 95.27% με βάση τα Global Statistics, το οποίο σημαίνει ότι ένα τμήμα της λογικής που χρησιμοποιήθηκε στη σχεδίαση δεν είναι παρατηρήσιμο και εξετάσιμο. Στη συνέχεια παρουσιάζουμε συνοπτικά τα αποτελέσματα των συναρτήσεων netprofileclkscan και timingprofclkscan. Πίνακας 28 Αποτελέσματα συναρτήσεων μελέτης κατανάλωσης στο s15850 με Wrapper netprofileclkscan timingprofclkscan Clock Cycles Nets Toggles Switching Activity 25.43% 25.43% Στην ακόλουθη εικόνα φαίνεται το αποτέλεσμα της συνάρτησης timingprofclkscan για το αποτέλεσμα της προσομοίωσης των αποτελεσμάτων της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG). 86

87 Εικόνα 5-7 Εναλλαγές ανά κύκλο ρολογιού στο s15850 με wrapper Στο σημείο αυτό να αναφέρουμε ότι για την προσομοίωση του κυκλώματος s15850 με wrapper χρησιμοποιήσαμε μόλις τα 10 πρώτα διανύσματα εξέτασης εξαιτίας του γεγονότος ότι το αποτέλεσμα της προσομοίωσης για το σύνολο των 158 διανυσμάτων ήταν 2.8 GB χωρίς να παρέχει κάποια επιπλέον πληροφορία. Όπως φαίνεται και στην παραπάνω εικόνα διακρίνονται 10 «ζώνες» οι οποίες χωρίζονται από έναν κύκλο ρολογιού με υψηλό αριθμό εναλλαγών. Ο κύκλος αυτός είναι ο κύκλος σύλληψης (capture) κατά τον οποίο αφενός εισέρχονται στις αλυσίδες σάρωσης οι τιμές των νέων διανυσμάτων εξέτασης αφετέρου γίνεται ολίσθηση των τιμών των μανδαλωτών στις κύριες εξόδους ώστε να διαπιστωθεί αν είναι τα αναμενόμενα αποτελέσματα ή έχει προκύψει σφάλμα. Στη συνέχεια φαίνεται το αποτέλεσμα της συνάρτησης netprofileclkscan για το αποτέλεσμα της προσομοίωσης των αποτελεσμάτων της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG). 87

88 Εικόνα 5-8 Εναλλαγές ανά ακροδέκτη στο s15850 με wrapper Η μορφή του ανωτέρω διαγράμματος είναι παρόμοια με αυτή του κυκλώματος s5378 με wrapper με τη διαφορά ότι εδώ δεν έχουμε μικρότερο πλήθος εναλλαγών, το οποίο είναι λογικό εφόσον δε χρησιμοποιήσαμε και τα 158 διανύσματα εξέτασης αλλά ένα μόλις μέρος αυτών και άρα η διάρκεια της προσομοίωσης ήταν μικρότερη και ως εκ τούτου οι εναλλαγές ανά ακροδέκτη λιγότερες. 5.6 Αρχική σχεδίαση s Τα αποτελέσματα που προέκυψαν από την εκτέλεση της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG) και παρουσιάζονται ακολούθως ελήφθησαν από τα επιμέρους αρχεία καταγραφής δραστηριοτήτων του φακέλου ~/s38584/no_wrapper/run/et_scripts/ testresults/logs/. Πίνακας 29 Αποτελέσματα ATPG για το κύκλωμα s38584 χωρίς Wrapper Testmode and Global Statistics ATCov Testmode Faults Global Faults Testmode Global Tested Untested Tested Untested Total Static 99.99% 99.99% Collapsed Static 99.99% 99.99% PI Static 100% 100% PO Static 100% 100% INFO (TBD-809): Master test vector file statistics: [end TBD_809] 88

89 experiments = 1 test sections = 2 tester loops = 2 test procedures = 8 test sequence = 209 init sequencess = 2 Όπως μπορούμε να διακρίνουμε ο συνολικός βαθμός κάλυψης εξετασιμότητας (test coverage) ανεξάρτητα με τις μετρικές που χρησιμοποιούνται για να υπολογιστεί είναι 99.99%, το οποίο σημαίνει ότι όλη ουσιαστικά η λογική που χρησιμοποιήθηκε στη σχεδίαση είναι παρατηρήσιμη και εξετάσιμη. Στη συνέχεια παρουσιάζουμε συνοπτικά τα αποτελέσματα των συναρτήσεων netprofileclkscan και timingprofclkscan. Πίνακας 30 Αποτελέσματα συναρτήσεων μελέτης κατανάλωσης στο s38584 χωρίς Wrapper netprofileclkscan timingprofclkscan Clock Cycles Nets Toggles Switching Activity 28.49% 28.49% Στην ακόλουθη εικόνα φαίνεται το αποτέλεσμα της συνάρτησης timingprofclkscan για το αποτέλεσμα της προσομοίωσης των αποτελεσμάτων της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG). Εικόνα 5-9 Εναλλαγές ανά κύκλο ρολογιού στο s38584 Όπως φαίνεται και στο σχήμα τα αποτελέσματα είναι παρόμοια με αυτά του κυκλώματος s15850 μολονότι τα μεγέθη διαφέρουν εφόσον το s38584 είναι μεγαλύτερο από το s Επειδή 89

90 τα αποτελέσματα αναφέρονται στην κανονική λειτουργία του s38584 βλέπουμε ότι οι εναλλαγές ανά κύκλο ρολογιού είναι σχεδόν ίδιες. Στη συνέχεια ακολουθούν τα αποτελέσματα της συνάρτησης netprofileclkscan για το αποτέλεσμα της προσομοίωσης των αποτελεσμάτων της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG). Εικόνα 5-10 Εναλλαγές ανά ακροδέκτη για το s38584 Και στο διάγραμμα αυτό παρατηρούμε ότι τα αποτελέσματα είναι παρόμοια με εκείνα του κυκλώματος s Κύκλωμα s38584 μαζί με το Wrapper IEEE 1500 Τα αποτελέσματα που προέκυψαν από την εκτέλεση της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG) και παρουσιάζονται ακολούθως ελήφθησαν από τα επιμέρους αρχεία καταγραφής δραστηριοτήτων του φακέλου ~/s38584/syn_wrapper/run/et_scripts/testresults/ logs/. Πίνακας 31 Αποτελέσματα ATPG για το κύκλωμα s38584 με Wrapper Testmode and Global Statistics ATCov Testmode Faults Global Faults Testmode Global Tested Untested Tested Untested Total Static 99.89% 98.07% Collapsed Static 99.86% 97.11% PI Static 100% 11.11%

91 PO Static 100% 99.19% INFO (TBD-809): Master test vector file statistics: [end TBD_809] experiments = 1 test sections = 2 tester loops = 2 test procedures = 8 test sequence = 206 init sequencess = 2 Όπως μπορούμε να διακρίνουμε ο συνολικός βαθμός κάλυψης εξετασιμότητας (test coverage) είναι 99.89% με βάση τα στατιστικά για τη συγκεκριμένη λειτουργία εξέτασης (FULLSCAN) και 98.07% με βάση τα Global Statistics, το οποίο σημαίνει ότι ένα τμήμα της λογικής που χρησιμοποιήθηκε στη σχεδίαση δεν είναι παρατηρήσιμο και εξετάσιμο. Στη συνέχεια παρουσιάζουμε συνοπτικά τα αποτελέσματα των συναρτήσεων netprofileclkscan και timingprofclkscan. Πίνακας 32 Αποτελέσματα συναρτήσεων μελέτης κατανάλωσης στο s38584 με Wrapper netprofileclkscan timingprofclkscan Clock Cycles Nets Toggles Switching Activity Στην ακόλουθη εικόνα φαίνεται το αποτέλεσμα της συνάρτησης timingprofclkscan για το αποτέλεσμα της προσομοίωσης των αποτελεσμάτων της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG). 91

92 Εικόνα 5-11 Εναλλαγές ανά κύκλο ρολογιού στο s38584 με wrapper Στο σημείο αυτό να αναφέρουμε ότι για την προσομοίωση του κυκλώματος s38584 με wrapper χρησιμοποιήσαμε μόλις τα 10 πρώτα διανύσματα εξέτασης εξαιτίας του γεγονότος ότι το αποτέλεσμα της προσομοίωσης για το σύνολο των 209 διανυσμάτων ήταν 12.7 GB χωρίς να παρέχει κάποια επιπλέον πληροφορία. Όπως φαίνεται και στην παραπάνω εικόνα διακρίνονται 10 «ζώνες» οι οποίες χωρίζονται από έναν κύκλο ρολογιού με υψηλό αριθμό εναλλαγών. Ο κύκλος αυτός είναι ο κύκλος σύλληψης (capture) κατά τον οποίο αφενός εισέρχονται στις αλυσίδες σάρωσης οι τιμές των νέων διανυσμάτων εξέτασης αφετέρου γίνεται ολίσθηση των τιμών των μανδαλωτών στις κύριες εξόδους ώστε να διαπιστωθεί αν είναι τα αναμενόμενα αποτελέσματα ή έχει προκύψει σφάλμα. Στη συνέχεια φαίνεται το αποτέλεσμα της συνάρτησης netprofileclkscan για το αποτέλεσμα της προσομοίωσης των αποτελεσμάτων της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG). 92

93 Εικόνα 5-12 Εναλλαγές ανά ακροδέκτη στο s38584 με wrapper Η μορφή του ανωτέρω διαγράμματος είναι παρόμοια με αυτή του κυκλώματος s15850 με wrapper με τη διαφορά ότι εδώ δεν έχουμε μεγαλύτερο πλήθος εναλλαγών και περισσότερους ακροδέκτες (σχεδόν τριπλάσιους), το οποίο είναι λογικό εφόσον το κύκλωμα είναι μεγαλύτερο από το s Κύκλωμα s3d Προκειμένου να διερευνήσουμε τη δυνατότητα τμηματικού ελέγχου σε 3D κυκλώματα συνδυάσαμε τα προηγούμενα τρία κυκλώματα σε ένα ενιαίο κύκλωμα (s3d) και εφαρμόσαμε διαφορετικούς συνδυασμούς ελέγχου κάθε φορά. Πιο συγκεκριμένα συνδέσαμε τα τρία κυκλώματα σε σειρά με τις εισόδους του s5378 να γίνονται είσοδοι του s3d και τις εξόδους του να γίνονται είσοδοι στο s Ομοίως οι έξοδοι του s15850 έγιναν είσοδοι στο s38584 και οι έξοδοι του s38584 έξοδοι του συνολικού κυκλώματος s3d. Στις περιπτώσεις διαφορετικού αριθμού εξόδων του ενός σταδίου με τις εισόδους του επόμενου οι περίσσιοι ακροδέκτες έγιναν είσοδοι ή έξοδοι αντίστοιχα, διατηρώντας την αρχική τους κατεύθυνση, στο συνολικό κύκλωμα. Επίσης, τα σήματα ελέγχου των wrapper των επιμέρους σταδίων συνδέθηκαν με ξεχωριστούς ακροδέκτες στο συνολικό s3d. Αρχικά, υποβάλαμε σε διαδικασία εξέτασης (testing) το αποτέλεσμα της σύνθεσης στο σύνολό του ώστε να διαπιστωθεί αν υπάρχουν προβλήματα στη σύνδεση και να εντοπιστούν οιαδήποτε σφάλματα και παραλείψεις. Στη συνέχεια συντάξαμε ένα αρχείο περιγραφής ακροδεκτών (PINASSIGN) και προσδιορισμού σημάτων λειτουργίας (.SEQ) ώστε να εξετάσουμε ένα τμήμα 93

94 (layer) κάθε φορά με τα υπόλοιπα δύο σε λειτουργία παράκαμψης (BYPASS). Τα αποτελέσματα φαίνονται στη συνέχεια Αποτελέσματα για όλο το s3d Η λειτουργία που υλοποιήσαμε ήταν η INTEST και για τα τρία επιμέρους κυκλώματα με τα κατάλληλα σήματα στους ακροδέκτες του wrapper καθενός κυκλώματος. Τα αποτελέσματα φαίνονται στον ακόλουθο πίνακα. Πίνακας 33 Αποτελέσματα ATPG για όλο το κύκλωμα s3d Testmode and Global Statistics ATCov Testmode Faults Global Faults Testmode Global Tested Untested Tested Untested Total Static 99.88% 96.97% Collapsed Static 99.83% 95.80% PI Static 100% 17.82% PO Static 100% 99.33% INFO (TBD-809): Master test vector file statistics: [end TBD_809] experiments = 1 test sections = 2 tester loops = 2 test procedures = 11 test sequence = 306 init sequencess = 2 Όπως παρατηρούμε ο συνολικός βαθμός κάλυψης εξετασιμότητας (test coverage) είναι 99.88% με βάση τα στατιστικά για τη συγκεκριμένη λειτουργία εξέτασης (FULLSCAN) και 96.97% με βάση τα Global Statistics, το οποίο σημαίνει ότι ένα τμήμα της λογικής που χρησιμοποιήθηκε στη σχεδίαση δεν είναι παρατηρήσιμο και εξετάσιμο. Να σημειώσουμε ότι παρήχθησαν 306 διανύσματα εξέτασης προκειμένου να εξεταστεί ολόκληρο το κύκλωμα. Στη συνέχεια παρουσιάζουμε συνοπτικά τα αποτελέσματα των συναρτήσεων netprofileclkscan και timingprofclkscan. Πίνακας 34 Αποτελέσματα συναρτήσεων μελέτης κατανάλωσης στο s3d netprofileclkscan timingprofclkscan Clock Cycles Nets Toggles Switching Activity 23.90% 23.90% 94

95 Στην ακόλουθη εικόνα φαίνεται το αποτέλεσμα της συνάρτησης timingprofclkscan για το αποτέλεσμα της προσομοίωσης των αποτελεσμάτων της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG). Εικόνα 5-13 Εναλλαγές ανά κύκλο ρολογιού σε όλο το s3d Όπως φαίνεται στο ανωτέρω διάγραμμα, έχουμε τις επιμέρους περιοχές λειτουργίας οι οποίες είναι σάρωση εισόδου ακολουθούμενη από μια σάρωση εξόδου και τελικά μια λειτουργία σύλληψης (capture), στη διάρκεια της οποίας έχουμε τις περισσότερες εναλλαγές καθώς είναι κύκλος κανονικής λειτουργίας όλου του κυκλώματος. Για λόγους ευκολότερης παρουσίασης ώστε να διακρίνονται τα χαρακτηριστικά των κύκλων λειτουργίας στην παραπάνω εικόνα φαίνονται τα αποτελέσματα μόνο των 20 πρώτων διανυσμάτων εξέτασης. Στη συνέχεια φαίνεται το αποτέλεσμα της συνάρτησης netprofileclkscan για το αποτέλεσμα της προσομοίωσης των αποτελεσμάτων της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG). 95

96 Εικόνα 5-14 Εναλλαγές ανά ακροδέκτη σε όλο το s3d Στο διάγραμμα αυτό διακρίνονται οι ακροδέκτες με τις περισσότερες εναλλαγές οι οποίοι είναι ο ακροδέκτης που αντιστοιχεί στο σήμα ρολογιού του συνολικού κυκλώματος (CK1) και οι ακροδέκτες που αντιστοιχούν σε σήματα ρολογιού καθενός από τα επιμέρους κυκλώματα (πχ CK1,CK2,CK3, WRCK1, WRCK2, WRCK3 κλπ). Επίσης, διακρίνονται τα επιμέρους κυκλώματα που ξεχωρίζουν αφενός από το πλήθος των ακροδεκτών τους αφετέρου από τις εναλλαγές σε αυτούς. Στη συνέχεια, χάριν συντομίας κάνουμε τη σύμβαση ότι σε μια φράση με IN θα αναφερόμαστε στο επιμέρους κύκλωμα για λειτουργία εξέτασης INTEST (για την ακρίβεια INTEST serial) και ΒΥ για λειτουργία BYPASS. Η σειρά σύνδεσης των κυκλωμάτων στο συνολικό s3d είναι s5378-s s38584 οπότε αν έχουμε BY_IN_ΒΥ σημαίνει ότι τα s5378 και s38584 παρακάμπτονται και ελέγχεται μόνο το s Αποτελέσματα ΙΝ_ΒΥ_ΒΥ Τα αποτελέσματα τμηματικού ελέγχου για το s3d με στόχο την εξέταση του s5378 φαίνονται στον ακόλουθο πίνακα: Πίνακας 35 Αποτελέσματα τμηματικού ελέγχου του s3d - s5378 Testmode and Global Statistics ATCov Testmode Faults Global Faults Testmode Global Tested Untested Tested Untested Total Static 99.09% 93.12% Collapsed Static 97.91% 90.34%

97 PI Static 81.25% 12.87% PO Static 4.28% 4.13% INFO (TBD-809): Master test vector file statistics: [end TBD_809] experiments = 1 test sections = 2 tester loops = 2 test procedures = 9 test sequence = 175 init sequencess = 2 Όπως παρατηρούμε ο συνολικός βαθμός κάλυψης εξετασιμότητας (test coverage) είναι 99.09% με βάση τα στατιστικά για τη συγκεκριμένη λειτουργία εξέτασης (FULLSCAN) και 93.12% με βάση τα Global Statistics, το οποίο σημαίνει ότι ένα τμήμα της λογικής που χρησιμοποιήθηκε στη σχεδίαση δεν είναι παρατηρήσιμο και εξετάσιμο. Να σημειώσουμε ότι εξαιτίας του γεγονότος ότι κατά την εξέταση λαμβάνονται υπόψιν όλοι οι ακροδέκτες του σχεδίου και όχι μόνο του τμήματος ενδιαφέροντος προκύπτουν σε μερικές περιπτώσεις πολύ χαμηλές τιμές στις μετρικές. Στη συνέχεια παρουσιάζουμε συνοπτικά τα αποτελέσματα των συναρτήσεων netprofileclkscan και timingprofclkscan. Πίνακας 36 Αποτελέσματα συναρτήσεων μελέτης κατανάλωσης στο s3d s5378 netprofileclkscan timingprofclkscan Clock Cycles Nets Toggles Switching Activity 1.77% 1.77% Στην ακόλουθη εικόνα φαίνεται το αποτέλεσμα της συνάρτησης timingprofclkscan για το αποτέλεσμα της προσομοίωσης των αποτελεσμάτων της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG). 97

98 Εικόνα 5-15 Εναλλαγές ανά κύκλο ρολογιού στο s3d s5378 Για λόγους ευκρίνειας εικονίζονται τα αποτελέσματα των πρώτων 6000 κύκλων ρολογιού. Στη συνέχεια φαίνεται το αποτέλεσμα της συνάρτησης netprofileclkscan για το αποτέλεσμα της προσομοίωσης των αποτελεσμάτων της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG). Εικόνα 5-16 Εναλλαγές ανά ακροδέκτη στο s3d - s5378 Από το διάγραμμα επιβεβαιώνουμε ότι κατά την εξέταση ενεργοί ήταν μόνο οι ακροδέκτες του πρώτου επιπέδου του s3d που αντιστοιχεί στο κύκλωμα s5378. Να σημειώσουμε στο σημείο αυτό οι ακροδέκτες που είναι ενεργοί αλλά δεν ανήκουν στο επίπεδο που μας ενδιαφέρει 98

99 αντιστοιχούν στα σήματα ρολογιού των wrapper και οι οποίοι χρησιμοποιούνται αυτόματα κατά την εξέταση και για το λόγο αυτό εμφανίζονται εναλλαγές Αποτελέσματα ΒΥ_ΙΝ_ΒΥ Τα αποτελέσματα τμηματικού ελέγχου για το s3d με στόχο την εξέταση του s15850 φαίνονται στον ακόλουθο πίνακα: Πίνακας 37 Αποτελέσματα τμηματικού ελέγχου του s3d s15850 Testmode and Global Statistics ATCov Testmode Faults Global Faults Testmode Global Tested Untested Tested Untested Total Static 95.82% 91.34% Collapsed Static 97.63% 91.19% PI Static 86.67% 12.87% PO Static 18.45% 17.92% INFO (TBD-809): Master test vector file statistics: [end TBD_809] experiments = 1 test sections = 2 tester loops = 2 test procedures = 8 test sequence = 131 init sequencess = 2 Όπως παρατηρούμε ο συνολικός βαθμός κάλυψης εξετασιμότητας (test coverage) είναι 95.82% με βάση τα στατιστικά για τη συγκεκριμένη λειτουργία εξέτασης (FULLSCAN) και 91.34% με βάση τα Global Statistics, το οποίο σημαίνει ότι ένα τμήμα της λογικής που χρησιμοποιήθηκε στη σχεδίαση δεν είναι παρατηρήσιμο και εξετάσιμο. Στη συνέχεια παρουσιάζουμε συνοπτικά τα αποτελέσματα των συναρτήσεων netprofileclkscan και timingprofclkscan. Πίνακας 38 Αποτελέσματα συναρτήσεων μελέτης κατανάλωσης στο s3d s15850 netprofileclkscan timingprofclkscan Clock Cycles Nets Toggles Switching Activity 6.40% 6.40% 99

100 Στην ακόλουθη εικόνα φαίνεται το αποτέλεσμα της συνάρτησης timingprofclkscan για το αποτέλεσμα της προσομοίωσης των αποτελεσμάτων της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG). Εικόνα 5-17 Εναλλαγές ανά κύκλο ρολογιού στο s3d s15850 Για λόγους ευκρίνειας εικονίζονται τα αποτελέσματα των πρώτων 6000 κύκλων ρολογιού. Στη συνέχεια φαίνεται το αποτέλεσμα της συνάρτησης netprofileclkscan για το αποτέλεσμα της προσομοίωσης των αποτελεσμάτων της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG). 100

101 Εικόνα 5-18 Εναλλαγές ανά ακροδέκτη στο s3d s15850 Από το διάγραμμα επιβεβαιώνουμε ότι κατά την εξέταση ενεργοί ήταν μόνο οι ακροδέκτες του δεύτερου επιπέδου του s3d που αντιστοιχεί στο κύκλωμα s Αποτελέσματα ΒΥ_ΒΥ_ΙΝ Τα αποτελέσματα τμηματικού ελέγχου για το s3d με στόχο την εξέταση του s38584 φαίνονται στον ακόλουθο πίνακα: Πίνακας 39 Αποτελέσματα τμηματικού ελέγχου του s3d s38584 Testmode and Global Statistics ATCov Testmode Faults Global Faults Testmode Global Tested Untested Tested Untested Total Static 99.87% 98.05% Collapsed Static 99.84% 97.10% PI Static 86.67% 12.87% PO Static 83.09% 82.53% INFO (TBD-809): Master test vector file statistics: [end TBD_809] experiments = 1 test sections = 2 tester loops = 2 test procedures = 9 test sequence = 211 init sequencess = 2 101

102 Όπως παρατηρούμε ο συνολικός βαθμός κάλυψης εξετασιμότητας (test coverage) είναι 99.87% με βάση τα στατιστικά για τη συγκεκριμένη λειτουργία εξέτασης (FULLSCAN) και 98.05% με βάση τα Global Statistics, το οποίο σημαίνει ότι ένα τμήμα της λογικής που χρησιμοποιήθηκε στη σχεδίαση δεν είναι παρατηρήσιμο και εξετάσιμο. Στη συνέχεια παρουσιάζουμε συνοπτικά τα αποτελέσματα των συναρτήσεων netprofileclkscan και timingprofclkscan. Πίνακας 40 Αποτελέσματα συναρτήσεων μελέτης κατανάλωσης στο s3d - s38584 netprofileclkscan timingprofclkscan Clock Cycles Nets Toggles Switching Activity 21.15% 21.15% Στην ακόλουθη εικόνα φαίνεται το αποτέλεσμα της συνάρτησης timingprofclkscan για το αποτέλεσμα της προσομοίωσης των αποτελεσμάτων της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG). Εικόνα 5-19 Εναλλαγές ανά κύκλο ρολογιού στο s3d s38584 Για λόγους ευκρίνειας εικονίζονται τα αποτελέσματα των πρώτων 20 διανυσμάτων εξέτασης. Στη συνέχεια φαίνεται το αποτέλεσμα της συνάρτησης netprofileclkscan για το αποτέλεσμα της προσομοίωσης των αποτελεσμάτων της γεννήτριας παραγωγής διανυσμάτων αυτόματης εξέτασης (ATPG). 102

103 Εικόνα 5-20 Εναλλαγές ανά ακροδέκτη στο s3d s38584 Από το διάγραμμα επιβεβαιώνουμε ότι κατά την εξέταση ενεργοί ήταν μόνο οι ακροδέκτες του τρίτου επιπέδου του s3d που αντιστοιχεί στο κύκλωμα s Αποτελέσματα αλγορίθμου Διαχωρισμού (separatedft) Στην παρούσα παράγραφο παρουσιάζονται τα αποτελέσματα του αλγορίθμου separatedft για ένα νέο κύκλωμα τo s27, το οποίο λόγω μεγέθους ενδείκνυται για την παρουσίαση της λειτουργίας του αλγορίθμου, ενώ τα ήδη χρησιμοποιηθέντα κυκλώματα δεν παρέχουν αυτή τη δυνατότητα λόγω του όγκου τους. Στις εικόνες που ακολουθούν φαίνονται το κύκλωμα s27 στην αρχική του μορφή και μετά την προσθήκη δομών εξέτασης αντίστοιχα. Εικόνα 5-21 Κύκλωμα s27 - Αρχική σχεδίαση 103

104 Εικόνα 5-22 Κύκλωμα s27 με δομές εξέτασης DFT Στο διάγραμμα που ακολουθεί φαίνεται ο αριθμός των εναλλαγών για κάθε ακροδέκτη του κυκλώματος s27 μαζί με τις δομές σχεδίασης όπως προέκυψε από την εκτέλεση του αλγορίθμου netprofileclkscan στο αποτέλεσμα της προσομοίωσης του κυκλώματος. Επίσης, όπως φαίνεται σημειώνονται με μπλε χρώμα οι ακροδέκτες που ανήκουν αποκλειστικά στην αρχική σχεδίαση και με κόκκινο αυτοί που ανήκουν στις δομές εξέτασης (DFT). Εικόνα 5-23 Εναλλαγές ανά ακροδέκτη στο s27 Στο σημείο αυτό να αναφέρουμε ότι όπως επιβεβαιώνεται από τον αλγόριθμο netprofileclkscan το κύκλωμα s27 έχει 54 ακροδέκτες ενώ στο ανωτέρω διάγραμμα έχουμε στήλες μόνο για κάποιες από τις 54. Αυτό συμβαίνει διότι υπάρχουν ακροδέκτες στους οποίους δεν 104

105 παρατηρήθηκε καμία εναλλαγή κατά την προσομοίωση και άρα οι αντίστοιχες στήλες στο διάγραμμα έχουν μηδενικό ύψος. Στην εικόνα που ακολουθεί φαίνονται τα αποτελέσματα της χρησιμοποίησης του αλγορίθμου προκειμένου να εντοπιστούν οι ακροδέκτες των δομών σχεδίασης στο κύκλωμα s27 ώστε να διευκολύνουν το σχεδιαστή. Εικόνα 5-24 Επισήμανση ακροδεκτών δομών εξέτασης (DFT) 105

106 6 Συμπεράσματα Στο παρόν κεφάλαιο συνοψίζουμε τα αποτελέσματα των επιμέρους πειραμάτων συγκρίνοντάς τα μεταξύ τους, όπου αυτό είναι δυνατό και σκόπιμο, εξάγουμε τα τελικά συμπεράσματα και στο τέλος παραθέτουμε μια λίστα με ανοιχτά θέματα που προέκυψαν ως πιθανή εξέλιξη του παρόντος πονήματος. 6.1 Ερμηνεία των αποτελεσμάτων Το πρώτο που παρατηρεί κανείς μέσω των αποτελεσμάτων στο προηγούμενο κεφάλαιο είναι ότι αυξάνεται ο βαθμός λειτουργίας του κυκλώματος (switching activity) όσο αυξάνει το μέγεθος του κυκλώματος. Τα αποτελέσματα φαίνονται στον ακόλουθο πίνακα. Πίνακας 41 Βαθμός λειτουργίας μέγεθος κυκλώματος Χωρίς Wrapper Με Wrapper # Nets Switching Activity (%) # Nets Switching Activity (%) s s s Το γεγονός αυτό είναι απόλυτα λογικό καθώς όσο αυξάνεται το μέγεθος ενός κυκλώματος τόσο μεγαλύτερες θα είναι οι αλυσίδες σάρωσης που σημαίνει μεγαλύτερα διανύσματα εξέτασης και άρα περισσότερο χρόνο εξέτασης και περισσότερες εναλλαγές μέχρι το στάδιο της σύλληψης (capture) ώστε να διαπιστωθούν τυχόν σφάλματα. Βέβαια στο σημείο αυτό να αναφέρουμε ότι ο βαθμός λειτουργίας του κυκλώματος εξαρτάται και από το πλήθος και την «ποιότητα» των διανυσμάτων εξέτασης. Αν για παράδειγμα χρησιμοποιήσουμε μόνο ένα τμήμα των παραχθέντων διανυσμάτων εξέτασης είναι προφανές ότι ο χρόνος εξέτασης θα είναι περιορισμένος και πιθανόν να μην εξεταστούν όλοι οι ακροδέκτες με συνέπεια να έχουμε μικρό βαθμό λειτουργίας του κυκλώματος. Επίσης, αν παρατηρήσουμε τα διαγράμματα των εναλλαγών ανά κύκλο ρολογιού στην αρχική σχεδίαση ενός κυκλώματος χωρίς το Wrapper και στην τελική με το Wrapper θα διαπιστώσουμε ότι στον ίδιο χρόνο έχουμε περισσότερα διανύσματα που εξετάζονται στην περίπτωση χωρίς το Wrapper. Ισοδύναμα δηλαδή σημαίνει ότι για την πλήρη εξέταση του κυκλώματος με το Wrapper ακόμα και για το ίδιο πλήθος διανυσμάτων εξέτασης θέλουμε περισσότερο χρόνο εξέτασης. Χαρακτηριστικό παράδειγμα το κύκλωμα s15850 χωρίς Wrapper τα αποτελέσματα του οποίου φαίνονται στην Εικόνα

107 Εικόνα επανάληψη όπου για 7500 κύκλους ρολογιού έχουμε πάνω από 40 διανύσματα εξέτασης, εφόσον κάθε διάνυσμα είναι μια ευδιάκριτη περιοχή ολίσθησης σάρωσης (scan-shift) και σύλληψης (capture). Στο ίδιο κύκλωμα μετά την προσθήκη του Wrapper, τα αποτελέσματα του οποίου φαίνονται στην Εικόνα 5-7 Εικόνα 5-7 επανάληψη παρατηρούμε ότι σε 7500 κύκλους ρολογιού έχουμε 10 μόλις διανύσματα εξέτασης. Μάλιστα η ψαλίδα μεγαλώνει όσο αυξάνεται το μέγεθος του κυκλώματος. Στο σημείο αυτό να σχολιάσουμε 107

108 ότι όπως παρατηρούμε σε όλα τα ενεργειακά διαγράμματα, δηλαδή τα αποτελέσματα των συναρτήσεων netprofileclkscan και timingprofscan, η πρώτη «ζώνη λειτουργίας» έχει την χαμηλότερη κατανάλωση ενέργειας εξαιτίας του γεγονότος ότι για πρώτη φορά εισάγονται τιμές στο «άδειο» αρχικά κύκλωμα. Επίσης, όπως φαίνεται υπάρχουν κύκλοι που εμφανίζουν υψηλό αριθμό εναλλαγών, οι οποίοι όπως έχουμε αναφέρει αντιστοιχούν στη λειτουργία σύλληψης (capture), όμως η κατανάλωση σε αυτούς είναι χαμηλότερη από τη συνολική κατανάλωση στην αντίστοιχη «ζώνη». Αυτό συμβαίνει διότι η σύλληψη διαρκεί έναν κύκλο ρολογιού, στον οποίο λειτουργεί κανονικά το κύκλωμα με αποτέλεσμα να καταγράφεται υψηλός αριθμός εναλλαγών, ενώ η ολίσθηση σάρωσης διαρκεί περισσότερους και συγκεκριμένα όσους το μήκος των αλυσίδων σάρωσης. Το παραπάνω συμπέρασμα μας οδήγησε και σε μια άλλη διαπίστωση. Το γεγονός ότι η προσομοίωση όλων των διανυσμάτων εξέτασης αυξάνεται με το μέγεθος του κυκλώματος μπορεί να οδηγήσει σε πρακτικά άπειρο χρόνο περαίωσης της διαδικασίας, κάτι το οποίο επιβεβαιώνεται και από το βιομηχανικό χώρο. Το γεγονός αυτό κάνει επιτακτική την ανάγκη να βρεθεί τρόπος αξιόπιστης εξέτασης του κυκλώματος με τη χρήση ορισμένων αντιπροσωπευτικών διανυσμάτων εξέτασης. Στην περίπτωσή, επί παραδείγματι, του κυκλώματος s38584 χωρίς Wrapper που φαίνεται στην Εικόνα 5-10 Εικόνα επανάληψη βλέπουμε ότι υπάρχουν περιοχές ακροδεκτών που ενδεχομένως δεν ελέγχθηκαν στο σύνολό τους (χαμηλό πλήθος εναλλαγών). Τα αποτελέσματα προέκυψαν με την προσομοίωση των 10 πρώτων διανυσμάτων εξέτασης. Μολονότι το πλήθος τους ήταν περιορισμένο σε σχέση με τα 209 διανύσματα εξέτασης που παρήχθησαν από τη Γεννήτρια Παραγωγής Διανυσμάτων Αυτόματης Εξέτασης (ATPG) η κάλυψη του κυκλώματος με εξαίρεση ορισμένους ακροδέκτες είναι αρκετά ικανοποιητική. 108

Κεφάλαιο 15 o. Γ. Τσιατούχας. VLSI Systems and Computer Architecture Lab. Έλεγχος Ορθής Λειτουργίας 2

Κεφάλαιο 15 o. Γ. Τσιατούχας. VLSI Systems and Computer Architecture Lab. Έλεγχος Ορθής Λειτουργίας 2 ΚΥΚΛΩΜΑΤΑ VLSI Πανεπιστήμιο Ιωαννίνων Έλεγχος Ορθής Λειτουργίας Κεφάλαιο 15 o Τμήμα Μηχανικών Η/Υ και Πληροφορικής Γ. Τσιατούχας ΚΥΚΛΩΜΑΤΑ VLSI Διάρθρωση 1. Ελαττώματα, σφάλματα, λάθη 2. Ανίχνευση σφαλμάτων

Διαβάστε περισσότερα

Σωστή απάντηση το: Γ. Απάντηση

Σωστή απάντηση το: Γ. Απάντηση Ειδικά Θέματα Ελέγχου Ορθής Λειτουργίας VLSI Συστημάτων - Σχεδιασμός για Εύκολο Έλεγχο Εξετάσεις ΟΣΥΛ & ΕΤΥ 4-7- 2016 Ειδικά Θέματα Σχεδίασης Ψηφιακών Συστημάτων Εξετάσεις μαθήματος επιλογής Τμήματος Μηχανικών

Διαβάστε περισσότερα

ΑΝΑΛΥΣΗ ΤΗΣ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ ΕΝΑΛΛΑΓΗΣ ΛΟΓΙΚΩΝ ΤΙΜΩΝ ΣΕ ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΚΥΚΛΩΜΑΤΑ ΚΑΤΑ ΤΗ ΔΙΑΡΚΕΙΑ ΤΗΣ ΕΞΕΤΑΣΗΣ ΤΟΥΣ

ΑΝΑΛΥΣΗ ΤΗΣ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ ΕΝΑΛΛΑΓΗΣ ΛΟΓΙΚΩΝ ΤΙΜΩΝ ΣΕ ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΚΥΚΛΩΜΑΤΑ ΚΑΤΑ ΤΗ ΔΙΑΡΚΕΙΑ ΤΗΣ ΕΞΕΤΑΣΗΣ ΤΟΥΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Διπλωματική Εργασία ΑΝΑΛΥΣΗ ΤΗΣ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ ΕΝΑΛΛΑΓΗΣ

Διαβάστε περισσότερα

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

σφαλμάτων Δημήτρης Νικολός, Τμήμα Μηχ. Ηλεκτρονικών Υπολογιστών και Πληροφορικής, Παν. Πατρών Λογική εξομοίωση και εξομοίωση σφαλμάτων Περίγραμμα ργρ Επιβεβαίωση σχεδιασμού και εξομοίωση (Verification and Simulation) Είδη εξομοίωσης (Types of Simulation) Εξομοίωση σφαλμάτων (Fault Simulation) Σειριακή

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

«Εγχειρίδιο Προγράμματος Atalanta 2.0»

«Εγχειρίδιο Προγράμματος Atalanta 2.0» ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ «Εγχειρίδιο Προγράμματος Atalanta 2.0» Μαργαρίτα Κουτσουπιά Μηχ. Η/Υ και Πληροφορικής ΠΑΤΡΑ 2009 Το Atalanta αποτελεί μία Αυτόματη

Διαβάστε περισσότερα

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

Τεχνικές σχεδιασμού μονοπατιών ολίσθησης Τεχνικές σχεδιασμού μονοπατιών ολίσθησης (Scan Path Design Techniques) Περίγραμμα παρουσίασης Προβλήματα ελέγχου ορθής λειτουργίας ακολουθιακών κυκλωμάτων Μονοπάτι ολίσθησης (scan path) Στοιχεία μνήμης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο Ένα συνδυαστικό κύκλωµα µπορεί να περιγραφεί από: Φεβ-05. n-είσοδοι ΗΜΥ 2: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο 25 Φεβ-5 ΗΜΥ-2: Λογικός Σχεδιασµός Εαρινό Εξάµηνο 25 Κεφάλαιο 3 -i: Σχεδιασµός Συνδυαστικών Κυκλωµάτων Περίληψη Αρχές σχεδιασµού Ιεραρχία σχεδιασµού Σχεδιασµός

Διαβάστε περισσότερα

«Εγχειρίδιο Προγράμματος Hope (version 2)»

«Εγχειρίδιο Προγράμματος Hope (version 2)» ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ «Εγχειρίδιο Προγράμματος Hope (version 2)» Μαργαρίτα Κουτσουπιά Μηχ. Η/Υ και Πληροφορικής ΠΑΤΡΑ 2009 Το Hope αποτελεί έναν Παράλληλο

Διαβάστε περισσότερα

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

Εργαστήριο Εισαγωγής στη Σχεδίαση Συστημάτων VLSI Ε.Μ.Π. - ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ VLSI

Διαβάστε περισσότερα

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

Κεφάλαιο 7 ο. Γ. Τσιατούχας. VLSI Technology and Computer Architecture Lab. Ακολουθιακή Λογική 2 ΚΥΚΛΩΜΑΤΑ VLSI Ακολουθιακή Λογική Κεφάλαιο 7 ο Γ. Τσιατούχας ΚΥΚΛΩΜΑΤΑ VLSI Διάρθρωση 1. Δισταθή κυκλώματα Μεταστάθεια 2. Μανδαλωτές 3. Flip Flops Flops 4. Δομές διοχέτευσης 5. Διανομή ρολογιού 6. Συγχρονισμός

Διαβάστε περισσότερα

Διαφορές single-processor αρχιτεκτονικών και SoCs

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

Διαβάστε περισσότερα

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

K24 Ψηφιακά Ηλεκτρονικά 9: Flip-Flops K24 Ψηφιακά Ηλεκτρονικά 9: TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΧΝΟΛΟΓΙΚΟ Περιεχόμενα 1 2 3 Γενικά Ύστερα από τη μελέτη συνδυαστικών ψηφιακών κυκλωμάτων, θα μελετήσουμε

Διαβάστε περισσότερα

Δημήτρης Νικολός, Τμήμα Μηχ. Ηλεκτρονικών πολογιστών και πληροφορικής, Παν. Πατρών

Δημήτρης Νικολός, Τμήμα Μηχ. Ηλεκτρονικών πολογιστών και πληροφορικής, Παν. Πατρών Πρότυπο ελέγχου ορθής λειτουργίας εμφωλευμένων προσχεδιασμένων μονάδων (IEEE STD 1500) Συστήματα που υλοποιούνται σε ένα ολοκληρωμένο κύκλωμα (SOCs) Απαίτηση μείωσης του χρόνου ανάπτυξης Έλλειψη τεχνογνωσίας

Διαβάστε περισσότερα

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

Κυκλωμάτων» Χειμερινό εξάμηνο «Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 Εισαγωγή στα Συστήματα Ολοκληρωμένων Κυκλωμάτων Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής http://diceslab.cied.teiwest.gr E-mail: pkitsos@teimes.gr

Διαβάστε περισσότερα

Σχεδίαση για Δοκιμαστικότητα (Design for Testability DFT) Δημήτρης Νικολός Τμήμα Μηχ. Ηλεκτρονικών Υπολογιστών και Πληροφορικής, Παν.

Σχεδίαση για Δοκιμαστικότητα (Design for Testability DFT) Δημήτρης Νικολός Τμήμα Μηχ. Ηλεκτρονικών Υπολογιστών και Πληροφορικής, Παν. Σχεδίαση για Δοκιμαστικότητα (Design for Testability DFT) Έλεγχος Πολύπλοκων Συστημάτων Μπορούμε να εξάγουμε διανύσματα δοκιμής για την ανίχνευση όλων των σφαλμάτων που μας ενδιαφέρουν; O χρόνος εξαγωγής

Διαβάστε περισσότερα

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

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Βασισμένο σε μια εργασία των Καζαρλή, Καλόμοιρου, Μαστοροκώστα, Μπαλουκτσή, Καλαϊτζή, Βαλαή, Πετρίδη Εισαγωγή Η Εξελικτική Υπολογιστική

Διαβάστε περισσότερα

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

Περιεχόμενα. Πρόλογος... XI. Κεφάλαιο 1. Συστήματα Βασισμένα σε FPGA Κεφάλαιο 2. Τεχνολογία VLSI Εισαγωγή Βασικές Αρχές... Περιεχόμενα Πρόλογος... XI Κεφάλαιο 1. Συστήματα Βασισμένα σε FPGA... 1 1.1 Εισαγωγή... 1 1.2 Βασικές Αρχές... 1 1.2.1 Boolean Άλγεβρα... 1 1.2.2 Σχηματικά και Λογικά Σύμβολα... 6 1.3 Ψηφιακή Σχεδίαση

Διαβάστε περισσότερα

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

Διαβάστε περισσότερα

Προβλήµατα και τεχνικές

Προβλήµατα και τεχνικές LOW POWER TESTING Προβλήµατα και τεχνικές 1 Προβλήµατα Προβλήµατα Πιθανές βλάβες κατά την διάρκεια της διαδικασίας λόγω αυξηµένης διακοπτικής δραστηριότητας και συνήθως µη ποιοτικού packaging που οδηγούν

Διαβάστε περισσότερα

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

ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - VHDL ΑΝΤΩΝΗΣ ΠΑΣΧΑΛΗΣ ΕΘΝΙΚΟΝ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟΝ ΠΑΝΕΠΙΣΤΗΜΙΟΝ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - VHDL ΥΛΙΚΟ ΚΑΙ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΠΣ Πληροφορικής και Τηλεπικοινωνιών, E Εξάμηνο

Διαβάστε περισσότερα

Κεφάλαιο 3 ο Ακολουθιακά Κυκλώματα με ολοκληρωμένα ΤΤL

Κεφάλαιο 3 ο Ακολουθιακά Κυκλώματα με ολοκληρωμένα ΤΤL Κεφάλαιο 3 ο Ακολουθιακά Κυκλώματα με ολοκληρωμένα ΤΤL 3.1 Εισαγωγή στα FLIP FLOP 3.1.1 Θεωρητικό Υπόβαθρο Τα σύγχρονα ακολουθιακά κυκλώματα με τα οποία θα ασχοληθούμε στο εργαστήριο των Ψηφιακών συστημάτων

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2018-2019 Ροή Σχεδίασης Κυκλωμάτων και Εργαλεία CAD ΗΥ220 - Βασίλης Παπαευσταθίου 1 Transistor: Δομική μονάδα κυκλωμάτων Τα ολοκληρωμένα κυκλώματα

Διαβάστε περισσότερα

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2017-2018 Ροή Σχεδίασης Κυκλωμάτων και Εργαλεία CAD ΗΥ220 - Γιώργος Καλοκαιρινός & Βασίλης Παπαευσταθίου 1 Transistor: Δομική μονάδα κυκλωμάτων Τα

Διαβάστε περισσότερα

ΣΤΑΤΙΚΕΣ ΚΑΙ ΔΥΝΑΜΙΚΕΣ ΜΝΗΜΕΣ ΤΥΧΑΙΑΣ ΠΡΟΣΠΕΛΑΣΗΣ (Static and Dynamic RAMs). ΔΙΑΡΘΡΩΣΗ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΘΕΜΑΤΙΚΕΣ ΕΝΟΤΗΤΕΣ

ΣΤΑΤΙΚΕΣ ΚΑΙ ΔΥΝΑΜΙΚΕΣ ΜΝΗΜΕΣ ΤΥΧΑΙΑΣ ΠΡΟΣΠΕΛΑΣΗΣ (Static and Dynamic RAMs). ΔΙΑΡΘΡΩΣΗ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΘΕΜΑΤΙΚΕΣ ΕΝΟΤΗΤΕΣ ΣΤΑΤΙΚΕΣ ΚΑΙ ΔΥΝΑΜΙΚΕΣ ΜΝΗΜΕΣ ΤΥΧΑΙΑΣ ΠΡΟΣΠΕΛΑΣΗΣ (Static and Dynamic RAMs). ΔΙΑΡΘΡΩΣΗ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΘΕΜΑΤΙΚΕΣ ΕΝΟΤΗΤΕΣ ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΗΜΙΑΓΩΓΙΚΩΝ ΜΝΗΜΩΝ. ΒΑΣΙΚΗ ΛΕΙΤΟΥΡΓΙΑ RAM CMOS. ΤΥΠΟΙ ΚΥΤΤΑΡΩΝ ΑΡΧΕΣ

Διαβάστε περισσότερα

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Παρακάτω δίνονται μερικοί από τους ακροδέκτες που συναντάμε στην πλειοψηφία των μικροεπεξεργαστών. Φτιάξτε έναν πίνακα που να

Διαβάστε περισσότερα

Κεφάλαιο 6. Σύγχρονα και ασύγχρονα ακολουθιακά κυκλώματα

Κεφάλαιο 6. Σύγχρονα και ασύγχρονα ακολουθιακά κυκλώματα Κεφάλαιο 6 Σύγχρονα και ασύγχρονα ακολουθιακά κυκλώματα 6.1 Εισαγωγή Η εκτέλεση διαδοχικών λειτουργιών απαιτεί τη δημιουργία κυκλωμάτων που μπορούν να αποθηκεύουν πληροφορίες, στα ενδιάμεσα στάδια των

Διαβάστε περισσότερα

Εργαστηριακή Άσκηση 4: Ιεραρχική σχεδίαση και προσχεδιασμένοι πυρήνες

Εργαστηριακή Άσκηση 4: Ιεραρχική σχεδίαση και προσχεδιασμένοι πυρήνες Εργαστηριακή Άσκηση 4: Ιεραρχική σχεδίαση και προσχεδιασμένοι πυρήνες Στην 4 η εργαστηριακή άσκηση θα ασχοληθούμε με την ιεραρχική σχεδίαση. Συγκεκριμένα θα μάθουμε να σχεδιάζουμε απλές οντότητες τις οποίες

Διαβάστε περισσότερα

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

Εργαστήριο Εισαγωγής στη Σχεδίαση Συστημάτων VLSI Ε.Μ.Π. - ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ VLSI

Διαβάστε περισσότερα

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Η έννοια του συνδυαστικού

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Bλάβες, ελαττώματα και. Δημήτρης Νικολός, Τμήμα Μηχ. Ηλεκτρονικών Υπολογιστών και Πληροφορικής, Παν. Πατρών

Bλάβες, ελαττώματα και. Δημήτρης Νικολός, Τμήμα Μηχ. Ηλεκτρονικών Υπολογιστών και Πληροφορικής, Παν. Πατρών Bλάβες, ελαττώματα και μοντέλα σφαλμάτων Περίγραμμα ργρ παρουσίασης Βλάβες (Failures) Ελαττώματα (Defects) Μοντέλα σφαλμάτων (Fault models) Μοντέλο σφαλμάτων μόνιμης μης τιμής (Stuck-at faults Βραχυκυκλώματα

Διαβάστε περισσότερα

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 3 : Μια άποψη του κορυφαίου επιπέδου λειτουργίας και διασύνδεσης του υπολογιστή Καρβούνης Ευάγγελος Η έννοια

Διαβάστε περισσότερα

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

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ: ΑΝΙΧΝΕΥΣΗ ΣΦΑΛΜΑΤΩΝ ΣΕ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΔΙΚΤΥΑ ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ: ΑΝΙΧΝΕΥΣΗ ΣΦΑΛΜΑΤΩΝ ΣΕ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΔΙΚΤΥΑ ΑΝΙΧΝΕΥΣΗ ΣΦΑΛΜΑΤΩΝ: Κυκλικός Έλεγχος Πλεονασμού CRC codes Cyclic Redundancy Check codes Ο μηχανισμός ανίχνευσης σφαλμάτων στις επικοινωνίες

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ Κ Υ Κ Λ Ο Υ Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Κ Α Ι Υ Π Η Ρ Ε Σ Ι Ω Ν Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Η

Διαβάστε περισσότερα

Συστήματα σε Ολοκληρωμένα Κυκλώματα

Συστήματα σε Ολοκληρωμένα Κυκλώματα Συστήματα σε Ολοκληρωμένα Κυκλώματα Κεφάλαιο 2: Τεχνικές για Σχεδιασμό Χαμηλής Κατανάλωσης Ισχύος στα MPSoCs Διδάσκων: Καθηγητής Οδυσσέας Κουφοπαύλου Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 9. Tα Flip-Flop

ΑΣΚΗΣΗ 9. Tα Flip-Flop ΑΣΚΗΣΗ 9 Tα Flip-Flop 9.1. ΣΚΟΠΟΣ Η κατανόηση της λειτουργίας των στοιχείων μνήμης των ψηφιακών κυκλωμάτων. Τα δομικά στοιχεία μνήμης είναι οι μανδαλωτές (latches) και τα Flip-Flop. 9.2. ΘΕΩΡΗΤΙΚΟ ΜΕΡΟΣ

Διαβάστε περισσότερα

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

Κεφάλαιο 10 ο. Γ. Τσιατούχας. VLSI Systems and Computer Architecture Lab. Ακολουθιακή Λογική 2 ΚΥΚΛΩΜΑΤΑ VLSI Πανεπιστήμιο Ιωαννίνων Ακολουθιακή Λογική Κεφάλαιο 10 ο Τμήμα Μηχανικών Η/Υ και Πληροφορικής Γ. Τσιατούχας ΚΥΚΛΩΜΑΤΑ VLSI Διάρθρωση 1. Δισταθή κυκλώματα Μεταευστάθεια 2. Μανδαλωτές 3. Flip

Διαβάστε περισσότερα

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ψηφιακή Σχεδίαση Ενότητα 9: Ελαχιστοποίηση και Κωδικοποίηση Καταστάσεων, Σχεδίαση με D flip-flop, Σχεδίαση με JK flip-flop, Σχεδίαση με T flip-flop Δρ. Μηνάς

Διαβάστε περισσότερα

Τεχνικές βελτιστοποίησης µε σκοπό την επίτευξη χαµηλής κατανάλωσης ισχύος

Τεχνικές βελτιστοποίησης µε σκοπό την επίτευξη χαµηλής κατανάλωσης ισχύος Low power techniques Τεχνικές βελτιστοποίησης µε σκοπό την επίτευξη χαµηλής κατανάλωσης ισχύος Γενικά Τεχνικές βιοµηχανίας Μείωση χωρητικοτήτων chip και package Μέσω process development πολύ αποτελεσµατική

Διαβάστε περισσότερα

Κεφάλαιο 8. Αριθμητική Λογική μονάδα

Κεφάλαιο 8. Αριθμητική Λογική μονάδα Κεφάλαιο 8 Αριθμητική Λογική μονάδα 8.1 Εισαγωγή Στη μηχανική υπολογιστών η αριθμητική/λογική μονάδα (ALU) είναι ένα ψηφιακό κύκλωμα το οποίο εκτελεί αριθμητικούς και λογικούς υπολογισμούς. Η ALU είναι

Διαβάστε περισσότερα

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

Πτυχιακή Εργασία Σχεδίαση κυκλωμάτων επικοινωνίας με απλές οθόνες, με τη γλώσσα VHDL και υλοποίηση στις αναπτυξιακές πλακέτες LP-2900 και DE2. ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. Πτυχιακή Εργασία Σχεδίαση κυκλωμάτων επικοινωνίας με απλές οθόνες, με τη γλώσσα VHDL και υλοποίηση στις αναπτυξιακές

Διαβάστε περισσότερα

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

Συστήματα VLSI. Εισαγωγή. Γιώργος Δημητρακόπουλος. Δημοκρίτειο Πανεπιστήμιο Θράκης. Άνοιξη 2014 Συστήματα VLSI Εισαγωγή Γιώργος Δημητρακόπουλος Δημοκρίτειο Πανεπιστήμιο Θράκης Άνοιξη 2014 Συστήματα VLSI 1 Τα ολοκληρωμένα κυκλώματα από «μέσα» Συστήματα VLSI 2 Τα εργαλεία της σχεδίασης Algorithms-Applications

Διαβάστε περισσότερα

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

7 η Θεµατική Ενότητα : Εισαγωγή στις Γλώσσες Περιγραφής Υλικού 7 η Θεµατική Ενότητα : Εισαγωγή στις Γλώσσες Περιγραφής Υλικού Εισαγωγή Η χειρονακτική σχεδίαση ενός ψηφιακού συστήµατος είναι εξαιρετικά δύσκολη και επιρρεπής σε λάθη Συστήµατα που ξεπερνούς τις µερικές

Διαβάστε περισσότερα

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

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Μετρητές 1 ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων Μετρητές Διδάσκουσα: Μαρία Κ. Μιχαήλ Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Περίληψη Μετρητής Ριπής Σύγχρονος υαδικός Μετρητής

Διαβάστε περισσότερα

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

Διαβάστε περισσότερα

Λιβανός Γιώργος Εξάμηνο 2017Β

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

Διαβάστε περισσότερα

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

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ Εργαστήριο Σχεδίασης Ψηφιακών Ολοκληρωμένων Κυκλωμάτων και Συστημάτων «Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο 2016-2017 Διάλεξη 5 η :

Διαβάστε περισσότερα

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα Τµήµα Διοίκησης Επιχειρήσεων Τει Δυτικής Ελλάδας Μεσολόγγι Δρ. Α. Στεφανή Διάλεξη 5 2 Εγκυροποίηση Λογισµικού Εγκυροποίηση Λογισµικού

Διαβάστε περισσότερα

Πανεπιστήμιο Πατρών. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών

Πανεπιστήμιο Πατρών. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Πανεπιστήμιο Πατρών Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Εργαστήριο Σχεδίασης Ολοκληρωμένων Κυκλωμάτων Σχεδιασμός Ολοκληρωμένων Συστημάτων με τεχνικές VLSI Χειμερινό Εξάμηνο 2015 FSM

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ Εργαστήριο Σχεδίασης Ψηφιακών Ολοκληρωμένων Κυκλωμάτων και Συστημάτων «Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο 2016-2017 Διάλεξη 1 η :

Διαβάστε περισσότερα

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2 Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου Ενότητα 2 Τι είναι το PLC ΠΕΡΙΕΧΟΜΕΝΑ 2 Τι είναι το PLC. 2.1 Πλεονεκτήματα των PLC. 2.2 Η δομή ενός PLC. 2.3 Τα PLC της αγοράς. 2.4 Αρχή λειτουργίας ενός PLC.

Διαβάστε περισσότερα

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

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 15: Καταχωρητές (Registers) ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 15: Καταχωρητές (Registers) ΧΑΡΗΣ ΘΕΟΧΑΡΙΔΗΣ Επίκουρος Καθηγητής, ΗΜΜΥ (ttheocharides@ucy.ac.cy) Περίληψη q Καταχωρητές Παράλληλης

Διαβάστε περισσότερα

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

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Καταχωρητές 1 ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων Καταχωρητές Διδάσκουσα: Μαρία Κ. Μιχαήλ Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Περίληψη Καταχωρητές Παράλληλης Φόρτωσης Καταχωρητές

Διαβάστε περισσότερα

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

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Μηχανές Πεπερασμένων Καταστάσεων «Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 Μηχανές Πεπερασμένων Καταστάσεων Παρασκευάς Κίτσος http://diceslab.cied.teiwest.gr Επίκουρος Καθηγητής Tμήμα Μηχανικών Πληροφορικής ΤΕ

Διαβάστε περισσότερα

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

6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή 6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή Εισαγωγή Η σχεδίαση ενός ψηφιακού συστήµατος ως ακολουθιακή µηχανή είναι εξαιρετικά δύσκολη Τµηµατοποίηση σε υποσυστήµατα µε δοµικές µονάδες:

Διαβάστε περισσότερα

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

Διαβάστε περισσότερα

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

Ψηφιακή Λογική Σχεδίαση Ψηφιακή Λογική Σχεδίαση Επιμέλεια: Γεώργιος Θεοδωρίδης, Επίκουρος Καθηγητής Ανδρέας Εμερετλής, Υποψήφιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σημείωμα Αδειοδότησης Το παρόν

Διαβάστε περισσότερα

8.1 Θεωρητική εισαγωγή

8.1 Θεωρητική εισαγωγή ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 8 ΣΤΟΙΧΕΙΑ ΜΝΗΜΗΣ ΚΑΤΑΧΩΡΗΤΕΣ Σκοπός: Η µελέτη της λειτουργίας των καταχωρητών. Θα υλοποιηθεί ένας απλός στατικός καταχωρητής 4-bit µε Flip-Flop τύπου D και θα µελετηθεί

Διαβάστε περισσότερα

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

Καταστάσεων. Καταστάσεων 8 η Θεµατική Ενότητα : Εισαγωγή Ησχεδίαση ενός ψηφιακού συστήµατος µπορεί να διαιρεθεί σε δύο µέρη: τα κυκλώµατα επεξεργασίας δεδοµένων και τα κυκλώµατα ελέγχου. Το κύκλωµα ελέγχου δηµιουργεί σήµατα για

Διαβάστε περισσότερα

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

Ψηφιακά ολοκληρωμένα κυκλώματα Ψηφιακά ολοκληρωμένα κυκλώματα Εισαγωγή Γιώργος Δημητρακόπουλος Δημοκρίτειο Πανεπιστήμιο Θράκης Φθινόπωρο 2013 Ψηφιακά ολοκληρωμένα κυκλώματα 1 O κόσμος των ηλεκτρονικών... Ψηφιακά ολοκληρωμένα κυκλώματα

Διαβάστε περισσότερα

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

ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων ΗΜΥ-2: Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Μετρητές Διδάσκουσα: Μαρία Κ. Μιχαήλ Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Περίληψη Μετρητής Ριπής Σύγχρονος υαδικός

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Κ. Δεμέστιχας Εργαστήριο Πληροφορικής Γεωπονικό Πανεπιστήμιο Αθηνών Επικοινωνία μέσω e-mail: cdemest@aua.gr, cdemest@cn.ntua.gr 1 5. ΑΛΓΕΒΡΑ BOOLE ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ ΜΕΡΟΣ Β 2 Επαναληπτική

Διαβάστε περισσότερα

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

VHDL Εισαγωγικές έννοιες VHDL Εισαγωγικές έννοιες ρ. Κ. Καραφασούλης ckaraf@aegean.gr Σχεδίαση Αρχικά ψηφιακά κυκλώµατα µπορούν να σχεδιασθούν µε το κατάλληλο λογισµικό. Μεγαλύτερα κυκλώµατα µπορούν να σχεδιασθούν ιεραρχικά από

Διαβάστε περισσότερα

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΟΙ ΚΑΤΑΧΩΡΗΤΕΣ ΚΑΙ Η ΥΛΟΠΟΙΗΣΗ ΤΟΥΣ ΜΕ FLIP-FLOP ΚΑΙ ΠΥΛΕΣ

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΟΙ ΚΑΤΑΧΩΡΗΤΕΣ ΚΑΙ Η ΥΛΟΠΟΙΗΣΗ ΤΟΥΣ ΜΕ FLIP-FLOP ΚΑΙ ΠΥΛΕΣ ΑΣΠΑΙΤΕ ΤΜΗΜΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΗΛΕΚΤΡΟΛΟΓΙΑΣ ΕΡΓΑΣΤΗΡΙΟ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ & μ-υπολογιστων ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΟΙ ΚΑΤΑΧΩΡΗΤΕΣ ΚΑΙ Η ΥΛΟΠΟΙΗΣΗ ΤΟΥΣ ΜΕ FLIP-FLOP ΚΑΙ ΠΥΛΕΣ Θεωρητικό

Διαβάστε περισσότερα

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

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ Εργαστήριο Σχεδίασης Ψηφιακών Ολοκληρωμένων Κυκλωμάτων και Συστημάτων «Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο 2016-2017 Διάλεξη 6 η :

Διαβάστε περισσότερα

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

Περίληψη. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο Μετρητής Ριπής (Ripple Counter) Μετρητές (Counters) Μετρητής Ριπής (συν. ΗΜΥ-2: Λογικός Σχεδιασµός Εαρινό Κεφάλαιο 7 ii: Μετρητές Πανεπιστήµιο Κύπρου Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Μετρητής Ριπής Περίληψη Σύγχρονος υαδικός Μετρητής Σχεδιασµός µε Flip-Flops

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 9 ΑΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ (COUNTERS)

ΑΣΚΗΣΗ 9 ΑΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ (COUNTERS) ΑΣΚΗΣΗ 9 ΑΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ (COUNTERS) Αντικείμενο της άσκησης: H σχεδίαση και η χρήση ασύγχρονων απαριθμητών γεγονότων. Με τον όρο απαριθμητές ή μετρητές εννοούμε ένα ακολουθιακό κύκλωμα με FF, οι καταστάσεις

Διαβάστε περισσότερα

Ενότητα ΑΡΧΕΣ ΑΚΟΛΟΥΘΙΑΚΗΣ ΛΟΓΙΚΗΣ LATCHES & FLIP-FLOPS

Ενότητα ΑΡΧΕΣ ΑΚΟΛΟΥΘΙΑΚΗΣ ΛΟΓΙΚΗΣ LATCHES & FLIP-FLOPS Ενότητα ΑΡΧΕΣ ΑΚΟΛΟΥΘΙΑΚΗΣ ΛΟΓΙΚΗΣ LATCHES & FLIP-FLOPS Γενικές Γραμμές Ακολουθιακή Λογική Μεταστάθεια S-R RLatch h( (active high h&l low) S-R Latch with Enable Latch Flip-Flop Ασύγχρονοι είσοδοι PRESET

Διαβάστε περισσότερα

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

Ασύγχρονοι Απαριθμητές. Διάλεξη 7 Ασύγχρονοι Απαριθμητές Διάλεξη 7 Δομή της διάλεξης Εισαγωγή στους Απαριθμητές Ασύγχρονος Δυαδικός Απαριθμητής Ασύγχρονος Δεκαδικός Απαριθμητής Ασύγχρονος Δεκαδικός Απαριθμητής με Latch Ασκήσεις 2 Ασύγχρονοι

Διαβάστε περισσότερα

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Καταχωρητές και Μετρητές 2. Επιμέλεια Διαφανειών: Δ.

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Καταχωρητές και Μετρητές 2. Επιμέλεια Διαφανειών: Δ. Πανεπιστήμιο Πατρών Τμήμα Φυσικής Ψηφιακά Ηλεκτρονικά Καταχωρητές και Μετρητές Επιμέλεια Διαφανειών: Δ. Μπακάλης Πάτρα, Φεβρουάριος 2009 Εισαγωγή Καταχωρητής: είναι μία ομάδα από δυαδικά κύτταρα αποθήκευσης

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I MIPS Η MIPS (Microprocessor without Interlocked Pipeline Stages) είναι μία αρχιτεκτονική συνόλου εντολών (ISA) γλώσσας μηχανής που αναπτύχθηκε από την εταιρεία

Διαβάστε περισσότερα

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Πλεονεκτήματα MPSoC Είναι ευκολότερο να σχεδιαστούν πολλαπλοί πυρήνες επεξεργαστών από τον σχεδιασμό ενός ισχυρότερου και πολύ πιο σύνθετου μονού επεξεργαστή.

Διαβάστε περισσότερα

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ψηφιακή Σχεδίαση Ενότητα 12: Σύνοψη Θεμάτων Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών http://arch.icte.uowm.gr/mdasyg

Διαβάστε περισσότερα

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

Ψηφιακή Λογική Σχεδίαση Ψηφιακή Λογική Σχεδίαση Επιμέλεια: Νίκος Φακωτάκης, Καθηγητής Ανδρέας Εμερετλής, Υποψήφιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται

Διαβάστε περισσότερα

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

Οργάνωση της φυσικής δομής του ολοκληρωμένου κυκλώματος Οργάνωση της φυσικής δομής του ολοκληρωμένου κυκλώματος Γιώργος Δημητρακόπουλος Δημοκρίτειο Πανεπιστήμιο Θράκης Φθινόπωρο 2013 Ψηφιακά ολοκληρωμένα κυκλώματα 1 Οργάνωση του φυσικού σχεδίου Αποφασίζουμε

Διαβάστε περισσότερα

Αρχιτεκτονική Η/Υ Το chipset ενός υπολογιστικού συστήματος. Δρ. Μηνάς Δασυγένης

Αρχιτεκτονική Η/Υ Το chipset ενός υπολογιστικού συστήματος. Δρ. Μηνάς Δασυγένης Αρχιτεκτονική Η/Υ Το chipset ενός υπολογιστικού συστήματος Δρ. Μηνάς Δασυγένης mdasyg@ieee.org 1 1 Οι εταιρείες παραγωγής IC διαφημίζουν εκτός από τους επεξεργαστές και τα chipset τους 2 2 Τι είναι όμως

Διαβάστε περισσότερα

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής Κεφάλαιο 4 ο Ο Προσωπικός Υπολογιστής Μάθημα 4.3 Ο Επεξεργαστής - Εισαγωγή - Συχνότητα λειτουργίας - Εύρος διαδρόμου δεδομένων - Εύρος διαδρόμου διευθύνσεων - Εύρος καταχωρητών Όταν ολοκληρώσεις το μάθημα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών Μάθημα 4.5 Η Μνήμη - Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών Όταν ολοκληρώσεις το μάθημα αυτό θα μπορείς: Να αναφέρεις τα κυριότερα είδη μνήμης

Διαβάστε περισσότερα

Κεφάλαιο 1.6: Συσκευές αποθήκευσης

Κεφάλαιο 1.6: Συσκευές αποθήκευσης Κεφάλαιο 1.6: Συσκευές αποθήκευσης 1.6.1 Συσκευές αποθήκευσης Μνήμη τυχαίας προσπέλασης - RAM Η μνήμη RAM (Random Access Memory Μνήμη Τυχαίας Προσπέλασης), κρατεί όλη την πληροφορία (δεδομένα και εντολές)

Διαβάστε περισσότερα

Συνδυαστικά Κυκλώματα

Συνδυαστικά Κυκλώματα 3 Συνδυαστικά Κυκλώματα 3.1. ΣΥΝΔΥΑΣΤΙΚΗ Λ ΟΓΙΚΗ Συνδυαστικά κυκλώματα ονομάζονται τα ψηφιακά κυκλώματα των οποίων οι τιμές της εξόδου ή των εξόδων τους διαμορφώνονται αποκλειστικά, οποιαδήποτε στιγμή,

Διαβάστε περισσότερα

Σχεδίαση CMOS Ψηφιακών Ολοκληρωμένων Κυκλωμάτων

Σχεδίαση CMOS Ψηφιακών Ολοκληρωμένων Κυκλωμάτων Σχεδίαση CMOS Ψηφιακών Ολοκληρωμένων Κυκλωμάτων Αγγελική Αραπογιάννη Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής και Τηλεπικοινωνιών Η λειτουργία RESET R IN OUT Εάν το σήμα R είναι λογικό «1» στην έξοδο

Διαβάστε περισσότερα

Πανεπιστήµιο Κύπρου DEPARTMENT OF COMPUTER SCIENCE

Πανεπιστήµιο Κύπρου DEPARTMENT OF COMPUTER SCIENCE Πανεπιστήµιο Κύπρου DEPARTMENT OF OMPUTER SIENE S 121 Ψηφιακά Εργαστήρια LAB EXERISE 4 Sequential Logic Χρίστος ιονυσίου Σωτήρης ηµητριάδης Άνοιξη 2002 Εργαστήριο 4 Sequential ircuits A. Στόχοι Ο σκοπός

Διαβάστε περισσότερα

Ανασκόπηση Τελικού Πειράματος με μετρήσεις θερμοκρασιών Στάτορα και Ρότορα. Δοκιμασία της κατασκευασμένης διάταξης.

Ανασκόπηση Τελικού Πειράματος με μετρήσεις θερμοκρασιών Στάτορα και Ρότορα. Δοκιμασία της κατασκευασμένης διάταξης. Κεφάλαιο 8 Ανασκόπηση Τελικού Πειράματος με μετρήσεις θερμοκρασιών Στάτορα και Ρότορα. Δοκιμασία της κατασκευασμένης διάταξης. Η μέτρηση των θερμοκρασιών στα συγκεκριμένα σημεία του στάτη της μηχανής έγινε

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ανάπτυξη μιας προσαρμοστικής πολιτικής αντικατάστασης αρχείων, με χρήση

Διαβάστε περισσότερα

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Γ ΕΠΑΛ 14 / 04 / 2019

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Γ ΕΠΑΛ 14 / 04 / 2019 Γ ΕΠΑΛ 14 / 04 / 2019 ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΘΕΜΑ 1 ο 1. Να γράψετε στο τετράδιό σας το γράμμα καθεμιάς από τις παρακάτω προτάσεις και δίπλα τη λέξη ΣΩΣΤΟ, αν είναι σωστή ή τη λέξη ΛΑΘΟΣ, αν είναι λανθασμένη.

Διαβάστε περισσότερα

Κεφάλαιο 4 : Λογική και Κυκλώματα

Κεφάλαιο 4 : Λογική και Κυκλώματα Κεφάλαιο 4 : Λογική και Κυκλώματα Σύνοψη Τα κυκλώματα που διαθέτουν διακόπτες ροής ηλεκτρικού φορτίου, χρησιμοποιούνται σε διατάξεις που αναπαράγουν λογικές διαδικασίες για τη λήψη αποφάσεων. Στην ενότητα

Διαβάστε περισσότερα

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στην πληροφορική Ενότητα 4: Ψηφιακή Λογική, Άλγεβρα Boole, Πίνακες Αλήθειας (Μέρος B) Αγγελίδης Παντελής Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Διαβάστε περισσότερα

7.1 Θεωρητική εισαγωγή

7.1 Θεωρητική εισαγωγή ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 7 ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ ΜΑΝ ΑΛΩΤΕΣ FLIP FLOP Σκοπός: Η κατανόηση της λειτουργίας των βασικών ακολουθιακών κυκλωµάτων. Θα µελετηθούν συγκεκριµένα: ο µανδαλωτής (latch)

Διαβάστε περισσότερα

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

Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες. Γλώσσες Περιγραφής Μοντέλα Ένα µοντέλο ενός κυκλώµατος είναι µία αναπαράσταση που παρουσιάζει χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες. Τα τυπικά µοντέλα έχουν καλά ορισµένη σύνταξη. Τα αυτόµατα

Διαβάστε περισσότερα

Συγγραφή κώδικα, δοκιμασία, επαλήθευση. Γιάννης Σμαραγδάκης

Συγγραφή κώδικα, δοκιμασία, επαλήθευση. Γιάννης Σμαραγδάκης Συγγραφή κώδικα, δοκιμασία, επαλήθευση Γιάννης Σμαραγδάκης Προδιαγραφή απαιτήσεων Σχεδιασμός συνεπείς σχέσεις Υψηλό επίπεδο συνεπείς σχέσεις Χαμηλό επίπεδο συνεπείς σχέσεις Πλάνο δοκιμών Κώδικας Συγγραφή

Διαβάστε περισσότερα

ΧΑΜΗΛΗ ΚΑΤΑΝΑΛΩΣΗ ΕΝΕΡΓΕΙΑΣ ΣΕ ΑΝΑΔΙΠΛΟΥΜΕΝΕΣ ΑΛΥΣΙΔΕΣ ΣΑΡΩΣΗΣ Η ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΞΕΙΔΙΚΕΥΣΗΣ. Υποβάλλεται στην

ΧΑΜΗΛΗ ΚΑΤΑΝΑΛΩΣΗ ΕΝΕΡΓΕΙΑΣ ΣΕ ΑΝΑΔΙΠΛΟΥΜΕΝΕΣ ΑΛΥΣΙΔΕΣ ΣΑΡΩΣΗΣ Η ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΞΕΙΔΙΚΕΥΣΗΣ. Υποβάλλεται στην ΧΑΜΗΛΗ ΚΑΤΑΝΑΛΩΣΗ ΕΝΕΡΓΕΙΑΣ ΣΕ ΑΝΑΔΙΠΛΟΥΜΕΝΕΣ ΑΛΥΣΙΔΕΣ ΣΑΡΩΣΗΣ Η ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΞΕΙΔΙΚΕΥΣΗΣ Υποβάλλεται στην ορισθείσα από την Γενική Συνέλευση Ειδικής Σύνθεσης του Τμήματος Πληροφορικής Εξεταστική

Διαβάστε περισσότερα

Παράδειγμα αντιστοίχισης κυκλώματος σε FPGA

Παράδειγμα αντιστοίχισης κυκλώματος σε FPGA Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών Παράδειγμα αντιστοίχισης κυκλώματος σε FPGA Γιώργος Δημητρακόπουλος με τη βοήθεια του Βασίλη Παπαευσταθίου Στο παράδειγμα αυτό χρησιμοποιώντας μια πολύ μικρή

Διαβάστε περισσότερα

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

Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Ροή Σχεδίασης Κυκλωμάτων και Εργαλεία CAD Χειμερινό Εξάμηνο 2009 2010 Design flow? ΗΥ220 University of Crete 2 Ροή Σχεδίασης (Design Flow) Requirements Verilog, VHDL

Διαβάστε περισσότερα

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

Σχεδιασμός Ψηφιακών Συστημάτων ΗΜΥ 2: Σχεδιασμό Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο 27 Νοε-7 ΗΜΥ-2: Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο 27 Ακολουθιακά Κυκλώματα: Μανδαλωτές (Latches) και Flip-Flops Flops Διδάσκουσα:

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 4 ΠΡΟΒΛΗΜΑΤΑ ΛΟΓΙΚΗΣ ΣΧΕΔΙΑΣΗΣ

ΑΣΚΗΣΗ 4 ΠΡΟΒΛΗΜΑΤΑ ΛΟΓΙΚΗΣ ΣΧΕΔΙΑΣΗΣ ΑΣΚΗΣΗ 4 ΠΡΟΒΛΗΜΑΤΑ ΛΟΓΙΚΗΣ ΣΧΕΔΙΑΣΗΣ 4.1 ΣΚΟΠΟΣ Σκοπός αυτής της εργαστηριακής άσκησης είναι να παρουσιάσει τις βασικές αρχές της σχεδίασης λογικών (ψηφιακών) κυκλωμάτων για πρακτικές εφαρμογές. Στα προηγούμενα

Διαβάστε περισσότερα