DLP1-EngTel (página)

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

MURAL DE AVISOS E OPORTUNIDADES DA ÁREA DE TELECOMUNICAÇÕES


Registro on-line das aulas

Unidade 1

Aula 1 (29 Jul)
  1. Dispositivos lógicos programáveis.
  2. Bases da linguagem VHDL.
  3. Tipos de dados, libraries, conversão de tipos, operadores, atributos.
  4. Código VHDL concorrente e sequencial.
  5. Projeto hierárquico.
  6. Simulação e Testbench
  7. Maquina de estado finita (FSM).
  8. Projeto Final de circuitos lógicos.
  9. Avaliações.
Suspensão do calendário acadêmico pela direção do Campus de 30 de Julho a 1 de Outubro;
Aula 2 (2 Out)
  • Introdução aos dispositivos lógicos programáveis:
  • Conceito, tipos de PLDs
  • SPLD: PAL, PLA e GAL
  • CPLDs
Ver pag. 413 a 422 de [1]
Ver pag. 495 a 499 de [2]
Aula 3 (7 Out)
  • Introdução aos dispositivos lógicos programáveis:
  • FPGAs
  • Arquitetura de FPGAs (Xilinx e Altera): CLB, LAB, RAM, DSP, Clock, PLL, I/O
  • Fabricantes de DLPs
  • Vizualização no Chip Planner de um projeto. (importante todos alunos terem acesso a IFSC-CLOUD
Ver pag. 419 a 431 de [1]
Ver pag. 499 a 501 de [2]

Unidade 2

Aula 4 (9 Out)
  • Introdução ao VHDL.
  • Exemplo de programação de um full adder. Utilize os arquivos full_adder.qar (V1 - estrutural. V2 - comportamental) para analisar os circuitos obtidos e realizar as simulações funcional e temporal.
Ver pag. 3 a 8 de [2]
Aula 5 (13 Out)
  • Introdução ao VHDL.
  • Estrutura do código VHDL
  • Libraries, Entity, Architecture
  • Exercicios 2.2 (VHDL e QSIM)
 LIBRARY ieee;
 USE ieee.std_logic_1164.all;

 ENTITY flip_flop IS
 PORT (d, clk, rst: IN STD_LOGIC;
 q: OUT STD_LOGIC);
 END;

 ARCHITECTURE flip_flop OF flip_flop IS
 BEGIN
 PROCESS (clk, rst)
 BEGIN
 IF (rst='1') THEN
 q <= '0';
 ELSIF (clk'EVENT AND clk='1') THEN
 q <= d;
 END IF;
 END PROCESS;
 END;
  • Exemplo de programação de um flip-flop
  • Exemplo de um circuito somador com registrador
  • Exercicios 2.3 (VHDL e QSIM)
 LIBRARY ieee;
 USE ieee.std_logic_1164.all;

 ENTITY registered_comp_add IS
 PORT (clk: IN STD_LOGIC;
 a, b: IN INTEGER RANGE 0 TO 7;
 reg_comp: OUT STD_LOGIC;
 reg_sum: OUT INTEGER RANGE 0 TO 15);
 END;

 ARCHITECTURE circuit OF registered_comp_add IS
 SIGNAL comp: STD_LOGIC;
 SIGNAL sum: INTEGER RANGE 0 TO 15;
 BEGIN
 comp <= '1' WHEN a>b ELSE '0';
 sum <= a + b;
 PROCESS (clk)
 BEGIN
 IF (clk'EVENT AND clk='1') THEN
 reg_comp <= comp;
 reg_sum <= sum;
 END IF;
 END PROCESS;
 END;
Ver pag. 11 a 24 de [2]
Aula 6 (15 Out)
  • Introdução ao VHDL.
  • Exemplo de decodificador de endereço genérico
Ver pag. 22 a 27 de [2]

Unidade 3

Aula 6 (15 Out)
(continuação)
  • Tipos de Dados em VHDL.
  • Objetos de VHDL: CONSTANT, SIGNAL, VARIABLE, FILE.
  • Palavra chave OTHERS
  • Bibliotecas padrão.
  • Não use as bibliotecas não padrão (std_logic_arith, std_logic_unsigned, std_logic_signed)
Ver pag. 31 a 39 de [2]
Aula 7 (21 Out)
  • Tipos de Dados em VHDL.
  • Classificação dos tipos de dados.
  • Tipos de dados: BIT, BIT_VECTOR, BOOLEAN, INTEGER, NATURAL, POSITIVE, CHARACTER, STRING, STD_(U)LOGIG, STD_(U)LOGIG_VECTOR, (UN)SIGNED
  • Exemplo 3.1 Buffer Tri-state
  • Exemplo 3.2 Circuito com Saida "don't care"
Ver pag. 39 a 51 de [2]
Aula 8 (23 Out)
  • Tipos de Dados em VHDL.
  • Exemplo 3.3 Multiplicador
  • Tipos Array definidos pelo usuário: 1D, 1D x 1D, 2D, 1D x 1D x 1D, 3D.
  • Operadores em VHDL.
  • Operadores predefinidos: Atribuição, Logicos, Arithméticos, Comparação, Deslocamento, Concatenação, "Matching".
  • Sobrecarga de operadores
Ver pag. 51 a 98 de [2]::Ver pag. 62 a 79 de [2]

Unidade 4

Aula 15 (6 Nov)
  • Código Concorrente.
  • WHEN, SELECT;
  • Exemplo 5.1 + 5.2 mux: com 3 tipos de arquiteturas (com operadores, com WHEN, com SELECT)
 LIBRARY ieee;
 USE ieee.std_logic_1164.all;

 ENTITY mux IS
 GENERIC (N: INTEGER :=8);
 PORT (x0, x1, x2, x3: IN STD_LOGIC_VECTOR(N-1 DOWNTO 0);
 sel: IN STD_LOGIC_VECTOR(1 DOWNTO 0);
 y: OUT STD_LOGIC_VECTOR(N-1 DOWNTO 0));
 END mux;
 -- Arquitetura para a implementação discreta através de portas AND e OR
 ARCHITECTURE Operator_only OF mux IS
 signal sel0_8: STD_LOGIC_VECTOR(N-1 DOWNTO 0);
 signal sel1_8: STD_LOGIC_VECTOR(N-1 DOWNTO 0);
 BEGIN
 sel0_8 <= (OTHERS => sel(0));
 sel1_8 <= (OTHERS => sel(1));
 y <= (NOT sel1_8 AND NOT sel0_8 AND x0) OR
 (NOT sel1_8 AND sel0_8 AND x1) OR
 (sel1_8 AND NOT sel0_8 AND x2) OR
 (sel1_8 AND sel0_8 AND x3);
 END operators_only;
  • Para selecionar uma entre várias arquiteturas para a mesma ENTITY use a CONFIGURATION.
CONFIGURATION which_mux OF mux IS
   FOR Operator_only END FOR;
--   FOR with_WHEN END FOR;
--   FOR with_SELECT END FOR;
END CONFIGURATION;
Ver pag. 121 a 129 de [2]
Aula 16 (11 Nov);
  • Código Concorrente.
  • Exemplo 5.3 ALU.
  • Exemplo 5.3 ALU modificada. Modifique o código para acrescentar a ALU as funções lógicas (AND a, OR a, XOR a, XNOR a, AND b, OR b, XOR b, XNOR b) e as funções aritméticas (a^2, b^2, a*b, a/b, b/a, -a, -b, a-b). Modifique o opcode para possibilitar essa inclusão.
  • AND a corresponde a operação AND de todos os bits de 'a'. Neste caso atribua o resultado da operação ao LSB e zere os demais bits.
  • No caso das operações (a^2, b^2, a*b), faça as operações fora do SELECT, uma vez que o número de bits do resultado é o dobro das outras operações. Depois utilize apenas os bits menos significativos do resultado.
  • Faça a simulação funcional e temporal da ALU modificada. (verifique o funcionamento correto e também o incorreto - quando ocorre overflow).
  • Identifique claramente as situações nas quais a ALU não produz o resultado correto.

Avaliações

  • Avaliação A1 - Unidade 2, 3 e 4 (20 Nov 2015) - Local: Lab Programação.
Com consulta a todo tipo de material impresso ou digital. O aluno terá 5 minutos para preparar o computador depois disso a rede será desconectada.

  • Avaliação A2 - Unidade 5 e 6
  • Entrega dos diversos trabalhos ao longo do semestre AE1 a AE7.
  • Projeto Final. Tem peso equivalente a duas avaliações, sendo avaliado nos quesitos: 1) Implementação do Sistema, 2) Documentação, 3) Avaliação Global do aluno no projeto.

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

AE3 - Otimização de Hardware usando valores DON'T CARE (prazo 18/11/2015)
  • Compile o código do exemplo 3.2 e verifique se os valores de DON'T CARE realmente ajudam a reduzir o hardware necessário para construir o circuito.
 LIBRARY ieee;
 USE ieee.std_logic_1164.all;

 ENTITY circuit IS
 PORT (x: IN STD_LOGIC_VECTOR(1 DOWNTO 0);
 y: OUT STD_LOGIC_VECTOR(1 DOWNTO 0));
 END ENTITY;

 ARCHITECTURE circuit OF circuit IS
 BEGIN
 y <= "00" WHEN x="00" ELSE
 "01" WHEN x="10" ELSE
 "10" WHEN x="01" ELSE
 "--";
 END ARCHITECTURE;
  • Verifique o hardware (RTL) obtido utilizando x = "--", "00", "01", "10", "11".
  • DICA: Quando não for utilizar o Don't Care, pode ser utilizado como sinal de entrada e saída do circuito BIT_VECTOR no lugar de STD_LOGIC_VECTOR.
  • Utilizando o Mapa de Karnaugh determine o hardware que seria necessário para obter as saídas y(1) e y(0) considerando as entradas x(1) e x(0) acima?
  • Qual valor de x resultou no menor hardware? Observe o Technology Map Viewer (Post-Mapping) para verificar se o hardware obtido é o mesmo do Mapa de Karnaugh [1]?
  • Escreva um resumo na forma de artigo com 2 páginas A4 ou então um artigo com 4 a 6 páginas, contendo as descrições RTL dos hardwares obtidos, uma tabela com o número de elementos lógicos utilizados em cada um dos 5 casos e uma análise dos resultados obtidos, e uma análise desses resultados.
  • 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), com o ASSUNTO: DLP29006 - AE3 - Otimização de Hardware usando valores DON'T CARE.
  • De um título coerente ao resumo do artigo. Seja criativo...

