Strumenti Utente

Strumenti Sito


informatica:ae:reti_combinatorie

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
informatica:ae:reti_combinatorie [18/10/2013 alle 07:53 (12 anni fa)] Marco Daneluttoinformatica:ae:reti_combinatorie [18/10/2013 alle 08:26 (12 anni fa)] (versione attuale) – [Test di una rete combinatoria] Marco Danelutto
Linea 12: Linea 12:
 <code> <code>
    primitive nomedelmodulodadefinire(listadeiparametriinuscitaeiningresso);    primitive nomedelmodulodadefinire(listadeiparametriinuscitaeiningresso);
-   end primitive+   endprimitive
 </code>  </code> 
 Il nome del modulo è una stringa qualunque. La lista dei parametri dichiara un parametro come Il nome del modulo è una stringa qualunque. La lista dei parametri dichiara un parametro come
Linea 25: Linea 25:
 primitive commutatoreADueVie32(output z, input x, input y, input alpha);  primitive commutatoreADueVie32(output z, input x, input y, input alpha); 
    ...    ...
-end primitive+endprimitive
 </code> </code>
  
-La parola chiave che definisce il tipo del parametro, in input o in output, può essere indicata una sola volta prima della lista dei parametri formali che hanno quel tipo. Ad esempio, l'intestazione precedente può essere data come 
-<code> 
-primitive commutatoreADueVie32(output z, input x,  y,  alpha);  
-   ... 
-end primitive 
-</code> 
  
 Per prassi, i parametri di output si indicano prima di quelli di input.  Per prassi, i parametri di output si indicano prima di quelli di input. 
Linea 39: Linea 33:
 === Corpo del modulo === === Corpo del modulo ===
  
-Si definisce una tabella di verità di n variabili di ingresso e una variabile di uscita elencando righe di n valori delle variabili separate da spazi seguite dai due punti, dal valore corrispondente della variabile di uscita e dal punto e virgola fra le parole chiave "table" e "end table". Ad esempio: +Si definisce una tabella di verità di n variabili di ingresso e una variabile di uscita elencando righe di n valori delle variabili separate da spazi seguite dai due punti, dal valore corrispondente della variabile di uscita e dal punto e virgola fra le parole chiave "table" e "endtable". Ad esempio: 
 <code> <code>
 table table
Linea 46: Linea 40:
   1 0 : 1 ;    1 0 : 1 ; 
   1 1 : 1 ;   1 1 : 1 ;
-end table+endtable
 </code> </code>
 definisce l'OR di due variabili da un bit.  definisce l'OR di due variabili da un bit. 
Linea 54: Linea 48:
 Ad esempio:  Ad esempio: 
 <code> <code>
-primitive k(output z, input alpha, x, y); +primitive k(output z, input alpha, input x, input y); 
   table   table
     0 1 ? : 1;     0 1 ? : 1;
Linea 60: Linea 54:
     1 ? 1 : 1;      1 ? 1 : 1; 
     1 ? 0 : 0;      1 ? 0 : 0; 
-  end table +  endtable 
-end primitive+endprimitive
 </code> </code>
 definisce il commutatore a due vie da un bit.  definisce il commutatore a due vie da un bit. 
Linea 142: Linea 136:
  
 <code> <code>
-module prova_commutatore(); +module prova_commutatoreDueVie2bit(); 
  
  
-  wire zz[1:0];                             // Parte I+  wire [1:0]zz;                             // Parte I
      
-  reg a, x1[1:0], x2[1:0];                  // Parte II+  reg a;             // Parte II 
 +  reg [1:0]x1; 
 +  reg [1:0]x2;
      
   commutatoreADueVie2bit K1(zz,x1,x2,a);    // Parte III   commutatoreADueVie2bit K1(zz,x1,x2,a);    // Parte III
Linea 158: Linea 154:
            
            
-       = 2'b00;                            // Parte VI +       x1 = 2'b00;                          // Parte VI 
-       = 2'b11; +       x2 = 2'b11;                          // 2'bxx indica un numero binario (per via del b) di due cifre  
-       a = 0; +                                            // per via del 2' con valore xx  
 +                                            // 2'hff denoterebbe 255 in decimale (due cifre esadecimali (h)) 
 +                                             
 +       a = 0;                               // 0 è inteso come decimale
                
        #5 a = 1;                            // PArte VII        #5 a = 1;                            // PArte VII
                
-       #10 = 2'b10; +       #10 x2 = 2'b10; 
                
-       $finish:                             // Parte VIII+       #10 $finish;                         // Parte VIII
      end      end
          
Linea 184: Linea 183:
 Si visualizzano i risultati invocando gtkwave sul file indicato nella dumpfile Si visualizzano i risultati invocando gtkwave sul file indicato nella dumpfile
 <code>gtkwave prova_comm.vcd</code> <code>gtkwave prova_comm.vcd</code>
 +
 +In particolare, dopo l'apertura dell'iterfaccia grafica di gtkwave occorre cliccare sul nome del modulo nel box in alto a sinistra (//prova_commutatoreDueVie2bit// nel nostro caso) dopo di che nel box sotto a sinistra appariranno i nomi delle variabili che possiamo selezionare e con il bottone "append" inserire nel box di destra dove ne verrà visualizzato il valore col passare del tempo di simulazione.
 +
 +{{:informatica:ae:gtk_k.png?800|}}
  
informatica/ae/reti_combinatorie.1382082815.txt.gz · Ultima modifica: 18/10/2013 alle 07:53 (12 anni fa) da Marco Danelutto

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki