DLP29006-Engtelecom(2015-2) - Prof. Marcos Moecke

De MediaWiki do Campus São José
Revisão de 13h16min de 23 de março de 2016 por Moecke (discussão | contribs)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

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.

Unidade 7

Aula 31
Simulação com o ModelSim
  • Seguir o tutorial [1]
  • Para usar o ModelSim 10.1d na CLOUD-IFSC abra um terminal e digite:
/opt/altera/13.0sp1/modelsim_ase/bin/vsim
  • Para usar o ModelSim 10.1d no LabProg abra um terminal e digite:
/opt/altera/13.0/quartus/modelsim_ase/linux/vsim
Complementos
Aula
Simulação com o ModelSim X Qsim
  • Simular o circuito utilizando QSIM e ModelSim.
  • Executar Modelsim a partir do Quartus II. Simulação usando comandos gráficos.
  • Criação de arquivo wave.do (para armazenamento dos sinais e formatos).
  • Criação do arquivo tb_circuito.do (para compilar, simular, definir os estimulos e executar 48 hr de simulação).
  • Análise dos gráficos temporais e correção do hardware implementado.

Avaliações

  • Avaliação A1 - Unidade 2, 3 e 4 (20 Nov 2015) - Local: Lab Programação.
  • Avaliação A2 - Unidade 5, 6 e 8 (16 Fev 2016) - Local: Lab Programação.
  • Recuperação R1-2 - Unidade 2 a 6 e 8 (15 Mar 2016) - Local: Lab Programação.
A Recuperação R1-2 é obrigatória para os alunos que tem conceito "D" nas avaliações A1 e A2, ou conceito "D" em uma das avaliações e "C" na outra.
As avaliações são com consulta a todo tipo de material impresso ou digital. O aluno tem 5 minutos para preparar o computador depois disso a rede será desconectada.
Ao final do avaliação o aluno deverá enviar para o email do professor os arquivos solicitados.
  • Entrega dos diversos trabalhos ao longo do semestre AE1 a AE3.
  • Projeto Final AE4. 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

AE4 - Projeto Final de Hardware (prazo 16/03/2016)
  • Deverá ser realizado um projeto em hardware em equipes de 2 ou 3 alunos, sendo o tema de cada projeto de livre escolha da equipe.
EQUIPES PARA O PROJETO FINAL.
EQ1 - Gustavo Medeiros da Silva Fernando Silva Stephany Guimarães
EQ2 - Roicenir Rostirolla, Joao Vitor Rodrigues
EQ3 - Lucas Gomes, Marcus Vinicius Bunn
EQ4 - Ronaldo João Borges, Vinicius Bandeira
EQ5 - Walter Freitas Jr., Giulio Oliveira
  • Cada projeto deverá ser implementado utilizando um kit DE2-115 ou Mercúrio IV.
  • Cada projeto deverá conter no mínimo: 1 circuito lógico combinacional, 1 circuito aritmético, 1 circuito sequencial, 3 chaves externas, 3 leds externos, 2 displays de 7 segmentos.
  • Cada projeto deverá obrigatoriamente ser constituído de no mínimo 3 componentes no nível hierárquico de nível 0 (top level). Este nível deverá ter apenas a instanciação de componentes.
Nenhum hardware adicional em VHDL deverá ser descrito neste nível, exceto eventuais inversões de sinais em função do tipo de chave utilizado.
Lembre-se que as chaves push-bottom produzem repiques - Dicas de como eliminar o repique das chaves mecânicas
  • Os projetos/alunos serão analisados em 3 quesitos:
1 - Implementação do projeto, atendimento as especificações e requisitos do sistema.
2 - Documentação do projeto e especificações iniciais.
3 - Avaliação do aluno durante o desenvolvimento do projeto.
No desenvolvimento buscar descrever: as especificação do Sistema, a descrição do Sistema, a Interface do Usuário, a Descrição dos Hardware
Nos resultados descrever: as simulações feitas, os resultados práticos, as medições feitas, os problemas encontrados resolvidos ou não.
  • Envie o artigo em pdf para (moecke AT ifsc.edu.br), com o ASSUNTO: DLP29006 - AE4 - Projeto Final.

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
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 [2]?
  • 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...

ESTUDOS SEM ENTREGA DE DOCUMENTAÇÃO

Os exemplos e exercícios essenciais estão destacados em negrito na listagens abaixo.

EL1 - Resolução dos exercícios do Cap 3
  • Resolva os exercícios do capítulo 3 (1, 2, 9, 11, 12, 13, 14-17, 18, 20, 22, 23-30) pag. 81 a 89
EL2 - Resolução dos exercícios do Cap 4
  • Resolva os exercícios do capítulo 4 (4-8, 9, 10-11, 13, 15-16, 17 ) pag. 115 a 120
EL3 - Resolução dos exercícios do Cap 5
  • Resolva os exercícios do capítulo 5 (1, 2, 3, 4, 6, 7, 8-9, 10-11, 14-16, 17-18, 19 ) pag. 144 a 150
EL4 - Resolução dos exercícios do Cap 6
  • Resolva os exercícios do capítulo 6 (1, 2, 3-4, 5, 6-7, 9*, 10-11, 12*, 13*, 14) pag. 172 a 176.
EL5 - Resolução dos exercícios/exemplos do Cap 7
  • Resolva os exercícios do capítulo 7 (1-2, 3, 4, 5, 8, 9,) pag. 193 a 198.
  • Analise o RTL e simule no QSIM os exemplos 7.3, 7.4.
EL6 - Resolução dos exercícios/exemplos do Cap 8
  • Resolva os exercícios do capítulo 8 (1, 2-3, 4, 5-6, 7, 9*) pag. 219 a 220.
  • Analise o RTL e simule no QSIM os exemplos 8.2, 8.3, 8.4.
EL7 - Resolução dos exercícios do Cap 9
  • Resolva os exercícios do capítulo 9 (1-3, 6-9) pag. 238 a 239.

ARTIGOS ENTREGUES

2015-2
2015-1

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