Strumenti Utente

Strumenti Sito


informatica:ae:componentidivisoreverilog

Differenze

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

Link a questa pagina di confronto

informatica:ae:componentidivisoreverilog [18/10/2017 alle 11:30 (8 anni fa)] – creata Marco Daneluttoinformatica:ae:componentidivisoreverilog [18/10/2017 alle 11:34 (8 anni fa)] (versione attuale) Marco Danelutto
Linea 28: Linea 28:
 endmodule endmodule
 </code> </code>
 +
 +=== Commutatore ===
 +<code verilog>
 +module k2(output [N-1:0]z, 
 +   input [N-1:0] x, 
 +   input [N-1:0] y, 
 +   input alpha);
 +
 +   parameter N = 32;
 +    
 +   assign 
 +     #2 z = (alpha ? y : x);
 +
 +endmodule
 +</code>
 +
 +=== AluINC ===
 +<code verilog>
 +module aluinc(output [N-1:0]z,
 +       input [N-1:0] x);
 +
 +   parameter N = 32;
 +   
 +   assign #5 z      x + 1;
 +    
 +endmodule
 +</code>
 +
 +=== AluMeno ===
 +<code verilog>
 +module alumeno(output [N-1:0]z,
 +        output segno,
 +        input [N-1:0]x,
 +        input [N-1:0]y);
 +
 +   parameter N = 32;
 +
 +   assign #5 z      x - y;
 +   assign #5 segno = (y > x ? 1 : 0);
 +    
 +endmodule
 +</code>
 +
 +=== Indicatore a transizione di livello in ingresso ===
 +<code verilog>
 +//
 +// modulo RDY (transizione di livello in ingresso) 
 +// 
 +
 +module rdy(output rdyout,
 +    input rdyin,
 +    input beta,
 +    input clock);
 +
 +   reg stato;
 +   reg inp;
 +
 +   wire in2, out3;
 +    
 +   initial
 +     begin
 + stato = 0;
 + inp = 0;
 +     end
 +
 +   always @(negedge clock)
 +     begin
 + stato = rdyin;
 +     end
 +
 +   ack contmod2(in2, beta,  clock);
 +   comp comp2(out3,  stato, in2);
 +   
 +
 +   assign
 +     rdyout = out3;
 +
 +endmodule
 +</code>
 +
 +=== Indicatore a transizione di livello in uscita === 
 +<code verilog>
 +module ack(output ackout,
 +    input beta,
 +    input clock);
 +   
 +   reg stato;
 +
 +   initial
 +     begin
 + stato = 0;
 +     end
 +
 +   always @(negedge clock)
 +     begin
 + if(beta)
 +   stato = ~stato;
 +     end
 +
 +   assign
 +     ackout = stato;
 +
 +endmodule
 +</code>
 +
 +=== Comparatore ===
 +<code verilog>
 +primitive comp(output z,
 +     input x,
 +     input y);
 +
 +   table
 +      0 0 : 0;
 +      0 1 : 1;
 +      1 0 : 1;
 +      1 1 : 0;
 +   endtable
 +   
 +endprimitive
 +</code>
 +
informatica/ae/componentidivisoreverilog.1508326253.txt.gz · Ultima modifica: 18/10/2017 alle 11:30 (8 anni fa) da Marco Danelutto

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki