Вы находитесь на странице: 1из 8

Relatrio de Eletrnica Digital

Prtica 01: Lgica Combinacional - Portas Lgicas em Verilog

Djarr Ortolam Batista da Silva 11020414


Rodrigo Akiyama Abrantes 11002412
Saulo Filho Perceval 11009014
Valdecir Soares Pimenta 11107312

1. Resumo

Esta prtica foi dedicada ao desenvolvimento em Verilog de um circuito capaz de


simular o controle de iluminao de uma sala com uma lmpada e trs interruptores ligados
esta lmpada ao mesmo tempo, bem como algumas variaes (testando a utilizao de
menos variveis no cdigo em Verilog e realizando um teste com quatro interruptores ao
invs de trs). O resultado foi satisfatrio, j que o circuito funcionou, porm ficou claro que
em algumas situaes a simplificao do circuito se torna uma ferramenta poderosa, j que
foi extremamente trabalhoso inserir uma nica varivel a mais (o trabalho para a construo
do circuito cresce exponencialmente com a quantidade de variveis), exerccio realizado na
semana seguinte (que reduziu o nmero de portas lgicas consideravelmente).

2. Introduo

Diante de situaes reais s quais possvel aplicar solues baseadas em


eletrnica digital nem sempre se encontra a mais simples (e, consequentemente, na maioria
das vezes mais barata de se aplicar) imediatamente.
Apresentando este problema da sala com trs interruptores (um problema verossmil,
no puramente terico) torna possvel exercitar a construo de tabelas verdade, o uso de
portas lgicas e a programao em Verilog, alm de reforar os conceitos e operaes com
lgebra booleana.
O objetivo desta prtica desenvolver um circuito capaz de mudar o estado da
lmpada (ligada ou desligada) assim que um interruptor for acionado, utilizando a placa
FPGA para realizar a simulao e verificar os resultados e, por fim, simplificar o circuito e
repetir os passos anteriores.

3. Fundamentao Terica

Ao trabalhar com lgica computacional, um recurso importante e poderoso o uso


de operaes lgicas, sendo elas OU, E e NO - que em lgebra booleana so
representadas como uma soma, uma multiplicao e uma negao, respectivamente.
O funcionamento desses operadores em circuitos simples se d pelo uso de portas
lgicas, dispositivos que contm um circuito que recebe sinais de entrada e responde com
uma sada coerente. O sinal em questo a presena ou ausncia de voltagem nas
entradas da porta, sendo representado por 0 (ausncia) e por 1 (presena de tenso).
Para representar circuitos mais complexos possvel escrever uma expresso
booleana utilizando os operadores mencionados, o que foi feito para a situao dos 3
interruptores. Sendo assim, a prtica deve confirmar que a expresso obtida para o
problema pode ser aplicada diretamente de forma a obter a tabela verdade do experimento
igual terica. Alm disso, com o uso de identidades para a lgebra booleana possvel
simplificar expresses longas.

4. Metodologia

Na primeira semana do experimento, a partir da tabela verdade referente ao


problema dos interruptores, previamente construda em sala de aula, e a expresso
booleana e o circuito lgico derivados dessa tabela, foi criado no Quartus um projeto
utilizando o estilo _data flow, que permite desenhar o circuito no programa. Aps isso, foi
nos fornecido um cdigo j pronto do mesmo problema na linguagem Verilog para que ns
eliminssemos as variveis intermedirias do cdigo. Isso foi feito inserindo as expresses
das variveis intermedirias em uma nica expresso
Ainda foi obtida a tabela da verdade, a expresso booleana e o circuito lgico
tambm para o mesmo problema, mas com o acrscimo de um interruptor. O projeto no
estilo _data flow desse problema tambm foi criado no Quartus.
Na segunda semana do experimento, ambas as expresses booleanas foram
simplificadas ao mximo, utilizando lgebra booleana. A partir das expresses simplificadas,
foram escritos os cdigos em Verilog no Quartus de ambos os problemas.
Todos os programas criados no Quartus foram compilados e carregados na placa
FPGA para que seu correto funcionamento fosse atestado.

5. Anlise

A seguinte tabela da verdade foi previamente montada em sala de aula para obter-se
a expresso booleana do circuito com trs interruptores.

Tabela 1 - Tabela da verdade do circuito com trs interruptores

A partir dessa tabela, a seguinte expresso booleana foi obtida:

S = A.B .C + A.B.C + A.B .C + A.B.C


Com a expresso booleana obtida, o seguinte circuito foi desenhado no software
Quartus, sendo depois compilado e carregado ao FPGA.

Imagem 1 - Esquemtico do circuito com trs interruptores desenhado no Quartus

Imagem 2 - Programa com trs interruptores sendo executado no FPGA


