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

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

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

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

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

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

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

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

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

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

Οι Εξελικτικοί Αλγόριθμοι (ΕΑ) είναι καθολικοί στοχαστικοί αλγόριθμοι βελτιστοποίησης, εμπνευσμένοι από τις βασικές αρχές της φυσικής εξέλιξης.

Fault Models, Modular Redundancy, Canonical Resilient Structures, Reliability and Availability Models

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

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

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

Ενότητα 8 Η ΠΥΛΗ XOR ΚΑΙ ΟΙ ΕΦΑΡΜΟΓΕΣ ΤΗΣ ΚΩΔΙΚΟΠΟΙΗΣΗ

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

Πρόγραμμα όρασης. Στη συνέχεια θα περιγράψουμε πώς δουλεύει το ρομπότ.

Πράξεις με δυαδικούς αριθμούς

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

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

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

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

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

Εισαγωγή στους Υπολογιστές

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

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 5 Ανάπτυξη Προγράμματος σε Γλώσσα Λίστας Εντολών

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο

ΑΣΚΗΣΗ 1 ΛΟΓΙΚΕΣ ΠΥΛΕΣ (Α)

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

an:3 are:6 a:10

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

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Αναλογικά & Ψηφιακά Κυκλώματα ιαφάνειες Μαθήματος ρ. Μηχ. Μαραβελάκης Εμ.

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

Λειτουργικά Συστήματα (Λ/Σ)

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

Διαδικασιακός Προγραμματισμός

ΗΥ220: Εργαστήριο σχεδίασης ψηφιακών κυκλωμάτων Χριστόφορος Κάχρης

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

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

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο

Ελίνα Μακρή

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 7/1/2014, 22:00

Ανάπτυξη και Σχεδίαση Λογισμικού

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

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL

Matlab functions. Κολοβού Αθανασία, ΕΔΙΠ, Τμήμα Πληροφορικής και Τηλεπικοινωνιών, ΕΚΠΑ

Το λειτουργικό σύστημα. Προγραμματισμός II 1

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

Ψηφιακά Συστήματα. 3. Λογικές Πράξεις & Λογικές Πύλες

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

ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΔΟΚΙΜΑΣΙΑ

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 2 ΛΟΓΙΚΕΣ ΠΥΛΕΣ OR, NOR, XOR

ΚΕΦΑΛΑΙΟ 5. Matlab GUI για FWSVM και Global SVM

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

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

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

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

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

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στο Λ.Σ. UNIX

Λειτουργικά Συστήματα (ΗΥ-345) Χειμερινό Εξάμηνο

50 Ketseo,Theoni Sarif,Omar 104

Το λειτουργικό σύστημα. Προγραμματισμός II 1

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

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Γλώσσα περιγραφής υλικού: Verilog

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

K15 Ψηφιακή Λογική Σχεδίαση 6: Λογικές πύλες και λογικά κυκλώματα

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

Εισαγωγή στο περιβάλλον Code::Blocks

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

ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΨΗΦΙΑΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ. Κεφάλαιο 3

"My Binary Logic" Ένας προσομοιωτής λογικών πυλών στο Scratch

Ergasthriak 'Askhsh 5

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Μονάδες Μνήμης και Διατάξεις Προγραμματιζόμενης Λογικής

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

ΑΣΚΗΣΗ 2 η N-MOS ΚΑΙ P-MOS TRANSISTOR ΩΣ ΔΙΑΚΟΠΤΗΣ

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

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 18: Διαδικασία Σχεδίασης Ψηφιακών Συστηµάτων - Επανάληψη

Τυχαίοι αριθμοί struct Αρχεία Διαμορφώσεις Συναρτήσεις Χειρισμός σφαλμάτων ΠΕΜΠΤΗ ΔΙΑΛΕΞΗ

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

Εισαγωγή στην Αριθμητική Ανάλυση

