V ERILOG 2. Μια πιο κοντινή ματιά. ΗΥ-220 - Παπαευσταθίου Γιάννης2 Δομή της γλώσσας Μοιάζει πολύ με τη C –Preprocessor –Keywords –Τελεστές Γλώσσα «event.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Δομές Διακλάδωσης Μην ελπίζεις ότι θα ξεφύγεις αν κάνεις κάποιο κακό. Γιατί κι αν ξεφύγεις απ’ τη προσοχή των άλλων, θα υποπέσεις στην αντίληψη της συνείδησής.
Advertisements

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων
Μάθημα 2 Εισαγωγή στην Επιστήμη των Η/Υ ΙΙ
ΕΝΟΤΗΤΑ 10Η Η ΓΛΩΣΣΑ VHDL: ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ
Διαφάνειες παρουσίασης #5
Εισαγωγή στο MATLAB.
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) Σχεδίαση datapath 4 κατηγορίες εντολών: Αριθμητικές-λογικές.
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
ΗΥ-150 Προγραμματισμός Εντολές Ελέγχου Ροής.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΕΛΕΓΧΟΣ ΡΟΗΣ ΜΑΘΗΜΑ 4. ΑΚΟΛΟΥΘΙΑΚΗ ΕΚΤΕΛΕΣΗ ΠΡΟΤΑΣΕΩΝ ΠΡΟΤΑΣΗ Α ΠΡΟΤΑΣΗ Β ΠΡΟΤΑΣΗ Γ ………………. ΠΡΟΤΑΣΗ n ΠΡΟΤΑΣΗ Α ΠΡΟΤΑΣΗ Β ΠΡΟΤΑΣΗ Γ ………………. ΠΡΟΤΑΣΗ n.
Υποθετικός τελεστής Ο υποθετικός τελεστής (?:) αποτελείται από δύο σύμβολα. Ανήκει στην κατηγορία των τελεστών που αποτελούνται από συνδυασμό συμβόλων.
Γλώσσες Περιγραφής Υλικού. Οι γλώσσες περιγραφής υλικού είναι προσανατολισμένες στην περιγραφή της δομής του hardware και/ή της συμπεριφοράς του Χρησιμοποιούνται.
1. Τα απολύτως απαραίτητα
ΗΥ220 - Βασίλης Παπαευσταθίου1 ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο Χρονισμός Σύγχρονων Κυκλώματων, Καταχωρητές και Μανταλωτές.
ΗΥ-220 Γιάννης Παπαευσταθίου Σύνθεση Κυκλωμάτων με εργαλεία CAD Γιάννης Παπαευσταθίου Ευχαριστίες στον Διονύση Πνευματικάτο για την ύλη της διάλεξης Φθινόπωρο.
V ERILOG 2. Μια πιο κοντινή ματιά. ΗΥ-220 – Μαυροειδής Ιάκωβος2 Δομή της γλώσσας Μοιάζει πολύ με τη C –Preprocessor –Keywords –Τελεστές Γλώσσα «event.
Διαφάνειες παρουσίασης Πίνακες (συνέχεια) Αριθμητικοί υπολογισμοί Αναδρομή.
V ERILOG 1. Τα απολύτως απαραίτητα. Verilog - Λυμπέρης Σπύρος2 Verilog - Γιατί; Σχεδίαση επικεντρωμένη στην αρχιτεκτονική Διαδικασία σύνθεσης Εύκολη συντήρηση.
Σχεδίαση hardware και προγραμματισμός βασικές (αλλά σύγχρονες) μεθοδολογίες Βασίλης Παλιουράς.
Οι λογικές πράξεις και οι λογικές πύλες
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΗΥ-220 Verilog HDL. Τα βασικά.... ΗΥ-220 – Ιάκωβος Μαυροειδής2 Βασική Ροή Σχεδίασης Requirements SimulateRTL Model Gate-level Model Synthesize SimulateTest.
ΗΥ220 - Βασίλης Παπαευσταθίου1 ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο Verilog: Μια πιο κοντινή ματιά.
Η δημοφιλέστερη γλώσσα Hardware
Διαφάνειες παρουσίασης #2
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
ΗΥ Καλοκαιρινός Γιώργος1 Seven Segment Display.
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι 4-1 Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Αναδρομικές συναρτήσεις Ισοζυγισμός Παρενθέσεων.
ΗΥ220 - Βασίλης Παπαευσταθίου1 ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο Verilog: Τα βασικά.
ΗΥ Παπαευσταθίου Γιάννης1 Clock generation.
ΗΥ Καλοκαιρινός Γιώργος1 Register module Reg(Q, D, Clk); // parameter N = 16; input Clk; input [N-1:0] D; output [N-1:0] Q; reg [N-1:0] Q; // always.
V ERILOG 3. Coding styles. HY Παπαευσταθίου Γιάννης2 Τα στυλ του κώδικα Και εμάς τι μας νοιάζει; –Διαφορετικός κώδικας για διαφορετικούς σκοπούς.
6/23/2015HY220: Ιάκωβος Μαυροειδής1 HY220 Registers.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
V ERILOG Laboratories. ΗΥ-220 – Μαυροειδής Ιάκωβος2 Verilog Simulator > rlogin [garbis, kirkios, levantes, apraktias, pounentes, apiliotis] > source ~hy220/verilog/scripts/cds_ldv.sh.
7/15/2015HY220: Ιάκωβος Μαυροειδής1 HY220 Basic Modules Buffer FIFO Decoder, Encoder, Priority Encoder CAM.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Προγραμματισμός ΗΥ Ενότητα 2: Συναρτήσεις Εισόδου ⁄ Εξόδου. Διδάσκων: Ηλίας Κ Σάββας, Αναπληρωτής Καθηγητής.
Η καθημερινή ζωή στο Βυζάντιο Εργασία της μαθήτριας: Τζένη Αλουσάι στο μάθημα της Ιστορίας ΥΠΕΥΘΥΝΗ ΚΑΘΗΓΗΤΡΙΑ:κα.Τσαούση.
Παραδόσεις εφαρμοσμένης Δασοκομικής Μάθημα 3: Αντικείμενο, αρχές, σκοπός της Δασοκομίας Συσταδογνωσία Στέργιος Βέργος, καθηγητής Καρδίτσα, 18 Οκτωβρίου.
Προτάσεις, εκφράσεις, τελεστές Βασικά στοιχεία ελέγχου προγράμματος
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Η Γλώσσα Pascal Εντολή If

