FSM - πεπερασμένο κρατικής μηχανής

E

elecs_gene

Guest
Γεια σας παιδιά,
u παρακαλώ θα μπορούσε να βοηθήσει στην ανάπτυξη της κρατικής μηχανής για την ανίχνευση πολλαπλάσια του 5 .. ότι είναι παραγωγή είναι 1 εάν οποιοδήποτε πολλαπλάσιο του 5 .. ανιχνεύεται η είσοδος έρχεται σειριακά .. μετά την κάθε είσοδο, πρέπει να το αποθηκεύσετε σε κάποιο είδος του άπειρου μητρώου και έλεγχος για πολλαπλάσιο του 5 ..

mukund

 
να σας εξηγήσω για λόγια εισόδου μορφή.είναι ακέραιος, binary, BCD, ψηφίο 2, ν ψηφίο;

 
η είσοδος είναι δυαδική .. το πραγματικό πρόβλημα είναι ότι πολλαπλάσια του 5 δεν ακολουθούν ένα σχήμα όπως --- 101 για το 5,1010 για 10,1111 για 15 κλπ. ... αυτό είναι το πρόβλημα ..

όσον αφορά

 
Νομίζω ότι θα πρέπει να χρησιμοποιείτε τη λειτουργία διάσπασης

 
γεια
u πούμε εάν u έχω να χρησιμοποιήσετε διαίρεση, πώς μπορεί να το θέσει σε εφαρμογή u χρησιμοποιώντας ένα fsm;; εξάλλου, θα πρέπει να είναι αρκετά καλό για τον εντοπισμό τυχόν πολλαπλάσιο των 5 ..

χαιρετισμοί

 
Αν συμβολή σας είναι λίγο σειριακό με MSB πρώτα, τότε μπορείτε να ελέγξετε αν η τρέχουσα σειρά λίγο έχετε λάβει διαιρείται με το 5.

Δεν ξέρω πώς μπορείτε να ελέγξετε την διαιρετότητα χρησιμοποιώντας μόνο το πρότυπο bit.Εάν προσθέσετε μια μονάδα αφαίρεση και ενός μητρώου, η κρατική μηχανή θα είναι απλή.Θα χρειαστείτε ένα ξεχωριστό όρο να αναφέρει πότε έχετε φτάσει στο τέλος του αριθμού.

 
είναι να πεθάνει πρέπει να πεθάνει μοντέλο στις ΗΠΜ;αυτό πρέπει να είναι πολύ πιο εύκολο αν το μοντέλο της συμπεριφοράς λειτουργία.μόνο συλλάβει τον αύξοντα εισόδου, το μετατρέπουν σε ακέραιο και ελέγχει για την αξία mod 5 ίση με 0 θα κάνει το έργο.

 
Νομίζω ότι η καλύτερη λύση είναι ένας ROM άπειρο ...εάν δεν μπορείτε να βρείτε περιοδικότητα του αριθμού των πολλαπλασιάζονται 5.

στη δεύτερη χρήση μιας μονάδας Divider ...αλλά αν χρειάζεστε ταχύτητα δεν είναι η καλύτερη λύση ...

 
Ναι

Νομίζω ότι ROM είναι καλύτερη λύση από ΗΠΜ ή αριθμητική μονάδα.Θα πρέπει να δοθούν οι κατάλληλες τραπέζι ROM και άμεση ανίχνευση πολλαπλάσια του πέντε.Για τα δεδομένα 8-bit είσοδος χρειάζεστε μόνο 256 bytes of memory.Συνδέστε εισόδου λεωφορείο δεδομένα για την διεύθυνση λεωφορείο ROM και χρήση λεωφορείων εξόδου ROM για την ανίχνευση.

 
Έχω ένα σύστημα στο mind.it είναι κάτι σαν αυτό.Πρέπει να έχετε το δικό σας buffer για να συγκρίνει το εισερχόμενο ρεύμα.Θεωρώ δεδομένο το ρεύμα έρχεται με LSB φθάνουν πρώτα.τώρα κατάστημα αρχικά την τιμή 5 στο ρυθμιστικό σας πω temp buffer.

αν buffer temp είναι ίση με buffer ρεύμα.
(
που χωρίζουν τις 5 παραγωγή υψηλής.
buffer temp αύξηση κατά 5.
)
else if (
ρεύμα τιμή ανάσχεσης είναι μεγαλύτερη από ό, τι buffer temp
(
buffer temp αύξηση κατά 5.
που χωρίζουν τις 5 χαμηλή απόδοση.
)
άλλος
(
ανάσχεσης temp διατηρεί την αξία του.
που χωρίζουν τις 5 χαμηλή απόδοση.
)

 
Εδώ ισχύει η λύση!
Η ιδέα εδώ είναι που πρέπει να μετατρέψετε το άπειρο δεν bin.να BCD θα πρέπει μόνο
αναζητήσετε BCD LSB εάν είναι 0 ή 5, η μη.διαιρείται με το 5!
Υπόλοιπο του κώδικα θα εξηγήσει!
Hope this helps

Παράθεση:

module div5 (

/ / Outputs

y,

/ / Inputs

CLK, reset_n, δ

)?

CLK input, reset_n?

εισροών d?

y εξόδου?reg [3:0] q_reg?

reg [3:0] q_reg_nx?εκχωρήσει y = (q_reg == 5) | | (q_reg == 0)?πάντα @ (posedge CLK ή reset_n negedge)

if (! reset_n)

q_reg <= 0?

άλλος

q_reg <= q_reg_nx?πάντα @ (δ ή q_reg) αρχίζει / / αλλαγή και την προσαρμογή δεκαδικά LSB

q_reg_nx = (q_reg [2:0], δ)?

εάν (q_reg_nx> 9 | | q_reg [3])

q_reg_nx = (q_reg [2:0], δ) 6?

τέλος

endmodule / / div5
 
Γιατί να ασχοληθείτε με τη μετατροπή σε BCD;

Εάν διαιρέστε με 5, το υπόλοιπο του 0, ο αριθμός διαιρείται με το 5.

 
HI tkbits
Ελέγξτε τον ορισμό του προβλήματος πρώτα!
Λέει ο αριθμός είναι άπειρη μητρώο στροφή στην οποία είμαστε μετατόπιση των δεδομένων σε bits!

 
Το LSD ενός αριθμού BCD είναι το υπόλοιπο του χάσματος κατά 10 λειτουργία.

Έτσι απλά διαιρέστε με 5 και ελέγχου για το υπόλοιπο του 0.

 
XOR λειτουργία από "101" ή του πολλαπλασιασμού

 

Welcome to EDABoard.com

Sponsor

Back
Top