Αυτοματισμός PLC. Ειδικά Συστήματα Ελέγχου Πλοίου 2012 Κεφ. 2: Αυτοματισμός. Γ. Παπαλάμπρου

Προγραμματισμός Η/Υ (ΤΛ2007 )

Transcript:

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

Το Hope αποτελεί έναν Παράλληλο Εξομοιωτή Σφαλμάτων (Fault Simulator) για σύγχρονα ακολουθιακά κυκλώματα. Μπορεί κανείς να χρησιμοποιήσει το συγκεκριμένο εξομοιωτή τόσο σε περιβάλλον DOS (Windows) όσο και σε περιβάλλον UNIX με μικρές αλλαγές όσον αφορά στα test benches. Στο παρόν εγχειρίδιο θα δοθούν περισσότερες πληροφορίες για την εκτέλεση σε περιβάλλον Windows ενώ για το περιβάλλον UNIX οι εντολές θα έχουν την ίδια μορφή. Το εκτελέσιμο αρχείο για το περιβάλλον UNIX, βρίσκεται μέσα στον ίδιο φάκελο που βρίσκονται και τα υπόλοιπα αρχεία τα οποία χρησιμοποιούνται παρακάτω. Εκτέλεση σε περιβάλλον Windows (DOS) Σαν πρώτο βήμα πρέπει κανείς να μεταβεί με το command prompt (κονσόλα εντολών), στο συγκεκριμένο φάκελο που είναι αποθηκευμένα τα αρχεία εκτέλεσης του hope καθώς και τα αρχεία βιβλιοθηκών και συναρτήσεων που χρησιμοποιεί ο συγκεκριμένος εξομοιωτής. Όταν ο χρήστης βρεθεί στο σωστό path, η βασική μορφή εκτέλεσης της εντολής hope είναι η εξής: hope [options] circuit_file [>outfile] όπου οι παράμετροι options και circuit_file αποτελούν τις επιλογές που παρέχονται ώστε να εξάγονται τα επιθυμητά αποτελέσματα και το όνομα του κυκλώματος που μπαίνει ως παράμετρος στην εντολή hope, αντίστοιχα. Προσδιορισμός Βασικών Επιλογών Σε οποιαδήποτε εκτέλεση της εντολής hope που θέλει κάποιος τα επιστρεφόμενα δεδομένα να αποθηκευτούν σε κάποιο αρχείο, θα πρέπει σε κάθε περίπτωση να δίνει το όνομα του συγκεκριμένου αρχείου, διαφορετικά το αρχείο δε δημιουργείται. Στη συνέχεια παρατίθεται ένας πίνακας με διάφορα ορίσματα που μπορούν να φανούν χρήσιμα. -c fn Οι επιλογές διαβάζονται από το αρχείο fn. (default: Οι επιλογές δίνονται από τη γραμμή εντολών) -D Η λίστα με τα σφάλματα που ανιχνεύονται από κάποιο διάνυσμα δοκιμής γράφεται σε ένα log αρχείο. (default: αναγράφεται ο αριθμός των σφαλμάτων που ανιχνεύονται καθώς και ποια είναι τα συγκεκριμένα σφάλματα). Θα πρέπει να προσδιοριστεί και η επιλογή l. -f fn Τα σφάλματα ορίζονται σε ένα αρχείο με όνομα fn. (default : Τα σφάλματα παράγονται εσωτερικά ) -F fn Καταγράφονται οι σωστές καθώς και οι λανθασμένες αποκρίσεις για τα σφάλματα στο αρχείο 2