JÁ ENCERRADAS

AE1 - Temas relacionados aos DLPs (prazo 06/11/2015)
  • Formem uma equipe com 2 ou 3 alunos, e em conjunto façam uma pesquisa sobre um dos temas abaixo, relacionados aos DLPs.
TEMA 1 - Evolução dos DLPs Passado - Estado atual - Futuro (Giulio , Walter & Gustavo Zacchi)
TEMA 2 - Tecnologia utilizada nos transistores CMOS (Adalvir, Fernando & Gustavo Medeiros)
TEMA 3 - Tipos de Linguagens de descrição de hardware - Evolução, Características (Marcus Vinicius Bunn & Joao Vitor Rodrigues)
TEMA 4 - Ferramentas para programação de DLPs, Fabricantes de DLPs (Roicenir Rostirolla & Ronaldo João Borges)
TEMA 5 - Interface JTAG (Lucas Gomes, Vinicius Bandeira & Stephany Guimarães)
  • Escreva um relatório na forma de artigo com 4 a 6 paginas A4.
  • 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), com o ASSUNTO: DLP29006 - AE1 - Temas relacionados aos DLPs.
  • O artigo deve ser completo, incluindo todas as referências utilizadas. De um título coerente ao artigo. Seja criativo...
  • Veja alguns artigos de semestres anteriores em: DLP1-EngTel (página)#ARTIGOS DE SEMESTRES ANTERIORES
AE2 - Resolução dos exercícios do Capítulo 2 (prazo 28/10/2015)
  • Resolva os Exercícios 2.1, 2.2 e 2.3 [2]
  • Coloque os resultados do Exercícios em um relatório em paginas A4. É importante que o relatório contenha os códigos em VHDL, os "RTL View", e os resultados das simulações. Os resultados devem ser analisados e comentados.
  • 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 relatório em pdf para (moecke AT ifsc.edu.br), com o ASSUNTO: DLP29006 - AE2 - Resolução dos exercícios do Capítulo 2

ESTUDOS SEM ENTREGA DE DOCUMENTAÇÃO

EL1 - Resolução dos exercícios do Cap 3
  • Resolva os exercícios da capítulo 3 (1, 2, 9, 11, 12, 14-17, 18-20, 22-30) pag. 81 a 89
EL2 - Resolução dos exercícios do Cap 4
  • Resolva os exercícios da capítulo 4 (4-11, 13, 15-17 ) pag. 115 a 120

ARTIGOS ENTREGUES

2015-2
2015-1

REFERENCIAS

Recursos de Laboratório

Quartus/Modelsim/QSIM

Nos laboratórios do IFSC, os softwares Quartus/Modelsim/QSIM estão disponíveis diretamente na plataforma LINUX. Utilize preferencialmente a versão 13.0sp1 (32 bits), pois ela tem suporte para os FPGAs mais antigos como a familia Cyclone I.

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).

Sharelatex

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.


Links auxiliares

Livros/Resumos sobre VHDL

Packages não padronizados

Simulador Modelsim

Fabricantes de DLPs

Fabricantes de kits com DLPS


Padrões IEEE para o VDHL

Os padrões IEEE [3]estão disponíveis para consulta se você estiver na rede do IFSC. Para a linguagem VHDL consulte os padrões: 1164,1076

Packages da IEEE

Referências Bibliográficas:

  1. 1,0 1,1 PEDRONI, Volnei A. Eletrônica digital moderna e VHDL; 1ª ed. Rio de Janeiro:Elsevier, 2010. 619p. . ISBN 9788535234657
  2. 2,00 2,01 2,02 2,03 2,04 2,05 2,06 2,07 2,08 2,09 2,10 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