Πίνακας περιεχομένων:

Βασικό χρονόμετρο χρησιμοποιώντας VHDL και Basys3 Board: 9 βήματα
Βασικό χρονόμετρο χρησιμοποιώντας VHDL και Basys3 Board: 9 βήματα

Βίντεο: Βασικό χρονόμετρο χρησιμοποιώντας VHDL και Basys3 Board: 9 βήματα

Βίντεο: Βασικό χρονόμετρο χρησιμοποιώντας VHDL και Basys3 Board: 9 βήματα
Βίντεο: ThermoPro TM01 Ψηφιακό χρονόμετρο κουζίνας αντίστροφης μέτρησης. Πως να το χρησιμοποιήσετε 2024, Νοέμβριος
Anonim
Image
Image

Καλώς ορίσατε στο διδακτικό πώς να φτιάξετε ένα χρονόμετρο χρησιμοποιώντας βασικό πίνακα VHDL και Basys 3. Είμαστε ενθουσιασμένοι που θα μοιραστούμε το έργο μας μαζί σας! Αυτό ήταν ένα τελευταίο έργο για το μάθημα CPE 133 (Digital Design) στο Cal Poly, SLO το Φθινόπωρο του 2016. Το έργο που δημιουργήσαμε είναι ένα απλό χρονόμετρο που ξεκινά, επαναρυθμίζει και διακόπτει τον χρόνο. Παίρνει τρία κουμπιά στον πίνακα Basys3 ως είσοδοι και ο χρόνος εμφανίζεται στην τετραψήφια επτά τμημάτων οθόνη του πίνακα. Ο χρόνος που έχει παρέλθει εμφανίζεται σε μορφή δευτερολέπτων: δευτερόλεπτα. Χρησιμοποιεί το ρολόι συστήματος του πίνακα ως είσοδο για την παρακολούθηση του χρόνου που έχει παρέλθει και εξάγει το χρόνο στα τέσσερα ψηφία της οθόνης των επτά τμημάτων.

Βήμα 1: Υλικά

Ρύθμιση εισόδων και εξόδων
Ρύθμιση εισόδων και εξόδων

Τα υλικά που θα χρειαστείτε για αυτό το έργο:

  • 1 υπολογιστής με το Vivado Design Suite WebPack εγκατεστημένο από το Xilinx (προτιμήστε την έκδοση 2016.2)
  • 1 Digilent Basys3 Xilinx Artix-7 σανίδα FPGA
  • 1 καλώδιο θύρας USB

Βήμα 2: Ρύθμιση εισόδων και εξόδων

Το παραπάνω σχήμα δείχνει ένα διάγραμμα ανωτάτου επιπέδου της κύριας μονάδας χρονόμετρου. Το χρονόμετρο λαμβάνει εισόδους "CLK" (ρολόι), "S1" (κουμπί έναρξης), "S2" (κουμπί παύσης) και "RST" (επαναφορά) και έχει έξοδο 4-bit "Anodes", 7-bit έξοδος "τμήμα", και έξοδος ενός δυαδικού ψηφίου "DP" (δεκαδικό ψηφίο). Όταν η είσοδος "S1" είναι υψηλή, το χρονόμετρο αρχίζει να μετράει το χρόνο. Όταν το "S2" είναι χαμηλό, το χρονόμετρο διακόπτει την ώρα. Όταν το "RST" είναι υψηλό, το χρονόμετρο σταματά και επαναφέρει την ώρα. Υπάρχουν τέσσερις υπομονάδες εντός του κυκλώματος: ο διαχωριστής ρολογιού, ο μετρητής ψηφίων, το πρόγραμμα οδήγησης οθόνης επτά τμημάτων και ο κωδικοποιητής οθόνης επτά τμημάτων. Η κύρια ενότητα του χρονόμετρου συνδέει όλα τα υπομονάδια μαζί και τις εισόδους και εξόδους.

Βήμα 3: Δημιουργία ρολογιών

Κάνοντας ρολόγια
Κάνοντας ρολόγια

Η μονάδα διαίρεσης ρολογιού λαμβάνει ένα ρολόι συστήματος και χρησιμοποιεί μια είσοδο διαιρέτη για να δημιουργήσει ένα ρολόι οποιασδήποτε ταχύτητας όχι μεγαλύτερη από αυτή του ρολογιού του συστήματος. Το χρονόμετρο χρησιμοποιεί δύο διαφορετικές μονάδες ρολογιού, μία που δημιουργεί ρολόι 500 Hz και άλλη που δημιουργεί ρολόι 100 Hz. Το σχήμα για το διαχωριστή ρολογιού φαίνεται στο παραπάνω σχήμα. Ο διαιρέτης ρολογιού εισάγει μία είσοδο "CLK" και μια είσοδο 32 bit "Divisor" και την έξοδο ενός bit "CLKOUT". Το "CLK" είναι το ρολόι συστήματος και το "CLKOUT" είναι το ρολόι που προκύπτει. Η ενότητα περιλαμβάνει επίσης μια πύλη NOT, η οποία αλλάζει το σήμα "CLKTOG" όταν η καταμέτρηση φτάσει στην τιμή του διαιρέτη.

Βήμα 4: Μέτρηση έως το δέκα

Μετρώντας ως το Δέκα
Μετρώντας ως το Δέκα

