Académique Documents
Professionnel Documents
Culture Documents
Tipos de Porta
Um circuito lógico pode ser projetado usando portas lógicas. Verilog suporta portas lógicas básicas
predefinidas como primitivas (primitives). Estas primitivas são instanciadas parecidas aos módulos
exceto que eles são predefinidos em Verilog e não precisam de uma definição de módulo. Todos os
circuitos lógicos podem ser projetados usando portas básicas. Existem duas classes de portas
básicas: and/or e buf/not.
Portas And/Or
Portas And/Or tem uma saída escalar e múltiplas entradas escalares. O primeiro terminal na lista
de terminais da porta é uma saída e os outros terminais são entradas. A saída de uma porta é
avaliada tão pronto como uma das entradas muda. As portas and/or disponíveis em Verilog são:
and, nand, or, nor, xor e xnor.
Para construir blocos lógicos as portas são instanciadas. O exemplo a seguir mostra portas de duas
entradas e uma saída.
//Portas de duas entradas e uma saída // Para mais de duas entradas; 3 entradas na
porta nand
and a1(OUT, IN1, IN2); and (OUT, IN1, IN2); //instanciação aceita
1
Sistemas Digitais Prof. Antonio Ramirez Hidalgo
As tabelas da verdade para estas portas definem como vai ser a saída dependendo das entradas.
i1 i1 i1
and 0 1 x z nand 0 1 x z or 0 1 x z
0 0 0 0 0 0 1 1 1 1 0 0 1 1 x
i2 1 0 1 x x i2 1 1 0 x x i2 1 1 1 x 1
x 0 x x x x 1 x x x x x 1 x x
z 0 x x x z 1 x x x z x 1 x x
i1 i1 i1
nor 0 1 x z xor 0 1 x z xnor 0 1 x z
0 1 0 x x 0 0 1 x x 0 1 0 x x
i2 1 0 0 0 0 i2 1 1 0 x x i2 1 0 1 x x
x x 0 x x x x x x x x x x x x
z x 0 x x z x x x x z x x x x
Portas Buf/Not
Portas buf/not tem uma entrada escalar e uma ou mais saídas escalares. O último terminal da lista de
ports é conectado à entrada. Outros terminais são conectados às saídas. Nós estudaremos portas que
tem uma entrada e uma saída.
Duas portas básicas primitivas são fornecidas pelo Verilog : buf e not. Ver figura 3.1.
in out
in out
not
buf
Figura 3.1. Portas buf e not
2
Sistemas Digitais Prof. Antonio Ramirez Hidalgo
Portas Bufif/Notif
Portas com um sinal de controle adicional sobre as portas buf e not são disponíveis. Estas são:
bufif1, bufif0, notif1 e notif0. Estas portas se propagam somente se seu sinal de controle está
ativo. Eles propagam z se seu sinal de controle está desativado.
in out in out
ctrl ctrl
bufif1 notif1
in out in out
ctrl ctrl
bufif0 notif0
Figura 3.2. Portas bufif e notif
ctrl ctrl
bufif1 0 1 x z notif1 0 1 x z
0 z 0 L L 0 z 1 H H
in 1 z 1 H H in 1 z 0 L L
x z x x x x z x x x
z z x x x z z x x x
ctrl ctrl
bufif0 0 1 x z notif0 0 1 x z
0 0 z L L 0 1 z H H
in 1 1 z H H in 1 0 z L L
x x z x x x x z x x
z x z x x z x z x x
3
Sistemas Digitais Prof. Antonio Ramirez Hidalgo
EXEMPLOS
i1 y1
U1B
U2A Out
i2 y2
U1C
i3 y3
U1D
S1n S0n
U3B U3A
S1
S0
4
Sistemas Digitais Prof. Antonio Ramirez Hidalgo
an bn
U2A
a s1 U2B
cin
sumn
Então um somador de 4 bits é formado por 4 somadores completos de 1 bit como se mostra a seguir.
5)Usando o exemplo anterior implementar em verilog (nível de portas) um somador BCD de 4 bits.
Solução:
Um somador BCD de 4 bits é representado pelo circuito mostrado abaixo.
Podemos notar que precisamos de 2 módulos de somador de 4 bits e três portas, portanto levando
em consideração o exemplo anterior onde temos o somador de 4 bits podemos instanciar este para
compor nosso somador BCD de 4 bits.
5
Sistemas Digitais Prof. Antonio Ramirez Hidalgo
B3
B2
B1
B0
Código BCD
Carry do
somador
y3 cout anterior
Somador 4 bits cin
A0
U1A S3 S2 S1 S0
x U2A A1
saida
Carry para A2
y1 U1B
o proximo A3
y2
somador BCD Código BCD
B3 B2 B1 B0
cin1
cout1 Somador 4 bits
não usado
Somador de correção
A3 A2 A1 A0
Soma BCD
S3
S2
S1
S0
Exercícios