Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Σύνθεση Κυκλωμάτων με εργαλεία CAD

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Σύνθεση Κυκλωμάτων με εργαλεία CAD"— Μεταγράφημα παρουσίασης:

1 Σύνθεση Κυκλωμάτων με εργαλεία CAD
Διονύσης Ν. Πνευματικάτος 30 Μαρτίου 2001 March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

2 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH
Στόχος της Σύνθεσης Είσοδος: Περιγραφή ενός κυκλώματος (σε σχηματικό διαγραμμα, HDL, ή άλλη μορφή) Περιγραφή των περιορισμών και των συνθηκών λειτουργίας του κυκλώματος Βιβλιοθήκη διαθέσιμων υλικών (πύλες, μνήμες…) Εξοδος: Βελτιστοποιημένη περιγραφή του κυκλώματος χρησιμοποιώντας διαθέσιμα υλικά (netlist) March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

3 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH
Παράδειγμα Είσοδος (Verilog): wire Valid = VL1 & !Illegal; wire Valid2Sched = !SchedFreeze_ & (Valid_D | Valid); wire [16:0] LinkIdOMaskL1 = 1'b1 << LinkIdL1; Εξοδος (netlist): not(n1, Illegal) and(n2, n1, VL1) ... March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

4 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH
Οργάνωση παρουσίασης Γενική περιγραφή ειδών σύνθεσης Απλοί κανόνες για «synthesizable» κώδικα Verilog Μεθοδολογία Σύνθεσης κυκλωμάτων (Synopsys) March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

5 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH
Είδη Σύνθεσης 2-επίπεδη Λογική Πολυ-επίπεδη Λογική Μηχανές Πεπερασμένων Καταστάσεων (Γενικά) Ακολουθιακά Κυκλώματα Pipeline Optimization Σύνθεση πολύ μεγάλων (ιεραρχικών) κυκλωμάτων March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

6 Σύνθεση 2-επίπεδης λογικής
Περιγραφή σε πίνακα αλήθειας, εξισώσεις, HDL «Απλή» διαδικασία: Αυτοματοποιημένη μέθοδος Καρνώ. Το πρόβλημα είναι NP-complete  Για μικρά κυκλώματα μπορούμε να βρούμε βέλτιστη λύση Μεγάλα κυκλώματα απαιτούν συμβιβασμούς Κυκλώματα με πολλές εξόδους είναι πιο δύσκολα Υπάρχουν «ώριμα» προγράμματα και αλγόριθμοι Espresso, κ.α. March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

7 Σύνθεση πολυ-επίπεδης λογικής
Μεγάλα κυκλώματα με πολλές εξόδους απαιτούν υλοποίηση με πολλά επίπεδα Γενική προσέγγιση: επαναληπτική διαδικασία Κατάτμηση του κυκλώματος (partition) 2-επίπεδη Σύνθεση/Βελτιστοποίηση των επί-μερους τμημάτων Εκτίμηση κέρδους Εισαγωγή τυχαιότητας για αποφυγή τοπικών ελάχιστων Ευριστικοί Αλγ. με καλά αποτελέσματα (χρονοβόροι) March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

8 Σύνθεση Μηχ. Πεπ. Καταστάσεων
Στόχοι: Βελτιστοποίηση αριθμού καταστάσεων Βελτιστοποίηση λογικής μετάβασης και λογικής εξόδων Χρειάζεται: Ελευθερία επιλογής κωδικοποίησης καταστάσεων (δηλαδή ο χρήστης δεν ορίζει συγκεκριμένες τιμές αλλά δίνει συμβολικά ονόματα στις καταστάσεις) Ειδική μορφή συνδιαστικής συνθεσης και βελτιστοποίησης March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

9 Ακολουθιακά Κυκλώματα
Συνδιαστική Λογική και Καταχωρητές (και ρολόι): Χωρίζουμε το συνδιαστικό κομμάτι και το βελτιστοποιούμε χωριστά Καλώδια πρός καταχωρητές αντιμετωπίζονται σαν κανονικές έξοδοι Βελτιστοποιήσεις Pipeline: Εάν ο υπολογισμός γίνεται σε πολλά στάδια, τα εργαλεία μπορούν να μετακινήσουν τους καταχωρητές pipeline ώστε να εξισορροπήσουν την λογική στα διάφορα στάδια. March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

10 Σύνθεση Ιεραρχικών Κυκλωμάτων
Χρήσιμη για πολλούς λόγους: Πολλοί σχεδιαστές, σχεδίαση σε κομμάτια Παραλληλισμός στην σύνθεση  γρήγορα αποτελέσματα Απαγορευτικά μεγάλο μέγεθος σχεδιάσεων Πως συνδέονται μεταξύ τους τα κομμάτια της ιεραρχίας; Πότε επιτυγχάνω «καλό» αποτέλεσμα; Ακόμα λιγότερο καλά ορισμένη από τις άλλες συνθέσεις March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

11 Κανόνες για Synthesizable Verilog #1
Χρησιμοποίηση απλών εκφράσεων και τελεστών: and, or, xor, +, -, wire, integer, κ.α. Structural Verilog: Χρήση διασυνδεμένων modules Κάθε modules υλοποιήσιμο με κύκλωμα (ή βιβλιοθήκη) Αποφυγή δομών υψηλού επιπέδου: fork, join, task τα οποία ΔΕΝ είναι synthesizable functions και for loops ενίοτε είναι synthesizable, αλλά προσεκτικά και μόνο όταν ξέρουμε τι κάνουμε March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

12 Κανόνες για Synthesizable Verilog #2
if και case statements: προσοχή συνήθως αντιστοιχούν σε πολυπλέκτες, αλλά μόνο αν όλες οι περιπτώσεις είναι ορισμένες Αποφυγή: Εκτεταμένη χρήση reg: συνήθως μόνο για ορισμό καταχωρητών. Sensitivity list για υλοποίηση συνδιαστικής λογικής March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

13 Κανόνες για Synthesizable Verilog #3 FSMs
parameter IDLE=0, SET_HOURS=1, SET_MINUTES=2; reg [1:0] CURRENT_STATE, NEXT_STATE; // State reg HOURS, MINS; // Outputs (CURRENT_STATE or ALARM_BUTTON or HOURS_BUTTON or MINUTES_BUTTON) // ADD Clock for synchronous FSM begin HOURS = 0; MINS = 0; NEXT_STATE = CURRENT_STATE; case (CURRENT_STATE) //synopsys full_case parallel_case IDLE: begin if (ALARM_BUTTON & HOURS_BUTTON & !MINUTES_BUTTON) NEXT_STATE = SET_HOURS; HOURS = 1; end else if (ALARM_BUTTON & !HOURS_BUTTON & MINUTES_BUTTON) ... March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

14 Παράδειγμα Προβλημάτων Σύνθεσης #1
Πολυπλέκτης: begin if (cond) dataout <= datain; else dataout <= datain2; end Latch: March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

15 Παράδειγμα Προβλημάτων Σύνθεσης #2
Ασυμφωνία προσομοίωσης και κυκλώματος: or clr) begin if (clr) q = 1;b0; else if (e) // e NOT in sensitivity list q = d; end Στην προσομοίωση, αλλαγή του e δεν προκαλεί επαναυπολογισμό των εκφράσεων και του q δίνοντας διοαφορετικά αποτελέσματα από το πραγματικό κύκλωμα March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

16 Παράδειγμα Προβλημάτων Σύνθεσης #3
Χρησιμοποίηση κοινών πόρων: Περίπτωση Α: z = (cond) ? (a+b) : (c+d) ; Περίπτωση Β: if (cond) z = a+b; else z = c+d; Στην περίπτωση Α παράγονται 2 αθροιστές (πολυπλέκτης στις εξόδους) ενώ στην περίπτωση Β μόνο ένας (πολυπλέκτης στις εισόδους) March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

17 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH
Μεθοδολογία Σύνθεσης Επιλογή βιβλιοθήκης Είσοδος κυκλώματος (Verilog, netlist, κ.α.) Επιλογή παραμέτρων σχεδίασης: Ορισμός καθυστερήσεων εισόδων/εξόδων Ορισμός οδηγητικής ικανότητας εισόδων (drive strength) Oρισμός φορτίων εξόδων Χαρακτηρισμός sub-designs Επιλογή συνθηκών λειτουργίας (wc, nom, best) Επιλογή wire load model (συνήθως συνάρτηση μεγέθους) Περιορισμοί σχεδίασης: Εκταση, ταχύτητα, (κατανάλωση) Κάλυψη ελέγχων (test coverage) March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

18 Μεθοδολογία Σύνθεσης #2
Εκτέλεση βελτιστοποιήσεων Ελεγχος αποτελεσμάτων για παραβιάσεις Αλλαγή περιορισμών και περαιτέρω «οδηγίες» στο πρόγραμμα (που να εστιάσει τις προσπάθειές του) Πιθανή αλλαγή σχεδιαστικών απαιτήσεων Πίσω στήν εκτέλεση βελτιστοποιήσεων Τελικές αναφορές για το κύκλωμα: συνολικές καθυστερήσεις από εισόδους σε εξόδους, αριθμός πυλών, συνολική έκταση, εκτιμηση κατανάλωσης, κ.α. March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

19 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH
Είδη Παραβιάσεων Παραμέτρων Βιβλιοθήκης: μέγιστος χρόνος αλλαγής σημάτων μέγιστο φορτίο εξόδου hold time καταχωρητών Παραμέτρων Χρήστη: μέγιστος χρόνος εξοδου σήματος συχνότητα ρολογιού hold time εξόδων μέγιστος χώρος αποτελέσματος μέγιστη κατανάλωση αποτελέσματος March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

20 Παράδειγμα εντολών σύνθεσης
read_verilog test.v create_clock -period 10 -waveform {0 5} -name Clk Clk set_drive drive_of (CORELIB/IV/Z) all_inputs() set_drive 0 Clk set_max_delay 7 -to all_outputs() + all_registers(-data_pins) compile -map_effort high write -format db -name test.db report_timing set_max_delay 5 -to out3 compile -incremental -map_effort high March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

21 Παράδειγμα Αναφοράς Χρονισμού
Point Incr Path input external delay r c (in) r u1/Z (IVA) f u0/Z (NR2) r u8/Z (IVA) f u7/Z (OR3) f z2 (out) f data arrival time max_delay output external delay data required time data arrival time slack (VIOLATED) March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

22 Παράδειγμα Σύνθεσης FSM
read_verilog fsm.v set_driving_cell -cell FD1 all_inputs() set_drive 0 clk_tx ungroup -all -flatten extract reduce_fsm set_fsm_encoding_style one_hot set_fsm_minimize true compile -map_effort medium -exact_map write -format st -output design_name + ".st" report_fsm write_design March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

23 Αντιμετώπιση Χρονικών Περιορισμών
Clock Skew: Συνυπολογισμός αβεβαιότητας ρολογιού στους υπολογισμούς καθυστερήσεων και αναμενόμενων χρόνων άφιξης σημάτων Hold: Ικανοποίηση απαιτήσεων hold (είσοδοι σε flip-flops, έξοδοι) με χρήση καθυστερήσεων (buffers) όπου αυτές δεν ικανοποιούνται από το κύκλωμα Αντικρουόμενη απάιτηση όταν έχουμε και περιορισμό στον μέγιστο χρόνο άφιξης του σήματος March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

24 Ιεραρχική Σύνθεση Κυκλωμάτων
Από τους συνολικούς χρονικούς περιορισμούς πως θα κατανείμω τον χρόνο στα επι-μέρους κομμάτια; Κυκλώματα με πολλαπλές εμφανίσεις (instances): πιθανά διαφορετικές απαιτήσεις από την κάθε μία (Α) Σύνθεση ξεχωριστά για κάθε εμφάνιση (Β) Σύνθεση μια φορά, αντίγραφα του ενός αποτελέσματος στις υπόλοιπες εμφανίσεις. March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

25 Παράδειγμα Ιεραρχικής Σχεδίασης
100 nsec maximum Α Β Το κύκλωμα Α είναι πιο απλό από το Β Α: 30 nsec, B: 70 nsec; Πόσο φορτίο «βλέπει» το Α; March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

26 Θέματα Ιεραρχικής Σύνθεσης
Boundary Optimizations: Uniquify: δημιουργεί καινούργιο κύκλωμα για κάθε εμφάνιση μιάς σχεδίασης (module instance) Group/Ungroup: δημιουργεί/αφαιρεί επίπεδα ιεραρχίας (για έλεγχο χρόνου σύνθεσης και ποιότητας αποτελεσμάτων) March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

27 Παράδειγμα Ιεραρχικής Σύνθεσης
read_verilog CAM40.v create_clock -period 10 -waveform {0 5} -name Clk Clk set_clock_skew -uncertainty 2 find(clock,"Clk") set_drive drive_of (CORELIB/IV/Z) all_inputs() set_drive 0 Clk design_name = CAMpipe compile_hierarchy // script to perform simple hierarchical synthesis write_design.scr report_timing set_fix_hold Clk compile -incremental -map_effort high -boundary_optimization March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

28 Σύνθεση και Μείωση Κατανάλωσης Ισχύος
Σύνθεση και Μείωση Κατανάλωσης Ισχύος Ο χρήστης δίνει στοιχεία για ρυθμό αλλαγής κατάστασης σημάτων (π.χ. από προσομείωση) Εργαλείο υπολογίζει κατανάλωση για το συγκεκριμένο κύκλωμα Βρίσκει ισοδύναμα με μικρότερη κατανάλωση: μικρότερες πύλες εκεί όπου δεν χρειάζεται ταχύτητα μεγαλύτερες πύλες/buffers εκεί όπου έχουμε αργές αλλαγές σημάτων (για CMOS κυκλώματα) clock gating κ.α. March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH

29 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH
Τελικές Παρατηρήσεις Τα εργαλεία έχουν πολλές δυνατότητες Η διαδικασία είναι άκρως επαναληπτική Απαιτεί άμεση συμβολή από τον σχεδιαστή για καλά και γρήγορα αποτελέσματα Παράδειγμα: η CAM του ATLAS-I Αρχικοί χρόνοι σύνθεσης: 2 μέρες Μετά από κατανόηση συμπεριφοράς εργαλείων ΚΑΙ δομής κυκλώματος: ~3 ώρες με καλύτερα αποτελέσματα Αμμεση σχέση με το «back-end»: τοποθέτηση πυλών στον χώρο και διασύνδεση με καλώδια March 30, 2001 Copyright (C) Dionisios N. Pnevmatikatos, ICS-FORTH


Κατέβασμα ppt "Σύνθεση Κυκλωμάτων με εργαλεία CAD"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google