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
 
(6 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 44: Linha 44:
 
#Selecione o diagrama esquemático do ContUpDown.bdf e crie um simbolo para este diagrama ['''File > Create/Update > Create Symbol File for Current File'''], [Save], [OK].
 
#Selecione o diagrama esquemático do ContUpDown.bdf e crie um simbolo para este diagrama ['''File > Create/Update > Create Symbol File for Current File'''], [Save], [OK].
 
#Repita o procedimento para o ConvBcdSsd.bdf.
 
#Repita o procedimento para o ConvBcdSsd.bdf.
#Crie um novo diagrama esquemático com nome '''/home/aluno/Contador/ContCompleto''' ('''File >> New >> Block Diagram/Schematic File'''), 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.
+
#Crie um novo diagrama esquemático com nome '''/home/aluno/Contador/ContCompleto''' ('''File >> New >> Block Diagram/Schematic File'''), 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. [[Imagem:Contador0-15_diagv2.png|900px]]
#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.[[Imagem:Contador0-15_diagv2.png|900px]]
 
  
 
==Preparar o circuito lógico para gravação em um kit de desenvolvimento==
 
==Preparar o circuito lógico para gravação em um kit de desenvolvimento==
Linha 65: Linha 63:
 
# Configure as chaves e verifique o funcionamento do circuito. <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">Provavelmente você perceberá que a cada toque na chave associada ao clock ocorrerão vários saltos no contador, isso é provocado pelos repiques na chave.</span>
 
# Configure as chaves e verifique o funcionamento do circuito. <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">Provavelmente você perceberá que a cada toque na chave associada ao clock ocorrerão vários saltos no contador, isso é provocado pelos repiques na chave.</span>
 
# 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:
 
# 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
+
## Tools > IP Catalog > Library > Basic Function > Arithmetic > LPM_COUNTER
## Create a new custom megafunction variation > Next.
+
## IP Variation file name: /home/aluno/Contador/clock1ms > OK
## Aritimethic > LPM_counter > what name do you want for the outoput file?: '''clock1ms''' > Next
 
 
## 16 bits > Up only > Next
 
## 16 bits > Up only > Next
 
## Modulus, with a count modulus of 50000 > [Habilite a opção] '''Carry-out''' > Next.
 
## Modulus, with a count modulus of 50000 > [Habilite a opção] '''Carry-out''' > Next.
Linha 73: Linha 70:
 
## Next.
 
## Next.
 
## Habilite a opção '''Quartus II symbol file''' > Finish.
 
## Habilite a opção '''Quartus II symbol file''' > Finish.
## Baixe o projeto ''deboucer'' [[Arquivo:Deboucer.qar]].
+
## Baixe o projeto ''deboucer'' [https://docente.ifsc.edu.br/odilson/CIL29003/Debounce.zip].
## Restaure o projeto: Project > Restore Archived Project
+
## Abra o Navegador de Arquivos e descompacte o pacote zip baixado.
## {procure o arquivo} '''Deboucer.qar''' > Open.
+
## Crie um novo arquivo ('''File >> New >> Block Diagram/Schematic File''')
## OK
+
## File > Open > {procure o arquivo} '''Debouncer_v2.bdf''' > Open.
## Abra o esquemático do Debouncer_v2.
+
## Salve o arquivo na pasta do projeto ('''File >> Save As >> /home/aluno/Contador/Debouncer_v2.bdf''')
## Copie todo o arquivo: (Ctrl + a) e (Ctrl + c)
 
## Abra novamente o projeto do contador: File > Open Project > /home/aluno/Contador > Open.
 
## Crie um novo diagrama nesse projeto: File > New > Block Diagram/Schematic File > OK.
 
## Cole o diagrama do debouncer copiado: (Ctrl + v).
 
## Salve o diagrama esquemático com o nome '''debouncer''': (Ctrl + s) > '''/home/aluno/Contador/debouncer''' > Save.
 
 
## Configure o '''debouncer''' para ser o Top Level Entity e compile o esquemático.
 
## Configure o '''debouncer''' para ser o Top Level Entity e compile o esquemático.
 
## Crie um novo ''Symbol File'' para o debouncer: [File > Create/Update > Create Symbol File for Current File].
 
## Crie um novo ''Symbol File'' para o debouncer: [File > Create/Update > Create Symbol File for Current File].

Edição atual tal como às 08h57min de 17 de maio de 2023

Objetivos
  • Inserir o circuito comercial de um Contador síncrono crescente/decrescente;
  • Inserir o circuito comercial de um decodificadores de 7 segmentos;
  • Testar os circuitos e gerar blocos para ser utilizado em um sistema maior;
  • Gravar o sistema final em um kit de desenvolvimento e validação do funcionamento;
Materiais necessários
  1. CI 74X191 Contador binário síncrono(disponível na biblioteca da ALTERA)
  2. CI 74X47/48 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

  1. Abra o Quartus II e crie um novo projeto com nome ContUpDown na pasta /home/aluno/Contador, utilizando a família family=Cyclone IV E com o dispositivo device=EP4CE115F29C7 (placa grande) ou Family = Cyclone IV E com dispositivo device = EP4CE30F23C7 (Placa pequena).
  2. Crie um novo diagrama esquemático (File >> New >> Block Diagram/Schematic File).
  3. Insira o diagrama esquemático de um Contador binário síncrono com 4 bits, conforme a figura abaixo.CI74191 diag.png
  4. Após isso faça a Análise e Síntese do projeto: Processing >> Start Compilation.
  5. Abra o editor de forma de onda do simulador QSIM (File > New > University Programa VWF) (v 13.0 e 13.1).
  6. Defina o tempo de simulação (Edit > Set End Time ...) = 1000 ns.
  7. Importe todos os nós de lista do projeto (Edit > Insert > Insert Node or Bus) > [Node Finder] > [List] > [>>] > [OK] > [OK].
  8. 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
  9. Indique que o QSIM será usado na simulação (Simulation > Options > (x) Quartus II Simulator) > [OK] > [OK] (v. 13.0)
  10. Faça a simulação funcional do circuito lógico usando o sinal criado (Simulation > Run Functional Simulation)
  11. O resultado da simulação deve corresponder a um contador.
  12. Note que os bits das saídas estão agrupados e definidos como RADIX = "Decimal sem sinal". Para isso selecione os sinais [Edit > Grouping] [Group name = OUT] > [Radix = Unsigned Decimal] > [OK].
  13. 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 fazer para parar a contagem por um tempo mantendo o sinal de clock ligado?

Teste do módulo decodificar de 7 segmentos

  1. Crie um novo diagrama esquemático (File >> New >> Block Diagram/Schematic File) no mesmo projeto para inserir o diagrama esquemático de um decodificar de 7 segmentos para display de anodo comum, conforme a figura abaixo. Para a FPGA grande (DE2-115) utilize o conversor 7447, conforme figura abaixo, e para a FPGA pequena (Macnica), que possui display Catodo Comum, deve-se utilizar o 7448. Ambos os componentes apresentam a mesma pinagem.CI7447 diag.png
  2. Após salvar o arquivo como ConvBcdSsd.bdf na mesma pasta Contador. Mude o Top-Level Entity para este novo esquemático. Após isso faça a Análise e Síntese do projeto.

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

  1. Selecione o diagrama esquemático do ContUpDown.bdf e crie um simbolo para este diagrama [File > Create/Update > Create Symbol File for Current File], [Save], [OK].
  2. Repita o procedimento para o ConvBcdSsd.bdf.
  3. Crie um novo diagrama esquemático com nome /home/aluno/Contador/ContCompleto (File >> New >> Block Diagram/Schematic File), 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. Contador0-15 diagv2.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 ou Mercurio IV.

Clique para Ampliar
  1. Confira a família e dispositivo a ser usado (Assignments > Devices), utilizando a família family=Cyclone IV E com o dispositivo device=EP4CE115F29C7 (Placa grande) ou device = EP4CE30F23C7 (Placa pequena), e faça uma nova Análise e Síntese para que a nova pinagem do FPGA seja reconhecida pelo Quartus.
  2. Atribua os pinos do circuito aos pinos do FPGA utilizando o Pin Planner [Assignments > Pin Planner].
  3. Para descobrir a pinagem do FPGA e sua associação com os componentes do kit consulte o Manual da DE2-115/Interfaces de entrada e saída da DE2-115 ou Pinagem_dos_dispositivos_de_entrada_e_saída_do_kit_MERCURIO_IV.
  4. Para facilitar a configuração dos pinos, Assignments >> pin Planner:
    1. Utilize o display de sete segmentos para mostrar a saída do decodificador de 7 segmentos, fazendo as devidas conexões.
    2. Utilize uma chave de contato momentâneo (push button) para gerar o sinal de CLK.
    3. Utilize a chave deslizante SW[0] para o sinal DN/UP, SW[1] para o sinal G', SW[2] para o sinal LD'.
    4. Utilize leds para mostrar o estado dos sinais MXMN, RBO' e RCO'. Pode ser os leds RGB.
  5. Compile o projeto. Note que agora a numeração dos pinos também aparece no diagrama esquemático.
  6. Use a porta USB-Blaster para fazer a programação na placa DE2-115 ou MERCURIO IV;
  7. No Quartus vá em (Tools > Programmer) para abrir a página de programação;
    1. Selecione o Hardware (Hardware Setup > USB-Blaster);
    2. Utilize o modo JTAG e clique em Start para começar a programação;
      Clique para Ampliar
  8. Configure as chaves e verifique o funcionamento do circuito. Provavelmente você perceberá que a cada toque na chave associada ao clock ocorrerão vários saltos no contador, isso é provocado pelos repiques na chave.
  9. 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:
    1. Tools > IP Catalog > Library > Basic Function > Arithmetic > LPM_COUNTER
    2. IP Variation file name: /home/aluno/Contador/clock1ms > OK
    3. 16 bits > Up only > Next
    4. Modulus, with a count modulus of 50000 > [Habilite a opção] Carry-out > Next.
    5. Next.
    6. Next.
    7. Habilite a opção Quartus II symbol file > Finish.
    8. Baixe o projeto deboucer [1].
    9. Abra o Navegador de Arquivos e descompacte o pacote zip baixado.
    10. Crie um novo arquivo (File >> New >> Block Diagram/Schematic File)
    11. File > Open > {procure o arquivo} Debouncer_v2.bdf > Open.
    12. Salve o arquivo na pasta do projeto (File >> Save As >> /home/aluno/Contador/Debouncer_v2.bdf)
    13. Configure o debouncer para ser o Top Level Entity e compile o esquemático.
    14. Crie um novo Symbol File para o debouncer: [File > Create/Update > Create Symbol File for Current File].
    15. Volte ao diagrama do contador (ContCompleto) e acrescente os blocos clock1ms e debouncer: Symbol Tool > Project ...
    16. Interligue os blocos. 1) a entrada clock do clock1ms em PIN_T1. 2) A saída cout do clock1ms em clk_1ms do debouncer. 3) A entrada sw do debouncer na chave KEY[11]. 4) A saída sw_debounced no CLK do contador. Conforme figura ao lado:
      Clique para Ampliar
    17. Compile o projeto, programe na placa e verifique o funcionamento. Perceba que agora a chave não deve mais apresentar os repiques.