Single-cyle υλοποίηση:
ΔΟΜΕΣ ΕΛΕΓΧΟΥ(if-else, switch) και Λογικοί τελεστές / παραστάσεις
Ποιοί είναι οι δικαστικοί σχηματισμοί του Δικαστηρίου;
ΔΟΜΕΣ ΕΛΕΓΧΟΥ(if-else, switch) και Λογικοί τελεστές / παραστάσεις

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Η στήριξη και η κίνηση στους ζωικούς οργανισμούς
Η Κωνσταντινα και οι αραχνεσ τησ
Single-cyle υλοποίηση:
Γλώσσα Προγραμματισμού V PHP
ΗΜΥ-210: Λογικός Σχεδιασμός Εαρινό Εξάμηνο 2005
מכטרוניקה אלקטרוניקה ספרתית סתיו תשס"ה 2004/2005
Βασικές έννοιες (Μάθημα 1) Τίτλος: Μερικές βασικές έννοιες της Πληροφορικής 22/11/2018 Ξένιος Αντωνιάδης.
Single-cyle υλοποίηση:
Εισαγωγή στον αλγεβρικό λογισμό
Σύνθεση Κυκλωμάτων με εργαλεία CAD
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Single-cyle υλοποίηση:
Single-cyle υλοποίηση:
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Μεταγράφημα παρουσίασης:

V ERILOG 2. Μια πιο κοντινή ματιά

ΗΥ Παπαευσταθίου Γιάννης2 Δομή της γλώσσας Μοιάζει πολύ με τη C –Preprocessor –Keywords –Τελεστές Γλώσσα «event driven» `timescale 1ns / 1ns `define dh 2 `include “cwaves.h” `timescale 1ns / 1ns `define dh 2 `include “cwaves.h” & and | or ~ not ^ xor & and | or ~ not ^ xor = ==, !=, = && || ? : = ==, !=, = && || ? : always clk = #(`period / 2) ~clk; clk) a = b + 1; clk) b = c + 1; always clk = #(`period / 2) ~clk; clk) a = b + 1; clk) b = c + 1; t 0 + period t0t0 !

ΗΥ Παπαευσταθίου Γιάννης3 Events Κάθε έκφραση συνδέεται με έναν αρχικό χρόνο Initial και always: εσωτερικά σειριακά initial begin a = 0; b = 0; clk = 0; end always clk = #10 ~clk; wire comb = a + b; clk) a = b + 1; clk) b = c + 1; clk) c = #5 c + 1; initial begin a = 0; b = 0; clk = 0; end always clk = #10 ~clk; wire comb = a + b; clk) a = b + 1; clk) b = c + 1; clk) c = #5 c + 1; 0 10, 30 15, 35 10, 20, 30, 40, , 30 +

