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

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

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

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

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

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

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

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

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

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

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

Ψηφιακά Συστήματα. 8. Καταχωρητές

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

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

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

ε. Ένα κύκλωμα το οποίο παράγει τετραγωνικούς παλμούς και απαιτείται εξωτερική διέγερση ονομάζεται ασταθής πολυδονητής Λ

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

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

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

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

6.1 Καταχωρητές. Ένας καταχωρητής είναι μια ομάδα από f/f αλλά μπορεί να περιέχει και πύλες. Καταχωρητής των n ψηφίων αποτελείται από n f/f.

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

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

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΣΕΙΡΙΑΚΗ ΠΡΟΣΘΕΣΗ

Ολοκληρωμένα Κυκλώματα

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

9. ΚΑΤΑΧΩΡΗΤΕΣ (REGISTERS)

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ

ΗΜΥ 210: Σχεδιασμό Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο 2008

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

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

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

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

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

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

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

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

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

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

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

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

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

Δομή Ηλεκτρονικού υπολογιστή

7 η Θεµατική Ενότητα : Καταχωρητές, Μετρητές και Μονάδες Μνήµης

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

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

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

ΨΗΦΙΑΚΑ ΗΛΕΚΤΡΟΝΙΚΑ. Να μελετηθεί η λειτουργία του ακόλουθου κυκλώματος. Ποιος ο ρόλος των εισόδων του (R και S) και πού βρίσκει εφαρμογή; R Q

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

Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης 2017

Κ. ΕΥΣΤΑΘΙΟΥ, Γ. ΠΑΠΑΔΟΠΟΥΛΟΣ ΠΑΤΡΑ

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

ΑΣΚΗΣΗ 10 ΣΥΓΧΡΟΝΟΙ ΑΠΑΡΙΘΜΗΤΕΣ

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ.3 ΑΣΥΓΧΡΟΝΟΣ ΔYΑΔΙΚΟΣ ΑΠΑΡΙΘΜΗΤΗΣ.5 ΑΣΥΓΧΡΟΝΟΣ ΔΕΚΑΔΙΚΟΣ ΑΠΑΡΙΘΜΗΤΗΣ.7 ΑΣΥΓΧΡΟΝΟΣ ΔΕΚΑΔΙΚΟΣ ΑΠΑΡΙΘΜΗΤΗΣ ΜΕ LATCH.

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

Ελίνα Μακρή

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

Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης Θέμα 1ο (3 μονάδες)

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

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

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

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

Σχεδιασμός Αποκωδικοποιητή και υλοποίηση του στο Logisim και στο Quartus. Εισαγωγή στο Logisim

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Ακολουθιακή Λογική. Επιμέλεια Διαφανειών: Δ.

Α. ΣΚΟΔΡΑΣ ΠΛΗ21 ΟΣΣ#2. 14 Δεκ 2008 ΠΑΤΡΑ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ 2008 Α. ΣΚΟΔΡΑΣ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ ΜΕΛΕΤΗΣ

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

Flip-Flop: D Control Systems Laboratory

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

7 η διάλεξη Ακολουθιακά Κυκλώματα

ΑΠΟ ΤΑ ΘΕΜΑΤΑ ΤΩΝ ΠΑΝΕΛΛΗΝΙΩΝ ΕΞΕΤΑΣΕΩΝ ΚΕΦΑΛΑΙΟ 7-8 (ΚΑΤΑΧΩΡΗΤΕΣ & ΑΠΑΡΙΘΜΗΤΕΣ)

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. ΚΕΦΑΛΑΙΟ 2ο ΚΑΤΑΧΩΡΗΤΕΣ. (c) Αμπατζόγλου Γιάννης, Ηλεκτρονικός Μηχανικός, καθηγητής ΠΕ17

ΚΕΦΑΛΑΙΟ 6 ΒΑΣΙΚΑ ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ. 6.1 Εισαγωγή

Μνήμη και Προγραμματίσιμη Λογική

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

Ακολουθιακό κύκλωμα Η έξοδος του κυκλώματος εξαρτάται από τις τιμές εισόδου ΚΑΙ από την προηγούμενη κατάσταση του κυκλώματος

ΠΕΡΙΕΧΟΜΕΝΑ Υλικό και Λογισμικό Αρχιτεκτονική Υπολογιστών Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΑΡΑΓΚΙΑΟΥΡΗΣ ΝΙΚΟΛΑΟΣ

ΑΣΚΗΣΗ 10 ΣΧΕΔΙΑΣΗ ΑΚΟΛΟΥΘΙΑΚΩΝ ΚΥΚΛΩΜΑΤΩΝ

Μάθημα 4.2 Η μητρική πλακέτα

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

ΑΣΚΗΣΗ 7 FLIP - FLOP

Ψηφιακά Συστήματα. 7. Κυκλώματα Μνήμης

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

Ακολουθιακό κύκλωμα Η έξοδος του κυκλώματος εξαρτάται από τις τιμές εισόδου ΚΑΙ από την προηγούμενη κατάσταση του κυκλώματος

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

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

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

Οργάνωση Υπολογιστών (ΙI)

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

ΑΝΑLOG TO DIGITAL CONVERTER (ADC)

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

Κύρια μνήμη. Μοντέλο λειτουργίας μνήμης. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (ΙI)

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

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

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ. ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ

Η συχνότητα f των παλµών 0 και 1 στην έξοδο Q n είναι. f Qn = 1/(T cl x 2 n+1 )

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

Θέμα 1ο (3 μονάδες) Υλοποιήστε το ακoλουθιακό κύκλωμα που περιγράφεται από το κατωτέρω διάγραμμα

Transcript:

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Διπλωματική Εργασία ΑΝΑΛΥΣΗ ΤΗΣ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ ΕΝΑΛΛΑΓΗΣ ΛΟΓΙΚΩΝ ΤΙΜΩΝ ΣΕ ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΚΥΚΛΩΜΑΤΑ ΚΑΤΑ ΤΗ ΔΙΑΡΚΕΙΑ ΤΗΣ ΕΞΕΤΑΣΗΣ ΤΟΥΣ της Κινικλή Θέκλας ΑΕΜ 7629 Επιβλέπων Καθηγητής Καθ. Χατζόπουλος Αλκιβιάδης ΘΕΣΣΑΛΟΝΙΚΗ 2016

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

Περίληψη Με την πάροδο των χρόνων και την εξέλιξη της τεχνολογίας, σχεδιάζονται όλο και περισσότερα ψηφιακά ολοκληρωμένα κυκλώματα. Αυτό καθιστά απαραίτητο και αναγκαίο πριν την κατάσκευή τους να προηγηθεί η εξέτασή τους για τυχόν βλάβες, έτσι ώστε να μειωθεί η πιθανότητα κατασκευής ελαττωματικών κυκλωμάτων. Ως γνωστών, η κατανάλωση ισχύος, η οποία αποτελεί ένα βασικό ζήτημα κατά τη διάρκεια της σχεδίασης των κυκλωμάτων, είναι άμεσα συνυφασμένη με τη δραστηριότητα εναλλαγής λογικών τιμών στους ακροδέκτες των κυκλωμάτων. Έχει παρατηρηθεί πως η δραστηριότητα αυτή είναι πιο έντονη κατά την εξέταση των κυκλωμάτων συγκριτικά με την κανονική λειτουργία τους. Στα πλαίσια της παρούσας διπλωματικής εργασίας πραγματοποιήθηκε η ανάλυση της παραπάνω δραστηριότητας, καθώς επίσης χρησιμοποιήθηκε ένα επιπλέον αρχείο κατά τη διάρκεια της εξέτασης για την όσον το δυνατό μείωση της δραστηριότητας εναλλαγής. Τέλος, παρουσιάζονται τα αποτελέσματα πέντε διαφορετικών κυκλωμάτων και οι συγκρίσεις των δραστηριοτήτων ε- ναλλαγής στις τρεις διαφορετικές καταστάσεις: κανονική λειτουργία, λειτουργία εξέτασης και λειτουργία εξέτασης χαμηλής ισχύος. Από τα παραπάνω πειράματα καθίσταται εμφανής η μείωση της κατανάλωσης με χρήση της τρίτης μεθόδου. 3

Abstract ANALYSIS OF TOGGLE ACTIVITY IN DIGITAL INTEGRATED CIRCUITS DURING TESTING The constant evolution of technology that is observed in recent years has led to the easier development of digital integrated circuits. Thus, it is essential to test every digital circuit for possible faults in order to minimize the possibility of creating a defective system. Power consumption, which is a major concern for the designers, is directly related to the circuitry toggle activity. However, during test mode the toggle activity of the design is a lot higher than the one during normal mode, and as a consequence so is the power consumption. This diploma thesis presents the analysis of the toggle activity and describes an extra file which is used to reduce the power consumption during testing. Finally, five different circuits were used in order to compare their performance, under the three different modes of operation: normal mode, test mode, low power test mode. The main conclusion of the experiments conducted in this thesis is that the adoption of the third method leads to a significant reduction of the power consumption observed during testing. 4

Περιεχόμενα Ευχαριστίες... 2 Περίληψη... 3 Abstract... 4 1. Θεωρητικό Υπόβαθρο... 11 1.1 Γενικά... 11 1.2 Σημαντικότητα εξέτασης/δοκιμής... 11 1.3 Τι είναι Εξετασιμότητα (Testability)... 11 1.4 Σχεδίαση για Εξετασιμότητα (Design For Testability ή DFT)... 12 1.5 Δομές Scan Cell... 16 1.5 Αρχιτεκτονικές Σάρωσης... 18 1.6 Αυτόματη παραγωγή διανυσμάτων δομικής (Automatic Test Pattern Generation-ATPG). 23 1.7 Κύκλωμα περιφερειακής διασύνδεσης (Wrapper)... 24 2. Κατανάλωση Ισχύος... 27 2.1 Σχετική Βιβλιογραφία... 27 2.2 CPF αρχείο... 30 2.2.1 Design Objects... 30 2.2.2 CPF Objects... 31 2.2.3 Special Library cells... 31 3. Ροή της διαδικασίας εξέτασης... 33 3.1 Εργαλεία της Cadence... 33 3.1.1 RTL-Compiler... 33 3.1.2 Encounter Test... 33 3.2 Διαδικασία... 33 3.2.1 Κανονική Λειτουργία... 33 3.2.2 Εισαγωγή Εξετασιμότητας... 34 3.2.3 IEEE Wrapper 1500... 34 3.2.4 Encounter Test... 37 3.2.5 Εισαγωγή αρχείου cpf... 39 4. Αποτελέσματα... 40 4.1 s444... 40 4.2 s641... 44 4.3 s820... 49 4.4 s838... 53 5

4.5 multi... 57 4.6 Συμπεράσματα... 61 4.7 Μελλοντική εργασία... 62 Βιβλιογραφία... 64 Παράρτημα Ι... 65 Παράδειγμα κώδικα RTL... 65 Παράρτημα ΙΙ... 69 Ορισμός Βιβλιοθηκών... 69 Ορισμός βασικών στοιχείων... 70 Ορισμός αναβαθμίσεων (updates)... 71 Παράδειγμα αρχείου cpf... 72 Παράρτημα ΙΙΙ... 76 Περιγραφή κώδικα Matlab... 76 Κώδικας Matlab... 76 6

Κατάλογος Εικόνων Εικόνα 1: Συνιστώσες εξετασιμότητας... 11 Εικόνα 2: Εισαγωγή σημείου παρατήρησης (Ad Hoc τεχνική)... 13 Εικόνα 3: Εισαγωγή σημείου ελέγχου (Ad Hoc τεχνική)... 14 Εικόνα 4: Παράδειγμα βλάβης (Δομημένη προσέγγιση)... 15 Εικόνα 5: Muxed-D Scan Cell... 16 Εικόνα 6: Clocked-Scan Cell... 17 Εικόνα 7: LSSD Scan Cell... 17 Εικόνα 8: (α) Αρχικό κύκλωμα, (β) Κύκλωμα με αντικατάσταση των Flip Flop με Flip Flop με πολυπλέκτη... 19 Εικόνα 9: Κύκλωμα Πλήρης σάρωσης με Clocked τεχνική... 20 Εικόνα 10: Κύκλωμα Πλήρης σάρωσης με LSSD τεχνική... 20 Εικόνα 11: Κύκλωμα Πλήρης σάρωσης με LSSD τεχνική... 21 Εικόνα 12: Παράδειγμα κυκλώματος με χρήση μερικής σάρωσης... 22 Εικόνα 13: Κύκλωμα σάρωσης τυχαίας πρόσβασης... 23 Εικόνα 14: ΙΕΕΕ Wrapper 1500... 25 Εικόνα 15: (α) Αρχική αλυσίδα (β) Διαίρεση αλυσίδας στα δύο... 27 Εικόνα 16: J-scan Flip Flop... 28 Εικόνα 17: (α) Αρχική αλυσίδα (β) Τμηματοποιημένη αλυσίδα... 28 Εικόνα 18: Flip Flop διατήρησης κατάστασης... 29 Εικόνα 19: Δημιουργία σχεδίασης wrapper... 34 Εικόνα 20: Λίστα επιλογών της σχεδίασης wrapper... 35 Εικόνα 21: Συμπλήρωση των πεδίων για τη δημιουργία του wrapper... 36 Εικόνα 22: Εισαγωγή βιβλιοθηκών... 36 Εικόνα 23: Δημιουργία σχεδίασης της εξέτασης με πλήρη σάρωση... 37 Εικόνα 24: Λίστα επιλογών της εξέτασης... 38 Εικόνα 25: Δημιουργία μοντέλου εξέτασης... 39 Εικόνα 26: Έλεγχος κυκλώματος s444... 40 Εικόνα 27: (α) Εισαγωγή σήματος scan enable (β) Εισαγωγή σήματος test enable στο κύκλωμα s444... 41 7

Εικόνα 28: Πρώτος έλεγχος κανόνων εξέτασης κυκλώματος s444... 41 Εικόνα 29: Δεύτερος έλεγχος κανόνων εξέτασης κυκλώματος s444... 42 Εικόνα 30: Κατασκευή wrapper κυκλώματος s444... 43 Εικόνα 31: Πληροφορίες αλυσίδων σάρωσης (Encounter Test) κυκλώματος s444... 43 Εικόνα 32: Ανάγνωση cpf αρχείου κυκλώματος s444... 44 Εικόνα 33: Εκτέλεση cpf κυκλώματος s444... 44 Εικόνα 34: Έλεγχος κυκλώματος s641... 45 Εικόνα 35: (α) Εισαγωγή σήματος scan enable (β) Εισαγωγή σήματος test enable κυκλώματος s641... 45 Εικόνα 36: Πρώτος έλεγχος κανόνων εξέτασης κυκλώματος s641... 46 Εικόνα 37: Δεύτερος έλεγχος κανόνων εξέτασης κυκλώματος s641... 47 Εικόνα 38: Κατασκευή wrapper κυκλώματος s641... 47 Εικόνα 39: Πληροφορίες αλυσίδων σάρωσης κυκλώματος s641... 48 Εικόνα 40: Εκτέλεση cpf κυκλώματος s641... 48 Εικόνα 41: Έλεγχος κυκλώματος s820... 49 Εικόνα 42: (α) Εισαγωγή σήματος scan enable (β) Εισαγωγή σήματος test enable κυκλώματος s820... 49 Εικόνα 43: Πρώτος έλεγχος κανόνων εξέτασης κυκλώματος s820... 50 Εικόνα 44: Δεύτερος έλεγχος κανόνων εξέτασης κυκλώματος s820... 51 Εικόνα 45: Κατασκευή wrapper κυκλώματος s820... 51 Εικόνα 46: Πληροφορίες των αλυσίδων σάρωσης κυκλώματος s820... 52 Εικόνα 47: Εκτέλεση cpf κυκλώματος s820... 52 Εικόνα 48: Έλεγχος κυκλώματος s838... 53 Εικόνα 49: (α) Εισαγωγή σήματος scan enable (β) Εισαγωγή σήματος test enable κυκλώματος s838... 53 Εικόνα 50: Πρώτος έλεγχος κανόνων εξέτασης κυκλώματος s838... 54 Εικόνα 51: Δεύτερος έλεγχος κανόνων κυκλώματος s838... 55 Εικόνα 52: Κατασκευή wrapper κυκλώματος s838... 55 Εικόνα 53: Πληροφορίες αλυσίδων σάρωσης κυκλώματος s838... 56 Εικόνα 54: Εκτέλεση cpf κυκλώματος s838... 56 Εικόνα 55: Έλεγχος κυκλώματος multi... 57 8

Εικόνα 56: (α) Εισαγωγή σήματος scan enable (β) Εισαγωγή σήματος test enable κυκλώματος multi... 57 Εικόνα 57: Πρώτος έλεγχος κανόνων εξέτασης κυκλώματος multi... 58 Εικόνα 58: Δεύτερος έλεγχος κανόνων εξέτασης κυκλώματος multi... 59 Εικόνα 59: Κατασκευή wrapper κυκλώματος multi... 59 Εικόνα 60: Πληροφορίες αλυσίδων σάρωσης κυκλώματος multi... 60 Εικόνα 61: Εκτέλεση cpf κυκλώματος multi... 60 Εικόνα 62: Σύγκριση σχηματικού πριν (α) και μετά (β) την εισαγωγή cpf αρχείου... 72 9

