Σχεδίαση και υλοποίηση σε FPGA παράλληλης επεξεργασίας μετασχηματισμού Fourier με τεχνική in-place

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Σχεδίαση και υλοποίηση σε FPGA παράλληλης επεξεργασίας μετασχηματισμού Fourier με τεχνική in-place"

Transcript

1 ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Σχεδίαση και υλοποίηση σε FPGA παράλληλης επεξεργασίας μετασχηματισμού Fourier με τεχνική in-place Ελισσαίος Αλέξιος Παπαθεοφάνους Α.Μ Επιβλέπων Καθηγητής : Δ.Ι. Ρεϊσης, Αναπληρωτής Καθηγητής ΑΘΗΝΑ 2017

2 ΠΕΡΙΕΧΟΜΕΝΑ 1. Περίληψη.3 2. Θεωρητική εισαγωγή Αρχιτεκτονική υπολογισμού FFT 8 4. Πηγές..14 Παράρτημα.15 2

3 1. Περίληψη Η εργασία αυτή έχει ως επίκεντρο τον γρήγορο μετασχηματισμό Fourier (FFT) o οποίος αποτελεί έναν αλγόριθμο γρήγορου και αποδοτικού υπολογισμού του διακριτού μετασχηματισμού Fourier (DFT). O DFT μετασχηματίζει μια ακολουθία δεδομένων στο πεδίο του χρόνου στην αντίστοιχή της στο πεδίο της συχνότητας. Ως αποτέλεσμα, ο αλγόριθμος FFT χρησιμοποιείται σε πληθώρα σύγχρονων εφαρμογών ψηφιακής επεξεργασίας σήματος. Συγκεκριμένα, μελετήθηκε αρχιτεκτονική FFT η οποία πραγματοποιεί υπολογισμούς in-place όπου δεν απαιτούνται βοηθητικές δομές αποθήκευσης δεδομένων και άρα τα αποτελέσματα των υπολογισμών αποθηκεύονται στην ίδια, μοναδική δομή δεδομένων, αντικαθιστώντας τα αρχικά δεδομένα. Η εν λόγω αρχιτεκτονική χρησιμοποιεί ένα σύστημα διευθυνσιοδότησης το οποίο επιτρέπει την παράλληλη φόρτωση, επεξεργασία και αποθήκευση των δεδομένων. Επιπλέον, πραγματοποιούνται συγκεκριμένες μεταθέσεις ανάμεσα στα δεδομένα εισόδου και εξόδου του butterfly processor με αποτέλεσμα την ελαχιστοποίηση των απαιτήσεων σε υλικό του συστήματος διευθυνσιοδότησης αλλά και την επιτάχυνση των υπολογισμών. Η παραπάνω αρχιτεκτονική FFT χρησιμοποιεί έναν radix-8 butterfly processor και εφαρμόστηκε για 64 σημεία δεδομένων εισόδου. Η υλοποίηση όλων των παραπάνω έγινε σε γλώσσα περιγραφής υλικού (HDL), ενώ ο έλεγχος και επαλήθευση των αποτελεσμάτων έγινε μέσω προγράμματος που αναπτύχθηκε στη πλατφόρμα Matlab. 3

4 2. Θεωρητική Εισαγωγή Ο DFT για ένα πλήθος N σημείων ορίζεται σύμφωνα με τη μαθηματική σχέση cos 2 sin2, 0,,1 Ο υπολογισμός του DFT σύμφωνα με τον παραπάνω ορισμό είναι πολύ αργός και απαιτητικός σε πόρους, γεγονός που τον καθιστά μη αποδοτικό. Αντί αυτού στην πράξη χρησιμοποιείται ο αλγόριθμος FFT και συγκεκριμένα ο Cooley Tukey αλγόριθμος που είναι και η πιο συνηθισμένη εκδοχή του FFT. Η λογική του έγκειται στον χωρισμό, με αναδρομικό τρόπο, του Ν σημείων DFT σε πλήθος Ν1 DFTs, Ν2 σημείων έκαστος έτσι ώστε Ν = N1N2. Ως αποτέλεσμα, το πλήθος πράξεων που απαιτούνται για τον υπολογισμό του DFΤ μειώνεται από Ο(Ν 2 ) σε Ο(ΝlogN), μια βελτίωση η οποία αυξάνεται πολύ γρήγορα όσο αυξάνεται το πλήθος σημείων N του DFT. Στην παρούσα εργασία εφαρμόστηκε ο radix-8 decimation-in-time (DIT) FFT όπου ο αρχικός DFT Ν σημείων χωρίζεται σε 8 DFTs, N/8 σημείων έκαστος. Παρακάτω παρουσιάζεται η μαθηματική θεμελίωση του εν λόγω αλγόριθμου. Σημειώνεται καταρχάς πως οι εκθετικοί μιγαδικοί συντελεστές φάσης που εμφανίζονται στον ορισμό του DFT αποκαλούνται παραδοσιακά twiddle factors και συμβολίζονται για λόγους ευκολίας ως Παρουσιάζουν επιπλέον τις εξής ιδιότητες τις οποίες εκμεταλλευόμαστε ώστε να καταστήσουμε αποδοτικό τον αλγόριθμο / Οπότε 4

5 / / / / / / / / / / / / / / / / / / / / / 0,,1 / / / Τα παραπάνω εφαρμόστηκαν για Ν = 64 πλήθος σημείων δεδομένων εισόδου, οπότε παρουσιάζεται παρακάτω και το αντίστοιχο data flow (Εικόνα 1). Όπως φαίνεται ο αλγόριθμος απαιτεί για την ολοκλήρωση του πλήθος stages ίσο με log8n = 2. Για καθένα από τα 2 αυτά stages, η μαθηματική σχέση, σε μορφή πίνακα, που υλοποιούν τα radix-8 butterflies, ανάμεσα στα δεδομένα εισόδου και εξόδου τους, είναι Ο παραπάνω πίνακας των twiddle factors μπορεί να απλοποιηθεί χρησιμοποιώντας τις αντίστοιχες ιδιότητες με αποτέλεσμα τη μείωση των απαιτούμενων υπολογισμών. 5

6 Εικόνα 1. Data flow διάγραμμα radix-8 DIT FFT αλγόριθμου για Ν=64 σημεία δεδομένων εισόδου. Τα twiddle factors αναπαρίστανται ως k αντί. 6

7 Προκύπτει οπότε Εικόνα 2. Radix-8 butterfly Ειδικά για το 2 ο stage του αλγόριθμου, τα δεδομένα εισόδου του κάθε butterfly είναι πολλαπλασιασμένα το καθένα με το αντίστοιχο twiddle factor, όπως φαίνεται στο flow diagram, σύμφωνα με τη σχέση, 0, 1,, N/8-1 Τέλος, σημειώνεται ότι τα αποτελέσματα ύστερα από την υλοποίηση του αλγόριθμου είναι διατεταγμένα όπως φαίνεται στο flow diagram. Προκειμένου αυτά να διαταχθούν στη σωστή σειρά απαιτείται η παρακάτω μετάθεση των bits των δεικτών τους. 7

8 3. Αρχιτεκτονική FFT Οι σύγχρονες εφαρμογές στους τομείς της επεξεργασίας σήματος και των τηλεπικοινωνιών απαιτούν οι υπολογισμοί του FFT να γίνονται πολύ γρήγορα και με ελάχιστους πόρους. Οι αρχιτεκτονικές που στοχεύουν στα παραπάνω χαρακτηριστικά περιλαμβάνουν γενικά έναν butterfly processor, μια μνήμη για την αποθήκευση των δεδομένων και μια μνήμη ROM με τις προϋπολογισμένες τιμές των twiddle factors. Στην παρούσα εργασία μελετήθηκε και υλοποιήθηκε μια αρχιτεκτονική FFT η οποία χρησιμοποιεί τεχνική in-place όπου η ίδια δομή αποθήκευσης δεδομένων χρησιμοποιείται για την αποθήκευση των δεδομένων εισόδου, εξόδου αλλά και των ενδιάμεσων σταδίων του αλγόριθμου FFT. Χρησιμοποιώντας έναν radix-8 butterfly processor, οι υπολογισμοί μπορούν να επιταχυνθούν περιλαμβάνοντας συνολικά 8 μνήμες για τα Ν=64 σημεία δεδομένων εισόδου. Η τεχνική αυτή μπορεί επιπλέον να γενικευθεί για radix-b butterfly processors με χρήση b πλήθους μνήμων, όπου b μια δύναμη του 2, και για οποιοδήποτε Ν που είναι δύναμη του 2. Χρησιμοποιήθηκε επιπλέον ένα σύνθετο σύστημα διευθυνσιοδότησης το οποίο, εκμεταλλευόμενο ορισμένες μεταθέσεις (permutations) ανάμεσα στα δεδομένα εισόδου και εξόδου του radix-8 butterfly processor, επιτρέπει την παράλληλη φόρτωση, επεξεργασία και αποθήκευση των δεδομένων με αποτέλεσμα την επιτάχυνση των υπολογισμών. Τέλος, η αρχιτεκτονική γίνεται ακόμα πιο αποδοτική ελαχιστοποιώντας τις απαιτήσεις σε υλικό της μονάδας ελέγχου που παράγει τις διευθύνσεις των δεδομένων και των twiddle factors και που υποδεικνύει τα σωστά permutations σε κάθε stage. Εικόνα 3. Αρχιτεκτονική του in-place FFT processor 8

9 Παρακάτω παρουσιάζεται το data flow διάγραμμα του αλγόριθμου που εφαρμόζεται από την εν λόγω αρχιτεκτονική (Εικόνα 4). Τα 8 διαφορετικά χρώματα υποδηλώνουν τις 8 διαφορετικές memory banks ενώ ο αριθμός εντός του κύκλου υποδεικνύει τον δείκτη του permutation που εφαρμόστηκε. Σημειώνεται ότι όλοι οι δείκτες που εμφανίζονται είναι σε μορφή ψηφίου, πλάτους log28 = 3 bits. Παρουσιάζεται επίσης η εσωτερική δομή της μονάδας ελέγχου (Εικόνα 5) όπου φαίνεται συγκεκριμένα πως παράγονται οι διευθύνσεις των στοιχείων που εμπλέκονται στους υπολογισμούς του κάθε butterfly, για τη γενικευμένη περίπτωση του αλγόριθμου. Σε κάθε stage i, 0 i log864-1, ο butterfly control counter, με πλήθος ψηφίων m-1 = 1, όπου m=log864, μετράει από το 0 έως b m-1 1 = 7. Οι τιμές αυτές αντιστοιχούν στις b = 8 πλήθους διαφορετικές 8-άδες δεδομένων του κάθε butterfly. Καθεμία από τις τιμές αυτές προωθείται ως διεύθυνση στα 8 memory banks αφού πρώτα υποβληθεί σε bitwise XOR με τον δείκτη του εκάστοτε bank. Αυτό επιτυγχάνεται, όπως φαίνεται και στην εικόνα, με τη χρήση shift left registers, πλάτους ενός 3bit ψηφίου. Αρχικά, ξεκινούν με την τιμή 0 και ύστερα από κάθε stage το ψηφίο το οποίο αντιστοιχεί στον αριθμό της memory bank στην οποία είναι συνδεδεμένοι γίνεται shift-in. Φαίνεται επιπλέον ο μηχανισμός με τον οποίο παράγονται οι κατάλληλοι δείκτες των permutations κάθε στιγμή. Χρησιμοποιείται ένας βοηθητικός counter, vcount, πλάτους m=2 ψηφίων, ο οποίος είναι σχεδιασμένος με τέτοιο τρόπο ώστε σε κάθε stage i να μετράει με τα i+1 most significant ψηφία του. Έτσι, τα 2 most significant ψηφία του ταυτίζονται πάντα με τα i+1 και i ψηφία του butterfly control counter τα οποία ελέγχουν τα output και input permutation networks αντίστοιχα. Η δομή του φαίνεται στην Εικόνα 6. Εικόνα 5. Μονάδα ελέγχου της αρχιτεκτονικής. Τα πλάτη εκφράζονται σε radix-b ψηφία εκτός από όπου αναφέρονται bits. 9