fn. Με αυτή την επιλογή, δε χρησιμοποιείται το fault dropping του HOPE, δηλ. τα σφάλματα εξομοιώνονται ταυτόχρονα. -l fn Δημιουργείται log file αρχείο log. (default: δε δημιουργείται κανένα logfile αρχείο) Επιλογές στη διαδικασία εξομοίωσης -N Λειτουργία διάγνωσης μόνο. (Diagnostic mode) Δεν εφαρμόζεται fault dropping, που σημαίνει πως όλα τα σφάλματα εξομοιώνονται για κάθε ένα διάνυσμα δοκιμής. (default: Τα σφάλματα που ανιχνεύονται κατά τη διαδικασία της εξομοίωσης, πετάγονται από τη λίστα σφαλμάτων). -r n Κατάσταση παραγωγής τυχαίων διανυσμάτων δοκιμής (Random Pattern Generation mode). Τα διανύσματα ελέγχου παράγονται με τυχαίο τρόπο. Η εξομοίωση σφαλμάτων τερματίζει είτε όταν ανιχνεύονται όλα τα σφάλματα, είτε όταν έχουν εφαρμοστούν n διανύσματα δοκιμής. (default: -r 224) -s n Αρχικό seed για τη γεννήτρια τυχαίων αριθμών (random()). Αν n=0, το αρχικό seed είναι η τρέχουσα τιμή της ώρας (current time). (default: -s 0 ) -t fn Τα διανύσματα ελέγχου παρέχονται στο αρχείο fn. (default: χρησιμοποιούνται τυχαία διανύσματα). - u Εκτυπώνει όλα τα μη ανιχνεύσιμα σφάλματα σε ένα αρχείο. Το όνομα του συγκεκριμένου αρχείου είναι <ckt>.ufaults. Στο σημείο αυτό να σημειωθεί ότι το HOPE δεν ανανεώνει ένα ήδη υπάρχον αρχείο στο path που δουλεύει κάποιος. Η συγκεκριμένη λίστα σφαλμάτων μπορεί άμεσα να διαβαστεί από το atalanta και από το hope. (default: Δε δημιουργείται κανένα αρχείο). - x (Potential detection mode) Πιθανά Σφάλματα Potentially detected faults are dropped as soon as they are detected. (default: Μόνο τα σφάλματα που ανιχνεύονται πετάγονται από τη λίστα). - 0 Όλα τα φλιπ-φλοπς αρχικοποιούνται στη λογική τιμή 0. - 1 Όλα τα φλιπ-φλοπς αρχικοποιούνται στη λογική τιμή 1. (default: Όλα τα φλιπ-φλοπς αρχικοποιούνται σε απροσδιόριστη κατάσταση unknown (X).) Επιπλέον επιλογές που παρέχονται από το πρόγραμμα -h f Πληροφορίες για το πως είναι η μορφή της λίστας σφαλμάτων -h g On-line user s guide -h n Πληροφορίες για τη μορφή του netlist (κύκλωμα) 3

-h t Πληροφορίες για τη μορφή του αρχείου με τα διανύσματα ελέγχου -h a Ολόκληρο το εγχειρίδιο on-line. (default: Κανένα εγχειρίδιο δεν παρέχεται) Outputs : Στη default κατάσταση, δε δημιουργείται κανένα αρχείο. Η περίληψη της εξομοίωσης σφαλμάτων καταγράφεται στη κλασική έξοδο. Αν έχει οριστεί η επιλογή l τότε δημιουργείται ένα log αρχείο από το HOPE, το οποίο περιέχει περισσότερες πληροφορίες για τη διαδικασία εξομοίωσης σφαλμάτων. Μορφή αρχείων BENCH αρχεία Η μορφή του netlist για το hope είναι σε γενικές γραμμές ίδια με τη μορφή του netlist για τα ISCAS89 εκτός κάποιων μικρών αλλαγών που επισημαίνονται στη συνέχεια. Η πρώτη σειρά θα πρέπει να περιέχει # ακολουθούμενη από το όνομα του κυκλώματος. Οι γραμμές που ξεκινούν με # εκτός της πρώτης, αποτελούν γραμμές σχολίων και δε λαμβάνονται υπόψιν κατά την επεξεργασία του αρχείου. Οι γραμμές σχολίων μπορούν να τοποθετηθούν οπουδήποτε μέσα στο αρχείο *. Επίσης, δεν έχει σημασία η σειρά με την οποία εμφανίζονται οι πύλες μέσα στο αρχείο. Τα ονόματα των πυλών πρέπει να είναι αλφαριθμητικοί χαρακτήρες (0-9, Α-Ζ, a-z, _, [ ή ] ). Οι πύλες που υποστηρίζονται αναφέρονται στη συνέχεια. -------------------------------------------------------------------------------------------------------- Σύνταξη Τύπος Πύλης -------------------------------------------------------------------------------------------------------- INPUT primary input OUTPUT primary output AND and πύλη NAND nand πύλη OR or πύλη NOR nor πύλη XOR 2-εισόδων XOR πύλη XNOR 2-εισόδων XNOR πύλη BUFF ή BUF buffer NOT αντιστροφέας -------------------------------------------------------------------------------------------------------- 4

