SSC-108(bonato) 2017

De CoteiaWiki
Revisão de 16h57min de 7 de novembro de 2017 por Vbonato (discussão | contribs) (Cronograma realizado)

SSC-108 - PRÁTICA EM SISTEMAS DIGITAIS - 2017/2

Prof. Vanderlei Bonato

E-mail: vbonato@usp.br

Estagiário PAE: André Bannwart Perina

E-mail: abperina@usp.br

Estagiário PAE: Cláudio Roberto Costa

E-mail:

FAQ

Para dúvidas frequentes relacionadas à instabilidade emocional do Quartus/ModelSim:

Clique aqui!

Arquivos

Avisos

NOVOS TEMPLATES INSERIDOS (já vem com o ---jogo--- atropele o tomate)

Mudanças de plano, dia 10 de outubro haverá aula normalmente!

O debouncer foi consertado! O nome dos pinos de entrada mudou (inb_n para inb e outb_n para outb), mas o funcionamento é igual!

Proposta do projeto 1 disponível!!!

  • Datas importantes:
    • Apresentação P1: 03/10
    • Apresentação P2: 05/12

Trabalho Final

ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO

  • Se você foi na aula e já escolheu o jogo:
    • Envie um e-mail para make.vhdl.not.war@gmail.com com os seguintes dados ATÉ SEXTA-FEIRA DIA 03/11:
      • Assunto: Projeto SSC-108 2017/2 14/16h
      • Corpo: NUSPs e nomes dos integrantes (DUPLA DE 2), nome do jogo e o que pretende implementar de cada jogo
      • Especifique de qual turma você é, 14h ou 16h!
  • Se você não foi na aula:
  • JOGOS JÁ ESCOLHIDOS (14H):
    • 1944
    • Tetris
    • Galaga
    • Super Sprint
    • Spelunker
    • Excite Bike
    • Duck Hunt
    • Silk Worm
    • Abadox
    • Gauntlet
    • Gradius
    • Tennis
    • Flappy Bird
    • Bomberman II
    • Final Fantasy
    • Metroid
    • Cobra Command; Space Invaders
  • JOGOS JÁ ESCOLHIDOS (16H):
    • Bomberman 2
    • Excite Bike
    • 1944
    • California Games / Half pipe
    • Final Fantasy
    • Millipede
    • Tetris
    • Pipedream
    • Xevious
    • Dig Dug
    • Trog
    • Rollerball
    • Yoshi
    • Sidepocket
    • Tecmo Baseball

ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO

Notas

Método de avaliação

Para mais detalhes ver arquivo de descrição da disciplina.

  • Nota final: (0.3 * A1 * P1) + (0.5 * A2 * P2) + (0.2 * B)
    • P1: projeto 1 (30%)
    • P2: projeto 2 (50%)
    • A1: arguição individual durante a apresentação de P1 valendo no máximo 1
    • A2: arguição individual durante a apresentação de P2 valendo no máximo 1
    • B: atividades durante as aulas (20%)

