Τα Ενσωματωμένα Συστήματα σε Ψηφίδα υλικού (embedded Systems on Chip - SoC) περιέχουν τουλάχιστον έναν προγραμματιζόμενο επεξεργαστή αλλά και διάφορες μονάδες (IP cores) που διασυνδέονται στους διαύλους ελέγχου και δεδομένων του ως περιφερειακά ή συνεπεξεργαστές ειδικού σκοπού. Ένας τέτοιος τύπος σύνθετης ψηφιακής αρχιτεκτονικής μπορεί να αξιοποιήσει τις δυνατότητες επαναπρογραμματισμού (reconfiguration) των μονάδων FPGA για να επιτύχει υψηλές επιδόσεις και χαμηλή κατανάλωση ενέργειας. Τις προοπτικές αυτές όμως περιορίζει η έλλειψη εργαλείων συσχεδίασης υλικού/λογισμικού για τη γρήγορη πρωτοτυποποίηση(rapidprototyping)ενσωματωμένων πολυεπεξεργαστικών SoCs.Στην παρούσα διδακτορική διατριβή παρουσιάζουμε μεθοδολογία συσχεδίασης υλικού/λογισμικού για ενσωματωμένα πολυεπεξεργαστικά SoCsπου υλοποιείται με τη χρήση της δημοφιλούς scripting γλώσσας προγραμματισμού Python. Αναδεικνύουμε εκείνα τα χαρακτηριστικά της γλώσσας Pythonπου διευκολύνουν τη σχεδίαση ενσωματωμένων SoC με προγραμματιζόμενο επεξεργαστή (processor-centric) και την υλοποίηση τους σε μονάδες FPGA. Συγκεκριμένα αναπτύξαμε μεθόδους για: (α) υποστήριξη περιγραφών στοιχείων υλικού σε Python και αυτόματη μετατροπή τους σε VHDL, (β) χρήση περιγραφών Python για την προσομοίωση ενσωματωμένου συστήματος τόσο σε αλγοριθμικό επίπεδο λειτουργικότητας όσο και σε επίπεδο αρχιτεκτονικής RTL (Register Transfer level) και αυτόματη παραγωγή αρχείων ψηφιακών κυματομορφών με τα αποτελέσματα της ακριβούς προσομοίωσης (cycle-accurate και bit-true) του συστήματος. (γ) Υποστήριξη των απαραίτητων λειτουργιών για τον προγραμματισμό του επεξεργαστή σε γλώσσα C και (δ) παραγωγή αρχείων script (Tcl)για την εύκολη συνεργασία με υπάρχοντα εργαλεία λογικής σύνθεσης για τη φυσική υλοποίηση του συστήματος σε FPGA. Για τον έλεγχο των δυνατοτήτων της μεθοδολογίαςσχεδιάσαμε και υλοποιήσαμε με τη χρήση του SysPy τρία ενσωματωμένα πολυεπεξεργαστικά SoCs, τα οποία αναδεικνύουν τις νέες δυνατότητες συσχεδίασης και προσομοίωσης. Και τα τρία αυτά SoCsχρησιμοποιούν πυρήνα μικροεπεξεργαστή ως κύριο ελεγκτή του συστήματος αλλά και ειδικές μονάδες υλικού που σχεδιάστηκαν για την: α) επεξεργασία εικόνων, β) επεξεργασία αρχείων ήχου και γ) στοχαστική προσομοίωση βιολογικών δικτύων. Η διαδικασία υλοποίησης των τριώνπολυεπεξεργαστικών SoCs έγινε στα πλαίσια της εξέλιξης και βελτιστοποίησης του ίδιου του εργαλείου, ενώ κάθε σχέδιο χρησιμοποιεί και αναδεικνύει συγκεκριμένα του χαρακτηριστικά.Πιστεύουμε ότι η μεθοδολογία σχεδίασης που αναπτύχθηκε με χρήση της Python συνεισφέρει σημαντικά προς την κατεύθυνση της συσχεδίασης υλικού/λογισμικού και πρωτοτυποποίησης για ενσωματωμένα συστήματα σε ψηφίδα υλικού, τομέα όπου σήμερα δεν υπάρχουν ώριμα διαθέσιμα εργαλεία.