Mudanças entre as edições de "DLP29007-Engtelecom(2017-2) - Prof. Marcos Moecke"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 29: Linha 29:
 
::Ver pag. 163 a 211 de <ref name="PONG2006a" />
 
::Ver pag. 163 a 211 de <ref name="PONG2006a" />
 
::Ver também os slides [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture03-efficient_comb_circuits.pdf Unidade  3: Eficiência de Circuitos Combinacionais]
 
::Ver também os slides [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture03-efficient_comb_circuits.pdf Unidade  3: Eficiência de Circuitos Combinacionais]
 
 
<!--
 
;Aula 12 (4 Abr) - Marcos:
 
* Eficiência de Circuitos Combinacionais
 
 
:* Comparação de circuitos somadores de M entradas de N bits.  Comparar a implementação em árvore x cadeia.  Experimente utilizando tipos Integer e/ou (un)signed.  Utilize como base os circuitos dos Exercícios 7.15 e 7.18 <ref name="PONG2006a" />, nos quais são mostradas implementações de portas XOR. O objetivo desse tópico é realizar medições de tempo, e mudar o desempenho do projeto seja mudando o código ou usando '''LogicLock''' ou restrições de tempo.
 
:* Comparação de circuitos somadores de M entradas de N bits.  Comparar a implementação em árvore x cadeia.  Experimente utilizando tipos Integer e/ou (un)signed.  Utilize como base os circuitos dos Exercícios 7.15 e 7.18 <ref name="PONG2006a" />, nos quais são mostradas implementações de portas XOR. O objetivo desse tópico é realizar medições de tempo, e mudar o desempenho do projeto seja mudando o código ou usando '''LogicLock''' ou restrições de tempo.
 
::*Ver [[Medição de tempos de propagação em circuitos combinacionais]]
 
::*Ver [[Medição de tempos de propagação em circuitos combinacionais]]
::*Ver [http://quartushelp.altera.com/15.0/mergedProjects/optimize/ace/acv_view_acv_overview.htm About the Chip Planner]
 
::*Ver [[Uso de Logic Lock para definir a área a ser ocupada pelo circuito | Uso de LogicLock para definir a área a ser ocupada pelo circuito]]
 
::*Ver [[Uso de restrições de tempo e exceções no projeto]]
 
::*Ver [http://quartushelp.altera.com/15.0/mergedProjects/comp/increment/comp_view_qid.htm About Incremental Compilation]
 
:* Exercício:  Verificar os tempos de propagação do caminho crítico nos somadores implementados usando FPGA da familia Ciclone e Ciclone IV E, Considerando um circuito com 8 entradas de 12 bits.
 
::*Sem usar LogicLock anote os resultados.  Observe a disposição dos elementos lógicos no '''Chip Planner'''.
 
::*Usando o LogicLock, selecione uma região qualquer do chip para implementar o circuito, e faça a compilação do circuito. Use regiões na Vertical, na Horizontal e Retangular e anote os resultados.
 
::*Anote em um tabela o número de Elementos lógicos (Totais|Normais|Aritméticos), o tempo de propagação do caminho crítico, indicando a origem e destino dele. Desconsidere os dois primeiros e dois últimos tempos indicados no '''Path Report''', pois são referentes a entrada do sinal e saída dos sinais até a região de interesse no FPGA.
 
::*Sem usar LogicLock, insira um arquivo de restrição SDC com a restrição (set_max_delay -from a* -to y* T), onde T é o atraso maximo entre as entradas a* até as saídas y*. Procure obter tempos de atraso menores que os anteriores. 
 
::*Experimente aumentar os tempos de atraso usando  (set_min_delay -from a* -to y* T). 
 
::*Compare seus resultados com o dos colegas que escolheram outras regiões do chip.
 
  
 
==Unidade 4==
 
==Unidade 4==
;Aula 13 (11 Abr) - Marcos:
+
;Aula 10 (11 Set):
 
* Eficiência de Circuitos Sequenciais
 
* Eficiência de Circuitos Sequenciais
 
:* Tipos de Sincronismo em circuitos (globalmente síncronos, localmente síncronos, assíncronos)
 
:* Tipos de Sincronismo em circuitos (globalmente síncronos, localmente síncronos, assíncronos)
Linha 119: Linha 103:
 
::Ver pag. 213 a 239 de <ref name="PONG2006a" />
 
::Ver pag. 213 a 239 de <ref name="PONG2006a" />
  
 +
;Aula 11 (12 Set):
 
* Eficiência de Circuitos Sequenciais
 
* Eficiência de Circuitos Sequenciais
 
:* Analise Temporal
 
:* Analise Temporal
Linha 128: Linha 113:
 
::Ver [http://www.altera.com/support/support-resources/design-examples/design-software/timequest/clocking/tq-clock.html TimeQuest Clock Analysis]
 
::Ver [http://www.altera.com/support/support-resources/design-examples/design-software/timequest/clocking/tq-clock.html TimeQuest Clock Analysis]
  
;Aula 14 (12 Abr) - Marcos:
+
;Aula 12 (18 Set):
 
* Eficiência de Circuitos Sequenciais
 
* Eficiência de Circuitos Sequenciais
 
:*Praticas deficientes de projeto e soluções:
 
:*Praticas deficientes de projeto e soluções:
Linha 174: Linha 159:
 
*Ver pag. 257 a 274 de <ref name="PONG2006a" />
 
*Ver pag. 257 a 274 de <ref name="PONG2006a" />
 
*Ver também os slides [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture05-sequetial_circuit_design.pdf Lecture 05: Design of Sequential Circuits: Practice]
 
*Ver também os slides [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture05-sequetial_circuit_design.pdf Lecture 05: Design of Sequential Circuits: Practice]
 
;Aula 15 (18 Abr) - Marcos:
 
 
* Eficiência de Circuitos Sequenciais
 
* Eficiência de Circuitos Sequenciais
 
:* Modulação por largura de pulso (PWM)
 
:* Modulação por largura de pulso (PWM)
Linha 189: Linha 172:
 
Figura 4.2 - PWM com buffer de saída - não tem ''gliches'' na saída.
 
Figura 4.2 - PWM com buffer de saída - não tem ''gliches'' na saída.
 
</center>
 
</center>
 +
 +
<!--
 +
;Aula 12 (4 Abr) - Marcos:
 +
* Eficiência de Circuitos Combinacionais
 +
:* Comparação de circuitos somadores de M entradas de N bits.  Comparar a implementação em árvore x cadeia.  Experimente utilizando tipos Integer e/ou (un)signed.  Utilize como base os circuitos dos Exercícios 7.15 e 7.18 <ref name="PONG2006a" />, nos quais são mostradas implementações de portas XOR. O objetivo desse tópico é realizar medições de tempo, e mudar o desempenho do projeto seja mudando o código ou usando '''LogicLock''' ou restrições de tempo.
 +
::*Ver [[Medição de tempos de propagação em circuitos combinacionais]]
 +
::*Ver [http://quartushelp.altera.com/15.0/mergedProjects/optimize/ace/acv_view_acv_overview.htm About the Chip Planner]
 +
::*Ver [[Uso de Logic Lock para definir a área a ser ocupada pelo circuito | Uso de LogicLock para definir a área a ser ocupada pelo circuito]]
 +
::*Ver [[Uso de restrições de tempo e exceções no projeto]]
 +
::*Ver [http://quartushelp.altera.com/15.0/mergedProjects/comp/increment/comp_view_qid.htm About Incremental Compilation]
 +
:* Exercício:  Verificar os tempos de propagação do caminho crítico nos somadores implementados usando FPGA da familia Ciclone e Ciclone IV E, Considerando um circuito com 8 entradas de 12 bits.
 +
::*Sem usar LogicLock anote os resultados.  Observe a disposição dos elementos lógicos no '''Chip Planner'''.
 +
::*Usando o LogicLock, selecione uma região qualquer do chip para implementar o circuito, e faça a compilação do circuito. Use regiões na Vertical, na Horizontal e Retangular e anote os resultados.
 +
::*Anote em um tabela o número de Elementos lógicos (Totais|Normais|Aritméticos), o tempo de propagação do caminho crítico, indicando a origem e destino dele. Desconsidere os dois primeiros e dois últimos tempos indicados no '''Path Report''', pois são referentes a entrada do sinal e saída dos sinais até a região de interesse no FPGA.
 +
::*Sem usar LogicLock, insira um arquivo de restrição SDC com a restrição (set_max_delay -from a* -to y* T), onde T é o atraso maximo entre as entradas a* até as saídas y*. Procure obter tempos de atraso menores que os anteriores. 
 +
::*Experimente aumentar os tempos de atraso usando  (set_min_delay -from a* -to y* T). 
 +
::*Compare seus resultados com o dos colegas que escolheram outras regiões do chip.
 +
 +
 +
 +
 +
;Aula 15 (18 Abr) - Marcos:
 +
 
:*Uso de registradores como armazenamento temporário - Vetor de registradores.
 
:*Uso de registradores como armazenamento temporário - Vetor de registradores.
 
:*FIFO (''First In First Out'') baseada em vetor de registradores.
 
:*FIFO (''First In First Out'') baseada em vetor de registradores.

Edição das 13h30min de 18 de setembro de 2017

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


Unidade 1

Aula 6 e 7 (22 e 29 Ago)
  • Processo de Síntese do código VDHL
  • Limitações dos softwares de EDA: Computabilidade, Complexidade Computacional
  • Realização dos operadores VHDL: simplificações para operando constante
  • Realização dos tipos de dados: Alta impedância 'Z' -> buffer tri-state;
  • Realização dos tipos de dados: uso de don't care '-'
  • Tempos de propagação, caminho crítico, caminho falso,
  • Síntese com restrições temporais,
  • Perigos/Armadilhas (Glitches estáticos e dinâmicos, circuitos sensíveis ao atraso)
Ver pag. 125 a 162 de [1]
Ver também os slides Unidade 2: Processo de Síntese do código VDHL
Ver IO -features: Programmable Delay Uso dos atrasos programáveis nos pinos programáveis de I/O

Unidade 3

Aula 8 e 9 (4 e 5 Set)
  • Eficiência de Circuitos Combinacionais
  • Compartilhamento de Operadores (Ex: 7.2.1, 7.2.2, 7.2.3, 7.2.4)
  • Compartilhamento de funcionalidades (Ex: L7.1, L7.2, L7.3, L7.4, L7.5)
  • Análise da área (Elementos Lógicos) x tempo de propagação.
  • Questões relacionadas com o Leiaute do circuito
  • Exemplos de circuitos XOR; (Ex: L7.15 - 7.18 e 7.19 - 7.23)
  • Exemplos de Deslocador (rotate_right) (Ex: L7.27, 7.28)
  • Exemplos de Deslocador (three-function) (Ex: L7.13, 7.14, 7.29)
  • Exemplos de Multiplicadores (Ex: L7.34* ,L7.34, 7.35) * soma em cascata
Ver pag. 163 a 211 de [1]
Ver também os slides Unidade 3: Eficiência de Circuitos Combinacionais
  • Comparação de circuitos somadores de M entradas de N bits. Comparar a implementação em árvore x cadeia. Experimente utilizando tipos Integer e/ou (un)signed. Utilize como base os circuitos dos Exercícios 7.15 e 7.18 [1], nos quais são mostradas implementações de portas XOR. O objetivo desse tópico é realizar medições de tempo, e mudar o desempenho do projeto seja mudando o código ou usando LogicLock ou restrições de tempo.

Unidade 4

Aula 10 (11 Set)
  • Eficiência de Circuitos Sequenciais
  • Tipos de Sincronismo em circuitos (globalmente síncronos, localmente síncronos, assíncronos)
  • Circuitos síncronos (Modelo, vantagens e tipos)
  • Descrição dos elementos básicos de memória (Latch D, Flip Flop D, Registros)
  • Projetos síncronos.
Modelo em VHDL de projeto síncrono
-- Declaração das bibliotecas e pacotes a serem utilizados
library ieee;
use ieee.std_logic_1164.all;

entity nome_entidade is
-- Declaração dos valores GENERIC
   generic(
      ___: Natural := ___;
      ...
   );
-- Declaração das portas de entradas e saída
   port(
-- Declaração dos sinais de clock e reset assincrono
      clk, reset: in std_logic;
-- Declaração das demais portas de entradas isoladas e barramentos
      ___: in std_logic;
      ___: in std_logic_vector(__ downto 0);
      ...

-- Declaração das portas de saídas isoladas e barramentos
      ___: out std_logic;
      ___: out std_logic_vector(__ downto 0);
      ...
   );
end entity;

architecture nome_architetura of nome_entidade is
-- Declaração das entradas e saídas dos registros
   signal ___reg: std_logic_vector(___ downto 0);
   signal ___next: std_logic_vector(___ downto 0);
-- Declaração dos demais sinais internos
   ...

begin
-- Descrição da lógica sequencial registro
   process(clk,reset)
   begin
      if (reset='1') then
         ___reg <= (others=>'0');
         ...
      elsif (clk'event and clk='1') then
         ___reg <= ___next;
         ...
      end if;
   end process;

-- Descrição da lógica combinacional de próximo estado
   ...
   ...
-- Descrição da lógica combinacional dos circuitos de saída
   ...
   ...

end architecture;
  • Exemplo de FF D com enable;
  • Exemplo de FF T;
  • Exemplos de registrador de deslocamento;
  • Exemplos de contador modulo m;
Ver pag. 213 a 239 de [1]
Aula 11 (12 Set)
  • Eficiência de Circuitos Sequenciais
  • Analise Temporal
  • Violação do tempo de Setup; Frequencia máxima do clock;
  • Temporização relacionadas as saídas.
  • Porque não usar VARIABLE em circuitos sequenciais.
Ver pag. 239 a 255 de [1]
Ver também os slides Unidade 4: Eficiência de Circuitos Sequenciais
Ver TimeQuest Clock Analysis
Aula 12 (18 Set)
  • Eficiência de Circuitos Sequenciais
  • Praticas deficientes de projeto e soluções:
  • Mal uso do RESET assincrono => Use CLEAR síncrono;
  --Por exemplo em um contador de 0 a 9 use um CLEAR síncrono
  r_next <= (others => '0') when r_reg = 9 else r_reg + 1;
  • Mal uso de portas no CLOCK => Use o ENABLE do FF;
  --Em um contador
  r_next <= r_reg + 1 when ena = '1' else r_reg;
  • Mal uso de CLOCK derivados => Use o ENABLE para habilitar o CLOCK durante uma borda de subida;
-- Não use multiplos clocks 
elsif (clk'event and clk='1') then
...
elsif (sclk'event and sclk='1') then
...
elsif (mclk'event and mclk='1') then
...
-- Use um único clock com vários enables.
elsif (clk'event and clk='1') then
...
s_next <= (others=>'0') when (s_reg=59 and s_en='1') else
             s_reg + 1     when s_en='1' else
             s_reg;
...
m_next <= (others=>'0') when (m_reg=59 and m_en='1') else
             m_reg + 1     when m_en='1' else
             m_reg;
  • Contadores
  • Contador Gray
0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 0000 ...
  • Contador em Anel
0001 0010 0100 1000 0001 ...
  • Contador Binário
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 ...
  • Contador Decimal
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0000 ...
  • LFSR (Linear Feedback Shift Register) [1]
0001 1000 0100 0010 1001 1100 0110 1011 0101 1010 1101 1110 1111 0111 0011 0001 ...
  • Modulação por largura de pulso (PWM)
  • Uso de um registrador de saída para evitar os erros devido a glitches.
PWM sem buffer de saída
PWM sem buffer de saída

Figura 4.1 - PWM sem buffer de saída - tem gliches na saída.

PWM com buffer de saída
PWM com buffer de saída

Figura 4.2 - PWM com buffer de saída - não tem gliches na saída.


Referências Bibliográficas:

  1. 1,0 1,1 1,2 1,3 1,4 1,5 Pong P. Chu, RTL Hardware Design Using VHDL: Coding for Efficiency, Portability, and Scalability. Wiley-IEEE Press, Hoboken, 2006, ISBN 0471720925


Curso de Engenharia de Telecomunicações