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

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 406: Linha 406:
  
 
{{collapse bottom}}
 
{{collapse bottom}}
 
= Laboratórios =
 
 
{{collapse top| bg=lightyellow | expandir=true | Laboratório: Processadores Embarcados (SoC)}}
 
 
== Roteiro Básico ==
 
 
Nesta aula nós seguiremos um tutorial da Altera para construir um System-on-a-Chip (SoC), sintetizando um processador softcore NIOS em uma FPGA e carregando um software nele. Nas próximas aulas nós integraremos nossa própria lógica neste processador. Esta arquitetura de sistema deverá ser empregada em todos os trabalhos ao longo do semestre.
 
 
A figura abaixo dá uma visão geral do que iremos implementar:
 
 
https://www.altera.com/content/dam/altera-www/global/en_US/images/support/examples/images/nios2-hw-tutorial.gif
 
 
Você precisará destes documentos para desenvolver este tutorial:
 
 
* [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/docs/tt_nios2_hardware_tutorial-with_markings.pdf Tutorial com pontos importantes destacados.]
 
* Código-base para início do tutorial [https://www.altera.com/content/dam/altera-www/global/en_US/others/literature/tt/niosii_hw_dev_tutorial.zip na ALTERA],[http://docente.ifsc.edu.br/moecke/DLP2/niosii_hw_dev_tutorial.zip no IFSC]
 
* [[Pinagem dos dispositivos de entrada e saída do kit MERCURIO IV]]
 
* [http://www.macnicadhw.com.br/c/document_library/get_file?uuid=0612db45-0434-4737-a380-ac846cf662b3&groupId=10157 Esquemático da MercurioIV]
 
* [[Preparando para gravar o circuito lógico no FPGA]]
 
 
Recomenda-se seguir este roteiro:
 
* Analisar e debater figura 1-1 na página 1-2;
 
* Destacar os requisitos de hardware para o experimento na página 1-3;
 
* Analisar e debater o fluxo de desenvolvimento de projeto da figura 1-2 na página 1-4;
 
* Debater as questões de análise de requisitos do sistema na página 1-5;
 
* Partir para criação do exemplo na página 1-8;
 
* Seguir tutorial (passos importantes destacados no PDF);
 
* Usando o Pin Planner ('''Assignment > Pin Planner''') selecione os pinos corretos no kit Mercúrio IV.  Veja a pinagem em [[Preparando para gravar o circuito lógico no FPGA]].
 
* Mude a tensão default dos pinos para 3.3V ('''Assignment > Device > Device and Pin Options > Voltage'''), ['''Default I/O standard = 3.3-V LVTLL'''] [OK] [OK]
 
* Configure os pinos não usados para Tri-State ('''Assignment > Device > Device and Pin Options > Unused Pins'''), ['''Reserve all unused pins  = As input tri-stated'''] e [OK] [OK]
 
 
Se o Eclipse SBT do Nios II não inicializar em um sistema Ubuntu 14.04 ou mais recente, você precisa instalar a libGTK2:
 
sudo apt-get install libgtk2.0-0:i386
 
 
== Desenvolvimento de software para o Nios II ==
 
 
Para utilizar versões modificadas do hardware, precisaremos também modificar o software que carregamos no Nios II.
 
As informações a respeito do sistema de software gerado com apoio das ferramentas da Altera estão [https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/hb/nios2/n2sw_nii5v2.pdf neste manual].
 
A Figura abaixo, retirada do manual, nos dá uma visão geral da arquitetura deste software:
 
 
[[Arquivo:nios2_sw_project_structure.png]]
 
 
Outras questões importantes a serem entendidas sobre o BSP gerado pela Altera:
 
 
'''Arquivo system.h'''
 
 
Este arquivo contém a descrição do hardware Nios II. Este arquivo contém os detalhes de cada periférico integrado ao Nios II, incluindo as configurações do periférico, o endereço base dos registradores, informações sobre IRQ (se houver) e um nome simbólico para o dispositivo. Exemplo:
 
<syntaxhighlight lang=c>
 
/*
 
* sys_clk_timer configuration
 
*
 
*/
 
#define SYS_CLK_TIMER_NAME "/dev/sys_clk_timer"
 
#define SYS_CLK_TIMER_TYPE "altera_avalon_timer"
 
#define SYS_CLK_TIMER_BASE 0x00920800
 
#define SYS_CLK_TIMER_IRQ 0
 
#define SYS_CLK_TIMER_ALWAYS_RUN 0
 
#define SYS_CLK_TIMER_FIXED_PERIOD 0
 
</syntaxhighlight>
 
 
'''Definição de tipos'''
 
 
O BSP também define tipos padrão para integração com o processador no arquivo ''alt_types.h''. Os tipos definidos são os abaixo:
 
*alt_8: Signed 8-bit integer.
 
*alt_u8: Unsigned 8-bit integer.
 
*alt_16: Signed 16-bit integer.
 
*alt_u16: Unsigned 16-bit integer.
 
*alt_32: Signed 32-bit integer.
 
*alt_u32: Unsigned 32-bit integer.
 
*alt_64: Signed 64-bit integer.
 
*alt_u64: Unsigned 64-bit integer.
 
 
Como as ferramentas integradas pela Altera incluem o Gnu GCC, os seguintes tipos da linguagem C para aquele compilador também são suportados:
 
* (unsigned) char: 8 bits.
 
* (unsigned) short: 16 bits.
 
* (unsigned) long: 32 bits.
 
* (unsigned) int: 32 bits.
 
 
'''Funções de API equivalentes ao UNIX'''
 
 
A HAL do BSP provê algumas funções similares às disponíveis em sistemas UNIX para facilitar a integração dos programas com a biblioteca padrão ANSI C. Estas funções estão definidas no cabeçalho ''stdio.h'', e inclui as funções ''_exit(), close(), fstat(), getpid(), gettimeofday(), ioctl(), isatty(), kill(), lseek(), open(), read(), sbrk(), settimeofday(), stat(), usleep(), wait(), write()''.
 
 
'''Sistema de arquivos'''
 
 
A HAL do BSP também oferece algumas funções para acesso a arquivo que podem ser utilizadas para construir um sistema de arquivos sobre qualquer dispositivo de armazenamento. Estas declarações estão no ''file.h''.
 
 
'''Char devices'''
 
 
Dispositivos de caractere (e.g., UART) podem ser registrados como nós no sistema de arquivos da HAL e manipulados pelas mesmas operações definidas no ''file.h'', assim como ocorre em sistemas UNIX.
 
 
'''Entrada e Saída Padrão'''
 
 
A HAL também suporta operações sobre a entrada padrão (''stdin''), saída padrão (''stdout'') e saída de erro padrão (''stderr''). Esta manipulação pode ser feito pelas chamadas ''printf()'' e ''perror()'', declarados no ''stdio.h''.
 
 
 
'''Mais detalhes da API da HAL'''
 
 
No capítulo 14 do [https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/hb/nios2/n2sw_nii5v2.pdf manual].
 
 
 
== Modificações Propostas ==
 
 
=== Modificação 1: Mais GPIOs ===
 
 
Modificar o projeto da aula passada para:
 
*Ler um conjunto de entradas digitais a partir das chaves da placa;
 
*Obter estes sinais no software rodando no Nios através de uma PIO;
 
*Escrever estes sinais para LEDs no software, através de outra PIO.
 
 
=== Modificação 2: Integração de componente externo ===
 
 
 
 
{{collapse bottom}}
 
 
<!--
 
 
{{collapse top| bg=lightyellow | expandir=true | Projeto Final 2015-2}}
 
 
== Projeto Final ==
 
 
=== Visão Geral ===
 
 
[[Arquivo:DLP2-Projeto-UartAudio.png]]
 
 
Neste projeto você implementará um processador de áudio via serial utilizando a placa Mercurio IV da Macnica com uma FPGA Cyclone IV-E.
 
Uma visão geral é apresentada na figura acima, composta dos seguintes blocos:
 
* ''in'' ADC: o chip ADC disponível na placa. Ele está conectado à FPGA por uma interface SPI, entregando um valor inteiro de 12 bits.
 
* ''out'' DAC: o chip DAC disponível na placa. Ele está conectado à FPGA por uma interface SPI, recebendo um valor inteiro de 12 bits.
 
* Nios II: O Nios II agirá como um mestre SPI para ler dados do ADC e escrever dados no DAC. O software na CPU lerá os dados do ADC a uma taxa de 8KHz e inserirá os valores de 12 bits em uma FIFO de saída com 8 posições. Ele também lerá dados da FIFO de entrada a uma taxa de 8KHz e escrever no DAC. Nota: você utilizará os 12 LSB das FIFOs.
 
* Lei A: o bloco LeiA do segmento de envio lerá entradas de 12 bits da FIFO e gerará um dado comprimido de 8-bits. No segmento de recepção, o bloco LeiA receberá valores de 8 bits e expandirá para um valor de 12 bits.
 
* UART: os dados serão transmitidos através de uma UART conectada a um transceiver RS-232 na placa.
 
 
* The following files are avaliable to integrate to your project:
 
** [https://www.dropbox.com/s/t6hi13yz8loifo5/secure_audio_alunos.qar?dl=0 Download here] a QAR File containing the ADC and DAC adaptation circuit and a Nios2 processor. From this file, you will use a the ADC_OUT FIFO as a data source to your LawA compressor, and the DAC_IN FIFO as a data destination for your LawA decompressor.
 
** [https://www.dropbox.com/s/31rpm08dz0zlknt/secure_audio_alunos_application.zip?dl=0 Download here] the ecliplse project of the application that should run on the Nios2 processor. You will need to generate the BSP (sopcinfo file is in the QAR).
 
 
=== Material de apoio para o projeto ===
 
 
* Conversores Analógico-Digital (CAD) e Conversor Digital-Analógico (CDA)
 
:Ver: [http://www.sj.ifsc.edu.br/~fabiosouza/Tecnologo/Telefonia%201/Telefonia%20Digital%20PCM%20-%20parte%202de%202%20antiga.pdf Moecke, M. Curso de Telefonia Digital, ETFSC, 1998]
 
 
* Implementação de um codificador/decodificador para Lei A.
 
[[Arquivo:LeiA.png | Compressão e descompressão pela Lei A]]
 
:FONTE: [http://www.sj.ifsc.edu.br/~fabiosouza/Tecnologo/Telefonia%201/Telefonia%20Digital%20PCM%20-%20parte%202de%202%20antiga.pdf Moecke, M. Curso de Telefonia Digital, ETFSC, 1998], [https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-G.711-198811-I!!PDF-E&type=items ITU-T, Recommendation G.711 (11/88)]
 
*Implementação de uma [[Interface Serial Assíncrona]].
 
 
 
{{collapse bottom}}
 
-->
 
  
 
= Links Auxiliares =
 
= Links Auxiliares =
 
*[http://wiki.sj.ifsc.edu.br/index.php?title=DLP2-EngTel_%28p%C3%A1gina%29&oldid=103201 DLP2-EngTel (página) - 2015-2 (prof. Arliones e Marcos)]
 
*[http://wiki.sj.ifsc.edu.br/index.php?title=DLP2-EngTel_%28p%C3%A1gina%29&oldid=103201 DLP2-EngTel (página) - 2015-2 (prof. Arliones e Marcos)]
 
*[[DLP29007-2015-1 | DLP2-EngTel (página) - 2015-1 (prof. Arliones e Marcos)]]
 
*[[DLP29007-2015-1 | DLP2-EngTel (página) - 2015-1 (prof. Arliones e Marcos)]]

Edição das 09h36min de 31 de maio de 2016

Dispositivos Lógicos Programáveis II

Material de aula

Registro on-line das aulas

Unidade 1

Aula 1 (22 Mar) - Arliones
Ver pag. 1 a 22 de [1]
Ver pag. 3 a 48 de [2]

Unidade 2

Aula 2 (24 Mar) - Marcos
  • 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; uso de don't care '-'
  • Fluxo da síntese (RTL, mapeamento tecnológico (ASIC/FPGA)
Ver pag. 125 a 149 de [1]
Aula 3 (29 Mar) - Marcos
  • Processo de Síntese do código VDHL: Analise das temporizações:
  • 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 atrazo)
Ver pag. 125 a 162 de [1]
Ver também os slides Unidade 2: Processo de Síntese do código VDHL

Unidade 3

Aula 4 (1 Abr) - Marcos
  • 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)
  • Análise da área (Elementos Lógicos) x tempo de propagação.
Ver pag. 163 a 173 de [1]
Aula 5 (5 Abr) - Marcos
  • Eficiência de Circuitos Combinacionais
  • Questões relacionadas com o Leiaute do circuito
  • Exemplos de circuitos XOR;
  • Exemplos de Deslocador (shifter)
  • Exemplos de Multiplicadores
Ver pag. 173 a 211 de [1]
Ver também os slides Unidade 3: Eficiência de Circuitos Combinacionais

Unidade 4

Aula 6 (7 Abr) - Marcos
  • 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 contadores;
Ver pag. 213 a 239 de [1]
Aula 7 (12 Abr) - Marcos
  • 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
Aula 8 (19 Abr) - Marcos
  • Eficiência de Circuitos Sequenciais
  • Praticas deficientes de projeto e soluções:
  • Mal uso do RESET assincrono => Use CLEAR sincrono;
  --Em um contador de 0 a 9
  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;
  • Contadores
  • Contador Gray
  • Contador em Anel
  • Contador Binário
  • Contador Decimal
  • LFSR (Linear Feedback Shift Register) [1]
Aula 9 (26 Abr) - Marcos
  • ???

Unidade 5

Aula 10 (3 Mai) - Arliones
  • Laboratório: Processadores Embarcados (SoC) - Hardware
Aula 11 (5 Mai) - Arliones
  • Laboratório: Processadores Embarcados (SoC) - Software
Aula 12 (10 Mai) - Arliones
  • Laboratório: Processadores Embarcados (SoC) - Software e Hardware
Aula 13 (17 Mai) - Arliones
  • Laboratório: Processadores Embarcados (SoC) - SignalTap
Aula 14 (19 Mai) - Arliones
  • Eficiência de Máquinas de Estados: Introdução
  • Visão Geral
  • Representação gráfica
  • Timing e desempenho
  • Máquinas Moore e Mealy
Aula 15 (21 Mai - sábado) - Arliones
  • Eficiência de Máquinas de Estados: Moore vs Mealy - SignalTap
  • Análise de saídas Moore e Mealy na prática com SignalTap
Aula 16 (24 Mai) - Arliones
  • Eficiência de Máquinas de Estados: Codificação em VHDL
  • Descrição VHDL de máquina de estados
  • Técnicas de codificação em 4 e 2 segmentos
  • Problemas comuns na codificação / exemplo de codificação errada em 1 segmento
Aula 17 (31 Mai) - Arliones
  • Eficiência de Máquinas de Estados: Otimizações e exemplos
  • Atribuição de estados
  • Buffer de saídas Moore
  • Exemplos de máquinas de estados

Notas de aula

Estas notas de aula são baseadas nas dispobilizadas pelo Prof. Pong P. Chu em [2].

Atividades extra

Neste tópico serão listadas as atividades extras que os alunos da disciplina deverão realizar ao longo do curso. É importante observar o prazo de entrega, pois os conceitos serão reduzidos conforme o atraso na entrega. Para a entrega no prazo os conceitos possíveis são (A, B, C, D). Entrega com até uma semana de atraso (B, C, D). Entrega com até duas semanas de atraso (C ou D). Entrega com mais de duas semanas de atraso (D).

PARA ENTREGAR
AE1 - Circuitos Combinacionais (prazo 26/04/2016)
  • Formar equipes com 2 ou 3 alunos. A formação das equipes deve ser informado no Facebook de DLP29007. Cada equipe deverá trabalhar com um dos temas de 1 a 5. As equipes 1 a 4 também devem trabalhar o tema 6. A equipe 5 apenas irá trabalhar o tema 5.
TEMA 1 - Implementar o circuito de diferença (Listing 7.6, 7.7. 7.8 e 7.9). pag. 175-177
Torne o código genérico para N bits e teste para entradas "a" e "b" de 4, 8 e 16 bits.
TEMA 2 - Implementar os circuitos codificadores de prioridade de 16 entradas 4 bits de saída (Listing 7.24, 7.25 + 7.26). pag. 187-192
Implemente o circuito codificadores de prioridade programável (Listing 7.32)
TEMA 3 - Implementar os circuitos incrementadores de código Gray (Listing 7.30, 7.31). pag. 196-199
Transforme os circuitos em decrementadores de código Gray.
TEMA 4 - Implementar os circuitos para cálculo da distância de Hamming (Listing 7.36, 7.37) e o exemplo mostrado na AL1. pag. 206-208
Transforme os circuitos para determinar o peso de Hamming.
TEMA 5 - Implementar o circuito de soma para entradas "com sinal" e saídas de status (Listing 7.33). pag. 201-203
Torne o código genérico para N bits e teste para entradas "a" e "b" de 8, 16 e 32 bits.
Utilize o circuito de 8 bits como componente para realizar um somador de 32 bits (são necessários 4 componentes iguais).
TEMA 6 - Implementar o circuito multiplicador baseado em somas (Listing 7.34, 7.35). pag. 203-206
Compare os resultados com um multiplicador baseado no operador de multiplicação "*" do VHDL.
  • Para a versão de 8 bits comparar o hardware necessário para implementar os circuitos abaixo utilizando as seguintes famílias de FPGA [CYCLONE & STRATIX II]. Utilize sempre o menor Device de cada família, que possua os elementos e pinos suficientes para o circuito proposto.
  • Compilar cada circuito (com 8 bits) utilizando diferentes técnicas de otimização [Area | Balanceada | Velocidade].
ver:Escolha da técnica de otimização no Quartus II
  • Para a arquitetura de menor tempo de propagação, realizar os testes com variação de bits.
  • Teste cada uma das arquiteturas 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), atraso de propagação, 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)
  • No caso do atraso de propagação, verifique para o caminho crítico o atraso de propagação interno, anote e subtraia os tempos dos pinos de I/O, os tempos de propagação do sinal até o primeiro elemento lógico e o tempo de propagação após o último elemento lógico.
Ver:Medição de tempos de propagação em circuitos combinacionais
  • Insira restrições temporais para obter um circuito com menor atraso no caminho crítico. Neste caso procure reduzir gradualmente a tempo máximo de propagação "tp" até atingir o menor valor.
set_max_delay -from [get_ports *] -to [get_ports *]  tp
Ver:Medição de tempos de propagação em circuitos combinacionais
  • Realize a simulação funcional de cada circuito usando sempre o mesmo padrão de sinais de entrada.
  • Escreva um relatório técnico na forma de artigo com 4 a 8 paginas A4. O relatório além das tabelas com os dados, deverá conter as figuras dos circuitos RTL, simulações funcionais e uma análise textual dos resultados obtidos. O arquivo com o QAR do projeto deve ser também enviado.
  • Para a geração de documentação/relatórios técnicos/artigos, está disponibilizada a plataforma Sharelatex do IFSC-CLOUD. Utilize preferencialmente o modelo de artigo no padrão ABNT.
  • Envie o artigo em pdf para (moecke AT ifsc.edu.br E arliones.hoeller AT ifsc.edu.br), com o ASSUNTO: DLP29007 - AE1 - Projeto de Circuitos Combinacionais.
AE2 - Circuitos Sequencias - Parte 1 (prazo XX/2016)
  • Formar equipes com 2 ou 3 alunos. A formação das equipes deve ser informado no Facebook de DLP29007. Cada equipe deverá trabalhar com um dos temas de 1 a 5. (todos os contadores devem ser genéricos para N bits)
TEMA 1 - Estudar e implementar Contador Gray
  • Versão 1 (Listing 9.7). pag. 265
  • Versão 2 [3]
  • Versão 3 [4]
  • Versão 4 Crie um outro Contador Gray, separando claramente a lógica combinacional de next-state, combinacional de output, e register.
  • Para cada circuito indicado torne o código genérico para N bits e teste para 4 e 32 bits.
  • Teste cada uma das arquiteturas 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), Frequência Máxima.
Esses dados estão disponíveis nos seguintes relatórios: (Fitter > Resource Section > Resource Usage), (TimeQuest Timing Analyser > Datasheet Report > FMax)
  • Insira restrições temporais para obter um circuito com maior Frequência Máxima.
**
  • Realize a simulação funcional de cada circuito com 4 bits.
  • Escreva um relatório técnico na forma de artigo com 2 a 4 paginas A4. O relatório além das tabelas com os dados, deverá conter as figuras dos circuitos RTL para 4 bits, simulações funcionais e uma análise textual dos resultados obtidos. O arquivo com o QAR do projeto deve ser também enviado.
  • Para a geração de documentação/relatórios técnicos/artigos, está disponibilizada a plataforma Sharelatex do IFSC-CLOUD. Utilize preferencialmente o modelo de artigo no padrão ABNT.
  • Envie o artigo em pdf para (moecke AT ifsc.edu.br E arliones.hoeller AT ifsc.edu.br), com o ASSUNTO: DLP29007 - AE1 - Projeto de Circuitos Combinacionais.
JÁ ENCERRADAS
ESTUDOS SEM ENTREGA DE DOCUMENTAÇÃO
AL1 - Tempo de propagação em circuitos combinacionais

Recursos de Laboratório

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).

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.

Para estudo de FPGAs o Laboratório de Programação dispõe de kits Mercúrio IV da Macnica-DHW e também DE2-115 da Terasic. Veja como utilizar estes kits em Preparando para gravar o circuito lógico no FPGA, one além de acesso aos manuais dos fabricantes, você tem acesso a uma descrição resumida da pinagem mais utilizada desses kits.

Para depurar seu circuito em uma FPGA de verdade, pode ser interessante utilizar o SignalTapII da Altera, que permite realizar análise lógica dos sinais no seu circuito. Para iniciar o uso da ferramenta, siga este tutorial.

Para determinar os caminhos críticos do projeto (ou os tempos de propagação entre quaisquer nós de um projeto, utilize a Análise de Caminho Crítico com Qaurtus II.

Referências Bibliográficas:

  1. 1,0 1,1 1,2 1,3 1,4 1,5 1,6 Pong P. Chu, RTL Hardware Design Using VHDL: Coding for Efficiency, Portability, and Scalability. Wiley-IEEE Press, Hoboken, 2006, ISBN 0471720925
  2. David Money Harris and Sarah L. Harris, Digital Design and Computer Architecture, Morgan Kaufmann, Burlington, 2007, ISBN 9780123704979, http://dx.doi.org/10.1016/B978-012370497-9/50002-0


Curso de Engenharia de Telecomunicações

Conteúdo

Gerenciamento de Complexidade e Visão Geral de Sistemas Digitais Complexos

Gerenciamento de Complexidade e Visão Geral de Sistemas Digitais Complexos

  • Leituras recomendadas:
    • Capítulo 1 do livro do Chu;
    • Capítulo 1 do livro do Harris;
    • Notas de aula 01.
Síntese de Código VHDL

Síntese de Código VHDL

  • Leitura recomendada:
    • Capítulo 6 do livro do Chu;
    • Notas de aula 02.
Eficiência de Circuitos Combinacionais

Eficiência de Circuitos Combinacionais

  • Leitura recomendada:
    • Capítulo 7 do livro do Chu;
    • Notas de aula 03.
Eficiência de Circuitos Sequenciais

Eficiência de Circuitos Sequenciais

  • Leitura recomendada:
    • Capítulos 8 e 9 do livro do Chu;
    • Notas de aula 04 e 05.
Eficiência de Máquinas de Estado

Eficiência de Máquinas de Estado

  • Leitura recomendada:
    • Capítulo 10 do livro do Chu;
    • Notas de aula 06.
Register Transfer Methodology

Register Transfer Methodology

  • Leitura recomendada:
    • Capítulos 11 e 12 do livro do Chu;
    • Notas de aula 07 e 08.
Projeto Hierárquico e Parametrizado

Projeto Hierárquico e Parametrizado

  • Leitura recomendada:
    • Capítulos 13, 14 e 15 do livro do Chu;
    • Notas de aula 09, 10 e 11.
Clock e Sincronização

Clock e Sincronização

  • Leitura recomendada:
    • Capítulo 16 do livro do Chu;
    • Notas de aula 12.

Links Auxiliares