verilog — συγκεντρωτικός οδηγός — DedSec Project
verilog — συγκεντρωτικός οδηγός Verilog Συνήθης χρήση: Περιγραφή υλικού. Προτεινόμενη επέκταση αρχείου: .v . Εκτέλεση / περιβάλλον: Εκτέλεση με προσομοιωτή Verilog, π.χ. Icarus. Αρχικό…
Verilog
Συνήθης χρήση: Περιγραφή υλικού.
Προτεινόμενη επέκταση αρχείου: .v.
Εκτέλεση / περιβάλλον: Εκτέλεση με προσομοιωτή Verilog, π.χ. Icarus.
Αρχικό παράδειγμα
module hello;
initial begin
$display("Hello, Ada!");
$finish;
end
endmodule
Πώς διαβάζεται
Η περιγραφή υλικού προσομοιώνεται ή συντίθεται, όχι όπως η Python.
Συνηθισμένο λάθος
Η περιγραφή υλικού προσομοιώνεται ή συντίθεται, όχι όπως η Python. Έλεγξε την έκδοση διερμηνευτή/μεταγλωττιστή και μην εκλαμβάνεις το δείγμα ως έτοιμη εφαρμογή παραγωγής.
Verilog — Αναλυτικός οδηγός εξάσκησης
Μικρή αφετηρία πηγαίου κώδικα
module hello;
initial begin
$display("Hello, Ada!");
$finish;
end
endmodule
Περιβάλλον: Run with a Verilog simulator such as Icarus Verilog.. Κράτησε αντίγραφο του αρχικού κώδικα και σημείωσε έκδοση εργαλείου. Ξεχώρισε αν η εκτέλεση επιστρέφει τιμή, εμφανίζει κείμενο ή αλλάζει state. Για τις πρώτες δοκιμές χρησιμοποίησε απομονωμένο περιβάλλον, όχι πραγματικούς λογαριασμούς ή δεδομένα.
Ανάλυση του ιδιαίτερου μηχανισμού
Υλοποίησε multiplexer δύο εισόδων με always @* και εξέτασε όλα τα combinations selector/data. Έλεγξε αν προκύπτει latch.
Διάγνωση κρίσιμου ορίου
Ένα branch που λείπει μπορεί να δημιουργήσει latch. Δοκίμασε X/Z και ξεχώρισε four-state λογική από boolean.
Verilog — Τεχνικά σημεία και συχνές παγίδες
Τεχνική γνώση
- Οι nonblocking και blocking αναθέσεις διαφέρουν, ιδιαίτερα σε διαδοχική λογική.
- Φτιάξε testbench με γνωστό ρολόι και reset.
- Η επιτυχημένη προσομοίωση δεν αποδεικνύει σύνθεση ή τήρηση χρονισμού.