EEL 510389 – Sistemas Digitais e Dispositivos Lógicos Reconfiguráveis


Semestre 2018/1
Curso: Programa de Pós-Graduação em Engenharia Elétrica
Código da disciplina: EEL 510389
Número de créditos: 4
Professor: Eduardo Augusto Bezerra


Horário das aulas

  • Qua 13:00-13:50-14:40-15:30-16:20

Ementa

Conceitos introdutórios de sistemas digitais; Circuitos combinacionais e sequenciais; Projeto de sistemas digitais no nível de transferência entre registradores (RT); Modelo clássico de CPU com bloco de dados e bloco de controle; Dispositivos lógicos reconfiguráveis; Prototipação de sistemas digitais.


Metodologia

  • O conteúdo programático será desenvolvido por meio de aulas expositivas com auxílio de recursos multimídia.
  • Aulas teóricas, expositivas, com slides preparados a partir do livro texto da disciplina.
  • Exercícios teóricos a serem resolvidos em aula e extra-classe pelos alunos.
  • Aulas práticas, em laboratório, onde os alunos seguirão tutoriais fornecidos pelo professor com instruções para utilização de ferramentas e placas de desenvolvimento.
  • Leitura e discussão de artigos científicos clássicos e no estado da arte.
  • Apresentação de seminários preparados pelos alunos.
  • O material utilizado nas aulas práticas e teóricas será disponibilizado na página da disciplina e na plataforma Moodle.
  • Ao longo do curso, far-se-á uso de HDLs para descrever os circuitos e sistemas digitais apresentados.

Programa

  1. Introdução
    • Circuitos combinacionais
    • Circuitos sequenciais
    • Lógica reconfigurável
    • Fluxo de projeto de sistemas digitais com ferramentas de EDA
  2. Sistemas digitais e linguagens de descrição de hardware
    • Álgebra de Boole e funções booleanas
    • Codificadores, decodificadores, multiplexadores, demultiplexadores
    • Circuitos aritméticos, somadores, comparadores, contadores, deslocadores, multiplicadores
    • Unidade Lógico e Aritmética (ULA): síntese e simulação com uma linguagem de descrição de hardware
  3. Circuitos sequenciais e controladores
    • Latches e flip-flops
    • Finite State Machines (FSMs)
    • Projeto de controladores utilizando FSMs
    • Síntese de FSMs com uma linguagem de descrição de hardware
  4. Estudo de caso
    • Projeto do bloco de dados (data path) e do bloco de controle de uma unidade de processamento
    • Descrição no nível RTL (Register Transfer Level) de uma unidade de processamento utilizando uma linguagem de descrição de hardware
    • Simulação, síntese lógica, síntese física e prototipação em hardware da unidade de processamento

Avaliação

  • A média geral do trimestre (MT) é obtida a partir da média geométrica: MT = sqrt(T x S), onde T é a nota do trabalho teórico/prático, e S é a nota da preparação/apresentação dos seminários.
  • Condições para a aprovação: freqüência > 75% e MS >= 6,0

Bibliografia

  • Frank Vahid, “Sistemas Digitais: projeto, otimização e HDLs”, Bookman, 2008.
  • Frank Vahid, “Digital Design”, 1st ed., Wiley, 2007.
  • Randy Katz, Gaetano Borrielo, “Contemporary Logic Design””, 2nd ed., Prentice Hall, 2005.
  • John P. Uyemura, “Sistemas digitais: Uma abordagem integrada”, Thomson, 2002.
  • John F. Wakerly, “Digital design: Principles and practices”, Prentice Hall, 2005.
  • Volnei A. Pedroni, “Circuit Design with VHDL”, The MIT Press, 2004.
  • Frank Vahid, “VHDL for Digital Design”, 1st ed., Wiley, 2007.
  • Pong P. Chu, “FPGA Prototyping by VHDL Examples: Xilinx Spartan-3 Version”, Wiley-Interscience, 2008.
  • David A. Patterson, John L. Hennessy, “Computer Organization and Design: The Hardware/Software Interface”, Morgan Kaufmann, 4th edition, 2008.
  • Advancing the SystemC Analog/Mixed-Signal (AMS) Extensions – Introducing Dynamic Timed Data Flow“; Martin Barnasconi, Karsten Einwich, Christoph Grimm, Torsten Maehne, Alain Vachoux; September 2011.
  • Electronic System Level Design: An Open-Source Approach“; Sandro Rigo, Rodolfo Azevedo, Luiz Santos.
  • “SystemC Synthesizable Subset”
  • IP-XACT
  • Open Verification Library (OVL)

