informatica:ae:verilogpag
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente | ||
informatica:ae:verilogpag [18/10/2013 alle 05:54 (12 anni fa)] – Marco Danelutto | informatica:ae:verilogpag [03/01/2019 alle 15:47 (7 anni fa)] (versione attuale) – [Materiale disponibile online] Marco Danelutto | ||
---|---|---|---|
Linea 3: | Linea 3: | ||
==== Materiale disponibile online ==== | ==== Materiale disponibile online ==== | ||
- | * [[http:// | + | ^ Autore ^ Titolo ^ Year ^ Link ^ |
- | | + | | M. Danelutto |
- | * [[http:// | + | | Peter M. Nyasulu and J. Knight | Introduction to Verilog | 2005 | [[http:// |
- | | + | | Deepak Kumar Tala | Verilog |
- | | + | | Rajeev Madhavan | Verilog quick reference | 1995 | [[http:// |
+ | | Stephen A. Edwards | Slides of a Verilog course | 2002 | [[http:// | ||
+ | | Stuart Sutherland | Verilog | ||
Una buona trattazione della modellazione di reti combinatorie e sequenziali si trova anche nel Capitolo 4 del libro " | Una buona trattazione della modellazione di reti combinatorie e sequenziali si trova anche nel Capitolo 4 del libro " | ||
+ | La quarta edizione (italiana, corrisponde alla 5a edizione inglese) dell' | ||
+ | |||
+ | ==== Progetti Verilog A.A. 2018-19 (Corso A) ==== | ||
+ | |||
+ | Questo {{ : | ||
==== Software utilizzato per il corso ==== | ==== Software utilizzato per il corso ==== | ||
Linea 26: | Linea 34: | ||
Segui [[utilizzo_verilog|questo link]] per le istruzioni per l' | Segui [[utilizzo_verilog|questo link]] per le istruzioni per l' | ||
- | === Immagine Virtual Box === | + | |
- | Potete scaricare un' | + | ===== Reti combinatorie in Verilog ===== |
- | Per utilizzare l' | + | Segui [[reti_combinatorie|questo link]] per le istruzioni su come implementare reti combinatorie in Verilog. |
- | === Utilizzo presso il centro di calcolo (cli.di.unipi.it) === | + | reti combinatorie realizzate con {{https:// |
- | Al momento il compilatore Verilog (iverilog) e il simulatore (vvp) sono disponibili utilizzando nel PATH la directory | + | ===== Reti sequenziali in Verilog ===== |
- | / | + | Segui [[reti_sequenziali|questo link]] per le istruzioni su come implementare reti sequenziali in Verilog. |
- | / | + | |
- | + | ||
- | oppure settando opportunamente il PATH nella shell | + | |
- | export PATH=$PATH:/ | + | [[rdy2.vl|Versione corretta]] del sincronizzatore a transizione di livelli in ingresso. |
- | setenv PATH $PATH:/ | + | |
- | + | ||
- | Non è al momento disponibile gtkwave. | + | |
- | === Installazione del pacchetto sul proprio computer=== | + | ===== AE Verilog blog ===== |
- | * Ubuntu: da synaptic manager selezionare iverilog e installare via interfaccia grafica, fare altrettanto per gtkwave. Per dinotrace, vedi sezione Linux (generico) | + | Riporto alcune note a integrazione |
- | * Linux (generico): scaricare i pacchetti dai loro siti (vedi sopra). Tutti e tre i pacchetti (iverilog, dinotrace e gtkwave) si installano scompattando il tar.gz, entrando nella sottodirectory e dando i comandi 1) ./configure 2) make e 3) make install (per quest' | + | |
- | * Windows: scaricare l' | + | |
- | * Mac OS X: come per Linux generico. C'è anche un pacchetto macports. | + | |
- | === Shell === | + | ==== Reti sequenziali ==== |
- | Tutti i comandi vanno dati da riga di comando: | + | Potete realizzare reti sequenziali, |
+ | - realizzando un modulo Sigma e un modulo Omega, utilizzando un modulo Registro (come quello sulla dispensa) e collegandoli come nello schema classico presentato a lezione. Uscita di Omega uguale al wire di uscita del modulo, ingressi di Sigma presi dall' | ||
+ | - utilizzando il modo behavioural. Gli ingressi e le uscite del modulo sono sempre quelli del caso precedente. Vi definite una variabile di nuovo stato che assegnate in uno switch i cui casi dipendono | ||
- | * Linux: aprite un Terminal | + | ==== Timescale |
- | * Windows: da Programmi -> Accessori lanciate " | + | Utilizzate |
- | * Mac OS X: lanciate Terminal (è nella cartella Utility del folder Applications) | + | |
- | * | + | |
- | === Compilazione | + | |
- | Per compilare utilizzare il comando | + | |
- | + | ||
- | | + | |
- | dove i vari file .vl contengono i moduli utilizzati e il nomeFileOggetto alla fine della compilazione conterrà il codice oggetto. | + | |
- | + | ||
- | === Per eseguire una simulazione | + | |
- | Una volta compilato, utilizzare | + | |
- | + | ||
- | vvp nomeFileOggetto | + | |
- | Il programma viene fatto girare, vedrete a terminale le stampe dei comandi $monitor e $display. Se avete richiesto un $dumpvars con un $dumpfile(" | + | |
- | + | ||
- | === Visualizzazione === | + | |
- | Lanciate dinotrace o gtkwave con parametro il nome del file che contiene la traccia da visualizzare. | + | |
- | + | ||
- | dinotrace xyz.vcd | + | |
- | oppure | + | |
- | + | ||
- | gtkwave xzy.vcd | + | |
- | + | ||
- | ===== Reti combinatorie in Verilog ===== | + | |
+ | ==== Procedimento di realizzazione del progetto ==== | ||
+ | Il metodo corretto per svolgere il progetto è il seguente: | ||
+ | - studiare il problema e progettare l' | ||
+ | - operazioni esterne | ||
+ | - microcodice | ||
+ | - derivazione parte operativa e parte controllo | ||
+ | - tempo di servizio | ||
+ | - realizzare parte operativa e parte controllo in Verilog: | ||
+ | - per la parte controllo, realizzare una rete sequenziale standard (di Mealy) | ||
+ | - per la parte operativa, realizzare una rete come assemblaggio di componenti standard | ||
+ | - per ognuno dei moduli utilizzati (e.g. omegaPC, ALU, RegistroK, ...) preparate un test bench (modulo di test, senza parametri, che general una traccia visualizzabile con GTKwave) e controllarne la funzionalità | ||
+ | - realizzare un programma di prova per l' | ||
+ | - preparare la relazione | ||
+ | Potete anche provare a realizzare un' | ||
+ | ===== Indietro ===== | ||
+ | Torna alla [[http:// |
informatica/ae/verilogpag.1382075696.txt.gz · Ultima modifica: 18/10/2013 alle 05:54 (12 anni fa) da Marco Danelutto