Professional Documents
Culture Documents
2 Σχεδιαση συνδυαστικων κυκλ (Εαρινό 15)
2 Σχεδιαση συνδυαστικων κυκλ (Εαρινό 15)
2 Σχεδιαση συνδυαστικων κυκλ (Εαρινό 15)
Ιωάννης Βογιατζής
Τμήμα Μηχανικών Πληροφορικής ΤΕ
f = (x + ( y ⋅ z ′) )+ ( y ⋅ z)′
library ieee;
use ieee.std_logic_1164.all;
entity circuit is
port ( x, y, z : in std_logic;
f : out std_logic );
end entity circuit;
architecture boolean_eqn of circuit is
begin
f <= (x or (y and not z)) or not (y and z);
end architecture boolean_eqn;
Λογικοί τελεστές στη VHDL
• Προτεραιότητα
o το not έχει την υψηλότερη
o οι υπόλοιποι τελεστές έχουν
ίση προτεραιότητα
o χρησιµοποιούµε παρενθέσεις
για να ξεκαθαρίσουµε τη
σειρά υπολογισµού
• Τιµές bit στη VHDL
o '0' και '1'
Τύποι δεδοµένων
library library_name;
use library_name.package_name.package_parts;
∆ήλωση πακέτων
• Συνήθως σε µια σχεδίαση χρησιµοποιούµε τύπους από 3
πακέτα:
• ieee.std_logic_1164 (ieee library)
• standard (std library)
• work (work library)
library ieee;
use ieee.std_logic_1164.all;
library std;
use std.standard.all; Είναι εξ’ορισµού ορατές.
library ieee;
use ieee.std_logic_1164.all;
entity aircon is port (
temp_low, temp_high, auto_temp : in std_logic;
manual_heat, manual_cool, manual_fan : in std_logic;
heater_on, cooler_on, fan_on : out std_logic );
end entity aircon;
Υλοποίηση συνδυαστικής λογικής (λάθος)
begin
heater_on <= (temp_low and auto_temp) or manual_heat;
cooler_on <= (temp_high and auto_temp) or manual_cool;
fan_on <= heater_on or cooler_on or manual_fan;
end architecture eqns;
library ieee;
use ieee.std_logic_1164.all;
entity light_controller is port (
lights_in : in
std_logic_vector(1 to 3);
enable : in std_logic;
lights_out : out std_logic_vector(1 to 3) );
end entity light_controller;
Παράδειγµα δυαδικής κωδικοποίησης 2/2
architecture and_enable of light_controller is
begin
lights_out(1) <= lights_in(1) and enable;
lights_out(2) <= lights_in(2) and enable;
lights_out(3) <= lights_in(3) and enable;
end architecture and_enable;
• Character
o type character is (nul, … , '0', '1', … ,
'A', 'B', … , 'a', 'b', …)
o Περιλαµβάνει όλους τους χαρακτήρες του συνόλου
χαρακτήρων 8-bit Latin-1
• Boolean
o type boolean is (false, true);
• Bit
o type bit is ('0', '1');
Σύνθεση του τύπου απαρίθµησης 1/2
• Αντικείμενα πινάκων
variable buffer_register, data_register : word;
variable state : controller_state;
• Προτάσεις ανάθεσης
state := idle;
buffer_register(10) := ‘1’;
data_register := buffer_register;
Προκαθορισµένοι τύποι πινάκων
• Αλφαριθµητικά (strings)
type string is array (positive range <>) of character;
entity conc is
port (a,b : in bit_vector(3 downto 0);
z : out bit_vector(7 downto 0) );
end entity conc;
z <= a & b;
sel z
00 a0
01 a1
10 a2
11 a3
Αποκωδικοποιητής 4-σε-16
y11 = a3 ⋅ a2 ⋅ a1 ⋅ a0
Κωδικοποιητές (coders) 1/2
• Κωδικοποιητής 16-σε-4 a0 y0
a1 y1
o Με έξοδο valid για να υποδεικνύει τις a2 y2
a3 y3
a4
o µη-έγκυρες κωδικές λέξεις
…
valid
a15
[1] http://creativecommons.org/licenses/by-nc-sa/4.0/
Ως Μη Εμπορική ορίζεται η χρήση:
• που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για
το διανομέα του έργου και αδειοδόχο
• που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση
στο έργο
• που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος
(π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο
Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για
εμπορική χρήση, εφόσον αυτό του ζητηθεί.
Επεξήγηση όρων χρήσης έργων τρίτων
Δεν επιτρέπεται η επαναχρησιμοποίηση του έργου, παρά μόνο εάν ζητηθεί εκ νέου
© άδεια από το δημιουργό.
διαθέσιμο με Επιτρέπεται η επαναχρησιμοποίηση του έργου και η δημιουργία παραγώγων αυτού με
άδεια CC-BY απλή αναφορά του δημιουργού.
διαθέσιμο με άδεια Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού, και
CC-BY-SA διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια.
διαθέσιμο με άδεια Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού.
CC-BY-ND Δεν επιτρέπεται η δημιουργία παραγώγων του έργου.