Upload
guilherme-derze
View
22
Download
3
Embed Size (px)
DESCRIPTION
Guia para quem quer aprender AC IOtimo material
Citation preview
Pontifcia Universidade Catlica de Minas Gerais
Instituto de Cincias Exatas e Informtica ICEI
Arquitetura de Computadores I
ARQ1 _ Aula_05
Tema: Introduo linguagem Verilog
Atividade: lgebra de Boole
Em Matemtica, chama-se proposio ao enunciado de uma verdade que se quer demonstrar, ou como usaremos: uma sentena que pode ser falsa (0), ou verdadeira (1), mas nunca ambos ao mesmo tempo.
A conjuno uma relao entre sentenas que estabelece um resultado verdadeiro (1) quando associadas duas proposies (p e q), ambas verdadeiras (iguais a 1). Basta uma delas ser falsa (0), para que a conjuno (s) tambm seja falsa (0). A porta AND ( E ) um componente de circuito lgico que implementa essa relao; pode ter duas (p, q), ou mais entradas, e a sada (s) assumir o valor 1 (verdadeiro) se, e somente se, todas as entradas forem iguais a 1 (verdadeiras); caso uma, ou mais entradas forem iguais a 0 (falso), a sada ter valor igual a 0 (falso). A disjuno uma relao entre sentenas que estabelece um resultado falso (0) quando duas proposies (p e q) forem falsas (0). Basta uma delas ser verdadeira (1), para que a disjuno tambm seja verdadeira (1). A porta OR ( OU ) um componente de circuito lgico que implementa essa relao; pode ter duas (p, q), ou mais entradas, e a sada (s) assumir o valor 0 (falso) se, e somente se, todas as entradas forem iguais a 0 (falso); caso uma, ou mais entradas forem iguais a 1 (verdadeiro), a sada ter valor 1 (verdadeiro). A negao determina que se uma proposio (p) for falsa (0), seu resultado ser verdadeiro (1), ou vice-versa. A porta NOT (NO) um componente de circuito lgico que implementa essa relao, tambm chamada de INVERTER (INVERSOR), s possui uma entrada (p), e a sada assumir o valor 1 (verdadeiro), se a entrada for igual a 0 (falso); seno, a sada ter valor 0 (falso), se a entrada for igual a 1 (verdadeiro).
- Analogias com circuitos eltricos
O primeiro circuito a seguir (conjuno) determina que se duas chaves (p e q) forem fechadas (1), o resultado (s) ser o de um circuito fechado com uma lmpada acesa (1), por exemplo; basta que uma delas seja aberta (0), para que o circuito se abra, e a lmpada apague (0). O circuito poder ter duas (p, q), ou mais chaves, em srie que a sada (s) ter o mesmo resultado (1) se, e somente se, todas as chaves forem fechadas (1); caso uma, ou mais chaves forem abertas (0), o resultado ser um circuito aberto com a lmpada apagada (0). O segundo circuito a seguir (disjuno) determina que se duas chaves (p e q) forem abertas (0), o resultado (s) ser o de um circuito aberto com uma lmpada apagada (0), por exemplo; basta que uma delas seja fechada (1), para que o circuito se feche. O circuito poder ter duas (p, q), ou mais chaves, em paralelo que a sada (s) ter o mesmo resultado (0), se, e somente se, todas as entradas forem abertas (0); caso uma, ou mais chaves forem fechadas (1), o resultado ser um circuito fechado coma lmpada acesa (1). O terceiro circuito a seguir (negao) determina que se uma chave (p) for acionada (1), o resultado (s) ser o de um circuito aberto com uma lmpada apagada (0); caso contrrio, o circuito permanecer fechado, e a lmpada se manter acesa (1).
- Representaes por circuitos
Circuito srie (AND) Circuito paralelo (OR) Curto-circuito (NOT) (Conjuno) (Disjuno) (Negao)
s
p
s
p
q s
p q
- Representaes de relaes lgicas
Notaes
Conjuno ( E ) Disjuno (OU ) Negao (NO ) (p e q)
p q
p q = p q p & q
(p ou q)
p q
p + q p | q
(no p)
p
/p = p = p'
~p p && q p || q ! p
Tabela-verdade
Conjuno ( E ) Disjuno (OU ) Negao (NO ) p q s p q s p s
0 0 = 0 0 + 0 = 0 0 1 = 0 0 + 1 = 1 0' = 1 1 0 = 0 1 + 0 = 1 1' = 0 1 1 = 1 1 + 1 = 1
Diagrama de Deciso Binria (BDD)
s=pq s=p+q s=p
p p p 0 1 0 1 . 0 1 .
q q 1 0 0 1 0 1 0 1 0 1
Portas Lgicas
s = AND ( p, q ) s = OR ( p, q ) s = NOT ( p )
Diagramas de tempo para as portas lgicas
1 1 1
p 0 p 0 p 0
1 1
q 0 q 0
1 1 1
s 0 s 0 s 0
p s p
q s
p
q s
p &
q s
p 1
q s p 1 s
- Prioridade de conectivos
Estabelece-se que a ordem de avaliao de uma expresso, envolvendo conectivos lgicos, ser da esquerda para a direita, respeitando-se as prioridades dos conectivos na ordem mostrada abaixo, sendo a primeira a mais alta quando aplicada imediatamente a um valor.
NO
E OU
Pode-se mudar a ordem de avaliao por meio de parnteses.
Exemplo:
Considere a expresso lgica: ( ! x && y ) || ( x && ! y ) de forma mais simples como ( x' y ) + ( x y' ) A sua avaliao ser feita na seguinte ordem de prioridade: - negao de (x) : x' - conjuno com (y) : x' y - negao de (y) : y' - conjuno com (x) : x y' - disjuno das conjunes : (x' y) + (x y') A expresso poder ser representada nas formas tabular (tabela-verdade) ou por BDD (Binary Decision Diagram):
x y (x' y) (x y') (x'y)+(xy') BDD
0 0 0 0 0 x
0 1 1 0 1 0 1
1 0 0 1 1 y y
1 1 0 0 0 1 0
1 Resumidamente as relaes em uma tabela tambm podero ser indicadas - pela disjuno ( + ) das conjunes iguais a 1 (ou mintermos)
x y (x' y) (x y') (x'y)+(xy') mintermos (=1)
0 0 0 0 0 m0 = x' y' = 0 . 0 1 1 0 1 m1 = x' y = 1 1 0 0 1 1 m2 = x y' = 2 1 1 0 0 0 m3 = x y = 3 .
f (x, y ) = (x'y)+(xy') = m1 + m2 = m(1,2) = SoP(1,2)
- pela conjuno ( ) das disjunes iguais a 0 (ou MAXTERMOS).
X Y (X+Y') (X'+Y) (X+Y')(X'+Y) MAXTERMOS (=0)
0 0 0 0 0 m0 = X + Y = 0 0 1 1 0 1 m1 = X + Y' = 1 .
1 0 0 1 1 m2 = X' + Y = 2 .
1 1 0 0 0 m3 = X' + Y' = 3
F (X, Y ) = (X+Y') (X'+Y) = M1 M2 = M(0,3) = PoS(0,3)
Principais relaes da lgebra de Boole
s=(p&q) AND s=(p | q) OR s=(p^q) XOR BUFFER
0 1 p/q 0 1 0 1 p/q s = p
0 0 0 0 1 0 1 0 0
0 1 1 1 1 1 0 1 1
Conjuno Disjuno Disjuno Exclusiva Cpia
AND
OR
XOR
BUFFER
s = p q s = p + q s = p q s = p
s = (p q)' s = (p + q)' s = (p + q)' s = p'= p NAND
NOR
XNOR
NOT
Alternative Denial Joint Denial Equivalncia Negao
1 1 0 1 0 1 0 0 1
1 0 1 0 0 0 1 1 0
0 1 p\q 0 1 0 1 p\q s=~p
s=~(p&q) NAND s=~(p|q) NOR s=~(p^q) XNOR NOT
Resumo
AND OR XOR XNOR NOR NAND
m M p q p && q p || q p ^ q ! (p ^ q) ! (p || q) ! (p && q)
0 p' q' P+Q 0 0 0 0 0 1 1 1
1 p' q P+Q' 0 1 0 1 1 0 0 1
2 p q' P'+Q 1 0 0 1 1 0 0 1
3 p q P'+Q' 1 1 1 1 0 1 0 0
mintermos SoP (+) [=1] 3 1,2,3 1,2 0,3 0 0,1,2 MAXTERMOS PoS () [=0] 0,1,2 0 0,3 1,2 1,2,3 3
p
q s
p
q s
p
q s
p
q s
p
q s
p
q s
p s
p s
Principais propriedades da lgebra de Boole
Idempotncia Comutativa Associativa
p + p = p p + q = q + p (p + q) + r = p+(q + r)
p p = p p q = q p (p q) r = p (q r)
Identidade De Morgan Distributiva
p + 0 = p p 0 =0 )qp( =p q p + (q r)=(p + q) (p + r)
p + 1 = 1 p 1 =p q+p=q)(p p (q+r)=(p q) + (p r)
Complementar Absoro Consenso
p+p = 1
(tautologia)
p + (p q)=(p + q) (p q)+(p r)+(q r)
= (p q) + ( p r)
p p = 0
(contradio)
p + (p q)=(p + q) q)+(p ( r+p ) ( r+q )
= ( q+p ) ( r+p )
p = p
(dupla negao)
p + (p q) = p
Principais propriedades da lgebra com XOR.
Bsicas Identidade Complementar
pp = 0 0p = p qp = qp
pp = 1 1p = p )qp( = qp = qp
Associativa Comutativa
r)q(p = )rq(p qp = pq
Disjuno Distributiva Transposio
se: rqp e q r=0
ento: rqp
)rq(p = )rp()q(p se: rqp
ento: rpq e qpr
Tabela-verdade
Expresses lgicas podem ser expressas na forma tabular (tabela-verdade):
Exemplo:
Avaliar a expresso: x' y + x y' considerando a ordem de prioridades entre negao, conjuno e disjuno.
x y x' y x y' x' y + x y'
0 0 0 0 0
0 0 1 1 1
0 1 0 0 1
0 1 0 0 0
A descrio equivalente em Verilog ser
// ---------------------
// TRUTH TABLE
// Nome: xxx yyy zzz
// Matricula: 999999
// ---------------------
// ---------------------
// -- function
// ---------------------
module fxy (output s,
input x, y);
assign s = ~x & y | x & ~y;
endmodule // fxy
Uma funo lgica tambm pode ser descrita pela soma de produtos (mintermos) ou SoP
(disjuno das conjunes dos termos na tabela onde a funo for igual a 1).
#mintermo mintermo x y f(x,y)
0 x y' 0 0 0 1 x' y 0 1 1 2 x y' 1 0 1 3 x y 1 1 0
f(x,y) = ( x y ) + ( x y ) = )2,1(m
A descrio equivalente em Verilog ser
// ---------------------
// -- SoP
// ---------------------
module SoP (output s,
input x, y);
// mintermos
assign s = ~x & y // 1
| x & ~y; // 2
endmodule // SoP
Uma funo lgica pode ser descrita pelo produto de somas (MAXTERMOS) ou PoS,
(conjuno das disjunes dos termos na tabela onde a funo for igual a 0), cujo resultado
equivalente soma de produtos complementar
#MAXTERMOS MAXTERMOS X Y F(X,Y)
0 X +Y 0 0 0 1 X +Y' 0 1 1
2 X'+Y 1 0 1
3 X'+Y' 1 1 0
F(X,Y) = ( X +Y ) ( X+Y ) = )3,0(M A descrio equivalente em Verilog ser
// ---------------------
// -- PoS
// ---------------------
module PoS (output S,
input X, Y);
// MAXTERMOS
assign S = ( X | Y ) // 0
& ( X | ~Y ); // 3
endmodule // PoS
cujo mdulo com os conjuntos de testes em Verilog poder ser
// ---------------------
// -- test function
// ---------------------
module testfunction;
reg x, y;
wire s1, s2, s3;
// instancias
fxy FXY1 (s1, x, y);
SoP SOP1 (s2, x, y);
PoS POS1 (s3, x, y);
// valores iniciais
initial begin: start
x=1'bx; y=1'bx; // indefinidos
end
// parte principal
initial begin: main
// identificacao
$display("Exemplo- xxx yyy zzz - 999999");
$display("Test function");
$display("\nx'&y+x&y' = s\n");
// monitoramento
$monitor("%b %b = %b %b %b", x, y, s1, s2, s3);
// sinalizacao
#1 x=0; y=0;
#1 x=0; y=1;
#1 x=1; y=0;
#1 x=1; y=1;
end
endmodule // testfunction
Exerccios:
01.) Construir a tabela-verdade para as proposies e verificar pelas respectivas tabelas-verdades implementadas em Verilog: Exemplo:
)( zyx
#mintermos mintermos x y z x' y' z' y'z' x'+(y'z') 0 x'y'z' 0 0 0 1 1 1 1 1 1 x'y'z 0 0 1 1 1 0 0 1 2 x'yz' 0 1 0 1 0 1 0 1 3 x'y z 0 1 1 1 0 0 0 1 4 xy'z' 1 0 0 0 1 1 1 1 5 xy'z 1 0 1 0 1 0 0 0
6 xyz' 1 1 0 0 0 1 0 0
7 xyz 1 1 1 0 0 0 0 0
SoP (0,1,2,3,4) module fxyz (output s,
input x, y, z);
assign s = ~x | (~y & ~z);
endmodule // fxyz
a.) zyx
b.) z)yx(
c.) z)yx(
d.) z)yx(
e.) )zy)(xy(
02.) Simplificar as expresses abaixo pelas propriedades da lgebra de Boole
e verificar pelas respectivas tabelas-verdades implementadas em Verilog:
Exemplo:
)()( zxyx
= x'+(y'z') (propriedade distributiva)
module fxyz (output s1, output s2
input x, y, z);
assign s1 = (~x | ~y ) & (~x | ~z);
assign s2 = ~x | (~y & ~z);
endmodule // fxyz
a.) yxx
b.) )xy()yx(
c.) )xy()yx(
d.) )yx()yx(
e.) )xy()xy(
03.) Montar as tabelas-verdades expressas pelas somas de produtos abaixo e verificar pelas respectivas tabelas-verdades implementadas em Verilog:
Exemplo:
f (x,y,z) = )4,3,2,1,0(m = SoP (0,1,2,3,4) = 1
x y z mintermos SoP (0,1,2,3,4)
0 0 0 x'y'z' = m0 1 0 0 1 x'y'z = m1 1 0 1 0 x'y z' = m2 1 0 1 1 x'y z =m3 1 1 0 0 xy'z' = m4 1 1 0 1 0
1 1 0 0
1 1 1 0
a) f(x,y,z) = )63,2,1(m
b) f(x,y,z) = )4,3,1,0(m
c) f(x,y,w,z) = )11,10,9,86,2,1,0(m
d) f(x,y,w,z) = )11,10,8,6,4,2,0(m
e) f(x,y,w,z) = )15,13,7,3,2,1,0(m
04.) Montar as expresses PoS equivalentes aos produtos das somas abaixo e verificar pelas respectivas tabelas-verdades implementadas em Verilog:
Exemplo:
F (X,Y,Z) = )7,6,5(M = PoS (5,6,7) = 0
x y z MAXTERMOS PoS (5,6,7)
0 0 0 1
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 X'+Y+Z' = M5 0
1 1 0 X'+Y'+Z = M6 0
1 1 1 X'+Y'+Z' = M7 0
a) F(X,Y,Z) = )5,4,2,1(M
b) F(X,Y,Z) = )7,3,1,0(M
c) F(X,Y,W,Z) = )11,10,9,6,3,2,1,0(M
d) F(X,Y,W,Z) = )12,9,8,6,4,2,0(M
e) F(X,Y,W,Z) = )1514,5,3,2,1,0(M
05.) Identificar as expresses SoP e PoS equivalentes s tabelas abaixo
e verificar pelas respectivas tabelas-verdades implementadas em Verilog:
a.) n x y f(x,y)
0 0 0 1
1 0 1 0
2 1 0 1
3 1 1 1
b.) n x y f(x,y)
0 0 0 0
1 0 1 1
2 1 0 0
3 1 1 1
c.) n x y z f(x,y,z)
0 0 0 0 1
1 0 0 1 0
2 0 1 0 0
3 0 1 1 0
4 1 0 0 1
5 1 0 1 0
6 1 1 0 1
7 1 1 1 1
d.) n x y z f(x,y,z)
0 0 0 0 1
1 0 0 1 1
2 0 1 0 1
3 0 1 1 0
4 1 0 0 1
5 1 0 1 0
6 1 1 0 1
7 1 1 1 1
e.) n x y w z f(x,y,w,z)
0 0 0 0 0 1
1 0 0 0 1 1
2 0 0 1 0 0
3 0 0 1 1 0
4 0 1 0 0 0
5 0 1 0 1 0
6 0 1 1 0 1
7 0 1 1 1 1
8 1 0 0 0 0
9 1 0 0 1 0
10 1 0 1 0 1
11 1 0 1 1 1
12 1 1 0 0 0
13 1 1 0 1 0
14 1 1 1 0 1
15 1 1 1 1 1
Vdeos recomendados
Como preparao para o incio das atividades,
recomenda-se assistir os seguintes vdeos:
http://www.youtube.com/watch?v=Tb1qLGR2hvU http://www.youtube.com/watch?v=UrA-miNZ6ag
http://www.youtube.com/watch?v=wAqlu7M4xvA