ELT601 – Eletrônica Digital II
Graduação em Engenharia Eletrônica
Universidade Federal de Itajubá
IESTI
Verilog HDL
Verilog
| Histórico
Surgimento:
Proprietária
Simulação
Ambiente PLI
Síntese
em
Verilog
Parcerias com
Motorola,
National,
etc
Padrão IEEE
1364-1995
Domínio público
Padrão IEEE
1364-2001
1983
...
1987
1988
1989
...
1995
...
2001
Verilog
| Características
Verilog
Sintaxe de “C”
Sensível ao “caso”
“aBCd “ “ABCD”
“O que faz “ “O que contém”
Comportamental
Estrutural
Sensível ao “caso”
Níveis de abstração
Verilog
| Características
Níveis de abstração
Estrutural
Fluxo de dados
Algorítmica
Chaveamento
Y
Elemento de descrição
Verilog
| Elementos
CI
Quais são as interfaces?
O que faz o circuito?
módulo
Verilog
Módulos
Verilog
| Elementos
module
nome( );
lista de sinais de
entrada e saída
nome do
módulo
especificação
dos pinos de
entrada e saída (interfaces)
endmodule
o que faz o circuito e/ou
qual é sua estrutura interna
Módulos
Verilog
| Elementos
module
PX( A, B, C );
input
A, B;
output
C;
2 entradas e 1 saída
A e B como entradas.
C como saída
PX
A
B
C
nome do
módulo
endmodule
o que faz o circuito
e/ou qual é sua
estrutura interna
Comentários
Verilog
| Elementos
Símbolo
Função
//
Comentário em linha
/* */
Comentário em bloco
Exemplo
// Linha com comentário
/* bloco de comentários */
/* */
Comentário em bloco
/* bloco de comentários */
Comentários
Verilog
| Elementos
/*
Módulo PW
*/
module
PW( A, B, C, D, E, F, G );
input
A, B, C, D;
// entradas
output
E, F, G;
// saídas
// operações
// operações
…
endmodule
Descrição estrutural
Verilog
| Descrição estrutural
Descrição estrutural em Verilog
Verilog
| Descrição estrutural
1
º
passo
2
º
passo
3
º
passo
Descrição de
cada módulo
Criação de
instâncias
Criação das
interconexões
Estruturas básicas em Verilog
Verilog
| Descrição estrutural
A
B
C
C
A
B
A
B
C
A
B
C
and
or
nand
nor
A
B
C
A
B
C
xor
xnor
Estruturas básicas em Verilog
Verilog
| Descrição estrutural
C
A
buf
A
C
not
bufif1
bufif0
C
A
ctr
C
A
ctr
notif1
notif0
C
A
ctr
C
A
ctr
Instanciamento de componentes
Verilog
| Descrição estrutural
portaX
nome( );
lista de sinais de
entrada e saída
classe da
instância
nome único
Instanciamento de componentes
Verilog
| Descrição estrutural
...
input
E1, E2, E3;
output
S1, S2, S3, S4, S5…;
...
and a1( S1, E1, E2 );
xor x1( S2, E1, E2 );
Porta E
Não-Ou exclusivo
xor
(
)
or
o1( S3, E1, E2, E3 );
buf b1( S4, S5, E3 );
not n1( S7, E2 );
…
Não-Ou exclusivo
Porta Ou de 3 entradas
Buffer de 2 saídas
Inversor
Exemplo – Latch SR
Verilog
| Descrição estrutural
module
LatchSR( R, S, Q, Qb );
input
R, S;
output
Q, Qb;
nor n1( Q, R, Qb );
nor n2( Qb, S, Q );
R
Q
n1
nor n2( Qb, S, Q );
endmodule
S
Q
n2
Sinais internos
Verilog
| Elementos
A
B
C
D
s
wire
;
lista de sinais
internos
sinal interno
Exemplo – Mux 2 para 1
Verilog
| Descrição estrutural
module
Mux2p1( A, B, S, Z );
input
A, B, S;
output
Z;
wire
as, bs, ns;
and a1( bs, B, S );
and a2( as, A, ns );
S
B
Z
bs
a1
o1
n1
and a2( as, A, ns );
or o1( Z, as, bs );
not n1( ns, S );
endmodule
A
a2
as
ns
Verilog
| Descrição estrutural
Exercícios
1
Implementar um somador completo de 1 bit de forma
estrutural
Verilog
| Descrição estrutural
Somador Completo de 1 bit
B
V
e
A
S
V
B
A
V
e
de 1 bit
SC
V
s
V
S
S
Verilog
| Descrição estrutural
Mux 4 para 1
4 x 1
Z
I
0
I
1
00I
2
I
3
01 10 11I
0
S
1
Z
I
1
I
2
S
1
S
0
S
0
S
1
I
3
Vetores
Verilog
| Elementos
wire/input/output
[ ]
nome;
especificação
dos limites
wire
[ 1: 2 ] v;
v[1], v[2]
wire
[ 1: 2 ] v;
v[1], v[2]
input
[ 31: 0 ] a;
a[31], a[30], …, a[0]
Exemplo – Mux 2 para 1
Verilog
| Descrição estrutural
module
Mux2p1( E, Z );
input
[0:2] E;
// entradas
output
Z;
wire
as, bs, ns;
and a1( bs, E[0], E[2] );
and a2( as, E[1], ns );
E[1]
E[0]
Z
bs
a1
o1
n1
and a2( as, E[1], ns );
or o1( Z, as, bs );
not n1( ns, E[2] );
endmodule
E[2]
a2
as
ns
Exercícios
Verilog
| Elementos
1
Implementar um Mux 4 para 1 utilizando vetores
Verilog
| Descrição Hierárquica
Hierarquia
Circuito
digital
Verilog
| Descrição Hierárquica
Hierarquia
Subcircuito
1
Subcircuito
2
Subcircuito
N
Circuito
digital
Complexidade da
função realizada
Simplicidade do
circuito digital
Verilog
| Descrição Hierárquica
Hierarquia
Somador
completo
de 4 bits
Multiplexador
4 x 1
SC 1 bit SC 1 bit SC 1 bit SC 1 bit 2 x 1 2 x 1 2 x 1fluxo de
2 x 1fluxo de
desenvolvimento
Verilog
| Descrição Hierárquica
Instanciamento de componentes
nome_módulo
nome( );
lista de sinais de
entrada e saída
classe da
instância
saídas e entradas na exata
ordem do módulo
nome único
da instância
ordem do módulo
ou
Verilog
| Descrição Hierárquica
Instanciamento de módulos
...
...
input
E1, E2, E3, E4, E5, S1, S2, S3;
output
Z1, Z2, Z3;
...
mux2p1 m1( E1, E2, S1, Z1 );
mux2p1 m2( .Z(Z2), .A(E3), .B(E1), .S(S2) );
mux2p1 m3( .A(E4), .Z(Z3), .S(S3), .Z(Z3) );
Ordem original
Ordem aleatória
Ordem aleatória
mux2p1 m3( .A(E4), .Z(Z3), .S(S3), .Z(Z3) );
…
module
mux2p1( A, B, S, Z );
input
A, B, S
Ordem aleatória
Verilog
| Descrição Hierárquica
Exemplo – Mux 4 para 1
module mux2p1( A, B, S, Z ); input A, B, S;