Mudanças entre as edições de "DLP2-EngTel (página)"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 19: Linha 19:
 
:* Limitações dos softwares de EDA: Computabilidade, Complexidade Computacional
 
:* Limitações dos softwares de EDA: Computabilidade, Complexidade Computacional
 
:* Realização dos operadores VHDL: simplificações para operando constante
 
:* Realização dos operadores VHDL: simplificações para operando constante
:* Realização dos tipos de dados: Alta impedância 'Z' ->  ''buffer tri-state''; uso de ''don't care'' '-'
+
:* Realização dos tipos de dados: Alta impedância 'Z' ->  ''buffer tri-state'';
:* Fluxo da síntese (RTL, mapeamento tecnológico (ASIC/FPGA)
+
::Ver pag. 125 a 137 de <ref name="PONG2006a" />
::Ver pag. 125 a 149 de <ref name="PONG2006a" />
 
  
 
;Aula 3 (17 Ago) - Marcos:
 
;Aula 3 (17 Ago) - Marcos:
 
* Processo de Síntese do código VDHL: Analise das temporizações:
 
* Processo de Síntese do código VDHL: Analise das temporizações:
 +
:* Realização dos tipos de dados: uso de ''don't care'' '-'
 
:* Tempos de propagação, caminho crítico, caminho falso,  
 
:* Tempos de propagação, caminho crítico, caminho falso,  
 
:* Síntese com restrições temporais,  
 
:* Síntese com restrições temporais,  
:* Perigos/Armadilhas (''Glitches'' estáticos e dinâmicos, circuitos sensíveis ao atrazo)
+
:* Perigos/Armadilhas (''Glitches'' estáticos e dinâmicos, circuitos sensíveis ao atraso)
::Ver pag. 125 a 162 de <ref name="PONG2006a" />
+
::Ver pag. 137 a 162 de <ref name="PONG2006a" />
 
::Ver também os slides [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture02-synthesis.pdf Unidade 2: Processo de Síntese do código VDHL]
 
::Ver também os slides [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture02-synthesis.pdf Unidade 2: Processo de Síntese do código VDHL]
  

Edição das 13h28min de 17 de agosto de 2016

Dispositivos Lógicos Programáveis II

Material de aula

Registro on-line das aulas

Unidade 1

Aula 1 (11 Ago) - Arliones
Ver pag. 1 a 22 de [1]
Ver pag. 3 a 48 de [2]

Unidade 2

Aula 2 (15 Ago) - Marcos
  • Processo de Síntese do código VDHL
  • Limitações dos softwares de EDA: Computabilidade, Complexidade Computacional
  • Realização dos operadores VHDL: simplificações para operando constante
  • Realização dos tipos de dados: Alta impedância 'Z' -> buffer tri-state;
Ver pag. 125 a 137 de [1]
Aula 3 (17 Ago) - Marcos
  • Processo de Síntese do código VDHL: Analise das temporizações:
  • Realização dos tipos de dados: uso de don't care '-'
  • Tempos de propagação, caminho crítico, caminho falso,
  • Síntese com restrições temporais,
  • Perigos/Armadilhas (Glitches estáticos e dinâmicos, circuitos sensíveis ao atraso)
Ver pag. 137 a 162 de [1]
Ver também os slides Unidade 2: Processo de Síntese do código VDHL

Notas de aula

Estas notas de aula são baseadas nas dispobilizadas pelo Prof. Pong P. Chu em [1].

Roteiros

Atividades extra

Neste tópico serão listadas as atividades extras que os alunos da disciplina deverão realizar ao longo do curso. É importante observar o prazo de entrega, pois os conceitos serão reduzidos conforme o atraso na entrega. Para a entrega no prazo os conceitos possíveis são (A, B, C, D). Entrega com até uma semana de atraso (B, C, D). Entrega com até duas semanas de atraso (C ou D). Entrega com mais de duas semanas de atraso (D).

PARA ENTREGAR

AE4 - Projeto Hierárquico Parametrizado (prazo 26/07/2016)
  • Formar equipes com 2 ou 3 alunos. Cada equipe deverá realizar todo o projeto descrito abaixo:
  • Implementar a FIFO mostrada no capítulo 9 usando projeto hierárquico, definindo um componente para cada uma das áreas hachureadas nos diagramas mostrados nos slides 62, 63 e 64 de Projeto Hierárquico e Parametrizado
  • Versão 1:
  • O projeto deverá ser genérico de modo que o tamanho da palavra de dados possa ser definida através do GENERIC MAP durante a instanciação do componente de top-level FIFO_DLP_IFSC.
  • Os contadores dos ponteiros da FIFO devem ser do tipo binários crescentes, implementados com um bit adicional para detectar o estado de FIFO cheia ou vazia.
  • Versão 2:
  • O tamanho da palavra de dados deve ser obtidos a partir do sinal de entrada e saída da FIFO.
  • Use parâmetros GENERIC junto com IF GENERATE para selecionar o tipo de contador a ser usado nos ponteiros da FIFO. Deve ser possível escolher entre contador binário crescente, binário decrescente, LFSR, Gray. No caso dos contadores binário e Gray deve ser usado o bit adicional no contador para determinar o estado de FIFO cheia ou vazia. No caso do LFSR é necessário usar FLAGs para indicar estes estados.
  • Versão 3: (BONUS)
  • Torne genérico também o tamanho da FIFO utilizando como base o decodificador da Listing 15.7 e o multiplexador da Listing 15.8.
  • Escreva um relatório técnico contendo os resultados em 4 a 6 paginas A4. O relatório além das tabelas com os dados de frequência máxima, número de componente, número de pinos, deverá conter as figuras dos circuitos RTL para uma FIFO de 16 bits com 4 posições para dados, simulações funcionais e uma análise textual dos resultados obtidos. O arquivo com o QAR do projeto, e os arquivos .do do MODELSIM devem ser também enviados.
  • Envie o artigo em pdf para (moecke AT ifsc.edu.br E arliones.hoeller AT ifsc.edu.br), com o ASSUNTO: DLP29007 - AE4 - Projeto Hierárquico Parametrizado.


JÁ ENCERRADAS
AE1 - Circuitos Combinacionais (prazo 26/04/2016)
  • 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 5. As equipes 1 a 4 também devem trabalhar o tema 6. A equipe 5 apenas irá trabalhar o tema 5.
TEMA 1 - Implementar o circuito de diferença (Listing 7.6, 7.7. 7.8 e 7.9). pag. 175-177
Torne o código genérico para N bits e teste para entradas "a" e "b" de 4, 8 e 16 bits.
TEMA 2 - Implementar os circuitos codificadores de prioridade de 16 entradas 4 bits de saída (Listing 7.24, 7.25 + 7.26). pag. 187-192
Implemente o circuito codificadores de prioridade programável (Listing 7.32)
TEMA 3 - Implementar os circuitos incrementadores de código Gray (Listing 7.30, 7.31). pag. 196-199
Transforme os circuitos em decrementadores de código Gray.
TEMA 4 - Implementar os circuitos para cálculo da distância de Hamming (Listing 7.36, 7.37) e o exemplo mostrado na AL1. pag. 206-208
Transforme os circuitos para determinar o peso de Hamming.
TEMA 5 - Implementar o circuito de soma para entradas "com sinal" e saídas de status (Listing 7.33). pag. 201-203
Torne o código genérico para N bits e teste para entradas "a" e "b" de 8, 16 e 32 bits.
Utilize o circuito de 8 bits como componente para realizar um somador de 32 bits (são necessários 4 componentes iguais).
TEMA 6 - Implementar o circuito multiplicador baseado em somas (Listing 7.34, 7.35). pag. 203-206
Compare os resultados com um multiplicador baseado no operador de multiplicação "*" do VHDL.
  • Para a versão de 8 bits comparar o hardware necessário para implementar os circuitos abaixo utilizando as seguintes famílias de FPGA [CYCLONE & STRATIX II]. Utilize sempre o menor Device de cada família, que possua os elementos e pinos suficientes para o circuito proposto.
  • Compilar cada circuito (com 8 bits) utilizando diferentes técnicas de otimização [Area | Balanceada | Velocidade].
ver:Escolha da técnica de otimização no Quartus II
  • Para a arquitetura de menor tempo de propagação, realizar os testes com variação de 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), 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
  • 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