Κατάλογος Πινάκων Πίνακας 1: Διαφορές μεταξύ Muxed-D Scan Cell, Clocked-Scan Cell και LSSD Scan Cell... 18 Πίνακας 2: Αντικείμενα σχεδίου (cpf)... 30 Πίνακας 3: Αντικείμενα CPF... 31 Πίνακας 4: Cells Βιβλιοθήκης (cpf)... 31 Πίνακας 5: Αποτελέσματα κυκλώματος s444... 43 Πίνακας 6: Διαφορές εξέτασης με εξέταση χαμηλής ισχύος κυκλώματος s444... 44 Πίνακας 7: Αποτελέσματα κυκλώματος s641... 48 Πίνακας 8: Διαφορές εξέτασης με εξέταση χαμηλής ισχύος κυκλώματος s641... 48 Πίνακας 9: Αποτελέσματα κυκλώματος s820... 52 Πίνακας 10: Διαφορές εξέτασης με εξέταση χαμηλής ισχύος κυκλώματος s820... 52 Πίνακας 11: Αποτελέσματα κυκλώματος s838... 56 Πίνακας 12: Διαφορές εξέτασης με εξέταση χαμηλής ισχύος κυκλώματος s838... 56 Πίνακας 13: Αποτελέσματα κυκλώματος multi... 60 Πίνακας 14: Διαφορές εξέτασης με εξέταση χαμηλής ισχύος κυκλώματος multi... 60 Πίνακας 15: Συγκεντρωτικός πίνακας υλικού... 61 Πίνακας 16: Συγκεντρωτικός πίνακας λογικής κυκλωμάτων... 61 Πίνακας 17: Συγκεντρωτικός πίνακας της σάρωσης κυκλωμάτων... 61 10

1. Θεωρητικό Υπόβαθρο 1.1 Γενικά Στο κεφάλαιο αυτό θα γίνει αναφορά σε γενικούς όρους που σχετίζονται με την τρέχουσα διπλωματική εργασία και θα παρουσιαστεί η βασική βιβλιογραφία της εξετασιμότητας. 1.2 Σημαντικότητα εξέτασης/δοκιμής Η πρόοδος της τεχνολογίας και η ευκολία σχεδίασης ολοκληρωμένων κυκλωμάτων έχει ο- δηγήσει στην παραγωγή όλο και περισσότερων συστημάτων. Για το λόγο αυτό είναι απαραίτητο να υποβάλλονται σε εξέταση για βλάβες. Κατά τη διάρκεια των πρώτων χρόνων, η σχεδίαση κι η εξέταση γινόντουσαν ξεχωριστά. Τη δεκαετία του 80 άρχισε να χρησιμοποιείται η προσομοίωση των βλαβών. Η διαδικασία εξέτασης του συστήματος είναι από τους πιο σημαντικούς κι απαραίτητους παράγοντες που πρέπει να ληφθούν υπόψιν κατά τη διάρκεια σχεδιασμού ψηφιακών συσκευών, καθώς αν δεν την εφαρμοσθεί μπορεί να σταλθεί για κατασκευή ένα κύκλωμα με βλάβη ή βλάβες. Αυτό θα έχει σαν αποτέλεσμα να ήταν άσκοπα τα χρήματα που ξοδεύτηκαν και ο χρόνος αναμονής για την κατασκευή του. Αντίθετα, αν έχει προηγηθεί η εξέταση του κυκλώματος έχουν μειωθεί στο ελάχιστο, έως και καθόλου, τα ελαττωματικά κυκλώματα κι ο σχεδιαστής είναι σίγουρος για την σωστή λειτουργία τους. Με τον όρο ολοκληρωμένο κύκλωμα εννοείται μια μικρή ηλεκτρονική συσκευή στην οποία έχουν τοποθετηθεί χιλιάδες μικροσκοπικοί πυκνωτές, αντιστάσεις και τρανζίστορ, ενώ βλάβη είναι κατασκευαστική ατέλεια του κυκλώματος που μπορεί να οδηγήσει σε μη επιθυμητή συμπεριφορά. 1.3 Τι είναι Εξετασιμότητα (Testability) Η έννοια της εξετασιμότητας είναι ευρεία και περιλαμβάνει την απαιτούμενη προσπάθεια για την ανίχνευση και την ανάλυση της κάλυψης βλαβών, το χρόνο εφαρμογής της δοκιμής και το κόστος του εξοπλισμού της δοκιμής. Η εξετασιμότητα χωρίζεται σε δύο συνιστώσες, την παρατηρησιμότητα και την ελεγξιμότητα. Παρατηρησιμότητα είναι η ικανότητα του προσδιορισμού σε πεπερασμένο χρονικό διάστημα της τρέχουσας κατάστασης χρησιμοποιώντας μόνο τις εξόδους. Δηλαδή, από τις εξόδους ενός συστήματος είναι εφικτό να προσδιοριστεί η συμπεριφορά του. Ελεγξιμότητα είναι η ικανότητα μίας εξωτερικής εισόδου να οδηγήσει ένα σύστημα από μία αρχική κατάσταση σε μία άλλη τελική μέσα σε πεπερασμένο χρονικό διάστημα. Εικόνα 1: Συνιστώσες εξετασιμότητας 11

Τα πιο κλασσικά μοντέλα βλαβών είναι: Stuck-at fault μοντέλο, είναι το πιο απλό και το πιο σύνηθες μοντέλο, όπου κάποιος κόμβος έχει κολλήσει σε μία καθορισμένη και σταθερή λογική τιμή (είτε στο 0 και λέγεται stuck-at 0 είτε στο 1 και λέγεται stuck-at 1). Bridge fault μοντέλο, το οποίο χρησιμοποιείται για την περιγραφή της λογικής συμπεριφοράς δύο κόμβων του κυκλώματος που έχουν βραχυκυκλώσει. Τα πιο συνηθισμένα Bridge fault μοντέλα είναι το wired-and/or μοντέλο και το κυρίαρχο μοντέλο βλάβης. Το πρώτο υποθέτει ότι ο κόμβος με τη βλάβη πάντα έχει μία σταθερή λογική τιμή 0 (1). Το δεύτερο υποθέτει ότι ο ένας κόμβος κυριαρχεί και επιβάλλει τη λογική του τιμή στον άλλον κόμβο. Open fault μοντέλο, το οποίο επιχειρεί να μοντελοποιήσει βλάβες της μορφής ανοιχτοκυκλώματος, διάσπασης και μη σύνδεσης μεταξύ στρωμάτων του κυκλώματος. Τα ανοίγματα έχουν ως αποτέλεσμα βλάβες διατήρησης κατάστασης, διακοπής και εξάρτησης από μοτίβα, κι ως εκ τούτου τα μοντέλα αυτά είναι πιο πολύπλοκα από τα προηγούμενα. Delay fault μοντέλο, το οποίο αναπαριστά βλάβες σχετικές με το χρόνο χρησιμοποιώντας τα μοντέλα καθυστέρησης-πύλης και καθυστέρησης-μονοπατιού. Το πρώτο υποθέτει ότι η καθυστέρηση λόγω βλάβης βρίσκεται μόνο μεταξύ μίας πύλης εισόδου και εξόδου, ενώ το δεύτερο διαδίδει τη συνολική καθυστέρηση μέσω ενός μονοπατιού από μία είσοδο σε μία έξοδο του κυκλώματος. 1.4 Σχεδίαση για Εξετασιμότητα (Design For Testability ή DFT) Με την όλο αυξανόμενη πολυπλοκότητα των κυκλωμάτων, το υψηλό κόστος και την ελάττωση της ποιότητας εξέτασης το πρόβλημα της παρατηρησιμότητας και ελεγξιμότητας γίνεται όλο και χειρότερο. Έτσι, οι δυσκολίες στην εξέταση ολοκληρωμένων κυκλωμάτων ενέπνευσαν την ιδέα της σχεδίασης για εξετασιμότητα (design for testability) το οποίο είναι μία μεγάλη συλλογή από διάφορες τεχνικές που προσθέτουν χαρακτηριστικά εξετασιμότητας στο υλικό ενός συστήματος. Αυτά τα χαρακτηριστικά κάνουν πιο εύκολη την ανάπτυξη και εφαρμογή της εξέτασης του υλικού. Ο σκοπός των εξετάσεων αυτών είναι να επικυρώσουν ότι το υλικό του συστήματος δεν περιέχει κατασκευαστικές βλάβες που θα μπορούσαν να επηρεάσουν δυσμενώς τη σωστή λειτουργία του συστήματος. Οι τεχνικές αυτές μπορούν να εφαρμοσθούν με δύο τρόπους: 1. Το αρχικό σχέδιο κατασκευάζεται χωρίς να ληφθεί υπόψιν η εξετασιμότητα και μετά ο μηχανικός προσθέτει το επιπλέον κύκλωμα δοκιμής 2. Ο μηχανικός σχεδίασης λαμβάνει υπόψιν την εξετασιμότητα από την αρχή και ενσωματώνει το κύκλωμα δοκιμής. Οι τεχνικές αυτές χωρίζονται σε δύο βασικές κατηγορίες, την Ad Hoc και τη δομημένη προσέγγιση, οι οποίες παρουσιάζονται αναλυτικά παρακάτω. 12

A. Ad hoc DFT Στην τεχνική αυτή εισάγονται σημεία εξέτασης κάνοντας την επίδραση τοπική, αποφεύγεται το ασύγχρονο set/reset για την αποθήκευση των στοιχείων, καθώς επίσης και οι συνδυαστικοί βρόχοι ανατροφοδότησης, η περιττή λογική και η ασύγχρονη λογική. Ουσιαστικά, γίνεται τμηματοποίηση ενός μεγάλου κυκλώματος σε μικρότερα blocks. Παρακάτω φαίνεται η εισαγωγή σημείου παρατήρησης. Το OP2 παρουσιάζει τη δομή παρατηρησιμότητας κι αποτελείται από έναν πολυπλέκτη κι ένα Flip Flop τύπου D. Εικόνα 2: Εισαγωγή σημείου παρατήρησης (Ad Hoc τεχνική) Παρακάτω φαίνεται η εισαγωγή σημείου ελεγξιμότητας. Εισάγεται ένας πολυπλέκτης μεταξύ πηγής και προορισμού. Κατά τη διάρκεια της κανονικής λειτουργίας το ΤΜ ισούται με 0, έτσι ώστε η τιμή από την πηγή να οδηγεί τον προορισμό μέσω της θύρας με την τιμή 0 του πολυπλέκτη. Αντίθετα, κατά τη διάρκεια της λειτουργίας εξέτασης το ΤΜ ισούται με 1, έτσι ώστε η τιμή από την πηγή να οδηγεί τον προορισμό μέσω της θύρας με την τιμή 1 του πολυπλέκτη. 13

Εικόνα 3: Εισαγωγή σημείου ελέγχου (Ad Hoc τεχνική) B. Δομημένη προσέγγιση Στη μέθοδο αυτή μετατρέπεται το σειριακό σχέδιο σε σχέδιο σάρωσης και υπάρχουν τρεις καταστάσεις λειτουργίας, η κανονική (normal mode), η ολίσθησης (shift mode) και η σύλληψης (capture mode). Στην κανονική λειτουργία όλα τα σήματα εξετασιμότητας είναι απενεργοποιημένα και το σχέδιο σάρωσης λειτουργεί στην αρχική κατάσταση. Στις άλλες δύο καταστάσεις λειτουργίας, συχνά χρησιμοποιείται ένα σήμα ΤΜ με σκοπό την ενεργοποίηση όλων των ορισμάτων που σχετίζονται με την εξέταση. Έστω ότι η stuck-at βλάβη f στη συνδυαστική λογική, όπως φαίνεται και στο παρακάτω σχήμα, απαιτεί η βασική είσοδος X 3 να γίνει ίση με 0, καθώς επίσης και τα Flip Flops FF 2 και FF 3 να γίνουν ίσα με 1 και 0 αντίστοιχα. Αυτό, όμως, είναι δύσκολο κι αυτό οφείλεται στο γεγονός ότι δε μπορούν να παρατηρηθούν και να ελεγχθούν οι εσωτερικές καταστάσεις του κυκλώματος. 14

Εικόνα 4: Παράδειγμα βλάβης (Δομημένη προσέγγιση) Η βασική φιλοσοφία αυτής της μεθόδου είναι η εύκολη πρόσβαση σε κάποια εσωτερικά σημεία του κυκλώματος. Αυτά τα σημεία χρησιμοποιούνται ως σημεία εξέτασης για την εφαρμογή διανυσμάτων δοκιμής και για την παρατήρηση της απόκρισης του κυκλώματος. Επιπλέον, θεωρείται μία πολλή αποδοτική μέθοδος για επίτευξη καλής κάλυψης εξετασιμότητας σε ένα ψηφιακό κύκλωμα. Η βασική δομή αυτής της τεχνικής περιλαμβάνει την ακόλουθη ομάδα σημάτων με σκοπό τον έλεγχο και την παρατήρηση του μηχανισμού σάρωσης: Scan-in και Scan-out, ορίζουν την είσοδο και την έξοδο της αλυσίδας σάρωσης. Σε λειτουργία πλήρους αλυσίδας, συνήθως, κάθε είσοδος οδηγεί μία αλυσίδα και η έξοδος σάρωσης παρατηρεί μία. Scan Enable Pin, είναι ένα ειδικό σήμα το οποίο προστίθεται στο σύστημα. Όταν γίνει 1 τότε κάθε Flip Flop του κυκλώματος συνδέεται σε έναν μεγάλο καταχωρητή ολίσθησης. Σήμα ρολογιού, το οποίο χρησιμοποιείται για τον έλεγχο όλων των Flip Flops στην αλυσίδα κατά τη διάρκεια της φάσης ολίσθησης και της φάσης σύλληψης. Ένα αυθαίρετο μοτίβο μπορεί να εισαχθεί στην αλυσίδα και μπορεί να αναγνωσθεί η κατάσταση κάθε Flip Flop. Όλα τα Flip Flops συνδέονται σε μία αλυσίδα η οποία δρα αποτελεσματικά σαν ένας καταχωρητής ολίσθησης. Το πρώτο Flip Flop συνδέεται στη θύρα scan-in και το τελευταίο στην scan-out. Η δοκιμή σάρωσης γίνεται με σκοπό τον εντοπισμό οποιασδήποτε κατασκευαστικής βλάβης. Στην αρχή, γίνεται μετάβαση από την κανονική λειτουργία στη λειτουργία ολίσθησης και το διάνυσμα εισόδου ολισθαίνει (με τις επιθυμητές τιμές) και φορτώνεται σε όλα τα Flip Flops. Ουσιαστικά, τα δεδομένα ρέουν από την έξοδο ενός Flip Flop στην είσοδο σάρωσης του επόμενου. Μόλις φορτωθεί όλη η ακολουθία, γίνεται μετάβαση στη λειτουργία σύλληψης κι ένας παλμός ρολογιού εφαρμόζεται για τη διέγερση του μπλοκ που μας ενδιαφέρει έτσι ώστε να γίνει η σύλληψη του αποτελέσματος. Έπειτα, το κύκλωμα επιστρέφει στη λειτουργία ολίσθησης όπου τα δεδομέ- 15

να ολισθαίνουν προς την έξοδο. Τέλος, η έξοδος που προκύπτει συγκρίνεται με την αναμενόμενη (σωστή) έξοδο. Ο αριθμός των κύκλων shift-in και shift-out ισοδυναμεί με τον αριθμό των Flip Flops που υπάρχουν στην αλυσίδα. Για παράδειγμα, αν το κύκλωμα αποτελείται από 100 Flip Flops, τότε θα πραγματοποιηθούν 100 shift-in κύκλοι, 1 κύκλος capture και 100 shift-out κύκλοι. Ο συνολικός χρόνος εξέτασης εξαρτάται, κυρίως, από τη συχνότητα ολίσθησης, καθώς χρειάζεται μόνο 1 κύκλος σύλληψης. Ο χρόνος εξέτασης είναι μία σημαντική παράμετρος στον καθορισμό του κόστους. Αν η συχνότητα ολίσθησης είναι υψηλή, τότε ο χρόνο εξέτασης είναι μικρότερος κι άρα το κόστος λιγότερο. Όμως, η υψηλή συχνότητα ολίσθησης έχει ως αποτέλεσμα και μεγαλύτερη κατανάλωση ισχύος. Γι αυτό πρέπει να γίνεται ένα trade-off για να υπάρχει ένα επιθυμητό αποτέλεσμα. 1.5 Δομές Scan Cell Ένα scan cell έχει δύο εισόδους, μία για τα δεδομένα και μία για τη σάρωση. Στη κανονικά λειτουργία, καθώς επίσης και στη λειτουργία σύλληψης, επιλέγεται η είσοδος των δεδομένων για την ενημέρωση της εξόδου, ενώ στη λειτουργία ολίσθησης επιλέγεται η είσοδος σάρωσης για την ενημέρωση. Υπάρχουν τρεις κατηγορίες δομών scan cell που χρησιμοποιούνται ευρέως: Muxed-D Scan Cell Clocked-Scan Cell LSSD Scan Cell a) Muxed-D Scan Cell Αποτελείται από ένα Flip Flop τύπου D κι έναν πολυπλέκτη. Ο πολυπλέκτης χρησιμοποιεί μία επιπλέον είσοδο, την SE (scan enable), για την επιλογή μεταξύ της εισόδου δεδομένων (DI) και της εισόδου σάρωσης (SΙ), όπως φαίνεται στο παρακάτω σχήμα. Εικόνα 5: Muxed-D Scan Cell Στην κανονική λειτουργία, όπως και στη λειτουργία σύλληψης, το SE ισούται με 0 και η τρέχουσα τιμή στο DI αιχμαλωτίζεται στο εσωτερικό D Flip Flop, όταν εφαρμοσθεί ένα ρολόι θετικού παλμού. Αντίθετα, στη λειτουργία ολίσθησης το SE ισούται με 1 κι χρησιμοποιείται η SI για την εσωτερική ολίσθηση των νέων δεδομένων στο D Flip Flop, ενώ ταυτόχρονα το περιεχόμενο του D Flip Flop ολισθαίνει προς τα έξω. 16

b) Clocked-Scan Cell Στο Clocked-Scan Cell η επιλογή εισόδου διεξάγεται χρησιμοποιώντας δύο ανεξάρτητα ρολόγια, τα DCK και SCK, όπως φαίνεται στο παρακάτω σχήμα. Εικόνα 6: Clocked-Scan Cell Όμοια με πριν, στην κανονική λειτουργία όπως και στη λειτουργία σύλληψης χρησιμοποιείται το ρολόι δεδομένων (DCK) για την αιχμαλώτιση της τρέχουσας τιμής της εισόδου δεδομένων DI αιχμαλωτίζεται στο clocked-scan cell. Αντίθετα, στη λειτουργία ολίσθησης χρησιμοποιείται το ρολόι ολίσθησης (SCK) για την εσωτερική ολίσθηση των νέων δεδομένων από την είσοδο σάρωσης SI στο clocked-scan cell, καθώς το περιεχόμενο του ολισθαίνει προς τα έξω. c) LSSD Scan Cell Αυτό το scan cell αποτελείται από δύο μανδαλωτές, έναν κύριο (master) τύπου D με δύο θύρες, τον L 1 κι έναν ακόλουθο (slave) τύπου D, τον L 2. Τα ρολόγια Α, Β και C χρησιμοποιούνται για την επιλογή μεταξύ της εισόδου δεδομένων D και της εισόδου σάρωσης I με σκοπό την οδήγηση των +L 1 και +L 2, όπως φαίνεται στο παρακάτω σχήμα. Σε ένα σύστημα LSSD, είτε το +L 1 και +L 2 μπορούν να χρησιμοποιηθούν για την οδήγηση της συνδυαστικής λογικής του κυκλώματος. Εικόνα 7: LSSD Scan Cell 17

Με σκοπό την εγγύηση της μη ανταγωνιστικής λειτουργίας, τα τρία ρολόγια εφαρμόζονται με μη-επικαλυπτόμενο τρόπο. Ο κύριος μανδαλωτής L 1 χρησιμοποιεί το ρολόι συστήματος C για τη λήψη δεδομένων από την είσοδο δεδομένων D και την εξαγωγή τους στο +L 1. Το ρολόι Β εφαρμόζεται μετά το ρολόι Α για τη λήψη δεδομένων συστήματος από τον L 1 και την εξαγωγή αυτών στο +L 2. Τέλος, κάνοντας μία σύγκριση των τριών παραπάνω σχεδίων scan cells παρατηρούμε τα ε- ξής πλεονεκτήματα και μειονεκτήματα: Πίνακας 1: Διαφορές μεταξύ Muxed-D Scan Cell, Clocked-Scan Cell και LSSD Scan Cell Πλεονεκτήματα Μειονεκτήματα Muxed-D Scan Cell Υπάρχει συμβατότητα στα μοντέρνα σχέδια Προσθέτει Ολοκληρωμένη υποστήριξη από υπάρχοντα αυτοματοποιημένα εργαλεία σχεδίου καθυστέρηση πολυπλέκτη Clocked-Scan Cell Δεν υπάρχει υποβιβασμός επίδοσης Απαιτεί επιπρόσθετη δρομολόγηση ρολογιού ολίσθησης LSSD Scan Cell Εισάγει σάρωση σε σχέδια που βασίζονται σε μανδαλωτή Εγγυάται την ελευθερία ανταγωνισμού Αυξάνει περιπλοκότητα δρομολόγησης 1.5 Αρχιτεκτονικές Σάρωσης Υπάρχουν τρία είδη αρχιτεκτονικών σάρωσης, η πλήρης σάρωση (full scan), η μερική σάρωση (partial scan) και η σάρωση τυχαίας προσπέλασης (random-access scan). a) Πλήρης σάρωση Σε αυτήν την αρχιτεκτονική όλα τα στοιχεία αποθήκευσης αντικαθίστανται με scan cells και με αυτόν τον τρόπο όλες οι είσοδοι μπορούν να ελεγχθούν κι όλες οι έξοδοι να παρατηρηθούν. Πλήρης σάρωση με Muxed-D Όλα τα flip flop τύπου D αντικαθίστανται με scan cells τύπου D με πολυπλέκτη, όπως φαίνεται στα παρακάτω σχήματα. 18

(α) (β) Εικόνα 8: (α) Αρχικό κύκλωμα, (β) Κύκλωμα με αντικατάσταση των Flip Flop με Flip Flop με πολυπλέκτη Μετά την αντικατάσταση, για το σχηματισμό αλυσίδας σάρωσης (μέσω του σήματος SE) η είσοδος SI του πρώτου flip flop συνδέεται στη βασική είσοδο SI, ενώ όλων των υπολοίπων στην έξοδο Q του αμέσως προηγούμενου flip flop. Επιπλέον, η έξοδος του τελευταίου flip flop συνδέεται στη βασική έξοδο SO. Υπάρχουν δύο ειδών είσοδοι και έξοδοι: Βασικές είσοδοι (ΡΙs) είναι οι εξωτερικές είσοδοι του κυκλώματος και μπορούν να τεθούν σε οποιαδήποτε λογική τιμή απαιτείται παράλληλα κι απευθείας από εξωτερικές εισόδους. Ψεύδο-βασικές είσοδοι (ΡΡΙs) είναι οι έξοδοι του scan cell και μπορούν να τεθούν σε οποιαδήποτε λογική τιμή απαιτείται σειριακά μέσω των εισόδων της αλυσίδας σάρωσης. Βασικές έξοδοι (ΡΟs) είναι οι εξωτερικές έξοδοι του κυκλώματος και μπορούν να παρατηρηθούν παράλληλα κι απευθείας από τις εξωτερικές εξόδους. Ψεύδο-βασικές έξοδοι (ΡΡΟs) είναι οι είσοδοι του scan cell και μπορούν να παρατηρηθούν σειριακά μέσω των εξόδων της αλυσίδας σάρωσης. 19

Πλήρης σάρωση με Clocked τεχνική Δύο λειτουργίες διακρίνονται από την κατάλληλη εφαρμογή δύο ανεξάρτητων ρολογιών, SCK και DCK, κατά τη διάρκεια ολίσθησης και αιχμαλώτισης. Εικόνα 9: Κύκλωμα Πλήρης σάρωσης με Clocked τεχνική Πλήρης σάρωση με LSSD Η θύρα εξόδου +L 1 του κύριου μανδαλωτή L 1 χρησιμοποιείται για την οδήγηση της συνδυαστικής λογικής του συστήματος κι έτσι ο ακόλουθος μανδαλωτής L 2 χρησιμοποιείται για σάρωση εξέτασης. Εικόνα 10: Κύκλωμα Πλήρης σάρωσης με LSSD τεχνική 20

Στην κανονική λειτουργία, τα ρολόγια C 1 και C 2 χρησιμοποιούνται με μη-επικαλυπτόμενο τρόπο. Κατά τη διάρκεια της ολίσθησης, τα ρολόγια Α και Β εφαρμόζονται κι αυτά με τρόπο ώστε να μην επικαλύπτονται και τα scan cells (flip flop) σχηματίζουν μία αλυσίδα σάρωσης από την είσοδο SI έως την έξοδο SO. Στη λειτουργία σύλληψης, εφαρμόζονται τα C 1 και C 2 έτσι ώστε να φορτωθεί η απόκριση εξέτασης από τη συνδυαστική λογική στα cells σάρωσης. Εικόνα 11: Κύκλωμα Πλήρης σάρωσης με LSSD τεχνική b) Μερική σάρωση Σε αυτήν την αρχιτεκτονική, ένα υποσύνολο στοιχείων αποθήκευσης (flip flop) μετατρέπονται σε cells σάρωσης, ενώ τα υπόλοιπα παραλείπονται. Για παράδειγμα, στο παρακάτω σχήμα χρησιμοποιούνται το πρώτο και το τρίτο flip flop, ενώ το δεύτερο έχει παραλειφθεί από την αλυσίδα σάρωσης. Είναι πιθανό να μειωθεί η πολυπλοκότητα της παραγωγής εξέτασης χωρίζοντας το αρχικό ρολόι σε δύο διαφορετικά, ένα για τον έλεγχο όλων των cells σάρωσης κι ένα για τον έλεγχο των υπόλοιπων flip flops. Ωστόσο, αυτό μπορεί να προκαλέσει επιπρόσθετη περιπλοκότητα στη δρομολόγηση δύο διαφορετικών δένδρων ρολογιού κατά τη διάρκεια της φυσικής εφαρμογής. 21

Εικόνα 12: Παράδειγμα κυκλώματος με χρήση μερικής σάρωσης Με τη χρήση της μερικής σάρωσης μειώνεται η περιοχή πυριτίου, καθώς επίσης μειώνει και την υποβάθμιση της επίδοση. Από την άλλη μεριά, όμως, μπορεί να οδηγήσει σε χαμηλότερη κάλυψη βλαβών, ταυτόχρονα να έχει μεγάλο χρόνο παραγωγής εξέτασης και προσφέρει λιγότερη υποστήριξη για θέματα ανάλυσης αποσφαλμάτωσης, διάγνωσης και αποτυχίας. c) Σάρωση τυχαίας προσπέλασης Η αρχιτεκτονική αυτή προσφέρει τον έλεγχο ή την παρατήρηση μεμονωμένων cells σάρωσης χωρίς να επηρεάζονται τα υπόλοιπα, καθώς επίσης και τη μείωση της κατανάλωσης ισχύος κατά τη διάρκεια εξέτασης και την απλοποίηση της διαδικασίας εκτέλεσης της εξέτασης καθυστέρησης. Όμως, απαιτεί αρκετό υλικό στο σχέδιο σάρωσης και δρομολόγησης και δεν εγγυάται τη μείωση του χρόνου της εφαρμογής της εξέτασης. Στην αρχιτεκτονική αυτή, όλα τα cells σάρωσης οργανώνονται σε μία δισδιάστατη διάταξη κι υπάρχει ένας καταχωρητής ολίσθησης διεύθυνσης μεγέθους log 2n, όπου n ο συνολικός αριθμός των cells σάρωσης, ο οποίος προσδιορίζει το cell σάρωσης στο οποίο θα γίνει προσπέλαση, όπως φαίνεται στο παρακάτω σχήμα. 22

Εικόνα 13: Κύκλωμα σάρωσης τυχαίας πρόσβασης Σημείωση: Στα πλαίσια της παρούσας διπλωματικής εργασίας χρησιμοποιήθηκες η μέθοδος της πλήρης σάρωσης με Muxed-D Flip Flops. 1.6 Αυτόματη παραγωγή διανυσμάτων δομικής (Automatic Test Pattern Generation-ATPG) Είναι μία αυτοματοποιημένη μέθοδος που χρησιμοποιείται για την εύρεση μίας ακολουθίας εισόδου που όταν εφαρμοσθεί σε ένα ψηφιακό κύκλωμα ενεργοποιεί τον εξοπλισμό αυτόματης εξέτασης για να διακρίνει μεταξύ της σωστής και της λανθασμένης, εξαιτίας βλαβών, συμπεριφοράς του κυκλώματος. Χρησιμοποιείται για την εξέταση ημιαγωγών συσκευών μετά την κατασκευή τους και σε μερικές περιπτώσεις για να βοηθήσει στον προσδιορισμό της αιτίας της βλάβης. Η αποτελεσματικότητα της ATPG υπολογίζεται από την ποσότητα των βλαβών που ανιχνεύονται και τον αριθμό των παραγόμενων διανυσμάτων δοκιμής. Η ATPG καλύπτει περισσότερες βλάβες, μειώνει τη συνολική προσπάθεια και χρειάζεται λιγότερα διανύσματα εξέτασης. Επιπλέον, μειώνει το κόστος της προσομοίωσης βλαβών, καθώς επίσης και της παραγωγής εξετάσεων. Μία βλάβη ανιχνεύεται από το μοτίβο εξέτασης εάν η έξοδος (κύκλωμα με βλάβη), όταν εξετάζεται σύστημα με μία μόνο βλάβη, είναι διαφορετική από την αναμενόμενη έξοδο (σωστό κύκλωμα). Η διαδικασία της ATPG για τη βλάβη-στόχο αποτελείται από δύο φάσεις: Ενεργοποίηση βλάβης, δημιουργείται, δηλαδή, μία τιμή σήματος στο μέρος της βλάβης η οποία είναι αντίθετη της τιμής που παράχθηκε από το εσφαλμένο μοντέλο. Διάδοση βλάβης, μετακινείται, δηλαδή, η εξαγόμενη τιμή σήματος προς τα μπροστά δημιουργώντας ένα μονοπάτι από το μέρος της βλάβης έως μίας εισόδου του κυκλώματος. 23

Η διαδικασία της ATPG μπορεί να αποτύχει όταν υπάρχει μία μη ανιχνεύσιμη βλάβη, δηλαδή δεν αλλάζει η τιμή της εξόδου, κι όταν υπάρχει διάνυσμα για την εύρεση της βλάβης, αλλά ο αλγόριθμος δε μπορεί να το βρει, πιο συγκεκριμένα χρειάζεται μεγάλο χρονικό διάστημα για την εύρεσή του και για το λόγο αυτό σταματάει την προσπάθεια. Συνδυαστική ATPG Η μέθοδος αυτή επιτρέπει τη δοκιμή μεμονωμένων κόμβων του κυκλώματος και δε χρειάζεται να ανησυχεί ο σχεδιαστής για τη λειτουργία του συνολικού κυκλώματος. Κατά τη διάρκεια της εξέτασης, η λειτουργία σάρωσης ενεργοποιείται αναγκάζοντας όλα τα FFs να συνδεθούν με έναν απλουστευμένο τρόπο (σε μία αλυσίδα), παρακάμπτοντας τις διασυνδέσεις που υπάρχουν στην κανονική λειτουργία. Αυτό επιτρέπει τη χρήση μίας σχετικά απλής μήτρας διανυσμάτων για τη γρήγορη εξέταση όλων των FFs, καθώς επίσης και για τον εντοπισμό βλαβών. Σειριακή ATPG Η μέθοδος αυτή ψάχνει μία ακολουθία διανυσμάτων για τον εντοπισμό μίας συγκεκριμένης βλάβης μέσα από μία δεξαμενή με όλες τις πιθανές ακολουθίες. Ακόμα και μία απλή βλάβη απαιτεί τη δοκιμή μίας σειράς από διανύσματα για την ανίχνευσή της σε ένα σειριακό κύκλωμα. Επίσης, η παρατηρησιμότητα και η ελεγξιμότητα των εσωτερικών σημάτων σε ένα σειριακό κύκλωμα είναι πιο δύσκολη σε σχέση με ένα συνδυαστικό κύκλωμα. Αυτοί οι παράγοντες κάνουν τη σειριακή ATPG πιο πολύπλοκη από τη συνδυαστική ATPG, όπου μπορούν να εξεταστούν μεμονωμένα οι κόμβοι. 1.7 Κύκλωμα περιφερειακής διασύνδεσης (Wrapper) Το πρότυπο IEEE 1500 δημιουργήθηκε για να διευθύνει την πολυπλοκότητα της εξέτασης συστημάτων σε chips (SoC). Παρέχει μία πρότυπη διεπαφή κι ένα σύνολο από κανόνες για τη δημιουργία ενός ορίου απομόνωσης μεταξύ του πυρήνα και της εξωτερικής λογικής του πυρήνα. Ο σκοπός του συνόρου αυτού ή αλλιώς wrapper είναι να επιτρέψει την απομονωμένη εξέταση ενός πυρήνα με χρήση του ελάχιστου αριθμού σημάτων που πρέπει να μεταφερθούν έξω στο επίπεδο SoC. Ο wrapper περιλαμβάνει τα wrapper cells για κάθε λειτουργική θύρα εισόδου/εξόδου. Το πρότυπο IEEE 1500 απαιτεί οι πυρήνες να συμπεριλαμβάνουν έναν ΙΕΕΕ 1500 wrapper για να υπάρχει συμβατότητα. Αυτός ο wrapper αποτελείται από τον Wrapper Boundary καταχωρητή (WBR), τον Wrapper Instruction καταχωρητή (WIR) και τον Wrapper Bypass καταχωρητή (WBY). Υπάρχει, επίσης, ένα σύνολο από σήματα το οποίο καλείται Wrapper Serial Port (WSP) και χρησιμοποιείται για όλες τις σειριακές εντολές και κάθε επικοινωνία με τον WIR ή τον WBY. Ο WSP περιλαμβάνει οχτώ επιτακτικά κι ένα προαιρετικό σήμα. Αυτά είναι τα εξής: WRSTN: αφήνει τον wrapper σε λειτουργική κατάσταση WSI (wrapper serial input): χρησιμοποιείται ως η είσοδος της σάρωσης WSO (wrapper serial output): χρησιμοποιείται ως η έξοδος της σάρωσης WRCK (wrapper clock): πάντα χρονίζει τον WIR, WBY και κατά τη διάρκεια σειριακών εντολών πρέπει να χρονίζει τον WBR 24

ShiftWR: το σήμα shift enable UpdateWR: το σήμα update enable CaptureWR: το σήμα capture enable SelectWR: επιλέγει μεταξύ του καταχωρητή εντολών WIR και ενός καταχωρητή δεδομένων (για παράδειγμα WBR, WBY) TransferDR: (προαιρετικό) χρησιμοποιείται μόνο από τον WBR εάν απαιτείται από τα WBR cells Το πρότυπο ΙΕΕΕ 1500 δίνει μία σειριακή εντολή έτσι ώστε όλοι οι πυρήνες να έχουν και τις οχτώ θύρες, αλλά δε χρειάζεται να συνδεθούν όλα στα WBR cells. Εικόνα 14: ΙΕΕΕ Wrapper 1500 Ο WBR συντίθεται από cells των οποίων η βασική λειτουργία είναι ο έλεγχος και η παρατήρηση των θυρών του πυρήνα. Τα cells αυτά συνδέονται σε μία αλυσίδα σάρωσης για τον εφοδιασμό των κατάλληλων τιμών για τον έλεγχο των εισόδων ή για την μετατόπιση προς τα έξω (shiftout) των τιμών που παρατηρήθηκαν στις εξόδους. Ο WBR πρέπει να ακολουθεί ορισμένους κανόνες οι οποίοι περιγράφουν τη συμπεριφορά των cells του. Αυτοί είναι: 1. Κάθε WBR cell πρέπει να έχει τουλάχιστον ένα στοιχείο αποθήκευσης το οποίο να είναι συνδεδεμένο με την αλυσίδα σάρωσης. 2. Κάθε WBR cell πρέπει να έχει ένα cell αποθήκευσης το οποίο να μπορεί να χρησιμοποιηθεί για τη λειτουργία σύλληψης (για παρατηρησιμότητα). 25