10 10 Εικόνα 4. Data flow διάγραμμα για b=8 και Ν=64

11 Εικόνα 6. Εσωτερική οργάνωση του vcount Τα permutation networks τα οποία υλοποιούν τα αντίστοιχα permutations παρουσιάζονται στην Εικόνα 7. Αποτελούνται από log2b = 3 υποσυστήματα multiplexers καθένα από τα οποία αποτελείται με τη σειρά του από, πλήθους b=8, πλάτους log2b bits, 2-input multiplexers. Κάθε στιγμή, το input permutation network ελέγχεται από τον αντίστοιχο input permutation δείκτη με τέτοιο τρόπο ώστε κάθε bit του ψηφίου του δείκτη να ελέγχει και ένα υποσύστημα από multiplexers. Έτσι, το most significant bit ελέγχει τους multiplexers του 1 ου υποσυστήματος ενώ το least significant bit αυτούς του τελευταίου υποσυστήματος. Ομοίως λειτουργεί και το output permutation network ελεγχόμενο από το ψηφίο του output permutation δείκτη. Τέλος, φαίνεται πως υπολογίζονται και οι διευθύνσεις των κατάλληλων twiddle factors κάθε στιγμή. Τα m-1 least significant ψηφία του vcount υποβάλλονται σε bitwise XOR με τα ίδια ψηφία shift left κατά ένα ψηφίο. Εικόνα 7. Διασύνδεση ανάμεσα στις μνήμες και τις εισόδους και εξόδους του butterfly processor 11

12 Η υλοποίηση της παραπάνω αρχιτεκτονικής έγινε σε γλώσσα περιγραφής υλικού VHDL, ενώ η επαλήθευση των αποτελεσμάτων έγινε με πρόγραμμα που αναπτύχθηκε στην πλατφόρμα Matlab. H παρουσίαση του κώδικα και στις δύο περιπτώσεις γίνεται στο Παράρτημα. Ως σήμα εισόδου εφαρμόστηκε μια υπέρθεση δύο ημιτόνων 5 και 20 Hz οπότε και παρουσιάζονται τα αντίστοιχα αποτελέσματα που προέκυψαν τόσο από την αρχιτεκτονική που μελετήθηκε όσο και από τον DIT FFT αλγόριθμο που υλοποιήθηκε στο Matlab (Εικόνα 8). Εικόνα 8. Αποτελέσματα του DIT FFT αλγόριθμου και της αρχιτεκτονικής που μελετήθηκε όπου φαίνεται και η ακρίβεια που επιτεύχθηκε. 12

13 Εικόνα 9. RTL Schematic της αρχιτεκτονικής 13

14 4. Πηγές 1. Discrete-Time Signal Processing Alan V. Oppenheim, Ronald W.Shcafer 2. Digital Signal Processing Alan V. Oppenheim, Ronald W.Shcafer 3. Digital Signal Processing with Field Programmable Gate Arrays U.Meyer-Baese 4. Fast Algorithms for Digital Signal Processing Blahut R.E. 5. Parallel Memory Accessing in FFT Processors K. Nakos, D. Reisis and N. Vlassopoulos 14

15 Παράρτημα Radix-8 Butterfly Processor library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.NUMERIC_STD.ALL; entity butterfly_processor_radix8_complex is port ( clk : in std_logic; i0 : in std_logic_vector (111 downto 0); i1 : in std_logic_vector (111 downto 0); i2 : in std_logic_vector (111 downto 0); i3 : in std_logic_vector (111 downto 0); i4 : in std_logic_vector (111 downto 0); i5 : in std_logic_vector (111 downto 0); i6 : in std_logic_vector (111 downto 0); i7 : in std_logic_vector (111 downto 0); twi : in std_logic_vector (895 downto 0); o0 : out std_logic_vector (111 downto 0); o1 : out std_logic_vector (111 downto 0); o2 : out std_logic_vector (111 downto 0); o3 : out std_logic_vector (111 downto 0); o4 : out std_logic_vector (111 downto 0); o5 : out std_logic_vector (111 downto 0); o6 : out std_logic_vector (111 downto 0); o7 : out std_logic_vector (111 downto 0); 15

16 ro0 : out std_logic_vector (55 downto 0); ro1 : out std_logic_vector (55 downto 0); ro2 : out std_logic_vector (55 downto 0); ro3 : out std_logic_vector (55 downto 0); ro4 : out std_logic_vector (55 downto 0); ro5 : out std_logic_vector (55 downto 0); ro6 : out std_logic_vector (55 downto 0); ro7 : out std_logic_vector (55 downto 0); io0 : out std_logic_vector (55 downto 0); io1 : out std_logic_vector (55 downto 0); io2 : out std_logic_vector (55 downto 0); io3 : out std_logic_vector (55 downto 0); io4 : out std_logic_vector (55 downto 0); io5 : out std_logic_vector (55 downto 0); io6 : out std_logic_vector (55 downto 0); io7 : out std_logic_vector (55 downto 0) ); end butterfly_processor_radix8_complex; architecture Behavioral of butterfly_processor_radix8_complex is -- SIGNALS!!! type input_real is array (0 to 7) of signed(55 downto 0); type input_imaginary is array (0 to 7) of signed(55 downto 0); type twiddles is array (0 to 7) of std_logic_vector(111 downto 0); 16

17 type twiddles_real is array (0 to 7) of signed (55 downto 0); type twiddles_imaginary is array (0 to 7) of signed (55 downto 0); signal in_re : input_real; signal in_im : input_imaginary; type shifted_out is array (0 to 7) of signed (167 downto 0); signal sout_re : shifted_out; signal sout_im : shifted_out; signal out_re0 : signed (167 downto 0); signal out_re1 : signed (167 downto 0); signal out_re2 : signed (167 downto 0); signal out_re3 : signed (167 downto 0); signal out_re4 : signed (167 downto 0); signal out_re5 : signed (167 downto 0); signal out_re6 : signed (167 downto 0); signal out_re7 : signed (167 downto 0); signal out_im0 : signed (167 downto 0); signal out_im1 : signed (167 downto 0); signal out_im2 : signed (167 downto 0); signal out_im3 : signed (167 downto 0); signal out_im4 : signed (167 downto 0); signal out_im5 : signed (167 downto 0); signal out_im6 : signed (167 downto 0); signal out_im7 : signed (167 downto 0); signal twids : twiddles; 17

18 signal twi_re : twiddles_real; signal twi_im : twiddles_imaginary; signal m : signed (55 downto 0); signal m1 : signed (55 downto 0); type intermediate_real is array (0 to 7) of signed (111 downto 0); type intermediate_imaginary is array (0 to 7) of signed (111 downto 0); signal inter_real : intermediate_real; signal inter_imag : intermediate_imaginary; begin m <= to_signed(23170,56); m1 <= to_signed(32768,56); in_re(0) <= signed(i0(111 downto 56)); in_re(1) <= signed(i1(111 downto 56)); in_re(2) <= signed(i2(111 downto 56)); in_re(3) <= signed(i3(111 downto 56)); in_re(4) <= signed(i4(111 downto 56)); in_re(5) <= signed(i5(111 downto 56)); in_re(6) <= signed(i6(111 downto 56)); in_re(7) <= signed(i7(111 downto 56)); in_im(0) <= signed(i0(55 downto 0)); in_im(1) <= signed(i1(55 downto 0)); in_im(2) <= signed(i2(55 downto 0)); in_im(3) <= signed(i3(55 downto 0)); 18

19 in_im(4) <= signed(i4(55 downto 0)); in_im(5) <= signed(i5(55 downto 0)); in_im(6) <= signed(i6(55 downto 0)); in_im(7) <= signed(i7(55 downto 0)); twids(0) <= twi(895 downto 784); twids(1) <= twi(783 downto 672); twids(2) <= twi(671 downto 560); twids(3) <= twi(559 downto 448); twids(4) <= twi(447 downto 336); twids(5) <= twi(335 downto 224); twids(6) <= twi(223 downto 112); twids(7) <= twi(111 downto 0); twi_re(0) <= signed(twids(0) (111 downto 56)); twi_re(1) <= signed(twids(1) (111 downto 56)); twi_re(2) <= signed(twids(2) (111 downto 56)); twi_re(3) <= signed(twids(3) (111 downto 56)); twi_re(4) <= signed(twids(4) (111 downto 56)); twi_re(5) <= signed(twids(5) (111 downto 56)); twi_re(6) <= signed(twids(6) (111 downto 56)); twi_re(7) <= signed(twids(7) (111 downto 56)); twi_im(0) <= signed(twids(0) (55 downto 0)); twi_im(1) <= signed(twids(1) (55 downto 0)); twi_im(2) <= signed(twids(2) (55 downto 0)); twi_im(3) <= signed(twids(3) (55 downto 0)); twi_im(4) <= signed(twids(4) (55 downto 0)); twi_im(5) <= signed(twids(5) (55 downto 0)); twi_im(6) <= signed(twids(6) (55 downto 0)); 19

