Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεΑντιγόνη Ζυγομαλάς Τροποποιήθηκε πριν 9 χρόνια
1
ΕΙΣΑΓΩΓΗ ΣΤΗ VHDL ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΕΡΓΑΣΤΗΡΙΑΚΩΝ ΑΣΚΗΣΕΩΝ
Φοιτήτρια Πεπονή Βανέσσα-Βάγια (A.M.2120) Επιβλέπων Καθηγητής Δρ. Καλόμοιρος Ιωάννης, Επίκουρος Καθηγητής
2
VHDL - Βανέσσα Βάγια Πεπονή
Σκοπός - Περιεχόμενα Στην εργασία αυτή αναπτύχθηκαν βασικά παραδείγματα ψηφιακής σχεδίασης απλών και πιο σύνθετων κυκλωμάτων σε γλώσσα VHDL, ως υποδειγματικό υλικό για την υποβοήθηση της εργαστηριακής εξοικείωσης με τις γλώσσες περιγραφής υλικού, καλύφθηκαν τα κεφάλαια της σχεδίασης συνδυαστικών κυκλωμάτων και ακολουθιακών κυκλωμάτων. Παράχθηκε υλικό για 1. Πολυπλέκτες – Αποκωδικοποιητές 2. Αριθμητικά Κυκλώματα, αθροιστές, αφαιρέτες, πολλαπλασιαστές 3. Συγκριτές 4. Στοιχεία μνήμης – Καταχωρητές 5. Απαριθμητές και Μηχανές Καταστάσεων Τα κυκλώματα προσομοιώθηκαν στο περιβάλλον του Quartus II της Altera. VHDL - Βανέσσα Βάγια Πεπονή
3
VHDL - Βανέσσα Βάγια Πεπονή
Ο όρος VHDL είναι συντομογραφία του όρου VHSIC Hardware Description Language, όπου VHSIC σημαίνει Very High-Speed Integrated Circuit (Ολοκληρωµένα Κυκλώµατα Υψηλής Ταχύτητας). [1] Η VHDL ως γλώσσα προγραµµατισµού έχει τη δυνατότητα περιγραφής: της συµπεριφοράς, της δοµής αλλά και της εφαρµογής ψηφιακών συστηµάτων. Με βάση αυτά τα χαρακτηριστικά η VHDL συγκαταλέγεται στα εργαλεία ECAD (Electronic Computer Aided Design). Η VHDL είναι χρήσιμη για την περιγραφή και υλοποίηση ψηφιακών συστημάτων σε προγραμματιζόμενες λογικές διατάξεις τύπου CPLDs(Complex Programmable Logic Devices) και FPGAs (Filed Programmable Gate Arrays). Η VHDL είναι καθιερωμένη σαν πρότυπο για την σχεδίαση ηλεκτρονικών κυκλωμάτων ASICs (Application Specific Integrated Circuits) . Μια πρώτη έκδοση του προτύπου αυτού δημοσιεύθηκε αρχές του 1980 και έγινε δεκτή ως πρότυπο τo 1987 από το ινστιτούτο ΙΕΕΕ ως ΙΕΕΕ 1076. Το 1993 κυκλοφόρησε µια βελτιωμένη έκδοσή της µε το όνομα IEEE1164, και ακολούθησαν και άλλες αναβαθμίσεις. Η VHDL έχει κληρονομήσει πολλά στοιχεία από τη γλώσσα προγραμματισμού ADA. VHDL - Βανέσσα Βάγια Πεπονή
4
Βασικά Στοιχεία της VHDL
περιγράφει κυκλώματα ψηφιακών συστημάτων σε μορφή κειμένου μπορεί να διαβαστεί εύκολα τόσο από ανθρώπους όσο και από Η/Υ. εύκολη αποθήκευσή, ανάκτηση και επεξεργασία Χρησιμοποιεί μοντέλα περιγραφής και σχεδίασης: συμπεριφοράς, χρονισμού, ροής δεδομένων και δομής των ψηφιακών συσκευών VHDL - Βανέσσα Βάγια Πεπονή
5
VHDL - Βανέσσα Βάγια Πεπονή
Το μοντέλο συμπεριφοράς περιγράφει τον αλγόριθμο (λειτουργία) που εκτελείται χωρίς αναφορά στην εσωτερική του δομή Στo μοντέλο ροής των δεδομένων, περιγράφεται το πως οι είσοδοι και οι έξοδοι από απλά κυκλώματα (π.χ. πύλη AND) ή μπλοκ συνδυαστικών κυκλωμάτων συνδέονται μεταξύ τους. Το μοντέλο Δομής χωρίζει τον αλγόριθμο σε ενότητες που είναι λειτουργικά όμοιες Άλλα μοντέλα: Το μοντέλo χρονισμού των ψηφιακών συσκευών που βασίζεται στα ερεθίσματα VHDL - Βανέσσα Βάγια Πεπονή
6
Οργάνωση της Σχεδίασης 1/3
Για να περιγράψουμε ένα κύκλωμα, φτιάχνουμε ένα αρχείο που οργανώνεται συνήθως σε τρία τμήματα: Το τμήμα δήλωσης των βιβλιοθηκών (library). Το τμήμα δήλωσης της εξωτερικής μορφής του κυκλώματος - οντότητας (entity) όπου ορίζονται το όνομά του και οι διεπαφές (σήματα εισόδων και εξόδων) του κυκλώματος η περιγραφή της αρχιτεκτονικής της οντότητας (architecture) όπου περιγράφεται η λειτουργία και συμπεριφορά του VHDL - Βανέσσα Βάγια Πεπονή
7
Οργάνωση της Σχεδίασης 2/3
Βιβλιοθήκες (Libraries) Οι βιβλιοθήκες περιέχουν προσχεδιασμένες υπομονάδες και πακέτα. Η χρήση των στοιχείων τους γίνεται είτε: Κατά το σχεδιασμό μεγάλων και πολύπλοκων κυκλωμάτων Από πολλούς σχεδιαστές Η δήλωση τους γίνεται πριν από τη δήλωση των οντοτήτων: LIBRARY <library_name> -- Δήλωση βιβλιοθήκης USE <library_name>.<package_name>.ALL; -- Δήλωση χρήσης πακέτου ENTITY Πακέτα (Packages) [3] Περιέχουν υπο-προγράμματα, σταθερές και τύπους δεδομένων Κάθε πακέτο αποτελείται από δύο μέρη: Δηλώσεις Σώμα PACKAGE mypack IS FUNCTION min (a, b :IN std_logic_vector) RETURN std_logic_vector; CONSTANT maxint : integer := 16#FFFF#; TYPE arithmetic_mode is (signed, unsigned); END mypack; PACKAGE BODY mypack IS FUNCTION min (a, b :in std_logic_vector) RETURN std_logic_vector IS BEGIN IF a<b THEN RETURN a; ELSE RETURN b; END IF; END min; END mypack; Όνομα πακέτου Δηλώσεις Σταθερών - Μεταβλητών Σώμα Πακέτου VHDL - Βανέσσα Βάγια Πεπονή
8
Οργάνωση της Σχεδίασης 3/3
Τύποι δεδομένων: ακέραιοι (integer types), κινητής υποδιαστολής (floating point types) απαριθμητικές τιμές (enumeration types). Αντικείμενα: σταθερές (constants) οι μεταβλητές (variables) σήματα (signals), Πράξεις και Τελεστές αριθμητικές, Λογικές σχεσιακές πράξεις με τους αντίστοιχους τελεστές τους. Constant zero4: bit_vector (0 to 3): = (‘0’, ‘0’, ‘0’, ‘0’);\ Variable count: integer: = 0; Signal clock: bit; Οι τρεις πιο βασικοί τύποι δεδομένων στην VHDL είναι οι ακέραιοι (integer types), οι κινητής υποδιαστολής (floating point types) και οι απαριθμητικές τιμές (enumeration types). Υπάρχουν τρεις κλάσεις αντικειμένων στην VHDL : τα σήματα (signals), οι μεταβλητές (variables) και οι σταθερές (constants). Η VHDL υποστηρίζει αριθμητικές, λογικές και σχεσιακές πράξεις με τους αντίστοιχους τελεστές τους VHDL - Βανέσσα Βάγια Πεπονή
9
Υλοποίηση κυκλωμάτων σε VHDL Το περιβάλλον Quartus
Το Quartus II της εταιρίας Altera είναι λογισμικό προγραμματισμού και σχεδίασης FPGA και PLA το οποίο επιτρέπει τη χρήση των VHDL και Verilog για την περιγραφή του υλικού και παρέχει τη δυνατότητα της οπτικής εκδοχής του λογικού κυκλώματος καθώς και την προσομοίωση της λειτουργίας του. Στην παρούσα εργασία χρησιμοποιήθηκε η ΔΩΡΕΑΝ WEB EDITION η οποία μπορεί να προγραμματίσει μόνο ορισμένα από τα προϊόντα FPGA της εταιρίας αλλά είναι επαρκής για ακαδημαϊκή χρήση. Είναι συμβατό τόσο με Windows όσο και με Linux. Κειμενογράφος Ιεραρχία Κάποιες από τις βασικές λειτουργίες που παρέχονται από το εργαλείο είναι οι ακόλουθες: Hierarchy Display. Παρέχει πρόσβαση σε όλα τα τμήματα της ιεραρχίας του σχεδιασμού. Graphic Editor. Χρησιμοποιείται για την δημιουργία κυκλωμάτων ή δομικών (structural) περιγραφών με χρήση λογικών και άλλων συμβόλων. Text Editor. Είναι ειδικά διαμορφωμένος κειμενογράφος για την συγγραφή περιγραφών με χρήση γλωσσών HDL. Waveform Editor. Χρησιμοποιείται για την δημιουργία κυμματομορφών και την τροφοδότηση τους στις εισόδους του κυκλώματος κατά την διαδικασία της εξομοίωσης. Παράθυρο Compiler VHDL - Βανέσσα Βάγια Πεπονή
10
Δημιουργία Project Όνομα project Δημιουργία Αρχείου στο Project
Επιλογή Ολοκληρωμένου Ορισμός Ονόματος του Project, Ορισμός directory που θα χρησιμοποιηθεί για την αποθήκευση των αρχείων του συγκεκριμένου project design files που επιθυμείτε και να τα συμπεριλάβετε στο project. Η Τρίτη σελίδα του New Project Wizard περιέχει το Family και Device Settings. Εδώ μπορείτε να επιλέξετε την οικογένεια και τον τύπο CPLD ή FPGA που θέλετε να χρησιμοποιήσετε για την υλοποίηση του κυκλώματος VHDL - Βανέσσα Βάγια Πεπονή
11
Το περιβάλλον Quartus - Compiler
Ο μεταφραστής αποτελείται από τα εργαλεία : Analysis and Synthesis Fitter Assembler και Timing Analyzer Παράθυρο Compilation Ο μεταφραστής (Compiler) του Quartus II αποτελείται από ένα σετ ανεξάρτητων εργαλείων που ελέγχουν και αναλύουν τον κώδικα VHDL ή το σχηματικό διάγραμμα για λάθη και δημιουργούν μία λογική έκφραση για κάθε λογική συνάρτηση του κυκλώματος, απεικονίζουν το σχέδιο σε μία προγραμματιζόμενη διάταξη (FPGA ή CPLD) της Altera και δημιουργούν αρχεία εξόδων για προσομοίωση λειτουργίας (Simulation), χρονική ανάλυση (timing analysis), και προγραμματισμό των διατάξεων (device programming). VHDL - Βανέσσα Βάγια Πεπονή
12
Το περιβάλλον Quartus – Προσομοίωση (Simulation)
Υπάρχουν δύο τύποι εξομοίωσης: λειτουργική (functional) και χρονισμών (timing). Στην περίπτωση της λειτουργικής εξομοίωσης δε λαμβάνονται υπόψη οι καθυστερήσεις των στοιχείων (πυλών και διασυνδέσεων) του κυκλώματος αλλά απλά επαληθεύεται ότι η λογική συνάρτηση που υλοποιεί το κύκλωμα είναι σωστή. Στην εξομοίωση χρονισμών επαληθεύουμε την ορθότητα του κυκλώματος και με βάση τους χρονικούς περιορισμούς που αυτό έχει. Αποτέλεσμα Simulation της πύλης XOR VHDL - Βανέσσα Βάγια Πεπονή
13
Συνδυαστικά και Ακολουθιακά Κυκλώματα
Συνδυαστικά: η έξοδός τους εξαρτάται μόνο από τις τιμές εισόδου τους. Ακολουθιακά: η έξοδός τους είναι συνάρτηση των τιμών εισόδου τους αλλά και της προηγούμενης κατάστασης του κυκλώματος (π.χ. Flip – Flops) Τα κυκλώματα που δημιουργούνται με τη χρήση πολλών βασικών πυλών μπορούν να χωριστούν σε δύο κατηγορίες: Συνδυαστικά και Ακολουθιακά VHDL - Βανέσσα Βάγια Πεπονή
14
Κυκλώματα πολυπλεκτών
Πολύπλεξη (Multiplexing) είναι η επιλογή μίας γραμμής εισόδου δεδομένων από πολλές. Ο Πολυπλέκτης (Multiplexer - MUX) 2n εισόδων (2nx1) είναι ένα συνδυαστικό κύκλωμα που έχει n γραμμές επιλογής (ελέγχου) και μία μοναδική γραμμή εξόδου. Πολυπλέκτης 2 σε 1 Πολυπλέκτης 2 σε 1 με πύλες Ο Πολυπλέκτης 2 σε 1 κώδικας στο Quartus (dataflow μοντέλο) VHDL - Βανέσσα Βάγια Πεπονή
15
Αποκωδικοποιητές Ο Αποκωδικοποιητής (Decoder) από n σε m (nxm) είναι ένα συνδυαστικό κύκλωμα με n γραμμές εισόδου και m γραμμές εξόδου (m2n Κάθε μία από τις n εισόδους του Αποκωδικοποιητή μπορεί να είναι “0” ή “1”, οπότε υπάρχουν 2n διαφορετικοί συνδυασμοί. Για κάθε συνδυασμό εισόδου μόνο μία από τις εξόδους του αποκωδικοποιητή είναι “1” (είναι ενεργοποιημένη). Αποκωδικοποιητής 3:8 με χρήση when LIBRARY ieee;--χρήση βιβλιοθήκης USE ieee.std_logic_1164.all; ENTITY decoder3_8 IS--ορισμός οντότητας PORT( din : IN STD_LOGIC_VECTOR(2 downto 0);--3 bits είσοδος για επιλογή εξόδου dout : OUT STD_LOGIC_VECTOR(7 downto 0) ); END decoder3_8;--8 bits έξοδος ARCHITECTURE Behavior OF decoder3_8 IS BEGIN dout <= (" ") WHEN (din="000") else-- η έξοδος καθορίζεται από το σήμα εισόδου (" ") WHEN (din="001") else--απο το σήμα εισόδου και ενεργοποιεί (" ") WHEN (din="010") else--το κατάλληλο bit (" ") WHEN (din="011") else (" ") WHEN (din="100") else (" ") WHEN (din="101") else (" ") WHEN (din="110") else (" ") ; END Behavior; αποκωδικοποιητής 3 σε 8 με πύλες NOT και AND VHDL - Βανέσσα Βάγια Πεπονή
16
Αριθμητικά κυκλώματα Αθροιστής 1 bit
Η πρόσθεση είναι η συνηθέστερη αριθμητική πράξη που πραγματοποιείται σε έναν ψηφιακό υπολογιστή. Αν το υλικό του υπολογιστή μπορεί να προσθέσει δύο δυαδικούς αριθμούς, τότε οι υπόλοιπες αριθμητικές πράξεις μπορούν να πραγματοποιηθούν με επιπλέον υλικό. Η αφαίρεση είναι η πρόσθεση του συμπληρώματος του αφαιρέτη στον μειωτέο. Ο πολλαπλασιασμός χρησιμοποιεί επαναλαμβανόμενες προσθέσεις του πολλαπλασιαστέου στον εαυτό του. Η διαίρεση χρησιμοποιεί επαναλαμβανόμενες αφαιρέσεις του διαιρέτη από το διαιρετέο. Αθροιστής 1 bit LIBRARY ieee; -- χρήση βιβλιοθήκης USE ieee.std_logic_1164.all; ENTITY fulladder1 IS --πλήρης αθροιστής PORT(Cin,x,y :IN STD_LOGIC; -- κρατούμενο εισόδου, προσθετέος s, Cout :OUT STD_LOGIC); -- κρατούμενο εξόδου, άθροισμα END fulladder1; ARCHITECTURE Structur OF fulladder1 IS -- περιγραφή δομής BEGIN s<=x XOR y XOR Cin; -- υπολογισμός αθροίσματος Cout<=(x AND y) OR (Cin AND x) OR (Cin AND y); -- υπολογισμός κρατουμένο END Structur; Προσομοίωση λειτουργίας αθροιστή VHDL - Βανέσσα Βάγια Πεπονή
17
Αθροιστής 4 bits Προσομοίωση λειτουργίας αθροιστή
LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY adder4 IS --οντότητα τετράμπιτου επεξεργαστή PORT(A, B :IN STD_LOGIC_VECTOR(3 DOWNTO 0); CI:IN STD_LOGIC; S: OUT STD_LOGIC_VECTOR (3 DOWNTO 0); CO:OUT STD_LOGIC); END ADDER4; ARCHITECTURE BEHAVIOR OF ADDER4 IS COMPONENT fulladder1 –καλούμε ως οντότητα των αθροιστή του 1 bit PORT(A, B, CI :IN STD_LOGIC ; S,CO: OUT STD_LOGIC); END COMPONENT ; SIGNAL TCARRY:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN ADDER0:fulladder1 PORT MAP(A(0),B(0),CI,S(0),TCARRY(0)); ADDER1:fulladder1 PORT MAP(A(1),B(1),TCARRY(0),S(1),TCARRY(1)); ADDER2:fulladder1 PORT MAP(A(2),B(2),TCARRY(1),S(2),TCARRY(2)); ADDER3:fulladder1 PORT MAP(A(3),B(3),TCARRY(2),S(3),CO); END BEHAVIOR; Προσομοίωση λειτουργίας αθροιστή VHDL - Βανέσσα Βάγια Πεπονή
18
Αθροιστής/Αφαιρέτης 8 bits μη προσημασμένων αριθμών
LIBRARY ieee; --χρήση βιβλιοθήκης USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; --χρήση βιβλιοθήκης unsigned ENTITY addsub IS PORT(A,B : IN STD_LOGIC_VECTOR(7 downto 0); --είσοδοι 8bits OPER: IN STD_LOGIC; --ορισμός σήματος 1 bit για επιλογή λειτουργίας RES : OUT STD_LOGIC_VECTOR(7 downto 0)); --έξοδος 8bit END addsub; ARCHITECTURE Behavior OF addsub IS BEGIN RES <= A + B WHEN OPER='0' --πρόσθεση όταν το σήμα επιλογής είναι ΄0΄,αφαίρεση όταν είναι΄1΄ ELSE A - B; END Behavior; Προσομοίωση λειτουργίας αφαιρέτη res=228-8 VHDL - Βανέσσα Βάγια Πεπονή
19
Σύγχρονα Ακολουθιακά Κυκλώματα
Το ακολουθιακό κύκλωμα δέχεται πληροφορίες από τις εξωτερικές του εισόδους. Οι είσοδοι, μαζί με την παρούσα κατάσταση των στοιχείων μνήμης, καθορίζουν τις τιμές των εξόδων. Καθορίζουν επίσης το πώς θα αλλάξει η κατάσταση των στοιχείων μνήμης. Δηλαδή, οι έξοδοι ενός ακολουθιακού κυκλώματος είναι συναρτήσεις όχι μόνο των εισόδων του, αλλά και της παρούσας κατάστασης των στοιχείων μνήμης του Ένα σύγχρονο ακολουθιακό σύστημα πρέπει, εξ’ ορισμού να χρησιμοποιεί σήματα τα οποία επηρεάζουν τα στοιχεία μνήμης τους σε διακριτές μόνο στιγμές του χρόνου. Ένας τρόπος για να πετύχουμε αυτόν το σκοπό είναι να χρησιμοποιήσουμε παντού στο σύστημα παλμούς μιας ορισμένης διάρκειας και να συμφωνήσουμε ότι οι παλμοί μιας ορισμένη πολικότητας θα παριστάνουν το λογικό 1 και της άλλης πολικότητας (ή η έλλειψη παλμού) το λογικό 0. Στην πράξη, τα σύγχρονα ακολουθιακά συστήματα χρησιμοποιούν επίπεδα τάσης (και όχι παλμούς) ως δυαδικά σήματα. Ο συγχρονισμός επιτυγχάνεται μέσω μιας γεννήτριας κύριου ρολογιού η οποία τροφοδοτεί το σύστημα με μια περιοδική σειρά παλμών ρολογιού. Αυτοί οι παλμοί διανέμονται παντού στο σύστημα με τέτοιο τρόπο ώστε τα στοιχεία μνήμης να επηρεάζονται από τις εισόδους τους μόνο τις στιγμές που φτάνουν αυτοί οι παλμοί χρονισμού. VHDL - Βανέσσα Βάγια Πεπονή
20
VHDL - Βανέσσα Βάγια Πεπονή
Flip - Flops Τα στοιχεία μνήμης που χρησιμοποιούνται στα ακολουθιακά κυκλώματα με ρολόι, λέγονται flip- flops. Πρόκειται για δυαδικά κύτταρα που μπορούν να αποθηκεύσουν ένα bit πληροφορίας. Τα flip-flops έχουν συνήθως δύο εξόδους – μια για την τιμή του bit που είναι αποθηκευμένο μέσα τους και μια για το συμπλήρωμά της. Δυαδικές πληροφορίες μπορούν να μπουν στο flip-flop με διάφορούς τρόπους και έτσι έχουμε διάφορους τύπου flip-flop. Ένα κύκλωμα flip-flop μπορεί να διατηρηθεί σε μια δυαδική κατάσταση επ’ αόριστο (εφόσον το τροφοδοτούμε με ισχύ), έως ότου κάποιο σήμα εισόδου το κάνει να αλλάξει κατάσταση. Οι πλέον συχνά χρησιμοποιούμενοι τύποι flip-flops είναι οι ακόλουθοι: R-S flip-flop D flip-flop J-K flip-flop T flip-flop Τα Flip Flop αποτελούν τις δομικές μονάδες για πιο πολύπλοκα ψηφιακά κυκλώματα όπως καταχωρητές, απαριθμητές αλλά και κάποιες κατηγορίες μνήμης RAM. VHDL - Βανέσσα Βάγια Πεπονή
21
D – Flip Flop Προσομοίωση λειτουργίας D Flip Flop
H λειτουργία του D Flip-Flop: Αν ο παλμός ρολογιού είναι CLK=0, τότε το flip-flop δεν μπορεί να αλλάξει κατάσταση, ανεξάρτητα από την τιμή της εισόδου D. Αν ο παλμός του ρολογιού είναι CLK=1, τότε η είσοδος D περνάει στην έξοδο. Η έξοδος παραμένει αμετάβλητη, διατηρώντας μνήμη της προηγούμενης κατάστασης. Η έξοδος ανανεώνεται στον επόμενο θετικό παλμό του ρολογιού Το D-flip-flop παίρνει το όνομά του από την ιδιότητά του να κρατά δεδομένα (Data). Ονομάζεται και μανδαλωτής τύπου D (D Latch). LIBRARY ieee ;--χρήση βιβλιοθήκης USE ieee.std_logic_1164.all; ENTITY dflipflop IS--δήλωση οντότητας PORT (data_in: IN STD_LOGIC;--είσοδος 1 bit clk: IN STD_LOGIC;--παλμός ρολογιού data_out: OUT STD_LOGIC ); END dflipflop; ARCHITECTURE behavior OF dflipflop IS BEGIN PROCESS(data_in, clk)--η διαδικασία εξαρτάται απο τον παλμό --στην θετική ακμή του παλμού IF (clk='1' and clk'event) THEN--αν το ρολόι είναι 1και υπάρχει αλλαγή data_out <= data_in;--τότε περνάει το σήμα εισόδου στην έξοδο --με ανάθεση τιμής END IF; END PROCESS; END behavior; Προσομοίωση λειτουργίας D Flip Flop VHDL - Βανέσσα Βάγια Πεπονή
22
Shift Register – Καταχωρητής Ολίσθησης
Μια ομάδα FFs αποτελεί έναν καταχωρητή, αφού κάθε FF μπορεί να αποθηκεύσει ένα bit πληροφορίας. Ένας καταχωρητής των n-bits περιέχει n-FFs και άρα είναι σε θέση να αποθηκεύσει οποιαδήποτε δυαδική πληροφορία περιέχει n-bits. Επιπλέον των FFs, ένας καταχωρητής μπορεί να περιέχει πύλες για να εκτελούν διάφορες λειτουργίες επεξεργασίας δεδομένων. Ενας καταχωρητής που μπορεί να ‘ολισθαίνει’ τις πληροφορίες που περιέχει προς τη μια ή προς την άλλη κατεύθυνση ονομάζεται ‘καταχωρητής ολίσθησης’ (shift register). LIBRARY ieee ; USE ieee.std_logic_1164.all; ENTITY shift_reg IS PORT( I: IN STD_LOGIC; clk: IN STD_LOGIC; shift: IN STD_LOGIC; Q: OUT STD_LOGIC ); END shift_reg; ARCHITECTURE Behavior OF shift_reg IS signal S: std_logic_vector(2 downto 0):="111"; BEGIN PROCESS(I, clk, shift, S) IF clk'event and clk='1' THEN IF shift = '1' THEN S <= I & S(2 downto 1); END IF; END PROCESS; Q <= S(0); END Behavior; VHDL - Βανέσσα Βάγια Πεπονή
23
VHDL - Βανέσσα Βάγια Πεπονή
Counter – Απαριθμητής Απαριθμητής είναι το ακολουθιακό κύκλωμα που αποτελείται από λογικές πύλες και στοιχεία μνήμης, το οποίο ακολουθεί μια καθορισμένη σειρά καταστάσεων και μεταβάλλει το περιεχόμενό του κατά 1 σε κάθε παλμό ρολογιού συγχρονισμού. Ο τρόπος σύνδεσης του ρολογιού στα Flip- Flops ορίζει δύο τύπους απαριθμητών: · τους σύγχρονους, όπου το ρολόι εφαρμόζεται ταυτόχρονα σε όλα τα Flip- Flops και · στους ασύγχρονους, όπου το ρολόι συνδέεται άμεσα μόνο στο Flip – Flop που αντιπροσωπεύει το λιγότερο σημαντικό ψηφίο του αριθμού μέτρησης. Το πλήθος των τιμών μέτρησης ορίζει το Μέτρο του απαριθμητή (δηλαδή το MOD). Π.χ . μέτρο-8 σημαίνει ότι ο μετρητής μετρά 8 καταστάσεις, από 0 μέχρι το 7 (δηλαδή από το 000 στο 111 στο δυαδικό σύστημα). LIBRARY ieee ; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; ENTITY counter IS GENERIC(n: natural :=2); PORT( clk: IN STD_LOGIC; clr: IN STD_LOGIC; count: IN STD_LOGIC; Q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END counter; ARCHITECTURE Behavior OF counter IS signal Pre_Q: std_logic_vector(7 downto 0); -- προηγούμενη κατάσταση BEGIN PROCESS(clk, count, clr) IF clr = '1' THEN – reset για clear Pre_Q <= Pre_Q - Pre_Q; ELSIF (clk='1' and clk'event) THEN – ανάλογα με τον παλμό του ρολογιού IF count = '1' THEN – εφ’οσον έχει ενεργοποιηθεί η λειτουργία απαρρίθμησης Pre_Q <= Pre_Q + 1; -- αύξηση απαριθμητή END IF; END PROCESS; Q <= Pre_Q; -- στην έξοδο το αποτέλεσμα END Behavior; VHDL - Βανέσσα Βάγια Πεπονή
24
Σας ευχαριστώ για την προσοχή σας!!! Πεπονή Βανέσσα-Βάγια (A.M.2120)
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.