Mudanças entre as edições de "Contador binário síncrono"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 98: Linha 98:
 
**Cole o diagrama copiado: (Ctrl + v).
 
**Cole o diagrama copiado: (Ctrl + v).
 
**Salve o diagrama esquemático com o nome debouncer: (Ctrl + s) > debouncer > Save.
 
**Salve o diagrama esquemático com o nome debouncer: (Ctrl + s) > debouncer > Save.
 +
**Volte ao diagrama do contador e acrescente os blocos clock1s e debouncer: Symbol Tool > Project ...
 +
**Interligue os blocos. 1) a entrada clock do clock1s em PIN_T1. 2) A saída cout do clock1s em clk_1ms do debouncer. 3) a entrada sw do debouncer no
  
  

Edição das 13h50min de 8 de maio de 2017

Objetivos
  • Inserir o circuito comercial de um Contador síncrono crescente;
  • Inserir o circuito comercial de um decodificadores de 7 segmentos;
  • Testar os circuitos e gerar blocos para ser utilizado em um sistema maior;
  • Preparar o sistema final para gravação em um kit de desenvolvimento;
Materiais necessários
  1. CI 74X191 Contador binário síncrono(disponível na biblioteca da ALTERA)
  2. CI 74X47 Decod 7-seg(disponível na biblioteca da ALTERA)
  3. Computador com software Quartus II da Altera.
  4. Kit DE2-115 - Cyclone: EP1C3T100A8 ou Mercurio IV - Cyclone IV: EP4CE30F23C7;

Teste do módulo contador binário síncrono

  • Abra o Quartus II (versão 13.0.1 SE) e insira o diagrama esquemático de um Contador binário síncrono com 4 bits, conforme a figura abaixo.

CI74191 diag.png

  • Após salvar o arquivo como CI74191.bdf em uma pasta vazia com nome Exp6, e crie um projeto Exp6.qpf utilizando a família family=Cyclone com o dispositivo device=EP1C3T100A8 ou Cyclone IV E com device = EP4CE30F23C7. Após isso faça a Análise e Síntese do projeto.
  • Desenhe a forma de onda dos sinais de entrada conforme mostrado na figura abaixo, e salve com o nome tb_CI74191.vwf.

Tb CI74191.png

  • Verifique se o resultado obtido corresponde a respostas do circuito implementado.

Rtb CI74191.png

QUESTIONÁRIO
  • O que é necessário para fazer o contador fazer uma contagem descendente?
  • Como deve ser feita a configuração para o contador contar de 2 a 15?
  • Como deve ser feita a configuração para contar de 0 a 9? e de 9 a 0?
  • Como fazer para parar a contagem por um tempo mantendo o sinal de clock ligado?

Teste do módulo decodificar de 7 segmentos

  • Crie um novo diagrama esquemático no mesmo projeto para insirir o diagrama esquemático de um decodificar de 7 segmentos para display de anodo comum, conforme a figura abaixo. Se o kit em uso for o MERCURIO IV que possui display Catodo Comum, deve-se utilizar o CI7448, que possui a mesma pinagem.

CI7447 diag.png

  • Após salvar o arquivo como CI7447.bdf na mesma pasta Exp6. Mude o Top-Level Entity para este novo esquemático. Após isso faça a Análise e Síntese do projeto.
  • Desenhe a forma de onda dos sinais de entrada conforme mostrado na figura abaixo, e salve com o nome tb_CI7447.vwf.

Tb CI7447.png

  • Analise se o resultado está de acordo com a figura a seguir, ou a tabela verdade do datasheet do componente 74XX47.
  • Se tiver dúvidas sobre o funcionamento do display consulte a página sobre o Display de 7 segmentos.

Segmentos 7447.png

QUESTIONÁRIO
  • Neste Circuito Integrado (CI), qual é a condição para cada led do display acender?
  • O que deveria ser feito caso o display fosse do tipo catodo comum?
  • Qual é a função dos pinos LT, RBI, BI e RBO?

Criação do sistema completo com os módulos testados

  • Selecione o diagrama esquemático do CI7447.bdf e crie um simbolo para este diagrama [File > Create/Update > Create Symbol File for Current File], [Save], [OK].
  • Repita o procedimento para o CI74191.bdf.
  • Crie um novo diagrama esquemático no mesmo projeto para inserir o diagrama esquemático do sistema que será composto dos dois módulos, conforme a figura abaixo. Mude o Top-Level Entity para este novo esquemático. Após isso faça a Análise e Síntese do projeto.
  • Coloque o sinal de entrada para testar o circuito para verificar se os dois módulos estão funcionando corretamente. Faça o circuito contar de 0 até 15 e depois de 15 até 0.