ΗΥ Παπαευσταθίου Γιάννης4 Case … το γνωστό case Μόνο με σταθερές εκφράσεις Δεν χρειάζεται break Καλός κώδικας: –Μοναδικό αριστερό μέρος clk) begin case (opcode) 8’h0A: dstreg = #`dh inreg0; 8’h22: begin dstreg = #`dh a + 1; if (a | (b ^ (~c))) dstreg = #`dh inreg1; end 8’hFF: dstreg = #`dh inreg2; default: dstreg = #`dh 8’h00; endcase end clk) begin case (opcode) 8’h0A: dstreg = #`dh inreg0; 8’h22: begin dstreg = #`dh a + 1; if (a | (b ^ (~c))) dstreg = #`dh inreg1; end 8’hFF: dstreg = #`dh inreg2; default: dstreg = #`dh 8’h00; endcase end

ΗΥ Παπαευσταθίου Γιάννης5 Concatenation «Hardwired» πράξεις… … απαραίτητες σε μια HDL wire [2:0] a; wire [4:0] b; wire [7:0] c = {a, b}; wire [2:0] a; wire [4:0] b; wire [7:0] c = {a, b}; a b c wire [7:0] unsigned; wire [15:0] sign_extend = { (unsigned[7] ? 8’hFF : 8’h0), unsigned }; wire [7:0] unsigned; wire [15:0] sign_extend = { (unsigned[7] ? 8’hFF : 8’h0), unsigned };

ΗΥ Παπαευσταθίου Γιάννης6 Μνήμες Αναδρομικά: array of array Συνήθως non- synthesizable Ειδική αρχικοποίηση wire [15:0] word_in; wire [15:0] word_out; wire [9:0] addr; reg [15:0] memory [1023:0]; clk) begin if (we) memory[addr] = word_in; else word_out = memory[addr]; end wire [15:0] word_in; wire [15:0] word_out; wire [9:0] addr; reg [15:0] memory [1023:0]; clk) begin if (we) memory[addr] = word_in; else word_out = memory[addr]; end reset_n) $readmemh(“memory.dat”, memory); reset_n) $readmemh(“memory.dat”, memory);

ΗΥ Παπαευσταθίου Γιάννης7 Δύναμη σημάτων Προτεραιότητα: –Χ –1 και 0 – Ζ –… και άλλα Αρχικά όλα Χ Προσοχή στην αρχικοποίηση clk) if (reset)... else... clk) if (reset)... else... initial...

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

ΗΥ Παπαευσταθίου Γιάννης9 Παραμετρικά modules Μπορούμε να έχουμε παραμέτρους σε ένα module Default μέγεθος … πολύ βολικό! module RegLd(Q, D, load, clk); parameter N = 8; input [N-1:0] Q; output [N-1:0] D; input load, Clk; clk) if (load) Q = #`dh D; endmodule module RegLd(Q, D, load, clk); parameter N = 8; input [N-1:0] Q; output [N-1:0] D; input load, Clk; clk) if (load) Q = #`dh D; endmodule RegLd reg0(q0, d0, l, clk); RegLd #16 reg1(q1, d1, l, clk); RegLd reg2(q2, d2, l, clk); defparam reg2.N = 4; RegLd reg0(q0, d0, l, clk); RegLd #16 reg1(q1, d1, l, clk); RegLd reg2(q2, d2, l, clk); defparam reg2.N = 4;

ΗΥ Παπαευσταθίου Γιάννης10 Sensitivity lists Λογικές εκφράσεις με or, and posedge και negedge –Ρολόγια Προσοχή στο hardware που θέλουμε να περιγράψουμε… clk or negedge rst_)... or b or c) if (opcode == 32’h52A0234E) a = b ^ (~c); a or posedge b)... clk or negedge rst_)... or b or c) if (opcode == 32’h52A0234E) a = b ^ (~c); a or posedge b)... !

ΗΥ Παπαευσταθίου Γιάννης11 Τέλος! Preprocessor –`define –`timescale –`include Concatenations –{a, b, c} Case –case … endcase –default Μνήμες –reg [15:0] rf [7:0]; Tρικατάστατοι –wire a = (en) ? 1’b1 : 1’bz; Parameters –parameter N = 16; –Reg #8 r0(…); Sensitivity lists or b); rst_);