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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

HY225 Οργάνωςη Τπολογιςτών

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

Λογική Σχεδίαση Ι - Εξεταστική Φεβρουαρίου 2013 Διάρκεια εξέτασης : 160 Ονοματεπώνυμο : Α. Μ. Έτος σπουδών:

ΠΛΕ- 027 Μικροεπεξεργαστές 5ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση ενός κύκλου

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

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

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

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

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

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

HY220 Pipelines and FSMs Χειμεριν Χειμερι ό Εξ άμη Εξ ν άμη ο

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

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

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

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

HY523 Εργαςτηριακό Σχεδύαςη Ψηφιακών Κυκλωμϊτων με εργαλεύα Ηλεκτρονικού Σχεδιαςτικού Αυτοματιςμού.

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

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

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

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

Εισαγωγή στα κυκλώµατα CMOS 2

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

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

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

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

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

Καταχωρητες (Registers) Μετρητες (Counters)

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

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ

Τέτοιες λειτουργίες γίνονται διαμέσου του

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

Α. ΣΚΟΔΡΑΣ ΠΛΗ21 ΟΣΣ#2. 14 Δεκ 2008 ΠΑΤΡΑ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ 2008 Α. ΣΚΟΔΡΑΣ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ ΜΕΛΕΤΗΣ

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

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

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

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

HY330 Ψηφιακά Κυκλώματα - Εισαγωγή στα Συστήματα VLSI. 1 ΗΥ330 - Διάλεξη 7η - Ακολουθιακά Κυκλώματα

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

Ενότητα ΚΑΤΑΧΩΡΗΤΕΣ ΜΕΤΡΗΤΕΣ ΜΝΗΜΕΣ RAM

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

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

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

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

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

HY430 Εργαςτήριο Ψηφιακών Κυκλωμάτων. 1 ΗΥ430 - Διάλεξθ 10θ - Μθχανζσ Ρεπεραςμζνων Κατάςταςεων

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

Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια

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

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

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

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

100 ΕΡΩΤΗΣΕΙΣ ΜΕ ΤΙΣ ΑΝΤΙΣΤΟΙΧΕΣ ΑΠΑΝΤΗΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ

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

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΑΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ

Συστήματα VLSI Παραδείγματα ασκήσεων

Χρονισμός και Απόδοση Υπολογιστικών Συστημάτων

ΚΑΣΣΙΑΝΟΣ ΜΕΛΑΝΙΤΗΣ. Αποκωδικοποιητής ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ. Αναφορά 8 ης εργαστηριακής άσκησης: Α.Μ.:

x n D 2 ENCODER m - σε n (m 2 n ) x 1 Παραδείγματα κωδικοποιθτϊν είναι ο κωδικοποιθτισ οκταδικοφ ςε δυαδικό και ο κωδικοποιθτισ BCD ςε δυαδικό.

HY333 Εργαστηριακή Σχεδίαση Ψηφιακών Κυκλωμάτων με εργαλεία Ηλεκτρονικού Σχεδιαστικού Αυτοματισμού.

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

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

Σχεδίαση Βασικών Κυκλωµάτων. Χρ. Καβουσιανός. Επίκουρος Καθηγητής

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

Χ. Σωτηρίου. Σχήμα 1: Προτεινόμενο Πρόγραμμα Επαλήθευσης του ολοκληρωμένου Επεξεργαστή

Στοιχεία Μνήμης, JKκαιD (Flip-Flops) Μετρητής Ριπής (Ripple Counter)

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΥΛΙΚΟ ΚΑΙ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Ενότητα 1. Λογικής Σχεδίασης. Καθηγητής Αντώνης Πασχάλης

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

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

Δομημένος Προγραμματισμός (ΤΛ1006)

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

ΑΣΚΗΣΗ 7 FLIP - FLOP

Εργαστηριακή Άσκηση 4: Ιεραρχική σχεδίαση και προσχεδιασμένοι πυρήνες

Transcript:

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

