Autore | Titolo | Year | Link |
---|---|---|---|
M. Danelutto | Note Verilog | 2015 | |
Peter M. Nyasulu and J. Knight | Introduction to Verilog | 2005 | |
Deepak Kumar Tala | Verilog tutorial | 2003 | |
Rajeev Madhavan | Verilog quick reference | 1995 | |
Stephen A. Edwards | Slides of a Verilog course | 2002 | |
Stuart Sutherland | Verilog HDL Quick Reference Guide | 2001 |
Una buona trattazione della modellazione di reti combinatorie e sequenziali si trova anche nel Capitolo 4 del libro “Digital Design and Computer Architecture” di D. M. Harris e S. L. Harris, edito da Morgan Kaupfman.
La quarta edizione (italiana, corrisponde alla 5a edizione inglese) dell'Hennessy Patterson (Struttura e progetto dei calcolatori) ha un'appendice (Appendix B: The Basics of Logic Design) che può essere considerata come introduzione all'utilizzo di Verilog per la modellazione dei componenti che vediamo nel corso di AE
Questo documento PDF contiene i progetti validi per l'anno accademico 2018-19.
Utilizziamo iverilog (Icarus Verilog) in quanto è una piattaforma Verilog open source, con port per Linux, Windows e Mac OS X.
Segui questo link per le istruzioni per l'utilizzo dei tool Verilog.
Segui questo link per le istruzioni su come implementare reti combinatorie in Verilog.
reti combinatorie realizzate con primitive
Segui questo link per le istruzioni su come implementare reti sequenziali in Verilog.
Versione corretta del sincronizzatore a transizione di livelli in ingresso.
Riporto alcune note a integrazione di quanto detto a lezione relativamente al progetto Verilog.
Potete realizzare reti sequenziali, secondo il modello di Moore o di Mealy, in due modi distinti:
always @(lista delle variabili lette per il calcolo del nuovo stato) begin ... end
. Assegnate il nuovo stato allo stato corrente in un
always @(negedge clock) begin ... end
. Infine, calcolate le uscite come funzione di stato corrente e (solo nel caso Mealy) degli ingressi e le assegnate alla variabile che rappresenta l'uscita del modulo con un assegnamento continuo
assign uscitamodulo = ...
. In questo caso, i ritardi per la generazione del valore dello stato successivo e delle uscite devono essere gestiti mediante ritardi
#numero_t_p
piazzati opportunamente nella assign e nella generazione del nuovo stato all'interno dello switch.
Utilizzate il timescale di default, considerando che l'unità corrisponde ad un tp. Questo vuol dire *non* mettere come istruzione del programma test bench alcuna istruzione tipo
`timescale 1ns / 1ps
Il metodo corretto per svolgere il progetto è il seguente:
Potete anche provare a realizzare un'unità direttamente nel suo complesso utilizzando il modo behavioural di Verilog, ma in questo modo il successo dell'operazione non dipende da una serie di passi formali, ciascuno singolarmente verificabile, e di conseguenza debugging e tuning della soluzione sono più complicati.
Torna alla pagina principale Verilog