Sunteți pe pagina 1din 19

VERILOG HDL (HARDWARE DESCRIPTION LANGUAGE)

Verilog uma linguagem de descrio de hardware usada para modelar sistemas eletrnicos. Suporta o design, verificao e implementao de projetos digitais e circuitos hbridos em vrios nveis de abstrao.

VERILOG Aspectos bsicos da linguagem

A unidade bsica o modulo (module) Modulo (module) Descreve a funcionalidade do circuito Define terminais (pinos, portas) de entrada e sada

VERILOG Aspectos bsicos da linguagem


Definio geral

module module_name ( port_list ); declarao das portas; declarao de variveis; descrio do comportamento do mdulo endmodule

VERILOG Aspectos bsicos da linguagem


Definio geral module module_name (declarao das portas ); declarao de variveis; descrio do comportamento do mdulo endmodule

Exemplo 1

module meu_and (output reg C, input A, B); always @ (A, B) begin C = A & B; // & operador AND
Construo procedural

end
endmodule

VERILOG Aspectos bsicos da linguagem


Definio geral module module_name (declarao das portas ); declarao de variveis; descrio do comportamento do mdulo endmodule

Exemplo 1

module meu_and (output reg C, input A, B); always @ (A, B) begin C = A & B; // & operador AND
Construo procedural

end
endmodule

VERILOG Aspectos bsicos da linguagem


Exemplo 2

module meu_and_or_not_nand_nor_xor_xnor (output reg C, D, E, F, G, H, I, input A, B); always @ (A, B) begin C = A & B; // & operador AND D = ! A; // ! operador NOT E = ~(A&B); // NAND F = A | B; // | operador OR G = ~(A | B); // NOR H = A ^ B; // ^ operador XOR I = ~(A ^ B); // XNOR end endmodule

VERILOG Aspectos bsicos da linguagem


Exemplo 2

module meu_and_or_not_nand_nor_xor_xnor (output reg C, D, E, F, G, H, I, input A, B); always @ (A, B) begin C = A & B; // & operador AND D = ! A; // ! operador NOT E = ~(A&B); // NAND F = A | B; // | operador OR G = ~(A | B); // NOR H = A ^ B; // ^ operador XOR I = ~(A ^ B); // XNOR end endmodule

VERILOG Aspectos bsicos da linguagem


Exemplo 2

module meu_and_or_not_nand_nor_xor_xnor (output reg C, D, E, F, G, H, I, Substitui a lista de input A, B); sensibilidade always @ (*) begin C = A & B; // & operador AND D = ! A; // ! operador NOT E = ~(A&B); // NAND F = A | B; // | operador OR G = ~(A | B); // NOR H = A ^ B; // ^ operador XOR I = ~(A ^ B); // XNOR end endmodule

Projetar um circuito somador de dois nmeros de 4 bits


Somador

A[4..1]

S[4..1]

B[4..1]
Cout

Somador Completo

Exemplo:

Tabela Verdade do Somador Completo


A 0 0 B 0 0 Cin 0 1 S 0 1 Cout 0 0

0
0 1 1 1 1

1
1 0 0 1 1

0
1 0 1 0 1

1
0 1 0 0 1

0
1 0 1 1 1

S = A xor B xor Cin; // Soma Cout = (A.B) or (A .Cin) or (B.Cin); // Cout

Somador Completo Circuito Final

Descrio do somador completo em VERILOG

module soma1 (output reg S, Cout, input A, B, Cin); always @ (*) begin S = A ^ B ^ Cin; // Soma Cout = (A & B) | (A & Cin) | (B & Cin); // Cout end endmodule

Descrio do somador completo em VERILOG


module soma1 (output reg S, Cout, input A, B, Cin); always @ (*) begin S = A ^ B ^ Cin; // Soma Cout = (A & B) | (A & Cin) | (B & Cin); // Cout end endmodule

Somador Completo Resultado da Simulao

Somador 4 bits - Esquemtico

Descrio do somador 4 bits em VERILOG


module somador_4bits (output reg [4:0] S, input [3:0] A,B ); always @ (*) begin S = A + B ; // Soma end endmodule

Simulao do Somador de 4 bits

Somador 4 bits Smbolo

Descrio Verilog Somador 4 bits Smbolo module somador_3bits (output reg [2:0] S, input [2:0] A,B ); always @ (*) begin S = A + B ; // Soma end endmodule

S-ar putea să vă placă și