Ο μετρητής ψηφίων μετράει κάθε ψηφίο από το 0 έως το 10 και δημιουργεί ένα άλλο ρολόι για να λειτουργήσει το επόμενο ψηφίο, το οποίο ταλαντεύεται όταν ο αριθμός φτάσει στο 10. Η μονάδα λαμβάνει 3 εισόδους ενός bit "S", "RST" και "CLK "και έχει ως αποτέλεσμα μια έξοδο" N "και μια έξοδο 4 bit" D ". Η είσοδος "S" είναι η ενεργοποίηση στην είσοδο. Το ρολόι ανάβει όταν το "S" είναι υψηλό και σβήνει όταν το "S" είναι χαμηλό. Το "RST" είναι η είσοδος επαναφοράς, έτσι ώστε το ρολόι να μηδενίζεται όταν το "RST" είναι υψηλό. "CLK" είναι η είσοδος ρολογιού για τον μετρητή ψηφίων. "N" είναι η έξοδος ρολογιού που γίνεται το ρολόι εισόδου για το επόμενο ψηφίο. Η έξοδος "D" παρουσιάζει τη δυαδική τιμή του ψηφίου στο οποίο βρίσκεται ο μετρητής.

Βήμα 5: Εμφάνιση αριθμών

Εμφάνιση αριθμών
Εμφάνιση αριθμών

Ο κωδικοποιητής οθόνης επτά τμημάτων θα κωδικοποιήσει τον δυαδικό αριθμό που λαμβάνεται από τη μονάδα προγράμματος οδήγησης οθόνης επτά τμημάτων και θα τον μετατρέψει σε μια ροή δυαδικών ψηφίων που θα ερμηνευτούν ως τιμές "1" ή "0" για κάθε τμήμα της οθόνης. Ο δυαδικός αριθμός λαμβάνεται από τη μονάδα ως "ψηφίο" εισόδου 4 bit και έχει ως αποτέλεσμα τα "τμήματα" εξόδου 7 bit. Η ενότητα αποτελείται από ένα μπλοκ διεργασίας υπόθεσης που εκχωρεί μια συγκεκριμένη ροή 7 bit για κάθε πιθανή τιμή εισόδου από 0 έως 9. Κάθε bit στα ρεύματα επτά bit αντιπροσωπεύει ένα από τα επτά τμήματα των ψηφίων στην οθόνη. Η σειρά των τμημάτων στη ροή είναι "abcdefg" με τα "0" να αντιπροσωπεύουν τα τμήματα που ανάβουν για τον δεδομένο αριθμό.

Βήμα 6: Πώς να εμφανίσετε το χρονόμετρο

Πώς να εμφανίσετε το χρονόμετρο
Πώς να εμφανίσετε το χρονόμετρο

Στη μονάδα προγράμματος οδήγησης οθόνης επτά τμημάτων, υπάρχουν τέσσερις είσοδοι 4-bit "D0", "D1", "D2" και "D3", η κάθε μία αντιπροσωπεύει τα τέσσερα ψηφία που θα εμφανιστούν. Η είσοδος "CLK" είναι η είσοδος ρολογιού του συστήματος. Η έξοδος ενός δυαδικού ψηφίου "DP" αντιπροσωπεύει το δεκαδικό σημείο στην οθόνη επτά τμημάτων. Η έξοδος 4-bit "Anodes" καθορίζει ποιο ψηφίο εμφανίζεται στην οθόνη επτά τμημάτων και η "temp" εξόδου 4-bit εξαρτάται από την κατάσταση της εισόδου ελέγχου 2-bit "SEL". Η μονάδα χρησιμοποιεί 4 πολυπλέκτες για την είσοδο ελέγχου "SEL" και τις τρεις εξόδους. "Anodes", "temp" και "DP".

Βήμα 7: Φέρτε τα όλα μαζί

Ένα μπλοκ διαδικασίας "εάν" που τρέχει από το ρολόι 500Hz χρησιμοποιείται για τη δημιουργία των κουμπιών έναρξης και παύσης. Στη συνέχεια, συνδέστε όλες τις υπομονάδες μαζί στην κύρια μονάδα του χρονόμετρου δηλώνοντας τα συστατικά κάθε μεμονωμένης υπομονάδας και χρησιμοποιώντας διάφορα σήματα. Τα ψηφιακά υπομονάδια λαμβάνουν την έξοδο ρολογιού της προηγούμενης υπομονάδας ψηφίου με την πρώτη να λαμβάνει το ρολόι των 100Hz. Οι έξοδοι "D" των υπομονάδων ψηφίων γίνονται στη συνέχεια οι είσοδοι "D" της μονάδας προγράμματος οδήγησης οθόνης επτά τμημάτων. Και τέλος, η έξοδος "temp" της μονάδας προγράμματος οδήγησης οθόνης επτά τμημάτων γίνεται η είσοδος "temp" της μονάδας κωδικοποιητή επτά τμημάτων.

Βήμα 8: Περιορισμοί

Περιορισμοί
Περιορισμοί

Χρησιμοποιήστε 3 κουμπιά (W19, T17 και U18) για εισόδους "RST", "S1" και "S2". Το W19 είναι το κουμπί επαναφοράς, το T17 είναι το κουμπί έναρξης (S1) και το U18 είναι το κουμπί παύσης (S2). Απαιτείται επίσης ένας περιορισμός για την είσοδο ρολογιού χρησιμοποιώντας τη θύρα W5. Επίσης, θυμηθείτε να προσθέσετε αυτήν τη γραμμή στον περιορισμό ρολογιού:

create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports {CLK}]

Συνδέστε επίσης τις ανόδους και τα τμήματα στον πίνακα, ώστε το χρονόμετρο να εμφανίζεται στην οθόνη των επτά τμημάτων, όπως φαίνεται στο αρχείο περιορισμών.

Βήμα 9: Δοκιμή

Δοκιμές
Δοκιμές

Βεβαιωθείτε ότι η συσκευή σας λειτουργεί παίζοντας με τα τρία κουμπιά: πιέζοντας και κρατώντας τα με κάθε δυνατή σειρά για να βρείτε τυχόν προβλήματα με τον κώδικά σας.

Συνιστάται: