ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

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

Download "ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων"

Transcript

1 ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 1

2 Verilog: Τα βασικά ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 2

3 Η εξέλιξη στη σχεδίαση ψηφιακών κυκλωμάτων Μεγάλη εξέλιξη τα τελευταία 30 χρόνια Στις αρχές σχεδιάζαμε με λυχνίες(vacuum tubes) και transistors. Μετα ήρθαν τα ολοκληρωμένα κυκλώματα ( Integrated Circuits ICs ) SSI λίγες πύλες ( Small Scale Integration) MSI εκατοντάδες πύλες ( Medium Scale Integration) LSI - χιλιάδες πύλες ( Large Scale Integration) VLSI εκατοντάδες χιλιάδες έως πολλά εκατομμύρια ( Very Large Scale Integration) Ανάγκη για τεχνικές Computer Aided Design (CAD) και γλώσσες περιγραφής υλικού για να μπορούμε να σχεδιάζουμε και να επαληθεύουμε τα κυκλώματα. ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 3

4 Τυπική Ροή Σχεδίασης Requirements (Design Flow) RTL Model Simulate Synthesis Gate-level Model Simulate Test Bench ASIC or FPGA Place & Route Timing Model Simulate ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 4

5 Τι είναι η Verilog; Verilog Hardware Description Language (HDL) Μία υψηλού επιπέδου γλώσσα που μπορεί να αναπαραστεί και να προσομοιώνει ψηφιακά κυκλώματα. Παραδείγματα σχεδίασης με Verilog HDL Intel Pentium, AMD K5, K6, Athlon, ARM7, etc Thousands of ASIC designs using Verilog HDL Other HDL: VHDL, SystemC, SystemVerilog ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 5

6 Αναπαράσταση Ψηφιακών Συστημάτων H Verilog HDL χρησιμοποιείται για να φτιάξουμε το μοντέλο ενός συστήματος. Διαδικασία: Ορισμός Απαιτήσεων (requirements specification) Documentation Έλεγχος μέσω προσομoίωσης (simulation) Λειτουργική Επαλήθευση (formal verification) Μπορούμε να το συνθέσουμε! Στόχος Αξιόπιστη διεργασία σχεδίασης με χαμηλές απαιτήσεις κόστους και χρόνου Αποφυγή και πρόληψη λαθών σχεδίασης ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 6

7 Συμβάσεις στην γλώσσα Verilog Η Verilog είναι case sensitive. Λέξεις κλειδιά είναι σε μικρά Σχόλια Για μία γραμμή είναι Για πολλές /* */ Βασικές τιμές 1-bit σημάτων 0: λογική τιμή 0 1: λογική τιμή 1 x: άγνωστη τιμή z: ασύνδετο σήμα, high impedance ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 7

8 Αριθμοί Αναπαράσταση αριθμών <size> <base_format> <number> <size> δείχνει τον αριθμό απο bits <base_format> μπορεί να είναι : d, h, b, o (default: d) Όταν το <size> λείπει το μέγεθος καθορίζεται από τον compiler Όταν το <number> έχει πολλα ψηφία μπορούμε να το χωρίζουμε με _ (underscore) όπου θέλουμε b , 4 bits 6 h3a 58, 6 bits 6 b , 6 bits 12 h13x 304+x, 12 bits 8 b10_10_ , 8 bits ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 8

9 Τελεστές (Operators) Arithmetic + - * / % Logical! && Relational < > <= >= Equality ==!= Bit-wise ~ & ^ Shift << >> Concatenation/Replication {A,B, } {4{A}} (πολλούς τελεστέους) Conditional x? y : z (3 τελεστέους) ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 9

10 Βασικό Block: Module module arith (out1, out2, in1, in2); arith output out1, out2; input in1, in2; in1 in2 out1 module ή module arith ( output out1, out2 output out2, input in1, input in2); module ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 10

11 Πόρτες ενός Module in1 in2 in3 arith1 bi_out out module arith1 ( inout bi_out, output out, input in1, input in2, input in3); module ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 11

12 Modules vs Instances Instantiation είναι η διαδικασία δημιουργίας αντικειμένου από το module. module nand(input a, input b, output out); assign out = ~ (a & b); module module SRLATCH(input Sbar, input Rbar, output Q, output Qbar); Instantiate lower-level modules nand n1 (Sbar, Qbar, Q) nand n2 (Q, Rbar, Qbar) module ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 12

13 Επίπεδο Πυλών Primitives and, nand, or, nor, xor, xnor, not, buf Παράδειγμα: and N25 (out, A, B) instance name and #10 (out, A, B) delay or #15 N33(out, A, B) name + delay ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 13

14 Χρόνος Προσομοίωσης `timescale <time_unit>/<time_precision> time_unit: μονάδα μέτρησης χρόνου time_precision: ελάχιστο χρόνο βήματα κατά την προσομοίωση. Μονάδες χρόνου : s, ms, us, ns, ps, fs #<time> : αναμονή για χρόνο <time> #5 a=8 ( <σήμα> ): αναμονή μέχρι το σήμα να αλλάξει τιμή (posedge clk) θετική (negedge clk) αρνητική (a or b or c) ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 14

15 Module Body declarations always blocks: Μπορεί να περιέχει πάνω από ένα initial block: Μπορεί να περιέχει ένα ή κανένα. modules/primitives instantiations module test(input a, output reg b); wire c; a) begin b = #2 a; a) begin b = #2 ~c; not N1 (c, a) initial begin b = 0; module ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 15

16 Τύποι μεταβλητών στην Verilog integer αριθμός wire καλώδιο σύρμα reg register tri tristate ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 16

17 Wires Συνδυαστική λογική (δεν έχει μνήμη) Γράφος εξαρτήσεων Μπορεί να περιγράψει και ιδιαίτερα πολύπλοκη λογική wire sum = a ^ b; wire c = sum b; wire a = ~d; wire sum;... assign sum = a ^ b; wire muxout = (sel == 1)? a : b; wire op = ~(a & ((b)? ~c : d) ^ (~e)); ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 17

18 Σύρματα και συνδυαστική λογική module module Δήλωση εισόδων - εξόδων Concurrent statements module adder( input a, input b, output sum, output cout); assign sum = a ^ b; assign cout = a & b; module ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 18

19 Regs και ακολουθιακή λογική Στοιχεία μνήμης κάτι ανάλογο με μεταβλητές στη C Μόνο regs (οχι wires) παίρνουν τιμή σε initial και always blocks. Χρήση των begin και για grouping πολλών προτάσεων Όπου χρησιμοποιούμε reg δεν σημαίνει οτι θα συμπεριφέρεται σαν καταχωρητής!!! reg a; initial begin a = 0; #5; a = 1; reg q; clk) begin q = #2 (load)? d : q; ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 19

20 Regs και συνδυαστική λογική Αν η συνάρτηση F() είναι πολύπλοκη τότε in1 in2 in3 Συνδιαστική Λογική F() out reg out; or in2 or in3) out = f(in1,in2,in3); reg out; Ισοδύναμα or in2 or in3) out = in1 (in2 & in3); wire out = in1 (in2 & in3); ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 20

21 Αναθέσεις (Assignments) blocking = clk) begin a = b; c = a; c παίρνει τιμή του b non blocking <= clk) begin a <= b; c <= a; c παίρνει παλιά τιμή του a b b a a c c ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 21

22 Assignments: Example time 0 : a = #10 b time 10 : c = a a(t=10) = b(t=0) c(t=10) = a(t=10) = b(t=0) time 0 : #10 time 10 : a = b time 10 : c = a a(t=10) = b(t=10) c(t=10) = a(t=10) = b(t=10) time 0 : a <= #10 b time 0 : c <= a a(t=10) = b(t=0) c(t=0) = a(t=0) ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 22

23 Κανόνες Πορτών Module Τα input και inout έχουν τύπο wire μέσα στο module Ta outputs μπορεί να έχουν τύπο wire ή reg ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 23

24 Συνδέσεις μεταξύ Instances Με βάση την θέση module adder(sum, In1, In2) adder (A, B, C) Sum = A, In1 = B, In2 = C Συσχετίζοντας ονόματα (το καλύτερο) module adder(sum, In1, In2) adder (.In2(B),.In1(A),.Sum(C)) Sum = C, In1 = A, In2 = B ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 24

25 Buses (1/2) in1[1:0] in2[1:0] in1[1] in1[0] in2[1] in2[0] arith2 out[0] out[1:0] out[1] module arith2 ( input [1:0] in1, input [1:0] in2, output [1:0] out); module ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 25

26 Καμία διαφορά στη συμπεριφορά Συμβάσεις: [high : low] [msb : lsb] Προσοχή στις αναθέσεις (μήκη) και τις συνδέσεις εκτός του module Buses (2/2) module adder( input [7:0] a, b, output [7:0] sum, output cout); wire [8:0] tmp = a + b; assign[7:0] sum = tmp[7:0]; assign cout = tmp[8]; module ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 26

27 Conditional Statements If Else Το γνωστό if else Μόνο μεσα σε blocks! Επιτρέπονται πολλαπλά και nested ifs Πολλά Else if... Αν υπάρχει μόνο 1 πρόταση δεν χρειάζεται begin module mux( input [4:0] a, input b, input sel, output reg [4:0] out); or b or sel) begin if ( sel == 0 ) begin out <= a; else out <= b; module ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 27

28 Branch Statement Case Το γνωστό case Μόνο μεσα σε blocks! Μόνο σταθερές εκφράσεις Δεν υπάρχει break! Υπάρχει default! module mux ( input [4:0] a, b, c,d, input [1:0] sel, output [4:0] out); reg [4:0] out; or b or c or d or sel ) begin case (sel) 2 b00: out <= a; 2 b01: out <= b; 2 b10: out <= c; 2 b11: out <= d; default: out <= 5 bx; case module ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 28

29 Επίπεδα Αφαίρεσης Κώδικα Η λειτουργία ένος module μπορεί να οριστεί με διάφορους τρόπους: Behavioral (επίπεδο πιο κοντά στην λογική) Παρόμοια με την C ο κώδικας δεν έχει άμεση σχέση με το hardware. π.χ. wire a = b + c Gate level/structural (επίπεδο κοντά στο hardware) Ο κώδικας δείχνει πως πραγματικά υλοποιειται σε πύλες η λογική. π.χ. wire sum = a ^ b; wire cout = a & b; ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 29

30 Συνθέσιμος Κώδικας Ο Synthesizable κώδικας μπορεί να γίνει synthesize και να πάρουμε gate-level μοντέλο για ASIC/FPGA. π.χ. wire [7:0] sum = tmp[7:0] & {8{a}}; wire cout = tmp[8]; Non-synthesizable κώδικας χρησιμοποιείται μόνο για προσομοίωση και πετιέται κατά την διαδικασία της σύνθεσης (logic synthesis). π.χ. initial begin a = 0; b = 0; #5 a = 1; b = 1; ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 30

31 Χρήση Καθυστέρησης στην Verilog Λειτουργική Επαλήθευση - Functional Verification (RTL Model) Η καθυστέρηση είναι προσεγγιστική. Π.χ. clk) q <= #2 d; FF με 2 μονάδες καθυστέρηση Συνήθως θεωρούμε ότι η συνδιαστική λογική δεν έχει καθυστέρηση.π.χ. wire a = (b & c) d; μόνο την λειτουργία όχι καθυστέρηση πυλών Η καθυστέρηση χρησιμοποιείται κυρίως στο testbench κώδικα για να φτιάξουμε τα inputs. Χρονική Επαλήθευση - Timing Verification Αναλυτικά κάθε πύλη έχει καθυστέρηση. Συνήθως κάνουμε timing verification σε gate-level model το οποίο φτιάχνεται από ένα synthesis tool. ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 31

32 Ιεραρχικός Έλεγχος Testing Κάθε module ξεχωριστά Block level simulation Έλεγχος των προδιαγραφών, της λειτουργίας και των χρονισμών των σημάτων Όλο το design μαζί System level simulation Έλεγχος της συνολικής λειτουργίας και των διεπαφών ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 32

33 Έλεγχος σωστής λειτουργίας Testbench : top module που κάνει instantiate το module που τεστάρουμε, δημιουργεί τις τιμές των εισόδων του (stimulus) και ελέγχει ότι οι έξοδοί του παίρνουν σωστές τιμές. 2 προσεγγίσεις : Έλεγχος εξόδων και χρονισμού με το μάτι Έλεγχος εξόδων και χρονισμού μέσω κώδικα δλδ. αυτόματη σύγκριση των αναμενόμενων εξόδων. ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 33

34 module test; reg a, b; wire s, c; Ένα απλό «test bench» adder add0(a, b, s, c); initial begin a = 0; b = 0; #5 $display("a: %x, b: %x, s: %x, c: %x", a, b, s, c); a = 1; #5 $display("a: %x, b: %x, s: %x, c: %x", a, b, s, c); b = 1; #5 $display("a: %x, b: %x, s: %x, c: %x", a, b, s, c); a = 0; #5 $display("a: %x, b: %x, s: %x, c: %x", a, b, s, c); module module adder( input a, b, output sum, cout); assign sum = a ^ b; assign cout = a & b; module ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 34

35 Μετρητής 8 bits (1/3) module counter( input clk, reset, output reg [7:0] out); wire [7:0] next_value = out + 1; clk) begin if (reset) out = #2 8 b0; else out = #2 next_value;! module clk( output reg out); initial out = 1 b0; always out = #10 ~out; module module ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 35

36 Μετρητής 8 bits (2/3) module test; wire clk; reg reset; wire [7:0] count; clock clk0(clk); counter cnt0(clk, reset, count);! initial begin reset = clk); reset = #2 clk); #300; $stop; module ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 36

37 Μετρητής 8 bits (3/3) clk reset count counter.v clock.v test.v ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 37

38 Verilog: Μια πιο κοντινή ματιά ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 38

39 Δομή της γλώσσας Μοιάζει αρκετά με τη C Preprocessor Keywords Τελεστές = ==,!= <, >, <=, >= &&? : & and or ~ not ^ xor `timescale 1ns / 1ns `define dh 2 (e.g q <= #`dh d) `undef dh `ifdef dh / `ifndef dh... `else... `if `include def.h Γλώσσα «event driven» ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 39

40 Events in Verilog (1/2) Δουλεύει μόνο όταν κάτι αλλάξει Όλο το simulation δουλεύει γύρω από μια ουρά από γεγονότα (event queue) Περιέχει events και ετικέτες με το χρόνο στον οποίο θα εκτελεστούν Καμμιά εγγύηση για τη σειρά εκτέλεσης γεγόνοτων που πρέπει να γίνουν στον ίδιο χρόνο!!! always clk = #(`period / 2) ~clk; clk) a = b + 1; clk) b = c + 1;! ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 40

41 Events in Verilog (2/2) Βασική ροή προσομοίωσης Εκτέλεση των events για τον τρέχοντα χρόνο Οι εκτέλεση events αλλάζει την κατάσταση του συστήματος και μπορεί να προκαλέσει προγραμματισμό events για το μέλλον Όταν τελειώσουν τα events του τρέχοντα χρόνου προχωράμε στα αμέσως επόμενα χρονικά! t 0 + period t 0 ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 41

42 Τιμές σημάτων Four-valued logic 0 ή 1 Ζ Έξοδος τρικατάστατου οδηγητή Καλώδιο χωρίς ανάθεση X Αρχική τιμή των regs Έξοδος πύλης με είσοδο/ους Ζ Ταυτόχρονη ανάθεση 0 και 1 από δύο ή περισσότερες πηγές (multi-source logic) [πηγή = always block] initial... clk) if (reset)... else... Προσοχή στην αρχικοποίηση (regs) ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 42

43 Concatenation «Hardwired» πράξεις απαραίτητες σε μια HDL a b c wire [2:0] a; wire [4:0] b; wire [7:0] c = {a, b}; wire [7:0] unsigned; wire [15:0] sign_ext = { (unsigned[7]? 8 hff : 8 h0), unsigned }; ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 43

44 For While τa γνωστά Μόνο μέσα σε blocks! Δεν υπάρχει break ουτε continue!!! Δεν υπάρχει i++, ++i κτλ! Κυρίως για testbenches!!! integer i; the famous i variable :) initial begin for ( i=0; i<10; i=i+1 )begin $display ( i= %d,i); integer j; reg [3:0] j is OK! initial begin j=0; while(j < 10)begin $display ( j= %b,j); j=j+1; ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 44

45 Παραμετρικά modules 1/2 module RegLd #( parameter N = 8, parameter dh = 2) ( input Clk, input i_load, input [N-1:0] i_d, output reg [N-1:0] o_q); clk) if (i_load) o_q = #dh i_d; Μπορούμε να έχουμε παραμέτρους σε ένα module Default μέγεθος πολύ βολικό! module ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 45

46 Παραμετρικά modules 2/2 RegLd reg1(d2, q2, ld, clk); defparam reg1.n = 4; defparam reg1.dh = 4; RegLd #(.N ( 8 ),.dh ( 2 )) reg2(.clk ( Clk,.i_load ( reg_load ),.i_d ( wr_data ),.o_q ( rd_data )); ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 46

47 Τρικατάστατοι οδηγητές Εκμετάλλευση της κατάστασης Ζ module tristate( input en, input clk, inout [7:0] data); Χρήση του τύπου inout wire [7:0] data = (en)? data_out : 8 bz; clk) begin if (!en) case (data)... module wire [7:0] bus; tristate tr0(en0, clk, bus); tristate tr1(en1, clk, bus); tristate tr2(en2, clk, bus); ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 47

48 Μνήμες Αναδρομικά: array of array Συνήθως nonsynthesizable Ειδική αρχικοποίηση $readmemh $readmemb wire [M-1:0] word_in; wire [M-1:0] word_out; wire [Nlog-1:0] addr; reg [M-1:0] memory [((1<<Nlog)-1):0]; clk) begin if (we) memory[addr] = word_in; else word_out = memory[addr]; rst_n) $readmemh( memory.dat, memory); memory.dat: 0F00 00F1 0F02 ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 48

49 Συναρτήσεις Functions (1/3) Δήλωση (declaration): function [ range_or_type ] fname; input_declarations statements function Επιστρεφόμενη τιμή (return value): Ανάθεση στο σώμα του function fname = expression; Κλήση (function call): fname ( expression, ) ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 49

50 Συναρτήσεις - Functions (2/3) Χαρακτηριστικά συναρτήσεων: Επιστρέφει 1 τιμή (default: 1 bit) Μπορεί να έχει πολλαπλά ορίσματα εισόδου (πρέπει να έχει τουλάχιστον ένα) Μπορούν να καλούν άλλες functions αλλά όχι tasks. Δεν υποστηρίζουν αναδρομή (non-recursive) Εκτελούνται σε μηδέν χρόνο προσομοίωσης Δεν επιτρέπονται χρονικές λειτουργίες (π.χ. delays, events) Χρησιμοποιούνται για συνδυαστική λογική και συνθέτονται συνήθως ετσι. προσοχή στον κώδικα για να γίνει σωστά σύνθεση ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 50

51 Συναρτήσεις - Functions (3/3) Function examples: function calc_parity; input [31:0] val; begin calc_parity = ^val; function function [15:0] average; input [15:0] a, b, c, d; begin average = (a + b + c + d) >> 2; function; ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 51

52 Verilog Tasks (1/2) Τυπικές procedures Πολλαπλά ορίσματα input, output και inout Δεν υπάρχει συγκεκριμένη τιμή επιστροφής (χρησιμοποιεί τα όρισματα output) Δεν υποστηρίζουν αναδρομή (non-recursive) Μπορούν να καλούν άλλες tasks και functions Μπορούν να περιέχουν delays, events και χρονικές λειτουργίες Προσοχή στη σύνθεση ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 52

53 Verilog Tasks (2/2) Task example: task ReverseByte; input [7:0] a; output [7:0] ra; integer j; begin for (j = 7; j >=0; j=j-1) begin ra[j] = a[7-j]; task ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 53

54 Functions and Tasks Ορίζονται μέσα σε modules και είναι τοπικές Δεν μπορούν να έχουν always και initial blocks αλλά μπορούν να καλούνται μέσα από αυτά Μπορούν να έχουν ότι εκφράσεις μπαίνουν σε blocks ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 54

55 Functions vs Tasks Functions Μπορούν να καλούν άλλες functions αλλά όχι tasks Εκτελούνται σε μηδενικό χρόνο προσομοίωσης Δεν μπορούν περιέχουν χρονικές λειτουργίες (delay, events κτλ) Έχουν τουλάχιστον 1 είσοδο και μπορούν να έχουν πολλές Επιστρέφουν μια τιμή, δεν έχουν εξόδους Tasks Μπορούν να καλούν άλλες tasks και functions Μπορούν να διαρκούν μη μηδενικό χρόνο προσομοίωσης Μπορούν να περιέχουν χρονικές λειτουργίες (delay, events κτλ) Μπορούν να έχουν μηδέν ή περισσότερα ορίσματα εισόδων, εξοδων και inout Δεν επιστρέφουν τιμή αλλά βγάζουν έξοδο από τα ορίσματα εξόδου και inout ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 55

56 System Tasks and Functions Tasks and functions για έλεγχο της προσομοίωσης Ξεκινούν με "$" (e.g., $monitor) Standard της γλώσσας Παράδειγμα system task: $display $display("format-string", expr1,, exprn); format-string - regular ASCII mixed with formatting characters %d - decimal, %b - binary, %h - hex, %t - time, etc. other arguments: any expression, including wires and regs $display("error at time %t: value is %h, expected %h", $time, actual_value, expected_value); ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 56

57 Χρήσιμες System Tasks $time τρέχον χρόνος προσομοίωσης $monitor τυπώνει όταν αλλάζει τιμή ένα όρισμα ( 1 μόνο κάθε φορά νέες κλήσεις ακυρώνουν τις προηγούμενες ) $monitor("cs=%b, ns=%b", cs, ns) Έλεγχος προσομοίωσης $stop - διακοπή simulation $finish - τερματισμός simulation Υπάρχουν και συναρτήσεις για file I/O ( $fopen, $fclose, $fwrite etc ) ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 57

58 Verilog: Στυλ Κώδικα και Synthesizable Verilog ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 58

59 Τα στυλ του κώδικα Τρεις βασικές κατηγορίες Συμπεριφοράς - Behavioral Μεταφοράς Καταχωρητών - Register Transfer Level (RTL) Δομικός - Structural Και εμάς τι μας νοιάζει; Διαφορετικός κώδικας για διαφορετικούς σκοπούς Synthesizable ή όχι; ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 59

60 Behavioral (1/3) Ενδιαφερόμαστε για την συμπεριφορά των blocks Αρχικό simulation Επιβεβαίωση αρχιτεκτονικής Test benches Απο απλά μέχρι εκλεπτυσμένα initial begin reset everything clk) begin case (opcode) 8 hab: RegFile[dst] = #2 in; 8 hef: dst = #2 in0 + in1; 8 h02: Memory[addr] = #2 data; case if (branch) dst = #2 br_addr; ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 60

61 Behavioral (2/3) Περισσότερες εκφράσεις for / while functions tasks Περισσότεροι τύποι integer real πίνακες! integer sum, i; integer opcodes [31:0]; real average; initial for (i=0; i<32; i=i+1) opcodes[i] = 0; clk) begin sum = sum + 1; average = average + (c / sum); opcodes[d] = sum; $display( sum: %d, avg: %f, sum, average); ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 61

62 Behavioral (3/3) module test; task ShowValues; input [7:0] data; $display(..., data); task... clk) ShowValues(counter);... module define period 20 initial begin reset_ = 1 b0; reset_ = #(2*`period + 5) 1 reset_ = 1 b0; reset_ = #(2*`period + 5) 1 b1; reset_) begin fork a = #2 8 h44; b = #(4*`period + 2) 1 b0; c = #(16*`period + 2) 8 h44; join ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 62

63 Register Transfer Level - RTL Το πιο διαδεδομένο και υποστηριζόμενο μοντελο για synthesizable κώδικα Κάθε block κώδικα αφορά την είσοδο λίγων καταχωρητών Σχεδιάζουμε κύκλο-κύκλο με «οδηγό» το ρολόι Εντολές: Λιγότερες όχι τόσο περιοριστικές Think Hardware! Combinatori al Logic ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 63

64 Structural Αυστηρότατο μοντέλο Μόνο module instantiations Συνήθως για το top-level module Καλύτερη η αυστηρή χρήση του module top; wire clk, reset; wire [31:0] d_data, I_data; wire [9:0] d_adr; wire [5:0] i_adr; clock clk0(clk); processor pr0(clk, reset, d_adr, d_data, i_adr, i_data,...); memory #10 mem0(d_adr, d_data); memory #6 mem1(i_adr, i_data); tester tst0(reset,...); module ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 64

65 και μερικές συμβουλές Ονοματολογία wire a, Όχι πολύ μεγάλα / μικρά ονόματα με νόημα Συνδυαστική λογική Όχι όλα σε μια γραμμή Ο compiler ξέρει καλύτερα Αναγνωσιμότητα Δομή Πολλές οντότητες Ε όχι και τόσες! controller_data_now_ready; wire drc_rx_2, twra_malista; if (~req && ((flag & prv_ack) ~set) && (count-2 == 0))... ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 65

