Γλώσσα περιγραφής υλικού: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
Διάσωση 4 πηγών και υποβολή 0 για αρχειοθέτηση.) #IABot (v2.0
Stergios.ntua (συζήτηση | συνεισφορές)
Χωρίς σύνοψη επεξεργασίας
Γραμμή 5:
Οι γλώσσες περιγραφής υλικού χρησιμοποιούνται για τη συγγραφή εκτελέσιμων προδιαγραφών για κάποιο συγκεκριμένο υλικό. Ένα πρόγραμμα προσομοίωσης, που έχει σχεδιαστεί να υλοποιεί τη σημασιολογία των εντολών της γλώσσας μαζί με την προσομοίωση του χρόνου που περνά, δίνει στον σχεδιαστή του υλικού τη δυνατότητα να μοντελοποιήσει μια συσκευή υλικού πριν αυτή κατασκευαστεί. Αυτή η δυνατότητα εκτέλεσης δίνει στις HDL την εμφάνιση γλωσσών προγραμματισμού, ενώ πιο σωστά αυτές κατατάσσονται στις γλώσσες προδιαγραφών ή στις γλώσσες μοντελοποίησης. Υπάρχουν προσομοιωτές που μπορούν να μοντελοποιήσουν συστήματα διακριτών συμβάντων (ψηφιακά) και συνεχούς χρόνου (αναλογικά), με τις κατάλληλες HDL αντίστοιχα.
 
Η σημασιολογία του υλικού μπορεί να αναπαρασταθεί και με παραδοσιακές γλώσσες προγραμματισμού όπως η [[C++]], αν και για να λειτουργήσουν αυτά τα προγράμματα πρέπει να συνδεθούν με εκτεταμένες και δύσχρηστες βιβλιοθήκες. Το βασικό πρόβλημα είναι ότι οι γλώσσες προγραμματισμού δεν περιλαμβάνουν δυνατότητες έκφρασης του χρόνου και για αυτόν τον λόγο δε μπορούν να λειτουργήσουν σαν γλώσσες περιγραφής υλικού. Πριν από την εμφάνιση της [[SystemVerilog]], η χρήση της [[C++]] σε συνδυασμό με έναν [[λογική προσομοίωση|λογικό προσομοιωτή]] ήταν ένας από τους λίγους τρόπους που μπορούσε να χρησιμοποιηθεί ο [[αντικειμενοστρεφήςαντικειμενοστραφής προγραμματισμός]] στην επαλήθευση του υλικού. Η SystemVerilog ήταν η πρώτη μεγάλη HDL που πρόσφερε αντικείμενα και [[Συλλογή απορριμμάτων (υπολογιστές)|συλλογή απορριμμάτων]].
 
Με τη χρήση του κατάλληλου υποσυνόλου μιας γλώσσας προγραμματισμού ή περιγραφής υλικού, ένα πρόγραμμα που ονομάζεται synthesizer (ή εργαλείο [[λογική σύνθεση|σύνθεσης]]) μπορεί να βρει τις λογικές λειτουργίες υλικού που προκύπτουν από τις εντολές της γλώσσας και να παράγει μια ισοδύναμη netlist από γενικές πρωτογενείς λειτουργίες υλικού που υλοποιούν τη ζητούμενη συμπεριφορά. Τα εργαλεία σύνθεσης συνήθως αγνοούν την έκφραση δομών χρονισμού στο κείμενο. Τα εργαλεία ψηφιακής λογικής σύνθεσης για παράδειγμα, γενικά χρησιμοποιούν τις ακμές του ρολογιού για τον χρονισμό του κυκλώματος, αγνοώντας οποιεσδήποτε εντολές χρονισμού. Η ύπαρξη ενός συντιθέμενου υποσυνόλου της γλώσσας δεν οδηγεί πάντα σε μια πλήρη γλώσσα περιγραφής υλικού.