Para a parte seguinte do experimento foi nos fornecido o seguinte cdigo:

/* ----------------------------------------------------------------------------
Company: UFABC - Engenharia de Informao - CECS
Engineer: Joo Ranhel
Create Date: 10/05/2
017

Design Name: Praticas de Eletrn


ica Digital (ESTI002-17)
Module Name: controle_da_lampada
Language: Verilog-2001

Descrio:
Circuito que controla uma lmpada por mltiplos interruptores - PROJETO #1
O estilo utilizado dataflow (somente conexo entre portas lgicas)
Equao a implementar (Projeto #1): L = ~A.~B.C + ~A.B.~C + A.~B.~C + A.B.C
-----------------------------------------------------------------------------*/
module controle_da_lampada // nome do mdulo = nome do arquivo.v
(
input a, b, c, // ports in: conecte s chaves sliders
output l // port out: conecte a um LED na placa!
);

wire x1, x2, x3, x4; // requer4 fios intermedirios (x1..x4)

assign x1 = ~a & ~b & c; // 1o. termo da equao


assign x2 = ~a & b & ~c; // 2o. termo da equao
assign x3 = a & ~b & ~c; // 3o. termo da equao
assign x4 = a & b & c; // 4o. termo da equao

assign l = x1 + x2 + x3 + x4; // soma de produtos xnal...

endmodule

// -------------- xnal do cdigo LONGO da prtica 01 --------------------------

Os fios intermedirios x1, x2, e x4 foram eliminados inserindo as expresses


definidas a cada fio em uma s expresso:

module controle_da_lampada // nome do mdulo = nome do arquivo.v


(
input a, b, c, // ports in: conecte s chaves sliders
output l // port out: conecte a um LED na placa!
);

assign l = (~a & ~b & c) + (~a & b & ~c) + (a & ~b & ~c) + (a & b & c); //
soma de produtos

endmodule
Para o circuito com quatro interruptores, foi obtida a tabela da verdade abaixo:

Tabela 2 - Tabela da verdade do circuito com quatro interruptores

A partir dessa tabela da verdade foi obtida a seguinte expresso booleana:


S = A.B .C .D + A.B .C.D + A.B.C .D + A.B.C.D + A.B .C .D + A.B .C.D + A.B.C .D + A.B.C.D

Com a expresso booleana obtida, o seguinte circuito foi desenhado no software


Quartus, sendo depois compilado e carregado ao FPGA.
Imagem 3 - Esquemtico do circuito com quatro interruptores desenhado no Quartus

Imagem 4 - Programa com quatro interruptores sendo executado no FPGA


Na segunda semana do experimento, as expresses booleanas foram simplificadas.
A expresso do primeiro circuito foi simplificada da seguinte forma:
S = A.B .C + A.B.C + A.B .C + A.B.C
S = A.(B .C + B .C) + A.(B.C + B .C )
S = A(B C ) + A.(B C )
Substituindo:
X =BC
S = A.X + A.X
S =AX
S = A (B C )

A expresso do segundo circuito foi simplificada da seguinte forma:


S = A.B .C .D + A.B .C.D + A.B.C .D + A.B.C.D + A.B .C .D + A.B .C.D + A.B.C .D + A.B.C.D
S = A.B .(C .D + C .D) + A.B.(C .D + C .D) + C .D.(A.B + A.B) + C .D.(A.B + A.B)
S = (A.B + A.B).C D + (C.D + C .D).A B
S = (A B ).C D + (C D).A B
Substituindo:
X =AB e Y =C D
S = X .Y + X .Y
S =X Y
S = (A B ) (C D)

Com as expresses booleanas simplificadas, os respectivos cdigos em Verilog


foram escritos no programa Quartus, compilados e carregados ao FPGA.

Imagem 5 - Cdigo Verilog do circuito com trs interruptores

Imagem 6 - Cdigo Verilog do circuito com quatro interruptores


6. Concluses

Terminada a realizao das duas etapas do procedimento de laboratrio, que consistiram da


implementao do cdigo e da tabela fornecidos na primeira etapa e da simplificao da
equao final na segunda, foi possvel verificar o quo valiosa a simplificao . A partir
dela, as expresses booleanas para ambos os circuitos tornaram-se drasticamente mais
simples de se compreender, facilitando a sua implementao em cdigo, que acaba por se
tornar mais sucinto, eliminando o uso excessivo de operadores que se fazia necessrio
anteriormente e que acabam por prejudicar a sua compreenso.

7. Referncias

TOCCI, R. J.; WIDMER, S. S.; MOSS, G. L.; Sistemas Digitais: princpios e aplicaes;
Pearson, 11 Ed; 2015

Вам также может понравиться