3. Εάν υπάρχει στοιχείο αποθήκευσης update για τη λειτουργία σύλληψης, το γεγονός transfer πρέπει να υποστηρίζεται. 4. Στοιχεία αποθήκευσης στο μονοπάτι μετατόπισης δεν ανταποκρίνονται στη λειτουργία update. 5. Tα WBR cells δεν πρέπει να αλλάξουν κατάσταση στην απουσία θετικού μετώπου του WRCK ή παλμού WRSTN. 6. Τα WBR cells πρέπει να υποστηρίζουν και να μην επεμβαίνουν στη λειτουργική κατάσταση. 7. Κατά τη διάρκεια λειτουργίας εσωτερικής εξέτασης (internal test), τα WBR cells εισόδου πρέπει να ανταποκρίνονται στα γεγονότα shift, apply κι αν προβλέπεται στο transfer ή στο update, ενώ τα cells εξόδου στα γεγονότα shift, capture κι αν προβλέπεται στο transfer. 8. Κατά τη διάρκεια λειτουργίας εξωτερικής εξέτασης (external test), τα WBR cells εξόδου πρέπει να ανταποκρίνονται στα γεγονότα shift, apply κι αν προβλέπεται στο transfer ή στο update, ενώ τα cells εισόδου στα γεγονότα shift, capture κι αν προβλέπεται στο transfer. 9. Στην περίπτωση που κάποιο γεγονός δεν απαιτείται, το αντίστοιχο WBR cell πρέπει να έχει την ικανότητα να διατηρήσει την τιμή του, καθώς άλλοι wrapper πυρήνες εκτελούν αυτά τα γεγονότα. Ο WIR αποτελείται από τρία μέρη, τον ελεγκτή WIR, τον καταχωρητή WIR και τον επιλέκτη WIR. Σύμφωνα με το πρότυπο ΙΕΕΕ 1500, το κύκλωμα WIR πρέπει να παράγει τα σήματα που απαιτούνται για τον έλεγχο των άλλων μερών του wrapper κι αυτό μπορεί να επιτευχθεί μέσω της αρχικοποίησης της σειριακής θύρας του wrapper και του καταχωρητή WIR. Ελεγκτής: παράγει τα σήματα ελέγχου του wrapper. Καταχωρητής: λαμβάνει απαραίτητες οδηγίες και τα δεδομένα εξέτασης. Επιλέκτης: χρησιμοποιείται για τη σύνδεση του σήματος WSI με οποιονδήποτε από τους καταχωρητές του wrapper, αλλά μόνο ένας καταχωρητής μπορεί να υπάρξει μεταξύ των σημάτων WSI και WSO. Ο καταχωρητής αυτός υποστηρίζει τέσσερις διαφορετικές εντολές. Αυτές είναι οι εξής: Ws_extetst: Ο WBR επιλέγεται μεταξύ του μονοπατιού WSI και WSO και τοποθετείται σε λειτουργία εξωτερικής αντιμετώπισης. Η εντολή εφαρμόζει δεδομένα εξέτασης στο σύστημα από τα cells του WBR στις εξόδους του πυρήνα και συλλαμβάνει δεδομένα από το σύστημα στα cells του WBR στις εισόδους του πυρήνα. Wp_extest: Μοιάζει με τον ws_extest με μόνη διαφορά ότι χρησιμοποιούνται τα τερματικά των παράλληλων θυρών (parallel ports) για τον έλεγχο της λειτουργίας του WBR. Wp_intest: Ο WBR χρησιμοποιείται για την εφαρμογή δεδομένων εξέτασης στον πυρήνα κι επίσης συλλαμβάνει την απόκριση από τις εξόδους του πυρήνα. Τα τερματικά των παράλληλων θυρών (parallel ports) χρησιμοποιούνται για τον έλεγχο του WBR και της λειτουργίας του πυρήνα. Ws_intest: Είναι σειριακή εντολή που τοποθετεί τον WBR και τις αλυσίδες σάρωσης του πυρήνα στο μονοπάτι WSI-WSO. Ο WBY είναι καταχωρητής του ενός bit, τοποθετείται μεταξύ των σημάτων WSI και WSO και παρακάμπτει τον wrapper στη λειτουργική κατάσταση. Ο καταχωρητής WIR παράγει το μοναδικό σήμα ελέγχου του WBY το οποίο καλείται WBY_shift. 26

2. Κατανάλωση Ισχύος Οι αρχιτεκτονικές σάρωσης, που αναφέρθηκαν παραπάνω, που χρησιμοποιούνται στη σχεδίαση είναι ακριβές όσον αφορά την κατανάλωση ισχύος. Κατά τη διάρκεια της εξέτασης υπάρχει πιθανότητα η δραστηριότητα εναλλαγής λογικών τιμών να είναι μεγαλύτερη σε σχέση με αυτή στην κανονική λειτουργία του κυκλώματος έως και πέντε φορές. Αυτό οφείλεται σε διάφορους παράγοντες. Ένας από τους βασικότερους λόγους είναι η πολυπλοκότητα της ATPG, καθώς τείνει να παράγει περισσότερες εναλλαγές τιμών από ότι η κανονική λειτουργία, διότι έχει ως σκοπό τη ενεργοποίηση όσον το δυνατόν περισσότερων κόμβων στο μικρότερο δυνατό χρόνο. Επιπλέον, η συμπίεση της εξέτασης οδηγεί σε υψηλότερη δραστηριότητα εναλλαγών λόγω της παράλληλης ενεργοποίησης και διάδοσης βλαβών στο κύκλωμα. Τέλος, πολλές φορές εξετάζονται παράλληλα πολλοί πυρήνες για μείωση του χρόνου εφαρμογής της εξέτασης, το οποίο έχει ως αποτέλεσμα τη σημαντική αύξηση της δραστηριότητας εναλλαγής. Για τους λόγους που αναφέρθηκαν παραπάνω, θεωρείται αναγκαία η όσον τον δυνατόν μείωση της κατανάλωσης ισχύος κατά τη διάρκεια της εξέτασης ολοκληρωμένων κυκλωμάτων κι έ- χει αποτελέσει θέμα έρευνας εδώ και πολλά χρόνια με αποτέλεσμα να έχουν αναπτυχθεί διάφορες μέθοδοι για την επίτευξη αυτού του στόχου. 2.1 Σχετική Βιβλιογραφία Πολλοί ερευνητές επικεντρώθηκαν στις αλυσίδες σάρωσης και την τμηματοποίησή τους. Για παράδειγμα, οι Bonhomme, Girard, Guiller, Landrault και Provossoudovitch [1] παρουσίασαν μία μέθοδο στην οποία χρησιμοποιούνται δύο διαφορετικά ρολόγια των οποίων η ταχύτητα είναι η μίση από την κανονική και είναι συγχρονισμένα με το ρολόι του συστήματος. Κάθε ρολόι χρησιμοποιείται για την ενεργοποίηση των μισών cells σάρωσης κατά τη διάρκεια ενός κύκλου ρολογιού, ενώ κατά τη διάρκεια της λειτουργίας σύλληψης, τα δύο αυτά ρολόγια λειτουργούν όπως το ρολόι του συστήματος. (α) (β) Εικόνα 15: (α) Αρχική αλυσίδα (β) Διαίρεση αλυσίδας στα δύο 27

Η λειτουργία των ρολογιών δεν είναι ταυτόχρονη, δηλαδή σε έναν κύκλο ρολογιού ενεργοποιείται το μονοπάτι σάρωσης Α και στον επόμενο το Β. Έτσι, η σειριακή έξοδος συνδέεται σε έναν πολυπλέκτη ο οποίος οδηγεί το περιεχόμενο του εκάστοτε μονοπατιού σάρωσης, κατά τη διάρκεια της λειτουργίας σάρωσης. Οι Min-Hao Chiu και James C.-M. Li [2] πρότειναν τη σάρωση Jump ή J-scan, η οποία αντί να ολισθαίνει ένα bit ανά κύκλο ρολογιού, ολισθαίνει δύο. Η τεχνική αυτή ουσιαστικά μοιράζει τη συχνότητα ρολογιού χωρίς την αύξηση του χρόνου εξέτασης. Αυτό επιτυγχάνεται τροποποιώντας τα cells σάρωσης και προσθέτοντας επιπλέον δρομολόγηση για τα σήματα σάρωσης. Το Flip Flop J- scan αποτελείται από έναν αρνητικό μανδαλωτή (NL), έναν θετικό (PL) και δύο πολυπλέκτες και καλείται έτσι λόγω της αλματώδους συμπεριφοράς του όταν τα μοτίβα δοκιμής ολισθαίνουν στην αλυσίδα σάρωσης. Εικόνα 16: J-scan Flip Flop Όπως φαίνεται και στο σχήμα, το J-scan έχει έναν επιπρόσθετο ακροδέκτη εισόδου, τον Jump Input (JI), κι έναν εξόδου, τον Jump Output (JO). Οι δύο πολυπλέκτες ελέγχονται από το σήμα ενεργή σάρωση (SE). Έτσι όταν το SE έχει την τιμή μηδέν το κύκλωμα βρίσκεται στην κανονική λειτουργία και οι πολυπλέκτες επιλέγουν την είσοδο δεδομένων. Όταν το SE γίνει ένα οι πολυπλέκτες επιλέγουν τις εισόδους SI και JI. Στην αρνητική φάση του ρολογιού είναι διαφανής ο αρνητικός μανδαλωτής (NL) (από το SI και JΟ) κι ο θετικός (PL) αποθηκεύει τα δεδομένα από το JI. Αντίθετα, στη θετική φάση του ρολογιού είναι διαφανής ο θετικός μανδαλωτής (NL) (από το JI και SO) κι ο αρνητικός (NL) αποθηκεύει τα δεδομένα από το SI. Έτσι, η είσοδος SI ολισθαίνει στην έξοδο JO και η είσοδος JI στην έξοδο SO. Οι Efi Arvaniti και Yiorgos Tsiatouhas [3] παρουσίασαν μία τεχνική τμηματοποίησης της αλυσίδας σάρωσης και τη εφαρμογή των λειτουργιών σάρωσης σε κάθε τμήμα ξεχωριστά. Πιο αναλυτικά, η αλυσίδα τμηματοποιείται και ένας πολυπλέκτης τοποθετείται ανάμεσα από κάθε τμήμα. (α) (β) Εικόνα 17: (α) Αρχική αλυσίδα (β) Τμηματοποιημένη αλυσίδα 28

Όταν το σήμα MODEj ενός πολυπλέκτη στην έξοδο ενός τμήματος, όπως φαίνεται στο σχήμα, γίνει ένα (όλα τα υπόλοιπα σήματα MODE των άλλων τμημάτων είναι μηδέν) επιτρέπεται η σάρωση μόνο στο συγκεκριμένο (ενεργό) τμήμα, ενώ τα υπόλοιπα παρακάμπτονται. Η παράκαμψη αυτή έχει ως αποτέλεσμα τη φθορά των δεδομένων αυτών των τμημάτων, γι αυτό τα αντίστοιχα Flip Flops τίθενται σε μία κατάσταση αναμονής (hold) για τη διατήρηση των δεδομένων τους. Για την επίτευξη της αναμονής, σε κάθε τμήμα μπορεί να εισαχθεί μία πύλη AND, η οποία δέχεται ως εισόδους το ρολόι και το MODEj του αντίστοιχου τμήματος με σκοπό τον φραγμό του ρολογιού. Εναλλακτικά μπορεί να χρησιμοποιηθεί το Flip Flop του παρακάτω σχήματος, με επανατροφοδότηση της εισόδου του. Εικόνα 18: Flip Flop διατήρησης κατάστασης Όμως, πολλοί ερευνητές επικεντρώθηκαν στη μελέτη των διανυσμάτων εισόδου αντί στην αλυσίδα σάρωσης καθ αυτή. Αυτό που παρατηρήθηκε ήταν ότι τα διανύσματα εισόδου εμφανίζουν αδιαφορίες σε κάποια bits, οπότε αναπτύχθηκαν διάφορες μέθοδοι συμπλήρωσης των αδιαφοριών αυτών με την πιο κατάλληλη λογική τιμή. Υπάρχουν διάφορες τεχνικές που κυκλοφορούν, όπως η τεχνική τυχαίας συμπλήρωσης, συμπλήρωσης με 1 και συμπλήρωσης με 0. Επίσης, μία ακόμα απλή τεχνική είναι η τεχνική γειτονικής συμπλήρωσης (Fill-Adjacent- FA), η οποία εκμεταλλεύεται τις αδιαφορίες με σκοπό τη μείωση του όγκου των διαδοχικών συμπληρωματικών bits εξέτασης που φορτώνονται στις αλυσίδες σάρωσης, καθώς επίσης και την απόσταση που διανύουν σε αυτές. Για παράδειγμα, έστω ότι σε ένα κύκλωμα υπάρχουν c αλυσίδες σάρωσης κι έστω ότι το διάνυσμα S=XXX1XXX01XX0XXX1 πρέπει να φορτωθεί στην αλυσίδα σάρωσης j από τα δεξιά προς τα αριστερά. Με την εφαρμογή της μεθόδου FA, θα προκύψει το εξής διάνυσμα εισόδου Τ j= 1111000010001111, δηλαδή επαναλαμβάνεται η τιμή του δεξιότερου bit που δεν είναι αδιαφορία. Βάσει των παρατηρήσεων ότι τα δεδομένα εξόδου της σάρωσης συσχετίζονται με τα δεδομένα εισόδου, ότι η απλή γειτονική συμπλήρωση οδηγεί πολλές φορές σε κακές επιλογές συμπλήρωσης αδιαφοριών κι ότι τα δεδομένα εισόδου σάρωσης τείνουν στη συμπλήρωση των cells κυρίως με μηδέν, οδήγησε στη δημιουργία ενός αλγορίθμου που λέγεται Bounded Adjacent Fill (BA fill) [5], επέκτασης της μεθόδου γειτονικής συμπλήρωσης. Τέλος, στο [4] παρουσιάζεται η συμπλήρωση προτίμησης (Preferred-Fill) αδιαφοριών. Η μέθοδος αυτή βασίζεται στην πιθανότητα που έχει ένα bit αδιαφορίας να λάβει στην επόμενη περίοδο κάποια συγκεκριμένη λογική τιμή. Πιο αναλυτικά, έστω δύο διανύσματα εισόδου, τα V 1 και V 2, όπου το V 2 αποτελεί την απόκριση του κυκλώματος μετά την εφαρμογή του V 1. Εάν η τιμή του V 1 για κάποιο cell i (π.χ. v 1i) είναι αδιαφορία, τότε συμπληρώνεται με τη λογική τιμή 1 (0), έτσι ώστε η 29

πιθανότητα του v 2i (που είναι το αντίστοιχο cell στο διάνυσμα V 2) να πάρει την τιμή 1(0) είναι μεγαλύτερη από το να πάρει την τιμή 0 (1). Στα πλαίσια της παρούσας διπλωματικής εργασίας χρησιμοποιήσαμε το αρχείο common power format (cpf). 2.2 CPF αρχείο Είναι αρχείο βασισμένο σε TCL και περιέχει προσδιορισμούς ισχύος του σχεδίου. Καθιστά ικανή τη σύλληψη όλων των σκοπών που είναι σχετικοί με το σχέδιο, επαλήθευση και την ε- φαρμογή σε ένα αρχείο κι επιτρέπει την εφαρμογή των δεδομένων διαμέσου της ροής του σχεδιασμού. Ως εκ τούτου, η λειτουργικότητα του συστήματος δεν αλλάζει με την εφαρμογή του cpf αρχείου. Αντίθετα, συμπληρώνει την περιγραφή του κώδικα Verilog ή vhdl. Περιέχει δύο ειδών αντικείμενα: Design Objects, τα οποία είναι αντικείμενα που ήδη υπάρχουν στο σχέδιο CPF Objects, τα οποία είναι αντικείμενα που δημιουργούνται από το cpf αρχείο. 2.2.1 Design Objects Αντικείμενα που δημιουργούνται κατά τη περιγραφή του σχεδίου, τα οποία μπορεί να είναι σε μορφή RTL αρχείου ή netlist. Μερικά από αυτά είναι: Πίνακας 2: Αντικείμενα σχεδίου (cpf) Design Objects Σχέδιο (Design) Στιγμιότυπο (Instance) Τμήμα (Module) Δίκτυο (Net) Pad Ακροδέκτης (Pin) Θύρα (Port) Ορισμός Το τμήμα υψηλότερου επιπέδου Συγκεκριμενοποίηση ενός τμήματος ή ενός cell βιβλιοθήκης Ένα λογικό μπλοκ του σχεδίου Μία σύνδεση μεταξύ στιγμιότυπων ακροδεκτών και θυρών Ένα στιγμιότυπο cell Εισόδου/Εξόδου Ένα σημείο εισόδου προς ή εξόδου από ένα στιγμιότυπο ή cell βιβλιοθήκης Ένα σημείο εισόδου προς ή εξόδου από το σχέδιο ή ένα τμήμα 30

2.2.2 CPF Objects Αντικείμενα που δημιουργούνται στο cpf αρχείο. Μερικά από αυτά είναι: Πίνακας 3: Αντικείμενα CPF CPF Objects Κανόνας Απομόνωσης Σετ βιβλιοθήκης Κατάσταση Ισχύος Πεδίο Ισχύος (Power Domain) Κανόνας Διατήρησης Κατάστασης Συνθήκη Ονομαστικής Λειτουργίας Ορισμός Προσδιορίζει την τοποθεσία και τον τύπο της λογικής της απομόνωσης που θα προστεθεί και τη συνθήκη ενεργοποίησής της Μία συλλογή βιβλιοθηκών που χαρακτηρίζονται από το ίδιο σετ συνθηκών λειτουργίας. Δίνοντας όνομα στο σετ είναι εύκολη η αναφορά σε αυτό. Μία στατική κατάσταση του σχεδίου στην οποία κάθε πεδίο ισχύος λειτουργεί σε μία συγκεκριμένη ονομαστική συνθήκη Μία συλλογή στιγμιότυπων που χρησιμοποιούν την ίδια τροφοδοσία κατά τη διάρκεια της κανονική λειτουργίας και που μπορούν να ενεργοποιηθούν/απενεργοποιηθούν την ίδια χρονική στιγμή. Ένα πεδίο ισχύος μπορεί να είναι εμφωλευμένο εντός κάποιου άλλου Προσδιορίζει τα στιγμιότυπα που θα αντικατασταθούν με flip-flops διατήρησης κατάστασης και τις συνθήκες αποθήκευσης κι επαναφοράς των καταστάσεών τους Μία τυπική συνθήκη λειτουργίας υπό την οποία το σχέδιο ή τμήματα λειτουργούν 2.2.3 Special Library cells Τέλος, υπάρχουν και ειδικά cells βιβλιοθήκης για τη διαχείριση της ισχύος. Μερικά από αυτά είναι: Πίνακας 4: Cells Βιβλιοθήκης (cpf) Library Cells Cell Απομόνωσης Cell Διατήρησης Κατάστασης Ορισμός Λογική που χρησιμοποιείται για την απομόνωση σημάτων μεταξύ δύο πεδίων ισχύος όταν το ένα είναι ενεργό ενώ το άλλο όχι Ειδικός μανδαλωτής που χρησιμοποιείται για τη διατήρηση της κατάστασης του cell όταν η κύρια πηγή τροφοδοσίας είναι απενεργοποιημένη 31

Το cpf αρχείο δεν είναι: Επεκτάσεις της σύνθεσης, των βιβλιοθηκών ή της γλώσσας Verilog Πράγματα που προστίθενται στον RTL Εργαλεία script ή λύσεις Η υιοθέτηση του cpf αρχείου στη βασική ροή σχεδίασης έχει θεμελιώδη οφέλη, καθώς: Εγγυάται υψηλότερη ποιότητα σχεδίου με λιγότερες λειτουργικές βλάβες. Καθιστά ικανή την επικύρωση της λειτουργίας που βασίζεται στην ισχύ στον RTL. Μειώνει τον κίνδυνο στην εφαρμογή τεχνικών χαμηλής ισχύος state-of-the-art. Αυξάνει την παραγωγικότητα και μειώνει το κόστος χρήσης των παραπάνω μεθόδων απόταμίευσης ισχύος. Στο Παράρτημα ΙΙ παρουσιάζεται μία πιο αναλυτική περιγραφή των εντολών του cpf αρχείου, καθώς επίσης κι ένα παράδειγμα. 32

3. Ροή της διαδικασίας εξέτασης Για την πραγματοποίηση της εξέτασης χρησιμοποιήθηκαν διάφορα εργαλεία της Cadence, καθώς επίσης και ένα script στη γλώσσα προγραμματισμού Matlab για την εξαγωγή της δραστηριότητας εναλλαγής λογικών τιμών. 3.1 Εργαλεία της Cadence 3.1.1 RTL-Compiler Ο RTL-Compiler είναι ένα γρήγορο, υψηλής χωρητικότητας εργαλείο που βοηθάει στη σύνθεση των πιο απαιτητικών σχεδίων. Επίσης, χρησιμοποιείται και για την εισαγωγή εξετασιμότητας στα κυκλώματα που επιθυμούμε να εξετάσουμε για βλάβες. 3.1.2 Encounter Test Σε συνδυασμό με τον RTL-Compiler εισάγουν ολοκληρωμένη υποδομή εξέτασης για την επιβεβαίωση υψηλής εξετασιμότητας. Επιπλέον, υποστηρίζει δομές εξέτασης χαμηλής ισχύος χρησιμοποιώντας πληροφορίες για την αυτόματη δημιουργία καταστάσεων εξέτασης για πεδία ισχύος και απαιτήσεις απενεργοποίησης. Η ATPG ενήμερη για την ισχύ στοχεύει σε δομές χαμηλής ισχύος και γι αυτό παράγει διανύσματα σάρωσης που στόχο έχουν να μειώσουν σημαντικά την κατανάλωση ισχύος κατά τη διάρκεια της εξέτασης κυκλωμάτων. Με λίγα λόγια, επιτυγχάνεται μείωση ισχύος ενώ παράλληλα υπάρχει υψηλή ποιότητα εξέτασης. Τέλος, χρησιμοποιείται και για την εισαγωγή του IEEE Wrapper 1500 στα κυκλώματα που εξετάζονται. 3.2 Διαδικασία Η συνολική διαδικασία της εισαγωγής εξετασιμότητας στο κύκλωμα καθώς επίσης και της εξαγωγής της δραστηριότητας εναλλαγής αποτελείται από πέντε βήματα. 3.2.1 Κανονική Λειτουργία Αρχικά, πραγματοποιείται προσομοίωση της κανονικής λειτουργίας του κώδικα, που εξετάζεται, για να εξαχθεί το αρχείο vcd, το οποίο περιέχει τα ονόματα όλων των ακροδεκτών (pins), θυρών (ports) και δικτύων (nets) του κυκλώματος, καθώς επίσης και όλες τις εναλλαγές που συμβαίνουν σε αυτό. Έτσι, ο χρήστης εισάγει στον RTL-Compiler τις βιβλιοθήκες και τον κώδικα του κυκλώματος και στη συνέχεια πραγματοποιεί επεξεργασία (elaborate) και σύνθεση (synthesize). Με τη βοήθεια του NC-Verilog, χρησιμοποιώντας την εντολή nc launch για την εκκίνησή του, και με το testbench αρχείο, το οποίο περιέχει τις τιμές των εισόδων του κυκλώματος για την κανονική λειτουργία, επιτυγχάνεται η προσομοίωση της λειτουργίας του κυκλώματος και η εξαγωγή του αρχείου vcd. 33

3.2.2 Εισαγωγή Εξετασιμότητας Για να επιτευχθεί η εισαγωγή εξετασιμότητας στο κύκλωμα χρησιμοποιείται πάλι ο RTL- Compiler, αλλά τώρα γίνεται η εισαγωγή περισσότερων πληροφοριών. Η ροή λειτουργίας για την εισαγωγή των απαραίτητων πληροφοριών, καθώς επίσης και για την εξαγωγή των απαραίτητων αρχείων για την εξέταση των κυκλωμάτων είναι η εξής: Διάβασμα πληροφοριών σχεδίου (βιβλιοθήκες, κώδικα, κλπ.) Επεξεργασία (Elaboration) Εισαγωγή πληροφοριών σχετικές με τη σάρωση αλυσίδων Εισαγωγή πληροφοριών για τη δημιουργία του αρχείου του IEEE Wrapper 1500 Σύνθεση Εξαγωγή των απαραίτητων αρχείων Πιο αναλυτικά, όσον αφορά τις πληροφορίες σχετικά με τις αλυσίδες σάρωσης χρειάζεται να εισαχθεί το πλήθος που επιθυμεί ο χρήστης να δημιουργηθούν (set scnumber Χ, όπου Χ αριθμός αλυσίδων), έπειτα ότι όλα τα Flip-Flops τύπου D θα αντικατασταθούν με Flip-Flops τύπου D με πολυπλέκτη και θα δημιουργηθούν οι ακροδέκτες (pins) δύο νέων σημάτων, του scan enable και test enable. Τέλος, πραγματοποιείται η σύνδεση των αλυσίδων. Όσον αφορά τον IEEE Wrapper 1500, ουσιαστικά δημιουργείται το αρχείο CoreSpecList το οποίο θα χρησιμοποιηθεί στη συνέχεια. Μία πιο αναλυτική περιγραφή των εντολών, καθώς κι ένα παράδειγμα κώδικα TCL παρουσιάζεται στο Παράρτημα Ι. 3.2.3 IEEE Wrapper 1500 Ένα από τα αρχεία που εξάχθηκε με την προηγούμενη διαδικασία είναι το CoreSpecList. Μέσω αυτού του αρχείου και με τη βοήθεια του Encounter Test θα δημιουργηθεί ο IEEE Wrapper 1500. Αρχικά, γίνεται η εκκίνηση του Encounter Test εισάγοντας δύο εντολές, πρώτα module load et κι έπειτα et (η έκδοση του Encounter Test είναι η 14.1.102, σε άλλες εκδόσεις αρκεί μόνο η εντολή et για την εκκίνησή του). Αφού δημιουργηθεί ένα νέο project με την αντίστοιχη επιλογή από το μενού, στο παράθυρο που εμφανίζεται μπορεί ο χρήστης να ονομάσει το project όπως επιθυμεί. Στο Methodology File χρησιμοποιείται η επιλογή zcommands_meth, που είναι το κατάλληλο αρχείο για τη δημιουργία του wrapper. Εικόνα 19: Δημιουργία σχεδίασης wrapper 34

Μετά την εισαγωγή των παραπάνω στοιχείων εμφανίζεται μία λίστα κι από εκεί γίνεται η επιλογή του build build_1500_wrapper. Εικόνα 20: Λίστα επιλογών της σχεδίασης wrapper Η επιλογή αυτή εμφανίζει ένα παράθυρο με διάφορα πεδία που πρέπει να συμπληρωθούν. Έτσι, ο χρήστης εισάγει τον κώδικα του κυκλώματος μετά τη σύνθεση, καθώς επίσης το αρχείο CoreSpecList και το όνομα του πυρήνα του κυκλώματός του. 35

Εικόνα 21: Συμπλήρωση των πεδίων για τη δημιουργία του wrapper Τέλος, μέσω της επιλογής Setup πραγματοποιείται η εισαγωγή των βιβλιοθηκών που χρησιμοποιήθηκαν από το path στο οποίο βρίσκονται και στη συνέχεια επιλέγεται το Set Global. Εικόνα 22: Εισαγωγή βιβλιοθηκών Αφού ολοκληρωθούν όλα τα παραπάνω βήματα, επιλέγεται το κουμπί Run και πραγματοποιείται η δημιουργία του wrapper. 36

3.2.4 Encounter Test Αφού ολοκληρωθεί η παραπάνω διαδικασία, έχει δημιουργηθεί ο φάκελος testresults ο ο- ποίος περιέχει αρχεία απαραίτητα για την εξέταση. Αφού ο χρήστης μεταβεί σε αυτόν το φάκελο εκκινεί ξανά τον Encounter Test, αλλά αυτήν τη φορά στο Methodology File πρέπει να χρησιμοποιηθεί το αρχείο Default_test. Εικόνα 23: Δημιουργία σχεδίασης της εξέτασης με πλήρη σάρωση Η λίστα που εμφανίζεται είναι διαφορετική από την προηγούμενη. 37

Εικόνα 24: Λίστα επιλογών της εξέτασης Αρχικά, για να γίνει η κατασκευή του μοντέλου εξέτασης (Build Test Model) εισάγεται ο κώδικας του κυκλώματος που προκύπτει μετά την εισαγωγή του wrapper. Στην επιλογή Setup αυτή τη φορά χρησιμοποιείται ένα αρχείο σε γλώσσα Verilog το οποίο περιλαμβάνει τις βιβλιοθήκες που χρησιμοποιήθηκαν. Στη συνέχεια, κατασκευάζεται η κατάσταση εξέτασης (Build a Full Scan Test Mode) χρησιμοποιώντας δύο αρχεία που δημιουργήθηκαν από την προηγούμενη διαδικασία και ορίζουν την κατάσταση λειτουργίας του wrapper. 38

Εικόνα 25: Δημιουργία μοντέλου εξέτασης Αφού ολοκληρωθεί η παραπάνω διαδικασία σειρά έχει η επαλήθευση των δομών εξέτασης (Verify Test Structures in Full Scan) και η κατασκευή του μοντέλου βλάβης (Build Fault Model). Τέλος, αφού εκτελεστούν τα τέσσερα βήματα της ATPG και σε συνδυασμό με την επιλογή Write Vectors παράγονται τα διανύσματα εξέτασης. Για την εξαγωγή του αρχείου που περιέχει τα ονόματα όλων των ακροδεκτών (pins), θυρών (ports) και δικτύων (nets) του κυκλώματος, καθώς επίσης και όλες τις εναλλαγές που πραγματοποιούνται (όπως και στην κανονική λειτουργία), αλλά και το συνολικό αριθμό των διανυσμάτων που έχουν παραχθεί, δημιουργείται ένα αρχείο το οποίο διαβάζει τα αποτελέσματα της ATPG, τις βιβλιοθήκες και τον κώδικα του κυκλώματος και στη συνέχεια εκτελείται μέσω του τερματικού (terminal). 3.2.5 Εισαγωγή αρχείου cpf Αφού ολοκληρωθεί η διαδικασία της εξέτασης του σχεδίου, σειρά έχει η όσον το δυνατό μείωση της δραστηριότητας εναλλαγής, δηλαδή της κατανάλωσης ισχύος. Έτσι, αρχικά ο χρήστης πρέπει να συντάξει το cpf αρχείο (περισσότερες λεπτομέρειες παρουσιάζονται στο Παράρτημα ΙΙ) και στη συνέχεια να το εντάξει στη ροή του RTL-Compiler. Πιο αναλυτικά, οι διαφορές που υπάρχουν στον TCL κώδικα του RTL-Compiler είναι ότι αυτήν τη φορά οι βιβλιοθήκες που θα χρησιμοποιηθούν θα διαβαστούν μέσω του αρχείου cpf χρησιμοποιώντας την εντολή read_cpf library cpf.cpf. Αφού γίνει η επεξεργασία (elaborate) και πριν γίνει η σύνθεση (synthesized) διαβάζεται το αρχείο ως εξής read_cpf cpf.cpf. Τέλος, πριν την εξαγωγή όλων των τελικών αρχείων χρησιμοποιείται η εντολή commit_cpf για να ενταχθούν όλα τα απαραίτητα cells και κανόνες στο σύστημα. Έτσι, ο κώδικας που εξάγεται περιέχει όλες τις απαραίτητες πληροφορίες κι όλη η υπόλοιπη διαδικασία είναι ακριβώς η ίδια με πριν. Σημείωση: Για έλεγχο πιθανών σφαλμάτων στον κώδικα του αρχείου cpf, εκτελείται η εντολή check_cpf αφού έχει διαβαστεί το αρχείο. 39

4. Αποτελέσματα Στην παρούσα ενότητα θα παρουσιασθούν τα αποτελέσματα από πέντε διαφορετικά κυκλώματα στις τρεις καταστάσεις λειτουργίας: κανονική λειτουργία, λειτουργία εξέτασης και λειτουργία ε- ξέτασης χαμηλής κατανάλωσης ισχύος, που χρησιμοποιήθηκαν κατά τη διάρκεια της διπλωματικής εργασίας. Σημείωση: Στα αποτελέσματα που παρουσιάζονται παρακάτω, η δραστηριότητα εναλλαγής είναι αδιάστατος αριθμός, καθώς δίνεται από το πηλίκο του μέσου όρου του συνολικού αριθμού εναλλαγών των ακροδεκτών του κυκλώματος προς τον αντίστοιχο αριθμό του ρολογιού, ενώ η περιοχή του υλικού δίνεται σε μικρόμετρα (μm). Επίσης, το ποσοστό αύξησης/μείωσης υπολογίζεται μέσω του τύπου: ή _ ή ή _ ή ή_ ή Έτσι, αν το Π είναι θετικό σημαίνει ότι υπήρξε μείωση, ενώ αν είναι αρνητικό πραγματοποιήθηκε αύξηση. Τέλος, στα αριθμητικά αποτελέσματα που παρουσιάζονται η υποδιαστολή συμβολίζεται με τελεία (.). 4.1 s444 Αρχικά, αφού υλοποιηθεί η διαδικασία της κανονικής λειτουργίας, όπως αναφέρθηκε παραπάνω, εξάγεται το vcd αρχείο και με τη βοήθεια του script της γλώσσας προγραμματισμού Matlab προκύπτει ότι η δραστηριότητα εναλλαγής των ακροδεκτών του κυκλώματος είναι 2.9269. Το επόμενο βήμα που ακολουθεί είναι η εισαγωγή της εξετασιμότητας. Αφού εισαχθεί το κύκλωμα και οι βιβλιοθήκες και γίνει επεξεργασία (elaborate), δηλαδή έχει φορτωθεί το σύστημα στη μνήμη του RTL, ξεκινά η εισαγωγή των περισσότερων πληροφοριών. Ο χρήστης χρειάζεται να πραγματοποιήσει τον έλεγχο του κυκλώματος για τυχόν λανθασμένες αναφορές ή ενότητες σε αυτό. Εικόνα 26: Έλεγχος κυκλώματος s444 Αφού το κύκλωμα έχει ελεγχθεί και δεν υπάρχουν τέτοιου είδους σφάλματα, έπεται ο ορισμός των χαρακτηριστικών για τη μέθοδο εξέτασης που θα χρησιμοποιηθεί, δηλαδή την αντικατάσταση όλων των D-Flip Flops με Muxed D-Flip Flops, κι αυτό επιτυγχάνεται με την εντολή set_attr 40

dft_scan_style muxed_scan, καθώς επίσης και η δημιουργία των δύο νέων σημάτων scan_enable και test_enable. (α) (β) Εικόνα 27: (α) Εισαγωγή σήματος scan enable (β) Εισαγωγή σήματος test enable στο κύκλωμα s444 Για να βεβαιωθεί ο χρήστης ότι οι κανόνες που πρόσθεσε δε δημιούργησαν κάποιο σφάλμα μπορεί και χρειάζεται να ελέγξει το σχέδιό του χρησιμοποιώντας την εντολή check_dft_rules. Εικόνα 28: Πρώτος έλεγχος κανόνων εξέτασης κυκλώματος s444 41

