Βαζικές Δνόηηηες VHDL

Σχετικά έγγραφα
ΑΣΚΗΣΗ 2: Σχεδίαση και προσομοίωση κυκλωμάτων καταχωρητών και μετρητών

Κυκλωμάτων» Χειμερινό εξάμηνο

Σχεδίαση Ψηφιακών Συστημάτων

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Ακολουθιακός Κώδικας

Library, package και subprograms

Σχεδίαση Ψηφιακών Συστημάτων

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Προχωρημένα Θέματα Σχεδιασμού με VHDL

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Συντρέχων Κώδικας

Εισαγωγή στη γλώσσα περιγραφής υλικού VHDL. Βασικές εντολές και η περιγραφή συνδυαστικών κυκλωµάτων. Ψηφιακή Σχεδίαση µε CAD ΙΙ - ιάλεξη 2 -

Εργαστήριο Αρχιτεκτονικής Υπολογιστών Ι. Εισαγωγή στη VHDL

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Πακέτα και Συστατικά Στοιχεία (Υποκυκλώματα)

Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.

5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη

Structural VHDL. Structural VHDL

ΨΗΦΙΑΚΗ ΣΧΔΓΙΑΣΗ (Θεωπία) Θέμαηα Δξεηάζεων

Εισαγωγή στη Γλώσσα VHDL

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος

ΛΥΣΕΙΣ 3 ης ΓΡΑΠΤΗΣ ΕΡΓΑΣΙΑΣ

Μελέτη και σχεδίαση µιας υποτυπώδους κεντρικής µονάδας επεξεργασίας στα 32 µπιτ.

ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών

Εισαγωγή στη γλώσσα περιγραφής υλικού VHDL. Γενικά χαρακτηριστικά, σύνταξη και τύποι. Ψηφιακή Σχεδίαση µε CAD ΙΙ - ιάλεξη 1 -

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί.

VHDL για Σχεδιασµό Ακολουθιακών Κυκλωµάτων

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

ΑΠΛΟΠΟΙΗΗ ΛΟΓΙΚΩΝ ΤΝΑΡΣΗΕΩΝ ΜΕ ΠΙΝΑΚΕ KARNAUGH

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 Συµπληρωµατική ΔΙΑΛΕΞΗ 14: Περιγραφή Ακολουθιακών Κυκλωµάτων στη VHDL

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. VHDL για Ακολουθιακά Κυκλώματα 1

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος

f '(x)g(x)h(x) g'(x)f (x)h(x) h'(x) f (x)g(x)


TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ

ΒΗΜΑ 2. Εηζάγεηε ηνλ Κωδηθό Πξόζβαζεο πνπ ιακβάλεηε κε SMS & δειώλεηε επηζπκεηό Όλνκα Πξόζβαζεο (Username) θαη ην ζαο

Η/Υ A ΤΑΞΕΩΣ ΑΕ Συστήματα Αρίθμησης. Υποπλοίαρχος Ν. Πετράκος ΠΝ

Περιγραφή Κυκλωμάτων με χρήση της VHDL. Δομική περιγραφή και περιγραφή Μηχανών Πεπερασμένων Καταστάσεων

ΜΑΘΗΜΑ / ΤΑΞΗ : ΗΛΕΚΤΡΟΛΟΓΙΑ/Γ ΛΥΚΕΙΟΥ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 08/09/2014

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ. Ύλη: Εσθύγραμμη Κίνηζη

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Καταχωρητές 1

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ

Ζαχαρίας Μ. Κοντοπόδης Εργαστήριο Λειτουργικών Συστημάτων ΙΙ

ΠΑΡΑΡΤΗΜΑ Β. Verification

Synthesize. Place & Route

ΟΠΤΙΚΗ Α. ΑΝΑΚΛΑΣΖ - ΓΗΑΘΛΑΣΖ

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Μηχανές Πεπερασμένων Καταστάσεων

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΣΥΝΔΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ

7. ΚΑΤΑΧΩΡΗΤΕΣ ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ. 3. Έλαο θαηαρσξεηήο SISO ησλ 4 bits έρεη: α) Μία είζνδν, β) Δύν εηζόδνπο, γ) Σέζζεξεηο εηζόδνπο.

Άζκηζη ζτέζης κόζηοσς-τρόνοσ (Cost Time trade off) Καηαζκεσαζηική ΑΔ

VHDL. ΗΜΥ-210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο Απλό παράδειγµα: Entity. Μοντελοποίηση. Απλό παράδειγµα:αρχιτεκτονική. Στοιχεία γλώσσας VHDL

ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο Νοε-09. Διδάσκουσα: Μαρία Κ. Μιχαήλ

Πολυεπίπεδα/Διασυμδεδεμέμα Δίκτυα

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

VHDL Εισαγωγικές έννοιες

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress.

ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων

Περιγραφή Κυκλωμάτων με χρήση της VHDL. Καταχωρητές και χρονισμός με ρολόι

26-Nov-09. ΗΜΥ 210: Λογικός Σχεδιασμός, Χειμερινό Εξάμηνο Καταχωρητές 1. Διδάσκουσα: Μαρία Κ. Μιχαήλ

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Συναρτήσεις, Διαδικασίες και Δομές Ελέγχου Λειτουργίας Κυκλωμάτων (testbenches)

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

ΟΣΑ Επηρεηξεζηαθή Ννεκνζύλε. Ελόηεηα: Ad1.2.2 «Ση θξύβεηαη» πίζω από κηα Επηρεηξεζηαθή Αλαθνξά (report): XML & XSD γηα αξράξηνπο

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

ΕΙΣΑΓΩΓΙΚΟ ΕΓΧΕΙΡΙ ΙΟ ΓΙΑ ΣΧΕ ΙΑΣΜΟ ΜΕ ΧΡΗΣΗ ΤΗΣ ΓΛΩΣΣΑΣ VHDL

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

6 η Εργαζηηριακή Άζκηζη Επαλήθεσζη Λειηοσργίας Βαζικών Φλιπ-Φλοπ

Γ ΣΑΞΖ ΔΝΗΑΗΟΤ ΛΤΚΔΗΟΤ ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΘΔΣΗΚΩΝ ΚΑΗ ΟΗΚΟΝΟΜΗΚΩΝ ΠΟΤΓΩΝ ΤΝΑΡΣΖΔΗ ΟΡΗΑ ΤΝΔΥΔΗΑ (έως Θ.Bolzano) ΘΔΜΑ Α

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα!

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ Γευηέρα 11 Ηουνίου 2018 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ. (Ενδεικηικές Απανηήζεις)

3 ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ ( while, do while )

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 15: Καταχωρητές (Registers)

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12

Constructors and Destructors in C++

EL Eνωμένη στην πολυμορυία EL A8-0046/319. Τροπολογία

ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΣΗΜΑΤΩΝ & ΣΥΣΤΗΜΑΤΩΝ. ΜΕΤΑΣΦΗΜΑΤΙΣΜΟΣ Laplace

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο

ΣΥΣΤΗΜΑΤΑ ΑΛΓΕΒΡΑ Α ΛΥΚΕΙΟΥ. 1. Να ιπζνύλ ηα ζπζηήκαηα. 1 0,3x 0,1y x 3 3x 4y 2 4x 2y ( x 1) 6( y 1) (i) (ii)

Προσοµοίωση Συστηµάτων µε VHDL. (Peter Ashenden, The Students Guide to VHDL)

Σχεδίαση Ψηφιακών Συστημάτων

VHDL για Σχεδιασµό Συνδυαστικών και Ακολουθιακών Ψηφιακών Κυκλωµάτων

Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Διάλεξθ 4

ΔΝΓΔΙΚΣΙΚΔ ΛΤΔΙ ΣΑ ΜΑΘΗΜΑΣΙΚΑ ΠΡΟΑΝΑΣΟΛΙΜΟΤ 2017

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access)

Εςθςή ζςζηήμαηα επισειπήζεων και αξιολόγηζη

Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Διάλεξθ 2

