STRUCTURAL DESCRIPTION
1. Κατασκευάζοντας Blocks
Για να κάνουμε μία σχεδιάση πιο κατανοητή και συντηρήσιμη, χωρίζεται σε μερικά μπλοκ. Αυτά τα μπλοκ συνδέονται μεταξύ τους για να σχηματίσουν μία ολοκληρωμένη σχεδίαση. Για να χρησιμοποιήσουμε για την σχεδίαση, την προσέγγιση σχηματικής σύλληψης (schematic capture approach), χρειαζόμαστε έναν block diagram editor.Κάθε τμήμα μίας VHDL σχεδίασης θεωρείται σαν ένα μπλοκ. Μία σχεδίαση VHDL μπορεί να περιγραφεί εντελώς με ένα μόνο μπλοκ ή με περισσότερα. Το κάθε μπλοκ καλείται οντότητα (entity) και είναι απλά μία περιγραφή (ή το interface) του συστήματος , σαν ένα μαύρο κουτί με εισόδους και εξόδους.
Στην συνέχεια παραθέτουμε ένα παράδειγμα δήλωσης μιας οντότητας.
entity latch is
port (s , r : in bit ;
q , nq : out bit);
end latch;
Η πρώτη γραμμή υποδηλώνει τον ορισμό μιάς νέας οντότητας (entity), της οποίας το όνομα είναι latch. Η τελευταία γραμμή σημειώνει το τέλος του ορισμού. Οι ενδιάμεσες γραμμές καλούνται port clause (πρόταση πόρτας) και περιγράφουν το interface της σχεδίασης. Το port clause περιέχει μία λίστα από δηλώσεις του interface (interface declarations) που ορίζουν ποιά είναι τα σήματα εισόδου και ποιά τα σήματα εξόδου στην σχεδίαση.
Κάθε interface declaration περιέχει μία λίστα από ονόματα, ένα mode και έναν τύπο (type). Στην πρώτη interface declaration του παραδείγματος ορίζονται δύο σήματα εισόδου, τα s και r. Η λίστα στα αριστερά της άνω-κάτω τελείας περιέχει τα ονόματα των σημάτων ενώ στα δεξιά το mode και τον τύπο των σημάτων. Το mode ορίζει αν το σήμα είναι είσοδος (in) , έξοδος (out) ή και τα δύο (inout). Ο τύπος ορίζει το είδος της τιμής που μπορεί να έχει το σήμα. Τα σήματα r και s έχουν mode in και είναι τύπου bit. Εν συνεχεία τα σήματα q και nq έχουν οριστεί σε mode out και είναι τύπου bit (binary).
Πρέπει να προσέξουμε την χρήση του " ; " στο port clause.Κάθε interface declaration ακολουθείται από ένα " ; " εκτός από την τελευταία και όλο το port clause έχει ένα " ; " στο τέλος.
Όλα τα σήματα του παραδείγματος έχουν οριστεί να είναι τύπου bit. Ο τύπος bit είναι προκαθορισμένος να έχει δύο τιμές που αναπαρίστανται με "0" και "1". Αυτός ο τύπος χρησιμοποιείται για λογικά σήματα δύο επιπέδων.
Το δεύτερο μέρος της περιγραφής της σχεδίασης του latch είναι το πως δουλεύει η σχεδίαση. Αυτό ορίζεται με την δήλωση αρχιτεκτονικής ( architecture declaration) .Το παρακάτω είναι ένα παράδειγμα της architecture declaration για την οντότητα latch.
architecture dataflow of latch is
begin
q<=r nor nq;
nq<=s nor q;
end structure;
Η πρώτη γραμμή της δήλωσης σημειώνει ότι είναι ορισμός μιάς καινούργιας architecture, η οποία καλείται dataflow και ανήκει στην οντότητα (entity) που καλείται latch. Οι γραμμές μεταξύ του begin και του end περιγράφουν την λειτουργία του latch.Αυτό το παράδειγμα χρησιμοποιεί την μέθοδο Data Flow με την οποία θα ασχοληθούμε παρακάτω και προς το παρόν δεν θα ασχοληθούμε με την εξήγηση των γραμμών εδώ.