Αν το κύκλωμα δεν εμφανίζει κάποια παράβαση (violation), πραγματοποιείται η σύνθεσή του και η τελική σύνδεση των αλυσίδων σάρωσης. Πριν την εξαγωγή των τελικών κυκλωμάτων χρειάζεται να γίνει ο τελικός έλεγχος των κανόνων εξέτασης σε περίπτωση που κατά τη διάρκεια της σύνθεσης δεν έγινε σωστά η χαρτογράφηση. Εικόνα 29: Δεύτερος έλεγχος κανόνων εξέτασης κυκλώματος s444 Αφού δεν υπάρχουν παραβάσεις εξάγονται τα αρχεία και σειρά έχει η δημιουργία του wrapper. Καθ όλη τη διάρκεια της εισαγωγής εξετασιμότητας εισάγονται οι απαραίτητες πληροφορίες του κυκλώματος στο αρχείο CoreSpecList, το οποίο περιγράφεται στο Παράρτημα Ι. Με χρήση του Encounter Test και της μεθοδολογίας που περιεγράφηκε προηγουμένως, ο χρήστης κατασκευάζει τον wrapper. 42

Εικόνα 30: Κατασκευή wrapper κυκλώματος s444 Τέλος, ο χρήστης με χρήση του Encounter Test κατασκευάζει το μοντέλο και παράγει τα διανύσματα εξέτασης, τα οποία χρησιμοποιούνται για την εξαγωγή του vcd αρχείου κι έτσι υπολογίζεται και η δραστηριότητα εναλλαγής της εξέτασης. Σημείωση: όλες οι αλυσίδες σάρωσης πρέπει να είναι ελέγξιμες και παρατηρήσιμες για να είναι εξετάσιμες. Εικόνα 31: Πληροφορίες αλυσίδων σάρωσης (Encounter Test) κυκλώματος s444 s444. Στον παρακάτω πίνακα υπάρχουν συγκεντρωμένες όλες οι πληροφορίες για το κύκλωμα Πίνακας 5: Αποτελέσματα κυκλώματος s444 Normal Mode Test Mode area 255.47 296.51 Toggle activity 2.9269 4.4630 Είναι εμφανές ότι η κατανάλωση στην εξέταση είναι περισσότερη από ότι στην κανονική λειτουργία (1.5 φορές). Για το λόγο αυτό, πραγματοποιείται η εισαγωγή του cpf αρχείου. Αρχικά, αναλύεται η δραστηριότητα εναλλαγής σε δύο συνιστώσες, στη λογική του κυκλώματος και στη σάρωση του κυκλώματος. Έπειτα, ακολουθείται η ίδια διαδικασία με πριν, αλλά αυτή τη φορά 43

εισάγεται το cpf αρχείο. Όταν ο χρήστης διαβάσει το αρχείο και δεν έχει σφάλματα θα του εμφανιστεί το εξής: Εικόνα 32: Ανάγνωση cpf αρχείου κυκλώματος s444 Με τη χρήση της εντολής commit_cpf, δηλαδή την εκτέλεση και τελική εισαγωγή του αρχείου, εμφανίζεται λίστα με όλα τα cells που δημιουργήθηκαν και η τοποθεσία εισαγωγής τους. Τέλος, εμφανίζεται και σύνοψη: Εικόνα 33: Εκτέλεση cpf κυκλώματος s444 Μετά το πέρας της όλης διαδικασίας, τα αποτελέσματα που προκύπτουν είναι τα εξής: Πίνακας 6: Διαφορές εξέτασης με εξέταση χαμηλής ισχύος κυκλώματος s444 Test mode Low power Percentage (%) area 296.51 377.91-27.45 Logic 6.6692 4.8313 27.55 scan 4.6668 3.2022 31.38 4.2 s641 Όμοια με πριν, υλοποιείται η διαδικασία της κανονικής λειτουργίας κι εξάγεται το vcd αρχείο και με τη βοήθεια του script της γλώσσας προγραμματισμού Matlab. Αυτό που προκύπτει είναι ότι η δραστηριότητα εναλλαγής των ακροδεκτών του κυκλώματος είναι 1.8649. Το επόμενο βήμα που ακολουθεί είναι η εισαγωγή της εξετασιμότητας. Αφού εισαχθεί το κύκλωμα και οι βιβλιοθήκες και γίνει επεξεργασία (elaborate), δηλαδή έχει φορτωθεί το σύστημα στη μνήμη του RTL, ξεκινά η εισαγωγή των περισσότερων πληροφοριών. Ο χρήστης χρειάζεται να πραγματοποιήσει τον έλεγχο του κυκλώματος για τυχόν λανθασμένες αναφορές ή ενότητες σε αυτό. 44

Εικόνα 34: Έλεγχος κυκλώματος s641 Αφού το κύκλωμα έχει ελεγχθεί και δεν υπάρχουν τέτοιου είδους σφάλματα, έπεται ο ορισμός των χαρακτηριστικών για τη μέθοδο εξέτασης που θα χρησιμοποιηθεί, δηλαδή την αντικατάσταση όλων των D-Flip Flops με Muxed D-Flip Flops, κι αυτό επιτυγχάνεται με την εντολή set_attr dft_scan_style muxed_scan, καθώς επίσης και η δημιουργία των δύο νέων σημάτων scan_enable και test_enable. (α) (β) Εικόνα 35: (α) Εισαγωγή σήματος scan enable (β) Εισαγωγή σήματος test enable κυκλώματος s641 Για να βεβαιωθεί ο χρήστης ότι οι κανόνες που πρόσθεσε δε δημιούργησαν κάποιο σφάλμα μπορεί και χρειάζεται να ελέγξει το σχέδιό του χρησιμοποιώντας την εντολή check_dft_rules. 45

Εικόνα 36: Πρώτος έλεγχος κανόνων εξέτασης κυκλώματος s641 Αν το κύκλωμα δεν εμφανίζει κάποια παράβαση (violation), πραγματοποιείται η σύνθεσή του και η τελική σύνδεση των αλυσίδων σάρωσης. Πριν την εξαγωγή των τελικών κυκλωμάτων χρειάζεται να γίνει ο τελικός έλεγχος των κανόνων εξέτασης σε περίπτωση που κατά τη διάρκεια της σύνθεσης δεν έγινε σωστά η χαρτογράφηση. 46

Εικόνα 37: Δεύτερος έλεγχος κανόνων εξέτασης κυκλώματος s641 Με χρήση του Encounter Test και της μεθοδολογίας που περιεγράφηκε προηγουμένως, ο χρήστης κατασκευάζει τον wrapper. Εικόνα 38: Κατασκευή wrapper κυκλώματος s641 Τέλος, ο χρήστης με χρήση του Encounter Test κατασκευάζει το μοντέλο και παράγει τα διανύσματα εξέτασης, τα οποία χρησιμοποιούνται για την εξαγωγή του vcd αρχείου κι έτσι υπολογίζεται και η δραστηριότητα εναλλαγής της εξέτασης. Σημείωση: όλες οι αλυσίδες σάρωσης πρέπει να είναι ελέγξιμες και παρατηρήσιμες για να είναι εξετάσιμες. 47

Εικόνα 39: Πληροφορίες αλυσίδων σάρωσης κυκλώματος s641 s641. Στον παρακάτω πίνακα υπάρχουν συγκεντρωμένες όλες οι πληροφορίες για το κύκλωμα Πίνακας 7: Αποτελέσματα κυκλώματος s641 Normal Mode Test Mode area 302.67 373.81 Toggle activity 1.8649 4.5855 Είναι εμφανές ότι η κατανάλωση στην εξέταση είναι περισσότερη από ότι στην κανονική λειτουργία (2.45 φορές). Για το λόγο αυτό, πραγματοποιείται η εισαγωγή του cpf αρχείου. Αρχικά, αναλύεται η δραστηριότητα εναλλαγής σε δύο συνιστώσες, στη λογική του κυκλώματος και στη σάρωση του κυκλώματος. Έπειτα, ακολουθείται η ίδια διαδικασία με πριν, αλλά αυτή τη φορά εισάγεται το cpf αρχείο. Με τη χρήση της εντολής commit_cpf, δηλαδή την εκτέλεση και τελική εισαγωγή του αρχείου, εμφανίζεται λίστα με όλα τα cells που δημιουργήθηκαν και η τοποθεσία εισαγωγής τους. Τέλος, εμφανίζεται και σύνοψη: Εικόνα 40: Εκτέλεση cpf κυκλώματος s641 Μετά το πέρας της όλης διαδικασίας, τα αποτελέσματα που προκύπτουν είναι τα εξής: Πίνακας 8: Διαφορές εξέτασης με εξέταση χαμηλής ισχύος κυκλώματος s641 Test mode Low power Percentage (%) area 373.81 496.24-32.75 Logic 6.5301 5.0028 23.38 scan 4.7691 3.3960 28.79 48

4.3 s820 Όμοια με πριν, υλοποιείται η διαδικασία της κανονικής λειτουργίας κι εξάγεται το vcd αρχείο και με τη βοήθεια του script της γλώσσας προγραμματισμού Matlab. Αυτό που προκύπτει είναι ότι η δραστηριότητα εναλλαγής των ακροδεκτών του κυκλώματος είναι 1.8908. Το επόμενο βήμα που ακολουθεί είναι η εισαγωγή της εξετασιμότητας. Αφού εισαχθεί το κύκλωμα και οι βιβλιοθήκες και γίνει επεξεργασία (elaborate), δηλαδή έχει φορτωθεί το σύστημα στη μνήμη του RTL, ξεκινά η εισαγωγή των περισσότερων πληροφοριών. Ο χρήστης χρειάζεται να πραγματοποιήσει τον έλεγχο του κυκλώματος για τυχόν λανθασμένες αναφορές ή ενότητες σε αυτό. Εικόνα 41: Έλεγχος κυκλώματος s820 Αφού το κύκλωμα έχει ελεγχθεί και δεν υπάρχουν τέτοιου είδους σφάλματα, έπεται ο ορισμός των χαρακτηριστικών για τη μέθοδο εξέτασης που θα χρησιμοποιηθεί, δηλαδή την αντικατάσταση όλων των D-Flip Flops με Muxed D-Flip Flops, κι αυτό επιτυγχάνεται με την εντολή set_attr dft_scan_style muxed_scan, καθώς επίσης και η δημιουργία των δύο νέων σημάτων scan_enable και test_enable. (α) (β) Εικόνα 42: (α) Εισαγωγή σήματος scan enable (β) Εισαγωγή σήματος test enable κυκλώματος s820 49

Για να βεβαιωθεί ο χρήστης ότι οι κανόνες που πρόσθεσε δε δημιούργησαν κάποιο σφάλμα μπορεί και χρειάζεται να ελέγξει το σχέδιό του χρησιμοποιώντας την εντολή check_dft_rules. Εικόνα 43: Πρώτος έλεγχος κανόνων εξέτασης κυκλώματος s820 Αν το κύκλωμα δεν εμφανίζει κάποια παράβαση (violation), πραγματοποιείται η σύνθεσή του και η τελική σύνδεση των αλυσίδων σάρωσης. Πριν την εξαγωγή των τελικών κυκλωμάτων χρειάζεται να γίνει ο τελικός έλεγχος των κανόνων εξέτασης σε περίπτωση που κατά τη διάρκεια της σύνθεσης δεν έγινε σωστά η χαρτογράφηση. 50

Εικόνα 44: Δεύτερος έλεγχος κανόνων εξέτασης κυκλώματος s820 Με χρήση του Encounter Test και της μεθοδολογίας που περιεγράφηκε προηγουμένως, ο χρήστης κατασκευάζει τον wrapper. Εικόνα 45: Κατασκευή wrapper κυκλώματος s820 Τέλος, ο χρήστης με χρήση του Encounter Test κατασκευάζει το μοντέλο και παράγει τα διανύσματα εξέτασης, τα οποία χρησιμοποιούνται για την εξαγωγή του vcd αρχείου κι έτσι υπολογίζεται και η δραστηριότητα εναλλαγής της εξέτασης. Σημείωση: όλες οι αλυσίδες σάρωσης πρέπει να είναι ελέγξιμες και παρατηρήσιμες για να είναι εξετάσιμες. 51

Εικόνα 46: Πληροφορίες των αλυσίδων σάρωσης κυκλώματος s820 s820. Στον παρακάτω πίνακα υπάρχουν συγκεντρωμένες όλες οι πληροφορίες για το κύκλωμα Πίνακας 9: Αποτελέσματα κυκλώματος s820 Normal Mode Test Mode area 422.37 440.15 Toggle_activity 1.8908 4.2748 Είναι εμφανές ότι η κατανάλωση στην εξέταση είναι περισσότερη από ότι στην κανονική λειτουργία (2.26 φορές). Για το λόγο αυτό, πραγματοποιείται η εισαγωγή του cpf αρχείου. Αρχικά, αναλύεται η δραστηριότητα εναλλαγής σε δύο συνιστώσες, στη λογική του κυκλώματος και στη σάρωση του κυκλώματος. Έπειτα, ακολουθείται η ίδια διαδικασία με πριν, αλλά αυτή τη φορά εισάγεται το cpf αρχείο. Με τη χρήση της εντολής commit_cpf, δηλαδή την εκτέλεση και τελική εισαγωγή του αρχείου, εμφανίζεται λίστα με όλα τα cells που δημιουργήθηκαν και η τοποθεσία εισαγωγής τους. Τέλος, εμφανίζεται και σύνοψη: Εικόνα 47: Εκτέλεση cpf κυκλώματος s820 Μετά το πέρας της όλης διαδικασίας, τα αποτελέσματα που προκύπτουν είναι τα εξής: Πίνακας 10: Διαφορές εξέτασης με εξέταση χαμηλής ισχύος κυκλώματος s820 Test mode Low power Percentage (%) area 440.15 485.30-10.25 Logic 6.1447 4.5095 26.61 scan 4.8144 3.4202 28.95 52

4.4 s838 Όμοια με πριν, υλοποιείται η διαδικασία της κανονικής λειτουργίας κι εξάγεται το vcd αρχείο και με τη βοήθεια του script της γλώσσας προγραμματισμού Matlab. Αυτό που προκύπτει είναι ότι η δραστηριότητα εναλλαγής των ακροδεκτών του κυκλώματος είναι 1.7733. Το επόμενο βήμα που ακολουθεί είναι η εισαγωγή της εξετασιμότητας. Αφού εισαχθεί το κύκλωμα και οι βιβλιοθήκες και γίνει επεξεργασία (elaborate), δηλαδή έχει φορτωθεί το σύστημα στη μνήμη του RTL, ξεκινά η εισαγωγή των περισσότερων πληροφοριών. Ο χρήστης χρειάζεται να πραγματοποιήσει τον έλεγχο του κυκλώματος για τυχόν λανθασμένες αναφορές ή ενότητες σε αυτό. Εικόνα 48: Έλεγχος κυκλώματος s838 Αφού το κύκλωμα έχει ελεγχθεί και δεν υπάρχουν τέτοιου είδους σφάλματα, έπεται ο ορισμός των χαρακτηριστικών για τη μέθοδο εξέτασης που θα χρησιμοποιηθεί, δηλαδή την αντικατάσταση όλων των D-Flip Flops με Muxed D-Flip Flops, κι αυτό επιτυγχάνεται με την εντολή set_attr dft_scan_style muxed_scan, καθώς επίσης και η δημιουργία των δύο νέων σημάτων scan_enable και test_enable. (α) (β) Εικόνα 49: (α) Εισαγωγή σήματος scan enable (β) Εισαγωγή σήματος test enable κυκλώματος s838 Για να βεβαιωθεί ο χρήστης ότι οι κανόνες που πρόσθεσε δε δημιούργησαν κάποιο σφάλμα μπορεί και χρειάζεται να ελέγξει το σχέδιό του χρησιμοποιώντας την εντολή check_dft_rules. 53

Εικόνα 50: Πρώτος έλεγχος κανόνων εξέτασης κυκλώματος s838 Αν το κύκλωμα δεν εμφανίζει κάποια παράβαση (violation), πραγματοποιείται η σύνθεσή του και η τελική σύνδεση των αλυσίδων σάρωσης. Πριν την εξαγωγή των τελικών κυκλωμάτων χρειάζεται να γίνει ο τελικός έλεγχος των κανόνων εξέτασης σε περίπτωση που κατά τη διάρκεια της σύνθεσης δεν έγινε σωστά η χαρτογράφηση. 54

Εικόνα 51: Δεύτερος έλεγχος κανόνων κυκλώματος s838 Με χρήση του Encounter Test και της μεθοδολογίας που περιεγράφηκε προηγουμένως, ο χρήστης κατασκευάζει τον wrapper. Εικόνα 52: Κατασκευή wrapper κυκλώματος s838 Τέλος, ο χρήστης με χρήση του Encounter Test κατασκευάζει το μοντέλο και παράγει τα διανύσματα εξέτασης, τα οποία χρησιμοποιούνται για την εξαγωγή του vcd αρχείου κι έτσι υπολογίζεται και η δραστηριότητα εναλλαγής της εξέτασης. Σημείωση: όλες οι αλυσίδες σάρωσης πρέπει να είναι ελέγξιμες και παρατηρήσιμες για να είναι εξετάσιμες. 55