Πανεπιστήμιο Πατρών. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών. Εργαστήριο Σχεδίασης Ολοκληρωμένων Κυκλωμάτων

ΚΔΦ. 2.4 ΡΗΕΔ ΠΡΑΓΜΑΣΗΚΩΝ ΑΡΗΘΜΩΝ

ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙ ΜΟ

Κεθάλαιο 7. Πξνζθνξά ηνπ θιάδνπ Μ. ΨΥΛΛΑΚΗ

Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) FritzBox Fon WLAN Annex B ( )

(Peter Ashenden, The Students Guide to VHDL)

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών

Α Ο Κ Η Α Μ Α Ζ Η Η Ρ Η ( S E A R C H )

Transcript:

Βαζικές Δνόηηηες VHDL Έλα απηόλνκν κέξνο θώδηθα VHDL πεξηιακβάλεη ηνπιάρηζηνλ ηξεηο βαζηθέο ελόηεηεο: Δνόηηηα δήλωζης βιβλιοθηκών: Δήιωζε ηωλ βηβιηνζεθώλ πνπ πξόθεηηαη λα ρξεζηκνπνηεζνύλ ζην ζρεδηαζκό, π.ρ. ieee, std, work, θιπ. Δνόηηηα ENTITY: Καζνξηζκόο εηζόδωλ/εμόδωλ ηνπ θπθιώκαηνο (αληηζηνηρεί ζην ρνλδξηθό δηάγξακκα) Δνόηηηα ARCHITECTURE: Πεξηγξαθή ηεο ιεηηνπξγίαο ηνπ θπθιώκαηνο (αληηζηνηρεί ζηηο ινγηθέο ζπλαξηήζεηο ηωλ εμόδωλ)

Βιβλιοθήκες Η βιβλιοκικθ είναι μια ςυλλογι από ςυχνά χρθςιμοποιοφμενα τμιματα κώδικα. Επιτρζπει τθν επαναχρθςιμοποίθςθ τουσ από άλλουσ ςχεδιαςμοφσ. Ο κώδικασ είναι ςυνικωσ με τθ μορφι ςυναρτιςεων (FUNCTIONS), διαδικαςιών (PROCEDURES) ι ςυςτατικών ςτοιχείων (COMPONENTS), τα οποία τοποκετοφνται μζςα ςε πακζτα (PACKAGES) και ςτθ ςυνζχεια μεταγλωττίηονται ςτθν αντίςτοιχθ βιβλιοκικθ. ΒΙΒΛΙΟΘΗΚΗ ΠΑΚΕΣΟ ΤΝΑΡΣΗΕΙ ΔΙΑΔΙΚΑΙΕ ΤΣΑΣΙΚΑ ΣΟΙΥΕΙΑ ΣΑΘΕΡΕ ΣΤΠΟΙ ΔΕΔΟΜΕΝΩΝ

Γηλώζεις βιβλιοθηκών LIBRARY όλνκα_βηβιηνζήθεο; USE όλνκα_βηβιηνζήθεο.όλνκα_παθέηνπ.κέξε_παθέηνπ; Σηηο ζρεδηάζεηο ρξεζηκνπνηνύκε ζπλήζωο ηξεηο βηβιηνζήθεο: LIBRARY ieee; LIBRARY std; USE std.standard.all; LIBRARY work; USE work.all; Οη βηβιηνζήθεο std θαη work είλαη πάληα νξαηέο θαη δελ ρξεηάδεηαη λα ηηο δειώλνπκε. Η βηβιηνζήθε ieee πξέπεη λα δειώλεηαη πάληα.

Δνόηηηα ENTITY Η ενότθτα ENTITY (οντότθτα) περιγράφει όλεσ τισ εξωτερικζσ κφρεσ (PORTS) ειςόδου και εξόδου του κυκλώματοσ. Αντιςτοιχεί ςτο χονδρικό διάγραμμα (block diagram). ENTITY όνομα_οντότθτασ IS PORT (όνομα_κφρασ: κατάςταςθ_ςιματοσ τφποσ_ςιματοσ; όνομα_κφρασ: κατάςταςθ_ςιματοσ τφποσ_ςιματοσ; ); END όνομα_οντότθτασ; όνομα_θύρασ: το όνομα τθσ ειςόδου ι εξόδου του ςυςτιματοσ κατάςταςη_ςήματοσ: o o o o IN (είςοδοσ) OUT (ζξοδοσ) INOUT (είςοδοσ-ζξοδοσ) BUFFER (προςωρινι αποκικευςθ) τύποσ_ςήματοσ: BIT, STD_LOGIC, INTEGER, κλπ.

Παράδειγμα_1 Κώδηθαο VHDL γηα ηελ πεξηγξαθή ηεο πύιεο XOR: ENTITY xor_gate IS PORT (a, b : IN BIT; f : OUT BIT); END xor_gate; Η παξαπάλω ελόηεηα ENTITY πεξηγξάθεη ηα αθόινπζα: Τν θύθιωκα έρεη ηξεηο ζύξεο (PORTS) εηζόδνπ/εμόδνπ a,b θαη f Οη ζύξεο a θαη b είλαη ζύξεο εηζόδνπ (θαηάζηαζε: IN) Η ζύξα f είλαη ζύξα εμόδνπ (θαηάζηαζε: OUT) Καη ηα ηξία ζήκαηα είλαη ηύπνπ BIT

Παράδειγμα_2 Κώδηθαο VHDL γηα ηελ πεξηγξαθή ηνπ πιήξνπο αζξνηζηή: ENTITY full_adder IS PORT (cin, a, b : IN BIT; s, cout : OUT BIT); END full_adder; Παράδειγμα_3 Κώδηθαο VHDL γηα ηελ πεξηγξαθή D flip-flop κε αζύγρξνλε είζνδν επαλεθθίλεζεο (rst): ENTITY dff IS END dff; PORT ( d, clk, rst : IN STD_LOGIC; q : OUT STD_LOGIC );

Δνόηηηα ARCHITECTURE Η ενότθτα ARCHTECTURE (αρχιτεκτονικι) περιγράφει τθ λειτουργία του κυκλώματοσ και αντιςτοιχεί ςτισ λογικζσ ςυναρτιςεισ των εξόδων. ARCHITECTURE όνομα_αρχιτεκτονικισ OF όνομα_οντότθτασ IS [δθλώςεισ] (κώδικασ) END όνομα_αρχιτεκτονικισ; Αποτελείται από δφο τμιματα: o το (προαιρετικό) δθλωτικό τμιμα, όπου δθλώνονται μεταξφ άλλων τα εςωτερικά ςιματα και οι ςτακερζσ o το τμιμα του κώδικα (από τθν εντολι ζωσ τθν εντολι END)

Παράδειγμα_4 Κώδηθαο VHDL γηα ηελ πεξηγξαθή ηεο αξρηηεθηνληθήο (ιεηηνπξγίαο) πύιεο XOR: ARCHITECTURE circuit1 OF xor_gate IS f <= a XOR b; END circuit1; Παράδειγμα_5 Κώδηθαο VHDL γηα ηελ πεξηγξαθή ηεο αξρηηεθηνληθήο (ιεηηνπξγίαο) ηνπ πιήξνπο αζξνηζηή: ARCHITECTURE circuit2 OF full_adder IS s <= a XOR b XOR Cin; Cout <= (a AND b) OR (a AND Cin) OR (b AND Cin); END circuit2;

Παράδειγμα_6 Κώδηθαο VHDL γηα ηελ πεξηγξαθή ηεο αξρηηεθηνληθήο (ιεηηνπξγίαο) ελόο D flip flop κε αζύγρξνλε είζνδν επαλεθθίλεζεο (rst): ARCHITECTURE circuit3 OF dff IS PROCESS (rst, clk) IF (rst = 1 ) THEN q <= 0 ; ELSEIF (clk EVENT AND clk = 1 ) THEN q <= d; END IF; END PROCESS; END circuit3;

Έηζη, γηα παξάδεηγκα, ν ζπλνιηθόο θώδηθαο VHDL γηα ηνλ πιήξε αζξνηζηή, είλαη: LIBRARY ieee; ENTITY full_adder IS PORT (Cin, a, b : IN BIT; s, Cout : OUT BIT); END full_adder; ARCHITECTURE circuit2 OF full_adder IS s <= a XOR b XOR Cin; Cout <= (a AND b) OR (a AND Cin) OR (b AND Cin); END circuit2;

Παράδειγμα_7 Παξάιιεινο αζξνηζηήο 4 bit: x3 y3 x2 y2 x1 y1 x0 y0 Cin c 3 c 2 c 1 FA 3 FA 2 FA 1 FA 0 c 3 c 2 c 1 Cout s3 s2 s1 s0

Παράδειγμα_7 (ζσνέτεια) LIBRARY ieee; ENTITY 4bit_adder IS PORT (Cin : IN STD_LOGIC; x3, x2, x1, x0 : IN STD_LOGIC; y3, y2, y1, y0 : IN STD_LOGIC; s3, s2, s1, s0 : OUT STD_LOGIC; Cout END 4bit_adder; : OUT STD_LOGIC);

Παράδειγμα_7 (ζσνέτεια) ARCHITECTURE 4bit_adder OF 4bit_adder IS SIGNAL c1, c2, c3 : STD_LOGIC; COMPONENT full_adder PORT ( Cin, x, y : IN STD_LOGIC; s, Cout : IN STD_LOGIC ); END COMPONENT; stage0: full_adder PORT MAP (Cin, x0, y0, s0, c1); stage1: full_adder PORT MAP (c1, x1, y1, s1, c2); stage2: full_adder PORT MAP (c2, x2, y2, s2, c3); stage3: full_adder PORT MAP ( Cin => c3, Cout => Cout, x => x3, y => y3, s => s3); END 4bit_adder;

Παράδειγμα_8 Κώδηθαο VHDL γηα ηε δεκηνπξγία παθέηνπ (package) πιήξνπο αζξνηζηή: LIBRARY ieee; PACKAGE fulladder_package IS COMPONENT full_adder PORT (Cin, x, y : IN STD_LOGIC; s, Cout : OUT STD_LOGIC); END COMPONENT END fulladder_package;

Παράδειγμα_9 Παξάιιεινο αζξνηζηήο 4 bit κε ηε ρξήζε παθέηνπ (package) πιήξνπο αζξνηζηή: LIBRARY ieee; USE work. fulladder_package.all; ENTITY 4bit_adder IS PORT (Cin : IN STD_LOGIC; x3, x2, x1, x0 : IN STD_LOGIC; y3, y2, y1, y0 : IN STD_LOGIC; s3, s2, s1, s0 : OUT STD_LOGIC; Cout END 4bit_adder; : OUT STD_LOGIC); ARCHITECTURE 4bit_adder OF 4bit_adder IS SIGNAL c1, c2, c3 : STD_LOGIC; stage0: fulladder PORT MAP (Cin, x0, y0, s0, c1); stage1: fulladder PORT MAP (c1, x1, y1, s1, c2); stage2: fulladder PORT MAP (c2, x2, y2, s2, c3); stage3: fulladder PORT MAP ( Cin => c3, Cout => Cout, x => x3, y => y3, s => s3); END 4bit_adder;

Παράζηαζη αριθμών ζηην VHDL Σε έλα ινγηθό θύθιωκα, έλαο αξηζκόο παξηζηάλεηαη κε ηε κνξθή ζεκάηωλ ζε έλαλ αξηζκό θαιωδίωλ. Σηε VHDL, έλαο αξηζκόο παξηζηάλεηαη ωο έλα αληηθείκελν δεδνκέλωλ ηύπνπ ζήκαηνο πνιιώλ bits (SIGNAL): SIGNAL C : STD_LOGIC_VECTOR (1 TO 3); Απηή ε εληνιή δειώλεη όηη ην C είλαη έλα ζήκα ηξηώλ bits ηύπνπ STD_LOGIC. Μπνξεί λα ρξεζηκνπνηεζεί ζε πξόγξακκα VHDL ωο κηα πνζόηεηα ηξηώλ bits, απιά ρξεζηκνπνηώληαο ην όλνκα C ή γξάθνληαο C(1), C(2), θαη C(3) γηα λα αλαθεξζνύκε ζηα επηκέξνπο bits ηεο πνζόηεηαο. Η ζύληαμε 1 TO 3 ζηελ εληνιή δήιωζεο θαζνξίδεη όηη ην πην ζεκαληηθό bit είλαη ην C(1) θαη όηη ην ιηγόηεξν ζεκαληηθό bit είλαη ην C(3). Γηα παξάδεηγκα: C <= 100 ζεκαίλεη όηη: C(1) = 1, C(2) = 0 θαη C(3) = 0

Παράζηαζη αριθμών ζηην VHDL Σπλήζωο, όηαλ ρξεζηκνπνηνύκε έλα ζήκα πνιιώλ bits γηα ηελ παξάζηαζε ελόο αξηζκνύ, αξηζκνύκε ηα bits κε ηνλ αληίζηξνθν ηξόπν, ρξεζηκνπνηώληαο ην κεγαιύηεξν δείθηε γηα λα δειώζνπκε ην πεξηζζόηεξν ζεκαληηθό bit: SIGNAL X : STD_LOGIC_VECTOR (3 DOWNTO 0); Απηή ε εληνιή δειώλεη όηη ην X είλαη έλα ζήκα ηύπνπ STD_LOGIC_VECTOR ηεζζάξωλ bits. Η ζύληαμε 3 DOWNTO 0 ζηελ εληνιή δήιωζεο θαζνξίδεη όηη ην πην ζεκαληηθό bit είλαη ην X(3) θαη όηη ην ιηγόηεξν ζεκαληηθό bit είλαη ην X(0). Απηόο είλαη έλαο πην θπζηθόο ηξόπνο αξίζκεζεο ηωλ bits, εάλ ην X ρξεζηκνπνηείηαη γηα ηελ παξάζηαζε ελόο δπαδηθνύ αξηζκνύ, επεηδή ν δείθηεο ηνπ θάζε bit αληηζηνηρεί ζηε ζέζε πνπ έρεη απηό κέζα ζηνλ αξηζκό. Γηα παξάδεηγκα: X <= 1100 ζεκαίλεη όηη: X(3) = 1, X(2) = 1, X(1) = 0 θαη X(0) = 0

Παράδειγμα_10 Παξάιιεινο αζξνηζηήο 4 bit κε ηε ρξήζε παθέηνπ (package) πιήξνπο αζξνηζηή θαη ζήκαηα πνιιώλ bits (STD_LOGIC_VECTOR): LIBRARY ieee; USE work. fulladder_package.all; ENTITY 4bit_adder IS PORT (Cin : IN STD_LOGIC; X, Y : IN STD_LOGIC_VECTOR(3 DOWNTO 0); S : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); Cout END 4bit_adder; : OUT STD_LOGIC); ARCHITECTURE 4bit_adder OF 4bit_adder IS SIGNAL C : STD_LOGIC_VECTOR (1 TO 3); stage0: fulladder PORT MAP (Cin, X(0), Y(0), S(0), C(1)); stage1: fulladder PORT MAP (C(1), X(1), Y(1), S(1), C(2)); stage2: fulladder PORT MAP (C(2), X(2), Y(2), S(2), C(3)); stage3: fulladder PORT MAP (C(3), X(3), Y(3), S(3), Cout); END 4bit_adder;

Πολσπλέκηης 2-ζε-1 (MUX 2x1) S x 0 x 1 0 1 MUX 2x1 F Γηα S = 0, F = X 0 Γηα S = 1, F = X 1 LIBRARY ieee; ENTITY mux2x1 IS PORT (x0, x1, s f END mux2x1; : IN STD_LOGIC; : OUT STD_LOGIC); ARCHITECTURE mux2x1 OF mux2x1 IS WITH s SELECT f <= x0 WHEN 0, x1 WHEN OTHERS; END mux2x1;

