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
 
(126 revisões intermediárias por 5 usuários não estão sendo mostradas)
Linha 2: Linha 2:
 
*Link curto http://bit.ly/IFSC-DLP29006
 
*Link curto http://bit.ly/IFSC-DLP29006
 
*[[DLP1-EngTel|Carga horária, Ementas, Bibliografia, Professores]]
 
*[[DLP1-EngTel|Carga horária, Ementas, Bibliografia, Professores]]
*[[Cronograma de atividades (DLP1-EngTel) | Cronograma de atividades ]]
 
 
*[[DLP1-EngTel (Plano de Ensino) | Plano de Ensino]]
 
*[[DLP1-EngTel (Plano de Ensino) | Plano de Ensino]]
==Registro on-line das aulas==
+
== Avisos importantes==
===Unidade 1===
+
*A documentação das aulas será disponibilizada na página da [[DLP29006-Engtelecom (Diário) - Prof. Marcos Moecke | '''Wiki diária da disciplina'''.]].
;Aula 1 (11 Ago):
 
*[[DLP1-EngTel (Plano de Ensino) | Apresentação da disciplina]]
 
 
 
*Introdução aos dispositivos lógicos programáveis:
 
:* Conceito, tipos de PLDs
 
::* SPLD: PAL, PLA e GAL
 
::* CPLDs
 
{{collapse top | Exemplos de PLDs}}
 
<center>[[Arquivo:ep310_macrocell.jpg| 400 px]] </center>
 
<center> Figura 1.1 - Macrobloco do PLD EP300 da ALTERA </center>
 
<center>FONTE: https://www.altera.com/solutions/technology/system-design/articles/_2013/in-the-beginning.html</center>
 
 
 
<center>[[Arquivo:Macrocell_EP900.png| 400 px]] </center>
 
<center> Figura 1.2 - Macrocélula dos PLDs Clássicos EP600, EP900, EP1800 da ALTERA (1999) </center>
 
<center> FONTE: https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/ds/archives/classic.pdf</center>
 
 
 
<center>[[Arquivo:ep1800_block_diagram.jpg| 400 px]] [[Arquivo:ep1800_block_diagram2.jpg| 400 px]] </center>
 
<center> Figura 1.3 - Architetura do PLD EP1800 da ALTERA </center>
 
<center> FONTE: https://www.altera.com/solutions/technology/system-design/articles/_2013/in-the-beginning.html</center>
 
<center> FONTE: https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/ds/archives/classic.pdf</center>
 
 
 
<center>[[Arquivo:PackagePinOut_EP1810.png| 400 px]] [[Arquivo:ChipEP1810.png| 200 px]] </center>
 
<center> Figura 1.5 - Pinagem e tipos de encapsulamento do PLD EP1800 da ALTERA </center>
 
<center> FONTE: https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/ds/archives/classic.pdf</center>
 
<center> FONTE: http://alasir.com/software/multisound/multisound_tahiti.jpeg </center>
 
 
 
<center>[[Arquivo:max_5000_architecture.jpg| 400 px]] </center>
 
<center> Figura 1.6 - Architetura do CPLD MAX 5000 da ALTERA </center>
 
<center> FONTE: https://www.altera.com/solutions/technology/system-design/articles/_2013/in-the-beginning.html</center>
 
{{collapse bottom}}
 
