Você está na página 1de 25

ELETRÔNICA DIGITAL

Universidade Federal de Itajubá

Verilog HDL – Descrição estrutural

Prof. Fadul Ferrari Rodor


Verilog | Características

Verilog

Comportamental
“O que faz” “O que contém”
Estrutural

Sintaxe de “C”
“aBCd” “ABCD”
Case Sensitivety

EELI14- Eletrônica Digital


Verilog | Elementos

Elementos de descrição

Circuito integrado

Quais são as interfaces do CI(entradas e


saídas)? Verilog
O que faz o circuito?
Módulos

EELI14- Eletrônica Digital


Verilog | Elementos
Módulo – Definição geral

module nome_do_modulo (lista_de_sinais_I/O );


declaração das interfaces; //especificação dos
pinos de entrada e saída

declaração de variáveis; //declaração de
registros e fios

descrição do comportamento; //o que faz o
circuito e/qual sua estrutura interna
endmodule

EELI14- Eletrônica Digital


Verilog | Elementos

Comentários

Símbolo Função Exemplo

// Comentário em linha //Linha com comentário

/*
/* */ Comentário em bloco bloco de comentários
*/

EELI14- Eletrônica Digital


Verilog | Elementos
Módulo

/*
Modulo PX
*/
module PX (A,B,C);
input A,B; //entradas
A
PX C output C; //saídas
B
//operações
...
endmodule

EELI14- Eletrônica Digital


Verilog | Descrição estrutural

Circuito

EELI14- Eletrônica Digital


Verilog | Descrição estrutural
Estruturas básicas em Verilog
(primitivas)

EELI14- Eletrônica Digital


Verilog | Descrição estrutural
Estruturas básicas em Verilog
(primitivas)

EELI14- Eletrônica Digital


Verilog | Descrição estrutural

Instanciamento de componentes

Classe da Lista de sinais de


instância Entrada e saída

portaX nome( );

Nome único
da instância

EELI14- Eletrônica Digital


Verilog | Descrição estrutural
Instanciamento de componentes

...
input E1,E2,E3;
output S1, S2, S3, S4...;
...
and a1(S1, E1, E2);
xor x1(S2, E1, E2);
and a2(S3, E1, E2, E3);
not n1(S4, E1);

...

EELI14- Eletrônica Digital


Verilog | Descrição estrutural
Exemplo 1

module exemplo (A,B,C);


input A,B; //entradas
output C; //saídas

and a1(C, A, B);

endmodule

EELI14- Eletrônica Digital


Verilog | Elementos
Exemplo 2

module exemplo2 (A,B,C,D);


input A,B,C; //entradas
output D; //saídas
wire s;

and a1(s, A, B);


and a2(D, C, s);

endmodule

EELI14- Eletrônica Digital


Verilog | Descrição estrutural
Exemplo – MUX 2x1

module mux2x1 (A,B,S,Z);


input A,B,S; //entradas
output Z; //saídas
wire as, bs, ns;

and a1(bs, B, S);


and a2(as, A, ns);
or o1(Z, as, bs);
not n1(ns, S);

endmodule

EELI14- Eletrônica Digital


Verilog | Descrição estrutural
Exercício

Implementar um MUX 4x1 de forma estrutural

EELI14- Eletrônica Digital


Verilog | Descrição estrutural
Mux 4x1

EELI14- Eletrônica Digital


Verilog | Elementos
Vetores

Limites

wire/input/output [ ]nome;

wire [2:1]v; // v[2], V[1]


input [31:0]add; // a[31], a[30], ... ,a[0]
output [1:-2]b; // b[1], b[0], b[-1], b[-2]

EELI14- Eletrônica Digital


Verilog | Descrição estrutural
Exemplo – MUX 2x1

module mux2x1 (E,S,Z);


input [1:0]E; //entradas
input s; //entrada de seleção
output Z; //saídas
wire as, bs, ns;

and a1(bs, E[0], S);


and a2(as, E[1], ns);
or o1(Z, as, bs);
not n1(ns, S);

endmodule

EELI14- Eletrônica Digital


Verilog | Descrição estrutural
Exercício

Implementar um MUX 4x1 utilizando vetores

EELI14- Eletrônica Digital


Verilog | Descrição Hierárquica
Hierarquia

Circuito Digital

Subcircuito 1 Subcircuito 2 Subcircuito 3

Subcircuito 4 ... Subcircuito n

EELI14- Eletrônica Digital


Verilog | Descrição Hierárquica
Instanciamento de módulos

classe da lista de sinais de


instância entrada e saída

nome_modulo nome( );

nome único Saídas e entradas na ordem


da instância exata do módulo

ou

EELI14- Eletrônica Digital em ordem abitrária


Verilog | Descrição Hierárquica
Instanciamento de módulos

...
input E1,E2,E3,E4,E5,S1,S2,S3;
output Z1,Z2,Z3;
...
mux2x1 m1(E1, E2, S1, Z1); // ordem original
mux2x1 m2(.Z(Z2), .A(E3), .B(E1), .S(S2))); // ordem aleatória
mux2x1 m3(.A(E4), .Z(Z3), .S(S3), .B(E5))); // ordem aleatória

...

module mux2x1 (A,B,S,Z);


input A,B,S; //entradas
output Z;
...

EELI14- Eletrônica Digital


Verilog | Descrição Hierárquica
Exemplo – Mux 4x1

module mux4x1 (I,S,Z);


input [3:0]I;
input [1:0]S;
output Z;
wire a,b;
module mux2x1 (A,B,S,Z);
input A,B,S; //entradas
output Z; //saídas mux2x1 m1(I[0],I[1],S[0], a);
wire as, bs, ns;
mux2x1 m2(I[2],I[3],S[0], b);
and a1(bs, B, S); mux2x1 m3(a,b,S[1], Z);
and a2(as, A, ns);
or o1(Z, as, bs);
not n1(ns, S); endmodule

endmodule

EELI14- Eletrônica Digital


Verilog | Bibliografia

• TOCCI, Ronald J.; WIDMER, Neal S.; MOSS, Gregory L.


Sistemas Digitais: princípios e aplicações. Pearson
Prentice Hall, 10ª ou 11ª Edição, 2011, ISBN:
9788576059226.

• WAKERLY, J. F.; Digital Design, Editora Pearson, 4ª


Edição, 2006, ISBN: 9780131733497.

EELI14- Eletrônica Digital


Verilog | Fim

Obrigado

EELI14- Eletrônica Digital

Você também pode gostar