Πακέηο Πολσπλέκηη 2-ζε-1 LIBRARY ieee; PACKAGE mux2x1_package IS COMPONENT mux2x1 PORT (x0, x1, s : IN STD_LOGIC; f : OUT STD_LOGIC); END COMPONENT; END mux2x1_package;

Πολσπλέκηης 4-ζε-1 (MUX 4x1) S 1 S 0 x 0 00 x 1 x 2 x 3 01 10 11 MUX 4x1 F Γηα S 1 S 0 = 00, F = X 0 Γηα S 1 S 0 = 01, F = X 1 Γηα S 1 S 0 = 10, F = X 2 Γηα S 1 S 0 = 11, F = X 3 LIBRARY ieee; ENTITY mux4x1 IS PORT (x0, x1, x2, x3 : IN STD_LOGIC; s : IN STD_LOGIC_VECTOR (1 DOWNTO 0); f : OUT STD_LOGIC); END mux4x1; ARCHITECTURE mux2x1 OF mux2x1 IS WITH s SELECT f <= x0 WHEN 00, x1 WHEN 01, x2 WHEN 10, x3 WHEN OTHERS; END mux4x1;

Πακέηο Πολσπλέκηη 4-ζε-1 LIBRARY ieee; PACKAGE mux4x1_package IS COMPONENT mux4x1 PORT (x0, x1, x2, x3 : IN STD_LOGIC; s : IN STD_LOGIC_VECTOR (1 DOWNTO 0); f : OUT STD_LOGIC); END COMPONENT; END mux4x1_package;

Σύνθεζη πολσπλέκηη 4x1 με πολσπλέκηες 2x1 S 0 LIBRARY ieee; LIBRARY work; USE work.mux2x1_package.all; x 0 x 1 x 2 x 3 0 1 0 1 MUX 2x1 S 0 MUX 2x1 m 0 m 1 0 1 S 1 MUX 2x1 F ENTITY synmux4x1 IS PORT (x : IN STD_LOGIC_VECTOR(0 TO 4); s : IN STD_LOGIC_VECTOR(1 DOWNTO 0); f : OUT STD_LOGIC); END synmux4x1; ARCITECTURE synmux4x1 OF synmux4x1 IS SIGNAL m : STD_LOGIC_VECTOR(0 TO 1); Mux1: mux2x1 PORT MAP (x(0), x(1), s(1), m(0)); Mux2: mux2x1 PORT MAP (x(2), x(3), s(0), m(1)); Mux3: mux2x1 PORT MAP (m(0), m(1), s(1), f); END synmux4x1;

Υλοποίηζη ζσνδσαζηικών κσκλωμάηων με πολσπλέκηες (1) Παράδειγμα 1: α. Να ζτεδιάζεηε ηο ζσνδσαζηικό κύκλφμα ποσ σλοποιεί ηη ζσνάρηηζη πλειουηθίας ηριών ειζόδφν με ηην τρήζη πολσπλέκηη 4 ζε - 1. β. Να σλοποιήζεηε ηη ζτεδίαζη με ηη γλώζζα VHDL. Λύζη: α. Πίνακας Αλήθειας Κύκλωμα x y z F 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 F = 0 F = z F = z F = 1 0 z 1 x y 00 01 10 11 F

Υλοποίηζη ζσνδσαζηικών κσκλωμάηων με πολσπλέκηες (2) Θέηνληαο s(1) = x, s(0) = y, ν θώδηθαο VHDL ζα είλαη: LIBRARY ieee; ENTITY mux4to1 IS PORT (w0, w1, w2, w3 : IN STD_LOGIC; s : IN STD_LOGIC_VECTOR(1 DOWNTO 0); f : OUT STD_LOGIC); END mux4to1; ARCHITECTURE Behavior OF mux4to1 IS WITH s SELECT f <= w0 WHEN 00, w1 WHEN 01, w2 WHEN 10, w3 WHEN OTHERS; END Behavior; LIBRARY ieee; PACKAGE mux 4to1_package IS COMPONENT mux4to1 PORT (w0, w1, w2, w3 : IN STD_LOGIC; s : IN STD_LOGIC_VECTOR(1 DOWNTO 0); f : OUT STD_LOGIC); END COMPONENT; END mux4to1_package;

