BEHAVIORAL DESCRIPTIONS
4. Σήματα και Διαδικασίες (Signals and Processes)
Αυτή η ενότητα περιέχει σημαντικές πληροφορίες για την χρήση των σημάτων στις δηλώσεις διαδικασίας (process statements). Το θέμα που μας αφορά έχει να κάνει με το να αποφύγουμε την σύγχυση από την διαφορά μεταξύ του ορισμού σήματος (signal assignment) και τον ορισμό μεταβλητής (variable assignment) στον τρόπο που συμπεριφέρονται μέσα στην δήλωση διαδικασίας (process statement). Θυμηθείτε έναν ορισμό σήματος απλώς δρομολογεί ένα συμβάν το οποίο θα δράσει σε ένα σήμα και δεν έχει καμμία άμεση επίδραση. Όταν μία διαδικασία ανακτάται (resumed), εκτελείται από την αρχή ως το τέλος και κανένα γεγονός δεν επεξεργάζεται μέχρι να ολοκληρωθεί η διαδικασία. Αυτό σημαίνει ότι αν ένα γεγονός δρομολογηθεί πάνω σε ένα σήμα κατά την διάρκεια της εκτέλεσης μιας διαδικασίας, αυτό το γεγονός μπορεί να επεξεργαστεί αφού τελειώσει η διαδικασία. Ας εξετάσουμε ένα παράδειγμα αυτής της συμπεριφοράς. Στην παρακάτω διαδικασία δύο γεγονότα δρομολογούνται στα σήματα x και z.
…
signal x, y, z : bit ;
…
process (y)
begin
x <= y ;
z <= not x ;
end process ;
Αν το σήμα y αλλάξει τότε ένα γεγονός θα δρομολογηθεί στο x για να το κάνει ίδιο με το y. Επίσης, ένα άλλο γεγονός δρομολογείται στο z, για να το κάνει αντίθετο του x . Το ερώτημα είναι αν η τιμή του z θα είναι αντίθετη του y. Φυσικά η απάντηση είναι όχι, διότι όταν η δεύτερη δήλωση εκτελείται, το γεγονός πάνω στο x δεν έχει επεξεργαστεί ακόμη.
Όσον αφορά τις μεταβλητές, αυτές λειτουργούν διαφορετικά. Για παράδειγμα :
process (y)
variable x, z : bit ;
begin
x := y ;
z := not x ;
end process ;
Η τιμή της μεταβλητής z θα είναι η αντίθετη της τιμής του y διότι η τιμή της μεταβλητής x έχει αλλάξει άμεσα.