66 περισσότερες συμβουλές Διευκολύνουν την ανάγνωση και την χρήση του κώδικα (filters, tools etc) Είσοδοι ξεκινούν με i_* Οι έξοδοι με o_* Οι τρικατάστατες με io_* Εκτός από ρολόι και reset Τα active low σήματα τελειώνουν με *_n Συνδέσεις πορτών συσχετίζοντας ονόματα module adder(o_sum, i_in1, i_in2); adder i0_adder ( instance names i0_adder, i1_adder.i_in2(b),.i_in1(a),.o_sum(c) ) o_sum = C, i_in1 = A, i_in2 = B ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 66

67 Σχόλια Ακούγεται μονότονο, αλλά Κώδικας hardware πιο δύσκολος στην κατανόηση Ακόμα και ο σχεδιαστής ξεχνάει γρήγορα Αν δε μπουν στην αρχή, δε μπαίνουν ποτέ Σημεία κλειδιά Σε κάθε module Σε κάθε block /*************************** * Comments on module test: * Module test comprises of * the following components **************************/ module test; Line comment ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 67

68 Verilog and Synthesis Χρήσεις της Verilog Μοντελοποίηση και event-driven προσομοίωση Προδιαγραφές κυκλώματος για σύνθεση (logic synthesis) Logic Synthesis Μετατροπή ενός υποσυνόλου της Verilog σε netlist Register Inference, combinatorial logic Βελτιστοποίηση του netlist (area,speed) ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 68

69 Register D Flip Flop module Reg #( parameter N = 16, parameter dh = 1) ( input Clk, input [N-1:0] i_d, output reg [N-1:0] o_q); Clk) o_q <= #dh i_d; module ΗΥ220 - Γιώργος Καλοκαιρινός 69

70 Register with Asynchronous Reset module RegRst #( parameter N = 16, parameter dh = 1) ( input Clk, input Reset_n, input [N-1:0] i_d, output reg [N-1:0] o_q) Clk or negedge Reset_n) begin if (~Reset_n) o_q <= #dh 0; else o_q <= #dh i_d; module ΗΥ220 - Γιώργος Καλοκαιρινός 70

71 Register with Synchronous Reset module RegRst #( parameter N = 16, parameter dh = 1) ( input Clk, input Reset_n, input [N-1:0] i_d, output reg [N-1:0] o_q) Clk) begin if (~Reset_n) o_q <= #dh 0; else o_q <= #dh i_d; module ΗΥ220 - Γιώργος Καλοκαιρινός 71

72 Register with Load Enable module RegLd #( parameter N = 16, parameter dh = 1) ( input Clk, input i_ld, input [N-1:0] i_d, output reg [N-1:0] o_q); Clk) if (i_ld) o_q <= #dh i_d; module ΗΥ220 - Γιώργος Καλοκαιρινός 72

73 Set Clear flip-flop with Strong Clear module scff_sc #( parameter dh = 1) ( input Clk input i_set, input i_clear, output o_out); Clk) o_out <= #dh (0_Out i_set) & ~i_clear; module ΗΥ220 - Γιώργος Καλοκαιρινός 73

74 Set Clear flip-flop with Strong Set module scff_s #( parameter dh = 1) ( input Clk input i_set, input i_clear, output o_out); Clk) o_out <= #dh i_set (o_out & ~i_clear); module ΗΥ220 - Γιώργος Καλοκαιρινός 74

75 T Flip Flop module Tff #( parameter dh = 1) ( input Clk, input Rst, input i_toggle, output o_out); Clk) if(rst) o_out <= #dh 0 else if (i_toggle) o_out <= #dh ~o_out; module ΗΥ220 - Γιώργος Καλοκαιρινός 75

76 Multiplexor 2 to 1 module mux2 #( parameter N = 16) ( output [N-1:0] o_out, input [N-1:0] i_in0, input [N-1:0] i_in1, input i_sel); wire [N-1:0] o_out = i_sel? i_in1 : i_in0; module ΗΥ220 - Γιώργος Καλοκαιρινός 76

77 Multiplexor 4 to 1 module mux4 #( parameter N = 32) ( input [N-1:0] In0, input [N-1:0] In1, input [N-1:0] In2, input [N-1:0] In3, input [ 1:0] Sel, output reg [N-1:0] Out); or i_in1 or i_in2 or i_in3 or i_sel) begin case ( i_sel ) 2'b00 : o_out <= i_in0; 2'b01 : o_out <= i_in1; 2'b10 : o_out <= i_in2; 2'b11 : o_out <= i_in3; case module ΗΥ220 - Γιώργος Καλοκαιρινός 77

78 Multiplexor 4 to 1 module mux4 #( parameter N = 32) ( input [N-1:0] i_in0, input [N-1:0] i_in1, input [N-1:0] i_in2, input [N-1:0] i_in3, input i_sel0, input i_sel1, input i_sel2, input i_sel3, output [N-1:0] o_out); assign o_out = i_in0 & {N{i_Sel0}} i_in1 & {N{i_Sel1}} i_in2 & {N{i_Sel2}} i_in3 & {N{i_Sel3}}; module ΗΥ220 - Γιώργος Καλοκαιρινός 78

79 Positive Edge Detector module PosEdgDet #( parameter dh = 1) ( input Clk, input i_in, output o_out); reg Tmp; Clk) Tmp <= #dh i_in; assign o_out = ~Tmp & i_in; module ΗΥ220 - Γιώργος Καλοκαιρινός 79

80 Negative Edge Detector module NegEdgDet #( parameter dh = 1) ( input Clk, input i_in, output o_out); reg Tmp; Clk) Tmp <= #dh i_in; assign o_out = Tmp &~i_in; module ΗΥ220 - Γιώργος Καλοκαιρινός 80

81 Edge Detector module EdgDet #( parameter dh = 1) ( input Clk, input i_in, output o_out); reg Tmp; Clk) Tmp <= #dh i_in; wire Out = Tmp ^ i_in; module ΗΥ220 - Γιώργος Καλοκαιρινός 81

82 Tristate Driver module Tris #( parameter N = 32) ( input [N-1:0] i_trisin, input i_trisoen_n, output [N-1:0] o_trisout); assign o_trisout = ~i_trisoen_n? i_trisin : bz; module ΗΥ220 - Γιώργος Καλοκαιρινός 82

83 Up Counter module Cnt #( parameter N = 32, parameter MaxCnt = 100, parameter dh = 1) ( input Clk, input i_en, input i_clear, output reg o_zero, output reg [N-1:0] o_out); Clk) begin if(i_clear) begin o_out <= #dh 0; o_zero <= #dh 0; else if (i_en) begin if (o_out==maxcnt) begin o_out <= #dh 0; o_zero <= #dh 1; else begin o_out <= #dh o_out + 1 b1; o_zero <= #dh 0; module ΗΥ220 - Γιώργος Καλοκαιρινός 83

84 Parallel to Serial Shift Register module P2Sreg #( parameter N = 32, parameter dh =1) ( input Clk, input Reset_n, input i_ld, input i_shift, input [N-1:0] i_in, output o_out); reg [N-1:0] TmpVal; Clk or negedge Reset_n) begin if (~Reset_n) TmpVal <= #dh 0; else begin if (i_ld) TmpVal <= #dh i_in; else if(i_shift) TmpVal <= #dh TmpVal>>1; assign o_out = TmpVal[0]; module ΗΥ220 - Γιώργος Καλοκαιρινός 84

85 Serial to Parallel Shift Register module S2Preg #( parameter N = 32, parameter dh = 1) ( input Clk, input i_clear, input i_shift, input i_in, output reg [N-1:0] o_out); Clk) begin if (i_clear) o_out <= #dh 0; else if (i_shift) o_out <= #dh {o_out[n-2:0],i_in}; module ΗΥ220 - Γιώργος Καλοκαιρινός 85

86 Barrel Shift Register module BarShiftReg( parameter N = 32, parameter dh = 1) ( input Clk, input Reset_n, input i_ld, input i_shift, input [N-1:0] i_in, output reg [N-1:0] o_out); Clk) begin if (~Reset_n) o_out <= #dh 0; else begin if (i_ld) o_out <= #dh i_in; else if (i_shift) o_out <= #dh {o_out[n-2:0],o_out[n-1]}; module ΗΥ220 - Γιώργος Καλοκαιρινός 86