ΠΑΡΑΔΕΙΓΜΑ: ISCAS89 NETLIST (s298.bench) # s298 # 3 inputs # 6 outputs # 14 D-type flipflops # 44 inverters # 75 gates (31 ANDs + 9 NANDs + 16 ORs + 19 NORs) INPUT(G0) INPUT(G1) INPUT(G2) OUTPUT(G117) OUTPUT(G132) OUTPUT(G66) OUTPUT(G118) OUTPUT(G133) OUTPUT(G67) G10 = DFF(G29) G11 = DFF(G30) G12 = DFF(G34) G13 = DFF(G39) G14 = DFF(G44) G15 = DFF(G56) G16 = DFF(G86) G17 = DFF(G92) G18 = DFF(G98) G19 = DFF(G102) G20 = DFF(G107) G21 = DFF(G113) G22 = DFF(G119) G23 = DFF(G125) G28 = NOT(G130) G38 = NOT(G10) G40 = NOT(G13) G45 = NOT(G12) G46 = NOT(G11) G50 = NOT(G14) G51 = NOT(G23) G54 = NOT(G11) G55 = NOT(G13) G59 = NOT(G12) G60 = NOT(G22) G64 = NOT(G15) II155 = NOT(G16) G66 = NOT(II155) II158 = NOT(G17) G67 = NOT(II158) G76 = NOT(G10) G82 = NOT(G11) G87 = NOT(G16) G91 = NOT(G12) G93 = NOT(G17) G96 = NOT(G14) G99 = NOT(G18) G103 = NOT(G13) G108 = NOT(G112) 5

G114 = NOT(G21) II210 = NOT(G18) G117 = NOT(II210) II213 = NOT(G19) G118 = NOT(II213) G120 = NOT(G124) G121 = NOT(G22) II221 = NOT(G2) G124 = NOT(II221) G126 = NOT(G131) G127 = NOT(G23) II229 = NOT(G0) G130 = NOT(II229) II232 = NOT(G1) G131 = NOT(II232) II235 = NOT(G20) G132 = NOT(II235) II238 = NOT(G21) G133 = NOT(II238) G26 = AND(G28, G50) G27 = AND(G51, G28) G31 = AND(G10, G45, G13) G32 = AND(G10, G11) G33 = AND(G38, G46) G35 = AND(G10, G11, G12) G36 = AND(G38, G45) G37 = AND(G46, G45) G42 = AND(G40, G41) G48 = AND(G45, G46, G10, G47) G49 = AND(G50, G51, G52) G57 = AND(G59, G11, G60, G61) G58 = AND(G64, G65) G62 = AND(G59, G11, G60, G61) G63 = AND(G64, G65) G74 = AND(G12, G14, G19) G75 = AND(G82, G91, G14) G88 = AND(G14, G87) G89 = AND(G103, G96) G90 = AND(G91, G103) G94 = AND(G93, G13) G95 = AND(G96, G13) G100 = AND(G99, G14, G12) G105 = AND(G103, G108, G104) G110 = AND(G108, G109) G111 = AND(G10, G112) G115 = AND(G114, G14) G122 = AND(G120, G121) G123 = AND(G124, G22) G128 = AND(G126, G127) G129 = AND(G131, G23) G24 = OR(G38, G46, G45, G40) G25 = OR(G38, G11, G12) G68 = OR(G11, G12, G13, G96) G69 = OR(G103, G18) G70 = OR(G103, G14) G71 = OR(G82, G12, G13) G72 = OR(G91, G20) G73 = OR(G103, G20) G77 = OR(G112, G103, G96, G19) 6

