Você está na página 1de 7

FUNDAÇÃO EDUCACIONAL DE MONTES CLAROS

FACULDADE DE CIÊNCIA E TECNOLOGIA DE MONTES CLAROS


DEPARTAMENTO DE ENGENHARIA DE MONTES CLAROS
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO

AULA PRÁTICA No. 6


IMPLEMENTAÇÃO DE CONTADORES EM PLDs COM VHDL

MARCOS FELIPE SOARES SANTOS


HERICLES FREIRE SOARES
Engenharia de Controle e Automação
6o. Período.

MONTES CLAROS, 15 DE NOVEMBRO DE 2019


FUNDAÇÃO EDUCACIONAL DE MONTES CLAROS
FACULDADE DE CIÊNCIA E TECNOLOGIA DE MONTES CLAROS
DEPARTAMENTO DE ENGENHARIA DE MONTES CLAROS
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO

SUMÁRIO
AULA PRÁTICA No. 6 1
TÍTULO Error! Bookmark not defined.
1 – INTRODUÇÃO 3
CONTADORES ASSINCRONOS 3
CONTADORES DE DECADAS 3
CONTADORES SINCRONOS 3
2 - DESENVOLVIMENTO 4
3 - CONCLUSÃO 7
4 - BIBLIOGRAFIA 7
7

2
FUNDAÇÃO EDUCACIONAL DE MONTES CLAROS
FACULDADE DE CIÊNCIA E TECNOLOGIA DE MONTES CLAROS
DEPARTAMENTO DE ENGENHARIA DE MONTES CLAROS
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO

1 – INTRODUÇÃO

Um contador é um circuito digital que evolui sob o comando de um sinal de relógio, de forma que
seus estados reproduzam uma sequência pré-determinada. Contadores digitais são utilizados
principalmente para contagens, geração de palavras, divisão de frequências, medição de frequência e
tempo. São basicamente divididos em duas categorias: contadores assíncronos e síncronos.

CONTADORES ASSÍNCRONOS

 Contadores de Pulso
 Contadores de Década
 Contador Sequencial de O a N
 Contadores Assíncronos Decrescentes
 Contadores Assíncronos Up-Down (crescente/decrescente)

CONTADORES DE DECADAS

É o circuito que efetua a contagem, em números binários, de zero a nove (10 algarismos), ou
código BCD, isso significa seguir uma sequência binária 8421 de 0000 a 1001. Para construir esse
circuito, utilizamos o contador de pulso, interligando as entradas clear dos flip-flops. Para que o
contador conte somente de 0 a 9, deve-se jogar um nível zero na entrada clear assim que surgir o
caso (1010), ou seja, no 10º pulso.
Para que isso aconteça, ligamos as saídas "Q" dos flip-flops 4 e 2 e as saídas "Q*" (Q barra) dos flip-
flops 3 e 1, em uma porta NAND, já que para a combinação descrita, Q4=1, Q2=1, Q*3=1 e Q*1=1 a
porta NAND só vai ter entradas 1, e resultará uma saída 0, ativando os clears dos flip-flops.

CONTADORES SÍNCRONOS

Nesses contadores, o sinal de relógio entra em todos os flip-flops simultaneamente. Para que haja
mudanças de estado, deve-se então estudar o comportamento das entradas J e K dos vários flip-flops,
para que se tenha nas saídas as sequências desejadas. Para isso, deve-se escrever a tabela verdade das
entradas J e K dos flip-flops para que esses assumam os estados seguintes. O contador síncrono é o
mais completo contador, ele tem condições de gerar qualquer tipo de sequência binária, ou seja, é um
gerador de palavras e consequentemente de códigos binários.

O trabalho tem como objetivo implementar circuitos lógicos sequenciais do tipo contador, utilizando
o software QUARTUS II e programação em VHDL, praticando a implementação nos níveis de
abstração estrutural e abstração comportamental.

3
FUNDAÇÃO EDUCACIONAL DE MONTES CLAROS
FACULDADE DE CIÊNCIA E TECNOLOGIA DE MONTES CLAROS
DEPARTAMENTO DE ENGENHARIA DE MONTES CLAROS
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO

2 - DESENVOLVIMENTO

Para realizamos a pratica utilizamos os seguintes matérias:

 PC com o software QUARTUS II


 Kit didático com FPGA

Para saber como iria funcionar os projetos, simulamos esse primeiro código :

Configuramos os pinos de entradas e saídas, e jogamos dentro da placa, após isso começamos a analisar o
código. Vimos que o contador realiza a contagem de 0 a 7.

Então visto isso, começamos a realizar o projeto, que tinha que realizar um contador de assíncrono de 4 bits.

4
FUNDAÇÃO EDUCACIONAL DE MONTES CLAROS
FACULDADE DE CIÊNCIA E TECNOLOGIA DE MONTES CLAROS
DEPARTAMENTO DE ENGENHARIA DE MONTES CLAROS
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO

Para isso, analisamos o código e vimos que tinha 3 flip-flops, como ele queria de 4 bits, acrescentamos mais
um e aumentamos seu buffer de 2 para 3.

Ficando da seguinte maneira:

ENTITY PRATICA6 IS
PORT ( clock :IN BIT;
qout :BUFFER BIT_VECTOR (3 DOWNTO 0));
END PRATICA6;
ARCHITECTURE counter OF PRATICA6 IS
SIGNAL high :BIT;
COMPONENT neg_jk
PORT (clk, j, k :IN BIT;
q :OUT BIT);
END COMPONENT;
BEGIN
high <= '1'; ---connect to vcc
ffo : neg_jk PORT MAP(j=> high, k => high, clk =>clock, q=> qout(0));
ff1 : neg_jk PORT MAP(j=> high, k => high, clk => qout(0), q=> qout(1));
ff2 : neg_jk PORT MAP(j=> high, k => high, clk => qout(1), q=> qout(2));
ff3 : neg_jk PORT MAP(j=> high, k => high, clk => qout(2), q=> qout(3));
END counter;
ENTITY neg_jk IS
PORT ( clk,j,k : IN BIT;
q : OUT BIT);
END neg_jk;
ARCHITECTURE simple of neg_jk IS
SIGNAL qstate :BIT;
BEGIN
PROCESS(clk)
BEGIN
IF(clk'EVENT AND clk = '0')THEN
IF j='1' AND k='1' THEN qstate <= NOT qstate;
ELSIF j='1'AND k = '0' THEN qstate <= '1';
ELSIF j='0' AND k ='1' THEN qstate <='0';
END IF;
END IF;
END PROCESS;
q <= qstate;
END simple;

Feito isso, começamos a realizar a segunda parte da pratica que era um contador síncrono. Digitamos o
seguinte código :

5
FUNDAÇÃO EDUCACIONAL DE MONTES CLAROS
FACULDADE DE CIÊNCIA E TECNOLOGIA DE MONTES CLAROS
DEPARTAMENTO DE ENGENHARIA DE MONTES CLAROS
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO

Vimos que o contador síncrono contava de 0 a 4. Tendo em base este código, tivemos que realizar um
contador década que conta de 0 a 9. Analisamos e começamos as mudanças que ficou da seguinte maneira:

ENTITY fig7_40 IS
PORT( clock : IN BIT;
q :OUT INTEGER RANGE 0 TO 12);
END fig7_40;

ARCHITECTURE a OF fig7_40 IS
BEGIN
PROCESS (clock)
VARIABLE count: INTEGER RANGE 0 to 12; --define uma VARIABLE numérica
BEGIN
IF (clock = '1' AND clock'EVENT ) THEN --borda de subida?
IF count < 10 THEN
count:=count + 1;
ELSE
count :=0;
END IF;
END IF;
q <= count;
END PROCESS;
END a;

Comprovamos sua funcionalidade.


6
FUNDAÇÃO EDUCACIONAL DE MONTES CLAROS
FACULDADE DE CIÊNCIA E TECNOLOGIA DE MONTES CLAROS
DEPARTAMENTO DE ENGENHARIA DE MONTES CLAROS
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO

3 - CONCLUSÃO

O desenvolvimento possibilitou como podemos realizar um contador assíncrono e síncrono utilizando a


linguagem VHDL.

Para desenvolver a pratica, tivemos alguns problemas para compilar o código na placa. Mas de modo geral,
conseguimos realizar o contador de década e um contador de 0 a 15.

O trabalho em dupla possibilitou maior entendimento para realizar a pratica.

Portanto, utilizando os nossos conhecimentos conseguimos realizar os contadores assíncronos e síncronos


proposto pelo Prof Maurilio.

4 - BIBLIOGRAFIA

CONTADORES. Disponível em:<https://pt.wikipedia.org/wiki/Contador_(eletr%C3%B4nica)


>.Acesso em: 15 nov.2019.

NOTAS DE AULAS

Você também pode gostar