Registro on-line das aulas
Unidade 1
- Aula 1 (29 Jul)
- Dispositivos lógicos programáveis.
- Bases da linguagem VHDL.
- Tipos de dados, libraries, conversão de tipos, operadores, atributos.
- Código VHDL concorrente e sequencial.
- Projeto hierárquico.
- Simulação e Testbench
- Maquina de estado finita (FSM).
- Projeto Final de circuitos lógicos.
- 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)
- 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)
- 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)
- Exemplo de decodificador de endereço genérico
- Ver pag. 22 a 27 de [2]
Unidade 3
- Aula 6 (15 Out)
- (continuação)
- 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)
- 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)
- Exemplo 3.3 Multiplicador
- Tipos Array definidos pelo usuário: 1D, 1D x 1D, 2D, 1D x 1D x 1D, 3D.
- 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)
- 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);
- 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.
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,0 1,1 PEDRONI, Volnei A. Eletrônica digital moderna e VHDL; 1ª ed. Rio de Janeiro:Elsevier, 2010. 619p. . ISBN 9788535234657
- ↑ 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