Εικόνα 53: Πληροφορίες αλυσίδων σάρωσης κυκλώματος s838 s838. Στον παρακάτω πίνακα υπάρχουν συγκεντρωμένες όλες οι πληροφορίες για το κύκλωμα Πίνακας 11: Αποτελέσματα κυκλώματος s838 Normal Mode Test Mode area 638.17 710.68 Toggle_activity 1.7733 4.8161 Είναι εμφανές ότι η κατανάλωση στην εξέταση είναι περισσότερη από ότι στην κανονική λειτουργία (2.7 φορές). Για το λόγο αυτό, πραγματοποιείται η εισαγωγή του cpf αρχείου. Αρχικά, αναλύεται η δραστηριότητα εναλλαγής σε δύο συνιστώσες, στη λογική του κυκλώματος και στη σάρωση του κυκλώματος. Έπειτα, ακολουθείται η ίδια διαδικασία με πριν, αλλά αυτή τη φορά εισάγεται το cpf αρχείο. Με τη χρήση της εντολής commit_cpf, δηλαδή την εκτέλεση και τελική εισαγωγή του αρχείου, εμφανίζεται λίστα με όλα τα cells που δημιουργήθηκαν και η τοποθεσία εισαγωγής τους. Τέλος, εμφανίζεται και σύνοψη: Εικόνα 54: Εκτέλεση cpf κυκλώματος s838 Μετά το πέρας της όλης διαδικασίας, τα αποτελέσματα που προκύπτουν είναι τα εξής: Πίνακας 12: Διαφορές εξέτασης με εξέταση χαμηλής ισχύος κυκλώματος s838 Test mode Low power Percentage (%) area 710.68 899.80-26.61 Logic 6.9791 5.2073 25.38 scan 4.8159 3.3326 30.8 56

4.5 multi Όμοια με πριν, υλοποιείται η διαδικασία της κανονικής λειτουργίας κι εξάγεται το vcd αρχείο και με τη βοήθεια του script της γλώσσας προγραμματισμού Matlab. Αυτό που προκύπτει είναι ότι η δραστηριότητα εναλλαγής των ακροδεκτών του κυκλώματος είναι 1.7035. Το επόμενο βήμα που ακολουθεί είναι η εισαγωγή της εξετασιμότητας. Αφού εισαχθεί το κύκλωμα και οι βιβλιοθήκες και γίνει επεξεργασία (elaborate), δηλαδή έχει φορτωθεί το σύστημα στη μνήμη του RTL, ξεκινά η εισαγωγή των περισσότερων πληροφοριών. Ο χρήστης χρειάζεται να πραγματοποιήσει τον έλεγχο του κυκλώματος για τυχόν λανθασμένες αναφορές ή ενότητες σε αυτό. Εικόνα 55: Έλεγχος κυκλώματος multi Αφού το κύκλωμα έχει ελεγχθεί και δεν υπάρχουν τέτοιου είδους σφάλματα, έπεται ο ορισμός των χαρακτηριστικών για τη μέθοδο εξέτασης που θα χρησιμοποιηθεί, δηλαδή την αντικατάσταση όλων των D-Flip Flops με Muxed D-Flip Flops, κι αυτό επιτυγχάνεται με την εντολή set_attr dft_scan_style muxed_scan, καθώς επίσης και η δημιουργία των δύο νέων σημάτων scan_enable και test_enable. (α) (β) Εικόνα 56: (α) Εισαγωγή σήματος scan enable (β) Εισαγωγή σήματος test enable κυκλώματος multi Για να βεβαιωθεί ο χρήστης ότι οι κανόνες που πρόσθεσε δε δημιούργησαν κάποιο σφάλμα μπορεί και χρειάζεται να ελέγξει το σχέδιό του χρησιμοποιώντας την εντολή check_dft_rules. 57

Εικόνα 57: Πρώτος έλεγχος κανόνων εξέτασης κυκλώματος multi Αν το κύκλωμα δεν εμφανίζει κάποια παράβαση (violation), πραγματοποιείται η σύνθεσή του και η τελική σύνδεση των αλυσίδων σάρωσης. Πριν την εξαγωγή των τελικών κυκλωμάτων χρειάζεται να γίνει ο τελικός έλεγχος των κανόνων εξέτασης σε περίπτωση που κατά τη διάρκεια της σύνθεσης δεν έγινε σωστά η χαρτογράφηση. 58

Εικόνα 58: Δεύτερος έλεγχος κανόνων εξέτασης κυκλώματος multi Με χρήση του Encounter Test και της μεθοδολογίας που περιεγράφηκε προηγουμένως, ο χρήστης κατασκευάζει τον wrapper. Εικόνα 59: Κατασκευή wrapper κυκλώματος multi Τέλος, ο χρήστης με χρήση του Encounter Test κατασκευάζει το μοντέλο και παράγει τα διανύσματα εξέτασης, τα οποία χρησιμοποιούνται για την εξαγωγή του vcd αρχείου κι έτσι υπολογίζεται και η δραστηριότητα εναλλαγής της εξέτασης. Σημείωση: όλες οι αλυσίδες σάρωσης πρέπει να είναι ελέγξιμες και παρατηρήσιμες για να είναι εξετάσιμες. 59

Εικόνα 60: Πληροφορίες αλυσίδων σάρωσης κυκλώματος multi multi. Στον παρακάτω πίνακα υπάρχουν συγκεντρωμένες όλες οι πληροφορίες για το κύκλωμα Πίνακας 13: Αποτελέσματα κυκλώματος multi Normal Mode Test Mode area 271.55 337.90 Toggle_activity 1.7035 4.7117 Είναι εμφανές ότι η κατανάλωση στην εξέταση είναι περισσότερη από ότι στην κανονική λειτουργία (2.76 φορές). Για το λόγο αυτό, πραγματοποιείται η εισαγωγή του cpf αρχείου. Αρχικά, αναλύεται η δραστηριότητα εναλλαγής σε δύο συνιστώσες, στη λογική του κυκλώματος και στη σάρωση του κυκλώματος. Έπειτα, ακολουθείται η ίδια διαδικασία με πριν, αλλά αυτή τη φορά εισάγεται το cpf αρχείο. Με τη χρήση της εντολής commit_cpf, δηλαδή την εκτέλεση και τελική εισαγωγή του αρχείου, εμφανίζεται λίστα με όλα τα cells που δημιουργήθηκαν και η τοποθεσία εισαγωγής τους. Τέλος, εμφανίζεται και σύνοψη: Εικόνα 61: Εκτέλεση cpf κυκλώματος multi Μετά το πέρας της όλης διαδικασίας, τα αποτελέσματα που προκύπτουν είναι τα εξής: Πίνακας 14: Διαφορές εξέτασης με εξέταση χαμηλής ισχύος κυκλώματος multi Test mode Low power Percentage (%) area 337.90 409.72-21.2 Logic 6.9244 5.1134 26.15 scan 5.1393 3.6673 28.64 60

Παρακάτω παρατίθεται ο πίνακας με όλα τα αποτελέσματα συγκεντρωμένα για κάθε χαρακτηριστικό ξεχωριστά (υλικό, λογική και σάρωση). Area Πίνακας 15: Συγκεντρωτικός πίνακας υλικού Test mode Low power Percentage (%) s444 296.51 377.91-27.45 s641 373.81 496.24-32.75 s820 440.15 485.30-10.25 s838 710.68 899.80-26.61 multi 337.90 409.72-21.2 Logic Πίνακας 16: Συγκεντρωτικός πίνακας λογικής κυκλωμάτων Test mode Low power Percentage (%) s444 6.6692 4.8313 27.55 s641 6.5301 5.0028 23.88 s820 6.1447 4.5095 26.61 s838 6.9791 5.2073 25.38 multi 6.9244 5.1134 26.15 Scan Πίνακας 17: Συγκεντρωτικός πίνακας της σάρωσης κυκλωμάτων Test mode Low power Percentage (%) s444 4.6668 3.2022 31.38 s641 4.7691 3.3960 28.79 s820 4.8144 3.4202 28.95 s838 4.8159 3.3326 30.8 multi 5.1393 3.6673 28.64 4.6 Συμπεράσματα Η εξέταση των ψηφιακών ολοκληρωμένων κυκλωμάτων έχει αποτελέσει βασικό θέμα σε ό- λους τους σχεδιαστές και εταιρείες παραγωγής κυκλωμάτων. Όμως, όπως αναφέρθηκε και προηγουμένως, η εξέταση παρότι έχει το θετικό της μείωσης των πιθανοτήτων κατασκευής ελαττωματικών συστημάτων, δυστυχώς, οδηγεί και στην αύξηση της κατανάλωσης ισχύος. Στα συγκεκριμένα κυκλώματα που εξετάστηκαν η δραστηριότητα εναλλαγής αυξήθηκε έως και 2.76 φορές, δηλαδή σχεδόν τριπλασιάστηκε, κάτι το οποίο είναι ανεπιθύμητο. Για το λόγο αυτό, κρίνεται απαραίτητη η υιοθέτηση κάποιας μεθόδου μείωσης την εν λόγο εναλλαγής. 61

Η χρήση του Common Power Format, που χρησιμοποιήθηκε στην παρούσα διπλωματική εργασία, οδήγησε στη μείωση της κατανάλωσης ισχύος και στη λογική εξέταση του κυκλώματος, αλλά και στην εξέταση σάρωσής του. Πιο αναλυτικά, από τα αποτελέσματα των πειραμάτων που διεξήχθησαν προκύπτουν τα εξής συμπεράσματα: Στην εξέταση της λογικής των κυκλωμάτων σημειώθηκε μείωση που σε όλα τα κυκλώματα ήταν πάνω από 23%, και μάλιστα το κύκλωμα s444 εμφάνισε τη μεγαλύτερη, 27.55%. Στην εξέταση της σάρωσης των κυκλωμάτων η μείωση ήταν ελαφρώς μεγαλύτερη, πάνω από 28%, και πάλι το κύκλωμα s444 εμφάνισε το μεγαλύτερο ποσοστό μείωσης, 31.38%. Παρ όλα αυτά, με την εισαγωγή επιπλέον cells, δηλαδή επιπλέον υλικού, είχε ως συνέπεια και την αύξηση της επιφάνειας των κυκλωμάτων. Ουσιαστικά, υπάρχει μία σχέση αλληλεξάρτησης μεταξύ της κατανάλωσης ισχύος και του υλικού του κυκλώματος. Όποτε, ο σχεδιαστής κάθε φορά πρέπει να κάνει κάποιον συμβιβασμό μεταξύ αυτών των δύο παραμέτρων για να επιτύχει το ιδανικό, για εκείνον, αποτέλεσμα. Συνοψίζοντας, η εισαγωγή του αρχείου cpf μπορεί να επίφερε μία αύξηση στο υλικό, αλλά αυτό ήταν αναμενόμενο. Αυτό που παρατηρήθηκε είναι ότι σε όλες σχεδόν τις περιπτώσεις των πειραμάτων η μείωση της δραστηριότητας εναλλαγής (ιδίως στην εξέταση σάρωσης του κυκλώματος) ήταν μεγαλύτερη από την αύξηση της επιφάνειας του συστήματος. 4.7 Μελλοντική εργασία Στην παρούσα ενότητα παρουσιάζονται διάφορα ανοιχτά θέματα και βελτιώσεις για την επίτευξη καλύτερων αποτελεσμάτων. Οι πιο σημαντικές από αυτές είναι οι εξής: Δοκιμή του cpf αρχείου σε μεγαλύτερα κυκλώματα Τα κυκλώματα που χρησιμοποιήθηκαν θεωρούνται μικρά, καθώς αποτελούνται κατά μέσο όρο από 15 Flip Flop τύπου D και 300 πύλες. Καλό θα ήταν να δοκιμαστεί το αρχείο και σε συστήματα που αποτελούνται από τόσες πύλες και Flip Flop όσα περίπου και αυτά που στέλνονται συνήθως για κατασκευή. Δοκιμή του cpf αρχείου σε διαφορετικά είδη εξέτασης Η μέθοδος που χρησιμοποιήθηκε για τη διεξαγωγή της εξέτασης ήταν η πλήρης σάρωση με Flip Flop τύπου D με πολυπλέκτη. Θα μπορούσε να χρησιμοποιηθεί η ίδια μέθοδος μείωσης της δραστηριότητας εναλλαγής και σε άλλες μεθοδολογίες εξέτασης κι έτσι να πραγματοποιηθούν και συγκρίσεις μεταξύ των μεθόδων. Χρήση του cpf αρχείου σε συνδυασμό και με άλλη μεθοδολογία για τη μείωση της ισχύος 62

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