87 3 to 8 Binary Decoder module dec #( parameter Nlog = 3) ( input [ Nlog-1:0] i_in, output reg [((1<<Nlog))-1:0] o_out); Integer i; begin for (i=0; i<(1<<nlog); i=i+1) begin if (i_in==i) o_out[i]=1; else o_out[i] = 0; module ΗΥ220 - Γιώργος Καλοκαιρινός 87

88 8 to 3 Binary Encoder module enc #( parameter Nlog = 3) ( input [((1<<Nlog)-1):0] i_in, output reg [ Nlog-1:0] o_out); integer i; begin o_out = x; for (i=0; i<(1<<nlog); i=i+1) begin if (i_in[i]) o_out=i; module ΗΥ220 - Γιώργος Καλοκαιρινός 88

89 Priority Enforcer Module module PriorEnf #( parameter N = 8) ( input [N-1:0] In, output reg [N-1:0] Out, output reg OneDetected); integer i; reg DetectNot; begin DetectNot=1; for (i=0; i<n; i=i+1) if (i_in[i] & DetectNot) begin o_out[i]=1; DetectNot=0; else o_out[i]=0; OneDetected =!DetectNot; module ΗΥ220 - Γιώργος Καλοκαιρινός 89

90 Latch module Latch #( parameter N = 16, parameter dh = 1) ( input [N-1:0] i_in, input i_ld, output reg [N-1:0] o_out); or i_ld) if (i_ld) o_out = #dh i_in; module: ΗΥ220 - Γιώργος Καλοκαιρινός 90

91 Combinatorial Logic and Latches (1/3) module mux3 #( parameter N = 32 ) ( input [ 1:0] Sel, input [N-1:0] In2, input [N-1:0] In1, input [N-1:0] In0, output reg [N-1:0] Out); or In1 or In2 or Sel) begin case ( Sel ) 2'b00 : Out <= In0; 2'b01 : Out <= In1; 2'b10 : Out <= In2; case module Γιατί είναι λάθος; ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 91

92 Combinatorial Logic and Latches (2/3) module mux3 #( parameter N = 32 ) ( input [ 1:0] Sel, input [N-1:0] In2, input [N-1:0] In1, input [N-1:0] In0, output reg [N-1:0] Out); or In1 or In2 or Sel) begin case ( Sel ) 2'b00 : Out <= In0; 2'b01 : Out <= In1; 2'b10 : Out <= In2; default : Out <= x; case module Το σωστό!!! ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 92

93 Combinatorial Logic and Latches (3/3) Όταν φτιάχνουμε συνδυαστική λογική με always blocks και regs τότε πρέπει να αναθέτουμε τιμές στις εξόδους της λογικής για όλες τις πιθανές περιπτώσεις εισόδων (κλήσεις του always)!!! Για κάθε if ένα else Για κάθε case ένα default Παραλείψεις δημιουργούν latches κατά τη σύνθεση Οι περιπτώσεις που δεν καλύπτουμε χρησιμοποιούνται για το «σβήσιμο» του load enable του latch. (θυμάται την παλιά τιμή) ΗΥ220 - Βασίλης Παπαευσταθίου 93

94 Μηχανές Πεπερασμένων Καταστάσεων ΗΥ220 - Γιώργος Καλοκαιρινός & Βασίλης Παπαευσταθίου 94

95 FSMs Οι μηχανές πεπερασμένων καταστάσεων Finite State Machines (FSMs) πιο αφηρημένος τρόπος να εξετάζουμε ακολουθιακά κυκλώματα Είσοδοι, έξοδοι, τρέχουσα κατάσταση, επόμενη κατάσταση Σε κάθε ακμή του ρολογιού συνδυαστική λογική παράγει τις εξόδους και την επόμενη κατάσταση σαν συνάρτησης των εισόδων και της τρέχουσας κατάστασης. ΗΥ220 - Γιώργος Καλοκαιρινός & Βασίλης Παπαευσταθίου 95

96 Χαρακτηριστικά των FSM Η επόμενη κατάσταση είναι συνάρτηση της τρέχουσας κατάστασης και των εισόδων Moore Machine: Οι έξοδοι είναι συνάρτηση της inputa κατάστασης State / output inputb Mealy Machine: Οι έξοδοι είναι συνάρτηση της κατάστασης και των εισόδων inputa/outputa State inputb/outputb ΗΥ220 - Γιώργος Καλοκαιρινός & Βασίλης Παπαευσταθίου 96

97 Βήματα Σχεδίασης 1. Περιγραφή λειτουργία του κυκλώματος (functional specification) 2. Διάγραμμα μετάβασης καταστάσεων (state transition diagram) 3. Πίνακας καταστάσεων και μεταβάσεων με συβολικά ονόματα (symbolic state transition table) 4. Κωδικοποίηση καταστάσεων (state encoding) 5. Εξαγωγή λογικών συναρτήσεων 6. Διάγραμμα κυκλώματος FFs για την κατάσταση CL για την επόμενη κατάσταση και τις εξόδους ΗΥ220 - Γιώργος Καλοκαιρινός & Βασίλης Παπαευσταθίου 97

98 Αναπαράσταση FSM Καταστάσεις: όλες οι πιθανές τιμές στα ακολουθιακά στοιχεία μνήμης (FFs) Μεταβάσεις: αλλαγή κατάστασης Αλλαγή τις κατάστασης με το ρολόι αφού ελέγχει την φόρτωση τιμής στα στοιχεία μνήμης (FFs) In = 1 In = Ακολουθιακή λογική In = In = 1 Ακολουθία μέσω μιας σειράς καταστάσεων Βασίζεται στην ακολουθία των τιμών στις εισόδους ΗΥ220 - Γιώργος Καλοκαιρινός & Βασίλης Παπαευσταθίου 98

99 Υλοποίηση FSMs Mealy outputs inputs combinational logic next state comb. logic Moore outputs Προτεινόμενο στυλ υλοποίησης FSM Η συνδυαστική λογική καταστάσεων σε always block (πάντα default) current state Ο καταχωρητής κατάστασης σε ένα ξεχωριστό always block (clocked πάντα reset) Έξοδοι είτε από το always της CL είτε από wires ΗΥ220 - Γιώργος Καλοκαιρινός & Βασίλης Παπαευσταθίου 99

100 Απλή FSM (1/2) module fsm #( parameter dh = 1) ( input Clk, input Reset_n, input i_start, input i_stop, input i_error, output o_receive, output o_error); localparam IdleSt = 3 b001, RxSt = 3 b010, ErrorSt = 3 b100; reg [2:0] State; ΗΥ220 - Γιώργος Καλοκαιρινός & Βασίλης Παπαευσταθίου 100

101 Απλή FSM (2/2) Clk) begin if (~Reset_n) State <= #dh IdleSt; else begin case(state) IdleSt : begin if(i_error) State <= #dh ErrorSt; else if(i_start) State <= #dh RxSt; else State <= #dh IdleSt; RxSt : begin if(i_error) State <= #dh ErrorSt; else if(i_stop) State <= #dh IdleSt; else State <= #dh RxSt; ErrorSt : State <= #dh IdleSt; default : State <= #dh IdleSt; case assign o_receive = (State== RxSt); assign o_error = (State==ErrorSt); module ΗΥ220 - Γιώργος Καλοκαιρινός & Βασίλης Παπαευσταθίου 101

102 hex2asci module hex2asci( input [3:0] i_in, output [7:0] o_out); assign o_out = (i_in>9)? (8'h37 + i_in) : (8'h30 + i_in); module ΗΥ220 -Γιώργος Καιλοκαιρινός 102

103 asci2hex module asci2hex( input [7:0] i_in, output reg [3:0] o_out, output reg o_error); begin if((i_in>8'h2f)&&(i_in<8'h3a)) begin o_out = i_in - 8'h30; o_error = 1'b0; else if((i_in>8'h40)&&(i_in<8'h47)) begin o_out = i_in - 8'h37; o_error = 1'b0; else o_error = 1'b1; module ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 103

104 module 7segm_dec( input [3:0] i_digit, output reg [7:0] o_out); begin case(i_digit) 4'h0 : o_out = 7'b ; 0 4'h1 : o_out = 7'b ; 1 4'h2 : o_out = 7'b ; 2 4'h3 : o_out = 7'b ; 3 4'h4 : o_out = 7'b ; 4 4'h5 : o_out = 7'b ; 5 4'h6 : o_out = 7'b ; 6 4'h7 : o_out = 7'b ; 7 4'h8 : o_out = 7'b ; 8 4'h9 : o_out = 7'b ; 9 4'hA : o_out = 7'b ; A 4'hb : o_out = 7'b ; B 4'hC : o_out = 7'b ; C 4'hd : o_out = 7'b ; D 4'hE : o_out = 7'b ; E 4'hF : o_out = 7'b ; F default: o_out = 7'b ; 0 case module 7segm_dec ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 104

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2017-2018 Verilog: Στυλ Κώδικα και Synthesizable Verilog ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 1 Τα στυλ του κώδικα Τρεις βασικές κατηγορίες

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2017-2018 Verilog: Τα βασικά ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 1 Η εξέλιξη στη σχεδίαση ψηφιακών κυκλωμάτων Μεγάλη εξέλιξη τα τελευταία

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2018-2019 Verilog: Μια πιο κοντινή ματιά ΗΥ220 - Βασίλης Παπαευσταθίου 1 Δομή της γλώσσας Μοιάζει αρκετά με τη C Preprocessor Keywords Τελεστές =

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2017-2018 Verilog: Μια πιο κοντινή ματιά ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 1 Δομή της γλώσσας Μοιάζει αρκετά με τη C Preprocessor

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2016-2017 ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 1 Verilog: Τα βασικά ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 2 Η εξέλιξη

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Χειµερινό Εξάµηνο 2007-2008 Verilog: Τα βασικά ΗΥ220 - Βασίλης Παπαευσταθίου 1 Η εξέλιξη στη σχεδίαση ψηφιακών κυκλωµάτων Μεγάλη εξέλιξη τα τελευταία 30 χρόνια Στις

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Χειµερινό Εξάµηνο 2007-2008 Verilog: Μια πιο κοντινή µατιά ΗΥ220 - Βασίλης Παπαευσταθίου 1 οµή της γλώσσας Μοιάζει αρκετά µε τηc Preprocessor Keywords Τελεστές = &

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

ΗΥ-225. Verilog HDL. Τα βασικά...

ΗΥ-225. Verilog HDL. Τα βασικά... ΗΥ-225 Verilog HDL. Τα βασικά... Βασική Ροή Σχεδίασης Requirements RTL Model Simulate Synthesize Gate-level Model Simulate Test Bench ASIC or FPGA Place & Route Timing Model Simulate ΗΥ-225 Ιάκωβος Μαυροειδής

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

Εργαστήριο Ψηφιακών Κυκλωμάτων. Χειμερινό Εξάμηνο

Εργαστήριο Ψηφιακών Κυκλωμάτων. Χειμερινό Εξάμηνο ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Verilog: Μια πιο κοντινή ματιά Χειμερινό Εξάμηνο 2009 2010 Δομή της γλώσσας Μοιάζει αρκετά με τη C Preprocessor Keywords Τελεστές = ==,!= , = &&? : & and or

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Χειµερινό Εξάµηνο 2006-2007 Verilog: Στυλ Κώδικα και Synthesizable Verilog ΗΥ220 - Βασίλης Παπαευσταθίου 1 Τα στυλ του κώδικα Τρεις βασικές κατηγορίες Συµπεριφοράς

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2013-2014 ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 1 Verilog: Τα βασικά ΗΥ220 - Γιώργος Καλοκαιρινός & Bασίλης Παπαευσταθίου 2 Η εξέλιξη

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

HY130 Ψηφιακή Σχεδίαση

HY130 Ψηφιακή Σχεδίαση HY130 Ψηφιακή Σχεδίαση Διδάσκων Εργαστηρίου: Χ. Σωτηρίου http://inf-server.inf.uth.gr/courses/ce130/ 1 2 1 3 Μοιάζει αρκετά με την C Προ-επεξεργαστή (Preprocessor) Λέξεις Κλειδιά (Keywords) Τελεστές =

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2017-2018 Μηχανές Πεπερασμένων Καταστάσεων ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 1 FSMs Οι μηχανές πεπερασμένων καταστάσεων Finite

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

HY430 Εργαστήριο Ψηφιακών Κυκλωμάτων. Πολυπλέκτες Καμπύλη Παρέτο. Κωδικοποιητές/Από-κωδικοποιητές D FF

HY430 Εργαστήριο Ψηφιακών Κυκλωμάτων.   Πολυπλέκτες Καμπύλη Παρέτο. Κωδικοποιητές/Από-κωδικοποιητές D FF HY430 Εργαστήριο Ψηφιακών Κυκλωμάτων Διδάσκων: Χ. Σωτηρίου, Βοηθός: (θα ανακοινωθεί) http://inf-server.inf.uth.gr/courses/ce430/ Περιεχόμενα Περιγραφές και Συνθέσιμες Δομές Πολυπλέκτες Καμπύλη Παρέτο Κωδικοποιητές/Από-κωδικοποιητές

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

Εισαγωγή στη Verilog

Εισαγωγή στη Verilog ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Εισαγωγή στη Verilog Χειμερινό Εξάμηνο 2009 2010 Hardware vs Software Γιατί να σχεδιάζουμε σε Hardware? Γρήγορη εκτέλεση (~10x) Χαμηλή κατανάλωση ισχύος (~10x) αλλά

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

ΗΥ225 Οργάνωση Υπολογιστών. Εισαγωγή στη Verilog

ΗΥ225 Οργάνωση Υπολογιστών. Εισαγωγή στη Verilog ΗΥ225 Οργάνωση Υπολογιστών Εισαγωγή στη Verilog Processors are everywhere ARM based products CS225: How to build your own processor University of Crete ΗΥ225 2 Intel 8086 Processor 1978 29.000 transistors

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

Εργαστήριο Ψηφιακών Κυκλωμάτων

Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Verilog: Στυλ Κώδικα και Synthesizable Verilog Χειμερινό Εξάμηνο 2009 2010 Τα στυλ του κώδικα Τρεις βασικές κατηγορίες Behavioral (procedural) Dataflow Structural Synthesizable

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

Εργαστήριο Ψηφιακών Κυκλωμάτων

Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Μηχανές Πεπερασμένων Καταστάσεων Χειμερινό Εξάμηνο 2009 2010 ΗΥ220 University of Crete 1 Τι είναι οι FSMs? 10 FSM Κερματοδέκτης open Μηχανισμός Αυτόματου 20 Απελευθέρωσης

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Χειµερινό Εξάµηνο 2007-2008 Μηχανές Πεπερασµένων Καταστάσεων ΗΥ220 - Βασίλης Παπαευσταθίου 1 FSMs Οι µηχανές πεπερασµένων καταστάσεων Finite State Machines (FSMs) πιο

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

ΠΛΕ- 027 Μικροεπεξεργαστές 4ο μάθημα: γλώσσα περιγραφής υλικού Verilog

ΠΛΕ- 027 Μικροεπεξεργαστές 4ο μάθημα: γλώσσα περιγραφής υλικού Verilog ΠΛΕ- 027 Μικροεπεξεργαστές 4ο μάθημα: γλώσσα περιγραφής υλικού Verilog Αρης Ευθυμίου Τι είναι η γλώσσα Verilog Γλώσσα περιγραφής υλικού (hardware descripjon language) Επιτρέπει τη περιγραφή (μοντελοποίηση)

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Γλώσσα περιγραφής υλικού: Verilog

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Γλώσσα περιγραφής υλικού: Verilog ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Γλώσσα περιγραφής υλικού: Verilog Αρης Ευθυμίου Το σημερινό μάθημα! Η γλώσσα περιγραφής υλικού Verilog Περίληψη των αντίστοιχων μαθημάτων Ψηφιακής σχεδίασης έμφαση σε

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

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

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

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

VERILOG. Γενικά περί γλώσσας

VERILOG. Γενικά περί γλώσσας VERILOG Γενικά περί γλώσσας Χρησιµότητα της Verilog Υψηλού επιπέδου περιγραφή της συµπεριφοράς του συστήµατος µε σκοπό την εξοµοίωση. RTL περιγραφή της λειτουργίας του συστήµατος µε σκοπό τη σύνθεσή του

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

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

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

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

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

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

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

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ντες: Δρ. Αγαθοκλής Παπαδόπουλος και Δρ. Γιώργος Ζάγγουλος Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων

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

8 η Θεµατική Ενότητα : Εισαγωγή στις Γλώσσες Περιγραφής Υλικού: Μοντέλα Συνδυαστικών Κυκλωµάτων