G78 = OR(G108, G76) G79 = OR(G103, G14) G80 = OR(G11, G14) G81 = OR(G12, G13) G83 = OR(G11, G12, G13, G96) G84 = OR(G82, G91, G14) G85 = OR(G91, G96, G17) G41 = NAND(G12, G11, G10) G43 = NAND(G24, G25, G28) G52 = NAND(G13, G45, G46, G10) G65 = NAND(G59, G54, G22, G61) G97 = NAND(G83, G84, G85, G108) G101 = NAND(G68, G69, G70, G108) G106 = NAND(G77, G78) G109 = NAND(G71, G72, G73, G14) G116 = NAND(G79, G80, G81, G108) G29 = NOR(G10, G130) G30 = NOR(G31, G32, G33, G130) G34 = NOR(G35, G36, G37, G130) G39 = NOR(G42, G43) G44 = NOR(G48, G49, G53) G47 = NOR(G50, G40) G53 = NOR(G26, G27) G56 = NOR(G57, G58, G130) G61 = NOR(G14, G55) G86 = NOR(G88, G89, G90, G112) G92 = NOR(G94, G95, G97) G98 = NOR(G100, G101) G102 = NOR(G105, G106) G104 = NOR(G74, G75) G107 = NOR(G110, G111) G112 = NOR(G62, G63) G113 = NOR(G115, G116) G119 = NOR(G122, G123, G130) G125 = NOR(G128, G129, G130) TEST PATTERN αρχεία Η γραμμή που ξεκινάει με * αποτελεί γραμμή σχολίου και αγνοείται. Κάθε διάνυσμα δοκιμής ξεκινάει με εισαγωγικά (:). Για κάποιο κύκλωμα με n εισόδους, μόνο τα n bits που ακολουθούν των εισαγωγικών είναι σημαντικά, και τα εναπομείναντα bits, αν υπάρχουν αγνοούνται. Το k οστό bit από κάποιο διάνυσμα ελέγχου αποτελεί την τιμή της k-οστής εισόδου του κυκλώματος (με βάση την εμφάνισή τους στο κύκλωμα). Για παράδειγμα, σε ένα κύκλωμα που εμφανίζονται στο netlist οι είσοδές του με την εξής σειρά G0, G1, G2 και G3, το 1 ο bit του test pattern αποτελεί τη τιμή της 1 ης εισόδου G0, το 2 ο bit αποτελεί τη τιμή της G1 κοκ. 7

* Name of circuit: c499o.bench * Test patterns and fault free responses: 1: 00000000000000000000000000000000000000000 00000000000000000000000000000000 2: 00110101111011010000100000011001001011011 00110101111011010000100000011001 3: 01110001110000100111001010101001100101100 01110001110000100111001010101001 4: 00110101000000000001001000100000001110001 00110101000000000001001000100000 5: 00001010110100101111010100010011101000100 00001010110100101111010100010011 6: 10100001100010101001011011100110011111110 10100001100010101001011011100110 7: 11111011111110111011000001001010010011001 11111011111100111011000001001010 FAULT LIST Το HOPE μπορεί να αποκτήσει τη λίστα σφαλμάτων από το χρήστη. Όταν είναι ορισμένη η επιλογή -f fn, η λίστα σφαλμάτων διαβάζεται από το αρχείο fn. (default: Η λίστα σφαλμάτων δημιουργείται εσωτερικά). Ένα παράδειγμα της λίστας σφαλμάτων δίνεται στη συνέχεια : ----------------------------------------------------------------------------------- gate_a->gate_b /1 gate_a->gate_b /0 gate_a /1 gate_b /1 -------------------------------------------------------------------------------------------- Τα gate_a και gate_b είναι τα ονόματα των πυλών. Η πρώτη γραμμή, gate_a->gate_b /1 περιγράφει stuck-at 1 fault στη gate_b που είναι συνδεδεμένη με τη gate_a. Παρόμοια, η δεύτερη γραμμή περιγράφει stuck-at 0 fault στη gate_α που είναι συνδεδεμένη με τη gate_β. Η τρίτη και η τέταρτη γραμμή περιγράφουν stuck-at 1 faults στις εξόδους των πυλών gate_a και gate_b αντίστοιχα. Να σημειωθεί ότι δεν εφαρμόζεται fault collapsing με αυτή την επιλογή. Γι αυτό το λόγο, οι χρήστες θα πρέπει να παρέχουν τη λίστα σφαλμάτων η οποία περιέχει και τα collapsed σφάλματα μέσα. 8

Στη συνέχεια δίνονται κάποια παραδείγματα για την καλύτερη κατανόηση των ανωτέρω. Παραδείγματα > hope D c499o.bench Όπως παρατηρεί κανείς στο παρακάτω πίνακα, μία εκτέλεση εντολής hope επιστρέφει στο χρήστη μία σειρά από διάφορα αποτελέσματα που σχετίζονται με τη διαδικασία της εξομοίωσης. Αναφέρεται το όνομα του κυκλώματος που τίθεται σε εξομοίωση, λεπτομέρειες για τη δομή του (είσοδοι, έξοδοι), το πλήθος των flipflops που αυτό περιέχει, συνολικό πλήθος πυλών. Ακόμη περιέχει πληροφορίες για το είδος της εξομοίωσης, αρχικές παράμετροι εξομοίωσης όπως αρχική κατάσταση στη γεννήτρια τυχαίων αριθμών, αποτελέσματα εξομοίωσης, ποσοστό κάλυψης σφαλμάτων καθώς αναφέρει και το πλήθος των διανυσμάτων που έχουν ανιχνευτεί και πόσα από τα σφάλματα είναι μη ανιχνεύσιμα. Στο συγκεκριμένο παράδειγμα, εκτελείται εξομοίωση για το κύκλωμα c499o.bench, το οποίο έχει 41 primary inputs και 32 primary outputs, δε περιέχει φλιπ-φλοπς και περιέχει 202 πύλες συνολικά. Για την εξομοίωση (επειδή δεν ορίζεται η συγκεκριμένη παράμετρος), εφαρμόστηκαν στο κύκλωμα 224 διανύσματα δοκιμής και έχει επιτευχθεί κάλυψη σφαλμάτων σε ποσοστό 96.834%. Ο αριθμός των επικαλυπτόμενων λαθών είναι 758 (collapsed faults), ο αριθμός των ανιχνεύσιμων λαθών είναι 734 και ο αριθμός των μη ανιχνεύσιμων λαθών είναι 24. Τέλος, παρέχονται πληροφορίες για τη μνήμη που έχει χρησιμοποιηθεί καθώς για το χρόνο που χρειάστηκε η εξομοίωση μέχρι να τερματιστεί. 9

Με την παραπάνω εκτέλεση παράγεται ένα αρχείο με όνομα c499o.log στο οποίο αποθηκεύεται η επιστρεφόμενη πληροφορία για την παραπάνω εξομοίωση. Η πληροφορία αυτή όπως παρατίθεται και στη συνέχεια, περιέχει το διάνυσμα δοκιμής που εφαρμόστηκε, την απόκριση εξόδου, καθώς και το πλήθος των σφαλμάτων που ανιχνεύτηκαν. Στις σειρές που ακολουθούν, αναφέρονται τα ίδια τα σφάλματα που έχουν ανιχνευτεί. Στο τέλος του αρχείου περιέχεται και μία λίστα με τα σφάλματα που δεν έχουν ανιχνευτεί. Test 1 : 0110011111010001111001101001100110110100 01100111110100011110011010011001 182 faults detected od0 /1 id0->od0 /1 e0 /1 10

id0 /1 id4 /1 id8 /0 id12 /1 id16 /0 id17 /0 id18 /0 id19 /1 id20 /1 id21 /0 id22 /0 test 111: 11010000111101101101001101000001110000000 11010000111101101101001101000001 0 faults detected test 112: 10100000111000110110100001110001010001101 10100000111000110110000001110001 5 faults detected e20 /0 wf /0 s5->e21 /1 s6->e22 /1 s7->e23 /1 * List of undetected faults: 1. e0 /0 2. id30->xc6 /0 3. id30 /0 4. s0->t3 /1 5. s1->t2 /1 6. s2->t1 /1 7. s3->t0 /1 8. id30->xa15 /0 9. e1 /0 10. e5 /0 11. e8 /0 12. e16 /0 13. s4->t7 /1 14. s5->t6 /1 15. s6->t5 /1 11

Στο συγκεκριμένο παράδειγμα έχει εφαρμοστεί fault dropping. Σε περίπτωση που κάποιος ήθελε κάθε διάνυσμα δοκιμής να εξομοιώσει όλα τα σφάλματα, έπρεπε να ορίσει τη συγκεκριμένη επιλογή (-N). > hope D c499o.bench l c499o.log_faults Είναι ίδιο παράδειγμα με το προηγούμενο, μόνο που σε αυτή τη περίπτωση ορίζει ο χρήστης σε ποιο αρχείο θα γραφτούν τα επιστρεφόμενα δεδομένα (-l fn). 12

> hope D c432o.bench -u Εκτυπώνει όλα τα μη ανιχνεύσιμα σφάλματα σε ένα αρχείο με κατάληξη.ufaults. 13

Περιεχόμενα αρχείου c432o.ufaults : 119gat->157gat /0 119gat /0 203gat->227gat /1 131gat->187gat /0 131gat /0 203gat->239gat /1 143gat->193gat /0 203gat->243gat /1 143gat /0 99gat->195gat /0 99gat /0 203gat->251gat /1 151gat->198gat /0 147gat->196gat /0 282gat->341gat /0 143gat->194gat /0 139gat->192gat /0 135gat->190gat /0 131gat->188gat /0 127gat->186gat /0 123gat->184gat /0 119gat->158gat /0 341gat /1 309gat->341gat /1 309gat->333gat /1 230gat->289gat /1 416gat /0 379gat /1 347gat /1 259gat /1 108gat->414gat /1 213gat->259gat /1 213gat->256gat /1 213gat->257gat /1 346gat /1 319gat->346gat /1 386gat->425gat /1 393gat->429gat /1 > hope s 137900 r 15000 s298.bench Εξομοιώνει το κύκλωμα s298.bench χρησιμοποιώντας 15000 τυχαία διανύσματα δοκιμής. Η γεννήτρια τυχαίων αριθμών αρχικοποιείται με τη τιμή 137900. Η διαδικασία εξομοίωσης σφαλμάτων τερματίζει όταν εξομοιωθούν 15000 τυχαία διανύσματα ελέγχου ή όταν ανιχνευτούν όλα τα σφάλματα. Στη 14

περίπτωση που η εντολή ακολουθείται από την επιλογή >s298.out, η περίληψη της εξομοίωσης αποθηκεύεται στο συγκεκριμένο αρχείο, διαφορετικά εκτυπώνεται μόνο στην οθόνη. 15