Βιβλιογραφία [1] P. G. L. G. C. L. S. P. Y. Bonhomme, A gated clock scheme for low power scan testing of logic ICs or embedded cores, in Test Symposium, 2001. Proceedings. 10th Asian, Kyoto, 2001. [2] M.-H. Chiu and J. C. -M. Li, Jump scan: a DFT technique for low power testing, in 23rd IEEE VLSI Test Symposium (VTS'05), 2005. [3] Y. T. Efi Arvaniti, Low-Power Scan Testing: A Scan Chain Partitioning and Scan Hold Based Technique, Journal of Electronic Testing, vol. 30, no. 3, pp. 329-341, 2014. [4] X. L. Santiago Remersaro, Z. Zhang, S. M. Reddy, I. Pomeranz and J. Rajski, Preferred Fill: A Scalable Method to Reduce Capture Power for Scan Based Designs, in 2006 IEEE International Test Conference, Santa Clara, CA, 2006. [5] R. K. Anshuman Chandra, Bounded Adjacent Fill for Low Capture Power Scan Testing, in 26th IEEE VLSI Test Symposium (vts 2008), San Diego, CA, 2008. [6] L.-T. Wang, in VLSI Test Principles and Architectures, Morgan Kaufmann, 2006. [7] T. L. McLaurin, IEEE Std. 1500 Compliant Wrapper Boundary Register Cell, 2005. [8] http://www.pld.ttu.ee/~maksim/benchmarks/iscas89/verilog/, [Online]. [9] https://en.wikipedia.org/wiki/automatic_test_pattern_generation, [Online]. [10] Cadence, Advanced Low-Power Flow Using RTL Compiler - Integrating CPF into the Flow, 2013. [11] Cadence, CPF Methodology User Guide, 2010. [12] Cadence, Design-for-Test (DFT) using RTL Compiler, 2013. [13] S. I. Initiative, Si2 Common Power Format Specification, 2007. [14] Cadence, Encounter Test: Reference: Legacy Function -- Creating IEEE 1500 Core Wrapping Logic, 2014. 64

Παράρτημα Ι Παρακάτω περιγράφονται αναλυτικά οι εντολές που χρησιμοποιούνται στον RTL-Compiler για τη δημιουργία του αρχείου για τον IEEE Wrapper 1500. Η βασική εντολή που χρησιμοποιείται για την καταγραφή οποιασδήποτε πληροφορίας στο αρχείο έχει τη μορφή echo script >> CoreSpecList. Πιο αναλυτικά, αφού ο χρήστης εισάγει κάποια στοιχεία αρχικοποίησης που επιθυμεί εκείνος, όπως για παράδειγμα την ημερομηνία, χρειάζεται να καθορίσει τις εισόδους και εξόδους του κυκλώματος, κι αυτό επιτυγχάνεται μέσω των εντολών set inportlisttotest [find /des* -port ports_in/*] και set outportlisttotest [find /des* -port ports_out/*], αντίστοιχα. Κατά τη διάρκεια της ροής της εισαγωγής εξετασιμότητας, δημιουργούνται δύο νέα σήματα, το test και το scan enable, τα οποία πρέπει να διευκρινιστούν και στο αρχείο του wrapper ως εξής echo "\$TAM_TE core_test_use=test_enable core_in=test_en" >> CoreSpecList και echo "\$TAM_SE core_test_use=scan_enable core_in=scan_en functional_activestate=0" >> CoreSpecList. Έπειτα, για κάθε αλυσίδα σάρωσης χρειάζεται να οριστεί η είσοδος και έξοδός της κι αυτό μπορεί να πραγματοποιηθεί χρησιμοποιώντας τις εξής εντολές: for {set i 0} {$i < $scnumber } {incr i} { define_dft scan_chain -name core_chain$i -create_ports -sdi c_sdi_$i -sdo c_sdo_$i echo "\$TAM_c_sdi_${i} core_test_use=scan_in core_in=c_sdi_${i} scan_chain=core_chain${i} scan_clock=${myclk}" >> CoreSpecList echo "\$TAM_c_sdo_${i} core_test_use=scan_out core_out=c_sdo_${i} scan_chain=core_chain${i}" >> CoreSpecList } Τέλος, το μόνο που μένει είναι να οριστούν οι ακροδέκτες που αναφέρθηκαν στην εισαγωγή κι αυτό γίνεται ως εξής echo "SelectWIR wpr_use=selectwir" >> CoreSpecList, για τον ακροδέκτη Select WIR. Όμοια, γίνεται και για τους υπόλοιπους. Παράδειγμα κώδικα RTL Σαν παράδειγμα, παρατίθεται παρακάτω το TCL αρχείο του κυκλώματος s444. set_attribute auto_super_thread false set_attribute hdl_search_path /home/thekkini/desktop/final/s444 set_attribute lib_search_path /opt/cadence/elabee/gsclib045_all_v4.4/gsclib045/timing set_attribute library {slow_vdd1v0_basiccells.lib slow_vdd1v0_extvdd1v0.lib slow_vdd1v0_extvdd1v2.lib slow_vdd1v0_multibitsdff.lib} set_attribute lef_library "/opt/cadence/elabee/gsclib045_all_v4.4/gsclib045/lef/gsclib045_tech.lef" set_attribute information_level 7 set myfiles s444.v; set basename s444; set myclk CK; set myperiod_ps 2400; set runname RTL; set scnumber 4; set_attribute lp_insert_clock_gating true / 65

read_hdl -v2001 ${myfiles} set_att hdl_track_filename_row_col true elaborate ${basename} set_attribute lp_clock_gating_cell TLATNTSCAX12 s444 set clock [define_clock -period ${myperiod_ps} -name ${myclk} ${myclk}] external_delay -input 150 -clock [find / -clock ${myclk}] -edge_rise [all_inputs] external_delay -output 50 -clock [find / -clock ${myclk}] -edge_rise [all_outputs] check_design -unresolved report timing -lint write_sdc > ${basename}_${runname}.sdc read_sdc ${basename}_${runname}.sdc echo "## ----------------- ------------------------------------------" > CoreSpecList echo "## ${basename} CoreSpecList " >> CoreSpecList echo "## File created 26/11/2015 " >> CoreSpecList echo "## ------------------------------------------------------------ " >> CoreSpecList echo "## Global keywords " >> CoreSpecList echo "DEFAULT_WRAPPER_BOUNDARY_CELL=WC_SD1_COI" >> CoreSpecList echo "WRAPPER_MODULE_NAME=${basename}_IEEE1500" >> CoreSpecList echo "#### Functional pins on the core" >> CoreSpecList set inportlisttotest [find /des* -port ports_in/*] set outportlisttotest [find /des* -port ports_out/*] foreach item $inportlisttotest { echo "[lindex [split $item \"/\"] 4] core_sys_use=input" >> CoreSpecList } echo "" >> CoreSpecList foreach item $outportlisttotest { echo "[lindex [split $item \"/\"] 4] core_sys_use=output wpr_cell=wc_sd1_cii" >> CoreSpecList } set_attr dft_scan_style muxed_scan set_attribute dft_prefix DFT_ set_attribute dft_identify_top_level_test_clocks true / set_attribute dft_identify_test_signals true / set_attribute dft_identify_internal_test_clocks false / define_dft test_clock -name ${myclk} ${myclk} echo "" >> CoreSpecList echo "#### Clock pins on the core" >> CoreSpecList echo "${myclk} core_sys_use=clock core_test_use=tclk" >> CoreSpecList echo "#### Core test pins" >> CoreSpecList define_dft test_mode -active high test_en -create echo "\$TAM_TE core_test_use=test_enable core_in=test_en" >> CoreSpecList define_dft shift_enable -active high scan_en -create echo "\$TAM_SE core_test_use=scan_enable core_in=scan_en functional_activestate=0" >> CoreSpecList synthesize -to_generic 66

fix_dft_violations -clock -test_control test_en -test_clock_pin CK_in check_dft_rules report dft_registers set_attribute lp_clock_gating_test_signal test_en s444 synthesize -to_mapped -effort medium -no_incr for {set i 0} {$i < $scnumber } {incr i} { define_dft scan_chain -name core_chain$i -create_ports -sdi c_sdi_$i -sdo c_sdo_$i echo "\$TAM_c_sdi_${i} core_test_use=scan_in core_in=c_sdi_${i} scan_chain=core_chain${i} scan_clock=${myclk}" >> CoreSpecList echo "\$TAM_c_sdo_${i} core_test_use=scan_out core_out=c_sdo_${i} scan_chain=core_chain${i}" >> CoreSpecList } connect_scan_chains -chains core_chain* -incremental report dft_chains check_dft_rules echo "#### Pins required for wrapper operation" >> CoreSpecList echo "WSI wpr_use=wsi" >> CoreSpecList echo "WSO wpr_use=wso" >> CoreSpecList echo "SelectWIR wpr_use=selectwir" >> CoreSpecList echo "ShiftWR wpr_use=shiftwr" >> CoreSpecList echo "CaptureWR wpr_use=capturewr" >> CoreSpecList echo "UpdateWR wpr_use=updatewr" >> CoreSpecList echo "WRCK wpr_use=wrck" >> CoreSpecList echo "WRST wpr_use=wrstn" >> CoreSpecList for {set i 0} {$i < $scnumber } {incr i} { echo "WPI[$i] wpr_use=parallel_in" >> CoreSpecList echo "WPO[$i] wpr_use=parallel_out" >> CoreSpecList } echo "#### Section describing wrapper functionality" >> CoreSpecList echo "IOSpecifyData=WRAPPER_Inline" >> CoreSpecList echo "WIR LENGTH=3 CAPTURE={0,0,0}" >> CoreSpecList echo "WBY LENGTH=1" >> CoreSpecList echo "#### Describe the instructions to be implemented." >> CoreSpecList echo "#### If an instruction required by the standard is #### is not listed below, it #### will be implemented anyway." >> CoreSpecList echo "INSTRUCTION NAME=WP_EXTEST OPCODE=011" >> CoreSpecList echo "INSTRUCTION NAME=WS_INTEST_SCAN" >> CoreSpecList set var "" for {set i 0} {$i < $scnumber } {incr i} { if {$i == [expr {$scnumber-1}]} { append var "WP[${i}]" puts $var } else { append var "WP[${i}]," } } 67

echo "INSTRUCTION NAME=WP_INTEST" >> CoreSpecList echo "WRAPPER_Inline" >> CoreSpecList report power > ${basename}_${runname}_power.rep write_hdl > ${basename}_${runname}.v write_script -analyze_all_scan_chains > ${basename}_${runname}_scan_chains_script_file write_sdc > ${basename}_${runname}.sdc write_scandef > ${basename}_${runname} write_hdl -mapped > ${basename}_${runname}.v 68

Παράρτημα ΙΙ Παρακάτω περιγράφονται αναλυτικά οι εντολές που χρησιμοποιούνται στο αρχείο cpf. Το αρχείο αυτό μπορεί να χωριστεί σε τρία βασικά μέρη, η περιγραφή των οποίων θα γίνει ξεχωριστά. Ορισμός Βιβλιοθηκών Αρχικά, ο χρήστης ορίζει το σετ των βιβλιοθηκών που θα χρησιμοποιηθούν καθ όλη τη διάρκεια της σχεδίασης και εξέτασης. Αυτό επιτυγχάνεται με την εντολή: define_library_set name {lib_name} libraries {list_of_libraries} Μέσω της επιλογής name ορίζεται το όνομα του σετ κι αυτό βοηθάει στη διευκόλυνση αναφοράς στις βιβλιοθήκες κάθε φορά που χρειάζεται, ενώ με την επιλογή libraries εισάγεται η λίστα με τις βιβλιοθήκες που επιθυμεί ο σχεδιαστής να χρησιμοποιήσει. Στη συνέχεια, χρειάζεται να καθοριστούν συγκεκριμένα cells του σετ βιβλιοθήκης τα οποία έχουν μία συγκεκριμένη ιδιότητα τα οποία θα αξιοποιηθούν στα επόμενα μέρη του αρχείου cpf. Πιο αναλυτικά, υπάρχουν πέντε διαφορετικές ιδιότητες οι οποίες είναι: Προσδιορισμός cells που μπορούν να χρησιμοποιηθούν ως μετατροπείς επιπέδου. Αυτό μπορεί να γίνει μέσω της εντολής: define_level_shifter_cell cells {cell_list} input {voltage} output{voltage} direction{up/down} όπου ορίζεται η λίστα των cells και στη συνέχεια η τάση εισόδου και εξόδου, δηλαδή ποιο επίπεδο τάσης θα χρειαστεί να μετατρέψουν στην τάση εξόδου. Τέλος, ορίζεται και η κατεύθυνση της μετατροπής, δηλαδή αν από χαμηλή τιμή τάσης εισόδου καταλήγει σε υψηλή (up), ή το αντίθετο (down). Η προεπιλεγμένη τιμή είναι η up. Προσδιορισμός cells που μπορούν να χρησιμοποιηθούν ως απομονωτές. Η απομόνωση πραγματοποιείται μεταξύ δύο πεδίων ισχύος που λειτουργούν σε διαφορετικές κατάστάσεις (το ένα σε ενεργή και το άλλο σε μη-ενεργή), για την αποφυγή διάδοσης αγνώστων καταστάσεων. Αυτό το ορίζουμε μέσω της εντολής: define_isolation_cell cells {cell_list} valid_location {to/from} enable pin {pin_name} όπου ορίζεται η λίστα των cells και στη συνέχεια η τοποθεσία του cell απομόνωσης, πιο συγκεκριμένα αν επιλεγεί το from υποδηλώνει ότι το cell πρέπει να αποθηκευτεί μαζί με το πεδίο ισχύος που ξεκινάει, αλλιώς με το πεδίο ισχύος που καταλήγει η απομόνωση. Προσδιορισμός cells που μπορούν να χρησιμοποιηθούν ως πάντα ενεργά, δηλαδή δεν απενεργοποιούνται ποτέ ανεξαρτήτως των υπολοίπων στοιχείων του σχεδίου. Αυτό μπορεί να οριστεί μέσω της εντολής: define_always_on_cell cells {cell_list} όπου ορίζεται η λίστα των cells. Προσδιορισμός cells που μπορούν να χρησιμοποιηθούν ως διατηρητές κατάστασης. Αυτό πραγματοποιείται μέσω της εντολής: define_state_retention_cell cells {cell_list} restore_function {expression} όπου ορίζεται η λίστα των cells και στη συνέχεια την πόλωση του ακροδέκτη αποκατάστασης που ενεργοποιεί το cell διατήρησης έτσι ώστε να επαναφέρει την αποθηκευμένη τιμή μετά την έξοδο από την κατάσταση απενεργοποίησης. Η έκφραση περιορίζεται στο όνομα του ακροδέκτη ή στην αντιστροφή του (!όνομα_ακροδέκτη). Αν η έκφραση αποτελείται από 69

το πρώτο τότε σημαίνει ενεργή υψηλή (high) πόλωση, αλλιώς ενεργή χαμηλή (low) πόλωση. Ο ακροδέκτης αποκατάστασης πρέπει να είναι ακροδέκτης πάντα ενεργός. Προσδιορισμός cells που μπορούν να χρησιμοποιηθούν ως διακόπτες ισχύος. Αυτό μπορεί να δηλωθεί μέσω της εντολής: define_power_switch_cell cells {cell_list} stage_1_enable {expression} type {footer/header} όπου ορίζεται η λίστα των cells και στη συνέχεια τη συνάρτηση που προσδιορίζει πότε το τρανζίστορ που οδηγείται από αυτό τον ακροδέκτη εισόδου είναι ενεργοποιημένο ή όχι. Μόλις η έκφραση γίνει αληθής τότε ενεργοποιείται, η οποία είναι συνάρτηση του ακροδέκτη εισόδου ο οποίος πρέπει να είναι ακροδέκτης πάντα ενεργός. Τέλος, ο τύπος προςδιορίζει αν το cell βρίσκεται από πάνω ή από κάτω. Ορισμός βασικών στοιχείων Το επόμενο βήμα είναι ο καθορισμός και η δημιουργία των βασικών στοιχείων του κυκλώματος, δηλαδή πως θα γίνει ο καταμερισμός των πυλών και flip flops σε πεδία, τις συνθήκες λειτουργίας, τον προσδιορισμό λειτουργίας του κάθε πεδίου, διάφορων κανόνων και nets. Έτσι, οι εντολές που χρειάζονται είναι οι εξής: create_power_domain default [-instances {inst_list}] [-boundary_ports {pin_list}] [-shuttoff_condition {exrpression}] όπου δημιουργούνται τα πεδία ισχύος, χωρίζοντας τα στοιχεία του κυκλώματος έτσι ώστε κάθε πεδίο να έχει τις ίδιες ιδιότητες όσον αφορά την τάση τροφοδοσίας. Η επιλογή default προσδιορίζει το βασικό πεδίο και μόνο ένα πεδίο μπορεί να προσδιοριστεί με αυτό το χαρακτηριστικό. Επίσης, ο χρήστης καθορίζει κάθε πεδίο από ποια στοιχεία του κυκλώματος θα αποτελείται μέσω του instances και ποια σήματα θα εισέρχονται σε αυτό. Τέλος, γίνεται καθορισμός της συνθήκης σύμφωνα με την οποία το συγκεκριμένο πεδίο απενεργοποιείται και είναι Boolean συνάρτηση των ακροδεκτών. create_nominal_condition name string voltage float με την εντολή αυτή δημιουργείται η ονομαστική συνθήκη λειτουργίας, δίνοντάς της όνομα μέσω της επιλογής name, με συγκεκριμένη τάση που ορίζεται μέσω της επιλογής voltage. create_power_mode name string domain_conditions {domain_conditions_list} [-default] με την εντολή αυτή δημιουργούνται καταστάσεις λειτουργίας, δίνοντάς τους όνομα μέσω της επιλογής name. Σε κάθε κατάσταση λειτουργίας προσδιορίζεται η ονομαστική συνθήκη που θα βρίσκεται κάθε πεδίο ισχύος και έχει την εξής μορφή domain_name@nominal_condition_name. Προσοχή, σε κάθε κατάσταση το πεδίο μπορεί να συσχετιστεί μόνο με μία ονομαστική συνθήκη. Τέλος, ως default ορίζεται η κατάσταση λειτουργίας που αντιστοιχεί στην αρχική κατάσταση του σχεδίου. create_power_nets nets net_list voltage float με την εντολή αυτή δημιουργείται μία λίστα από nets τάσης, δηλώνοντάς τα μέσω της επιλογής nets, και προσδιορίζεται η τάση που θα τους εφαρμοσθεί μέσω της επιλογής voltage. create_ground_nets nets net_list με την εντολή αυτή δημιουργείται μία λίστα από nets γείωσης, δηλώνοντάς τα μέσω της επιλογής nets. create_isolation_rule name string isolation_condition expression [-from/to power_domain] [-isolation_output {high/low}] 70

με την εντολή αυτή προσδιορίζεται ο κανόνα εισαγωγής cells απομόνωσης. Η απομόνωση ενεργοποιείται μέσω της συνθήκης (isolation_condition) και είναι μία συνάρτηση από ακροδέκτες. Μέσω της επιλογής isolation_output ελέγχεται η τιμή εξόδου στην έξοδο των πυλών απομόνωσης. Τέλος, ο χρήστης ορίζει ποιοι ακροδέκτες να απομονωθούν, δηλαδή χρησιμοποιώντας το όρισμα from θα απομονωθούν οι ακροδέκτες εξόδου του συγκεκριμένου πεδίου ισχύος, αλλιώς οι ακροδέκτες εισόδου. create_state_retention_rule name string [ domain power_domain/ -instances instances_list] [-restore_edge expression] με την εντολή αυτή προσδιορίζεται ο κανόνας αντικατάστασης επιλεγμένων καταχωρητών (instances) ή όλων των καταχωρητών (domain) στο συγκεκριμένο πεδίο ισχύος με καταχωρητές διατήρησης κατάστασης. Η επαναφορά των καταστάσεων των καταχωρητών ενεργοποιείται μέσω της συνθήκης restore_edge (μόλις γίνει αληθής) και είναι μία συνάρτηση από ακροδέκτες. Ορισμός αναβαθμίσεων (updates) Το τελικό στάδιο είναι η αναβάθμιση των στοιχείων που δημιουργήθηκαν στο προηγούμενο βήμα χρησιμοποιώντας τα cells που ορίσθηκαν στο πρώτο στάδιο ή γενικότερα χρησιμοποιώντας το σύνολο βιβλιοθηκών. Για να το πετύχει αυτό ο σχεδιαστής μπορεί να χρησιμοποιήσει τις εξής εντολές: update_power_domain name domain internal_power_net net internal_ground_net net μέσω της εντολής αυτής επιτυγχάνεται ο προσδιορισμός πτυχών εφαρμογής για το συγκεκριμένο πεδίο ισχύος και πιο συγκεκριμένα ο καθορισμός του κύριου net γείωσης και τάσης τροφοδοσίας. update_nominal_condition name condition library_set lib_set net μέσω της εντολής αυτής επιτυγχάνεται η συσχέτιση του σετ βιβλιοθηκών με τη συγκεκριμένη ονομαστική συνθήκη λειτουργίας. update_isolation_rules names rule_list { location {from/to} / prefix string / -cells cell_list library_set lib_set} μέσω της εντολής αυτής επιτυγχάνεται η προσθήκη των συγκεκριμένων κανόνων απομόνωσης (names) με πληροφορίες εφαρμογής. Μέσω της επιλογής from/to στο location μπορεί ο χρήστης να προσδιορίσει το πεδίο ισχύος στο οποίο θα προστεθεί η λογική απομόνωσης (με την επιλογή from θα πραγματοποιηθεί αποθήκευση της λογικής απομόνωσης με τα στιγμιότυπα του πεδίου προέλευσης, αλλιώς με το πεδίο προορισμός). Ο συνδυασμός επιλογών cells και library_set ορίζει τα cells που θα χρησιμοποιηθούν για την απομόνωση και σε ποιες βιβλιοθήκες πρέπει να γίνει η αναζήτησή τους. Τέλος, μπορεί ο σχεδιαστής να επιλέξει το πρόθεμα (prefix) που θα χρησιμοποιηθεί όταν δημιουργηθεί η λογική απομόνωσης. update_state_retention_rules names rule_list library_set lib_set μέσω της εντολής αυτής επιτυγχάνεται η προσθήκη των συγκεκριμένων κανόνων διατήρησης κατάστασης (names) με πληροφορίες εφαρμογής. Μέσω της επιλογής library_set ορίζουμε το σετ βιβλιοθηκών που θα γίνει η αναζήτηση των cells διατήρησης κατάστασης. Μετά την προσθήκη όλων αυτών των εντολών ο χρήστη είναι έτοιμος να εφαρμόσει το αρχείο αυτό στο κύκλωμα και να δοθούν οι επιπλέον πληροφορίες που χρειάζεται για να διεξαχθεί 71

η εξέταση του συστήματος με μειωμένη κατανάλωση ισχύος. Επίσης, είναι εφικτό να δει ο χρήστης τα επιπλέον cells που εισήχθησαν μέσω του cpf αρχείου, δηλαδή, να συγκρίνει τα δύο σχηματικά του κυκλώματος, πριν και μετά την εισαγωγή του αρχείου. Σαν παράδειγμα, παρατίθεται παρακάτω η προσθήκη cell απομόνωσης σε μία πύλη AND. (α) (β) Εικόνα 62: Σύγκριση σχηματικού πριν (α) και μετά (β) την εισαγωγή cpf αρχείου Παράδειγμα αρχείου cpf Παρακάτω παρατίθεται ο κώδικας του cpf αρχείου του κυκλώματος s444 σαν παράδειγμα. ################################################################################ ## CPF file ################################################################################ set_cpf_version 1.1 ###Technology part of the CPF 72