Segundo quadrimestre de 2018

Turma: B1 - diurno

Período letivo: de 29/05 a 18/08 de 2017

Horário e salas (aula): 2a (sala S-305-2) e 5a (sala 408-2), 16:00 18:00

Horário de atendimento: 5a das 14 às 16, na sala 805 do bloco B

Professor: Jerônimo C. Pellegrini

Sala do professor: S 805 (bloco B)

Email do professor: jeronimo.pellegrini ufabc edu br

EXAME: 04/09, quinta, 16:00

Sala a definir

SUB terça, dia 28, 14:00. SALA DE REUNIÕES DO OITAVO ANDAR / BLOCO B (R804).

TRABALHO 27/08 -- um aluno de cada grupo apresenta

Às 16:00 na sala 402-2.

Mandem o trabalho por email (PDF)!

Novidades

30/08 -- Conceitos do trabalho
29/08 -- Conceitos da SUB
27/08 -- Conceitos da P2
17/08 -- Entrega do trabalho adiada
13/08 -- Lista de exercícios
10/08 -- Conceitos da P1
07/08 -- Laboratorio reservado para trabalho prático
30/07 -- Descrição do trabalho pronta
23/07 -- Slides da aula de hoje (datapath e ASM) adicionados
20/07 -- Prova adiada
16/07 -- Slides sobre ULA e transferências entre registradores
12/06 -- Exercício prático FPGA
12/06 -- Mais uma lista de exercícios
12/06 -- Prova adiada para 23/07
29/06 -- Indicação de leitura para próximo tópico (ULA)
28/06 -- Instruções para usar o Quartus, da Altera, disponíveis
28/06 -- Lista 06 disponível
27/06 -- exercício adicionado (após lista 5)
25/06 -- mais código VHDL de exemplo: no subdiretório "sorting-network"
         tem uma rede de ordenação por hardware descrita em VHDL.
         O Makefile precisa ser modificado se sua instalação de ghdl
         requer o passo de elaboração ("ghdl -e")
23/06 -- mais um exemplo de código: multiplexador para nibbles.
         o tipo de dado NIBBLE foi definido em um pacote, depois usado
         no resto do código.
18/06 -- alguns arquivos para estudar VHDL disponíveis neste site
15/06 -- slides da aula de 14/06 adicionados
14/06 -- Pequeno ajuste no programa (VHDL antes de FPGA)
14/06 -- Listas 01 a 05 disponíveis
12/06 -- Slides e texto incompleto sobre a aula de  11/06 adicionados
07/06 -- Slides da aula de hoje adicionados
05/06 -- Slides da primeira aula adicionados nesta página
04/06 -- Início do curso

Orientações gerais

PERGUNTE! INTERROMPA A AULA E PEÇA QUE EU EXPLIQUE NOVAMENTE! NÃO DEIXE SUAS DÚVIDAS SE ACUMULAREM!

Não creia que poderá sanar as dúvidas uma semana antes da prova! O conteúdo inclui conceitos abstratos e maneiras diferentes de raciocinar. Isto significa que esforço não basta -- você precisa de TEMPO para absorver e digerir as idéias, e tentar condensar esse tempo em uma semana NÃO funciona!

Ementa

Sistemas digitais. Introdução à Linguagem VHDL. Descrição, Modelagem e Simulação de Circuitos Digitais. Projeto Estruturado e Implementação de Circuitos Digitais. Exemplos comerciais e estudo de casos para os tópicos abordados.

Requisitos

Circuitos Digitais

Objetivos

Apresentar técnicas, metodologias e ferramentas para analisar e projetar sistemas digitais simples, mas não triviais.

Avaliação

O conceito final da disciplina poderá ser:

  • F - Reprovado. O aluno deve cursar novamente a disciplina.
  • C - Desempenho mínimo satisfatório, demonstrando capacidade de uso adequado dos conceitos da disciplina, habilidade para enfrentar problemas relativamente simples e prosseguir em estudos avançados.
  • B - Bom desempenho, demonstrando boa capacidade de uso dos conceitos da disciplina.
  • A - Desempenho excepcional, demonstrando excelente compreensão da disciplina e do uso da matéria.

Faremos duas avaliações escritas com duas horas de duração: P1 e P2, e também um trabalho prático, T. Cada avaliação vale exatamente 0, 1, 2 ou 3. O trabalho poderá valer 0, 1, 2, 3 ou 4. A nota final é a soma das notas das provas e do trabalho.

AS AVALIAÇÕES ESCRITAS SERÃO REALIZADAS SEM CONSULTA A QUALQUER MATERIAL!

COLA/PLÁGIO RESULTAM EM F NA DISCIPLINA

As notas serão convertidas em conceito de acordo com a seguinte regra: seja n a soma das notas das provas e do ponto de exercícios. Então o conceito final será:

  • n ∈ [0, 5)→F
  • n ∈ [5, 7)→C
  • n ∈ [7, 9)→B
  • n ∈ [9, 10]→A

Datas das avaliações

  • P1: 16/jul 23/jul 26/jul
  • P2: 23/ago
  • SUB: 28/ago
  • exame: próximo quadrimestre

Prova substitutiva

Somente para os casos previstos em lei e na resolução 181 do CONSEPE!

Caso o aluno perca uma das provas e apresente justificativa, poderá fazer uma substitutiva no final do quadrimestre.

Exame

Para alunos com F (sobre o exame, veja a resolução 182 do CONSEPE). O conteúdo já é extenso para um quadrimenstre; como temos também a semana do CMCC, deixaremos de ter duas aulas. Desta forma, o exame só poderá ser realizado no próximo quadrimestre.

Exercícios

Trabalho

LABORATORIO

Reservado dias 09/08, 13/08, 16/08, 23/08, das 14 às 16. Os alunos matriculados podem pedir as placas FPGA.

Conceitos

Disponíveis aqui

Programa

Este programa está sujeito a mudanças simples. Grandes mudanças não devem acontecer.

Junto a cada tópico estrá a leitura recomendada (ainda não para todos os tópicos, mas os primeiros já tem). O formato é " [ Autor a-b ] ", que significa "seções de a até b do livro de Autor"

  1. Revisão de Circuitos Combinacionais [ Idoeta:2-4 Vahid:2-2.3 Mano 2-3.7 ]
  2. Revisão de Circuitos Sequenciais [ Idoeta:6 Mano:4 ]
  3. Análise e Projeto de Circuitos Combinacionais [ Wakerly 4-4.2 ]
  4. Análise e Projeto de Circuitos Sequenciais [ Mano 4.4 ]
  5. Conversão Digital-Analógico (Escada Binária, Rede R-2R etc.) [ Idoeta 7.2 ]
  6. ADC – Conversão Analógico-Digital (Rampa Digital, Aprox. Sucessivas, Flash) [ Idoeta 7.3 Tocci 11 ]
  7. VHDL (conceitos iniciais, uso das ferramentas) [ site do ghdl Mealy/Tappero Chu Ashenden ]
  8. FPGA – Field Programmable Gate Array
  9. "Lab 1" – Introdução à Linguagem VHDL, ao GHDL e ao GTKWave
  10. "Lab 3" – Quartus-II e placa DE1/Altera
  11. Introdução à Unidade Lógica Aritmética (ULA) [ Katz/Borriello 5.6-5.8 Mano/Kime 3.9 ]
  12. Transferências entre Registradores baseadas em MUX e BUS [ Mano/Kime 6 ]
  13. Lab -- reconhecedor de sequências
  14. Representação de Fluxo de Dados e Palavra de Controle [ Mano/Kime 8 ]
  15. Lab - Somador Completo
  16. ASM – Máquina de Estado Algorítmica
  17. Lab 5 - Projeto Prático
  18. Controle por Hardware
  19. Lab 6 - Projeto Prático
  20. Controle Microprogramado – Entrega do Trabalho Final

O cronograma é flexível. Andaremos mais rápido ou mais devagar dependendo de como a turma estiver acompanhando.

Bibliografia e ferramentas

LEMBRETE -- ghdl

Instalação:

$ git clone https://github.com/ghdl/ghdl.git
$ cd ghdl
$ ./configure
$ make
$ sudo make install

Uso:

$ ghdl -a meuarquivo.vhdl
$ ghdl -a meuarquivo_test.vhdl
$ ghdl -r meuqrquivo --vcd=saida.vcd
$ gtkwave saida.vcd
  • no gtkwave, ajuste a resolução do tempo (Time -> Zoom -> Best fit)

  • O default do ghdl é usar a work library "work". Se quiser, use outra: ghdl -a --work=minha_lib meuarquivo.vhdl Depois continue usando a opção: ghdl -r --work=minha_lib meuarquivo

Aqui tem alguns arquivos para estudar VHDL

Observações:

Para usar o mux_nibble.vhdl, precisa analisar (ghdl -a) o pacote nibble primeiro:

ghdl -a nibble.vhdl
ghdl -a mux_nibble.vhdl
ghdl -a mux_nibble_tb.vhdl
ghdl -r mux_nibble_tb --vcd=saida.vcd
gtkwave saida.vcd

Slides e textos

Ferramentas

  • ghdl, simulador livre (licença GPLv2) para VHDL.

Bibliografia Principal

  • TOCCI, J. R.; WIDMER, N. S. Sistemas digitais: princípios e aplicações. 10ª edição. São Paulo, SP: Pearson Prentice-Hall, 2007.
  • MANO, M. M.; KIME, C. R. Logic and computer design fundamentals. 4ª edição. Upper Saddle River, NJ: Pearson Prentice-Hall, 2008.
  • VAHID, F. Sistemas digitais: projeto, otimização e HDLs. Porto Alegre, RS: Artmed, 2008.
  • MEALY, B.; TAPPERO, F. Free Range VHDL. Livro livre (licença Creative Commons), excelente para aprender VHDL. Disponível aqui e também no GitHub

Bibliografia Secundária

  • IDOETA, I.; CAPUANO, F. Elementos de eletrônica digital. São Paulo, SP: Érica, 2006.
  • ERCEGOVAC, M.; LANG, T.; MORENO, J. Introdução aos sistemas digitais. Porto Alegre, RS: Bookman, 2000.
  • BIGNELL, J. W.; DONOVAN, R. L. Eletrônica digital. São Paulo, SP: Cengage Learning, 2009.
  • KATZ, R. H.; BORRIELLO, G. Contemporary logic design. 2ª edição. Upper Saddle River, USA: Pearson/Prentice Hall, 2005.
  • ASHENDEN, P. J. The designer's guide to VHDL. 3ª edição. San Francisco, USA: Morgan Kaufmann Publishers: Elsevier, 2008.
  • ASHENDEN, P. J. The VHDL Cookbook. 1990 (O autor deixou este texto livre; há várias cópias dele na Internet)
  • CHU, P. FPGA Prototyping by VHDL Examples (Xilinx Spartan 3 Version)