Ferramentas e materiais


Trabalho prático

  • Especificação do Trabalho Final: “Projeto e implementação em VHDL/FPGA de arquitetura para execução de um conjunto reduzido de instruções do microcontrolador zr16s08″

Organização das aulas

Aula Conteúdo
1 Sistemas digitais e síntese em VHDL para FPGAs:

2 Sistemas digitais e síntese em VHDL para FPGAs:

3
  • Introdução aos dispositivos lógicos programáveis.

Material de apoio:

4 Exercícios na DE2: Implementação do multiplicador dos slides da Altera.
5 Exercícios na DE2: Implementação do controlador da vending machine.
6 Exercícios na DE2: Implementação do controlador da vending machine; Photoshop em hardware.
7 Descrição do funcionamento de uma arquitetura multiciclo:

  • Exercício: Implementação em VHDL e simulação no ModelSim, da unidade de busca de instruções representada pelo diagrama de blocos do slide 13 do “Chapter 4″. O desenvolvimento do exercício, auxilia no entendimento dos demais slides (14 a 29), e também dos conceitos do MIPS apresentados durante a aula.
  • Descrição de memória em VHDL (RAM e ROM), para utilização no exercício proposto.
8 Descrição do funcionamento de uma arquitetura multiciclo:

  • Material para a aula: slides Patterson e Hennessy (“Chapter 4 – slides 14-29“).
  • Exercício: Implementação em VHDL e simulação no ModelSim do banco de registradores do slide 14.
  • Exercício: Implementação em VHDL e simulação no ModelSim da ALU do slide 14 (ver a tabela de operações da ALU no slide 21).
  • Exercício: Implementação em VHDL e simulação no ModelSim da memória de dados do slide 15.
9 Descrição do funcionamento de uma arquitetura multiciclo:

  • Exercício: Implementação em VHDL e simulação no ModelSim do datapath apresentado no slide 19.
  • Exercício: Implementação em VHDL e simulação no ModelSim da datapath completo apresentado no slide 20.
10 Descrição do funcionamento de uma arquitetura multiciclo:

11
12
  • Simulador SPIM, e geração de código de máquina a partir de fonte em assembly para o MIPS.
  • Download SPIM: [source forge] ou [cópia local].
13
  • Simulação da arquitetura desenvolvida, no ModelSim, utilizando o código objeto gerado pelo SPIM.
14 Apresentações de seminários. 
15 Entrega do projeto final (Moodle).Apresentação do projeto final.

Cronograma de entrega do projeto final e apresentações de seminários do semestre 2018/1:

  • 16/05 – Projeto da unidade de controle
  • 23/05 – Apresentação de seminários
  • 30/05 – VHDL + testbench dos componentes do datapath
  • 06/06 – VHDL + testbench da unidade de controle
  • 13/06 – VHDL + testbench da integração do datapath com a unidade de controle
  • 20/06 – Demonstração de execução de programas em um kit de desenvolvimento FPGA
  • 27/06 Entrega do relatório técnico / user’s guide / datasheet

Lista de artigos dos seminários do semestre 2018/1:

Conjunto de artigos da disciplina (última atualização em 2015/1):