STRUCTURAL DESCRIPTION
2. ΣΥΝΔΕΣΗ BLOCK
Έχοντας ορίσει τα βασικά μπλοκ της σχεδίασής μας χρησιμοποιώντας οντότητες (entities) και τις σχετιζόμενες architectures, μπορούμε να τα συνδυάσουμε μαζί έτσι ώστε να σχηματίσουμε άλλες σχεδιάσεις. Εδώ θα δούμε πως να συνδυάζουμε αυτά τα μπλοκ μαζί σε μία structural description (δομική περιγραφή).
Ας καθορίσουμε την λειτουργία της οντότητας latch συνδέοντας άλλες οντότητες οι οποίες καθορίστηκαν νωρίτερα.
Η δήλωση της οντότητας για το latch ήταν:
entity latch is
port (s,r : in bit ;
q,nq : out bit);
end latch;
Θα ορίσουμε μία architecture διαφορετική από αυτή της προηγούμενης παραγράφου , η οποία επιδεικνύει την δομική προσέγγιση (structual approach).
Υποθέτουμε ότι μία οντότητα με το όνομα nor_gate έχει ορισθεί και η οποία θα χρησιμοποιηθεί στην σχεδίαση. Το σχηματικό του latch είναι :
Μπορούμε να ορίσουμε τις ίδιες συνδέσεις που υπάρχουν στο σχήμα χρησιμοποιώντας VHDL με την παρακάτω architecture declaration:
architecture structure of latch is
component nor_gate
port (a,b : in bit ;
c : out bit);
end component;
begin
n1: nor_gate
port map (r , nq , q) ;
n2: nor_gate
port map (s , q , nq) ;
end structure;
Οι γραμμές ανάμεσα από την πρώτη γραμμή και την λέξη begin είναι μία δήλωση εξαρτήματος (component declaration) και περιγράφει το interface της οντότητας nor_gate την οποία εμείς θα θέλαμε να χρησιμοποιήσουμε σαν εξάρτημα στην σχεδίασή μας. Ανάμεσα από τις λέξεις begin και end οι δύο πρώτες γραμμές και οι δύο επόμενες ορίζουν δύο αναφορές εξαρτημάτων (component instances).
Υπάρχει μία σημαντική διάκριση ανάμεσα σε μία οντότητα (entity), εξάρτημα (component) και σε ένα component instance στην VHDL.
Η οντότητα περιγράφει ένα interface σχεδίασης, το εξάρτημα περιγράφει το interface μιας οντότητας που θα χρησιμοποιηθεί σαν αναφορά (instance) και το component instance είναι ένα διακριτό αντίγραφο του εξαρτήματος που έχει συνδεθεί με άλλα τμήματα και σήματα. Η οντότητα και η architecture είναι σαν ένα data book που περιγράφουν το interface και το σχηματικό του πως δουλεύει το κομμάτι (part).Το εξάρτημα (component) είναι σαν μία μικρή λίστα των pin που είναι στο τμήμα (part) και περιγράφει πως πρέπει αυτό να συνδεθεί. Το component instance είναι ένα ενεργό part από μόνο του , μέσα στο οποίο μπορούμε να έχουμε και άλλα τα οποία να ενεργούν ανεξάρτητα.
Στο παράδειγμα το εξάρτημα nor_gate έχει δύο εισόδους (a και b) και μία έξοδο (c).Υπάρχουν δύο αναφορές του εξαρτήματος nor_gate σε αυτήν την architecture που αντιστοιχούν στα δύο σύμβολα nor του σχήματος. Η πρώτη αναφορά αντιπροσωπεύει την πάνω πύλη nor του σχήματος. Η πρώτη γραμμή της πρότασης αναφοράς του εξαρτήματος (component instatiation statement) δίνει σε αυτήν την αναφορά ένα όνομα , n1 , και ορίζει ότι είναι μία αναφορά του εξαρτήματος nor_gate.Η δεύτερη γραμμή περιγράφει πως το εξάρτημα συνδέεται στο reset της σχεδίασης χρησιμοποιώντας το port map clause.Το port map clause περιγράφει τι σήματα της σχεδίασης θα συνδεθούν στο interface του εξαρτήματος με την ίδια σειρά που αυτά είναι καταγεγραμμένα στο component declaration.Το interface έχει οριστεί στην σειρά ως a,b και μετά c, και έτσι η αναφορά (instance) συνδέει το r στο a , το nq στο b και το q στο c.Αυτό ανταποκρίνεται στο πως η πάνω πύλη nor του σχήματος είναι συνδεδεμένη. Η δεύτερη αναφορά ονομάζεται n2, συνδέει το s στο a, το q στο b και το nq στο c.
Η δομική περιγραφή (structual description) μιας σχεδίασης είναι απλά μία περιγραφή ενός σχήματος με κείμενο.