ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Σχεδίαση Ψηφιακών Συστημάτων Ενότητα 2: Βασικές Μονάδες Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
Σκοπός Ενότητας Περιγραφή και μοντελοποίηση στοιχειωδών μονάδων συνδυαστικών και ακολουθιακών συστημάτων 4
Περιεχόμενα Ενότητας Πολυπλέκτης 2 σε 1 Πολυπλέκτης 4 σε 1 Η δομή Process (Διαδικασία) Πλήρης Αθροιστής -latch flip-flop master-slave Σύγκριση latch με flip-flop flip-flop με clear-preset flip-flop flip-flop με ασύγχρονο Reset flip-flop με σύγχρονο Reset Καταχωρητής 8 ψηφίων με ασύγχρονο reset 5
Πολυπλέκτης 2 σε 1-1
Πολυπλέκτης 2 σε 1-2 LIBRARY ieee ; USE ieee.std_logic_1164.all ; ENTITY mux2to1 IS PORT ( w0, w1, s : IN ST_LOGIC ; f : OUT ST_LOGIC ) ; EN ENTITY; ARCHITECTURE Behavior OF mux2to1 IS WITH s SELECT f <= w0 WHEN '0', w1 WHEN OTHERS ; EN ARCHITECTURE ; 7
Πολυπλέκτης 4 σε 1-1 s 0 s 1 w 0 00 w 1 01 w 2 10 w 3 11 f s 1 s 0 0 0 0 1 1 0 1 1 f w 0 w 1 w 2 w 3 s 1 s 0 (a) Graphic symbol s 0 w 0 s 1 w 1 (b) Truth table f w 0 w 1 0 1 0 1 f w 2 w 2 w 3 0 1 w 3 (c) Circuit 8
Πολυπλέκτης 4 σε 1-2 LIBRARY ieee ; USE ieee.std_logic_1164.all ; ENTITY mux4to1 IS PORT ( w0, w1, w2, w3 : IN ST_LOGIC ; s : IN ST_LOGIC_VECTOR(1 OWNTO 0) ; f : OUT ST_LOGIC ) ; EN ENTITY ; ARCHITECTURE Behavior1 OF mux4to1 IS WITH s SELECT f <= w0 WHEN "00", w1 WHEN "01", w2 WHEN "10", w3 WHEN OTHERS ; EN ARCHITECTURE ; 9
Πολυπλέκτης 4 σε 1-3 LIBRARY ieee ; USE ieee.std_logic_1164.all ; ENTITY mux4to1 IS PORT ( w0, w1, w2, w3 : IN ST_LOGIC ; s : IN ST_LOGIC_VECTOR(1 OWNTO 0) ; f : OUT ST_LOGIC ) ; EN ENTITY ; ARCHITECTURE Behavior2 OF mux4to1 IS f <= w0 WHEN s = 00 else w1 WHEN s = 01 else w2 WHEN s = 10 else w3 ; EN ARCHITECTURE ; Η πρώτη αληθής συνθήκη προσδιορίζει την έξοδο. Ανάλυση ΗΜ Πεδίου σε Κυλινδρικό Σύστημα Συντεταγμένων 10
Πολυπλέκτης 4 σε 1-4 ARCHITECTURE Behavior3 OF mux4to1 IS muxproc: process (S, w0, w1, w2, w3) begin if (S = 00 ) then f <= w0; elsif (S = 01 ) then f <= w1; elsif (S = 10 ) then f <= w2; else f <= w3; end if; end process; EN ARCHITECTURE ; ΠΡΟΣΟΧΗ: Η δομή IF THEN-...-EN IF πρέπει πάντα να βρίσκεται μέσα σε PROCESS 11
Η δομή Process (Διαδικασία) Οι προτάσεις μέσα σε μία process εκτελούνται σειριακά (sequentially) Η process είναι δομημένη όπως μία δομή σε γλώσσα C ή Pascal ορισμός και χρήση μεταβλητών δομές ιf-then, if-then-else, case, loop και while σε μία process μπορεί να υπάρχουν προτάσεις απόδοσης τιμής σε σήματα (signal assignment statement) Μία process εκτελείται ταυτόχρονα με όλες τις άλλες προτάσεις απόδοσης τιμής σε σήματα Μία process απαιτεί μηδενικό χρόνο για εξομοίωση και μπορεί να σηματοδοτεί γεγονότα στο μέλλον. Μπορεί να θεωρηθεί ως μία σύνθετη πρόταση απόδοσης τιμής σε σήμα 12
Ταυτόχρονες διαδικασίες Τα στοιχεία που αποτελούν τον αθροιστή μπορούν να περιγραφούν με μία διαδικασία (process) Οι διαδικασίες εκτελούνται ταυτόχρονα. Δεν παίζει ρόλο η σειρά εγγραφής τους στο πρόγραμμα. Οι διαδικασίες επικοινωνούν με σήματα 13
Πλήρης Αθροιστής -1 library IEEE; use IEEE.std_logic_1164.all; entity full_adder is port (In1, c_in, In2 : in std_logic; sum, c_out : out std_logic); end full_adder; architecture behavioral of full_adder is signal s1, s2, s3: std_logic; constant delay :Time:= 5 ns; begin HA1: process (In1, In2) Process describing the first Half-adder begin s1 <= (In1 xor In2) after delay; s3 <= (In1 and In2) after delay; end process HA1; 14
Πλήρης Αθροιστής -2 HA2: process(s1,c_in) Process describing the second Half-adder begin sum <= (s1 xor c_in) after delay; s2 <= (s1 and c_in) after delay; end process HA2; OR1: process (s2, s3) process describing the two-input OR gate begin c_out <= (s2 or s3) after delay; end process OR1; end behavioral; 15
-latch (ata) Clk S Clk 0 1 1 x 0 1 ( t + 1 ) ( t ) 0 1 R Πίνακας Αλήθειας Κύκλωμα t 1 t 2 t 3 t 4 Clk Γραφικό Σύμβολο Time Διάγραμμα Χρονισμού 16
flip-flop master-slave Master Slave m s Clock Clk Clk m Γραφικό Σύμβολο s Διάγραμμα Χρονισμού 17
Σύγκριση latch με flip-flop Latch is level sensitive Register or flip-flop is edge-triggered Clk Clk Clk Clk 18
flip-flop με clear-preset Preset Clock Clear Preset Κύκλωμα Clear Γραφικό Σύμβολο 19
-latch ENTITY latch IS PORT (, Clk : IN ST_LOGIC ;,N : OUT ST_LOGIC) ; EN entity ; ARCHITECTURE Behavior OF latch IS PROCESS (, Clk ) IF Clk = '1' THEN <= ; N <= NOT ; EN IF ; EN PROCESS ; EN architecture ; 20
flip-flop ENTITY flipflop IS PORT (, Clock : IN ST_LOGIC ;, N : OUT ST_LOGIC) ; EN flipflop ; ARCHITECTURE Behavior OF flipflop IS PROCESS ( Clock ) IF Clock'EVENT AN Clock = '1' THEN <= ; N <= NOT ; EN IF ; EN PROCESS ; EN Behavior ; 21
flip-flop με ασύγχρονο Reset ENTITY flipflop IS PORT (, Resetn, Clock : IN ST_LOGIC ;, N : OUT ST_LOGIC) ; EN ENTITY ; ARCHITECTURE Behavior OF flipflop IS PROCESS ( Resetn, Clock ) IF Resetn = '0' THEN <= '0' ; N <= 1 ; ELSIF Clock'EVENT AN Clock = '1' THEN <= ; N <= NOT ; EN IF ; EN PROCESS ; EN ARCHITECTURE ; 22
flip-flop με σύγχρονο Reset ENTITY flipflop IS PORT (, Resetn, Clock : IN ST_LOGIC ;, N : OUT ST_LOGIC) ; EN ENTITY ; ARCHITECTURE Behavior OF flipflop IS PROCESS WAIT UNTIL Clock'EVENT AN Clock = '1' ; IF Resetn = '0' THEN <= '0' ; N <= 1 ; ELSE <= ; N <= NOT ; EN IF ; EN PROCESS ; EN ARCHITECTURE ; 23
Καταχωρητής 8 ψηφίων με ασύγχρονο reset ENTITY reg8 IS PORT ( : IN ST_LOGIC_VECTOR(7 OWNTO 0) ; Resetn, Clock : IN ST_LOGIC ; : OUT ST_LOGIC_VECTOR(7 OWNTO 0) ) ; EN reg8 ; ARCHITECTURE Behavior OF reg8 IS PROCESS ( Resetn, Clock ) IF Resetn = '0' THEN <= (others => 0 ) ; ELSIF Clock'EVENT AN Clock = '1' THEN <= ; EN IF ; EN PROCESS ; EN Behavior ; 24
Τέλος Ενότητας