Περιγραφή Κυκλωμάτων με χρήση της VHDL Δομική περιγραφή και περιγραφή Μηχανών Πεπερασμένων Καταστάσεων
Οργάνωση Παρουσίασης Περιγραφή Δομής σε VHDL (Structural Description) Μηχανές Πεπερασμένων Καταστάσεων (Finite State Machines - FSMs) Συμπληρωματική βιβλιογραφία / αναφορές ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 2
Structural VHDL Βασικές Έννοιες Περιγραφή των διασυνδέσεων των υπομονάδων του κυκλώματος Εναλλακτική περιγραφή του σχηματικού διαγράμματος (schematic diagram) Δεν απαιτείται λεπτομερής περιγραφή όλων των διασυνδέσεων Μόνο οι «βασικές διασυνδέσεις» ανάλογα με το επίπεδο της ροής του σχεδιασμού περιγράφονται ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 3
Structural VHDL Βασικές Έννοιες Δεν απαιτείται η περιγραφή της λειτουργίας των υπομονάδων Προϋποθέτει την ύπαρξη βιβλιοθήκης στην οποία βρίσκονται όλες οι χρησιμοποιούμενες υπομονάδες ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 4
Structural VHDL Παράδειγμα (1/2) ENTITY mux IS PORT (d0,d1,sel : IN std_logic; q : OUT std_logic); END; ARCHITECTURE str_mux OF mux IS -- Component Declaration COMPONENT and_comp COMPONENT or_comp PORT ( a,b: IN std_logic; PORT ( a,b: IN std_logic; c: OUT std_logic); c : OUT std_logic); END COMPONENT; END COMPONENT; COMPONENT inv_comp PORT ( a: IN std_logic; b: OUT std_logic); END COMPONENT; SIGNAL i1, i2, sel_n:std_logic ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 5
Structural VHDL Παράδειγμα (2/2) Βιβλιοθήκη -- Comp Specification FOR U1 : inv_comp USE ENTITY work.inv_comp(rtl); FOR U2, U3: and_comp USE ENTITY work.and_comp(rtl); FOR U4: or_comp USE ENTITY work.or_comp(rtl); Αρχιτεκτονική -- Component Instantiation U1: inv_comp PORT MAP (sel, sel_n); U2: inv_comp PORT MAP (d0, sel, i1); d0 U3: inv_comp PORT MAP (sel_n, d1,i2); i1 U4: inv_comp PORT MAP (i1,i2,q); sel U2 END; Sel_n U4 U1 i2 d1 U3 ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 6 q
Δήλωση υπομονάδων (Component Declaration) COMPONENT <entity_name> PORT (<port_list>) END COMPONENT; Κάθε υπομονάδα πρέπει να δηλώνεται πριν χρησιμοποιηθεί Η δήλωση δίνεται στο σώμα της αρχιτεκτονικής της οντότητας που χρησιμοποιείται ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 7
Δήλωση υπομονάδων (Component Declaration) COMPONENT <entity_name> PORT (<port_list>) END COMPONENT; Η port_list πρέπει να είναι ίδια με αυτή της οντότητας της υπομονάδας Για αποφυγή λαθών προτείνεται η αντιγραφή της οντότητας της υπομονάδας κατά τη δήλωση αυτής ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 8
Δήλωση υπομονάδων - Παράδειγμα ENTITIY ex IS ARCHITECTURE rtl OF ex IS PORT ( a, b: IN std_logic; q: OUT std_logic);. END; END; ENTITY top IS PORT ( ); END; ARCHITECTURE correct OF top IS ARCHITECTURE error OF top IS COMPONENT ex COMPONENT ex PORT ( a, b: IN std_logic; PORT ( b, a: IN std_logic; q: OUT std_logic); q: OUT std_logic); END COMPONENT; END COMPONENT; END; Σφάλμα στη σειρά δήλωσης END; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 9
Προσδιορισμός Υπομονάδας (Component Specification) FOR <label> : <component_name> USE ENTITY <library>.<component_name> (<architecture_name>); Ο προσδιορισμός της υπομονάδας συνίσταται στον καθορισμό : της βιβλιοθήκης που ανήκει η υπομονάδα της αρχιτεκτονικής που θα χρησιμοποιηθεί Ο προσδιορισμός υπομονάδας δεν υποστηρίζεται από τα εργαλεία σύνθεσης Απλώς αγνοείται!!! Τα εργαλεία σύνθεσης απαιτούν η υπομονάδα να βρίσκεται σε path ορατό σε αυτά ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 10
Προσδιορισμός υπομονάδας -Παράδειγμα ENTITY ex IS PORT ( ); END; ARCHITECTURE behv OF ex IS. END; ARCHITECTURE struct OF ex IS END; ENTITY top IS PORT ( ); END; architecture ARCHITECTURE rtl OF top IS FOR U1 : ex USE ENTITY work.ex(behv); END; component library ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 11
Απεικόνιση θυρών (Port Map) PORT MAP (<port_list>); Περιγράφει τη διασύνδεση των θυρών της υπομονάδας με τα υπόλοιπα σήματα του κυκλώματος Η διασύνδεση λαμβάνει χώρα σύμφωνα με τη σειρά που οι θύρες δηλώνονται στην οντότητα της υπομονάδας ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 12
Απεικόνιση θυρών Παράδειγμα ENTITY ex IS PORT ( a, b: IN std_logic; q: OUT std_logic); END ex; ARCHITECTURE rtl OF ex IS END rtl; Θα κάνουμε απεικόνιση: a=>c, b=>d, q=>q1 ENTITY top IS PORT ( c, d: IN std_logic; q1: END top; OUT srd_logic); ARCHITECTURE rtl OF top IS COMPONENT ex PORT ( a,b,in: IN std_logic; q: OUT std_logic); END COMPONENT; FOR U1 : ex USE ENTITY work.ex(rtl) U1: ex PORT MAP (c, d, q1); END; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 13
Μη συνδεδεμένες είσοδοι / έξοδοι Δεν επιτρέπονται μη συνδεδεμένες είσοδοι!!! Επιτρέπονται μη συνδεδεμένες έξοδοι Η διάταξη δήλωσης των θυρών πρέπει να λαμβάνεται υπόψη ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 14
Μη συνδεδεμένες είσοδοι / έξοδοι ARCHITECTURE rtl of top is COMPONENT ex PORT ( a,b: IN std_logic; q1,q2: OUT std_logic); END; FOR U1: ex USE ENTITY work.ex(rtl); U1: ex PORT MAP ( a=>a, b=>b, q1=>dout, q2=>open); -- CORRECT U1: ex PORT MAP (a, b, dout); -- CORRECT q2 is open U1: ex PORT MAP (a=>a, b=>b, q1=>open, q2=>d); -- CORRECT U1: ex PORT MAP (a, b, d); -- ERROR q2 is open instead of q1 ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 15
Generics Περιγράφουν παραμέτρους της υπομονάδας Δυνατότητα ανάπτυξης παραμετρικής VHDL ENTITY and_g IS GENERIC ( Ttdelay: time; n: positive); PORT ( a: IN bit_vector(n-1 DOWNTO 0); c: OUT bit); END; ARCHITECTURE behv OF and_g IS END; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 16
Generics ENTITY ex IS PORT ( i1,i2,i3,i4,i5: o1,o2: END; IN bit; OUT bit); ARCHITECTURE behv OF ex IS COMPONENT and_g GENERIC (Tdelay : time; n : positive); PORT ( a: IN bit_vector(n-1 DOWNTO 0); c: OUT bit); END COMPONENT; FOR U1, U2: and_g USE ENTITY work.and_g(behv); U1: and_g GENERIC MAP (n=>2, Tdelay=>8ns) PORT MAP (a(0)=>i1, a(1)=>i2, c=>o1); U2: and_g GENERIC MAP (n=>3, Tdelay=>12ns) PORT MAP (a(0)=>i3, a(1)=>i4, a(3)=>i5c=>o2); END; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 17
Generate Χρησιμοποιείται όταν μια υπομονάδα χρησιμοποιείται πολλές φορές σε μια αρχιτεκτονική Πιο ευέλικτος και μικρός κώδικας ENTITY ex IS PORT ( a,b: IN std_logic_vector (4 DOWNTO 0); q: OUT std_logic_vector (4 DOWNTO 0)); END; ARCHITECTURE rtl OF ex IS FOR U1 : c1 USE ENTITY work.c1(rtl); COMPONENT c1 PORT ( a,b: IN std_logic; Gen_1: FOR i IN 0 TO 4 GENERATE c: OUT std_logic)); U: c1 PORT MAP (a(i), b(i), q(i)); END COMPONENT; END GENERATE Gen_1; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ END; 18
Μηχανές Πεπερασμένων Καταστάσεων Υλοποιούν τη λογική ελέγχου (control logic) Αποτελούνται από συνδυαστικό κύκλωμα και F/Fs Περιγράφονται από ένα διάγραμμα εναλλαγής καταστάσεων (State Transition Diagram STD) ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 19
Μηχανές Πεπερασμένων Καταστάσεων Για τη σωστή λειτουργία απαιτείται οι είσοδοι να έχουν σταθεροποιηθεί πριν την άφιξη του ρολογιού Η καθυστέρηση καθορίζεται από το μέγιστο χρόνο υπολογισμού της νέας κατάστασης Ο μέγιστος χρόνος απόκρισης του συνδυαστικού κυκλώματος ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 20
Μηχανές Πεπερασμένων Καταστάσεων Λειτουργία δύο φάσεων Φάση 1: Υπολογισμός της της νεάς κατάστασης Φάση 2: Δειγματοληψία της νέας κατάστασης Η υλοποίηση μιας FSM σε υλικό (κύκλωμα) είναι πάντοτε γρηγορότερη από την υλοποίηση αυτής σε επεξεργαστή μέσω προγράμματος ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 21
Κατηγορίες FSMs Mealy FSMs : Οι έξοδοι είναι συνάρτηση των εισόδων και της τρέχουσας κατάστασης ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 22
Κατηγορίες FSMs Moore FSMs : Οι έξοδοι είναι συνάρτηση μόνο της τρέχουσας κατάστασης Οι Moore FSΜs απαιτούν ένα κύκλο ρολογιού παραπάνω Ένας κύκλος υπολογισμού της κατάστασης και ένας κύκλος για τον υπολογισμό της εξόδου ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 23
Moore FSMs Clocked Process Combinational Process ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 24
ENTITY demo IS PORT ( clk,in1,reset: IN std_logic; out1: OUT std_logic_vector(0 to 3)); END demo; ARCHITECTURE moore OF demo IS TYPE state_type IS (s0,s1,s2,s3); SIGNAL state: state_type; d: PROCESS(CLK,RESET) IF reset = '1' THEN state<=s0; ELSIF clk'event AND clk='1' THEN CASE state IS WHEN s0=> IF in1='1' THEN state<=s1; WHEN s1=> IF in1='0' THEN state<=s2; WHEN s2=> IF in1='1' THEN state<=s3; WHEN s3=> IF in1='0' THEN state<=s0; END CASE; END PROCESS; output_p: PROCESS (state) CASE state IS WHEN s0=> out1<="0000"; WHEN s1=> out1<="1001"; WHEN s2=> out1<="1100"; WHEN s3=> out1<="1111"; END CASE; END PROCESS; END moore; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 25
Moore FSM 3 Processes P0 P1 P2 ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 26
ARCHITECTURE moore OF demo IS TYPE state_type IS (s0,s1,s2,s3); SIGNAL current_state, next_state: state_type; P0: PROCESS (current_state,in1) CASE current_ state IS WHEN s0=> IF in1='1' THEN next_state<=s1; WHEN s1=> IF in1='0' THEN next_state <=s2; WHEN s2=> IF in1='1' THEN next_state <=s3; WHEN s3=> END CASE; END PROCESS; IF in1='0' THEN next_state <=s0; P1: PROCESS (clk,reset) IF reset = '1' THEN current_state<=s0; ELSIF clk'event AND clk='1' THEN current_state<=next_state END PROCESS; P2: PROCESS (current_state) CASE current_state IS WHEN s0=> out1<="0000"; WHEN s1=> out1<="1001"; WHEN s2=> out1<="1100"; WHEN s3=> out1<="1111"; END CASE; END PROCESS; END moore; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 27
Κωδικοποίηση Καταστάσεων Δεν απαιτείται από τα περισσότερα εργαλεία σύνθεσης Προτείνεται να αφήνεται στα εργαλεία σύνθεσης η κωδικοποίηση των καταστάσεων Οδηγεί τις περισσότερες φορές σε βέλτιστα κυκλώματα ως προς επιφάνεια / χρόνο Στην περίπτωση που αυτό κρίνεται σκόπιμο η δήλωση γίνεται στο σώμα της αρχιτεκτονικής ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 28
Κωδικοποίηση Καταστάσεων ARCHITECTURE moore OF demo IS TYPE state_type IS ARRAY (1 DOWNTO 0) OF bit; CONSTANT s0 : state_type := 00 ; CONSTANT s1 : state_type := 01 ; CONSTANT s2 : state_type := 10 ; CONSTANT s3 : state_type := 11 ;.. ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 29
Mealy FSM Combinational Process Clocked Process ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 30
ENTITY demo IS PORT ( clk,in1,reset: IN std_logic; out1: OUT std_logic_vector (3 downto 0); END demo; ARCHITECTURE mealy OF demo IS TYPE state_type IS (s0,s1,s2,s3); SIGNAL state: state_type; demo_process: PROCESS(CLK,RESET) IF reset = '1' THEN state<=s0; ELSIF clk'event AND clk='1' THEN CASE state IS WHEN s0=> IF in1='1' THEN state<=s1; WHEN s1=> IF in1='0' THEN state<=s2; WHEN s2=> IF in1='1' THEN state<=s3; WHEN s3=> IF in1='0' THEN state<=s0; END CASE; END PROCESS; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 31
output_p: PROCESS (state, in1) CASE state IS WHEN s0=> IF in1= 1 THEN out1<= 0000 ; ELSE out1<= 0000 ; WHEN s1=> IF in1= 0 THEN out1<= 1100 ; ELSE out1<= 1001 ; WHEN s2=> WHEN s3=> END CASE; END PROCESS; END mealy; IF in1= 1 THEN out1<= 1111 ; ELSE out1<= 1001 ; IF in1= 0 THEN out1<= 0000 ; ELSE out1<= 1111 ; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 32
Glitch-Free FSMs Λόγω του ότι οι έξοδοι προέρχονται από συνδυαστική λογική οι FSMs είναι πιθανόν να παρουσιάζουν glitches (spikes) στην έξοδό τους Τρόποι αποφυγής: 1) Άμεση ανάθεση της εξόδου σε διάνυσμα κωδικοποίησης κατάστασης (output = state) Απαιτείται η δήλωση των κωδίκων των καταστάσεων 2) Οδήγηση της εξόδου μέσω D F/F (clocked output FSM) Οι αναθέσεις των σημάτων εξόδου γίνονται εντός της clocked process ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 33
output = state ARCHITECTURE mealy OF demo IS TYPE state_type IS ARRAY (1 DOWNTO 0) OF std_logic; CONSTANT s0: state_type :="00"; CONSTANT s1: state_type := 01"; CONSTANT s2: state_type :="10"; CONSTANT s3: state_type :="11"; SIGNAL state: state_type; demo_process: PROCESS (clk,reset) IF reset = '1' THEN state<=s0; ELSIF clk'event AND clk='1' THEN CASE state IS WHEN s0=> IF in1='1' THEN state<=s1; WHEN s1=> IF in1='0' THEN state<=s2; WHEN s2=> IF in1='1' THEN state<=s3; END CASE; END PROCESS; out1<=state; END mealy; Ανάθεση διανύσματος κατάστασης στην έξοδο ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 34
Βιβλιογραφία / άλλες πηγές P. Ashenden, The Designer s Guide to VHDL, Morgan Kaufman Publishers, 1996 S. Sjoholm and L. Lennart, VHDL for Designers, Prentice Hall, 1997 B. Cohen, VHDL Coding Styles and Methodologies, Kluwer Academic Publishers, 1999 Z. Navabi, VHDL-Analysis and Modeling of Digital Systems, Mc Graw-Hill, 1993 VHDL cookbooks of the synthesis tools ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 35
Βιβλιογραφία / άλλες πηγές On-line μαθήματα σε ASIC/VHDL design: http://www.dacafe.com/asics.htm http://www.ecs.umass.edu/ece/vspgroup/burleso n/courses/558/ http://mikro.e-technik.uni-ulm.de/vhdl/anlengl.vhd/html/vhdl-all-e.html http://www.eas.asu.edu/~yong598d/vhdl_links. html ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 36
Βιβλιογραφία / άλλες πηγές Tutorials/Papers: http://www.vhdl.org/fmf/wwwpages/fmf_ecl_m odels_paper.html http://www.bluepc.com/download.html#downloa dtop http://www.symphonyeda.com/products.htm http://www.angelfire.com/electronic/in/vlsi/vhdl.ht ml#vhdl ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 37
Βιβλιογραφία / άλλες πηγές Freeware VHDL/Synthesis tools: http://www-asim.lip6.fr/recherche/alliance/ http://www.bluepc.com/download.html#downloa dtop http://www.symphonyeda.com/products.htm http://www.ececs.uc.edu/~paw/savant/ http://www.aldec.com/downloads/ ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 38
Βιβλιογραφία / άλλες πηγές Άλλες πηγές: http://www.ieee.org http://www.acm.org http://www.vhdl.org http://tech-www.informatik.uni-hamburg.de/vhdl/ http://www.eeglossary.com/vhdl.htm http://www.ent.ohiou.edu/~starzyk/network/class /ee514/intro.html ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 39