Περιεχόμενα Περιγραφζσ και υνκζςιμεσ Δομζσ Καμπφλθ Παρζτο D FF φγχρονθ, αςφγχρονθ αρχικοποίθςθ Με ενεργοποίθςθ (enable) T FF Μετρθτζσ Με ανάκεςθ τιμισ Πάνω/Κάτω υςςωρευτισ Ολιςκθτζσ ειριακι είςοδοσ, Παράλλθλθ ζξοδοσ Παράλλθλθ είςοδοσ, ειριακι ζξοδοσ Πολλαπλαςιαςτισ/Διαιρζτθσ Ολιςκθτισ «Βαρζλι» (Barrel) Πολυπλζκτεσ Κωδικοποιθτζσ/Από-κωδικοποιθτζσ Κωδικοποίθςθ με Προτεραιότθτεσ Ακροιςτζσ υγκριτζσ Ανιχνευτισ Ακμισ D Latch φγχρονθ, Αςφγχρονθ Μνιμθ 3 Τύποι Μοντελοποίηςησ Verilog Δομικι module_name instance_name [instance_array_range] (signal, signal,... ); (Structural) Ροή Δεδομζνων (Dataflow) υμπεριφοράσ ή Διαδικαςτική (Behavioural, Procedural) 4 module_name instance_name [instance_array_range] (.port_name(signal), (.port_name(signal),...); counter counter_( clk, enable, count_out); dff u2 (.clk(clock),.q(q[]),.data(d[])); gate_type #(delay) instance_name [instance_array_range] (terminal, terminal, ); wire = (a & b) (c & d); initial always @ (sensitivity list) -- always @(a or b or ci) sum = a + b + ci; initial bus = 6'h0000; #0 bus = 6'hC5A5; #20 bus = 6'hFFAA; 2

Περιγραφή Συμπεριφοράσ Χριςθ Διαδικαςιών always ι initial Διακζςιμεσ προτάςεισ for while υναρτιςεισ Διεργαςίεσ fork join Διακζςιμοι Σφποι 5 reg και πίνακεσ reg integer real initial // reset everything always @(posedge clk) case (opcode) 8 hab: RegFile[dst] = #2 in; 8 hef: dst = #2 in0 + in; 8 h02: Memory[addr] = #2 data; case if (branch) dst = #2 br_addr; Περιγραφή Συμπεριφοράσ Απεικόνιςθ ςτο υλικό;;; Σο εργαλείο ςφνκεςθσ κάνει αντιςτοιχία Μπορεί να ελαχιςτοποιιςει τθν δυαδικι λογικι Τπακοφει όμωσ τθν δομική ςυμπεριφορά τησ περιγραφήσ! integer sum, i; integer opcodes [3:0]; real average; initial for (i=0; i<32; i=i+) opcodes[i] = 0; always @(posedge clk) sum = sum + ; average = average + (c / sum); opcodes[d] = sum; $display( sum: %d, avg: %f, sum, average); 6 3

Επιρροή Δομήσ module COMB_LOGIC_STRUCT(a, b, c, d, a2, b2, c2, d2, y, y2); input [8:0] a, b, c, d, a2, b2, c2, d2; output [0:0] y, y2; reg [0:0] y, y; always @(a or b or c or d or a2 or b2 or c2 or d2) y = a + b + c + d; y2 = (a2 + b2) + (c2 + d2); module a[8:0] b[8:0] c[8:0] d[8:0] + + + y[0:0] a[8:0] b[8:0] c[8:0] d[8:0] + + + y2[0:0] 7 Παραδείγματα Περιγραφήσ Συμπεριφοράσ module test; task ShowValues; input [7:0] data; $display(..., data); task... always @(posedge clk) ShowValues(counter);... module define period 20 initial reset_ = b0; reset_ = #(2*`period + 5) b; @(branch); reset_ = b0; reset_ = #(2*`period + 5) b; always @(negedge reset_) fork a = #2 8 h44; b = #(4*`period + 2) b0; c = #(6*`period + 2) 8 h44; join 8 4

Περιγραφή RTL (Register Transfer Level Μεταβίβαςησ μεταξύ Καταχωρητών) Σο κάκε τμιμα always κάνει ανακζςεισ από καταχωρθτζσ ςε καταχωρθτζσ χεδιάηουμε Κφκλο προσ κφκλο Με οδθγό το ρολόι οσ κφκλοσ:... 2 οσ κφκλοσ: υνδυαςτική Λογική 9 Δομική Περιγραφή Μόνο εμφανίςεισ τμθμάτων Μορφι Πλαιςίου Δοκιμισ Μορφι μετά από φνκεςθ module top; wire clk, reset; wire [3: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 mem0(d_adr, d_data); memory mem(i_adr, i_data) ; tester tst0(reset,...); module 0 5

Καλέσ Πρακτικέσ Ονόματα υνοχι Νόθμα Ευανάγνωςτα υνδυαςτικι Λογικι Δομι Ευανάγνωςτθ Φυςική και όχι Λογική Ιεράρχθςθ του ςχεδίου υνδεςμολογία Κατά όνομα αντί Κατά κζςθ Χριςθ κενών/tabs για ευκυγράμμιςθ του κώδικα wire a, memory_data_write_enable; wire mem_wr_en, if (~req && ((flag & prv_ack) ~set) && (count-2 == 0))... Καλέσ Πρακτικέσ χόλια Κώδικασ υλικοφ γενικά πιο δφςκολοσ ςτθν κατανόθςθ Ακόμα και ο ίδιοσ ο ςχεδιαςτισ ςε 2 εβδομάδεσ δεν κυμάται απόλυτα τθν λειτουργία του κώδικα Αν δεν χρθςιμοποιθκοφν εν γζνει δεν κα μπουν αργότερα Καλι πρακτικι ε κάκε μονάδα ε κάκε τμιμα always /*************************** * Comments on module test: * Module test comprises of * the following components **************************/ module test; // Line comment 2 6

Περιεχόμενα Περιγραφζσ και υνκζςιμεσ Δομζσ Καμπφλθ Παρζτο D FF φγχρονθ, αςφγχρονθ αρχικοποίθςθ Με ενεργοποίθςθ (enable) T FF Μετρθτζσ Με ανάκεςθ τιμισ Πάνω/Κάτω υςςωρευτισ Ολιςκθτζσ ειριακι είςοδοσ, Παράλλθλθ ζξοδοσ Παράλλθλθ είςοδοσ, ειριακι ζξοδοσ Πολλαπλαςιαςτισ/Διαιρζτθσ Ολιςκθτισ «Βαρζλι» (Barrel) Πολυπλζκτεσ Κωδικοποιθτζσ/Από-κωδικοποιθτζσ Κωδικοποίθςθ με Προτεραιότθτεσ Ακροιςτζσ υγκριτζσ Ανιχνευτισ Ακμισ D Latch φγχρονθ, Αςφγχρονθ Μνιμθ 3 Verilog και Λογική Σύνθεςη Η διαδικαςία φνκεςθσ μετατρζπει τθν περιγραφι Verilog ςε:. Περιγραφι ςε επίπεδο πυλών 2. Απεικόνιςθ ςε βιβλιοκικθ πυλών επιλογι μεγεκών Η διαδικαςία ακολουκεί μια καμπφλθ Παρζτο Πολλαπλά ςθμεία (Εμβαδοφ, Κακυςτζρθςθσ) ανάλογα με τουσ περιοριςμοφσ Εμβαδό (μm 2 ) Καμπύλη Παρέτο (Pareto) Μη ΒέληιζηηΛύζη Βέληιζηες Λύζεις Καθσζηέρηζη (ns) 4 7

Συνθέςιμο Υποςύνολο τησ Verilog Εκφράςεισ Λζξεισ Κλειδιά χόλια Οριςμόσ κυρών Παράμετροι Οριςμόσ Μονάδων ιματα και Μεταβλθτζσ Εμφανίςεισ input, output, inout parameter module -- module wire, reg Εμφανίςεισ Μονάδων, Θεμελιώδεισ Πφλεσ Προτάςεισ Διαδικαςιών always, if, else, case Όχι initial Σμιματα Διαδικαςιών -- mymux(sel, a, b, out); nand nand4_i (out, a, b, c, d); Ροι Δεδομζνων assign Αγνοοφνται οι Κακυςτεριςεισ Σελεςτζσ +, -, ~, &, ^, ==,!= Προςοχι: *, /, % υναρτιςεισ, Διαδικαςίεσ function, task Μόνο υνδυαςτικι Λογικι Βρόχοι for, while Μόνο για ανακζςεισ, 5 εμφανίςεισ Περιεχόμενα Περιγραφζσ και υνκζςιμεσ Δομζσ Καμπφλθ Παρζτο D FF φγχρονθ, αςφγχρονθ αρχικοποίθςθ Με ενεργοποίθςθ (enable) T FF Μετρθτζσ Με ανάκεςθ τιμισ Πάνω/Κάτω υςςωρευτισ Ολιςκθτζσ ειριακι είςοδοσ, Παράλλθλθ ζξοδοσ Παράλλθλθ είςοδοσ, ειριακι ζξοδοσ Πολλαπλαςιαςτισ/Διαιρζτθσ Ολιςκθτισ «Βαρζλι» (Barrel) Πολυπλζκτεσ Κωδικοποιθτζσ/Από-κωδικοποιθτζσ Κωδικοποίθςθ με Προτεραιότθτεσ Ακροιςτζσ υγκριτζσ Ανιχνευτισ Ακμισ D Latch φγχρονθ, Αςφγχρονθ Μνιμθ 6 8

Καταχωρητέσ module Reg(Q, D, Clk); parameter N = 6; input Clk; input [N-:0] D; output [N-:0] Q; reg [N-:0] Q; D[N-:0] D Q Q[N-:0] always @(posedge Clk) Q <= D; module Clk 7 Καταχωρητέσ module RegRst(Q, D, CLR, Clk); parameter N = 6; input CLR, Clk; input [N-:0] D; output [N-:0] Q; reg [N-:0] Q; always @(posedge Clk or posedge CLR) if (CLR) Q <= 0; else Q <= D; module D[N-:0] D Q RST CLR Clk Q[N-:0] 8 9

Καταχωρητέσ module Reg(Q, D, CLK, Clk); parameter N = 6; input Clk; input [N-:0] D; output [N-:0] Q; reg [N-:0] Q; always @(posedge Clk) if (CLR) Q <= 0; else Q <= D; module D[N-:0] N b0 CLR 0 D Clk Q Q[N-:0] 9 Καταχωρητέσ module RegLd(Q, D, CE, Clk); parameter N = 6; input CE, Clk; input [N-:0] D; output [N-:0] Q; reg [N-:0] Q; always @(posedge Clk) if (CE) Q <= D; module CE 0 D[N-:0] D Q Clk Q[N-:0] 20 0

Καταχωρητέσ module RegLd(Q, D, CE, Clk); parameter N = 6; input CE, Clk; input [N-:0] D; output [N-:0] Q; reg [N-:0] Q; always @(posedge Clk) if (CE) Q <= D; module D[N-:0] D Q CE EN Clk Q[N-:0] 2 Καταχωρητέσ module Reg(Q, D, CLK, SET, Clk); parameter N = 6; input Clk; input [N-:0] D; output [N-:0] Q; reg [N-:0] Q; always @(posedge Clk) if (CLR) Q <= 0; else if (SET) Q <= ; else Q <= D; module 22 D[N-:0] N b N b0 SET 0 CLR 0 Q[N-:0] D Q Clk

Περιεχόμενα Περιγραφζσ και υνκζςιμεσ Δομζσ Καμπφλθ Παρζτο D FF φγχρονθ, αςφγχρονθ αρχικοποίθςθ Με ενεργοποίθςθ (enable) T FF Μετρθτζσ Με ανάκεςθ τιμισ Πάνω/Κάτω υςςωρευτισ Ολιςκθτζσ ειριακι είςοδοσ, Παράλλθλθ ζξοδοσ Παράλλθλθ είςοδοσ, ειριακι ζξοδοσ Πολλαπλαςιαςτισ/Διαιρζτθσ Ολιςκθτισ «Βαρζλι» (Barrel) Πολυπλζκτεσ Κωδικοποιθτζσ/Από-κωδικοποιθτζσ Κωδικοποίθςθ με Προτεραιότθτεσ Ακροιςτζσ υγκριτζσ Ανιχνευτισ Ακμισ D Latch φγχρονθ, Αςφγχρονθ Μνιμθ 23 Καταχωρητέσ module Tff(Out, Toggle, Clk); output Out; input Toggle, Clk; reg Out; always @(posedge Clk or posedge reset) if (reset) Out <= 0; else if (Toggle) Out <= ~Out; module TOGGLE reset D Q RST Clk Out 24 2

Περιεχόμενα Περιγραφζσ και υνκζςιμεσ Δομζσ Πολυπλζκτεσ Καμπφλθ Παρζτο Κωδικοποιθτζσ/Από-κωδικοποιθτζσ D FF Κωδικοποίθςθ με Προτεραιότθτεσ φγχρονθ, αςφγχρονθ αρχικοποίθςθ Με ενεργοποίθςθ (enable) T FF Μετρθτζσ Με ανάκεςθ τιμισ Πάνω/Κάτω Ακροιςτζσ υγκριτζσ Ανιχνευτισ Ακμισ D Latch φγχρονθ, Αςφγχρονθ Μνιμθ υςςωρευτισ Ολιςκθτζσ ειριακι είςοδοσ, Παράλλθλθ ζξοδοσ Παράλλθλθ είςοδοσ, ειριακι ζξοδοσ Πολλαπλαςιαςτισ/Διαιρζτθσ Ολιςκθτισ «Βαρζλι» (Barrel) 25 Μετρητήσ module counter (C, CLR, Q); input C, CLR; output [3:0] Q; reg [3:0] tmp; always @(posedge C) if (CLR) tmp <= 4'b0000; else tmp <= tmp + 'b; 4 b 4 b0 + CLR 0 D Q Q[3:0] assign Q = tmp; module 4 26 3

Μετρητήσ module counter(c, D, LOAD, Q); input C, D, LOAD; output [3:0] Q; reg [3:0] tmp; always @(posedge C or posedge CLR) if (LOAD) tmp <= D; else tmp <= tmp + 'b; D 4 b + LOAD 0 CLR 4 D RST Q Q[3:0] assign Q = tmp; module 27 Μετρητήσ module counter(c, D, LOAD, CLR, Q); input C, D, LOAD; output [3:0] Q; reg [3:0] tmp; always @(posedge C) if (CLR) tmp = 4 b0; else if (LOAD) tmp <= D; else tmp <= tmp + 'b; assign Q = tmp; module D 4 b + 4 b0 LOAD 0 CLR 0 4 D Q Q[3:0] 28 4

Μετρητήσ module counter(c, D, UP, CLR, Q); input C, D, LOAD; output [3:0] Q; reg [3:0] tmp; always @(posedge C) if (CLR) tmp = 4 b0; else if (UP) tmp <= tmp + b; else tmp <= tmp - 'b; assign Q = tmp; Endmodule 4 b- 4 b + + CLR 4 b0 0 0 UP 4 D Q Q[3:0] 29 Μετρητήσ module Cnt(Out, Zero, En, Clear, Clk); parameter N = 32; parameter MaxCnt = 00; input En, Clear, Clk; output Zero; output [N-:0] Out; reg [N-:0] Out; reg Zero; always @(posedge Clk) if(clear) Out <= 0; Zero <= 0; else if (En) if (Out == MaxCnt) Out <= 0; Zero <= ; else Out <= Out + ; Zero <= 0; module 30 Σι λειτουργία ζχει αυτό το κφκλωμα; Σι κυκλωματικι μορφι; 5

Περιεχόμενα Περιγραφζσ και υνκζςιμεσ Δομζσ Πολυπλζκτεσ Καμπφλθ Παρζτο Κωδικοποιθτζσ/Από-κωδικοποιθτζσ D FF Κωδικοποίθςθ με Προτεραιότθτεσ φγχρονθ, αςφγχρονθ αρχικοποίθςθ Με ενεργοποίθςθ (enable) T FF Μετρθτζσ Με ανάκεςθ τιμισ Πάνω/Κάτω Ακροιςτζσ υγκριτζσ Ανιχνευτισ Ακμισ D Latch φγχρονθ, Αςφγχρονθ Μνιμθ υςςωρευτισ Ολιςκθτζσ ειριακι είςοδοσ, Παράλλθλθ ζξοδοσ Παράλλθλθ είςοδοσ, ειριακι ζξοδοσ Πολλαπλαςιαςτισ/Διαιρζτθσ Ολιςκθτισ «Βαρζλι» (Barrel) 3 Συςςωρευτήσ module counters (C, CLR, Q); input C, CLR; output [3:0] Q; reg [3:0] tmp; always @(posedge C) if (CLR) tmp <= 4'b0000; else tmp <= tmp + d; d 4 b0 + CLR 0 D Q Q[3:0] assign Q = tmp; module 4 32 6

Περιεχόμενα Περιγραφζσ και υνκζςιμεσ Δομζσ Καμπφλθ Παρζτο D FF φγχρονθ, αςφγχρονθ αρχικοποίθςθ Με ενεργοποίθςθ (enable) T FF Μετρθτζσ Με ανάκεςθ τιμισ Πάνω/Κάτω υςςωρευτισ Ολιςκθτζσ ειριακι είςοδοσ, Παράλλθλθ ζξοδοσ Παράλλθλθ είςοδοσ, ειριακι ζξοδοσ Πολλαπλαςιαςτισ/Διαιρζτθσ Ολιςκθτισ «Βαρζλι» (Barrel) Πολυπλζκτεσ Κωδικοποιθτζσ/Από-κωδικοποιθτζσ Κωδικοποίθςθ με Προτεραιότθτεσ Ακροιςτζσ υγκριτζσ Ανιχνευτισ Ακμισ D Latch φγχρονθ, Αςφγχρονθ Μνιμθ 33 Ολιςθητήσ module shift(clk, SI, SO); input C, SI; output SO; reg [7:0] tmp; always @(posedge CLK) tmp = {tmp[6:0], SI}; assign SO = tmp[7]; module tmp[7] SO tmp[0] SI 34 7

Ολιςθητήσ module SIPO(CLK, SI, PO); input C, SI; output SO; reg [7:0] tmp; always @(posedge CLK) tmp = {tmp[6:0], SI}; assign PO = temp; module tmp[7] PO[7:0] tmp[0] SI 35 Ολιςθητήσ module PISO(CLK, D, LOAD, SI, SO); input C, LOAD; input [7:0] D; output SO; reg [7:0] tmp; always @(posedge CLK) if (LOAD) tmp = D; else tmp = {tmp[6:0], SI}; assign SO = temp[7]; module LOAD LOAD tmp[7] SO tmp[0] SI PI[7:0] 36 8

Ολιςθητήσ Περιγραφή με ςυνζνωςη module SHIFT2(CLK, MULT, LOAD, D, F); input C, MULT, LOAD; input [7:0] D; output [7:0] F; reg [7:0] tmp; always @(posedge CLK) if (LOAD) tmp = D; else if (MULT) tmp = {tmp[5:0], 2 b00}; else tmp = {2 b00, tmp[7:2]}; assign F = tmp; module 37 Περιγραφή με τελεςτή ολίςθηςησ module SHIFT2(CLK, MULT, LOAD, D, F); input C, MULT, LOAD; input [7:0] D; output [7:0] F; reg [7:0] tmp; always @(posedge CLK) if (LOAD) tmp = D; else if (MULT) tmp = tmp << 2; else tmp = tmp >> 2; assign F = tmp; module Ολιςθητήσ module SHIFT(DI, SEL, SO); input [7:0] DI; output [:0] SEL; reg [7:0] SO; always @(DI or SEL) case (SEL) 2 b00 : SO = DI; 2 b0 : SO = DI << ; 2 b0 : SO = DI << 2; default : SO = DI << 3; case module DI[0] DI[] DI[2] DI[7] SEL[:0] SO[0] SO[] SO[2] SO[3] SO[7] 38 9

Περιςτροφικόσ Ολιςθητήσ (Barrel Shift) module BARRELSHIFT(CLK, D, LOAD, SI, SO); input C, LOAD; input [7:0] D; output SO; reg [7:0] tmp; always @(posedge CLK or posedge reset) if (reset) tmp = 8 b0; else if (LOAD) tmp = D; else tmp = {tmp[6:0], temp[7]}; module LOAD tmp[7] LOAD tmp[0] PI[7:0] 39 Παραμετρικόσ Περιςτροφικόσ Ολιςθητήσ module BarShiftReg(Out, In, Ld, Shift, Clk, Reset); parameter N = 32; input Ld, Shift, Clk, Reset; input [N-:0] In; output [N-:0] Out; reg [N-:0] Out; always @(posedge Clk) if (~Reset) Out <= 0; else if (Ld) Out <= In; else if (Shift) Out <= {Out[N-2:0],Out[N-]}; Endmodule 40 20

Περιεχόμενα Περιγραφζσ και υνκζςιμεσ Δομζσ Καμπφλθ Παρζτο D FF φγχρονθ, αςφγχρονθ αρχικοποίθςθ Με ενεργοποίθςθ (enable) T FF Μετρθτζσ Με ανάκεςθ τιμισ Πάνω/Κάτω υςςωρευτισ Ολιςκθτζσ ειριακι είςοδοσ, Παράλλθλθ ζξοδοσ Παράλλθλθ είςοδοσ, ειριακι ζξοδοσ Πολλαπλαςιαςτισ/Διαιρζτθσ Ολιςκθτισ «Βαρζλι» (Barrel) Πολυπλζκτεσ Κωδικοποιθτζσ/Από-κωδικοποιθτζσ Κωδικοποίθςθ με Προτεραιότθτεσ Ακροιςτζσ υγκριτζσ Ανιχνευτισ Ακμισ D Latch φγχρονθ, Αςφγχρονθ Μνιμθ 4 Πολυπλέκτησ module mux2(out, In, In0, Sel); parameter N = 6; output [N-:0] Out; input [N-:0] In, In0; input Sel; wire [N-:0] Out = Sel? In : In0; In[N:0] In2[N:0} Sel 0 Out[N:0] module 42 2

Πολυπλέκτησ module mux4(out, In3, In2, In, In0, Sel); parameter N = 32; input [ :0] Sel; input [N-:0] In3, In2, In, In0; output [N-:0] Out; reg [N-:0] Out; always @(In0 or In or In2 or In3 or Sel) case ( Sel ) 2'b00 : Out <= In0; 2'b0 : Out <= In; 2'b0 : Out <= In2; 2'b : Out <= In3; case module In0[N:0] In[N:0} In2[N:0} In3[N:0} Sel 00 0 0 Out[N:0] 43 Πολυπλέκτησ module mux4(out, In3, In2, In, In0, Sel); parameter N = 32; input [ :0] Sel; input [N-:0] In3, In2, In, In0; output [N-:0] Out; reg [N-:0] Out; always @(In0 or In or In2 or In3 or Sel) case ( Sel ) 2'b00 : Out <= In0; 2'b0 : Out <= In; default : Out <= In2; case module Sel In0[N:0] In[N:0} 00 In2[N:0} 0 In2[N:0} 0 Out[N:0] 44 22

Περιεχόμενα Περιγραφζσ και υνκζςιμεσ Δομζσ Καμπφλθ Παρζτο D FF φγχρονθ, αςφγχρονθ αρχικοποίθςθ Με ενεργοποίθςθ (enable) T FF Μετρθτζσ Με ανάκεςθ τιμισ Πάνω/Κάτω υςςωρευτισ Ολιςκθτζσ ειριακι είςοδοσ, Παράλλθλθ ζξοδοσ Παράλλθλθ είςοδοσ, ειριακι ζξοδοσ Πολλαπλαςιαςτισ/Διαιρζτθσ Ολιςκθτισ «Βαρζλι» (Barrel) Πολυπλζκτεσ Κωδικοποιθτζσ/Από-κωδικοποιθτζσ Κωδικοποίθςθ με Προτεραιότθτεσ Ακροιςτζσ υγκριτζσ Ανιχνευτισ Ακμισ D Latch φγχρονθ, Αςφγχρονθ Μνιμθ 45 Κωδικοποιητήσ module encoder (sel, res); input [7:0] res; output [2:0] sel; reg [7:0] sel; always @(res) case (res) 8'b0000000 : sel = 3'b000; 8'b0000000 : sel = 3'b00; 8'b0000000 : sel = 3'b00; 8'b0000000 : sel = 3'b0; 8'b0000000 : sel = 3'b00; 8'b0000000 : sel = 3'b0; 8'b0000000 : sel = 3'b0; default : sel = 3'b; case module res res res res == 0000000 000 == 0000000 00 == 0000000 00 == 0000000 0 3 3 3 3 sel 46 23

Από-κωδικοποιητήσ module decoder (sel, res); input [2:0] sel; output [7:0] res; reg [7:0] res; always @(sel) case (sel) 3'b000 : res = 8'b0000000; 3'b00 : res = 8'b0000000; 3'b00 : res = 8'b0000000; 3'b0 : res = 8'b0000000; 3'b00 : res = 8'b0000000; 3'b0 : res = 8'b0000000; 3'b0 : res = 8'b0000000; default : res = 8'b0000000; case module res == 000 0000000 res == 00 0000000 res == 00 0000000 res == 0 0000000 000000 8 8 8 8 sel 47 Κωδικοποιητήσ Υλοποίηςη με case module encoder (sel, res); input [7:0] res; output [2:0] sel; reg [7:0] sel; always @(res) case (res) 8'b0000000 : sel = 3'b000; 8'b0000000 : sel = 3'b00; 8'b0000000 : sel = 3'b00; 8'b0000000 : sel = 3'b0; 8'b0000000 : sel = 3'b00; 8'b0000000 : sel = 3'b0; 8'b0000000 : sel = 3'b0; default : sel = 3'b; case module Υλοποίηςη με for module encoder(in, Out); input [7:0] In; output [2:0] Out; reg [2:0] Out; integer i; always @(In) Out = 0; for (i=0; i<8; i=i+) if (In[i]) Out=i; module 48 24

Περιεχόμενα Περιγραφζσ και υνκζςιμεσ Δομζσ Καμπφλθ Παρζτο D FF φγχρονθ, αςφγχρονθ αρχικοποίθςθ Με ενεργοποίθςθ (enable) T FF Μετρθτζσ Με ανάκεςθ τιμισ Πάνω/Κάτω υςςωρευτισ Ολιςκθτζσ ειριακι είςοδοσ, Παράλλθλθ ζξοδοσ Παράλλθλθ είςοδοσ, ειριακι ζξοδοσ Πολλαπλαςιαςτισ/Διαιρζτθσ Ολιςκθτισ «Βαρζλι» (Barrel) Πολυπλζκτεσ Κωδικοποιθτζσ/Από-κωδικοποιθτζσ Κωδικοποίθςθ με Προτεραιότθτεσ Ακροιςτζσ υγκριτζσ Ανιχνευτισ Ακμισ D Latch φγχρονθ, Αςφγχρονθ Μνιμθ 49 Από-κωδικοποιητήσ Υλοποίηςη με case module decoder (sel, res); input [2:0] sel; output [7:0] res; reg [7:0] res; always @(sel) case (sel) 3'b000 : res = 8'b0000000; 3'b00 : res = 8'b0000000; 3'b00 : res = 8'b0000000; 3'b0 : res = 8'b0000000; 3'b00 : res = 8'b0000000; 3'b0 : res = 8'b0000000; 3'b0 : res = 8'b0000000; default : res = 8'b0000000; case module Υλοποίηςη με for module decoder(in, Out); input [2:0] In; output [7:0] Out; reg [7:0] Out; reg [7:0] tmp; integer i; always @(In) tmp = 0; for (i=0; i<8; i=i+) if (In == i) tmp[i]=; Out = tmp; module 50 25

Κωδικοποιητήσ με if Λογική με Προτεραιότητεσ module encoder(i, e); input [3:0] i; output [:0] e; reg [:0] e; always @(i) if (i[0]) e = 2 b00; else if (i[]) e = 2 b0; else if (i[2]) e = 2 b0; else if (i[3]) e = 2 b; else e = 2 bxx; module 2 b00 2 b 2 b0 2 b0 2 b00 0 0 0 0 i[3] i[2] i[] i[0] e[:0] 5 Κωδικοποιητήσ με if Λογική με Προτεραιότητεσ module encoder(i, e); input [3:0] i; output [:0] e; reg [:0] e; always @(i) if (i == 4 b000) e = 2 b00; else if (i == 4 b000) e = 2 b0; else if (i == 4 b000) e = 2 b0; else if (i == 4 b000) e = 2 b; else e = 2 bxx; module i i3 i3 i2 e[0] e[] 52 26

Περιεχόμενα Περιγραφζσ και υνκζςιμεσ Δομζσ Καμπφλθ Παρζτο D FF φγχρονθ, αςφγχρονθ αρχικοποίθςθ Με ενεργοποίθςθ (enable) T FF Μετρθτζσ Με ανάκεςθ τιμισ Πάνω/Κάτω υςςωρευτισ Ολιςκθτζσ ειριακι είςοδοσ, Παράλλθλθ ζξοδοσ Παράλλθλθ είςοδοσ, ειριακι ζξοδοσ Πολλαπλαςιαςτισ/Διαιρζτθσ Ολιςκθτισ «Βαρζλι» (Barrel) Πολυπλζκτεσ Κωδικοποιθτζσ/Από-κωδικοποιθτζσ Κωδικοποίθςθ με Προτεραιότθτεσ Ακροιςτζσ υγκριτζσ Ανιχνευτισ Ακμισ D Latch φγχρονθ, Αςφγχρονθ Μνιμθ 53 Αθροιςτήσ module adder(a, b, sum); input [7:0] a, b; output [7:0] sum; assign sum = a + b; module a[7:0] b[7:0] + sum[7:0] 54 27

Αθροιςτήσ με κρατούμενο module adder(a, b, sum); input [7:0] a, b; output [7:0] sum; output co; wire [8:0] temp; a[7:0] assign temp = a + b; assign sum = temp[7:0]; assign co = temp[8]; b[7:0] + sum[7:0] co module 55 Αθροιςτήσ με πρόςημο module adder(a, b, sum); input signed [7:0] a, b; output signed [7:0] sum; assign sum = a + b; module a[7:0] b[7:0] + sum[7:0] 56 28

Περιεχόμενα Περιγραφζσ και υνκζςιμεσ Δομζσ Καμπφλθ Παρζτο D FF φγχρονθ, αςφγχρονθ αρχικοποίθςθ Με ενεργοποίθςθ (enable) T FF Μετρθτζσ Με ανάκεςθ τιμισ Πάνω/Κάτω υςςωρευτισ Ολιςκθτζσ ειριακι είςοδοσ, Παράλλθλθ ζξοδοσ Παράλλθλθ είςοδοσ, ειριακι ζξοδοσ Πολλαπλαςιαςτισ/Διαιρζτθσ Ολιςκθτισ «Βαρζλι» (Barrel) Πολυπλζκτεσ Κωδικοποιθτζσ/Από-κωδικοποιθτζσ Κωδικοποίθςθ με Προτεραιότθτεσ Ακροιςτζσ υγκριτζσ Ανιχνευτισ Ακμισ D Latch φγχρονθ, Αςφγχρονθ Μνιμθ 57 Συγκριτήσ module comparator(a, b, cmp); input [7:0] a,b; output cmp; assign cmp = (a>b)? b : b0; module a[7:0] b[7:0] - 0 cmp 58 29

Περιεχόμενα Περιγραφζσ και υνκζςιμεσ Δομζσ Πολυπλζκτεσ Καμπφλθ Παρζτο Κωδικοποιθτζσ/Από-κωδικοποιθτζσ D FF Κωδικοποίθςθ με Προτεραιότθτεσ φγχρονθ, αςφγχρονθ αρχικοποίθςθ Με ενεργοποίθςθ (enable) T FF Μετρθτζσ Με ανάκεςθ τιμισ Πάνω/Κάτω Ακροιςτζσ υγκριτζσ Ανιχνευτισ Ακμισ D Latch φγχρονθ, Αςφγχρονθ Μνιμθ υςςωρευτισ Ολιςκθτζσ ειριακι είςοδοσ, Παράλλθλθ ζξοδοσ Παράλλθλθ είςοδοσ, ειριακι ζξοδοσ Πολλαπλαςιαςτισ/Διαιρζτθσ Ολιςκθτισ «Βαρζλι» (Barrel) 59 Ανιχνευτήσ Ακμήσ module posedgdet(out, In, Clk); input In, Clk; output Out; reg Tmp; always @(posedge Clk) Tmp <= In; In D Q Tmp Out wire Out = ~Tmp & In; module 60 30

Περιεχόμενα Περιγραφζσ και υνκζςιμεσ Δομζσ Καμπφλθ Παρζτο D FF φγχρονθ, αςφγχρονθ αρχικοποίθςθ Με ενεργοποίθςθ (enable) T FF Μετρθτζσ Με ανάκεςθ τιμισ Πάνω/Κάτω υςςωρευτισ Ολιςκθτζσ ειριακι είςοδοσ, Παράλλθλθ ζξοδοσ Παράλλθλθ είςοδοσ, ειριακι ζξοδοσ Πολλαπλαςιαςτισ/Διαιρζτθσ Ολιςκθτισ «Βαρζλι» (Barrel) Πολυπλζκτεσ Κωδικοποιθτζσ/Από-κωδικοποιθτζσ Κωδικοποίθςθ με Προτεραιότθτεσ Ακροιςτζσ υγκριτζσ Ανιχνευτισ Ακμισ D Latch φγχρονθ, Αςφγχρονθ Μνιμθ 6 Μανταλωτήσ module Latch(In, Out, Ld); parameter N = 6; input [N-:0] In; input Ld; output [N-:0] Out; In[N-:0] D Q Out[N-:0] reg [N-:0] Out; always @(In or Ld) if (Ld) Out = In; module G Ld 62 3

Περιεχόμενα Περιγραφζσ και υνκζςιμεσ Δομζσ Καμπφλθ Παρζτο D FF φγχρονθ, αςφγχρονθ αρχικοποίθςθ Με ενεργοποίθςθ (enable) T FF Μετρθτζσ Με ανάκεςθ τιμισ Πάνω/Κάτω υςςωρευτισ Ολιςκθτζσ ειριακι είςοδοσ, Παράλλθλθ ζξοδοσ Παράλλθλθ είςοδοσ, ειριακι ζξοδοσ Πολλαπλαςιαςτισ/Διαιρζτθσ Ολιςκθτισ «Βαρζλι» (Barrel) Πολυπλζκτεσ Κωδικοποιθτζσ/Από-κωδικοποιθτζσ Κωδικοποίθςθ με Προτεραιότθτεσ Ακροιςτζσ υγκριτζσ Ανιχνευτισ Ακμισ D Latch φγχρονθ, Αςφγχρονθ Μνιμθ 63 Σύγχρονη RAM module ramsync (clk,we,addr, di, do); input clk, we, en; input [5:0] addr; input [5:0] di; output [5:0] do; reg [5:0] do; reg [5:0] RAM [63:0]; always @(posedge clk) if (we) RAM[addr]<=di; do <= RAM[addr]; module we di addr clk RAM[63:0] x [5:0] do 64 32

Αςύγχρονη RAM ωσ προσ την ανάγνωςη module ramsync (clk,we,addr, di, do); input clk, we, en; input [5:0] addr; input [5:0] di; output [5:0] do; wire [5:0] do; reg [5:0] RAM [63:0]; always @(posedge clk) if (we) RAM[addr]<=di; assign do <= RAM[addr]; module 65 we di addr clk RAM[63:0] x [5:0] do Synthesis Tool Manual Διαβάςτε τι υποςτθρίηει και τι όχι το synthesis tool 66 33