DedSec Project

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 — Τεχνικά σημεία και συχνές παγίδες

Τεχνική γνώση

  1. Οι nonblocking και blocking αναθέσεις διαφέρουν, ιδιαίτερα σε διαδοχική λογική.
  2. Φτιάξε testbench με γνωστό ρολόι και reset.
  3. Η επιτυχημένη προσομοίωση δεν αποδεικνύει σύνθεση ή τήρηση χρονισμού.