8 η Θεµατική Ενότητα : Εισαγωγή στις Γλώσσες Περιγραφής Υλικού: Μοντέλα Συνδυαστικών Κυκλωµάτων 8 η Θεµατική Ενότητα : Εισαγωγή στις Γλώσσες Περιγραφής Υλικού: Μοντέλα Συνδυαστικών Κυκλωµάτων Εισαγωγή Η λογική που περιγράφεται σε ένα module µπορεί να περιγραφεί µε διάφορα στυλ Μοντελοποίηση σε επίπεδο

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

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ντες: Δρ. Γιώργος Ζάγγουλοςκαι Δρ. Παναγιώτα Δημοσθένους Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων

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

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

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

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

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

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

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2017-2018 Λογικές Πύλες, Στοιχεία Μνήμης, Συνδυαστική Λογική και Κυματομορφές ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 1 Τα βασικά της

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

HY430 Εργαςτήριο Ψηφιακών Κυκλωμάτων. Πολυπλζκτεσ Καμπφλθ Παρζτο. Κωδικοποιθτζσ/Από-κωδικοποιθτζσ D FF

HY430 Εργαςτήριο Ψηφιακών Κυκλωμάτων.  Πολυπλζκτεσ Καμπφλθ Παρζτο. Κωδικοποιθτζσ/Από-κωδικοποιθτζσ D FF HY430 Εργαςτήριο Ψηφιακών Κυκλωμάτων Διδάςκων: Χ. Σωτηρίου, Βοηθόσ: (θα ανακοινωθεί) http://inf-server.inf.uth.gr/courses/ce430/ Περιεχόμενα Περιγραφζσ και υνκζςιμεσ Δομζσ Πολυπλζκτεσ Καμπφλθ Παρζτο Κωδικοποιθτζσ/Από-κωδικοποιθτζσ

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

7 η Θεµατική Ενότητα : Εισαγωγή στις Γλώσσες Περιγραφής Υλικού

7 η Θεµατική Ενότητα : Εισαγωγή στις Γλώσσες Περιγραφής Υλικού 7 η Θεµατική Ενότητα : Εισαγωγή στις Γλώσσες Περιγραφής Υλικού Εισαγωγή Η χειρονακτική σχεδίαση ενός ψηφιακού συστήµατος είναι εξαιρετικά δύσκολη και επιρρεπής σε λάθη Συστήµατα που ξεπερνούς τις µερικές

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

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες.

Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες. Γλώσσες Περιγραφής Μοντέλα Ένα µοντέλο ενός κυκλώµατος είναι µία αναπαράσταση που παρουσιάζει χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες. Τα τυπικά µοντέλα έχουν καλά ορισµένη σύνταξη. Τα αυτόµατα

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

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

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

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

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

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

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

Επιβεβαίωση ορθής λειτουργίας απλών ψηφιακών κυκλωμάτων

Επιβεβαίωση ορθής λειτουργίας απλών ψηφιακών κυκλωμάτων Επιβεβαίωση ορθής λειτουργίας απλών ψηφιακών κυκλωμάτων Δημήτρης Κωνσταντίνου, Γιώργος Δημητρακόπουλος Εφόσον έχουμε περιγράψει το κύκλωμά μας σε System Verilog θα πρέπει να βεβαιωθούμε πως λειτουργεί

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

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

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

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

ΗΥ220: Εργαστήριο σχεδίασης ψηφιακών κυκλωμάτων Χριστόφορος Κάχρης

ΗΥ220: Εργαστήριο σχεδίασης ψηφιακών κυκλωμάτων Χριστόφορος Κάχρης Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών ΗΥ220: Εργαστήριο σχεδίασης ψηφιακών κυκλωμάτων Χριστόφορος Κάχρης 4-11-2009 Πρόοδος Θέμα 1 ο (25%): 1. Βρείτε την μεγίστη συχνότητα λειτουργίας του παρακάτω

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

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

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

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2017-2018 Ροή Σχεδίασης Κυκλωμάτων και Εργαλεία CAD ΗΥ220 - Γιώργος Καλοκαιρινός & Βασίλης Παπαευσταθίου 1 Transistor: Δομική μονάδα κυκλωμάτων Τα

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

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

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

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

Ενότητα ΑΡΧΕΣ ΑΚΟΛΟΥΘΙΑΚΗΣ ΛΟΓΙΚΗΣ LATCHES & FLIP-FLOPS

