aula2v.ppt

19
VERILOG HDL (HARDWARE DESCRIPTION LANGUAGE) Verilog é uma linguagem de descrição de hardware usada para modelar sistemas eletrônicos. Suporta o design, verificação e implementação de projetos digitais e circuitos híbridos em vários níveis de abstração.

Upload: lucas-fonseca

Post on 13-Apr-2015

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: aula2v.ppt

VERILOG HDL (HARDWARE DESCRIPTION LANGUAGE)

Verilog é uma linguagem de descrição de hardware usada para modelar sistemas eletrônicos. Suporta o design, verificação e implementação de projetos digitais e circuitos híbridos em vários níveis de abstração.

Page 2: aula2v.ppt

VERILOG Aspectos básicos da linguagem

A unidade básica – o modulo (module)

Modulo (module)

• Descreve a funcionalidade do circuito

• Define terminais (pinos, portas) de entrada e saída

Page 3: aula2v.ppt

VERILOG Aspectos básicos da linguagem

Definição geral

module module_name ( port_list );declaração das portas;…declaração de variáveis;…descrição do comportamento do módulo

endmodule

Page 4: aula2v.ppt

VERILOG Aspectos básicos da linguagem Definição geral

module module_name (declaração das portas );

…declaração de variáveis;…descrição do comportamento do módulo

endmodule

Exemplo 1

module meu_and

(output reg C,

input A, B);

always @ (A, B) begin

C = A & B; // & operador AND

end

endmodule

Construção procedural

Page 5: aula2v.ppt

VERILOG Aspectos básicos da linguagem Definição geral

module module_name (declaração das portas );

…declaração de variáveis;…descrição do comportamento do módulo

endmodule

Exemplo 1

module meu_and

(output reg C,

input A, B);

always @ (A, B) begin

C = A & B; // & operador AND

end

endmodule

Construção procedural

Síntese

Page 6: aula2v.ppt

VERILOG Aspectos básicos da linguagem

Exemplo 2module 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

Page 7: aula2v.ppt

VERILOG Aspectos básicos da linguagem

Exemplo 2module 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

Síntese

Page 8: aula2v.ppt

VERILOG Aspectos básicos da linguagem

Exemplo 2module meu_and_or_not_nand_nor_xor_xnor (output reg C, D, E, F, G, H, I, input A, B); 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

Síntese

Substitui a lista de sensibilidade

Page 9: aula2v.ppt

Projetar um circuito somador de dois números de 4 bits

A[4..1]

B[4..1]

S[4..1]

Cout

Somador

Page 10: aula2v.ppt

Somador Completo

Exemplo:

A B Cin S Cout

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1

Tabela Verdade do Somador Completo

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

Page 11: aula2v.ppt

Somador Completo – Circuito Final

Page 12: aula2v.ppt

Descrição 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

Page 13: aula2v.ppt

Descrição 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

Síntese

Page 14: aula2v.ppt

Somador Completo – Resultado da Simulação

Page 15: aula2v.ppt

Somador 4 bits - Esquemático

Page 16: aula2v.ppt

Descrição 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

Síntese

Page 17: aula2v.ppt

Simulação do Somador de 4 bits

Page 18: aula2v.ppt

Somador 4 bits – Símbolo

Page 19: aula2v.ppt

Somador 4 bits – SímboloDescrição Verilogmodule somador_3bits (output reg [2:0] S, input [2:0] A,B );

always @ (*) begin S = A + B ; // Soma

end endmodule