Συστήματα σε Ολοκληρωμένα Κυκλώματα Κεφάλαιο 5: Απόδοση και Ευελιξία του Σχεδιασμού Multiple-Processor SoC Διδάσκων: Καθηγητής Οδυσσέας Κουφοπαύλου Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών
ΕΙΣΑΓΩΓΗ Η ταχεία εξέλιξη της τεχνολογίας του πυριτίου φέρνει μια νέα κρίση στον σχεδιασμό VLSI αρχιτεκτονικών. Δημιουργούνται ανάγκες για αυξημένη ευχρηστία, αξιοπιστία, bandwidth και μειωμένο κόστος και κατανάλωση ισχύος. Όλες αυτές οι ανάγκες μπορούν να επιτευχθούν με register-transfer-level (RTL) τεχνικές hardware σχεδιασμού
ΕΙΣΑΓΩΓΗ Ένας τρόπος για επιτάχυνση της ανάπτυξης πολύ μεγάλων VLSI αρχιτεκτονικών είναι η χρήση πολλαπλών μικροεπεξεργαστικών πυρήνων για να κάνουν την επεξεργασία που αποδίδεται στο RTL. Ο εκτεινόμενος επεξεργαστης (extensible processor) μπορεί να αρχικοποιηθεί για να αυξήσει το απαιτούμενο bandwidth ακόμα και για πολύπλοκες εφαρμογές. Αυτοί οι οι επεξεργαστές χρησιμοποιούν firmware για τον αλγόριθμο ελέγχου τους και όχι RTL-defined hardware.
ΕΙΣΑΓΩΓΗ Η πολυπλοκότητα σχεδιασμού ενός τυπικού λογικού μπλοκ αυξάνεται με μεγαλύτερο ρυθμό από οτι ο αριθμός πυλών και η πολυπλοκότητα του συστήματος πιο γρήγορα από τον αριθμό των δομικών μπλοκ. Ομοίως, η πολυπλοκότητα επιβεβαίωσης αυξάνει δυσανάλογα. Το κόστος ενός σφάλματος σχεδιασμού αυξάνει. Όλα τα ενσωματωμένα συστήματα πλέον περιέχουν σημαντικές ποσότητες Software. Απαραίτητη είναι η επιβεβαίωση hardware/software.
ΕΙΣΑΓΩΓΗ Τα πρωτόκολλα επικοινωνιών αυξάνουν σημαντικά σε πολυπλοκότητα και απαιτούν πολύ μεγαλύτερη υπολογιστική ισχύ και throughput από τους προκάτοχούς τους. Στις περισσότερες αγορές ο ανταγωνισμός οδηγεί σε μια συνεχώς αυξανόμενη ανάγκη για καινούργιες τεχνολογίες. Ο νόμος του Moore οτι η πυκνότητα του πυριτίου θα διπλασιάζεται κάθε 18 μήνες οδηγεί τους κατασκευαστές chip σε εξαντλητικούς ρυθμούς λόγω των αναγκών για μεγαλύτερη ευχρηστία, διάρκεια ζωής μπαταρίας, throughput και κόστους του τελικού προϊόντος
ΕΙΣΑΓΩΓΗ Τα τελευταία 5 χρόνια οι σχεδιαστές έχουν δει την χωρητικότητα του πυριτίου να αυξάνεται με ένα ρυθμό περίπου 10. Προβλέπεται μικρή μείωση του ρυθμού αύξησης της πυκνότητας αλλά η εκθετική αύξηση της χωρητικότητας αναμένεται να συνεχιστεί για τα επόμενα 10 χρόνια
ΕΙΣΑΓΩΓΗ Η ανταγωνιστική πίεση, μας έχει οδηγήσει σε τεράστιες VLSI αρχιτεκτονικές που χαρακτηρίζονται από δεκάδες συνεργαζόμενες συναρτήσεις. Η τάση για χρήση μεγάλου αριθμού RTL-based λογικών μπλοκ και η μίξη τους με επεξεργαστές ελέγχου και DSPs στο ίδιο chip φαίνεται στο σχήμα
ΕΙΣΑΓΩΓΗ Η συνεχόμενη ανάπτυξη στη πολυπλοκότητα ενός ολοκληρωμένου είναι ένα κεντρικό δίλημμα για τον σχεδιασμό VLSI αρχιτεκτονικών. Χρησιμοποιώντας προσχεδιασμένους και προεπιβεβαιωμένους επεξεργαστικούς πυρήνες για τα ξεχωριστά λειτουργικά μπλοκ σε μια VLSI αρχιτεκτονική, ο σχεδιαστικός φόρτος μεταφέρεται στο software. Έτσι σχεδιαστικά bugs λύνονται πιο εύκολα, μπορούν να γίνουν πιο εύκολα αλλαγές να προστεθούν επιπλέον χαρακτηριστικά. Δυστυχώς οι επεξεργαστές γενικού σκοπού δεν έχουν καλή απόδοση ενέργειας, throughput και κόστους για δύσκολα υπολογιστικά προβλήματα.
ΕΙΣΑΓΩΓΗ Ο σχεδιασμός κατά παραγγελία RTL λογικών για πολύπλοκες εφαρμογές παίρνει πολύ χρόνο και παράγει σχέδια που είναι πολύ άκαμπτα για να μεταβληθούν Στο σχήμα φαίνεται αυτό το παράδοξο.
ΕΙΣΑΓΩΓΗ Στα περισσότερα RTL σχέδια, το datapath καταναλώνει την πλειονότητα των πυλών στο λογικό μπλοκ. Η επιλογή των στοιχείων datapath και των ενώσεων μεταξύ τους συχνά αντανακλά τους στοιχειώδεις τύπους δεδομένων με τους οποίους λειτουργεί το μπλοκ. Ενώ οι βασικές δομές δεδομένων αντανακλούν τη φύση των δεδομένων και όχι τις εκλεπτυσμένες πληροφορίες ενός συγκεκριμένου αλγόριθμου που χρησιμοποιεί τα δεδομένα, το FSM του RTL μπλοκ έχει μόνο λεπτομέρειες ελέγχου. Παρόλο που αυτή η μηχανή πεπερασμένης κατάστασης (FSM) καταναλώνει λίγες πύλες του μπλοκ, εμπεριέχει μεγάλη πολυπλοκότητα και αποτελεί τον κύριο κίνδυνο για λάθη σχεδιασμού και επιβεβαίωσης.
ΕΙΣΑΓΩΓΗ Παράδειγμα: Μια μηχανή καταστάσεων με Ν καταστάσεις και Ι εισόδους μπορεί να έχει Ν 2 εξισώσεις επόμενης κατάστασης και κάθε εξίσωση θα έχει κάποιες συναρτήσεις με τις Ι εισόδους ή 2 Ι πιθανους συνδυασμους εισόδων. Έτσι Ν 2 *2 Ι συνδυασμοι εισόδων πρεπει να δοκιμαστουν για να ελεγθει η μηχανη καταστάσεων Αυτό θα πάρει πολλούς κύκλους ρολογιού για να γίνει. Για μια μηχανή 40 καταστάσεων και 20 εισόδους θα χρειαστουν 10 δισεκατομμυρια κύκλοι ρολογιου για εξονυχιστικό έλεγχο, κατι που σημαινει πολλους μήνες εξομοιώσεων.
ΟΙ ΠΕΡΙΟΡΙΣΜΟΙ ΤΟΥ ΠΑΡΑΔΟΣΙΑΚΟΥ ASIC ΣΧΕΔΙΑΣΜΟΥ Ο λογικός σχεδιασμός και η επιβεβαίωση καταναλώνουν μεγάλο κομμάτι του VLSI σχεδιασμού SoC Η τάση της αγοράς για όλο και μεγαλύτερη απόδοση και χαμηλότερη κατανάλωση αυξάνει τον αριθμό των SoC συστημάτων Tο χαμηλό επίπεδο της έκφρασης σχεδιασμού (hardware data-path δομές και FSMs) και η δυσκολία επιβεβαίωσης περιορίζουν την ικανότητα αυξομείωσης (scalability) του RTL σχεδιασμού he low level of design expression)
ΟΙ ΠΕΡΙΟΡΙΣΜΟΙ ΤΟΥ ΠΑΡΑΔΟΣΙΑΚΟΥ ASIC ΣΧΕΔΙΑΣΜΟΥ O κλασσικός σχεδιασμός SoC ακολουθεί πιστά την παράδοση του προκατόχου του (επιπέδου πλακέτας σχέδια): Συνδυάζει ένα τυπικό μικροεπεξεργαστή, μια μνήμη και RTL λογική σε ένα επεξεργαστή με set εντολών σχεδιασμένο για συγκεκριμένη εφαρμογή (ASIC). Συχνά, οι επεξεργαστές που χρησιμοποιούνται σε τέτοιου είδους επιπέδου πλακέτας σχέδια είναι RISC επεξεργαστές σχεδιασμένοι το 1980. Όταν όλα τα κομμάτια του συστήματος συνδυάζονται σε ένα κομμάτι πυριτίου, η συχνότητα αυξάνει και η κατανάλωση ισχύος πέφτει ανάλογα με το ισοδύναμο επιπέδου πλακέτας σχέδιο. Παρόλα αυτά κληρονομούν και τα προβλήματα του ισοδύναμού τους.
ΟΙ ΠΕΡΙΟΡΙΣΜΟΙ ΤΟΥ ΠΑΡΑΔΟΣΙΑΚΟΥ ASIC ΣΧΕΔΙΑΣΜΟΥ Συστήματα αρχιτεκτονικά αντίγραφα συχνά κρατούν τον άκαμπτο διαχωρισμό μεταξύ ενός επεξεργαστή που επιτελεί έργο επιτήρησης και μιας ομάδας από λογικά μπλοκ που το καθένα επιτελεί μια συγκεκριμένη δουλειά. Σε αρχιτεκτονικές που προκύπτουν από επιπέδου πλακέτας σχέδια, τυπικά οι επικοινωνίες μεταξύ των διαφόρων λογικών μπλοκ και μεταξύ των λογικών μπλοκ και του επεξεργαστή υποφέρουν από το μεγάλο latency, την χαμηλή συχνότητα ρολογιού και το στενό data-path πλάτος της επιπέδου πλακέτας chip-to-chip σύνδεσης.
ΟΙ ΠΕΡΙΟΡΙΣΜΟΙ ΤΩΝ ΕΠΕΞΕΡΓΑΣΤΩΝ ΓΕΝΙΚΟΥ ΣΚΟΠΟΥ Η παραδοσιακή προσέγγιση στο σχεδιασμό SoC περιορίζεται επιπλέον από τις απαρχές και την εξέλιξη των μικροεπεξεργαστών, που είναι κατά κανόνα απόγονοι παλιών αρχιτεκτονικών του 1980 και υποστηρίζουν μόνο γενικούς τύπους δεδομένων (integers) και λειτουργίες Επειδή είναι γενικού σκοπού, οι επεξεργαστές αυτοί έχουν εφαρμογή σε μεγάλο εύρος υπολογιστικών εφαρμογών. Παρόλα αυτά πάσχουν από ένα κοινότυπο πρόβλημα : Η ανάγκη για απόλυτη γενικότητα υπαγορεύει την ικανότητα να εκτελούν μια αυθαίρετη σειρά από πρωτόγονες εντολές σε αγνώστου εύρους τύπου δεδομένων. Έτσι ακόμα και ο πιο προηγμένος τέτοιος επεξεργαστής αδυνατεί να διατηρήσει παραπάνω από δύο εντολές ανά κύκλο.
ΟΙ ΠΕΡΙΟΡΙΣΜΟΙ ΤΩΝ ΕΠΕΞΕΡΓΑΣΤΩΝ ΓΕΝΙΚΟΥ ΣΚΟΠΟΥ Σε σύγκριση με του γενικού σκοπού υπολογιστικά συστήματα, τα ενσωματωμένα συστήματα είναι πολύ διαφορετικά μεταξύ τους σαν σύνολο αλλά πιο εξειδικευμένα το καθένα από μόνο του. Σε εντατικού ρυθμού ενσωματωμένες εφαρμογές οι γενικού σκοπού επεξεργαστές παρουσιάζουν: Λόγω της μικρής ταύτισης των κρίσιμων λειτουργιών σε πολλές ενσωματωμένες εφαρμογές με τον επεξεργαστή χρειάζονται περισσότεροι κύκλοι ρολογιού όταν αυτές οι λειτουργίες τρέχουν σε γενικού σκοπού επεξεργαστές. Οι πιο εστιασμένες ενσωματωμένες συσκευές δεν χρειάζεται να εκμεταλλευτούν ένα μεγάλο κομμάτι του γενικού σκοπού επεξεργαστή που είναι άχρηστο
Ο DSP ΣΑΝ ΕΠΕΞΕΡΓΑΣΤΗΣ ΣΥΓΚΕΚΡΙΜΕΝΟΥ ΣΚΟΠΟΥ Οι Digital signal processors (DSPs) αποτελούν μια σημαντική κατηγορία των επεξεργαστών συγκεκριμένου σκοπού. Έχουν set εντολών και συστήματα μνήμης οργανωμένα σε μεγάλους αριθμούς για πράξεις πολλαπλασιασμού-πρόσθεσης σε όμοια μπλοκ από δειγματολειπτούμενα δεδομένα. Οι DSPs συχνά είναι σε σειρά με ελεγκτές RISC στα SoCs, ειδικά όταν στην τελική εφαρμογή υπάρχει μίξη ελέγχου και επεξεργασίας σημάτων.
ΟΙ EXTENSIBLE PROCESSORS (ΕΚΤΕΙΝΩΜΕΝΟΙ ΕΠΕΞΕΡΓΑΣΤΕΣ) ΣΑΝ ΕΝΑΛΛΑΚΤΙΚΗ ΤΟΥ RTL ΣΧΕΔΙΑΣΜΟΥ Ο σχεδιασμός RTL έχει πολλά ενδιαφέροντα χαρακτηριστικά όπως μικρή έκταση του ολοκληρωμένου, χαμηλή κατανάλωση ενέργειας και υψηλό throughput. Παρόλα αυτά, τα μειονεκτήματα του RTL σχεδιασμού δύσκολος σχεδιασμός, αργή επιβεβαίωση και φτωχό scalability για δύσκολα προβλήματα αρχίζουν να υπερκεράζουν τα θετικά του σημεία. Μια μεθοδολογία σχεδιασμού που θα κρατά μόνο τα θετικά του RTL σχεδίου αλλά με μειωμένο χρόνο και ρίσκο σχεδιασμού αποτελεί ανάγκη, που μπορεί να καλυφθεί από επεξεργαστές συγκεκριμένου σκοπού.
Configurable, Extensible Processors Σε αντίθεση με τον RTL σχεδιασμό οι μηχανές καταστάσεων της extensible processor τεχνολογίας δεν είναι βασισμένες σε hardware, αλλά σε firmware. Τα εργαλεία για τον σχεδιασμό extensible processors κάνουν αυτόματη παραγωγή hardware σχεδίου νέου επεξεργαστή συγκεκριμένου σκοπού και software εργαλείων από μια υψηλού επιπέδου περιγραφή. Τα software εργαλεία είναι φτιαγμένα για ακριβώς την ίδια αρχιτεκτονική από τον παραγωγού επεξεργαστή με την ίδια περιγραφή του επεξεργαστή Με αυτή τη μέθοδο επεκτείνεται ο αριθμός των ανθρώπων που μπορούν να σχεδιάσουν επεξεργαστές. Πλέον οι σχεδιαστές συστημάτων μπορούν να υλοποιήσουν προγραμματιζόμενους extensible επεξεργαστές χρησιμοποιώντας διάφορες hardware μορφές forms
Configurable, Extensible Processors Με αυτή την προσέγγιση ο σχεδιαστής συστήματος δεν έχει πρόβλημα στο να φτιάξει μαζί hardware, verification, and software εργαλεία. Με κώδικα υψηλού επιπέδου μπορεί να ελέγχει όλες τις παραμέτρους ενός συστήματος χωρίς να είναι σχεδιαστής μικροεπεξεργαστή. Με αυτή τη μέθοδο επεκτείνεται ο αριθμός των ανθρώπων που μπορούν να σχεδιάσουν επεξεργαστές. Πλέον οι σχεδιαστές συστημάτων μπορούν να υλοποιήσουν προγραμματιζόμενους extensible επεξεργαστές χρησιμοποιώντας διάφορες hardware μορφές (ASICs, FPGAs)
Configurable, Extensible Processors Η χρήση προγραμματιζόμενων και εκτεινομενων επεξεργαστών σε SoCs καθορίζεται από: 1. Τι χαρακτηριστικά του επεξεργαστή μπορούν να προγραμματιστούν και να επεκταθούν; 2. Πως ο σχεδιαστής συστήματος μπορεί να αποδώσει αυτά τα χαρακτηριστικά; 3. Ποια τα παραδιδόμενα (hardware και software κομμάτια) του σχεδιαστή συστήματος; 4. Ποια είναι τα τυπικά αποτελέσματα για την κατασκευή καινούργιων πλατφόρμων που θα απευθύνονται σε ανερχόμενες τηλεπικοινωνιακές και καταναλωτικές εφαρμογες;
Configurable, Extensible Processors Για να είναι χρήσιμο το αποτέλεσμα σχεδιασμού extensible επεξεργαστή η αρχικοποίηση του επεξεργαστή πρέπει να πληροί τα εξής κριτήρια: 1. Ο μηχανισμός αρχικοποίησης πρέπει να επιταχύνει και να απλοποιεί την κατασκευή χρήσιμων αποτελεσμάτων 2. Ο παραγόμενος επεξεργαστής πρέπει να έχει πλήρη hardware περιγραφή (με επιτυχή σύνθεση RTL περιγραφής σε Verilog ή VHDL), software εργαλεία ανάπτυξης (compilers, debuggers, assemblers, και realtime operating systems), και βοήθεια επιβεβαίωσης (μοντέλα εξομοίωσης, διαγνωστική και πειραματική υποστήριξη).
Configurable, Extensible Processors Ένας επεξεργαστής που η λειτουργία του - το σύνολο εντολών του-, μπορεί επεκταθεί από σχεδιαστή εφαρμογής ώστε να περιλαμβάνει χαρακτηριστικά που δεν υπήρχαν στον αρχικό σχεδιασμό του λέγεται εκτεινόμενος extensible. Το κλειδί για extensibility είναι η ικανότητα για επέκταση του set εντολών, ορισμών και registers καθως και των pipeline εκτέλεσης.
Configurable, Extensible Processors Τα προγραμματιζόμενα προϊόντα μπορούν να κατηγοριοποιηθούν σε πέντε ομάδες: 1. Μη- αρχιτεκτονική επεξεργαστική διάταξη 2. Σταθερό menu από διατάξεις αρχιτεκτονικών επεξεργαστών 3. Μεταβαλλόμενο από τον χρήστη RTL επεξεργαστής 4. Επέκταση επεξεργαστή χρησιμοποιώντας γλώσσα περιγραφής set εντολών 5. Πλήρως αυτοματοποιημένη σύνθεση επεξεργαστή.
Configurable, Extensible Processors Ένας προγραμματιζόμενος επεξεργαστής μπορεί να υλοποιήσει data-path λειτουργίες που προσεγγίζουν πολύ τις RTL λειτουργίες Οι εντολές του νέου επεξεργαστή και οι registers περιγράφονται με την γλώσσα περιγραφής TIE και είναι διαθέσιμα από τον προγραμματιστή firmware μέσο του ίδιου μεταγλωττιστή και συμβολομεταφραστή που διαχειρίζεται τις βασικές εντολές του επεξεργαστή και την ομάδα των Registers
Configurable, Extensible Processors Η μετάβαση από hardwired μηχανές καταστάσεων σε firmware προγραμματισμό έχει σημαντικές συνέπειες: 1. Ευελιξία 2. Software βασισμένη ανάπτυξη 3. Γρηγορότερη και πληρέστερη μοντελοποίηση του συστήματος 4. Ενοποίηση του Ελέγχου και των Δεδομένων 5. Βελτιστοποίηση του παράγοντα Χρόνος προς Αγορα.
Configurable, Extensible Processors Επιπλέον επιτυγχάνεται ανάπτυξη της παραγωγικότητας της ομάδας μηχανικών μειώνοντας το χρόνο που χρειάζεται για RTL ανάπτυξη και Επιβεβαίωση. Η προσέγγιση αυτή επιταχύνει την ανάπτυξη firmware και μειώνει την αβεβαιότητα που περιβάλει την hardware software ολοκλήρωση
Configurable, Extensible Processors Παρόλα τα πλεονεκτήματά τους, οι επεξεργαστές συγκεκριμένου σκοπού δεν είναι πάντα η σωστή λύση για δύο λόγους: 1. Μικρές, σταθερές Μηχανές Καταστάσεων 2. Απλό Buffering δεδομένων
ΕΠΕΚΤΕΙΝΟΝΤΑΣ ΕΝΑΝ ΕΠΕΞΕΡΓΑΣΤΗ Γρήγορες και εύκολες διατάξεις επεξεργαστών εξαρτώνται από τα κατάλληλα μέσα που περιγράψουν και επεκτείνουν τις επεξεργαστικές λειτουργίες και κυρίως το set εντολών. H γλώσσα TIE είναι η πρώτη ευρέως γνωστή εμπορική γλώσσα περιγραφής επέκτασης set εντολων και η Xtensa generator τεχνολογία είναι η πρώτη ευρέως χρησιμοποιούμενη τεχνολογία επέκτασης επεξεργαστή
Η ΓΛΩΣΣΑ TIE Η περιγραφή της TIE χωρίζεται σε δύο κομμάτια: Δήλωση καταστάσεων Κωδικοποίηση εντολών και σχηματοποίηση της περιγραφής των εντολών
ΕΝΑ ΑΠΛΟ TIE ΠΑΡΑΔΕΙΓΜΑ Αυτό είναι ένα απλό αλλά πλήρες ΤΙΕ παράδειγμα που προσθέτει ένα νέο αρχείο από Register και μια νέα εντολή στον Xtensa επεξεργαστή: regfile LR 16 128 l operation add128 {out LR sr,in LR ss,in LR st} {assign sr = st + ss;} Αυτός ο κώδικας ορίζει το αρχείο Register, LR, με 16 θέσεις, 128 bits εύρος η κάθε μια. Ο παραγωγός επεξεργαστή δημιουργεί ένα μεταφραστή (compiler) που να υποστηρίζει αυτό τον τύπο δεδομένων, LR, και ορίζει νέες εντολές φόρτωσης και αποθήκευσης για το αρχείο από Register. Κάθε διαβαθμιζόμενη μεταβλητή δηλωμένη με αυτό το καινούργιο τύπο δεδομένων θα ανατίθεται αυτόματα στο αρχείο από Register, και κάθε πίνακας ή δείκτης που απευθύνεται σε αυτό τον τύπο δεδομένων θα χρησιμοποιεί τις νέες εντολές φόρτωσης και αποθήκευσης. Ορίζεται η πράξη, add128, που παίρνει 2 τελεσταίους από το νέο αρχείο από Register υπολογίζει το άθροισμά τους και αποθηκεύει το αποτέλεσμα πάλι στο αρχείο από Register. Ένας σχεδιαστής software μπορεί να χρησιμοποιήσει το νέο 128-bit τύπο δεδομένων και πράξη απευθείας ως εξής: main() { int i; LR src1[256],src2[256],dest[256]; for (i=0;i<256;i++} dest[i] = add128(src1[i],src2[i]); }
ΕΚΜΕΤΑΛΛΕΥΟΜΕΝΟΙ ΤΗΝ ΕΠΕΚΤΑΣΙΜΟΤΗΤΑ Οι ειδικοί εφαρμογών δημιουργούν ΤΙΕβασισμένες επεκτάσεις ξεκινώντας από τον πυρήνα της εφαρμογής Τρέχουν τον κώδικα σε εξομοιωτή του Xtensa επεξεργαστή και φτιάχνοντας ένα προφίλ της εφαρμογής βρίσκουν hot spots στον αρχικό κώδικα. Έτσι οδηγούμαστε σε κατασκευή νέων τύπων δεδομένων και πράξεων που ταιριάζουν στην ζητούμενη εφαρμογή πιο φυσικά.
ΕΚΜΕΤΑΛΛΕΥΟΜΕΝΟΙ ΤΗΝ ΕΠΕΚΤΑΣΙΜΟΤΗΤΑ Από μια διάταξη περιγραφής, ο παραγωγός Xtensa επεξεργαστή δημιουργεί: ένα γρήγορο, ακριβές εξομοιούμενο σε set εντολών μοντέλο που έχει λειτουργικό δίαυλο. C βιβλιοθήκες για την επέκταση του set εντολών, C/C++ compilers καθώς και ένα OSKit ένα hardware test-bench και πλήρες hardware διαγνωστικά σενάρια για σύνθεση, place and route, πειραματική γεννήτρια, χρονισμό, βελτιστοποίηση και εξομοίωση ενέργειας Πλήρες κώδικας Verilog ή VHDL.
ΠΡΟΣ ΠΟΛΥΕΠΕΞΕΡΓΑΣΤΙΚΑ SOCS Η συσσωρευμένη πολυπλοκότητα των SoC σχεδίων, καθώς το κόστος και ο συνολικός αριθμός πυλών αυξάνει, δημιουργεί απαίτηση για γρηγορότερα αρχικά σχέδια και μεγαλύτερη μετακατασκευαστική ευελιξία. Δύο τάσεις συνεργάζονται ώστε να αυξηθεί ο αριθμός των επεξεργαστών για τον παραπάνω στόχο σε ένα τυπικό SoC: 1. Ο συνδυασμός λειτουργιών που παραδοσιακά υλοποιούνται με διακριτούς επεξεργαστές ελέγχου και DSPs σε ένα SoC, και 2. Η μετανάστευση λειτουργιών που παραδοσιακά υλοποιούνται με RTL σε Επεξεργαστές συγκεκριμένου σκοπού.