Contador0-15 diag.png

Preparar o circuito lógico para gravação em um kit de desenvolvimento

Para gravar o circuito lógico no FPGA, é necessário escolher um FPGA para a aplicação. Neste caso utilizaremos o kit DE2-115.

Clique para Ampliar
  • Utilize o display HEX0 para mostrar a saída do decodificador de 7 segmentos, fazendo as devidas conexões.
  • Utilize a chave de contato momentâneo KEY[0] para gerar o sinal de CLK.
  • Utilize a chave deslizante SW[0] para o sinal DN/UP, SW[1] para o sinal G', SW[2] para o sinal LD'.
  • Utilize leds para mostrar a contagem em binário QD QC QB e QA.
  • Utilize leds para mostrar o estado dos sinais MXMN, RBO' e RCO'.
  • Defina como alta impedância o estado dos pinos não utilizados no projeto. (Assignments > Devices), [Device and Pin Options...], escolha a (Category=Unused Pins), e selecione Reserve all unused pins: As input tri-stated. [OK].
  • Compile o projeto. Note que agora a numeração dos pinos também aparece no diagrama esquemático.
  • Use a porta USB-Blaster para fazer a programação na placa DE2-115 ou MERCURIO IV;
  • No Quartus vá em (Tools > Programmer) para abrir a página de programação;
    • Selecione o Hardware (Hardware Setup > USB-Blaster);
    • Utilize o modo JTAG e clique em Start para começar a programação;
      Clique para Ampliar
  • Normalmente uma chave apresenta os denominados repiques de sinal, ou seja, ao se alterar o estado da chave o sinal elétrico oscila várias vezes entre um nível lógico e outro, antes de estabilizar. Para evitar esse fenômeno pode-se fazer uso de um deboucer que gera um atraso entre os estados. Para usar o deboucer siga os seguintes passos:
    • Tools > Megawizard Plugin Manager
    • Create a new custom megafunction variation > Next.
    • Aritimethic > LPM_counter > what name do you want for the outoput file?: clock1s > Next
    • 26 bits > Up only > Next
    • Modulus, with a count modulus of 50000000 > [Habilite a opção] Carry-out > Next.
    • Next.
    • Next.
    • Habilite a opção Quartus II symbol file > Finish.
    • Baixe o projeto deboucer Arquivo:Deboucer.qar.
    • Restaure o projeto: Project > Restore Archived Project
    • {procure o arquivo} Deboucer.qar > Open.
    • OK
    • Abra o esquemático do Debouncer_v2.
    • Copie todo o arquivo: (Ctrl + a) e (Ctrl + c)
    • Abra novament eo projeto do contador: File > Open Project > {informe o diretório e o nome} > Open.
    • Crie um novo diagrama nesse projeto: File > New > Block Diagram/Schematic File > OK.
    • Cole o diagrama copiado: (Ctrl + v).
    • Salve o diagrama esquemático com o nome debouncer: (Ctrl + s) > debouncer > Save.
    • Volte ao diagrama do contador e acrescente os blocos clock1s e debouncer: Symbol Tool > Project ...
    • Interligue os blocos. 1) a entrada clock do clock1s em PIN_T1. 2) A saída cout do clock1s em clk_1ms do debouncer. 3) a entrada sw do debouncer no


    • Para utilizar o bloco basta inserir um novo componente e buscar pelo nome do bloco criado: clock1s. Ajustar o pino de entrada de clock para o clock da placa FPGA PIN_T1 e utilizar a saída cout conectada ao CLK do contador, que gerará uma onda com período de tempo de 1 s.
    • Introduza este bloco entre os pinos da chave e do circuito montado.
  • Outro
QUESTIONÁRIO
  • Verifique o funcionamento da chave LD. Qual é a sua função?
  • Verifique o funcionamento da chave G. Qual é a sua função?
  • Verifique o funcionamento da chave UP/DN. Qual é a sua função?
  • Confira se a contagem está sendo feita da forma correta e se os símbolos mostrados no display correspondem ao esperado e mostrado nos leds vermelhos. Existe algum problema na contagem?
  • Analise as saídas MXMN, RBO, RCO tanto na contagem crescente como decrescente. O que estes sinais representam?