PDA

Επιστροφή στο Forum : Μηχανη καταστασεων με VHDL



dj_mike
13-06-12, 23:26
Καλησπερα σας,

Σχεδιαζω ενα συστημα σε FPGA και θα χρειαστω μια μεγαλη μηχανη καταστασεων (περιπου 120 καταστασεις)

Μεχρι στιγμης ειχα να κανω με λιγες καταστασεις οποτε στισ δηλωσεις στην αρχη του κωδικα τα εγραφα χειροκινητα.
Τωρα ομως ειναι τελειως χαζο να το γραψω με το χερι ολα αυτα. Ξερω οτι υπαρχει τροπος με for loop να γινει αυτο αυτοματα. Δεν μπορω να βρω ομως την σωστη συνταξη. Μηπως μπορει κανεισ να βοηθησει??

Το ακριβες σημειο που θα ηθελα βοηθεια ειναι στις αρχικες δηλωσεις:

type states is (idle, decision, first_state, ...........?......... ,final_state);
signal present_state, next_state : states;

Γιώργος Φυσικός
13-06-12, 23:33
type fsm_state is (start, wait, read, write, stop);

θα έπρεπε να δουλεύει, ρίξε μια ματιά σε παραδείγματα;

dj_mike
14-06-12, 00:44
Το fsm_state ειναι απλα μια ονομασια, δεν αλλαξει τιποτα. θα μπορουσα καλλιστα να το ονομασω και "type michael is (start, wait, read, write, stop);" και να δουλεψει. To θεμα ειναι αν γινεται να γραψω μεια τεραστεια ακολουθια αυτοματοποιημενα καταστασεων.

πχ

type states is (idle, decision, first_state, state0, state1, state2, state3, state4, state5..............,state118, state119, state120 ,final_state);

καθε state εχει και την δικη της ξεχωριστη λειτουργια δεν μπορω να τις κανω ως μια.

Γιώργος Φυσικός
14-06-12, 00:57
ααα, αυτό που σε δυσκολεύει δεν είναι η σύνταξη της εντολής, είναι ότι θα πρέπει αν γράψεις μία σειρά καταστάσεων... κοίτα, αν κάθε κατάσταση έχει όνομα, θα πρέπει να το κάνεις με το χέρι... αν δεν έχει νόημα, καν'το έναν ακέραιο, μια μεταβλητή ακεραιο.