20 twi_im(7) <= signed(twids(7) (55 downto 0)); inter_real(0) <= in_re(0)*twi_re(0) - in_im(0)*twi_im(0); inter_real(1) <= in_re(1)*twi_re(1) - in_im(1)*twi_im(1); inter_real(2) <= in_re(2)*twi_re(2) - in_im(2)*twi_im(2); inter_real(3) <= in_re(3)*twi_re(3) - in_im(3)*twi_im(3); inter_real(4) <= in_re(4)*twi_re(4) - in_im(4)*twi_im(4); inter_real(5) <= in_re(5)*twi_re(5) - in_im(5)*twi_im(5); inter_real(6) <= in_re(6)*twi_re(6) - in_im(6)*twi_im(6); inter_real(7) <= in_re(7)*twi_re(7) - in_im(7)*twi_im(7); inter_imag(0) <= in_re(0)*twi_im(0) + in_im(0)*twi_re(0); inter_imag(1) <= in_re(1)*twi_im(1) + in_im(1)*twi_re(1); inter_imag(2) <= in_re(2)*twi_im(2) + in_im(2)*twi_re(2); inter_imag(3) <= in_re(3)*twi_im(3) + in_im(3)*twi_re(3); inter_imag(4) <= in_re(4)*twi_im(4) + in_im(4)*twi_re(4); inter_imag(5) <= in_re(5)*twi_im(5) + in_im(5)*twi_re(5); inter_imag(6) <= in_re(6)*twi_im(6) + in_im(6)*twi_re(6); inter_imag(7) <= in_re(7)*twi_im(7) + in_im(7)*twi_re(7); out_re0 <= m1*inter_real(0) + m1*inter_real(1) + m1*inter_real(2) + m1*inter_real(3) + m1*inter_real(4) + m1*inter_real(5) + m1*inter_real(6) + m1*inter_real(7); out_re1 <= m1*inter_real(0) + m*inter_real(1) + m*inter_imag(1) + m1*inter_imag(2) - m*inter_real(3) + m*inter_imag(3) - m1*inter_real(4) - m*inter_real(5) - m*inter_imag(5) - m1*inter_imag(6) + m*inter_real(7) - m*inter_imag(7); out_re2 <= m1*inter_real(0) + m1*inter_imag(1) - m1*inter_real(2) - m1*inter_imag(3) + m1*inter_real(4) + m1*inter_imag(5) - m1*inter_real(6) - m1*inter_imag(7); out_re3 <= m1*inter_real(0) - m*inter_real(1) + m*inter_imag(1) - m1*inter_imag(2) + m*inter_real(3) + m*inter_imag(3) - m1*inter_real(4) + m*inter_real(5) - m*inter_imag(5) + m1*inter_imag(6) - m*inter_real(7) - m*inter_imag(7); 20

21 out_re4 <= m1*inter_real(0) - m1*inter_real(1) + m1*inter_real(2) - m1*inter_real(3) + m1*inter_real(4) - m1*inter_real(5) + m1*inter_real(6) - m1*inter_real(7); out_re5 <= m1*inter_real(0) - m*inter_real(1) - m*inter_imag(1) + m1*inter_imag(2) + m*inter_real(3) - m*inter_imag(3) - m1*inter_real(4) + m*inter_real(5) + m*inter_imag(5) - m1*inter_imag(6) - m*inter_real(7) + m*inter_imag(7); out_re6 <= m1*inter_real(0) - m1*inter_imag(1) - m1*inter_real(2) + m1*inter_imag(3) + m1*inter_real(4) - m1*inter_imag(5) - m1*inter_real(6) + m1*inter_imag(7); out_re7 <= m1*inter_real(0) + m*inter_real(1) - m*inter_imag(1) - m1*inter_imag(2) - m*inter_real(3) - m*inter_imag(3) - m1*inter_real(4) - m*inter_real(5) + m*inter_imag(5) + m1*inter_imag(6) + m*inter_real(7) + m*inter_imag(7); out_im0 <= m1*inter_imag(0) + m1*inter_imag(1) + m1*inter_imag(2) + m1*inter_imag(3) + m1*inter_imag(4) + m1*inter_imag(5) + m1*inter_imag(6) + m1*inter_imag(7); out_im1 <= m1*inter_imag(0) + m*inter_imag(1) - m*inter_real(1) - m1*inter_real(2) - m*inter_imag(3) - m*inter_real(3) - m1*inter_imag(4) - m*inter_imag(5) + m*inter_real(5) + m1*inter_real(6) + m*inter_imag(7) + m*inter_real(7); out_im2 <= m1*inter_imag(0) - m1*inter_real(1) - m1*inter_imag(2) + m1*inter_real(3) + m1*inter_imag(4) - m1*inter_real(5) - m1*inter_imag(6) + m1*inter_real(7); out_im3 <= m1*inter_imag(0) - m*inter_imag(1) - m*inter_real(1) + m1*inter_real(2) + m*inter_imag(3) - m*inter_real(3) - m1*inter_imag(4) + m*inter_imag(5) + m*inter_real(5) - m1*inter_real(6) - m*inter_imag(7) + m*inter_real(7); out_im4 <= m1*inter_imag(0) - m1*inter_imag(1) + m1*inter_imag(2) - m1*inter_imag(3) + m1*inter_imag(4) - m1*inter_imag(5) + m1*inter_imag(6) - m1*inter_imag(7); out_im5 <= m1*inter_imag(0) - m*inter_imag(1) + m*inter_real(1) - m1*inter_real(2) + m*inter_imag(3) + m*inter_real(3) - m1*inter_imag(4) + m*inter_imag(5) - m*inter_real(5) + m1*inter_real(6) - m*inter_imag(7) - m*inter_real(7); out_im6 <= m1*inter_imag(0) + m1*inter_real(1) - m1*inter_imag(2) - m1*inter_real(3) + m1*inter_imag(4) + m1*inter_real(5) - m1*inter_imag(6) - m1*inter_real(7); out_im7 <= m1*inter_imag(0) + m*inter_imag(1) + m*inter_real(1) + m1*inter_real(2) - m*inter_imag(3) + m*inter_real(3) - m1*inter_imag(4) - m*inter_imag(5) - m*inter_real(5) - m1*inter_real(6) + m*inter_imag(7) - m*inter_real(7); 21

22 sout_re(0) <= out_re0 srl 30; sout_re(1) <= out_re1 srl 30; sout_re(2) <= out_re2 srl 30; sout_re(3) <= out_re3 srl 30; sout_re(4) <= out_re4 srl 30; sout_re(5) <= out_re5 srl 30; sout_re(6) <= out_re6 srl 30; sout_re(7) <= out_re7 srl 30; sout_im(0) <= out_im0 srl 30; sout_im(1) <= out_im1 srl 30; sout_im(2) <= out_im2 srl 30; sout_im(3) <= out_im3 srl 30; sout_im(4) <= out_im4 srl 30; sout_im(5) <= out_im5 srl 30; sout_im(6) <= out_im6 srl 30; sout_im(7) <= out_im7 srl 30; o0 (111 downto 56) <= std_logic_vector(sout_re(0)(55 downto 0)); o1 (111 downto 56) <= std_logic_vector(sout_re(1)(55 downto 0)); o2 (111 downto 56) <= std_logic_vector(sout_re(2)(55 downto 0)); o3 (111 downto 56) <= std_logic_vector(sout_re(3)(55 downto 0)); o4 (111 downto 56) <= std_logic_vector(sout_re(4)(55 downto 0)); o5 (111 downto 56) <= std_logic_vector(sout_re(5)(55 downto 0)); o6 (111 downto 56) <= std_logic_vector(sout_re(6)(55 downto 0)); o7 (111 downto 56) <= std_logic_vector(sout_re(7)(55 downto 0)); o0 (55 downto 0) <= std_logic_vector(sout_im(0)(55 downto 0)); o1 (55 downto 0) <= std_logic_vector(sout_im(1)(55 downto 0)); 22

23 o2 (55 downto 0) <= std_logic_vector(sout_im(2)(55 downto 0)); o3 (55 downto 0) <= std_logic_vector(sout_im(3)(55 downto 0)); o4 (55 downto 0) <= std_logic_vector(sout_im(4)(55 downto 0)); o5 (55 downto 0) <= std_logic_vector(sout_im(5)(55 downto 0)); o6 (55 downto 0) <= std_logic_vector(sout_im(6)(55 downto 0)); o7 (55 downto 0) <= std_logic_vector(sout_im(7)(55 downto 0)); --FOR TESTING ro0 (55 downto 0) <= std_logic_vector(sout_re(0)(55 downto 0)); ro1 (55 downto 0) <= std_logic_vector(sout_re(1)(55 downto 0)); ro2 (55 downto 0) <= std_logic_vector(sout_re(2)(55 downto 0)); ro3 (55 downto 0) <= std_logic_vector(sout_re(3)(55 downto 0)); ro4 (55 downto 0) <= std_logic_vector(sout_re(4)(55 downto 0)); ro5 (55 downto 0) <= std_logic_vector(sout_re(5)(55 downto 0)); ro6 (55 downto 0) <= std_logic_vector(sout_re(6)(55 downto 0)); ro7 (55 downto 0) <= std_logic_vector(sout_re(7)(55 downto 0)); io0 (55 downto 0) <= std_logic_vector(sout_im(0)(55 downto 0)); io1 (55 downto 0) <= std_logic_vector(sout_im(1)(55 downto 0)); io2 (55 downto 0) <= std_logic_vector(sout_im(2)(55 downto 0)); io3 (55 downto 0) <= std_logic_vector(sout_im(3)(55 downto 0)); io4 (55 downto 0) <= std_logic_vector(sout_im(4)(55 downto 0)); io5 (55 downto 0) <= std_logic_vector(sout_im(5)(55 downto 0)); io6 (55 downto 0) <= std_logic_vector(sout_im(6)(55 downto 0)); io7 (55 downto 0) <= std_logic_vector(sout_im(7)(55 downto 0)); end Behavioral; 23

24 Control Unit library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity control_unit is port ( clk : in std_logic; ab0 : out std_logic_vector (2 downto 0); ab1 : out std_logic_vector (2 downto 0); ab2 : out std_logic_vector (2 downto 0); ab3 : out std_logic_vector (2 downto 0); ab4 : out std_logic_vector (2 downto 0); ab5 : out std_logic_vector (2 downto 0); ab6 : out std_logic_vector (2 downto 0); ab7 : out std_logic_vector (2 downto 0); ip : out std_logic_vector (2 downto 0); op : out std_logic_vector (2 downto 0); tw : out std_logic_vector (2 downto 0); vcountout : out std_logic_vector (5 downto 0) --FOR TESTING ONLY ); end control_unit; architecture Behavioral of control_unit is -- COMPONENTS!!! component vcounter_6bit is port ( clk : in std_logic; en_flg : in std_logic; count : out std_logic_vector (5 downto 0) ); end component; component counter_3bit is port ( clk : in std_logic; en_flg : out std_logic; count : out std_logic_vector (2 downto 0) ); end component; component register_1bit is port ( 24

25 I : in std_logic; O : out std_logic; clk : in std_logic ); end component; component register_3bit is port ( I : in std_logic_vector (2 downto 0); O : out std_logic_vector (2 downto 0); clk : in std_logic ); end component; -- SIGNALS!!! type bank_register_in is array (1 to 7) of std_logic_vector (2 downto 0); type bank_register_out is array (1 to 7) of std_logic_vector (2 downto 0); signal bri : bank_register_in; signal bro : bank_register_out; signal main_counter_en : std_logic :='0'; signal main_counter_count : std_logic_vector (2 downto 0):="000"; signal v_counter_count : std_logic_vector (5 downto 0):="000000"; signal vcri : std_logic :='1'; signal vcro : std_logic :='0'; signal lsd : std_logic_vector (2 downto 0); signal msd : std_logic_vector (2 downto 0); begin MC : counter_3bit port map (clk, main_counter_en, main_counter_count); bri(1)<="001"; bri(2)<="010"; bri(3)<="011"; bri(4)<="100"; bri(5)<="101"; bri(6)<="110"; bri(7)<="111"; 25

