Dispositivos Lógicos Programáveis II
Notas
Material de aula
Registro on-line das aulas
Unidade 1
- Aula 1 (14 Fev) - Arliones
- Ver pag. 1 a 22 de [1]
- Ver pag. 3 a 48 de [2]
- Ver os slides.
Notas de aula
Estas notas de aula são baseadas nas dispobilizadas pelo Prof. Pong P. Chu em [1].
Roteiros
Avaliação
Neste tópico serão listadas as Atividades Práticas realizadas ao longo do semestre. Para cada uma dessas atividades o aluno/equipe que não entrega-la no prazo preestabelecido, poderá entregar a atividade com: uma semana de atraso obtendo no máximo o valor 8; duas semanas de atraso obtendo no máximo o valor 6; três semanas de atraso obtendo no máximo o valor 4;
Os critérios de avaliação estão descritos no Plano de Ensino.
PARA ENTREGAR
AE1 - Projeto de SoC baseado em NIOS2 (prazo 05/10/2016)
|
Nesta atividade, você vai integrar os desenvolvimentos realizados nos laboratórios envolvendo NIOS2 e SignalTap. As etapas a serem executadas são as seguintes:
- Crie um processador NIOS2 com três on-chip FIFOs: duas saídas de 32 bits e uma entrada de X bits (sendo X a saída adequada à operação);
- Conecte a este processador, via FIFOs, um componente externo (ver relação de componentes abaixo);
- Implemente uma aplicação (software) que gere valores aleatórios para as saídas e leia o resultado da operação feita em hardware na entrada;
- Utilize o SignalTap para verificar quantos ciclos de clock são necessários para completar uma operação no hardware;
- Implemente a operação equivalente do módulo de hardware em software;
- Utilize um timer para medir o tempo da operação em software;
- Relate e discuta seus resultados, apresentando o esquema dos seus testes, os códigos-fontes das aplicações, em formato de artigo e com 6 páginas no máximo.
- Envie o artigo em pdf para (moecke AT ifsc.edu.br E arliones.hoeller AT ifsc.edu.br), com o ASSUNTO: DLP29007 - AE1.
Módulos para serem usados por cada grupo:
- Multiplicador => Iago, Marcos
- XOR => André, Helen
- Distância (sqrt(a^2 + b^2)) => Katharine, Kristine
- Soma => Gabriel, Maria
- Divisão => Fernando, João
- Módulo => Gustavo, Tamara
- Observação: para alguns circuitos pode ser necessário utilizar um clock mais lento. Para isto, utilize um LPM_COUNTER criado pela ferramenta MegaWizard, como fizemos em aula para gerar alguns componentes.
|
AE2 - Circuitos Combinacionais (prazo 19/10/2016 as 23h59)
|
- Formar equipes com 2 alunos. A formação das equipes deve ser informado no Facebook de DLP29007. Cada equipe deverá trabalhar com um dos temas de 1 a 6.
- TEMA 1 - Implementar o circuito "barrel shifter" (Listing 7.13/7.14, 7.29). pag. 178-180; 192-196
- Realize os testes com 8 e 16 bits de entrada.
- TEMA 2 - Implementar o circuito "XOR" e "XOR vector" (Listing 7.17, 7.18, 7.21, 7.22, 14.12). pag. 180-187; 514-515.
- Realize os testes com 8 e 16 bits de entrada.
- TEMA 3 - Implementar os circuitos codificadores de prioridade (Listing 7.24, 7.25 + 7.26). pag. 187-192;
- Realize os testes com 16 entradas 4 bits de saída, 32 entradas 5 bits de saída.
- TEMA 4 - Implementar os circuitos incrementadores de código Gray (Listing 7.30, 7.31). pag. 196-199
- Realize os testes com 4 e 5 bits. para L.7.30, e 4, 5 e 8 bits para L.31.
- Transforme ambos circuitos em decrementadores de código Gray.
- TEMA 5 - Implementar os circuitos para cálculo da distância de Hamming (Listing 7.36, 7.37) pag. 206-208
- Realize os testes com 8 bits de entrada e com 16 bits.
- TEMA 6 - Implementar o circuito multiplicador baseado em somas (Listing 7.34, 7.35). pag. 203-206
- Realize os testes com entradas de 8 bits e saída 16 bits de saída, e com entradas de 12 bits e saída 24 bits de saída.
- Compare os resultados com um multiplicador baseado no operador de multiplicação "*" do VHDL.
- Compare o hardware necessário para implementar os circuitos utilizando a famílias de FPGA [CYCLONE]. Utilize sempre o menor Device que possua os elementos e pinos suficientes para o circuito proposto.
- Realize a simulação funcional de cada circuito usando sempre o mesmo padrão de sinais de entrada.
- Para cada circuito anote os resultados de: número de pinos, número de elementos lógicos/ALUT (indicando os Normais | Aritméticos), atraso de propagação, caminho crítico.
- Esses dados estão disponíveis nos seguintes relatórios: (Fitter > Resource Section > Resource Usage), (TimeQuest Timing Analyser > Datasheet Report > Propagation Delay)
- No caso do atraso de propagação, verifique para o caminho crítico o atraso de propagação interno, anote e subtraia os tempos dos pinos de I/O, os tempos de propagação do sinal até o primeiro elemento lógico e o tempo de propagação após o último elemento lógico.
- Ver:Medição de tempos de propagação em circuitos combinacionais
- Para o circuito com maior número de bits, insira restrições temporais para obter um circuito com menor atraso no caminho crítico. Neste caso procure reduzir gradualmente a tempo máximo de propagação "tp" até atingir o menor valor.
set_max_delay -from [get_ports *] -to [get_ports *] tp
- Escreva um relatório técnico na forma de artigo com 4 a 8 paginas A4. O relatório além das tabelas com os dados, deverá conter as figuras dos circuitos RTL que expliquem as diferenças entre os circuitos, simulações funcionais e uma análise dos resultados obtidos. O arquivo com o QAR do projeto deve ser também enviado.
- Para a geração de documentação/relatórios técnicos/artigos, está disponibilizada a plataforma Sharelatex do IFSC-CLOUD. Utilize preferencialmente o modelo de artigo no padrão ABNT.
- Envie o artigo em pdf para (moecke AT ifsc.edu.br E arliones.hoeller AT ifsc.edu.br), com o ASSUNTO: DLP29007 - AE2 - Projeto de Circuitos Combinacionais.
|
AE3 - Circuitos Sequencias (prazo 04/11/2016 23h59)
|
- Formar equipes com 2 ou 3 alunos. A formação das equipes deve ser informado no Facebook de DLP29007. Cada equipe deverá trabalhar com um dos temas de 1 a 6. (todos os contadores devem ser genéricos para N bits)
- TEMA 1 - Estudar e implementar o Contador Gray
- Versão 1 (Listing 9.7). pag. 265
- Versão 2 [2]
- Versão 3 [3]
- Versão 4 Modifique a versão 3, separando claramente a lógica combinacional de next-state, combinacional de output, e register.
- TEMA 2 - Estudar e implementar o Contador em Anel
- Versão 1 (Listing 9.8). pag. 267
- Versão 2 (Listing 9.9). pag. 268
- Versão 3 [4] [5]
- Versão 4 Modifique a versão 3, separando claramente a lógica combinacional de next-state, combinacional de output, e register.
- TEMA 3 - Estudar e implementar o Contador Decimal e Contador One Hot
- Versão 1 (Listing 9.12). pag. 273
- Versão 2 (Listing 9.13). pag. 274
- Versão 3 Contador One Hot [6].
- Versão 4 Modifique a versão 3, separando claramente a lógica combinacional de next-state, combinacional de output, e register.
- TEMA 4 - Estudar e implementar o Contador LFSR (Linear Feedback Shift Register)
- Versão 1 (Listing 9.10). pag. 270
- Versão 2 (Listing 9.11). pag. 272
- Versão 3 [7]
- Versão 4 Modifique a versão 3, separando claramente a lógica combinacional de next-state, combinacional de output, e register.
- TEMA 5 - Estudar e implementar o PWM
- Versão 1 (Listing 9.14). pag. 275
- Versão 2 [8]
- Versão 3 [9]
- Versão 4 Modifique a versão 3, separando claramente a lógica combinacional de next-state, combinacional de output, e register.
- TEMA 6 - Estudar e implementar relógio HH:MM:SS, considerando o clock de entrada de 50 MHz
- Versão 1 (alterar a Listing 9.5), página 263 para incluir a hora
- Versão 2 (alterar a Listing 9.6), página 265 para incluir a hora
- Versão 3 Implementar o Digital Clock com SSDs da seção 12.5 de [3], pag 337-340, removendo o ajuste de segundos, minutos e horas.
- Versão 4 Modifique a versão 3, separando claramente a lógica combinacional de next-state, combinacional de output, e register.
- Para cada circuito indicado torne o código genérico para N bits e teste para 4 e 32 bits.
- Teste cada uma das arquiteturas e anote em uma tabela todos os resultados de: número de pinos, número de elementos lógicos/ALUT (indicando os Normais | Aritméticos), Frequência Máxima.
- Esses dados estão disponíveis nos seguintes relatórios: (Fitter > Resource Section > Resource Usage), (TimeQuest Timing Analyser > Datasheet Report > FMax)
- Insira restrições temporais para obter um circuito com maior Frequência Máxima.
create_clock -name CLKXXXMHz -period XXXMHz [get_ports {nome_do_sinal_de_clock}]
- Realize a simulação funcional de cada circuito com 4 bits.
- Escreva um relatório técnico na forma de artigo com 2 a 4 paginas A4. O relatório além das tabelas com os dados, deverá conter as figuras dos circuitos RTL para 4 bits, simulações funcionais e uma análise textual dos resultados obtidos. O arquivo com o QAR do projeto deve ser também enviado.
- Para a geração de documentação/relatórios técnicos/artigos, está disponibilizada a plataforma Sharelatex do IFSC-CLOUD. Utilize preferencialmente o modelo de artigo no padrão ABNT.
- Envie o artigo em pdf para (moecke AT ifsc.edu.br E arliones.hoeller AT ifsc.edu.br), com o ASSUNTO: DLP29007 - AE3 - Circuitos Sequencias.
|
AE4 - FSM/RTM (prazo 18/12/2016)
|
Nesta atividade, cada dupla entregará uma implementação do jogo QuickFinger (explicado em aula).
Além da implementação padrão, cada dupla realizará uma modificação diferente (lista ao final, por dupla). A figura abaixo apresenta uma visão geral do sistema do jogo:
Um relatório final em forma de artigo PDF contendo os itens abaixo deve ser entregue:
- Introdução descrevendo os objetivos do trabalho e apresentando uma visão geral do jogo;
- Descrição da implementação padrão e da modificação do jogo contendo, para cada um:
- Algoritmo em pseudo-código que resolve o problema;
- Diagrama de máquina de estados com datapath (FSMD ou ASMD - preferível ASMD);
- Diagrama de blocos do sistema;
- RTL do circuito gerado por sua implementação;
- Relatório de eficiência do circuito (Fmax, LE/LUT, registradores, etc);
- Conclusão sugerindo pontos positivos e negativos de sua implementação e relatando possíveis melhorias.
- Observações:
- Não incluir código-fonte no artigo;
- Não ultrapassar 4 páginas de texto (não incluso figuras);
- Não há limite de páginas para figuras.
- Deve ser entregue também o .qar do projeto.
- Envie o trabalho para (moecke AT ifsc.edu.br E arliones.hoeller AT ifsc.edu.br), com o ASSUNTO: DLP29007 - AE4.
|
- JÁ ENCERRADAS
- ESTUDOS SEM ENTREGA DE DOCUMENTAÇÃO
AL1 - Tempo de propagação em circuitos combinacionais
|
|
Recursos de Laboratório
Para uso fora do IFSC dos recursos computacionais com licença educacional, o IFSC disponibiliza para seus alunos o IFSC-CLOUD. Atualmente a forma mais eficiente de acesso é através do Cliente X2GO. O procedimento de instalação/ configuração e uso do Quartus/Modelsim/QSIM está descrito em Acesso ao IFSC-CLOUD#Cliente X2GO (recomendado).
Para a geração de documentação/relatórios técnicos/artigos, está disponibilizada a plataforma Sharelatex do IFSC-CLOUD. Utilize preferencialmente o modelo de artigo no padrão ABNT.
Para estudo de FPGAs o Laboratório de Programação dispõe de kits Mercúrio IV da Macnica-DHW e também DE2-115 da Terasic. Veja como utilizar estes kits em Preparando para gravar o circuito lógico no FPGA, one além de acesso aos manuais dos fabricantes, você tem acesso a uma descrição resumida da pinagem mais utilizada desses kits.
Para depurar seu circuito em uma FPGA de verdade, pode ser interessante utilizar o SignalTapII da Altera, que permite realizar análise lógica dos sinais no seu circuito. Para iniciar o uso da ferramenta, siga este tutorial.
Para determinar os caminhos críticos do projeto (ou os tempos de propagação entre quaisquer nós de um projeto, utilize a Análise de Caminho Crítico com Qaurtus II.
Referências Bibliográficas:
- ↑ Pong P. Chu, RTL Hardware Design Using VHDL: Coding for Efficiency, Portability, and Scalability. Wiley-IEEE Press, Hoboken, 2006, ISBN 0471720925
- ↑ David Money Harris and Sarah L. Harris, Digital Design and Computer Architecture, Morgan Kaufmann, Burlington, 2007, ISBN 9780123704979, http://dx.doi.org/10.1016/B978-012370497-9/50002-0
- ↑ PEDRONI, Volnei A. Circuit Design and Simulation with VHDL; 2ª ed. Massachusetts-EUA:MIT, 2010. 608 p. ISBN 9780262014335
Curso de Engenharia de Telecomunicações
Conteúdo
Gerenciamento de Complexidade e Visão Geral de Sistemas Digitais Complexos
|
Gerenciamento de Complexidade e Visão Geral de Sistemas Digitais Complexos
- Leituras recomendadas:
- Capítulo 1 do livro do Chu;
- Capítulo 1 do livro do Harris;
- Notas de aula 01.
|
Síntese de Código VHDL
|
Síntese de Código VHDL
- Leitura recomendada:
- Capítulo 6 do livro do Chu;
- Notas de aula 02.
|
Eficiência de Circuitos Combinacionais
|
Eficiência de Circuitos Combinacionais
- Leitura recomendada:
- Capítulo 7 do livro do Chu;
- Notas de aula 03.
|
Eficiência de Circuitos Sequenciais
|
Eficiência de Circuitos Sequenciais
- Leitura recomendada:
- Capítulos 8 e 9 do livro do Chu;
- Notas de aula 04 e 05.
|
Eficiência de Máquinas de Estado
|
Eficiência de Máquinas de Estado
- Leitura recomendada:
- Capítulo 10 do livro do Chu;
- Notas de aula 06.
|
Register Transfer Methodology
|
Register Transfer Methodology
- Leitura recomendada:
- Capítulos 11 e 12 do livro do Chu;
- Notas de aula 07 e 08.
|
Projeto Hierárquico e Parametrizado
|
Projeto Hierárquico e Parametrizado
- Leitura recomendada:
- Capítulos 13, 14 e 15 do livro do Chu;
- Notas de aula 09, 10 e 11.
|
Clock e Sincronização
|
Clock e Sincronização
- Leitura recomendada:
- Capítulo 16 do livro do Chu;
- Notas de aula 12.
|
Links Auxiliares