Oι διορθώσεις των εργασιών έχουν τελειώσει και οι βαθμοί θα ανέβουν σύντομα στο elearning. Ενδεικτικά να αναφέρω briefly δύο λάθη τα οποία έγιναν από αρκετό κόσμο, γιατί είναι κρίμα να χάνεις το 10 από αυτά.
1) Διαφορά Structural - Behavioral Verilog
Όταν μιλάμε για "Structural Verilog" αναφερόμαστε σε κώδικα (modules) που περιέχει primitives της Verilog (πύλες not, and, or, etc). Αυτά τα primitives θα πρέπει (όταν φορτώσετε τα Verilog Files σε κάποιον προσομοιωτή) να μπορούν να αναγνωριστούν αυτόματα, δεν χρειάζεται δηλαδή να φτιάξετε εσείς δικό σας module "not" για να προσομοιώσετε την λειτουργία της πύλης not.
Όταν μιλάμε για "Behavioral Verilog" αναφερόμαστε σε κώδικα (modules) που περιγράφει την λογική μιας πράξης με έναν operator (π.χ. η and θα περιγραφεί με τον operator &, etc).
Παράδειγμα με παρόμοια λειτουργία και στις δύο περιπτώσεις:
Structural Verilog
input wire a;
output wire b;
not n1(b, a);
Behavioral Verilog
input wire a;
output wire b;
assign b = ~a;
Kάνω attach και μια εικόνα που περιγράφει τις διαφορές που ανέφερα.
2) Διαφορά Synchronous - Asynchronous reset
Όταν έχουμε synchronous reset, το reset του κυκλώματος θα συμβαίνει μόνο στην θετική ακμή ρολογιού, δηλαδή εφόσον το ρολόι σε μια θετική ακμή πετύχει σήμα reset = 1 (αν υποθέσουμε active high reset) τότε και μόνο τότε θα συμβεί το reset του κυκλώματος. Στα ασύγχρονα, το reset του κυκλώματος θα συμβεί με το που γίνει το σήμα reset ίσο με 1, ανεξάρτητα με το που βρίσκεται το clock εκείνη την στιγμή. Γενικά προτιμάμε σύγχρονα resets, γιατί τα ασύγχρονα μπορούν εύκολα να προκαλέσουν θέματα σε flip flops (π.χ. να πάει η έξοδος του flip flop σε unknown state).
Παράδειγμα Σύγχρονου reset σε Verilog:
always@(posedge clk)
if (reset) q <= 1'b0;
else q <= d;
Παράδειγμα Ασύγχρονου reset σε Verilog:
always@(posedge clk or posedge reset)
if (reset) q <= 1'b0;
else q <= d;
Όπως μπορείτε να δείτε η μόνη διαφορά είναι αν συμπεριλαμβάνουμε ή όχι το reset στο sensitivity list. Για περισσότερες λεπτομέρειες, here is the site: https://funrtl.wordpress.com/2017/11/12/synchronous-resets-asynchronous-resets/
Θα επανέλθω ξανά και με άλλα συνηθισμένα λάθη που έγιναν στις εργασίες. Επίσης, (παρένθεση) δεν έχω θέμα να χρησιμοποιείτε chatgpt για την εργασία, απλά μην το κάνετε τόσο προφανές ότι αντιγράψατε από εκεί (ξέρει το άτομο στο οποίο αναφέρομαι ).
by Aris★
[Today at 01:49:46]
by Katarameno
[Today at 01:36:07]
by Caterpillar
[March 28, 2024, 22:39:30 pm]
by Katarameno
[March 28, 2024, 19:36:53 pm]
by Katarameno
[March 28, 2024, 16:49:52 pm]
[March 28, 2024, 16:27:41 pm]
by Mr Watson
[March 28, 2024, 15:20:03 pm]
by Mr Watson
[March 28, 2024, 15:16:59 pm]
by chatzikys
[March 28, 2024, 14:05:50 pm]
by Geoth
[March 27, 2024, 19:32:20 pm]
by Caterpillar
[March 27, 2024, 19:31:51 pm]
by Caterpillar
[March 27, 2024, 19:26:01 pm]
by Don
[March 27, 2024, 18:49:01 pm]
by okan
[March 27, 2024, 12:59:35 pm]
by Katarameno
[March 27, 2024, 03:45:36 am]
by Katarameno
[March 27, 2024, 03:35:47 am]
by botrinis
[March 26, 2024, 22:57:40 pm]
by Nikos_313
[March 26, 2024, 13:04:44 pm]
by Nikos_313
[March 26, 2024, 13:01:19 pm]
by Caterpillar
[March 25, 2024, 20:03:17 pm]
Members
Total Members: 9552 Latest: tsaliki Stats Total Posts: 1417861 Total Topics: 31220 Online Today: 559 Online Ever: 901 (October 13, 2020, 15:39:09 pm) Users Online Users: 15 Guests: 531 Total: 546 |
|