26 RB1 : register_3bit port map(bri(1),bro(1),main_counter_en); RB2 : register_3bit port map(bri(2),bro(2),main_counter_en); RB3 : register_3bit port map(bri(3),bro(3),main_counter_en); RB4 : register_3bit port map(bri(4),bro(4),main_counter_en); RB5 : register_3bit port map(bri(5),bro(5),main_counter_en); RB6 : register_3bit port map(bri(6),bro(6),main_counter_en); RB7 : register_3bit port map(bri(7),bro(7),main_counter_en); ab0 <= main_counter_count; ab1 <= main_counter_count xor bro(1); ab2 <= main_counter_count xor bro(2); ab3 <= main_counter_count xor bro(3); ab4 <= main_counter_count xor bro(4); ab5 <= main_counter_count xor bro(5); ab6 <= main_counter_count xor bro(6); ab7 <= main_counter_count xor bro(7); VCR : register_1bit port map (vcri,vcro,main_counter_en); VC : vcounter_6bit port map(clk,vcro,v_counter_count); vcountout <= v_counter_count; --- FOR TESTING ONLY lsd <= v_counter_count (2 downto 0); msd <= v_counter_count (5 downto 3); ip <= lsd; op <= lsd xor msd; tw <= lsd; end Behavioral; Input/Output Permutation Network library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity perm_interconnection is port ( in0 : in std_logic_vector (111 downto 0); 26

27 in1 : in std_logic_vector (111 downto 0); in2 : in std_logic_vector (111 downto 0); in3 : in std_logic_vector (111 downto 0); in4 : in std_logic_vector (111 downto 0); in5 : in std_logic_vector (111 downto 0); in6 : in std_logic_vector (111 downto 0); in7 : in std_logic_vector (111 downto 0); out0 : out std_logic_vector (111 downto 0); out1 : out std_logic_vector (111 downto 0); out2 : out std_logic_vector (111 downto 0); out3 : out std_logic_vector (111 downto 0); out4 : out std_logic_vector (111 downto 0); out5 : out std_logic_vector (111 downto 0); out6 : out std_logic_vector (111 downto 0); out7 : out std_logic_vector (111 downto 0); s2 : in std_logic; s1 : in std_logic; s0 : in std_logic ); end perm_interconnection; architecture Behavioral of perm_interconnection is --COMPONENTS!!! component mux_2to1_32bit is port ( I0 : in std_logic_vector (111 downto 0); I1 : in std_logic_vector (111 downto 0); S : in std_logic; O : out std_logic_vector (111 downto 0) ); end component; --SIGNALS!!! type mux_array_out is array (0 to 7) of std_logic_vector (111 downto 0); signal s2_mo : mux_array_out; signal s1_mo : mux_array_out; --signal s0_mo : mux_array_out; begin 27

28 M20 : mux_2to1_32bit port map (in0, in4, s2, s2_mo(0)); M21 : mux_2to1_32bit port map (in1, in5, s2, s2_mo(1)); M22 : mux_2to1_32bit port map (in2, in6, s2, s2_mo(2)); M23 : mux_2to1_32bit port map (in3, in7, s2, s2_mo(3)); M24 : mux_2to1_32bit port map (in4, in0, s2, s2_mo(4)); M25 : mux_2to1_32bit port map (in5, in1, s2, s2_mo(5)); M26 : mux_2to1_32bit port map (in6, in2, s2, s2_mo(6)); M27 : mux_2to1_32bit port map (in7, in3, s2, s2_mo(7)); M10 : mux_2to1_32bit port map (s2_mo(0), s2_mo(2), s1, s1_mo(0)); M11 : mux_2to1_32bit port map (s2_mo(1), s2_mo(3), s1, s1_mo(1)); M12 : mux_2to1_32bit port map (s2_mo(2), s2_mo(0), s1, s1_mo(2)); M13 : mux_2to1_32bit port map (s2_mo(3), s2_mo(1), s1, s1_mo(3)); M14 : mux_2to1_32bit port map (s2_mo(4), s2_mo(6), s1, s1_mo(4)); M15 : mux_2to1_32bit port map (s2_mo(5), s2_mo(7), s1, s1_mo(5)); M16 : mux_2to1_32bit port map (s2_mo(6), s2_mo(4), s1, s1_mo(6)); M17 : mux_2to1_32bit port map (s2_mo(7), s2_mo(5), s1, s1_mo(7)); M00 : mux_2to1_32bit port map (s1_mo(0), s1_mo(1), s0, out0); M01 : mux_2to1_32bit port map (s1_mo(1), s1_mo(0), s0, out1); M02 : mux_2to1_32bit port map (s1_mo(2), s1_mo(3), s0, out2); M03 : mux_2to1_32bit port map (s1_mo(3), s1_mo(2), s0, out3); M04 : mux_2to1_32bit port map (s1_mo(4), s1_mo(5), s0, out4); M05 : mux_2to1_32bit port map (s1_mo(5), s1_mo(4), s0, out5); M06 : mux_2to1_32bit port map (s1_mo(6), s1_mo(7), s0, out6); M07 : mux_2to1_32bit port map (s1_mo(7), s1_mo(6), s0, out7); end Behavioral; 8 Banks RAM library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.NUMERIC_STD.ALL; use std.textio.all; use ieee.std_logic_textio.all; entity ram2 is port( clk : in std_logic; wr_en : in std_logic; --for all banks rd_addr0 : in std_logic_vector(3-1 downto 0); rd_addr1 : in std_logic_vector(3-1 downto 0); rd_addr2 : in std_logic_vector(3-1 downto 0); rd_addr3 : in std_logic_vector(3-1 downto 0); 28

29 rd_addr4 : in std_logic_vector(3-1 downto 0); rd_addr5 : in std_logic_vector(3-1 downto 0); rd_addr6 : in std_logic_vector(3-1 downto 0); rd_addr7 : in std_logic_vector(3-1 downto 0); wr_addr0 : in std_logic_vector(3-1 downto 0); wr_addr1 : in std_logic_vector(3-1 downto 0); wr_addr2 : in std_logic_vector(3-1 downto 0); wr_addr3 : in std_logic_vector(3-1 downto 0); wr_addr4 : in std_logic_vector(3-1 downto 0); wr_addr5 : in std_logic_vector(3-1 downto 0); wr_addr6 : in std_logic_vector(3-1 downto 0); wr_addr7 : in std_logic_vector(3-1 downto 0); data_in0 : in std_logic_vector(111 downto 0); data_in1 : in std_logic_vector(111 downto 0); data_in2 : in std_logic_vector(111 downto 0); data_in3 : in std_logic_vector(111 downto 0); data_in4 : in std_logic_vector(111 downto 0); data_in5 : in std_logic_vector(111 downto 0); data_in6 : in std_logic_vector(111 downto 0); data_in7 : in std_logic_vector(111 downto 0); data_out0 : out std_logic_vector(111 downto 0); data_out1 : out std_logic_vector(111 downto 0); data_out2 : out std_logic_vector(111 downto 0); data_out3 : out std_logic_vector(111 downto 0); data_out4 : out std_logic_vector(111 downto 0); data_out5 : out std_logic_vector(111 downto 0); data_out6 : out std_logic_vector(111 downto 0); data_out7 : out std_logic_vector(111 downto 0) ); end ram2; architecture Behavioral of ram2 is type ram_type is array (0 to 7) of std_logic_vector(111 downto 0); initialize memory from file impure function InitRamFromFile (RamFileName : in string) return ram_type is FILE RamFile : text is in RamFileName; variable RamFileLine : line; variable RAM : ram_type; begin for i in 0 to 7 loop 29

30 readline(ramfile, RamFileLine); hread (RamFileLine, RAM(i)); end loop; return RAM; end function; signal RAM0 : ram_type:=initramfromfile("ram0renew15.dat"); signal RAM1 : ram_type:=initramfromfile("ram1renew15.dat"); signal RAM2 : ram_type:=initramfromfile("ram2renew15.dat"); signal RAM3 : ram_type:=initramfromfile("ram3renew15.dat"); signal RAM4 : ram_type:=initramfromfile("ram4renew15.dat"); signal RAM5 : ram_type:=initramfromfile("ram5renew15.dat"); signal RAM6 : ram_type:=initramfromfile("ram6renew15.dat"); signal RAM7 : ram_type:=initramfromfile("ram7renew15.dat"); begin process(clk) begin if rising_edge(clk) then if wr_en = '1' then RAM0(to_integer(unsigned(rd_addr0))) <= data_in0; --ekana to wr->rd RAM1(to_integer(unsigned(rd_addr1))) <= data_in1; RAM2(to_integer(unsigned(rd_addr2))) <= data_in2; RAM3(to_integer(unsigned(rd_addr3))) <= data_in3; RAM4(to_integer(unsigned(rd_addr4))) <= data_in4; RAM5(to_integer(unsigned(rd_addr5))) <= data_in5; RAM6(to_integer(unsigned(rd_addr6))) <= data_in6; RAM7(to_integer(unsigned(rd_addr7))) <= data_in7; end if; end if; end process; -- read outside process -- distributed ram data_out0 <= RAM0(to_integer(unsigned(rd_addr0))); 30

31 data_out1 <= RAM1(to_integer(unsigned(rd_addr1))); data_out2 <= RAM2(to_integer(unsigned(rd_addr2))); data_out3 <= RAM3(to_integer(unsigned(rd_addr3))); data_out4 <= RAM4(to_integer(unsigned(rd_addr4))); data_out5 <= RAM5(to_integer(unsigned(rd_addr5))); data_out6 <= RAM6(to_integer(unsigned(rd_addr6))); data_out7 <= RAM7(to_integer(unsigned(rd_addr7))); end Behavioral; Twiddle Factors ROM library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.NUMERIC_STD.ALL; use std.textio.all; use ieee.std_logic_textio.all; entity rom is port( ); clk : in std_logic; --rd_en : in std_logic; rd_addr : in std_logic_vector(2 downto 0); data_out : out std_logic_vector(895 downto 0) end rom; architecture Behavioral of rom is type rom_type is array (0 to 7) of std_logic_vector(895 downto 0); signal ROM1 : rom_type := (x" _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ", x" _ _ f62_fffffffffff374 _ d8a_ffffffffffe707_ a7d_ffffffffffdad8_ _ffffffffffcf04_ e3_ffffffffffc3a9_ a6e_fffffff fffb8e3_ f2_ffffffffffaecc", x" _ _ d8a_ffffffffffe707 _ _ffffffffffcf04_ a6e_ffffffffffb8e3_

32 05a82_ffffffffffa57e_ d_ffffffffff9592_ fc_fffffff fff89be_ f9_ffffffffff8276", x" _ _ a7d_ffffffffffdad8 _ a6e_ffffffffffb8e3_ _ffffffffff9d0e_ fc_ffffffffff89be_ c8c_ffffffffff809e_ffffffffffe707_ffffffffff8 276_ffffffffffc3a9_ffffffffff8f1d", x" _ _ _ffffffffffcf04 _ a82_ffffffffffa57e_ fc_ffffffffff89be_ _ffffffffff8000_ffffffffffcf04_ffffffffff89be_ffffffffffa57e_ffffffffffa57e_ ffffffffff89be_ffffffffffcf04", x" _ _ e3_ffffffffffc3a9 _ d_ffffffffff9592_ c8c_ffffffffff809e_ffffffffffcf0 4_ffffffffff89be_ffffffffff9d0e_ffffffffffaecc_ffffffffff8276_ffffffffffe707_fffff fffff8583_ ", x" _ _ a6e_ffffffffffb8e3 _ fc_ffffffffff89be_ffffffffffe707_ffffffffff8276_ffffffffffa57e_ff ffffffffa57e_ffffffffff8276_ffffffffffe707_ffffffffff89be_ fc_fffff fffffb8e3_ a6e", x" _ _ f2_ffffffffffaecc _ f9_ffffffffff8276_ffffffffffc3a9_ffffffffff8f1d_ffffffffff89be_ff ffffffffcf04_ffffffffff8583_ _ffffffffffb8e3_ a6e_ c8c_ f62"); begin data_out <= ROM1(to_integer(unsigned(rd_addr))); end Behavioral; Matlab Script close all; clear all; clc; %% INPUT SIGNAL s1=cos(2*pi*5*linspace(0,1,64)); 32

33 s2=cos(2*pi*20*linspace(0,1,64)); s=s1+s2; f=linspace(-64/2,64/2,64); %% RADIX 8 TWIDDLES ARRAY AND 64 POINT TWIDDLES n=0:1:7; k=0:1:7; w0=exp(-2*pi*i*k(1)*n/8); w1=exp(-2*pi*i*k(2)*n/8); w2=exp(-2*pi*i*k(3)*n/8); w3=exp(-2*pi*i*k(4)*n/8); w4=exp(-2*pi*i*k(5)*n/8); w5=exp(-2*pi*i*k(6)*n/8); w6=exp(-2*pi*i*k(7)*n/8); w7=exp(-2*pi*i*k(8)*n/8); w=[w0;w1;w2;w3;w4;w5;w6;w7]; dit_tw0 = exp(-2*pi*i*k(1)*n/64); dit_tw1 = exp(-2*pi*i*k(2)*n/64); dit_tw2 = exp(-2*pi*i*k(3)*n/64); dit_tw3 = exp(-2*pi*i*k(4)*n/64); dit_tw4 = exp(-2*pi*i*k(5)*n/64); dit_tw5 = exp(-2*pi*i*k(6)*n/64); dit_tw6 = exp(-2*pi*i*k(7)*n/64); dit_tw7 = exp(-2*pi*i*k(8)*n/64); %% STAGE 1/2 OF DIT FFT b00=w*[s(1);s(9);s(17);s(25);s(33);s(41);s(49);s(57)]; %% ALGORITHM b01=w*[s(2);s(10);s(18);s(26);s(34);s(42);s(50);s(58)]; b02=w*[s(3);s(11);s(19);s(27);s(35);s(43);s(51);s(59)]; b03=w*[s(4);s(12);s(20);s(28);s(36);s(44);s(52);s(60)]; b04=w*[s(5);s(13);s(21);s(29);s(37);s(45);s(53);s(61)]; b05=w*[s(6);s(14);s(22);s(30);s(38);s(46);s(54);s(62)]; b06=w*[s(7);s(15);s(23);s(31);s(39);s(47);s(55);s(63)]; b07=w*[s(8);s(16);s(24);s(32);s(40);s(48);s(56);s(64)]; mb00 = [ *i, *i, *i, *i, *i, *i, *i, *i].'./(2^15); % ARCHITECTURE mb01 = [ *i, *i, *i, *i, *i, *i, *i, *i ].'./(2^15); mb02 = [ *i, *i, *i, *i, *i, *i, *i, *i ].'./(2^15); 33

34 mb03 = [ *i, *i, *i, *i, *i, *i, *i, *i ].'./(2^15); mb04 = [ *i, *i, *i, *i, *i, *i, *i, *i ].'./(2^15); mb05 = [ *i, *i, *i, *i, *i, *i, *i, *i ].'./(2^15); mb06 = [ *i, *i, *i, *i, *i, *i, *i, *i].'./(2^15); mb07 = [ *i, *i, *i, *i, *i, *i, *i, *i].'./(2^15); %% STAGE 2/2 OF DIT FFT bi10=[b00(1);b01(1);b02(1);b03(1);b04(1);b05(1);b06(1);b07(1)].*dit_tw0.'; %% ALGORITHM bi11=[b00(2);b01(2);b02(2);b03(2);b04(2);b05(2);b06(2);b07(2)].*dit_tw1.'; bi12=[b00(3);b01(3);b02(3);b03(3);b04(3);b05(3);b06(3);b07(3)].*dit_tw2.'; bi13=[b00(4);b01(4);b02(4);b03(4);b04(4);b05(4);b06(4);b07(4)].*dit_tw3.'; bi14=[b00(5);b01(5);b02(5);b03(5);b04(5);b05(5);b06(5);b07(5)].*dit_tw4.'; bi15=[b00(6);b01(6);b02(6);b03(6);b04(6);b05(6);b06(6);b07(6)].*dit_tw5.'; bi16=[b00(7);b01(7);b02(7);b03(7);b04(7);b05(7);b06(7);b07(7)].*dit_tw6.'; bi17=[b00(8);b01(8);b02(8);b03(8);b04(8);b05(8);b06(8);b07(8)].*dit_tw7.'; b10=w*bi10; %% ALGORITHM b11=w*bi11; b12=w*bi12; b13=w*bi13; b14=w*bi14; b15=w*bi15; b16=w*bi16; b17=w*bi17; mb10 = [ *i, *i, *i, *i,0 + 0*i, *i, *i, *i ].'./(2^15); %ARCHITECTURE mb11 = [ *i, *i, *i, *i, *i, *i, *i, *i].'./(2^15); mb12 = [ *i, *i, *i, *i, *i, *i, *i, *i].'./(2^15); mb13 = [ *i, *i, *i, *i, *i, *i, *i, *i].'./(2^15); mb14 = [ *i, *i, *i, *i, *i, *i, *i, *i ].'./(2^15); 34

35 mb15 = [ *i, *i, *i, *i, *i, *i, *i, *i ].'./(2^15); mb16 = [ *i, *i, *i, *i, *i, *i, *i, *i].'./(2^15); mb17 = [ *i, *i, *i, *i, *i, *i, *i, *i].'./(2^15); %% DIT FFT "REVERSAL" dit_fft_out = [b10;b11;b12;b13;b14;b15;b16;b17].'; % FOR STAGE 2/2 dit_fft_out = [b00;b01;b02;b03;b04;b05;b06;b07].'; % FOR STAGE 1/2 dit_correct_out = digitrevorder(dit_fft_out,8); my_fft_out = [mb10;mb11;mb12;mb13;mb14;mb15;mb16;mb17].'; my_correct_out = digitrevorder(my_fft_out,8); %% ALGORITHM RESULTS & BUILT-IN ALGORITHM RESULTS & ARCHITECTURE RESULTS test_res = fftshift(abs(fft(s))); %BUILT-IN ALGORITHM RESULTS dit_actual_res = fftshift(abs(dit_correct_out)); % ALGORITHM RESULTS my_actual_res = fftshift(abs(my_correct_out)); % ARCHITECTURE RESULTS 35

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

ΑΣΚΗΣΗ 2: Σχεδίαση και προσομοίωση κυκλωμάτων καταχωρητών και μετρητών ΑΣΚΗΣΗ 2: Σχεδίαση και προσομοίωση κυκλωμάτων καταχωρητών και μετρητών Θέμα Β.1: Απλός καταχωρητής 1 bit (D Flip-Flop) preset D D Q Q clk clear Σχήμα 2.1: D Flip-Flop με εισόδους preset και clear Με τη

Διαβάστε περισσότερα

Library, package και subprograms

Library, package και subprograms Library, package και subprograms Libraries Packages Subprograms Procedures Functions Overloading Αριθμητικά πακέτα Type conversion Shift operators Παράδειγμα Library - Package Ασκήσεις-Προβλήματα 12/8/2009

Διαβάστε περισσότερα

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

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Ακολουθιακός Κώδικας «Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 Ακολουθιακός Κώδικας Παρασκευάς Κίτσος http://diceslab.cied.teiwest.gr Επίκουρος Καθηγητής Tμήμα Μηχανικών Πληροφορικής ΤΕ E-mail: pkitsos@teimes.gr

Διαβάστε περισσότερα

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

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Καταχωρητές 1 ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων Καταχωρητές Διδάσκουσα: Μαρία Κ. Μιχαήλ Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Περίληψη Καταχωρητές Παράλληλης Φόρτωσης Καταχωρητές

Διαβάστε περισσότερα

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

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 15: Καταχωρητές (Registers) ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 15: Καταχωρητές (Registers) ΧΑΡΗΣ ΘΕΟΧΑΡΙΔΗΣ Επίκουρος Καθηγητής, ΗΜΜΥ (ttheocharides@ucy.ac.cy) Περίληψη q Καταχωρητές Παράλληλης

Διαβάστε περισσότερα

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

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Προχωρημένα Θέματα Σχεδιασμού με VHDL «Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 Προχωρημένα Θέματα Σχεδιασμού με VHDL Παρασκευάς Κίτσος http://diceslab.cied.teiwest.gr Επίκουρος Καθηγητής Tμήμα Μηχανικών Πληροφορικής

Διαβάστε περισσότερα

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

Σχεδίαση Ψηφιακών Συστημάτων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Σχεδίαση Ψηφιακών Συστημάτων Ενότητα 4: Σχεδιασμός Σειριακού Αθροιστή Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Περίληψη. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο Παράδειγµα: Καταχωρητής 2-bit. Καταχωρητής 4-bit. Μνήµη Καταχωρητών

Περίληψη. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο Παράδειγµα: Καταχωρητής 2-bit. Καταχωρητής 4-bit. Μνήµη Καταχωρητών ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Κεφάλαιο 7 i: Καταχωρητές Περίληψη Καταχωρητές Παράλληλης Φόρτωσης Καταχωρητές Ολίσθησης Σειριακή Φόρτωση Σειριακή Ολίσθηση Καταχωρητές Ολίσθησης Παράλληλης Φόρτωσης

Διαβάστε περισσότερα

Structural VHDL. Structural VHDL

Structural VHDL. Structural VHDL Structural VHDL Παράδειγμα Multiplexer Component Component specification Port map command Unconnected outputs Unconnected inputs Generic map command Generate command Configuration Παράδειγμα 4-bit Adder

Διαβάστε περισσότερα

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

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Μηχανές Πεπερασμένων Καταστάσεων «Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 Μηχανές Πεπερασμένων Καταστάσεων Παρασκευάς Κίτσος http://diceslab.cied.teiwest.gr Επίκουρος Καθηγητής Tμήμα Μηχανικών Πληροφορικής ΤΕ

Διαβάστε περισσότερα

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

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος Εργαστήριο Οργάνωσης Η/Υ Δαδαλιάρης Αντώνιος dadaliaris@uth.gr Συνδυαστικό Κυκλωμα: Το κύκλωμα του οποίου οι έξοδοι εξαρτώνται αποκλειστικά από τις τρέχουσες εισόδους του. Ακολουθιακό Κύκλωμα: Το κύκλωμα

Διαβάστε περισσότερα

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

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Συντρέχων Κώδικας «Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 216-217 Συντρέχων Κώδικας Παρασκευάς Κίτσος http://diceslab.cied.teiwest.gr Επίκουρος Καθηγητής Tμήμα Μηχανικών Πληροφορικής ΤΕ E-mail: pkitsos@teimes.gr

Διαβάστε περισσότερα

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

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος Εργαστήριο Οργάνωσης Η/Υ Δαδαλιάρης Αντώνιος dadaliaris@uth.gr Ρόλος των γλωσσών περιγραφής υλικού σε μια τυπική ροή σχεδίασης: Documentation Simulation Synthesis Οι γλώσσες περιγραφής υλικού μπορούν να

Διαβάστε περισσότερα

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

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Πακέτα και Συστατικά Στοιχεία (Υποκυκλώματα) «Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 Πακέτα και Συστατικά Στοιχεία (Υποκυκλώματα) Παρασκευάς Κίτσος http://diceslab.cied.teiwest.gr Επίκουρος Καθηγητής Tμήμα Μηχανικών Πληροφορικής

Διαβάστε περισσότερα

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

Σχεδίαση Ψηφιακών Συστημάτων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Σχεδίαση Ψηφιακών Συστημάτων Ενότητα 2: Βασικές Μονάδες Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. Άδειες

Διαβάστε περισσότερα

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

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Τύποι Δεδομένων και Τελεστές «Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 Τύποι Δεδομένων και Τελεστές Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής Tμήμα Μηχανικών Πληροφορικής ΤΕ E-mail: pkitsos@teimes.gr Αντίρριο

Διαβάστε περισσότερα

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

Κυκλωμάτων» Χειμερινό εξάμηνο «Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 VHDL, Χαρακτηριστικά και τρόποι περιγραφής Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ http://diceslab.cied.teiwest.gr

Διαβάστε περισσότερα

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

Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ενότητα 3: Καταχωρητές - Απαριθμητές Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Συναρτήσεις, Διαδικασίες και Δομές Ελέγχου Λειτουργίας Κυκλωμάτων (testbenches) «Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 Συναρτήσεις, Διαδικασίες και Δομές Ελέγχου Λειτουργίας Κυκλωμάτων (testbenches) Παρασκευάς Κίτσος http://diceslab.cied.teiwest.gr Επίκουρος

Διαβάστε περισσότερα

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

Εργαστήριο Αρχιτεκτονικής Υπολογιστών Ι. Εισαγωγή στη VHDL Εργαστήριο Αρχιτεκτονικής Υπολογιστών Ι Εισαγωγή στη VHDL Εισαγωγή Very High Speed Integrated Circuits Hardware Description Language ιαφορές από γλώσσες προγραμματισμού: παράλληλη εκτέλεση εντολών προσδιορισμός

Διαβάστε περισσότερα

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

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος Εργαστήριο Οργάνωσης Η/Υ Δαδαλιάρης Αντώνιος dadaliaris@uth.gr Χρησιμοποιούμε τις μηχανές πεπερασμένων καταστάσεων (finite state machines FSMs) για την μοντελοποίηση της συμπεριφοράς ενός κυκλώματος, η

Διαβάστε περισσότερα

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

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος Εργαστήριο Οργάνωσης Η/Υ Δαδαλιάρης Αντώνιος dadaliaris@uth.gr Σχόλια: - - This is a single line comment - - There is no alternative way to write multi-line comments Αναγνωριστικά: Τα αναγνωριστικά

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εισαγωγή στη Γλώσσα VHDL Εισαγωγή στη Γλώσσα VHDL Παράδειγμα and3 Entity και Architecture Entity Entity - Παραδείγματα Architecture VHDL simulation παραδείγματος and3 Παράδειγμα NAND VHDL simulation παραδείγματος nand Boolean

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ. Ενότητα : ΤΑΧΥΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ. Ενότητα : ΤΑΧΥΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ Ενότητα : ΤΑΧΥΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER Aναστασία Βελώνη Τμήμα Η.Υ.Σ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

Μελέτη και σχεδίαση µιας υποτυπώδους κεντρικής µονάδας επεξεργασίας στα 32 µπιτ. ΤΕΙ ΚΡΗΤΗΣ / ΠΑΡΑΡΤΗΜΑ ΧΑΝΙΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ Μελέτη και σχεδίαση µιας υποτυπώδους κεντρικής µονάδας επεξεργασίας στα 32 µπιτ mode mode(0) ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Εµµανουήλ Καπαρού Επιβλέπων : ρ Μηχ Νικόλαος

Διαβάστε περισσότερα

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

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. VHDL για Ακολουθιακά Κυκλώματα 1 ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων VHDL για Σχεδιασμό Ακολουθιακών Κυκλωμάτων Διδάσκουσα: Μαρία Κ. Μιχαήλ Περίληψη VHDL Processes Εντολές If-Then Then-Else και CASE Περιγραφή Flip-Flop Flop με VHDL

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων Εισαγωγή στη VHDL Υλοποίηση στο Quartus Διδάσκων: Γιώργος Ζάγγουλος Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Ατζέντα 1. Στόχοι 3

Διαβάστε περισσότερα

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

VHDL για Σχεδιασµό Ακολουθιακών Κυκλωµάτων VHDL για Σχεδιασµό Ακολουθιακών Κυκλωµάτων Διδάσκουσα: Μαρία Κ. Μιχαήλ Πανεπιστήµιο Κύπρου Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών n VHDL Processes Περίληψη n Εντολές If-Then-Else και CASE

Διαβάστε περισσότερα

Εισαγωγή στη VHDL Υλοποίηση στο Quartus

Εισαγωγή στη VHDL Υλοποίηση στο Quartus ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων Εισαγωγή στη VHDL Υλοποίηση στο Quartus Διδάσκοντες: Δρ. Γιώργος Ζάγγουλος και Δρ. Παναγιώτα Μ. Δημοσθένους Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών

Διαβάστε περισσότερα

Σήματα και Συστήματα ΙΙ

Σήματα και Συστήματα ΙΙ Σήματα και Συστήματα ΙΙ Ενότητα 3: Διακριτός και Ταχύς Μετασχηματισμός Fourier (DTF & FFT) Α. Ν. Σκόδρας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Επιμέλεια: Αθανάσιος Ν. Σκόδρας, Καθηγητής

Διαβάστε περισσότερα

Πανεπιστήµιο Θεσσαλίας

Πανεπιστήµιο Θεσσαλίας Πανεπιστήµιο Θεσσαλίας ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΙΚΤΥΩΝ Τοµέας Υλικού και Αρχιτεκτονικής Υπολογιστών ΗΥ232 - Ψηφιακή Σχεδίαση µε CAD ΙΙ Design Flow Simulation - Synthesis

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Προσοµοίωση Συστηµάτων µε VHDL. (Peter Ashenden, The Students Guide to VHDL) Προσοµοίωση Συστηµάτων µε VHDL (Peter Ashenden, The Students Guide to VHDL) Κώδικας VHDL Περιβάλλον Σχεδίασης Αναλυτής ιαχειριστής Βιβλιοθήκης Σχεδίασης Προσοµοιωτής Αντίστροφος Αναλυτής Βιβλιοθήκη Σχεδίασης

Διαβάστε περισσότερα

Σύνθετοι τύποι και λειτουργίες. (Peter Ashenden, The Students Guide to VHDL)

Σύνθετοι τύποι και λειτουργίες. (Peter Ashenden, The Students Guide to VHDL) Σύνθετοι τύποι και λειτουργίες (Peter Ashenden, The Students Guide to VHDL) Πίνακες Πίνακες: Αποτελούνται από στοιχεία του ίδιου τύπου. Μονοδιάστατοι Πίνακες type table1 is array (0 to 7) of std_logic;

Διαβάστε περισσότερα

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

ΛΥΣΕΙΣ 3 ης ΓΡΑΠΤΗΣ ΕΡΓΑΣΙΑΣ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗ ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ ΕΡΓΑΣΤΗΡΙΟ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΛΥΣΕΙΣ 3 ης ΓΡΑΠΤΗΣ ΕΡΓΑΣΙΑΣ ΠΑΤΡΑ 2006 9.

Διαβάστε περισσότερα

ΔΙΑΚΡΙΤΟΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER - Discrete Fourier Transform - DFT -

ΔΙΑΚΡΙΤΟΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER - Discrete Fourier Transform - DFT - ΔΙΑΚΡΙΤΟΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER - Discrete Fourier Transform - DFT - Α. ΣΚΟΔΡΑΣ ΣΗΜΑΤΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΙΙ (22Y603) ΕΝΟΤΗΤΑ 4 ΔΙΑΛΕΞΗ 1 ΔΙΑΦΑΝΕΙΑ 1 Διαφορετικοί Τύποι Μετασχηµατισµού Fourier Α. ΣΚΟΔΡΑΣ

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Μοντελοποίηση Επιπέδου Πύλης. (Peter Ashenden, The Students Guide to VHDL)

Μοντελοποίηση Επιπέδου Πύλης. (Peter Ashenden, The Students Guide to VHDL) Μοντελοποίηση Επιπέδου Πύλης (Peter Ashenden, The Students Guide to VHDL) Πολλαπλά Επίπεδα Τιµών Η κατάσταση µίας γραµµής δεν είναι πάντα 0 ή 1. ιαµάχες οδηγούν σε απροσδιοριστία. Χρήση πολλαπλών επιπέδων

Διαβάστε περισσότερα

Kεφάλαιο 5 DFT- FFT ΔΙΑΚΡΙΤΟΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER DISCRETE FOURIER TRANSFORM 1/ 80. ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΣΗΜΑΤΟΣ DFT-FFT Σ.

Kεφάλαιο 5 DFT- FFT ΔΙΑΚΡΙΤΟΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER DISCRETE FOURIER TRANSFORM 1/ 80. ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΣΗΜΑΤΟΣ DFT-FFT Σ. Kεφάλαιο 5 DFT- FFT ΔΙΑΚΡΙΤΟΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER DISCRETE FOURIER TRASFORM / x X x X x X x 3 x DFT X 3 X x 5 X 5 x 6 X 6 x 7 X 7 / DFT - Ορισμοί αναφέρεται σε μία πεπερασμένου μήκους ακολουθία σημείων

Διαβάστε περισσότερα

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL Διδάσκoντες: Δρ. Αγαθοκλής Παπαδόπουλος και Δρ. Γιώργος Ζάγγουλος Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων

Διαβάστε περισσότερα

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

Σχεδίαση Ψηφιακών Συστημάτων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Σχεδίαση Ψηφιακών Συστημάτων Ενότητα 6: Σύγχρονα Ακολουθιακά Κυκλώματα Κυριάκης Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών

Διαβάστε περισσότερα

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 9 Ανάλυση Fourier: Από τη Θεωρία στην Πρακτική Εφαρμογή των Μαθηματικών

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 9 Ανάλυση Fourier: Από τη Θεωρία στην Πρακτική Εφαρμογή των Μαθηματικών Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 9 Ανάλυση Fourier: Από τη Θεωρία στην Πρακτική Εφαρμογή των Μαθηματικών Τύπων. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων Σκοπός Βασική δομή ενός προγράμματος

Διαβάστε περισσότερα

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL Διδάσκoντες: Δρ. Γιώργος Ζάγγουλοςκαι Δρ. Παναγιώτα Δημοσθένους Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων

Διαβάστε περισσότερα

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

Σχεδίαση Ψηφιακών Συστημάτων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Σχεδίαση Ψηφιακών Συστημάτων Ενότητα 1: Εισαγωγή - Ιστορία Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. Άδειες

Διαβάστε περισσότερα

(Peter Ashenden, The Students Guide to VHDL)

(Peter Ashenden, The Students Guide to VHDL) Υποπρογράµµατα Πακέτα (Peter Ashenden, The Students Guide to VHDL) Procedures Μία διαδικασία (procedure) δηλώνεται και κατόπιν καλείται όσες φορές θέλουµε. procedure identifier [(parameter_interface_list)]

Διαβάστε περισσότερα

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

ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL Διδάσκων: Γιώργος Ζάγγουλος Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Διαβάστε περισσότερα

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

VHDL Εισαγωγικές έννοιες VHDL Εισαγωγικές έννοιες ρ. Κ. Καραφασούλης ckaraf@aegean.gr Σχεδίαση Αρχικά ψηφιακά κυκλώµατα µπορούν να σχεδιασθούν µε το κατάλληλο λογισµικό. Μεγαλύτερα κυκλώµατα µπορούν να σχεδιασθούν ιεραρχικά από

Διαβάστε περισσότερα

Πανεπιστήμιο Πατρών. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών

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

Διαβάστε περισσότερα

nkavv@physics.auth.gr

nkavv@physics.auth.gr Γλώσσες Περιγραφής Υλικού Εισαγωγή στην VHDL Νικόλαος Καββαδίας nkavv@physics.auth.gr 17 Μαρτίου 2009 Αντικείμενο του μαθήματος CST256: Γλώσσες Περιγραφής Υλικού Επιμέρους στόχοι του μαθήματος Σχεδιασμός

Διαβάστε περισσότερα

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ» Περιεχόμενα Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»... 2 Καταχωρητές... 3 Αριθμητική-λογική μονάδα... 3 Μονάδα μνήμης... 4 Μονάδα Εισόδου - Εξόδου... 5 Μονάδα ελέγχου... 5 Ρεπερτόριο Εντολών «ΑΒΑΚΑ»... 6 Φάση

Διαβάστε περισσότερα

Introduction to IP Cores

Introduction to IP Cores Introduction to IP Cores Part 1: Digital Design -- Using IP Cores to Simplify Design Στον κόσµο του ψηφιακού σχεδίου, µπορούµε να χρησιµοποιήσουµε τις γλώσσες περιγραφής υλικού για να περιγράψουµε σύνθετες

Διαβάστε περισσότερα

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ (Τμήματα Υπολογιστή) ΕΚΠΑΙΔΕΥΤΗΣ:ΠΟΖΟΥΚΙΔΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Κάθε ηλεκτρονικός υπολογιστής αποτελείται

Διαβάστε περισσότερα

Πρόλογος Συμβολή σε ορισμένα σημεία του περιεχομένου είχαν οι διδάκτορες Γ. Οικονομάκος και Ισ. Σίδερης καθώς και οι μεταπτυχιακοί σπουδαστές Ι. Σιφναίος, Ε. Χανιωτάκης και Κ. Ασφής τους οποίους ευχαριστώ

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΙΚΟ ΕΓΧΕΙΡΙ ΙΟ ΓΙΑ ΣΧΕ ΙΑΣΜΟ ΜΕ ΧΡΗΣΗ ΤΗΣ ΓΛΩΣΣΑΣ VHDL ΕΙΣΑΓΩΓΙΚΟ ΕΓΧΕΙΡΙ ΙΟ ΓΙΑ ΣΧΕ ΙΑΣΜΟ ΜΕ ΧΡΗΣΗ ΤΗΣ ΓΛΩΣΣΑΣ VHDL Προετοιµασία: Παπαδόπουλος Γιώργος Σούρδης Γιάννης Για το µάθηµα Οργάνωσης Υπολογιστών (ΑΡΥ301), 2002 ΕΙΣΑΓΩΓΗ ΣΤΗ STRUCTURAL VHDL Η VHDL είναι

Διαβάστε περισσότερα

FFT. εκέµβριος 2005 ΨΕΣ 1

FFT. εκέµβριος 2005 ΨΕΣ 1 FFT εκέµβριος 5 ΨΕΣ Ορισµοί O διακριτός µετασχηµατισµός Fourier DFT, αναφέρεται σε µία πεπερασµένου µήκους ακολουθία σηµείων και ορίζεται ως εξής: και ο αντίστροφος µετασχηµατισµός (inverse DFT) : όπου:

Διαβάστε περισσότερα

Κεφάλαιο 5 ο Προγραμματισμός Ολοκληρωμένων Κυκλωμάτων

Κεφάλαιο 5 ο Προγραμματισμός Ολοκληρωμένων Κυκλωμάτων Κεφάλαιο 5 ο Προγραμματισμός Ολοκληρωμένων Κυκλωμάτων Στο κεφάλαιο αυτό επικεντρωνόμαστε στον προγραμματισμό συσκευών FieldProgrammableGateArrays FPGA με απλά κυκλώματα. Οι FPGAs συνήθως τοποθετούνται

Διαβάστε περισσότερα

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, 2016-2017 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Μικροϋπολογιστής Υπολογιστής που χρησιμοποιείται για την είσοδο, επεξεργασία και έξοδο πληροφοριών. Είδη μικροϋπολογιστών:

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 8 Επεξεργασία Σήματος με την Ανάλυση Fourier. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 8 Επεξεργασία Σήματος με την Ανάλυση Fourier. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 8 Επεξεργασία Σήματος με την Ανάλυση Fourier. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων Σκοπός Βασική δομή ενός προγράμματος στο LabVIEW. Εμπρόσθιο Πλαίσιο (front

Διαβάστε περισσότερα

inputs outputs Σχήμα 3.1: Σχηματική παράσταση της λειτουργίας του testbench

inputs outputs Σχήμα 3.1: Σχηματική παράσταση της λειτουργίας του testbench ΑΣΚΗΣΗ 3: Έλεγχος Μονάδων TESTBENCH Ορισμός του testbench Η πρώτη εφαρμογή σχεδίασης κυκλωμάτων στην οποία χρησιμοποήθηκε η VHDL ήταν η προσομοίωση. Η προσομοίωση για να λειτουργήσει απαιτεί, εκτός από

Διαβάστε περισσότερα

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

VHDL. ΗΜΥ-210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο Απλό παράδειγµα: Entity. Μοντελοποίηση. Απλό παράδειγµα:αρχιτεκτονική. Στοιχεία γλώσσας VHDL ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο 2005 Κεφάλαιο 4 - iii: VHDL για Σχεδιασµό Συνδυαστικών Κυκλωµάτων Πανεπιστήµιο Κύπρου Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών VHDL Γλώσσα προγραµµατισµού

Διαβάστε περισσότερα

Εισαγωγή Η VHDL υποστηρίζει τους εξής τρείς βασικούς και διαφορετικούς τρόπους περιγραφής

Εισαγωγή Η VHDL υποστηρίζει τους εξής τρείς βασικούς και διαφορετικούς τρόπους περιγραφής VHDL Εισαγωγή Η VHDL υποστηρίζει τους εξής τρείς βασικούς και διαφορετικούς τρόπους περιγραφής Structural (Δομική) Dataflow (Ροής δεδομένων) Behavioral (Συμπεριφοράς) Η VDHL χρησιμοποιείται για την περιγραφή

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Οι Βιβλιοθήκες IEEE και παραδείγµατα functions

Οι Βιβλιοθήκες IEEE και παραδείγµατα functions Οι Βιβλιοθήκες IEEE και παραδείγµατα functions Βιβλιοθήκες µε την Εντολή Library Η VHDL επιτρέπει βιβλιοθήκες που ορίζονται µε τηνεντολή: library LibraryName; Εδώ, ο µεταγλωτιστης µπορεί να βρεί διάφορα

Διαβάστε περισσότερα

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

Περιγραφή Κυκλωμάτων με χρήση της VHDL. Καταχωρητές και χρονισμός με ρολόι Περιγραφή Κυκλωμάτων με χρήση της VHDL Καταχωρητές και χρονισμός με ρολόι Οργάνωση Παρουσίασης Διεργασίες (κανόνες) Ακολουθιακές Δηλώσεις (Sequential Statements) Καταχωρητές και χρονισμός Συμπληρωματική

Διαβάστε περισσότερα

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

ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων VHDL για Σχεδιασμό Συνδυαστικών Κυκλωμάτων Διδάσκουσα: Μαρία Κ. Μιχαήλ Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών VHDL (Very high

Διαβάστε περισσότερα

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

ΠΑΡΑΡΤΗΜΑ Β. Verification ΠΑΡΑΡΤΗΜΑ Β Ροή Σχεδίασης και VHDL Ροή Σχεδίασης Πριν περάσουµε σε περιγραφή της γλώσσας VHDL είναι χρήσιµο να δούµε το περιβάλλον και τη ροή της σχεδίασης. Τα βήµατα µιας σχεδίασης βασισµένης σε VHDL

Διαβάστε περισσότερα

Σύστημα ψηφιακής επεξεργασίας ακουστικών σημάτων με χρήση προγραμματιζόμενων διατάξεων πυλών. Πτυχιακή Εργασία. Φοιτητής: ΤΣΟΥΛΑΣ ΧΡΗΣΤΟΣ

Σύστημα ψηφιακής επεξεργασίας ακουστικών σημάτων με χρήση προγραμματιζόμενων διατάξεων πυλών. Πτυχιακή Εργασία. Φοιτητής: ΤΣΟΥΛΑΣ ΧΡΗΣΤΟΣ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. Σύστημα ψηφιακής επεξεργασίας ακουστικών σημάτων με χρήση προγραμματιζόμενων διατάξεων πυλών. Πτυχιακή Εργασία Φοιτητής:

Διαβάστε περισσότερα

Μετάδοση πληροφορίας - Διαμόρφωση

Μετάδοση πληροφορίας - Διαμόρφωση Μετάδοση πληροφορίας - Διαμόρφωση MYE006: ΑΣΥΡΜΑΤΑ ΔΙΚΤΥΑ Ευάγγελος Παπαπέτρου ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΗΧ. Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ Διάρθρωση μαθήματος Μετάδοση Βασικές έννοιες Διαμόρφωση ορισμός είδη

Διαβάστε περισσότερα

Πρόγραμμα Μεταπτυχιακών Σπουδών «Πληροφορική και Εφαρμογές»

Πρόγραμμα Μεταπτυχιακών Σπουδών «Πληροφορική και Εφαρμογές» Πρόγραμμα Μεταπτυχιακών Σπουδών «Πληροφορική και Εφαρμογές» Αρχές Ψηφιακής Τεχνολογίας Σχεδιασμός σύνθετων συστημάτων Γιάννης Βογιατζής 28-29 Βασικές λογικές πύλες = Driver = AND = + OR = XOR = Inverter

Διαβάστε περισσότερα

Πράξεις με δυαδικούς αριθμούς

Πράξεις με δυαδικούς αριθμούς Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 25-6 Πράξεις με δυαδικούς αριθμούς (λογικές πράξεις) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Εκτέλεση πράξεων

Διαβάστε περισσότερα

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

Περιγραφή Κυκλωμάτων με χρήση της VHDL. Οντότητες και συντρέχουσες δηλώσεις Περιγραφή Κυκλωμάτων με χρήση της VHDL Οντότητες και συντρέχουσες δηλώσεις Οργάνωση Παρουσίασης Οντότητα (Entity) Συντρέχουσα VHDL (Concurrent VHDL) Συντρέχουσες Δηλώσεις (Concurrent Statements) Αντικείμενα

Διαβάστε περισσότερα

Kεφάλαιο 5 DFT- FFT ΔΙΑΚΡΙΤΟΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER DISCRETE FOURIER TRANSFORM ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΣΗΜΑΤΟΣ DFT-FFT. Σ.

Kεφάλαιο 5 DFT- FFT ΔΙΑΚΡΙΤΟΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER DISCRETE FOURIER TRANSFORM ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΣΗΜΑΤΟΣ DFT-FFT. Σ. Kεφάλαιο 5 DFT- FFT ΔΙΑΚΡΙΤΟΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER DISCRETE FOURIER TRASFORM x x x IDFT X X X x 3 x 4 DFT X 3 X 4 x 5 X 5 x 6 X 6 x 7 X 7 DFT - Ορισμοί αναφέρεται σε μία πεπερασμένου μήκους ακολουθία

Διαβάστε περισσότερα

HMY 429: Εισαγωγή στην Επεξεργασία Ψηφιακών Σημάτων. Διάλεξη 22: Γρήγορος Μετασχηματισμός Fourier Ανάλυση σημάτων/συστημάτων με το ΔΜΦ

HMY 429: Εισαγωγή στην Επεξεργασία Ψηφιακών Σημάτων. Διάλεξη 22: Γρήγορος Μετασχηματισμός Fourier Ανάλυση σημάτων/συστημάτων με το ΔΜΦ HMY 429: Εισαγωγή στην Επεξεργασία Ψηφιακών Σημάτων Διάλεξη 22: Γρήγορος Μετασχηματισμός Fourier Ανάλυση σημάτων/συστημάτων με το ΔΜΦ Γρήγορος Μετασχηματισμός Fourier Το ζεύγος εξισώσεων που ορίζουν το

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Σχεδίαση Ψηφιακών Συστημάτων. Ενότητα: ΚΑΤΑΧΩΡΗΤΕΣ - ΑΠΑΡΙΘΜΗΤΕΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Σχεδίαση Ψηφιακών Συστημάτων. Ενότητα: ΚΑΤΑΧΩΡΗΤΕΣ - ΑΠΑΡΙΘΜΗΤΕΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ᄃ Σχεδίαση Ψηφιακών Συστημάτων Ενότητα: ΚΑΤΑΧΩΡΗΤΕΣ - ΑΠΑΡΙΘΜΗΤΕΣ Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών

Διαβάστε περισσότερα

H γλώσσα περιγραφής κυκλωµάτων VHDL

H γλώσσα περιγραφής κυκλωµάτων VHDL H γλώσσα περιγραφής κυκλωµάτων VHDL Καβουσιανός Χρ. Τσιατούχας Γ. Λέκτορες Πανεπιστηµίου Ιωαννίνων (Peter Ashenden, The Students Guide to VHDL) Γενικά VHDL = VHSIC (Very High Speed Integrated Circuits)

Διαβάστε περισσότερα

Ενςωματωμένα Συςτήματα Υλοποίηςη του SDES ςε Hardware

Ενςωματωμένα Συςτήματα Υλοποίηςη του SDES ςε Hardware Ενςωματωμένα Συςτήματα Υλοποίηςη του SDES ςε Hardware June 1 2012 Κεχαγιάσ Απόςτολοσ ΑΕΜ:134 Table of Contents O αλγόριθμοσ... 2 Υλοποίηςη ςε Hardware... 7 Xρονιςμόσ ςημάτων VGA... 12 Επαλήθευςη... 14

Διαβάστε περισσότερα

Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II

Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 1 η Εργαστηριακή Άσκηση Εισαγωγή στη VHDL και στο εργαλείο Modelsim 1 Άδειες Χρήσης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons

Διαβάστε περισσότερα

Σχεδίαση σε VHDL και υλοποίηση σε FPGA Μονάδας Παραγωγής Μουσικού Σήματος

Σχεδίαση σε VHDL και υλοποίηση σε FPGA Μονάδας Παραγωγής Μουσικού Σήματος ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΣΧΟΛΗ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. Σχεδίαση σε VHDL και υλοποίηση σε FPGA Μονάδας Παραγωγής Μουσικού Σήματος Πτυχιακή Εργασία Ασβεστόπουλος Θεόδωρος

Διαβάστε περισσότερα

Ενσωματωμένα Συστήματα

Ενσωματωμένα Συστήματα Ενσωματωμένα Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Νο 13 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο VHDL (revisited)

Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο VHDL (revisited) ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο 2007 VHDL για Σχεδιασμό Συνδυαστικών Κυκλωμάτων Διδάσκουσα: Μαρία Κ. Μιχαήλ Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ 1.1 Εισαγωγή...11 1.2 Τα κύρια αριθμητικά Συστήματα...12 1.3 Μετατροπή αριθμών μεταξύ των αριθμητικών συστημάτων...13 1.3.1 Μετατροπή ακέραιων

Διαβάστε περισσότερα

Βασικές Έννοιες της Πληροφορικής

Βασικές Έννοιες της Πληροφορικής Βασικές Έννοιες της Πληροφορικής Ηλεκτρονικός Υπολογιστής Αυτόματη ηλεκτρονική μηχανή που δέχεται, φυλάσσει, επαναφέρει, επεξεργάζεται και παρουσιάζει πληροφορίες σύμφωνα με προκαθορισμένες εντολές. Δεδομένα

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ Πάτρα 2005 ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ Εργαστήριο Επεξεργασίας Σηµάτων Τηλεπικοινωνιών & ικτύων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ Πάτρα 2005 ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ Εργαστήριο Επεξεργασίας Σηµάτων Τηλεπικοινωνιών & ικτύων 2.5 0.5 0-0.5 - -.5-2 0 50 00 50 200 250 300 350 400 450 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ Πάτρα 2005 ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ Εργαστήριο Επεξεργασίας Σηµάτων Τηλεπικοινωνιών & ικτύων ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ

Διαβάστε περισσότερα

Σχεδίαση κυκλωμάτων με VHDL: 1o μέρος

Σχεδίαση κυκλωμάτων με VHDL: 1o μέρος Σχεδίαση κυκλωμάτων με VHDL: 1o μέρος Γ. Δημητρακόπουλος Το πρώτο σας κύκλωμα Τα ψηφιακά κυκλώματα είναι μια συλλογή από λογικές πύλες και ακολουθιακά στοιχεία αποθήκευσης (ή συγχρονισμού) όπως τα flip-flops.

Διαβάστε περισσότερα

Αρχιτεκτονική Σχεδίαση Ασαφούς Ελεγκτή σε VHDL και Υλοποίηση σε FPGA ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Αρχιτεκτονική Σχεδίαση Ασαφούς Ελεγκτή σε VHDL και Υλοποίηση σε FPGA ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΣΗΜΑΤΩΝ, ΕΛΕΓΧΟΥ ΚΑΙ ΡΟΜΠΟΤΙΚΗΣ Αρχιτεκτονική Σχεδίαση Ασαφούς Ελεγκτή σε VHDL και Υλοποίηση σε FPGA ΙΠΛΩΜΑΤΙΚΗ

Διαβάστε περισσότερα

8.1 Θεωρητική εισαγωγή

8.1 Θεωρητική εισαγωγή ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 8 ΣΤΟΙΧΕΙΑ ΜΝΗΜΗΣ ΚΑΤΑΧΩΡΗΤΕΣ Σκοπός: Η µελέτη της λειτουργίας των καταχωρητών. Θα υλοποιηθεί ένας απλός στατικός καταχωρητής 4-bit µε Flip-Flop τύπου D και θα µελετηθεί

Διαβάστε περισσότερα

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ) ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ) Συσκευές αποθήκευσης Ένας υπολογιστής προκειµένου να αποθηκεύσει δεδοµένα χρησιµοποιεί δύο τρόπους αποθήκευσης: Την Κύρια Μνήµη Τις συσκευές µόνιµης αποθήκευσης (δευτερεύουσα

Διαβάστε περισσότερα

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

VHDL για Σχεδιασµό Συνδυαστικών και Ακολουθιακών Ψηφιακών Κυκλωµάτων VHDL για Σχεδιασµό Συνδυαστικών και Ακολουθιακών Ψηφιακών Κυκλωµάτων Διδάσκουσα: Μαρία Κ. Μιχαήλ Πανεπιστήµιο Κύπρου Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών VHDL (Very high speed integrated

Διαβάστε περισσότερα

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ Εργαστήριο Σχεδίασης Ψηφιακών Ολοκληρωμένων Κυκλωμάτων και Συστημάτων «Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο 2016-2017 Διάλεξη 5 η :

Διαβάστε περισσότερα

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

Διαβάστε περισσότερα

Ας ξεκινήσουμε. Macro-instructions. (Assembly level) Micro-instructions Main memory. (micro-code)

Ας ξεκινήσουμε. Macro-instructions. (Assembly level) Micro-instructions Main memory. (micro-code) Ας ξεκινήσουμε Τι χρειαζόμαστε για να υλοποιήσουμε έναν επεξεργαστή? Macro-instructions ALU (Assembly level) Register File Micro-instructions Main memory (micro-code) Control signals and microcode (control

Διαβάστε περισσότερα

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Λογιστικής Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Μάθημα 8 Κεντρική Μονάδα Επεξεργασίας και Μνήμη 1 Αρχιτεκτονική του Ηλεκτρονικού Υπολογιστή Μονάδες Εισόδου Κεντρική

Διαβάστε περισσότερα

Ψηφιακή Επεξεργασία Σημάτων

Ψηφιακή Επεξεργασία Σημάτων Ψηφιακή Επεξεργασία Σημάτων Ενότητα 11: Εφαρμογές DFT Ταχύς Μετασχηματισμός Fourier (FFT) Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής 1 Διακριτός Μετασχηματισμός Fourier Υπολογισμός Γραμμικής Συνέλιξης

Διαβάστε περισσότερα

Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort

Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Ο αλγόριθμος ταξινόμησης Radix Sort -Δυο εκδοχές: Most Significant Digit (MSD) και Least Significant

Διαβάστε περισσότερα

Μετάδοση πληροφορίας - Διαμόρφωση

Μετάδοση πληροφορίας - Διαμόρφωση ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΗΧ. Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ Μετάδοση πληροφορίας - Διαμόρφωση MYE006-ΠΛΕ065: ΑΣΥΡΜΑΤΑ ΔΙΚΤΥΑ Ευάγγελος Παπαπέτρου Διάρθρωση μαθήματος Βασικές έννοιες μετάδοσης Διαμόρφωση ορισμός

Διαβάστε περισσότερα

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

Σχεδίαση Ψηφιακών Συστημάτων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Σχεδίαση Ψηφιακών Συστημάτων Ενότητα 5: Μνήμες Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. Άδειες Χρήσης

Διαβάστε περισσότερα