Υλοποίηζη ζσνδσαζηικών κσκλωμάηων με πολσπλέκηες (3) LIBRARY ieee; LIBRARY work; USE work.mux4to1_package.all; ENTITY circuit IS PORT (z : IN STD_LOGIC; w0, w1, w2, w3 : IN STD_LOGIC; s : IN STD_LOGIC_VECTOR(1 DOWNTO 0); f : OUT STD_LOGIC); END circuit; ARCHITECTURE Structure OF circuit IS mux4to1 PORT MAP (0, z, z, 1, s, f); END Structure;

Αποκωδικοποιηηής 2 - ζε - 4 (DEC 2x4) x 0 x 1 En DEC 2x4 y 0 y 1 y 2 y 3 Y 0 = Enx 1 x 0 Y 1 = Enx 1 x 0 Y 2 = Enx 1 x 0 Y 3 = Enx 1 x 0 En x 1 x 0 y 0 y 1 y 2 y 3 1 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 X X 0 0 0 0

LIBRARY ieee; VHDL για Αποκωδικοποιηηή 2 - ζε - 4 ENTITY dec2x4 IS PORT (x : IN STD_LOGIC_VECTOR (1 DOWNTO 0); En : IN STD_LOGIC; y : OUT STD_LOGIC_VECTOR (0 TO 3)); END dec2x4; ARCHITECTURE dec2x4 OF dec2x4 IS SIGNAL Enx : STD_LOGIC_VECTOR (2 DOWNTO 0); Enx <= En & x; WITH Enx SELECT y <= 1000 WHEN 100, 0100 WHEN 101, 0010 WHEN 110, 0001 WHEN 111, 0000 WHEN OTHERS; END dec2x4;

VHDL για DEC 2x4 με ενηολή Γιαδικαζίας (Process) LIBRARY ieee; ENTITY dec2x4 IS PORT ( x : IN STD_LOGIC_VECTOR (1 DOWNTO 0); En : IN STD_LOGIC; y : OUT STD_LOGIC_VECTOR (0 TO 3) ); END dec2x4; ARCHITECTURE dec2x4 OF dec2x4 IS PROCESS (x, En) IF En = 1 THEN CASE x IS END CASE; ELSE y <= 0000 ; END IF; END PROCESS; END dec2x4; WHEN 00 => y <= 1000 ; WHEN 01 => y <= 0100 ; WHEN 10 => y <= 0010 ; WHEN OTHERS => y <= 0001 ;

Αποκωδικοποιηηής 3 - ζε 8 (DEC 3x8) y 0 Y 0 = Enx 2 x 1 x 0 x 0 x 1 x 2 En DEC 3x8 y 1 y 2 y 3 y 4 y 5 y 6 y 7 Y 1 = Enx 2 x 1 x 0 Y 2 = Enx 2 x 1 x 0 Y 3 = Enx 2 x 1 x 0 Y 4 = Enx 2 x 1 x 0 Y 5 = Enx 2 x 1 x 0 Y 6 = Enx 2 x 1 x 0 Y 7 = Enx 2 x 1 x 0 En x 2 x 1 x 0 y 0 y 1 y 2 y 3 y 4 y 5 y 6 y 7 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 1 0 X X X 0 0 0 0 0 0 0 0

DEC 3x8 αποηελούμενος από δύο DEC 2x4 DEC 3x8 x 0 w 0 z 0 y 0 x 1 x 3 w 1 En DEC 2x4 z 1 z 2 z 3 y 1 y 2 y 3 En w 0 w 1 En DEC 2x4 z 0 z 1 z 2 z 3 y 4 y 5 y 6 y 7