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

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 202: Linha 202:
  
 
::Ver pag. 3 a 24 de <ref name="PEDRONI2010b"> PEDRONI, Volnei A. '''Circuit Design and Simulation with VHDL'''; 2ª ed. Massachusetts-EUA:MIT, 2010. 608 p.  ISBN  9780262014335 </ref>
 
::Ver pag. 3 a 24 de <ref name="PEDRONI2010b"> PEDRONI, Volnei A. '''Circuit Design and Simulation with VHDL'''; 2ª ed. Massachusetts-EUA:MIT, 2010. 608 p.  ISBN  9780262014335 </ref>
 +
 +
===Unidade 3===
 +
;Aula 5 (25 Ago):
 +
*Tipos de Dados em VHDL.
 +
:*Objetos de VHDL: CONSTANT, SIGNAL, VARIABLE, FILE.
 +
:*Palavra chave OTHERS
 +
:* Bibliotecas padrão IEEE ('''std_logic_1164''', '''numeric_std''').
 +
::* '''ATENÇÃO!!! Não use as bibliotecas que não são padrão (''std_logic_arith, std_logic_unsigned, std_logic_signed''''')
 +
:* 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
 +
::* Exemplo 3.1 Buffer Tri-state
 +
::* Exemplo 3.2 Circuito com Saida "don't care"
 +
:: Ver pag. 31 a 39 de <ref name="PEDRONI2010b"/>
 +
:: Ver pag. 39 a 51 de <ref name="PEDRONI2010b"/>
 +
 +
<!--
 +
;Aula 7  (11 Abr):
 +
*Tipos de Dados em VHDL.
 +
 +
;Aula 8  (13 Abr):
 +
*Tipos de Dados em VHDL.
 +
:* Tipos de dados: SIGNED e UNSIGNED
 +
:* Exemplo 3.3 Multiplicador (un)signed
 +
:* Tipos de dados: FIXED e FLOAT (apenas conhecer)
 +
:* Resumo dos Tipos predefinidos (Tabela 3.6).
 +
:* Tipos definidos pelo usuário:
 +
::* Escalares (Inteiros e Enumerados)
 +
::* Tipos de Array 1D x 1D, 2D , 1D x 1D x 1D, 3D
 +
:* RECORD e SUBTYPE
 +
:* Exemplo 3.8: Multiplexador com porta 1D x 1D.
 +
:: Ver pag. 51 a 73 de <ref name="PEDRONI2010b"/>
 +
 +
;Aula 9  (14 Abr):
 +
*Qualificação de tipos, conversão de tipos (automática, casting e funções de conversão).
 +
:* Resumo das funções de conversão de tipos (Tabela 3.10) e ver [[Aritmética com vetores em VDHL]]
 +
:* Exemplo 3.9: Multiplicador com sinal
 +
<syntaxhighlight lang=vhdl>
 +
LIBRARY ieee;
 +
USE ieee.std_logic_1164.all;
 +
USE ieee.numeric_std.all;
 +
 +
ENTITY signed_multiplier IS
 +
PORT (
 +
a, b: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
 +
y: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
 +
);
 +
END ENTITY;
 +
 +
ARCHITECTURE type_conv_arch OF signed_multiplier IS
 +
BEGIN
 +
y <= std_LOGIC_VECTOR(SIGNED(a) * SIGNED(b));
 +
END ARCHITECTURE;
 +
</syntaxhighlight>
 +
 +
:* Exercício: 
 +
::*Implementar em VHDL um circuito que efetue a operação <math>\ y = a^2 + 2*a*b + 5 </math>, utilizando portas do tipo INTEGER para valores de entrada <math>\ a </math> e <math>\ b </math> com sinal e ocupando 4 bits, utilize na saída <math>\ y </math> 8 bits. Determine o número de elementos lógicos e verifique o código RTL obtido.  Compare com os colegas.
 +
::*Repita o circuito com as mesmas características, utilizando no entanto portas do tipo STD_LOGIC_VECTOR com 4 bits nas entradas e 8 bits na saída.
 +
::*Faça a simulação funcional do circuito. Teste o circuito no minimo com <math>\ {a = -2, b = 3} => y = -3 </math>, <math>\ {a = 7, b = 6} => y = 138 </math> e <math>\ {a = -8, b = -8} => y = 197 </math>. Note que para valores maiores de entrada <math>\ a </math> e <math>\ b </math> pode ocorrer ''overflow'' devido a limitação do número de bits da saída.
 +
:: Ver pag. 73 a 78 de <ref name="PEDRONI2010b"/>
 +
 +
;Aula 10 e 11 (18 e 20 Abr):
 +
*Operadores em VHDL.
 +