::Ver [https://www.dropbox.com/s/wvl3cudgcpchstr/ARTIGO_ACADEMICO_DLP.pdf?dl=0 Dispositivos Lógicos Programáveis] - Kamila Rose da Silva, IFSC
 
::Ver [https://www.altera.com/solutions/technology/system-design/articles/_2013/in-the-beginning.html In the befinning] - ALTERA
 
::Ver [https://www.altera.com/about/company/history.html ALTERA history]
 
::Ver pag. 413 a 422 de <ref name="PEDRONI2010a"> PEDRONI, Volnei A. Eletrônica digital moderna e VHDL; 1ª ed. Rio de Janeiro:Elsevier, 2010. 619p. . ISBN 9788535234657 </ref>
 
::Ver pag. 495 a 499 de <ref name="PEDRONI2010b"> PEDRONI, Volnei A. '''Circuit Design and Simulation with VHDL'''; 2ª ed. Massachusetts-EUA:MIT, 2010. 608 p.  ISBN  9780262014335 </ref>
 
 
 
;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
 
::*[[Conhecendo os dispositivos lógicos programáveis]]
 
:* Vizualização no Chip Planner de um projeto. (importante todos alunos terem acesso a [[IFSC-CLOUD]]
 
::Ver pag. 419 a 431 de <ref name="PEDRONI2010a" />
 
::Ver pag. 499 a 501 de <ref name="PEDRONI2010b" />
 
::Ver pag. 418 a 429 de <ref name="PEDRONI2010a"> PEDRONI, Volnei A. Eletrônica digital moderna e VHDL; 1ª ed. Rio de Janeiro:Elsevier, 2010. 619p. . ISBN 9788535234657 </ref>
 
 
 
;Aula 3 (18 Ago):
 
:* Fabricantes de DLPs/FPGAs e familias de DLPs atuais.
 
::*[https://www.altera.com/products/fpga/overview.html ALTERA] - Stratix, Arria, Cyclone, Max
 
::*[https://www.xilinx.com/products/silicon-devices/fpga.html Xilinx] - Virtex, Kintex, Artix, Zynq (SoC)
 
::*[http://www.microsemi.com/products/fpga-soc/fpgas Microsemi] - Igloo
 
::*[http://www.latticesemi.com/Products.aspx#_D5A173024E414501B36997F26E842A31 Lattice]  - ECP, iCE, Mach
 
:* Preços
 
::* [https://www.altera.com/buy/devices.html ALTERA], [https://www.arrow.com/en/products/search?prodLine=FPGAs&amp;q=FPGA ARROW],[http://www.digikey.com/product-search/en/integrated-circuits-ics/embedded-fpgas-field-programmable-gate-array/2556262?k=fpga Digikey]
 
:* Historia, processo de produção dos chips.
 
::*[https://www.semiwiki.com/forum/content/1535-brief-history-fabless-semiconductor-industry.html A Brief History of the Fabless Semiconductor Industry]
 
::*[http://www.semiwiki.com/forum/content/1539-brief-history-tsmc.html Taiwan Semiconductor Manufacturing Corporation (TSMC)], [http://www.globalfoundries.com/ GLOBALFOUNDRIES
 
::*[https://www.linkedin.com/pulse/free-copy-fabless-transformation-semiconductor-industry-daniel-nenni-1 Fabless: The Transformation of the Semiconductor Industry, 2014] - Download free
 
::*[https://en.wikipedia.org/wiki/14_nanometer 14nm FinFET Technology], [https://www.youtube.com/watch?v=gLPscTDAaZU Samsung & Globalfounfries], [https://www.youtube.com/watch?v=Jctk0DI7YP8 Funcionamento do FinFET], [https://www.youtube.com/watch?v=W3rfVpkNquA Produção do FinFET], [https://www.youtube.com/watch?v=d9SWNLZvA8g]
 
::*[https://www.youtube.com/watch?v=UvluuAIiA50 Processo de fabricação de um chip]
 
 
 
===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'''
 
<i>
 
library library_name;
 
use library_name.package)name.all;
 
</i>
 
 
 
:* '''ENTITY'''
 
<i>
 
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];
 
</i>
 
 
 
:* '''ARCHITECTURE'''
 
<i>
 
architecture arch_name of entity_name is
 
  [declarative_part]
 
begin
 
  statement_part
 
end [architecture] [arch_name];
 
</i>
 
* Exemplo - Declaração de uma porta NAND em VHDL
 
<syntaxhighlight lang=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;
 
</syntaxhighlight>
 
  
 +
* Nesta página wiki, você tem orientações para uso de ferramentas e também links que auxiliam no estudo da disciplina.  Visite os links sempre que solicitado e lei essa página para lembrar futuramente onde estão as informações que necessita.
 
<!--
 
<!--
<center>[[Arquivo:VHDL_nand_gate.png| 400 px]]</center>
+
==Instalação da VM com Quartus e Modelsim em seu computador==
<center> Figura 2.1 - Declaração de uma porta NAND em VHDL </center>
 
-->
 
 
 
* Exemplo 2.2 (VHDL) - programação de um flip-flop
 
<syntaxhighlight lang=vhdl>
 
-- 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;
 
</syntaxhighlight>
 
:* Após a [[criação do projeto em VHDL]] utilizando a descrição de hardware acima, [[compile o código VHDL]].
 
:* Use o [[RTL Viewer]] para ver a descrição RTL do circuito.
 
 
 
<center>[[Arquivo:RTL_Ex2_2_Pedronib.png| 400 px]]</center>
 
<center> Figura 2.2 - Código RTL do Exemplo 2.2 </center>
 
  
:* 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)
+
Para importar a VM para o seu computador e configurar ela para acessar a licença do IFSC veja a página [[Teste de VM para uso pelos alunos no ensino remoto#VM Quartus e Modelsim | Instalação da VM com Quartus e Modelsim]]
 
 
<center>[[Arquivo:TM_Ex2_2_Pedronib.png| 400 px]]</center>
 
<center> Figura 2.3 - Technology Map do Exemplo 2.2 </center>
 
 
 
:* Abra o [[Chip Planner]] e observe no [[Node Properties]] como esse circuito é conectado dentro do dispositivo FPGA selecionado
 
 
 
<center>[[Arquivo:ChipPlanner_Ex2_2_Pedronib.png| 400 px]]</center>
 
<center> Figura 2.4 - Chip Planner do Exemplo 2.2 </center>
 
 
 
;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
 
<syntaxhighlight lang=vhdl>
 
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;
 
</syntaxhighlight>
 
:: 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.
 
 
 
<center>[[Arquivo:RTL_Ex2_3_Pedronib.png | 400 px]] </center>
 
<center> Figura 2.5 - Código RTL do Exemplo 2.3 </center>
 
 
 
::Para conhecer melhor o ambiente do simulador QSIM veja [[Arquivo:Quartus_II_Simulation.pdf | Introduction to Simulation of VHDL Designs]] da ALTERA.
 
 
 
::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
 
:: Ver pag. 31 a 35 de <ref name="PEDRONI2010b"/>
 
 
 
;Aula 6 (29 Ago):
 
*Tipos de Dados em VHDL.
 
:* 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. 39 a 51 de <ref name="PEDRONI2010b"/>
 
:* 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 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].
 
 
-->
 
-->
 
===Unidade 4===
 
;Aula  13  (13 Set):
 
*Código Concorrente.
 
:* Uso de Operadores
 
:* WHEN, SELECT;
 
:* Exemplo 5.1 + 5.2 mux: com 3 tipos de arquiteturas (com operadores, com WHEN, com SELECT)
 
<syntaxhighlight lang=vhdl>
 
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;
 
</syntaxhighlight>
 
 
:* Para selecionar uma entre várias arquiteturas para a mesma ENTITY use a CONFIGURATION.
 
<syntaxhighlight lang=vhdl>
 
CONFIGURATION which_mux OF mux IS
 
  FOR Operator_only END FOR;
 
--  FOR with_WHEN END FOR;
 
--  FOR with_SELECT END FOR;
 
END CONFIGURATION;
 
</syntaxhighlight>
 
::Ver pag. 121 a 127 de <ref name="PEDRONI2010b"/>
 
 
<!--
 
<!--
;Aula  14  (28 Abr):
+
==Instalar o Quartus II e Modelsim em seu computador==
*Código Concorrente.
+
A princípio não será necessário que vocês instalem o Quartus II diretamente em suas maquinas, pois podem utilizar a nuvem do IFSC ou então instalar a VM acima. Mesmo assim se alguém preferir instalar o Quartus recomendo que instalem a versão Quartus II Web Edition.
:* Uso de GENERATE
 
 
 
<i><code>
 
label: FOR identificador IN faixa GENERATE
 
  [Parte_Declarativa
 
BEGIN]
 
  Instruções_concorrentes
 
  ...
 
END GENERATE [label];
 
</syntaxhighlight> </i>
 
 
 
::Exemplo 5.4 - Decodificador genérico de endereços.
 
::Exemplo 5.5 - Instanciação de COMPONENTE com GENERATE.
 
::Ver pag. 127 a 134 de <ref name="PEDRONI2010b"/>
 
  
;Aula  15  (2 Mai):
+
Apesar de existirem versões mais novas usem a versão mais leve 13.1. (https://fpgasoftware.intel.com/13.1/?edition=web).  Será necessário apenas baixar e instalar os seguintes arquivos:  
*Código Concorrente.
+
* Quartus II Software (includes Nios II EDS)  Size: 1.5 GB MD5: 672AD34728F7173AC8AECFB2C7A10484
:*Exemplo de uso de operadores e SELECT.
+
* ModelSim-Altera Edition (includes Starter Edition) Size: 817.7 MB MD5: 45FEA341405603F5CF5CD1249BF90976
::Exemplo 5.3 - Unidade de Lógica e Aritmética (ALU).
+
* Cyclone III, Cyclone IV device support (includes all variations) Size: 548.4 MB MD5: 79AB3CEBD5C1E64852970277FF1F2716
::Alteração do código da ALU:
 
::* Inclusão de um sinal que indica "erro" quando ocorre ''overflow''/''underflow'' nas operações de soma, incremento ou decremento.
 
::* Inclusão de um circuito que satura o sinal no máximo positivo ou negativo nas situações de erro.
 
::* Teste da ALU usando simulação funcional.
 
  
;Aula 16 (4 Mai):
+
* '''Esse vídeo aqui explica os passos do download [https://www.youtube.com/watch?v=4GgZ850h9Lg&feature=youtu.be&t=58 Download e instalação do Quartus Web Edition]
*Código Concorrente.
+
'''
:* Implementação de circuitos aritméticos com operadores.
 
:* Para o uso dos operadores o mais adequado é utilizar o padrão industrial '''STD_LOGIC_VECTOR'''.  Internamente os valores das portas devem ser convertidos ou para valores '''INTEGER''' ou para '''UNSIGNED'''/'''SIGNED'''.  para tal é necessário utilizar a biblioteca ''numeric_std''.
 
:* Também é fundamental considerar a faixa de valores coberta por <math> N </math> bits. Para tipos '''UNSIGNED''' a faixa é de <math> 0  </math> até <math>  2^{N}-1 </math>, enquanto que para '''SIGNED''' a faixa é de <math> -2^{N-1} </math> até <math> 2^{N-1}-1 </math>. Assim com 3 bits é possível representar valores entre -4 até 3 com um tipo SIGNED e 0 até 7 com um tipo UNSIGNED.
 
:* Para uso adequado dos operadores também é necessário considerar o tamanho (número de bits) requirido para o resultado em função do tamanho dos operandos.
 
::* Para operações de "+" ou "-": O tamanho do resultado é igual ao tamanho do maior operando.
 
:::Exemplo: r[7..0] = a[7..0] + b[4..0]; a -> 8 bits; b -> 5 bits então r -> 8 bits.
 
::* Para a operações "*": O tamanho do resultado é igual a soma do tamanho dos dois operandos.
 
:::Exemplo: r[12..0] = a[7..0] * b[4..0]; a -> 8 bits; b -> 5 bits então r -> 8+5 = 13 bits.
 
::* Para "/": O tamanho do resultado é igual ao tamanho do numerador.
 
:::Exemplo: r[5..0] = a[5..0] / b[8..0]; a -> 6 bits; b -> 9 bits então r -> 6 bits.
 
:* No caso da operações de "*" e "/" não ocorre ''overflow'', no entanto no caso da "+" e "-", o ''overflow'' pode ocorrer e precisa ser tratado. Isso pode ser feito acrescentando um bit adicional a saída para conter o ''overflow'' ou então sinalizar a sua ocorrência.
 
:* Aula de exercícios:
 
::5.3 - Porta AND e NAND Genérica.
 
::5.4 - Gerador de Paridade Genérico.
 
;Aula 17 (9 Mai):
 
*Código Concorrente.
 
:* Aula de exercícios:  Escreve um código VHDL genérico que implemente os seguintes circuitos:
 
:: Ex1 - Conversor de Binário para Gray genérico;
 
<center> [[Arquivo:RTL_Bin2Gray4bits.png | Bin2Gray| 300 px]] <br> '''Fig 16. código RTL do conversor binário para Gray '''</center>
 
:: Ex2 - Conversor de Gray para Binário genérico;
 
<center> [[Arquivo:RTL_Gray2Bin4bits.png | Gray2Bin| 400 px]] <br> '''Fig 17. código RTL do conversor Gray para binário '''</center>
 
:: Ex3 - Utilizando os dois circuitos anteriores e um incrementador binário escreva um código VHDL que implemente um incrementador Gray;
 
<center> [[Arquivo:RTL_Inc_Gray4bits.png | Inc_Gray| 800 px]] <br> '''Fig 18. código RTL do incrementador de código Gray '''</center>
 
<center> [[Arquivo:SF_Inc_Gray4bits.png | Inc_Gray| 800 px]] <br> '''Fig 19. Simulação Funcional do incrementador de código Gray '''</center>
 
:Ver também [[Código Gray]];
 
 
 
;Aula 18 e 19  (11 e 12 Maio):
 
*Código Concorrente.
 
:* Aula de exercicios:
 
::5.4 - Generic Parity Generator;
 
::5.6 - Generic Binary-to-Gray Converter;
 
::5.7 - Hamming Weight with GENERATE;
 
::5.10/11 - Arithmetic Circuit with INTEGER/STD_LOGIC;
 
::5.15/16/17/18 - (Un)signed Multiplier/Divider;
 
::5.19 - Frequency Multiplier.
 
 
-->
 
-->
  
==Avaliações==
+
==Recursos de Laboratório==
*Avaliação A1 - Unidade 2 a 4 (XX/XX/2016) - Local: Lab Redes II.
+
Nos laboratórios do IFSC, os softwares '''Quartus''' e '''Modelsim''' estão disponíveis diretamente na plataforma LINUX.  O laboratório também dispõe de diversos kits FPGA que podem ser programados para testar os sistemas implementados.
*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 [[Media:VHDL_QRC-Qualis.pdf | VHDL QUICK REFERENCE CARD]] e [[Media:VHDL1164_QRC-Qualis.pdf | 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====
 
{{collapse top | expand = true | AE1 - Temas relacionados aos DLPS (Prazo de entrega do resumo (500 caracteres/ 1 pagina):  09 setembro 2016 até as 23:59), Prazo de entrega do artigo: 07 de outubro de 2016}}
 
* Formar equipes com 2 ou 3 alunos, e '''em conjunto''' façam uma pesquisa sobre um tema relacionado a DLPs.
 
:'''TEMA 1''' -  FPGA x Microprocessador - Vantagens e desvantagens (Daniel e Nelson)
 
:'''TEMA 2''' -  Analisadores lógicos em FPGA (Mateus, Paula e Andrey)
 
:'''TEMA 3''' -  Simuladores de VHDL (Modelsim e QSIM) (Bruno e Murilo)
 
:'''TEMA 4''' -  Circuitos de Processamento de Imagem por interface VGA em VHDL (Mathias, Lucas e Henrique)
 
:'''TEMA 5''' -  FPGA na industria automotiva (Natalia e Luisa)
 
:'''TEMA 6''' -  Aplicações em redes neurais (Jessica, Leticia e Gabriel S,)
 
:'''TEMA 7''' -  Aplicação de Tecnologia de Segurança usando FPGA e SoCs(Kleiton, Gustavo W. e Gabriel W.)
 
:'''TEMA 8''' - Aplicações em Imagens Médicas (João, Alline e Layssa)
 
::INSPIRAÇÃO para temas:
 
:*https://www.altera.com/about/company/history.html
 
:*https://www.altera.com/solutions/technology/system-design/articles/_2013/in-the-beginning.html
 
:*https://www.altera.com/products/fpga/new-to-fpgas/resource-center/overview.html
 
:*http://www.extremetech.com/extreme/184828-intel-unveils-new-xeon-chip-with-integrated-fpga-touts-20x-performance-boost
 
:*https://www.altera.com/products/fpga/overview.html
 
:*https://www.altera.com/products/cpld/max-series.html
 
:*https://www.altera.com/solutions/industry.html
 
:*http://www.xilinx.com/training/fpga/fpga-field-programmable-gate-array.htm
 
:*http://www.springer.com/cda/content/document/cda_downloaddocument/9781461435938-c2.pdf
 
:*Architecture of FPGAs (Xilinx, Altera, Atmel, Lattice, etc). [http://www.eecg.toronto.edu/~jayar/pubs/brown/survey.pdf], [http://isl.stanford.edu/groups/elgamal/abbas_publications/J029.pdf]
 
:*http://ieeexplore.ieee.org/search/searchresult.jsp?queryText=fpga&newsearch=true
 
:*http://ieeexplore.ieee.org/search/searchresult.jsp?queryText=vhdl&newsearch=true
 
 
 
* 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  [http://200.135.233.26:3000/project Sharelatex do IFSC-CLOUD]. Utilize preferencialmente o [http://200.135.233.26:3000/project/54750cb57ae8187440d60acd  modelo de artigo no padrão ABNT]. Outro modelo de artigo que pode ser utilizado é o da [http://200.135.233.26:3000/project/57ccb6e06d9996d31bf5aca2 Elsevier].  Consulte também [[Uso do ShareLaTeX na IFSC-CLOUD]].
 
* Envie o resumo em pdf para (<tt>moecke AT ifsc.edu.br</tt>), com o ASSUNTO: DLP29006 - AE1 - Temas relacionados aos DLPS - resumo.
 
* Envie o artigo em pdf para (<tt>moecke AT ifsc.edu.br</tt>), com o ASSUNTO: DLP29006 - AE1 - Temas relacionados aos DLPS - artigo.
 
{{collapse bottom}}
 
 
 
{{collapse top | expand=true| AE2 - Uso de código concorrente - ALU modificada (Prazo de entrega 30/09/2016)}}
 
*Implemente em VHDL uma Unidade de Lógica e Aritmética que tem como entrada os sinais A e B e que execute as seguintes instruções lógicas e aritméticas conforme o '''opcode''' de entrada:
 
  
;Unidade Lógica:
+
==Acesso a Nuvem do IFSC==
{| class="wikitable"  border="1" cellpadding="3" cellspacing="0" style="text-align:left; font-size:100%" bgcolor="#efefef"
+
Para uso fora do IFSC dos recursos computacionais com licença educacional, o IFSC disponibiliza para seus alunos o IFSC-CLOUD (nuvem.sj.ifsc.edu.br).  A forma mais eficiente de acesso a nuvem de fora do IFSC é através do Cliente X2GO, mas dentro da rede do IFSC o acesso pelo ssh também tem boa usabilidade.  Veja detalhes em [[Acesso ao IFSC-CLOUD (NUVEM)]].
! scope="col" width=20% align="center"| Instrução
 
! scope="col" width=20% align="center"| Operação
 
! scope="col" width=20% align="center"| opcode
 
! scope="col" width=10% align="center"| GRUPO
 
|-
 
| Complemento de A || Y = not A || 00000 || 1
 
|-
 
| Complemento de B || Y = not B || 00001 || 2
 
|-
 
| And || Y = A nand B || 00010 || 3
 
|-
 
| Nand || Y = A and B || 00011 || 4
 
|-
 
| Or || Y = A nor B || 00100 || 1
 
|-
 
| Nor || Y = A or B || 00101 || 2
 
|-
 
| Xor || Y = A xor B || 00110 || 3
 
|-
 
| Xnor || Y = A xnor B || 00111 || 4
 
|}
 
  
;Unidade Aritmética: (onde os valores de A e B podem ser positivos ou negativos)
+
Para para utilizar o Quartus/Modelsim/QSIM através da Nuvem do IFSC, siga o procedimento de '''[[Acesso_ao_IFSC-CLOUD_(NUVEM)#Procedimento_para_uso_da_nuvem.sj.ifsc.edu.br | configuração do X2Go]]''''''Nota:''' O desempenho do Modelsim pode ficar ruim quando acesso da rede externa ao IFSC.
 
 
{| class="wikitable"  border="1" cellpadding="3" cellspacing="0" style="text-align:left; font-size:100%" bgcolor="#efefef"
 
! scope="col" width=20% align="center"| Instrução
 
! scope="col" width=20% align="center"| Operação
 
! scope="col" width=20% align="center"| opcode
 
! scope="col" width=10% align="center"| GRUPO
 
|-
 
| Transfere A || Y = A || 01000 || 1
 
|-
 
| Transfere B || Y = B || 10001 || 2
 
|-
 
| complemento-2 de A || Y = -A || 01001 || 3
 
|-
 
| complemento-2 de B || Y = -B || 10001 || 4
 
|-
 
| Incrementa A || Y = A + 1 || 01010 || 1
 
|-
 
| Decrementa A || Y = A - 1 || 01011 || 2
 
|-
 
| Incrementa B || Y = B + 1 || 10010 || 3
 
|-
 
| Decrementa B || Y = B - 1 || 10011 || 4
 
|-
 
| Soma A e B|| Y = A + B || 11000 || 1,2,3,4
 
|-
 
| Subtrai B de A|| Y = A - B || 11001 || 1,3
 
|-
 
| Subtrai A de B|| Y = B - A || 11010 || 2,4
 
|-
 
| LSB da Multiplicação de A e B || Y = A * B || 11011 ||1,2
 
|-
 
| MSB da Multiplicação de A e B || Y = A * B || 11100 ||3,4
 
|-
 
| Dobra o valor A || Y = A * 2 || 01100 || 1
 
|-
 
| Dobra o valor B || Y = B * 2 || 10100 || 2
 
|-
 
| Metade do valor A || Y = A / 2 || 01101 || 3
 
|-
 
| Metade do valor A || Y = A / 2 || 10101 || 4
 
|-
 
| Divisão de A / B || Y = A / B || 11101 || 1,2,3,4
 
|-
 
| Resto da Divisão de A / B || Y = A REM B || 11110 || 1,2,3,4
 
|}
 
* A ENTITY deverá ter a seguinte interface:
 
<syntaxhighlight lang=matlab>
 
ENTITY alu IS
 
GENERIC (N: INTEGER := 4); --word bits
 
PORT (
 
A, B: IN STD_LOGIC_VECTOR(N-1 DOWNTO 0);
 
opcode: IN STD_LOGIC_VECTOR(4 DOWNTO 0);
 
Y: OUT STD_LOGIC_VECTOR(N-1 DOWNTO 0));
 
END ENTITY;
 
</syntaxhighlight>
 
* Proponha uma ARCHITECTURE que implemente a ALU (Dica: utilize o tipo de dado tipo '''integer''').
 
* Escolha no FACEBOOK um dos GRUPOS de instruções indicados pelos números 1, 2, 3 e 4 na coluna GRUPO.
 
* Na multiplicação LSB são os N bits menos significativos do resultado, e MSB são os N bits mais significativos do resultado.  Por exemplo se o resultado tem 10 bits "1001001011" MSB = "10010" e LSB = "01011".
 
* Anote o número de Elementos Lógicos (ou ALUTs) utilizados [Compilation Report > Flow Summary].
 
* Verifique o código RTL gerado [Tools > Netlist Viewers > RTL Viewer]
 
* Faça a simulação funcional no QSIM com 8 pares de valores (use os valores mínimos e máximos e outros pares de valores representáveis) e verifique se o resultado das operações está correto. Teste cada instrução (opcode) em separado.  
 
* Analise os resultados obtidos para entradas com 4 bits. Verifique os casos em que há ''overflow''.
 
* Escreva um relatório contendo o código VHDL, a figura do circuito RTL, as simulações funcionais solicitadas e uma análise dos resultados obtidos. Relate o número de elementos lógicos utilizados.
 
* Envie o artigo em '''pdf''' e o '''qar''' para (<tt>moecke AT ifsc.edu.br</tt>), com o ASSUNTO: DLP29006 - AE2 - Uso de código concorrente - ALU modificada.
 
{{collapse bottom}}
 
  
 
<!--
 
<!--
{{collapse top | expand=true | AE2 -  Operações Aritméticas Básicas em VHDL (Prazo de entrega: 2 Maio 2016)}}
+
==Modelos para relatório==
* Formar equipes com 2 ou 3 alunos.
+
Para a geração de documentação/relatórios técnicos/artigos, use como base o modelo ABNTex2 para o padrão do IFSC para monografia que segue as normas da ABNT e do IFSC.
* Escreva um código VHDL para cada uma das operações matemáticas indicadas abaixo. Para facilitar os testes, utilize como base o seguinte código, no qual é realizada o cálculo da multiplicação de números UNSIGNED de N=4 bits:
+
Recomendo que os alunos da Engenharia de Telecomunicações utilizem esse modelo e o [https://www.overleaf.com Overleafv2], pois além de possibilitar o compartilhamento do documento entre os alunos, reduz o tempo perdido na formação do documento, permitindo que o aluno já aprenda alguma formatação de Latex que será útil na elaboração do TCC.  
<syntaxhighlight lang=vhdl>
+
*[https://www.overleaf.com/read/dbjkqgsghfbk Modelo para relatório em LaTex]
LIBRARY ieee;
 
USE ieee.numeric_std.all;
 
----------------------------------------
 
ENTITY calcular IS
 
GENERIC (N: NATURAL := 4);
 
PORT (
 
a, b: IN UNSIGNED(N-1 DOWNTO 0);  -- N bits
 
y: OUT UNSIGNED(2*N-1 DOWNTO 0));  -- 2N bits
 
END ENTITY;
 
----------------------------------------
 
ARCHITECTURE arch_op OF calcular IS
 
BEGIN
 
y <= a * b;
 
END ARCHITECTURE;
 
----------------------------------------
 
</syntaxhighlight>
 
Outras operações matemáticas:
 
<code>
 
y <= a + b; -- se entrada tem N bits saída deve ter  N bits.
 
y <= a - b; -- se entrada tem N bits saída deve ter  N bits.
 
y <= a * b; -- se entrada tem N bits saída deve ter 2*N bits.
 
y <= a / b; -- se entrada tem N bits saída deve ter  N bits.
 
</syntaxhighlight>
 
* Para as operações de soma (a+b) e de multiplicação (a*b) com entradas '''SIGNED''' de 8 bits compare o hardware necessário para implementar os circuitos utilizando as seguintes famílias de FPGA [CYCLONE & STRATIX II & MAX 3000].  Utilize sempre o menor '''Device''' de cada família, que possua os elementos e pinos suficientes para o circuito proposto.
 
* Para as 4 operações compilar cada circuito utilizando N = 8, 16 e 32, e utilizando os sinais de entrada e saída do tipo SIGNED e depois também com o tipo UNSIGNED, utilizando a família de FPGA = CYCLONE.
 
* Teste cada um dos circuitos 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), multiplicadores usados, maior atraso de propagação, e 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''')
 
  
* Escreva um relatório técnico na forma de artigo com 4 a 6 paginas A4. O relatório além das tabelas com os dados, as figuras dos circuitos RTL com entrada de 8 bits (4 figuras), simulações funcionais com entrada de 8 bits (4 figuras) e uma análise textual dos resultados obtidos.  Os QAR dos projetos para SIGNED e para UNSIGNED também devem ser  enviados (2 arquivos).
+
==Links importantes (mais consultados)==
* Para a geração de documentação/relatórios técnicos/artigos, está disponibilizada a plataforma  [http://200.135.233.26:3000/project Sharelatex do IFSC-CLOUD]. Utilize preferencialmente o [http://200.135.233.26:3000/project/54750cb57ae8187440d60acd  modelo de artigo no padrão ABNT].
 
* Envie o artigo em pdf para (<tt>moecke AT ifsc.edu.br</tt>), com o ASSUNTO: DLP29006 - AE2 -  Operações Aritméticas Básicas em VHDL.
 
{{collapse bottom}}
 
 
 
{{collapse top | AE3 - Projeto Final de Hardware (prazo final 20/07/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 - Lucas, Gabriel
 
EQ2 - Maria, Helen e André
 
EQ3 - Leticia, Katharine, Kristhine
 
EQ4 - Gustavo, Tamara
 
EQ5 - Fabiano, Marcos, Iago
 
EQ6 - Anderson, Tiago / Fabiano
 
 
 
:EQ1, EQ2 - Leitor de Teclado ASCII com Debouncer; Display SSD ASCII
 
:EQ3, EQ4 - Serializador e Deserializador Assincrono
 
:EQ5, EQ6 - Codificador de linha e Decodificador decodificador (CMI,  Manchester Diferencial, (duas entre Manchester, RZ, 5B/6B, NRZI, etc)
 
*Cada projeto deverá ser implementado utilizando um kit DE2-115 ou Mercúrio IV. 
 
*Os projetos deverão ser divididos em componentes. No nível hierárquico de nível 0 (top level) será permitida apenas a instanciação de componentes.
 
:Lembre-se que as chaves push-bottom produzem repiques - [[Dicas de como eliminar o repique das chaves mecânicas]]
 
*As equipes deverão trabalhar de forma que o projeto todo possa ser integrado ao final do cronograma conforme mostrado na figura abaixo:
 
<center>[[Arquivo:ProjetoDLP1_2016_1.png | Projeto Final da Disciplina | 800 px]]</center>
 
*No mínimo os pares indicados EQ1-EQ2, EQ3-EQ4, EQ5-EQ6 deverão ser integrados.
 
*Prazos:
 
::* Definição da TOP ENTITY de cada subprojeto e integração dos componentes dos pares e projeto (29/Jun)
 
::* Desenvolvimento dos subprojetos e simulação.
 
::* Teste na placa
 
::* Integração pares (18/Jul)
 
::* Integração projeto (21/Jul)
 
::* Entrega da Documentação Final (25/Jul)
 
::* Apresentação das Equipes  (27/Jul)
 
* Os projetos/alunos serão analisados em 5 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.
 
:4 - Integração do projeto com as outras equipes.
 
:5 - Apresentação do projeto para a turma (15 minutos por equipe)
 
 
 
* Para a geração de documentação/relatórios técnicos/artigos, está disponibilizada a plataforma  [http://200.135.233.26:3000/project Sharelatex do IFSC-CLOUD]. Utilize preferencialmente o [http://200.135.233.26:3000/project/54750cb57ae8187440d60acd  modelo de artigo no padrão ABNT].  Veja também o [[Modelo para uso em relatórios]].
 
* O relatório técnico deverá:
 
: 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 usando MODELSIM, os resultados práticos, as medições feitas, os problemas encontrados resolvidos ou não.
 
* Envie o artigo em pdf para (<tt>moecke AT ifsc.edu.br</tt>), com o ASSUNTO: DLP29006 - AE3 - Projeto Final.
 
{{collapse bottom}}
 
 
 
 
 
{{collapse top | AE3 -  Unidade Aritmética em VHDL (Prazo de entrega: 20 Maio 2016)}}
 
* Formar equipes com 2 ou 3 alunos.
 
* Escreva um código VHDL que implemente uma unidade aritmética que realize as operações indicadas na tabela abaixo.
 
{| class="wikitable"  border="1" cellpadding="3" cellspacing="0" style="text-align:right; font-size:100%" bgcolor="#efefef"
 
! scope="col" width=25% align="right"| operação
 
! scope="col" width=25% align="right"| tipo dado
 
! scope="col" width=25% align="right"| OPCODE
 
|-
 
|    +a ||      -  || 0000
 
|-
 
|    -a ||  SIGNED || 0001
 
|-
 
| a + 1 || UNSIGNED || 0010
 
|-
 
| a + 1 ||  SIGNED || 0011
 
|-
 
| a - 1 || UNSIGNED || 0100
 
|-
 
| a - 1 ||  SIGNED || 0101
 
|-
 
| a + b || UNSIGNED || 0110
 
|-
 
| a + b ||  SIGNED || 0111
 
|-
 
| MSB(a * b) || UNSIGNED || 1000
 
|-
 
| MSB(a * b) ||  SIGNED || 1001
 
|-
 
| LSB(a * b) || UNSIGNED || 1010
 
|-
 
| LSB(a * b) ||  SIGNED || 1011
 
|-
 
| a / b || UNSIGNED || 1100
 
|-
 
| a / b ||  SIGNED || 1101
 
|-
 
| a REM b || UNSIGNED || 1110
 
|-
 
| a REM b ||  SIGNED || 1111
 
|}
 
:* O número de bits das entradas é N e da saída é N+1.
 
:* Para operações de soma, incremento e decremento, o bit adicional deve ser usado para evitar o ''overflow'' e ''underflow''.
 
:* Nas operações de multiplicação utilize na saída os N+1 bits mais significativos (MSB) ou N+1 menos significativos LSB do resultado da operação.
 
* Implemente o circuito utilizando a família de FPGA CYCLONE II. Utilize o menor '''Device''' que possua os elementos e pinos suficientes para o circuito proposto.
 
* Realize a simulação funcional do circuito para 4 bits de pelo menos 2 operações com tipos SIGNED e 2 UNSIGNED e confira se essas operações estão corretas.
 
* Para N = 4, 8, 16 e 32 anote em uma tabela todos os resultados de: número de pinos, número de elementos lógicos (indicando os Normais | Aritméticos), multiplicadores usados, maior atraso de propagação, e caminho crítico.
 
 
 
* Escreva um relatório técnico na forma de artigo com 4 a 6 paginas A4. O relatório além das tabelas com os dados, as figuras dos circuitos RTL com entrada de 8 bits (4 figuras), simulações funcionais com entrada de 8 bits (4 figuras) e uma análise textual dos resultados obtidos.  Envie o QAR do projeto.
 
* Envie o artigo em pdf para (<tt>moecke AT ifsc.edu.br</tt>), com o ASSUNTO: DLP29006 - AE3 -  Unidade Aritmética em VHDL.
 
{{collapse bottom}}
 
 
 
-->
 
<!--
 
{{collapse top | expand=true| AE1 - XXXX (prazo XX/XX/2016)}}
 
{{collapse bottom}}
 
-->
 
 
 
====ARTIGOS ENTREGUES====
 
;2016-2:
 
 
 
;2016-1:
 
*[[Media:DLP29006-AE1-Tema1-2016-1.pdf | Arquitetura FPGAs e CPLDs da ALTERA]] (André Felippe Weber, Helenluciany Cechinel, Maria Luiza Theisges)
 
*[[Media:DLP29006-AE1-Tema2-2016-1.pdf | Aplicações de FPGA em Robótica]] (Letícia Aparecida Coelho, Katharine Schaeffer Fertig, Kristhine Schaeffer Fertig)
 
*[[Media:DLP29006-AE1-Tema3-2016-1.pdf | FPGA aplicado a aviônica: Problemas e soluções]] (Gabriel Cantu, Lucas Lucindo, Thiago Grisolfi)
 
*[[Media:DLP29006-AE1-Tema4-2016-1.pdf | Aplicações na Área Espacial]] (Marcos Vinicios Pinho, Fabiano Kraeamer, Iago Soares)
 
*[[Media:DLP29006-AE1-Tema5-2016-1.pdf | Arquitetura FPGAs e CPLDs da XILINK]] (Anderson Demetrio, Gustavo Constante, Tamara Arrigoni)
 
 
 
;2015-2:
 
*[[Media:DLP29006-AE1-Tema1-2015-2.pdf | DLPs: passado, presente e futuro]] (Walter Cardoso de Freitas Júnior, Gustavo Vieira Zacchi, Giulio Oliveira)
 
*[[Media:DLP29006-AE1-Tema2-2015-2.pdf | Transitores CMOS, história e tecnologia]] (Fernando Müller da Silva, Gustavo Paulo Medeiros da Silva)
 
*[[Media:DLP29006-AE1-Tema3-2015-2.pdf | Linguagens de Descrição de Hardware: Tipos e Características]] (João Vitor Rodrigues, Marcus Vinicius Bunn)
 
*[[Media:DLP29006-AE1-Tema4-2015-2.pdf | Fabricantes e ferramentas para programação de DLPs]] (Ronaldo João Borges, Roicenir Girardi Rostirolla)
 
*[[Media:DLP29006-AE1-Tema5-2015-2.pdf | Interface JTAG]] (Stephany Padilha Guimarães, Lucas Gomes de Farias, Vinicius Bandeira)
 
 
 
;2015-1:
 
*[[Media:Formas como PLDs são Programados.pdf | Formas como PLDs são Programados]]
 
*[[Media:EPROM - EEPROM Dispositivos Lógicos Programáveis.pdf | EPROM - EEPROM Dispositivos Lógicos Programáveis]]
 
*[[Media:Aplicações de antifusíveis e PROMs na programação de PDLs.pdf | Aplicações de antifusíveis e PROMs na programação de PDLs]]
 
 
 
====ESTUDOS SEM ENTREGA DE DOCUMENTAÇÃO====
 
Os exemplos e exercícios essenciais estão destacados em negrito na listagens abaixo.
 
 
 
<!--
 
{{collapse top | EL1 - Resolução dos exercícios do Cap 2}}
 
*Resolva os exercícios do capítulo 2 (1, 2, 3) pag. 28 a 30
 
;Exercise 2.1: Multiplexer:
 
 
 
*Complete o código VHDL abaixo para que ele seja correspondente a um multiplexador que selecione a entrada A quando sel ="01", B quando sel ="10", coloque "0...0" na saída quando sel ="00" e mantenha a saída em alta impedância "Z...Z" quando sel="11".
 
::*Compile o código e em seguida faça a simulação, para verificar se o circuito funciona conforme
 
especificado. 
 
::*Anote as mensagens de warning do compilador.
 
 
 
<syntaxhighlight lang=vhdl>
 
---------------------------------------
 
-- File: mux.vdh
 
---------------------------------------
 
-- Declaração das Bibliotecas e Pacotes
 
--
 
LIBRARY ieee;
 
USE _________________________ ;
 
 
 
---------------------------------------
 
-- Especificação das entradas e saídas e nome da ENTITY
 
ENTITY mux IS
 
  PORT (
 
  __ , __ : ___ STD_LOGIC_VECTOR (7 DOWNTO 0);
 
  sel : IN ____________________________ ;
 
  ___ : OUT STD_LOGIC_VECTOR (7 DOWNTO 0));
 
END _____ ;
 
---------------------------------------
 
ARCHITECTURE example OF _____ IS
 
BEGIN
 
  PROCESS (a, b, ____ )
 
  BEGIN
 
    IF (sel = "00") THEN
 
      c <= "00000000";
 
    ELSIF (__________) THEN
 
      c <= a;
 
    _____ (sel = "10") THEN
 
      c <= __;
 
    ELSE
 
      c <= (OTHERS => '__');
 
    END ___ ;
 
  END _________ ;
 
END _________ ;
 
---------------------------------------
 
</syntaxhighlight>
 
{{collapse bottom}}
 
 
 
{{collapse top | EL2 - 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
 
{{collapse bottom}}
 
 
 
{{collapse top | EL3 -  Conversor de Binário para BCD}}
 
*Considere um número decimal entre 0000 e 9999.  Usando operadores predefinidos, obtenha na saída os digitos decimais separados. 
 
:*Escreva o código VHDL e analise o número de elementos lógicos necessários. 
 
:*Faça a simulação funcional do circuito.
 
<center> [[Arquivo:tb_bin2bcd.jpg]]<br> '''Fig. 20 - Simulação da conversão de binário para BCD''' </center>
 
:*Compare sua implementação com os outros estudantes e analise as diferenças, observe o código RTL, o número de elementos lógicos e também o tempo de propagação.
 
::Para separar os dígitos decimais do número de entrada pense nos operadores de "+", "-", "*", "/", "REM" e "MOD".
 
::Para facilitar os testes e a troca de informações entre as equipes, a ENTITY deverá ter o seguinte formato:
 
<syntaxhighlight lang=vhdl>
 
entity bin2bcd is
 
port (
 
X_bin         : in std_logic_vector(13 downto 0);  --  0000 a 9999
 
M_bcd : out std_logic_vector(3 downto 0);  --  Milhar
 
C_bcd : out std_logic_vector(3 downto 0);  --  Centena
 
D_bcd : out std_logic_vector(3 downto 0);  --  Dezena
 
U_bcd : out std_logic_vector(3 downto 0)); --  Unidade
 
 
 
end entity;
 
 
 
architecture example of bin2bcd is
 
--declaração de sinais auxiliares
 
 
 
begin
 
--descrição do hardware
 
 
 
end architecture;
 
</syntaxhighlight>
 
:: Note que com ''X_bin'' 14 bits é possível representar números sem sinal entre ''0'' e <math> 2^{14}-1 </math>.  No entanto, os testes devem ser limitados a números entre 0000 e 9990, pois não há especificação para valores maiores que 9999.
 
:: Existe um algoritmo [https://en.wikipedia.org/wiki/Double_dabble Double Dabble] que possibilita fazer essa conversão com menos hardware.
 
::Dica para converter de INTEGER para STD_LOGIC_VECTOR de 4 bits.
 
M_bcd <= std_logic_vector(to_unsigned(M,4));
 
{{collapse bottom}}
 
 
 
{{collapse top | EL4 - 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
 
{{collapse bottom}}
 
 
 
{{collapse top | EL5 - 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
 
{{collapse bottom}}
 
 
 
{{collapse top | EL6 - 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''', '''15''') pag. 172 a 176.
 
{{collapse bottom}}
 
 
 
{{collapse top | EL7 - Resolução dos exercícios do Cap 8 e 9}}
 
*Resolva os exercícios da capítulo 8 (1-7, 9*) pag. 219 a 220.
 
*Resolva os exercícios da capítulo 9 (1-3, 6-9) pag. 238 a 239.
 
{{collapse bottom}}
 
-->
 
 
 
==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  [http://200.135.233.32 Sharelatex do IFSC-CLOUD]. Utilize preferencialmente o [http://200.135.233.26:3000/project/54750cb57ae8187440d60acd  modelo de artigo no padrão ABNT].
 
 
<!--
 
*[http://wiki.sj.ifsc.edu.br/images/a/a5/Sst-intro.pdf Aula inicial]
 
*[[Introdução aos dispositivos lógicos programáveis]]
 
*[[Introdução à tecnologia FPGA ]]
 
*[[Introdução a linguagem VHDL]]
 
 
*[[Aritmética com vetores em VDHL]]
 
*[[Aritmética com vetores em VDHL]]
 
+
*[[Preparando para gravar o circuito lógico no FPGA]]
*[[Códigos VDHL - DLP]]
+
*[[Criação de um acesso remoto ao kit MERCURIO IV]]
*[[Códigos VHDL para uso nas Aulas]]
+
*[[Dicas de como eliminar o repique das chaves mecânicas]]
*[[Códigos VHDL para uso nas Aulas 2011-1]]
+
*[[Medição de tempos de propagação em circuitos combinacionais]]
-->
+
*[[Restringir a frequencia máxima de clock no Quartus II]]
 +
*[[Acesso ao IFSC-CLOUD (NUVEM)]]
 +
*[[Linguagem_.dot#Como_gerar_o_diagrama_de_uma_maquina_de_estados_finita_em_linguagem_dot |Gerar o diagrama de uma maquina de estados finita em linguagem dot]]
 +
*[[Mensagens de Erros e Warnings do Quartus II]]
  
 
==Links auxiliares==
 
==Links auxiliares==
*[[Aritmética com vetores em VDHL]]
+
*[[Media:Quartus_II_Simulation.pdf | Tutorial do QSIM - Introduction to Simulation of VHDL Designs]] da ALTERA.
*[[Preparando para gravar o circuito lógico no FPGA]]
 
 
*[[Palavras reservadas do VHDL]]
 
*[[Palavras reservadas do VHDL]]
*[[Dicas de como eliminar o repique das chaves mecânicas]]
+
*[http://web.archive.org/web/20160313200350/http://vhdl.org/fphdl/index.html VHDL-2008 Support Library]
 
*[[Dicas para resolver ERROS de síntese do VHDL no Quartus II]]
 
*[[Dicas para resolver ERROS de síntese do VHDL no Quartus II]]
 
*[ftp://ftp.altera.com/up/pub/Altera_Material/13.1/Tutorials/VHDL/ Materiais da ALTERA para Quartus II 13.1]
 
*[ftp://ftp.altera.com/up/pub/Altera_Material/13.1/Tutorials/VHDL/ Materiais da ALTERA para Quartus II 13.1]
Linha 895: Linha 59:
 
*[[Configuração e uso do Time Quest Analyser]]
 
*[[Configuração e uso do Time Quest Analyser]]
 
*[[Configuração e uso do Signal Tap]]
 
*[[Configuração e uso do Signal Tap]]
*[[DLP29006-Engtelecom(2015-1) - Prof. Marcos Moecke]]
+
*[http://docente.ifsc.edu.br/moecke/PAGES/Dec2C_2.html Calculadora de Complemento de 2]
*[[DLP29006-Engtelecom(2015-2) - Prof. Marcos Moecke]]
+
*[[Como utilizar a matriz de leds do kit Mercurio IV da Macnica]]
*[[DLP29006-Engtelecom(2016-1) - Prof. Marcos Moecke]]
+
*[http://g2384.github.io/work/VHDLformatter.html VHDL Beautifier, Formatter] - para identar automaticamente um código VHDL.
<!--
+
*[https://www.youtube.com/watch?v=08YHxtSI3Bk How to create a State Machine with the Quartus State Machine Wizard]
*PS2 Interface
+
*[https://trends.google.com.br/trends/explore?date=today%205-y&q=vhdl,verilog Veja qual é a tendencia mundial em relação as linguagens HDL]
:*[http://www.quadibloc.com/comp/scan.htm Scan Codes Demystified]
+
*[https://www.intel.com/content/www/us/en/programmable/documentation/spj1513986956763.html Intel Quartus Prime Pro Edition User Guide: Getting Started]
:*Keyboard Scan Codes [http://www.computer-engineering.org/ps2keyboard/scancodes1.html Set 1], [http://www.computer-engineering.org/ps2keyboard/scancodes2.html Set 2], [http://www.computer-engineering.org/ps2keyboard/scancodes3.html Set 3]
+
*[https://www.h-schmidt.net/FloatConverter/IEEE754.html IEEE 754 - Floating point number]
:*[https://en.wikipedia.org/wiki/Keyboard_layout Keyboard layout]
+
*[https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/an/an447.pdf AN 447: Interfacing Intel® FPGA Devices with 3.3/3.0/2.5 V LVTTL/LVCMOS I/O Systems]
:*[http://www.computer-engineering.org/ps2protocol/ PS2 Protocol], [http://retired.beyondlogic.org/keyboard/keybrd.htm]
 
-->
 
  
 
==Livros/Resumos sobre VHDL==
 
==Livros/Resumos sobre VHDL==
Linha 913: Linha 75:
 
*[[Media:VHDL1164_QRC-Qualis.pdf | VHDL 1164 PACKAGES QUICK REFERENCE CARD]] - Qualis (r2.2)
 
*[[Media:VHDL1164_QRC-Qualis.pdf | VHDL 1164 PACKAGES QUICK REFERENCE CARD]] - Qualis (r2.2)
 
*[http://www.ics.uci.edu/~jmoorkan/vhdlref/ VDHL ref]
 
*[http://www.ics.uci.edu/~jmoorkan/vhdlref/ VDHL ref]
 +
*[http://www.vhdl.renerta.com/source/vhd00000.htm VHDL Language Reference Guide]
 
*[http://www.ics.uci.edu/~jmoorkan/vhdlref/vhdl_golden_reference_guide.pdf VHDL Golden Reference Guide]
 
*[http://www.ics.uci.edu/~jmoorkan/vhdlref/vhdl_golden_reference_guide.pdf VHDL Golden Reference Guide]
 
*[http://www.cs.umbc.edu/portal/help/VHDL/stdpkg.html Listagem dos packages]
 
*[http://www.cs.umbc.edu/portal/help/VHDL/stdpkg.html Listagem dos packages]
Linha 918: Linha 81:
 
*[http://www.csee.umbc.edu/portal/help/VHDL/attribute.html Atributos predefinidos]
 
*[http://www.csee.umbc.edu/portal/help/VHDL/attribute.html Atributos predefinidos]
 
*[https://blog.ufes.br/sistemasembarcados/files/2015/03/aritmetica-em-vhdl.pdf Aritmética em VHDL]
 
*[https://blog.ufes.br/sistemasembarcados/files/2015/03/aritmetica-em-vhdl.pdf Aritmética em VHDL]
 +
*[https://wiki.kip.uni-heidelberg.de/KIPwiki/images/d/d7/VHDL_Language_Reference_Guide_(help_file).pdf VHDL Language Reference Guide]
  
==Packages não padronizados==
+
==Packages não padronizados de VHDL==
 
*[[Std logic arith.vhd]] by Synopsys
 
*[[Std logic arith.vhd]] by Synopsys
 
*[http://eda.org/rassp/vhdl/models/standards/std_logic_arith.vhd std_logic_arith.vhd] by Synopsys
 
*[http://eda.org/rassp/vhdl/models/standards/std_logic_arith.vhd std_logic_arith.vhd] by Synopsys
Linha 927: Linha 91:
 
*[[Std logic unsigned.vdh]] by Synopsys
 
*[[Std logic unsigned.vdh]] by Synopsys
 
*[http://eda.org/rassp/vhdl/models/standards/std_logic_unsigned.vhd std_logic_unsigned.vhd] by Synopsys
 
*[http://eda.org/rassp/vhdl/models/standards/std_logic_unsigned.vhd std_logic_unsigned.vhd] by Synopsys
 +
 +
==Quartus II==
 +
*[https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/manual/TclScriptRefMnl.pdf Quartus II Scripting Reference Manual], ver como programar o FPGA sem interface gráfica com quartus_pgm
 +
*[[Como instalar o Quartus no Ubuntu 20.04]]
 +
*[https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/qts/archives/quartusii_handbook_archive_131.pdf Quartus II Handbook Version 13.1]
  
 
==Simulador Modelsim==
 
==Simulador Modelsim==
Linha 958: Linha 127:
 
*[https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/Catapult_ISCA_2014.pdf A Reconfigurable Fabric for Accelerating Large-Scale Datacenter Services], Microsoft.
 
*[https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/Catapult_ISCA_2014.pdf A Reconfigurable Fabric for Accelerating Large-Scale Datacenter Services], Microsoft.
  
<!--
 
 
===Linguagens de programação de hardware===
 
===Linguagens de programação de hardware===
 
*[http://trends.google.com/trends/explore#q=vhdl,verilog Tendência Google]
 
*[http://trends.google.com/trends/explore#q=vhdl,verilog Tendência Google]
Linha 993: Linha 161:
 
*Motorola
 
*Motorola
 
*[http://www.analog.com/en/embedded-processing-dsp/processors/index.html Analog Devices]
 
*[http://www.analog.com/en/embedded-processing-dsp/processors/index.html Analog Devices]
-->
 
  
 
==Padrões IEEE para o VDHL==
 
==Padrões IEEE para o VDHL==
Os padrões IEEE [http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/xpl/standards.jsp?item=0%20-%2099&sortType=standard_newest&pageNumber=1]estão disponíveis para consulta se você estiver na rede do IFSC. Para a linguagem VHDL consulte os padrões: [http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/search/searchresult.jsp?action=search&sortType=&rowsPerPage=&searchField=Search_All&matchBoolean=true&queryText=(%22Standard%20Number%22:1164) 1164],[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/search/searchresult.jsp?action=search&sortType=&rowsPerPage=&searchField=Search_All&matchBoolean=true&queryText=(%22Standard%20Number%22:1076)&refinements=4294967269 1076]
+
Os padrões IEEE [http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/xpl/standards.jsp?item=0%20-%2099&sortType=standard_newest&pageNumber=1]estão disponíveis para consulta se você estiver na rede do IFSC ou através do '''Periódicos CAPES via CAFE'''. Para a linguagem VHDL consulte os padrões de [https://ieeexplore-ieee-org.ez130.periodicos.capes.gov.br/browse/standards/collection/ieee?queryText=VHDL) VHDL]
 
*[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/xpl/articleDetails.jsp?arnumber=257627&newsearch=true&queryText=IEEE%20Standard%20Multivalue%20Logic%20System%20for%20VHDL%20Model%20Interoperability%20.LB.Std_logic_1164.RB. IEEE Standard Multivalue Logic System for VHDL Model Interoperability (Std_logic_1164)]
 
*[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/xpl/articleDetails.jsp?arnumber=257627&newsearch=true&queryText=IEEE%20Standard%20Multivalue%20Logic%20System%20for%20VHDL%20Model%20Interoperability%20.LB.Std_logic_1164.RB. IEEE Standard Multivalue Logic System for VHDL Model Interoperability (Std_logic_1164)]
 
*[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/xpl/articleDetails.jsp?arnumber=5967868&newsearch=true&queryText=IEEE%20Std%201076.1:%20Behavioural%20languages%20%E2%80%93%20Part%201-1:%20VHDL%20language%20reference%20manual IEEE Std 1076.1: Behavioural languages – Part 1-1: VHDL language reference manual]  
 
*[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/xpl/articleDetails.jsp?arnumber=5967868&newsearch=true&queryText=IEEE%20Std%201076.1:%20Behavioural%20languages%20%E2%80%93%20Part%201-1:%20VHDL%20language%20reference%20manual IEEE Std 1076.1: Behavioural languages – Part 1-1: VHDL language reference manual]  
Linha 1 004: Linha 171:
 
*[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=4384309 IEEE Standard VHDL Analog and Mixed-Signal Extensions]
 
*[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=4384309 IEEE Standard VHDL Analog and Mixed-Signal Extensions]
 
*[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=592543 IEEE Standard VHDL Synthesis Packages]
 
*[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=592543 IEEE Standard VHDL Synthesis Packages]
*[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=1003477 IEEE Std 1076-2002: IEEE Standard VHDL Language Reference Manual]
+
*[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=1003477 IEEE Std 1076-2002: IEEE Standard VHDL Language Reference Manual], ver mais rescentes [IEEE 1076-2008 - IEEE Standard VHDL Language Reference Manual]  e [IEEE 1076-2019 - IEEE Standard for VHDL Language Reference Manual]
 
*[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=556551  IEEE Std 1076.2-1996:  IEEE Standard VHDL Mathematical Packages]
 
*[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=556551  IEEE Std 1076.2-1996:  IEEE Standard VHDL Mathematical Packages]
===Packages da IEEE===
+
;Packages da IEEE:
 
*[[Std logic 1164.vhd]]
 
*[[Std logic 1164.vhd]]
 
*[[Numeric std.vhd]]
 
*[[Numeric std.vhd]]
 +
-->
 +
 +
==Registro Diário e Avaliação Anteriores==
 +
[https://wiki.sj.ifsc.edu.br/index.php?title=DLP29006-Engtelecom_(Di%C3%A1rio)_-_Prof._Marcos_Moecke&oldid=188893  2023-1], [https://wiki.sj.ifsc.edu.br/index.php?title=DLP29006-Engtelecom_(Di%C3%A1rio)_-_Prof._Marcos_Moecke&oldid=186913  2022-2],
 +
[https://wiki.sj.ifsc.edu.br/index.php?title=DLP29006-Engtelecom_(Di%C3%A1rio)_-_Prof._Marcos_Moecke&oldid=184068  2022-1],
 +
[https://wiki.sj.ifsc.edu.br/index.php?title=DLP29006-Engtelecom_(Di%C3%A1rio)_-_Prof._Marcos_Moecke&oldid=182146  2021-2],
 +
[[DLP29006-Engtelecom(2021-1) - Prof. Marcos Moecke |  2021-1]],
 +
[[DLP29006-Engtelecom(2020-2) - Prof. Marcos Moecke |  2020-2]],
 +
[[DLP29006-Engtelecom(2020-1) - Prof. Marcos Moecke |  2020-1]],
 +
[[DLP29006-Engtelecom(2019-2) - Prof. Marcos Moecke |  2019-2]],
 +
[[DLP29006-Engtelecom(2019-1) - Prof. Marcos Moecke |  2019-1]],
 +
[[DLP29006-Engtelecom(2018-2) - Prof. Marcos Moecke |  2018-2]],
 +
[[DLP29006-Engtelecom(2018-1) - Prof. Marcos Moecke |  2018-1]],
 +
[[DLP29006-Engtelecom(2017-2) - Prof. Marcos Moecke |  2017-2]],
 +
[[DLP29006-Engtelecom(2017-1) - Prof. Marcos Moecke |  2017-1]],
 +
[[DLP29006-Engtelecom(2016-2) - Prof. Marcos Moecke |  2016-2]],
 +
[[DLP29006-Engtelecom(2016-1) - Prof. Marcos Moecke |  2016-1]],
 +
[[DLP29006-Engtelecom(2015-2) - Prof. Marcos Moecke |  2015-2]],
 +
[[DLP29006-Engtelecom(2015-1) - Prof. Marcos Moecke |  2015-1]].
  
 
==Referências Bibliográficas:==
 
==Referências Bibliográficas:==

Edição atual tal como às 21h51min de 26 de julho de 2023

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


Avisos importantes

  • Nesta página wiki, você tem orientações para uso de ferramentas e também links que auxiliam no estudo da disciplina. Visite os links sempre que solicitado e lei essa página para lembrar futuramente onde estão as informações que necessita.

Recursos de Laboratório

Nos laboratórios do IFSC, os softwares Quartus e Modelsim estão disponíveis diretamente na plataforma LINUX. O laboratório também dispõe de diversos kits FPGA que podem ser programados para testar os sistemas implementados.

Acesso a Nuvem do IFSC

Para uso fora do IFSC dos recursos computacionais com licença educacional, o IFSC disponibiliza para seus alunos o IFSC-CLOUD (nuvem.sj.ifsc.edu.br). A forma mais eficiente de acesso a nuvem de fora do IFSC é através do Cliente X2GO, mas dentro da rede do IFSC o acesso pelo ssh também tem boa usabilidade. Veja detalhes em Acesso ao IFSC-CLOUD (NUVEM).

Para para utilizar o Quartus/Modelsim/QSIM através da Nuvem do IFSC, siga o procedimento de configuração do X2Go. Nota: O desempenho do Modelsim pode ficar ruim quando acesso da rede externa ao IFSC.


Registro Diário e Avaliação Anteriores

2023-1, 2022-2, 2022-1, 2021-2, 2021-1, 2020-2, 2020-1, 2019-2, 2019-1, 2018-2, 2018-1, 2017-2, 2017-1, 2016-2, 2016-1, 2015-2, 2015-1.

Referências Bibliográficas:



Curso de Engenharia de Telecomunicações