Ver:Medição de tempos de propagação em circuitos combinacionais
  • Realize a simulação funcional de cada circuito usando sempre o mesmo padrão de sinais de entrada.
  • 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, 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 - AE1 - Projeto de Circuitos Combinacionais.
AE2 - Circuitos Sequencias (prazo 20/06/2016 08h00)
  • 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 5. (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]
  • 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 [5].
  • 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 [6]
  • 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 [7]
  • Versão 3 [8]
  • 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 - AE2 - Circuitos Sequencias.
AE3 - Máquinas de Estado (prazo 24/06/2016)
  • Formar equipes com 2 ou 3 alunos. A formação das equipes deve ser informado no Facebook de DLP29007. Cada equipe deverá trabalhar TODOS os temas abaixo.
  • Comparar o hardware necessário para implementar os circuitos abaixo utilizando a FPGA da plataforma MercurioIV utilizada na disciplina.
  • Compile cada circuito utilizando as otimizações Balanceada, Velocidade e Área.
ver:Escolha da técnica de otimização no Quartus II
  • Teste cada uma das arquiteturas e anote em uma tabela todos os resultados de: Elementos Lógicos/ALUT (separando em Normais, Aritméticos, c/ registradores, etc), Frequência Máxima, Potencia total.
Os dados acima estão disponíveis nos seguintes relatórios: (Fitter > Resource Section > Resource Usage), (PowerPlay Pawer Analyser Summary > Summary), (TimeQuest Timing Analyser > Slow 1200mV 85C Model > Fmax Summary > Fmax)
  • Meça os tempos de propagação internos Tnext (do registrador de estado até a saída da lógica de próximo estado) e o Tmo (do registrador de estado até a saída Moore).
Ver:Medição de tempos de propagação em circuitos combinacionais
  • Para os circuitos modificados, apresentar no relatório a máquina de estados, o ASM, além do relatório de compilação do novo circuito.
  • Realize a simulação funcional de cada circuito usando sempre o mesmo padrão de sinais de entrada.
TEMA 1 - Implementar os circuitos de detecção de borda (Listing 10.7 a 10.11); Modificar o 10.9 para detectar qualquer mudança de borda, e não apenas a borda de subida como no código original;
TEMA 2 - Implementar os circuitos Árbitro (Listing 10.12 e 10.13); Modificar o de prioridade fixa para preemptar o recurso alocado caso um sinal externo de abort (ex.: timeout) ocorra E houver requisições aguardando;
TEMA 3 - Implementar os circuitos DRAM strober (Listing 10.14 e 10.15); Modificar o 10.15 para operar com períodos de clock de 20ns;
TEMA 4 - Estudar a implementação dos circuitos de codificação Manchester (Listing 10.16 e 10.17). Crie o decoder conforme instruções no exercício 10.11 do livro. Integre o encoder e o decoder, mapeie as entradas do decoder para switches e as saídas do decoder para LEDs da placa MercurioIV, e utilize o SignalTap para demonstrar que o circuito funciona.
  • Escreva um relatório técnico na forma de artigo em formato A4. O relatório deverá ter entre 3 e 4 páginas, sem contar as figuras. O relatório além das tabelas com os dados, deverá conter as figuras dos circuitos RTL, simulações funcionais e uma análise textual dos resultados obtidos. NÃO INCLUIR CÓDIGO VHDL NO RELATÓRIO! 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 - Máquinas de Estados.
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:

  1. 1,0 1,1 1,2 Pong P. Chu, RTL Hardware Design Using VHDL: Coding for Efficiency, Portability, and Scalability. Wiley-IEEE Press, Hoboken, 2006, ISBN 0471720925
  2. 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


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