Ενότητα ΑΡΧΕΣ ΑΚΟΛΟΥΘΙΑΚΗΣ ΛΟΓΙΚΗΣ LATCHES & FLIP-FLOPS Ενότητα ΑΡΧΕΣ ΑΚΟΛΟΥΘΙΑΚΗΣ ΛΟΓΙΚΗΣ LATCHES & FLIP-FLOPS Γενικές Γραμμές Ακολουθιακή Λογική Μεταστάθεια S-R RLatch h( (active high h&l low) S-R Latch with Enable Latch Flip-Flop Ασύγχρονοι είσοδοι PRESET

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

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

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

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2018-2019 Ροή Σχεδίασης Κυκλωμάτων και Εργαλεία CAD ΗΥ220 - Βασίλης Παπαευσταθίου 1 Transistor: Δομική μονάδα κυκλωμάτων Τα ολοκληρωμένα κυκλώματα

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

Εισαγωγή στη Verilog με το ISE

Εισαγωγή στη Verilog με το ISE Εισαγωγή στη Verilog με το ISE Πατάμε new project Δίνουμε όνομα και κατάλογο όπου θα αποθηκευτεί το project. Next όπου επιλέγουμε chip και preferred language βάζουμε Verilog Next και στο Create new source

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ελίνα Μακρή

Ελίνα Μακρή Ελίνα Μακρή elmak@unipi.gr Μετατροπή Αριθμητικών Συστημάτων Πράξεις στα Αριθμητικά Συστήματα Σχεδίαση Ψηφιακών Κυκλωμάτων με Logism Άλγεβρα Boole Λογικές Πύλες (AND, OR, NOT, NAND, XOR) Flip Flops (D,

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

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο Διάλεξη 8 η : Μηχανές Πεπερασμένων Κaταστάσεων σε FPGAs

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

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

ΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο Ένα συνδυαστικό κύκλωµα µπορεί να περιγραφεί από: Φεβ-05. n-είσοδοι

ΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο Ένα συνδυαστικό κύκλωµα µπορεί να περιγραφεί από: Φεβ-05. n-είσοδοι ΗΜΥ 2: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο 25 Φεβ-5 ΗΜΥ-2: Λογικός Σχεδιασµός Εαρινό Εξάµηνο 25 Κεφάλαιο 3 -i: Σχεδιασµός Συνδυαστικών Κυκλωµάτων Περίληψη Αρχές σχεδιασµού Ιεραρχία σχεδιασµού Σχεδιασµός

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

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

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

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

ΠΛΗ10 Κεφάλαιο 2. ΠΛH10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: : Αριθμητική περιοχή της ALU 2.5: Κυκλώματα Υπολογιστών

ΠΛΗ10 Κεφάλαιο 2. ΠΛH10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: : Αριθμητική περιοχή της ALU 2.5: Κυκλώματα Υπολογιστών ΠΛH10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: 2 2.3 : Αριθμητική περιοχή της ALU 2.5: Κυκλώματα Υπολογιστών Στόχοι Μαθήματος: Να γνωρίσετε τις βασικές αρχές αριθμητικής των Η/Υ. Ποια είναι τα κυκλώματα

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

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

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

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

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

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

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

Μετρητής Ριπής ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ. Αναφορά 9 ης. εργαστηριακής άσκησης: ΑΦΡΟΔΙΤΗ ΤΟΥΦΑ Α.Μ.:2024201100032

Μετρητής Ριπής ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ. Αναφορά 9 ης. εργαστηριακής άσκησης: ΑΦΡΟΔΙΤΗ ΤΟΥΦΑ Α.Μ.:2024201100032 ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΣΧΟΛΗ ΟΙΚΟΝΟΜΙΑΣ, ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ Αναφορά 9 ης εργαστηριακής άσκησης: Μετρητής Ριπής ΑΦΡΟΔΙΤΗ

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

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

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

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

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

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

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

Ψηφιακή Σχεδίαση Ενότητα 10:

Ψηφιακή Σχεδίαση Ενότητα 10: Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ψηφιακή Σχεδίαση Ενότητα 10: Καταχωρητές & Μετρητές Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών http://arch.icte.uowm.gr/mdasyg

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

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 18: Διαδικασία Σχεδίασης Ψηφιακών Συστηµάτων - Επανάληψη

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

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

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

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

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο 2006-2007 Εκφώνηση Εργαστηρίου Στο εργαστήριο του µαθήµατος σας ζητείται να σχεδιάσετε, να υλοποιήσετε και να επαληθεύσετε

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

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

Περιγραφή Κυκλωμάτων με χρήση της VHDL. Εισαγωγικές έννοιες για σχεδιασμό με τη VHDL Περιγραφή Κυκλωμάτων με χρήση της VHDL Εισαγωγικές έννοιες για σχεδιασμό με τη VHDL Οργάνωση Παρουσίασης VHDL εισαγωγικές έννοιες Ροή και επίπεδα σχεδιασμού ψηφιακών κυκλωμάτων Μοντελοποίηση Καθυστερήσεων

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

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

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

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

Library, package και subprograms

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

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

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

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

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

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

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

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

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

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

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2015-2016 ΗΥ220 -Γιώργος Καιλοκαιρινός & Βασίλης Παπαευσταθίου 1 Λογικές Πύλες, Στοιχεία Μνήμης, Συνδυαστική Λογική και Κυματομορφές ΗΥ220 -Γιώργος

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο 2006-2007 Εκφώνηση Εργαστηρίου Στο εργαστήριο του µαθήµατος σας ζητείται να σχεδιάσετε, να υλοποιήσετε και να επαληθεύσετε

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

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

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

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

VHDL Introduction. Subtitle

VHDL Introduction. Subtitle VHDL Introduction Subtitle Getting Started VHDL means Very Hard Difficult Language That s a lie!!! τα αρχικά VHDL είναι συντομογραφία του VHSIC Hardware Description Language, ενώ το VHSIC αντιπροσωπεύει

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

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

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

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

Ακολουθιακές εντολές. (Peter Ashenden, The Students Guide to VHDL)

Ακολουθιακές εντολές. (Peter Ashenden, The Students Guide to VHDL) Ακολουθιακές εντολές (Peter Ashenden, The Students Guide to VHDL) Εντολή If Τα βασικά χαρακτηριστικά της είναι τα εξής: Μπορεί να χρησιµοποιηθεί για τον έλεγχο µίας ή περισσοτέρων συνθηκών. Η πρώτη συνθήκη

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

HY430 Εργαςτήριο Ψηφιακών Κυκλωμάτων.

HY430 Εργαςτήριο Ψηφιακών Κυκλωμάτων. HY430 Εργαςτήριο Ψηφιακών Κυκλωμάτων Διδάςκων: Χ. ωτηρίου, Βοηθόσ: (θα ανακοινωθεί) http://inf-server.inf.uth.gr/courses/ce430/ 1 Πυλϊν 2 1 Πυλϊν 3 Δομή τησ Γλώςςασ Μοιάηει αρκετά με τθν C Προ-επεξεργαςτι

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

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

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

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

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

Σχεδιασμός Ψηφιακών Συστημάτων ΗΜΥ 2: Σχεδιασμό Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο 27 Νοε-7 ΗΜΥ-2: Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο 27 Ακολουθιακά Κυκλώματα: Μανδαλωτές (Latches) και Flip-Flops Flops Διδάσκουσα:

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

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Ακολουθιακή Λογική. Επιμέλεια Διαφανειών: Δ.

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Ακολουθιακή Λογική. Επιμέλεια Διαφανειών: Δ. Πανεπιστήμιο Πατρών Τμήμα Φυσικής Ψηφιακά Ηλεκτρονικά Ακολουθιακή Λογική Επιμέλεια Διαφανειών: Δ. Μπακάλης Πάτρα, Φεβρουάριος 2009 Εισαγωγή Είσοδοι Συνδυαστικό Κύκλωμα Έξοδοι Στοιχεία Μνήμης Κατάσταση

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

Μικροηλεκτρονική - VLSI

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

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

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

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

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

Οδηγίες εγκατάστασης και χρήσης του Quartus

Οδηγίες εγκατάστασης και χρήσης του Quartus Εγκατάσταση του Quartus Οδηγίες εγκατάστασης και χρήσης του Quartus Δημήτρης Μαγγίρας, Γιώργος Δημητρακόπουλος 1. Κατεβάζουμε την έκδοση 13.0SP1 από εδώ ακολουθώντας τις οδηγίες που φαίνονται στην εικόνα.

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

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

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

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

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 9 Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Ti είναι Αρχιτεκτονική και τι Μικροαρχιτεκτονική

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

ΑΣΚΗΣΗ 9. Tα Flip-Flop

ΑΣΚΗΣΗ 9. Tα Flip-Flop ΑΣΚΗΣΗ 9 Tα Flip-Flop 9.1. ΣΚΟΠΟΣ Η κατανόηση της λειτουργίας των στοιχείων μνήμης των ψηφιακών κυκλωμάτων. Τα δομικά στοιχεία μνήμης είναι οι μανδαλωτές (latches) και τα Flip-Flop. 9.2. ΘΕΩΡΗΤΙΚΟ ΜΕΡΟΣ

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

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

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

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

Ψηφιακή Σχεδίαση. Δρ. Μηνάς Δασυγένης Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Ψηφιακή Σχεδίαση. Δρ. Μηνάς Δασυγένης Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ψηφιακή Σχεδίαση Ενότητα 8: Μανδαλωτές SR, S R D Flip-Flops Αφέντη Σκλάβου, Σχεδιασμός Ακολουθιακών κυκλωμάτων, Πίνακας Καταστάσεων, Διάγραμμα Καταστάσεων

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

Πτυχιακή Εργασία Σχεδίαση κυκλωμάτων επικοινωνίας με απλές οθόνες, με τη γλώσσα VHDL και υλοποίηση στις αναπτυξιακές πλακέτες LP-2900 και DE2.

Πτυχιακή Εργασία Σχεδίαση κυκλωμάτων επικοινωνίας με απλές οθόνες, με τη γλώσσα VHDL και υλοποίηση στις αναπτυξιακές πλακέτες LP-2900 και DE2. ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. Πτυχιακή Εργασία Σχεδίαση κυκλωμάτων επικοινωνίας με απλές οθόνες, με τη γλώσσα VHDL και υλοποίηση στις αναπτυξιακές

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

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 13: Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων (Κεφάλαιο 6.

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

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

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

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

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

Σχεδιασμός Ψηφιακών Συστημάτων ΗΜΥ 2: Σχεδιασμό Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο 28 Νοε-8 ΗΜΥ-2: Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο 28 Ανάλυση Ακολουθιακών Κυκλωμάτων Διδάσκουσα: Μαρία Κ. Μιχαήλ Πανεπιστήμιο Κύπρου

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

Σχεδίαση της Μονάδας Ελέγχου

Σχεδίαση της Μονάδας Ελέγχου ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - VHDL ΥΛΙΚΟ ΚΑΙ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ενότητα 5 Σχεδίαση της Μονάδας Ελέγχου Καθηγητής Αντώνης Πασχάλης 2017 Γενικές Γραμμές Σχεδίαση

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

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

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

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

ΗΥ 232 Οργάνωση και στον Σχεδίαση Η/Y. Διάλεξη 8. Concepts of Digital Design Introduction to Verilog

ΗΥ 232 Οργάνωση και στον Σχεδίαση Η/Y. Διάλεξη 8. Concepts of Digital Design Introduction to Verilog ΗΥ 232 Οργάνωση και στον Σχεδίαση Η/Y Διάλεξη 8 Concepts of Digital Design Introduction to Verilog Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων και Μηχανικών Η/Y Οργάνωση και Σχεδίαση Η/Υ (ΗΥ232) 1 The Verilog Language

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

K24 Ψηφιακά Ηλεκτρονικά 9: Flip-Flops

K24 Ψηφιακά Ηλεκτρονικά 9: Flip-Flops K24 Ψηφιακά Ηλεκτρονικά 9: TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΧΝΟΛΟΓΙΚΟ Περιεχόμενα 1 2 3 Γενικά Ύστερα από τη μελέτη συνδυαστικών ψηφιακών κυκλωμάτων, θα μελετήσουμε

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

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

Σχεδιασμός Ψηφιακών Συστημάτων ΗΜΥ 2: Σχεδιασμό Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο 28 ΗΜΥ-2: Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο 28 Ακολουθιακά Κυκλώματα: Μανδαλωτές (Latches) και Flip-Flops Flops Διδάσκουσα: Μαρία

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ψηφιακή Σχεδίαση Ενότητα 7: κωδικοποιητές, κωδικοποιητές προτεραιότητας, πολυπλέκτες, υλοποίηση συνάρτησης με πολυπλέκτη, αποπλέκτες, πύλη 3ιών καταστάσεων,

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