:* Operadores predefinidos: Atribuição, Lógicos, Aritméticos, Comparação, Deslocamento, Concatenação, "Matching".
 +
:* Sobrecarga de operadores
 +
*Atributos em VHDL.
 +
:* Atributos predefinidos: tipo escalar e enumerados; tipo array; de sinal;
 +
:* Exemplo 4.2 (Simulação funcional)
 +
:* Atributos definidos pelo usuário;
 +
:* Atributos de síntese:
 +
::* Enum_encoding [http://quartushelp.altera.com/15.0/mergedProjects/hdl/vhdl/vhdl_file_dir_enum_encoding.htm]
 +
::* chip_pin [http://quartushelp.altera.com/15.0/mergedProjects/hdl/vhdl/vhdl_file_dir_chip.htm]
 +
:: Ver pag. 91 a 108 de <ref name="PEDRONI2010b"/>
 +
 +
;Aula 12 (25 Abr):
 +
*Atributos em VHDL.
 +
:* Atributos de síntese:
 +
::* keep [http://quartushelp.altera.com/15.0/mergedProjects/hdl/vhdl/vhdl_file_dir_keep.htm]
 +
:::* Exemplo 4.4: Delay line (Síntese e Simulação temporal sem o com o atributo keep)
 +
:::* Exemplo 5.8 Gerador de Pulsos estreitos
 +
::* preserve [http://quartushelp.altera.com/15.0/mergedProjects/logicops/logicops/def_preserve_fanout_free_node.htm]
 +
::* noprune.
 +
:::* Exemplo 4.5: Preserve and noprune attributes
 +
<syntaxhighlight lang=vhdl>
 +
ENTITY redundant_registers IS
 +
PORT (
 +
clk, x: IN BIT;
 +
y: OUT BIT);
 +
END ENTITY;
 +
 +
ARCHITECTURE arch OF redundant_registers IS
 +
SIGNAL a, b, c: BIT;
 +
        -- NORMAL -- 1 LE
 +
--ATTRIBUTE preserve: BOOLEAN;
 +
--ATTRIBUTE preserve OF a, b, c: SIGNAL IS TRUE; -- 2 LE
 +
--ATTRIBUTE noprune: BOOLEAN;
 +
--ATTRIBUTE noprune OF a, b, c: SIGNAL IS TRUE; --3 LE
 +
--ATTRIBUTE keep: BOOLEAN;
 +
--ATTRIBUTE keep of a,b,c: SIGNAL IS TRUE;
 +
BEGIN
 +
PROCESS (clk)
 +
BEGIN
 +
IF (clk'EVENT AND clk='1') THEN
 +
a <= x;
 +
b <= x;
 +
c <= x;
 +
END IF;
 +
END PROCESS;
 +
y <= a AND b;
 +
END ARCHITECTURE;
 +
</syntaxhighlight>
 +
Após a compilação do código acima, observe o número de elementos lógicos obtidos, observe o '''Technology Map''' dos circuitos gerados e verifique a localização dos FFs no '''Chip Planner'''.
 +
<center> [[Arquivo:Ex4_5_NoAttribute.png | Sem Attribute| 400 px]] <br> '''Fig 12. Technology Map do Circuito sem Attribute'''</center>
 +
<center> [[Arquivo:Ex4_5_PreserveAttribute.png| Preserve (or Keep) Attribute |400 px]] <br> '''Fig 13. Technology Map do Circuito com Attribute Preserve (or Keep) '''</center>
 +
<center> [[Arquivo:Ex4_5_NopruneAttribute.png| Noprune Attribute| 400 px]] <br> '''Fig 14. Technology Map do Circuito com Attribute Noprune '''</center>
 +
 +
 +
:* Group
 +
:* Alias
 +
::*Exemplo de uso no pacote numeric_std.vhd
 +
<syntaxhighlight lang=vhdl>
 +
  function ADD_UNSIGNED (L, R: UNSIGNED; C: STD_LOGIC) return UNSIGNED is
 +
    constant L_LEFT: INTEGER := L'LENGTH-1;
 +
    alias XL: UNSIGNED(L_LEFT downto 0) is L;
 +
    alias XR: UNSIGNED(L_LEFT downto 0) is R;
 +
    variable RESULT: UNSIGNED(L_LEFT downto 0);
 +
    variable CBIT: STD_LOGIC := C;
 +
  begin
 +
    for I in 0 to L_LEFT loop
 +
      RESULT(I) := CBIT xor XL(I) xor XR(I);
 +
      CBIT := (CBIT and XL(I)) or (CBIT and XR(I)) or (XL(I) and XR(I));
 +
    end loop;
 +
    return RESULT;
 +
  end ADD_UNSIGNED;
 +
</syntaxhighlight>
 +
:* Exercício 4.17: Discussão de possibilidades de implementação
 +
:: Ver pag. 108 a 119, 140 a 142 de <ref name="PEDRONI2010b"/>
 +
<!--
 +
;Aula 13 (11 mar):
 +
 +
*Tempo livre para implementar/testar o [EL3 - Conversor de Binário para BCD].
 +
-->
  
 
==Avaliações==
 
==Avaliações==
Linha 511: Linha 652:
 
{{collapse bottom}}
 
{{collapse bottom}}
 
-->
 
-->
 
  
 
==Recursos de Laboratório==
 
==Recursos de Laboratório==

Edição das 07h30min de 25 de agosto de 2016

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


Registro on-line das aulas

Unidade 1

Aula 1 (11 Ago)
  • Introdução aos dispositivos lógicos programáveis:
  • Conceito, tipos de PLDs
  • SPLD: PAL, PLA e GAL
  • CPLDs
Exemplos de PLDs
Ep310 macrocell.jpg
Figura 1.1 - Macrobloco do PLD EP300 da ALTERA
FONTE: https://www.altera.com/solutions/technology/system-design/articles/_2013/in-the-beginning.html
Macrocell EP900.png
Figura 1.2 - Macrocélula dos PLDs Clássicos EP600, EP900, EP1800 da ALTERA (1999)
FONTE: https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/ds/archives/classic.pdf
Ep1800 block diagram.jpg Ep1800 block diagram2.jpg
Figura 1.3 - Architetura do PLD EP1800 da ALTERA
FONTE: https://www.altera.com/solutions/technology/system-design/articles/_2013/in-the-beginning.html
FONTE: https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/ds/archives/classic.pdf
PackagePinOut EP1810.png ChipEP1810.png
Figura 1.5 - Pinagem e tipos de encapsulamento do PLD EP1800 da ALTERA
FONTE: https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/ds/archives/classic.pdf
FONTE: multisound_tahiti.jpeg
Max 5000 architecture.jpg
Figura 1.6 - Architetura do CPLD MAX 5000 da ALTERA
FONTE: https://www.altera.com/solutions/technology/system-design/articles/_2013/in-the-beginning.html
Ver Dispositivos Lógicos Programáveis - Kamila Rose da Silva, IFSC
Ver In the befinning - ALTERA
Ver ALTERA history
Ver pag. 413 a 422 de [1]
Ver pag. 495 a 499 de [2]
Aula 2 (16 Ago)
  • Introdução aos dispositivos lógicos programáveis:
  • Arquitetura de FPGAs (Xilinx e Altera): CLB, LAB, RAM, DSP, Clock, PLL, I/O
  • 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]
Ver pag. 418 a 429 de [1]
Aula 3 (18 Ago)
  • Fabricantes de DLPs/FPGAs e familias de DLPs atuais.
  • Preços
  • Historia, processo de produção dos chips.

Unidade 2

Aula 3 (22 Ago) - Introdução ao VHDL e ambienta EDA - QUARTUS
  • Estrutura do código VHDL
  • Declaração das bibliotecas e pacotes LIBRARY / PACKAGE

library library_name;
use library_name.package)name.all;

  • ENTITY

entity entity_name is
  [generic (
    cons_name1: const_type const_value;
    cons_name2: const_type const_value;
    ...
    cons_nameN: const_type const_value);]
  [port (
    signal_name1: mode signal_type;
    signal_name2: mode signal_type;
    ...
    signal_nameN: mode signal_type);]
  [declarative_part]
[begin
  statement_part]
end [entity] [entity_name];

  • ARCHITECTURE

architecture arch_name of entity_name is
  [declarative_part]
begin
  statement_part
end [architecture] [arch_name];

  • Exemplo - Declaração de uma porta NAND em VHDL
library std;
use std.standard.all;

entity nand_gate is
	port (a, b: in bit; x: out bit);
end entity;

architecture nome_arch of nand_gate is
begin
	x <= a nand b;
end architecture;


  • Exemplo 2.2 (VHDL) - programação de um flip-flop
 -- Declaração das bibliotecas e pacotes
 LIBRARY ieee;
 USE ieee.std_logic_1164.all;

 -- Especificação de todas as entradas e saídas do circuito
 ENTITY flip_flop IS
  PORT (d, clk, rst: IN STD_LOGIC;
   q: OUT STD_LOGIC);
 END;
  
 -- Descrição de como o circuito deve funcionar
 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;
RTL Ex2 2 Pedronib.png
Figura 2.2 - Código RTL do Exemplo 2.2
  • Use o Technology Map Viewer para ver a como o circuito foi mapeado para os elementos lógicos disponíveis no dispositivo FPGA selecionado (EP1C3T100A8)
TM Ex2 2 Pedronib.png
Figura 2.3 - Technology Map do Exemplo 2.2
ChipPlanner Ex2 2 Pedronib.png
Figura 2.4 - Chip Planner do Exemplo 2.2
Aula 4 (23 Ago) - Introdução ao VHDL e ambienta EDA - QUARTUS
  • Estrutura do código VHDL
  • Exemplo 2.3 (VHDL e QSIM) - programação de um circuito somador com registrador
Realizar as simulações funcional e temporal do circuito
Observar o "Technology Map" e o "RTL" do circuito
 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;
Acrescente saídas para o sinal sum e para o sinal comp, de modo a poder observar estes sinais no simulador QSIM e realize novas simulações funcional e temporal.
RTL Ex2 3 Pedronib.png
Figura 2.5 - Código RTL do Exemplo 2.3
Para conhecer melhor o ambiente do simulador QSIM veja Arquivo:Quartus II Simulation.pdf da ALTERA.
Ver pag. 3 a 24 de [2]

Unidade 3

Aula 5 (25 Ago)
  • Tipos de Dados em VHDL.
  • Objetos de VHDL: CONSTANT, SIGNAL, VARIABLE, FILE.
  • Palavra chave OTHERS
  • Bibliotecas padrão IEEE (std_logic_1164, numeric_std).
  • ATENÇÃO!!! Não use as bibliotecas que não são padrão (std_logic_arith, std_logic_unsigned, std_logic_signed)
  • 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
  • Exemplo 3.1 Buffer Tri-state
  • Exemplo 3.2 Circuito com Saida "don't care"
Ver pag. 31 a 39 de [2]
Ver pag. 39 a 51 de [2]


Avaliações

  • Avaliação A1 - Unidade 2 a 4 (XX/XX/2016) - Local: Lab Redes II.
  • Avaliação A2 - Unidade 5 a 7 (XX/XX/2016) - Local: Lab Redes II.
As avaliações A1 e A2 são com consulta apenas as folhas VHDL QUICK REFERENCE CARD e VHDL 1164 PACKAGES QUICK REFERENCE CARD.
  • Recuperação R1-2 - Unidade 2 a 7 (XX/XX/2016) - Local: Lab Redes II.
Ao final das avaliações o aluno deverá enviar para o email moecke AT ifsc.edu.br com os arquivos solicitados.
  • Entrega dos Atividades Extraclasse ao longo do semestre AE1 a AE(N-1). Os prazos serão indicados aqui na Wiki
  • Projeto Final APF (XX/XX/2016).

Atividades extraclasse

Neste tópico serão listadas as atividades extraclasse que os alunos/equipes deverão realizar ao longo do semestre.

PARA ENTREGAR

AE1 - Temas relacionados aos DLPS (Prazo de entrega do resumo (500 caracteres/ 1 pagina): XX Agosto 2016, Prazo de entrega do artigo: XX setembro 2016)
  • Formar equipes com 2 ou 3 alunos, e em conjunto façam uma pesquisa sobre um tema relacionado a DLPs.
TEMA 1 - (Adonis,Daniel e Nelson)
TEMA 2 - (Mateus, Paula e Andrey)
TEMA 3 - (Bruno e Murilo)
TEMA 4 - (Lucas, Matias e Henrique)
TEMA 5 - (Natalia e Luisa)
TEMA 6 - Aplicações em redes neuronais (Jessica, Leticia e Gabriel S.)
TEMA 7 - (Kleiton, Gustavo e Gabriel W.)
TEMA 8 - Aplicações em Imagens Médicas (Alline e Layssa)
SEM EQUIPE João
INSPIRAÇÃO para temas:
  • Escrever um artigo com 4 a 6 páginas A4. O artigo deve ser completo, incluindo todas as referências utilizadas. Dê um título coerente ao artigo. Seja criativo.
  • 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 resumo em pdf para (moecke AT ifsc.edu.br), com o ASSUNTO: DLP29006 - AE1 - Temas relacionados aos DLPS - resumo.
  • Envie o artigo em pdf para (moecke AT ifsc.edu.br), com o ASSUNTO: DLP29006 - AE1 - Temas relacionados aos DLPS - artigo.


ARTIGOS ENTREGUES

2016-2
2016-1
2015-2
2015-1

ESTUDOS SEM ENTREGA DE DOCUMENTAÇÃO

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


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

Leituras recomendadas


Padrões IEEE para o VDHL

Os padrões IEEE [4]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 1,2 PEDRONI, Volnei A. Eletrônica digital moderna e VHDL; 1ª ed. Rio de Janeiro:Elsevier, 2010. 619p. . ISBN 9788535234657
  2. 2,0 2,1 2,2 2,3 2,4 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