Cronograma realizado

  • (Ter. 01/08): Aula 01: introdução do curso, apresentação da ementa, critério de avaliação, introdução ao Quartus II, ModelSim e latches
  • (Ter. 08/08): Aula 02: latches e introdução a flip-flops
    • Atividade prática individual: construa os seguintes circuitos e apresente suas respectivas simulações no Modelsim ao final da aula:
      • Com base no Latch do tipo Set e Reset da aula anterior (SR Latch), construa um Latch do tipo Set e Reset que seja habilitado por um sinal de clock em nível lógico 1 (conhecido na literatura por Gated SR Latch);
      • Em seguida, converta o circuito Gated SR Latch para conter apenas portas lógicas NAND e modifique o mesmo para torná-lo um circuito Latch do tipo D (Gated D Latch);
      • Por fim, implementar um FF do tipo D com base no “Gated D Latch”. O FF-D deseverá ser ativado na borda de subida do clock e possuir os sinais de controle Preset e Clear ativados com zero.
  • (Ter. 22/08): Aula 03: registradores
    • Atividade prática individual:
      • A partir do FF-D da aula anterior, construa um registrador de 8 bits (gerar um símbolo para cada FF-D). O registrador deve ter a opção de carga de dados no modo sequencial (1 bit por ciclo de clock) ou paralelo (8 bits por ciclo de clock);
      • Como atividade avançada para ser apresentada até o início da próxima aula, estenda esse circuito do registrador incluindo controles para que os dados carregados possam se deslocar (shift) e rotacionar (rotate) para a direita e esquerda. Na operação shift carregar zeros nos FFs que não tiverem dados de entrada.
  • (Ter. 29/08): Aula 04: continuação da última aula
  • (Ter. 12/09): Aula 05: contador
    • Atividade prática em dupla (sugere-se que seja a mesma a desenvolver o projeto da ULA):
      • Desenvolva um contador síncrono capaz de contar para cima e para baixo na faixa de 0 a 99 (0x63) (valor inicial definido pelo reset). É permitido o uso de qualquer FF do Quartus. Utilize o componente debounce para remover o ruído do pino de entrada que gera o clock. Demonstre o seu funcionamento na placa, podendo exibir o valor em decimal ou hexadecimal no display de 7 segmentos.
  • (Ter. 19/09): Aula 06: memórias on-chip
  • (Ter. 26/09): Aula 07: introdução a VHDL (ver seção slides auxiliares)
    • Atividade prática:
      • Desenvolver um módulo VHDL capaz de realizar as mesmas operações do módulo criado na aula 03/04, contendo as seguintes portas:
        • clk: clock;
        • rst_n: reset do circuito, ativado em zero;
        • op: operação a ser realizada:
          • 000: carregar serial;
          • 001: carregar paralelo;
          • 010: shift para esquerda;
          • 011: shift para direita;
          • 100: rotação para esquerda;
          • 101: rotação para direita;
        • serial_in: entrada serial, usada quando op == 000;
        • parallel_in: entrada paralela, usada quando op == 001;
        • reg_out: saída do registrador.
  • (Ter. 03/10): Aula 08: apresentação trabalho 1
  • (Ter. 10/10): Aula 09: introdução a máquinas de estados finitos (ver seção slides auxiliares)
  • (Ter. 17/10): Aula 10: exemplo implementação máquina de estados finitos (VHS Player)
  • (Ter. 24/10): Aula 11: continuação VHS Player; apresentação do projeto atropele o tomate
  • (Ter. 31/10): Aula 12: reapresentação do template AP9 com mais detalhes e demonstração da ferramenta ActiveHDL
  • (Ter. 07/11): Aula 13: implementação de FSM do tipo Moore com VHDL para a atividade prática seguinte:
    • Implemente com FSM do tipo Moore o controle de um elevador para 4 andares e demonstre o seu funcionamento na placa de FPGA. Para isso, utilize como entrada e saída os seguintes sinais:
      • Entrada:
        • Um botão de chamada externo;
        • 4 botões internos para indicar o andar desejado;
        • Sensor de fechamento da porta;
        • Sensor de presença na porta;
        • Sensor de presença de elevador no andar.
      • Saída em Leds:
        • Indicar o andar atual;
        • Indicar se o elevador já foi chamado;
        • Acionar o motor do elevador e a sua direção (liga/desliga e sobe/desce);
        • Acionar o motor da porta e a sua direção (liga/desliga e abre/fecha).
    • Incluir um temporizado A de 5 segundos para emular o tempo de movimentação do elevador de um andar para o outro e um temporizador B de 2 segundos para emular o tempo de fechamento e abertura da porta.
    • Ao demonstrar o seu funcionamento na placa de FPGA apresentar também a máquina de estados em modo gráfico no padrão Moore. O trabalho pode ser em dupla e utilizar VHDL e ser entregue até a próxima aula.