DLP29007-Engtelecom(2017-2) - Prof. Marcos Moecke
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 ...
- Ver pag. 257 a 274 de [1]
- Ver também os slides Lecture 05: Design of Sequential Circuits: Practice
- Eficiência de Circuitos Sequenciais
- Modulação por largura de pulso (PWM)
- Uso de um registrador de saída para evitar os erros devido a glitches.
Figura 4.1 - PWM sem buffer de saída - tem gliches na saída.
Figura 4.2 - PWM com buffer de saída - não tem gliches na saída.
Referências Bibliográficas: