Curso de Graduação em Ciência da Computação Disciplina: Laboratório de Eletrônica Digital Professor: Otávio Gomes (otavio.gomes@ifmg.edu.br) Atividade: Contadores síncronos em FPGA utilizando esquemáticos 1 Objetivos Esta aula prática tem como objetivo promover a familiarização dos alunos com: Projeto e simulação de circuitos contadores síncronos utilizando módulos fornecidos pela ferramenta e módulos construídos através da metodologia bottom-up. 2 Material utilizado - Placa de desenvolvimento Altera DE2-115, família Cyclone IVE, modelo EP4CE115F29C7. 3 Normas de segurança e conduta no laboratório - Não coma, nem beba no laboratório. - Mantenha a bancada limpa e todos os componentes organizados sobre a bancada. - Em caso de dúvida, consulte o professor ou monitor antes de executar qualquer tarefa. - LEIA TODO O ROTEIRO antes de iniciar as atividades. 4 Contextualização Na atividade anterior foi realizado o desenvolvimento de circuitos lógicos utilizando contadores assíncronos. O projeto de contadores cíclicos (crescentes e decrescentes) é relativamente mais simples quando se utiliza a construção de contadores assíncronos, por utilizar a montagem característica de flip-flops como divisor de frequências. Uma metodologia bottom-up é aquela em que os menores blocos funcionais são montados, testados e validados. Assim que é verificado seu correto funcionamento, eles passam a integrar blocos maiores, com funcionalidades mais complexas. Nas atividades anteriores foram desenvolvidos alguns circuitos utilizando esta metodologia. Os contadores síncronos funcionam de acordo com um sinal denominado clock, por isso sua nomenclatura, pois funciona em sincronia com os comandos do clock. É possível ao projetista especificar inúmeras sequências de contagem. Esta atividade irá apresentar uma metodologia para a construção destes contadores síncronos utilizando flip-flops. Para a construção destes contadores é necessário conhecer o funcionamento dos flip-flops. A Tabela 1 apresenta a tabela-verdade para os flip-flops SR, D, T e JK, todos trabalhando em borda de subida. TABELA 1 Tabela-verdade para os FF s SR, T, D e JK. CLK S R Q D Q J K Q T Q X X X Q ANT X Q ANT X X Q ANT X Q ANT 0 0 Q ANT 0 0 0 0 Q ANT 0 Q ANT 0 1 0 1 1 0 1 0 1 ~Q ANT 1 0 1 1 0 1 1 1 Indet. 1 1 ~Q ANT A Tabela 2 apresenta a tabela de transição de saída para os flip-flops SR, D, T e JK. TABELA 2 Tabela de transição de saída para os FF s SR, T, D e JK. Q N Q N+1 S R D J K T 0 0 0 X 0 0 X 0 0 1 1 0 1 1 X 1 1 0 0 1 0 X 1 1 1 1 X 0 1 X 0 0 Pág 1/6
5 Ambientação 5.1) Com a placa didática desligada e tendo a finalidade de realizar o desenvolvimento do esquemático, inicie a ferramenta Altera Quartus Web Edition. 5.2) Com a ferramenta Quartus iniciada será criado um novo projeto. Siga os passos necessários para a criação do projeto, obedecendo aos critérios descritos a seguir: 5.2.1) Crie uma pasta exclusiva para cada projeto. Os projetos geram diversos arquivos que podem ser confundidos ou alterar informações em outros projetos. Por este motivo, garante que cada projeto tem sua pasta exclusiva. Neste primeiro caso, o projeto será salvo dentro da pasta fpga05. 5.2.2) Defina um nome significativo para o projeto. O nome do projeto deve representar a maior funcionalidade que ele oferece. Neste primeiro caso, o nome do projeto será cont_sinc012. 5.2.3) No passo [3 de 5] realize as configurações de família para Cyclone IVE e do modelo para EP4CE115F29C7. 5.3) Realize a montagem do esquemático apresentado na figura 1. 5.4) Este passo irá mostrar o projeto do contador apresentado na figura 1. Este circuito realiza a seguinte contagem cíclica: 0,1,2. A Tabela 3 apresenta a tabela-verdade relativa à contagem realizada, apresentando o estado atual e o próximo estado. TABELA 3 Tabela-verdade dos estados atual e próximo. Estado atual Próximo Estado B N A N B N+1 A N+1 0 0 0 1 0 1 0 1 1 0 1 2 1 0 0 0 2 0 1 1 x x Não ocorre 5.4.1) Para o desenvolvimento deste contador foi utilizado o flip-flop JK. As tabelas 1 e 2 apresentam o funcionamento deste flip-flop. A Tabela 4 foi montada a partir das transições apresentadas na Tabela 3 e da tabela de transições do FF JK (tabela 2). TABELA 4 Tabela-verdade das transições do FF JK. Estado atual Próximo Estado FF B FF A B N A N B N+1 A N+1 B J B K A J A K 0 0 0 1 0 x 1 x 0 1 1 0 1 x x 1 1 0 0 0 x 1 0 x 1 1 x x x x x x 5.4.2) A partir da Tabela 4 podem ser montados os mapas de Karnaugh para os FF s JK: B J B B K B A 0 1 A 0 1 0 0 x 0 x 1 1 1 x 1 x x A J B A K B A 0 1 A 0 1 0 1 0 0 x x 1 x x 1 1 x B J = (A and B); B K = 1; A J = ( A and B ); A K = 1. Pág 2/6
5.4.3) Um exemplo de circuito contador síncrono montado a partir de FFs JK pode ser visto na Figura 1. Figura 1 Esquemático de um contador síncrono (Contagem: 0,1,2) 5.4.4) Após a montagem do esquemático, realize a síntese na ferramenta Altera Quartus e a simulação utilizando a ferramenta ModelSim. Utilize as tabelas 7 e 8 para a alocação de pinos. As saídas do contador são: Q A é o pino 15 e Q B é o pino 11; onde Q A é o bit menos significativo da contagem e Q B é o bit mais significativo. Realize a validação deste esquemático durante o laboratório, utilizando o kit didático Altera DE2-115. Apresente o funcionamento ao professor 5.4.5) Cada um dos flip-flops terá sua saída renomeada conforme a variável que o especifica. No caso de montagem de contadores síncronos, a utilização de dispositivos com borda de descida ou de subida não influencia a contagem. Figura 2 Flip-flops do tipo JK 5.4.6) Por exemplo, um contador de quatro bits, utilizando FFs JK, com as seguintes variáveis (MSB) DCBA (LSB), teria como saída de cada um dos dispositivos o valor de sua variável e sua respectiva negação, conforme apresentado pela Figura 3. A B C D A B C D Figura 3 Flip-flops do tipo JK para um contador síncrono Pág 3/6
5.5) Finalizar o projeto do esquemático apresentado nos itens 6.1 a 6.4. 5.6) Realizar o projeto do contador apresentado nos itens 6.1 a 6.4 utilizando flip-flops do tipo JK. 5.7) Projetar e validar um contador síncrono de 5 bits, que realize uma contagem cíclica decrescente apresentando somente os números ímpares: 31 (11111 2 ) até 1 (00001 2 ), utilizando flip-flops do tipo JK. Pág 4/6
6 Experimento 6.1) O circuito deste experimento realiza a seguinte contagem cíclica: 0,2,4,6,8,A,C,E,1,3,5,7,9,B,D,F. Inicialmente, a contagem apresenta de modo crescente os números pares (de 4 bits), depois apresenta os números ímpares e, em seguida, repete o ciclo de contagem. A Tabela 5 apresenta a tabela-verdade relativa à contagem realizada, apresentando o estado atual e o próximo estado. Para esta montagem serão utilizados flipflops do tipo D. TABELA 5 Tabela-verdade dos estados atual e próximo. Estado atual Próximo Estado D N C N B N A N D N+1 C N+1 B N+1 A N+1 0 0 0 0 0 0 1 0 0 2 0 0 0 1 0 0 1 1 1 3 0 0 1 0 0 1 0 0 2 4 0 0 1 1 0 1 0 1 3 5 0 1 0 0 0 1 1 0... 0 1 0 1 0 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1... 1 1 0 0 1 1 1 0 C E 1 1 0 1 1 1 1 1 D F 1 1 1 0 0 0 0 1 E 1 1 1 1 1 0 0 0 0 F 0 6.2) Para o desenvolvimento deste contador foi utilizado o flip-flop D. As tabelas 1 e 2 apresentam o funcionamento deste flip-flop. A Tabela 6 foi montada a partir das transições apresentadas na Tabela 5 e da tabela de transições do FF D (tabela 2). TABELA 6 Tabela-verdade das transições do FF D. Estado atual Próximo Estado Flip-flop D Vide Tabela 2 - FFD D N C N B N A N D N+1 C N+1 B N+1 A N+1 D D C D B D A D D N D N+1 : D D 0 0 0 0 0 0 1 0 0 0 1 0 0 0 : 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 0 0 1 0 0 0 0 1 : 1 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 1 : 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 : 0 Pág 5/6
6.3) A partir da Tabela 6 podem ser montados os mapas de Karnaugh para os flip-flops D: D D DC C D DC BA 00 01 11 10 BA 00 01 11 10 00 0 0 1 1 00 0 1 1 0 01 0 0 1 1 01 0 1 1 0 11 0 1 0 1 11 1 0 0 1 10 0 1 0 1 10 1 0 0 1 B D DC A D DC BA 00 01 11 10 BA 00 01 11 10 00 1 1 1 1 00 0 0 0 0 01 1 1 1 1 01 1 1 1 1 11 0 0 0 0 11 1 1 0 1 10 0 0 0 0 10 0 0 1 0 A saída de cada um dos mapas irá alimentar a linha de entrada (D) de cada um dos flip-flops, conforme foi exemplificado na figura 3 com flip-flops JK. 6.4) Realize a verificação da montagem dos mapas de Karnaugh para cada um dos flip-flops D. Após a verificação, realize a montagem do esquemático do circuito que representa este contador. 6.5) Esta atividade experimental tem como objetivo realizar a montagem de três circuitos contadores síncronos, apresentados nos itens 5.6, 5.7 e 5.8. Para os itens descritos, realize as seguintes atividades. a) Criação do projeto e a geração dos arquivos BDF e BSF referentes aos esquemáticos desenvolvidos. b) Verificação e validação do esquemático utilizando o kit Altera DE2-115 ou a ferramenta ModelSim. Tabela 7 Endereço das chaves Tabela 8 Endereço dos LEDs vermelhos Apresente o funcionamento ao professor * Para a montagem dos circuitos foram utilizadas as ferramentas: - Altera Quartus II 64-Bit Version 13.1.0 Web Edition - ModelSim Altera Starter Edition 10.1d Revision: 2012.11. Pág 6/6