SSC-108(bonato) 2017
Índice
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:
Arquivos
- Descrição da disciplina: Arquivo:ApresentacaoCursoSSC0108.pdf
- Pin mapping DE0-CV: Arquivo:DE0 CV Main Pins.zip
- Pin mapping DE2-115: Arquivo:DE2 115 Main Pins.zip
- Manual DE0-CV: ftp://ftp.altera.com/up/pub/Altera_Material/Boards/DE0-CV/DE0_CV_User_Manual.pdf
- Manual DE2-115: ftp://ftp.altera.com/up/pub/Altera_Material/Boards/DE2-115/DE2_115_User_Manual.pdf
- Mini-tutorial de como instanciar e usar memórias: Arquivo:SSC-118 2016 2 Onchip Tutorial.pdf
- Super-registrador com shift e rotate da aula 4 implementado em VHDL com dicas: http://bit.ly/2xLftvU
- Slides auxiliares:
- Projeto 1:
- Descrição: Arquivo:SSC0108 2017 2 P1.pdf
- Módulo debouncer: Arquivo:Verilog debouncer.zip
- Template AP9 pronto para o projeto final - com o jogo atropele o tomate (RECOMENDA-SE USAR ESTE)
- DE0-CV: http://bit.ly/2zRfjlP
- DE2-115: http://bit.ly/2zH4lhQ
- Template AP9 pronto para o projeto final - com o módulo keyviewer, que mostra qual tecla está sendo pressionada
- DE0-CV: http://bit.ly/2fXzKXE
- Templates AP9 com processador (usar apenas em último caso)
- DE2-70: http://bit.ly/2d2OenP
- DE2-115: http://bit.ly/2dDRHs6
- DE0-CV: http://bit.ly/2eh0Xnd
Avisos
ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO
DATA DA REC ALTERADA! DATA DA REC ALTERADA! DATA DA REC ALTERADA! DATA DA REC ALTERADA! DATA DA REC ALTERADA!
NOTAS FINAIS NO AR! NOTAS FINAIS NO AR! NOTAS FINAIS NO AR! NOTAS FINAIS NO AR! NOTAS FINAIS NO AR! NOTAS FINAIS NO AR!
DATA DA REC DEFINIDA (VER ABAIXO)
FELIZ NATAL E COMAM MUITOS CHOCOTONES
ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO ATENÇÃO
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
- Recuperação: 16/02/2018 às 14h no laboratório da aula
Trabalho Final
- 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!
- Envie um e-mail para make.vhdl.not.war@gmail.com com os seguintes dados ATÉ SEXTA-FEIRA DIA 03/11:
- Se você não foi na aula:
- Escolha um jogo do site: http://www.tripletsandus.com/80s/80s_games/nesgames.php e envie o e-mail de acordo com a descrição acima
- O JOGO NÃO PODE SER REPETIDO COM NINGUÉM DA SUA PRÓPRIA TURMA
- JOGOS JÁ ESCOLHIDOS (14H):
- 1944
- Leonardo Vinicius de Almeida
- Tetris
- George Yoshio Tamanaka
- João Vítor Nasevicius Ramos
- Galaga
- Rafael Meliani Veloso
- Gabriel dos Santos Brito
- Super Sprint
- Gustavo Pereira Kobayashi
- Amira Gayatri
- Spelunker
- Giovanni Paolo Meloni
- Guilherme Soares Gama
- Excite Bike
- Matheus Sanchez
- Pedro Paulo Isnard Brando
- Duck Hunt
- João Vitor Guino Rieswick
- Silk Worm
- Matheus Bernardes dos Santos
- Oliver Savastano Becker
- Untitled
- Alexis de Almeida Coutinho
- Luiz Henrique Lourenção
- Gauntlet
- Nicolas Alexandre Expósito
- Gradius
- Guilherme Petrucci
- Tennis
- Paulo Ricardo Jordão Miranda
- Flappy Bird
- Felipe Scrochio Custódio
- Gabriel Henrique Scalici
- Bomberman II
- Eduardo Zaboto Mirolli
- Paulo Henrique Bodnarchuki da Cruz
- Final Fantasy
- Gabriel dos Reis Coutinho
- Enzo Bustamante Junco Mendonça
- Metroid
- Alecxannder Sonnenberg
- Vinicius Finke
- Cobra Command; Space Invaders
- Danilo Henrique Cordeiro
- Giovanni Attina do Nascimento
- Lode Runner
- Nicolas Alexandre Expósito
- 1944
- JOGOS JÁ ESCOLHIDOS (16H):
- Bomberman 2
- Daniel Penna Chaves Bertazzo
- João Victor Garcia Coelho
- Excite Bike
- Lucas Noriyuki Yoshida
- Pietro Souto Ghiringhelli
- 1944
- Alexandre Norcia Medeiros
- Lucas Faria Hermeto
- California Games / Half pipe
- Danilo Leonssio Alves
- Vinicius Luiz da Silva Genésio
- Final Fantasy
- Augusto Torres dos Santos
- Millipede
- Guilherme Milan Santos
- Tetris
- Caroline Jesuíno Nunes da Silva
- José Augusto Noronha
- Pipedream
- Juliana de Mello Crivelli
- Vitor Augusto de Oliveira
- Xevious
- Gustavo Schimiti
- Leonardo Augusto Franco do Amaral
- Dig Dug
- Kaique Lima
- Trog
- Sérgio Ricardo Gomes Barbosa Filho
- Luca Gomes Urssi
- Rollerball
- Gabriel Seiji Matsumoto
- Maurício Hitoshi Murakami
- Car Crash
- Breno Guariglia Perez
- Gabriel Pinheiro de Carvalho
- Klax
- Vanessa A. S. Silva
- Double Dragon 3
- Bruno del Monde
- Vinícius Rodrigues Ribeiro
- Life Force
- Igor Trevelin Xavier da Silva
- Flappy Bird
- Lucas Veiga Betoni
- Kung Fu
- Yan Crisóstomo Rohwedder
- Jayro Boy Neto
- Bomberman 2
Notas
- P1:
- Terça 14h: Arquivo:SSC0108 2017 2 1.pdf
- Terça 16h: Arquivo:SSC0108 2017 2 2.pdf
- P2 e Final:
- Terça 14h: Arquivo:SSC0108 2017 2 1 NF.pdf
- Terça 16h: Arquivo:SSC0108 2017 2 2 NF.pdf
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.
- Atividade prática individual: construa os seguintes circuitos e apresente suas respectivas simulações no Modelsim ao final da aula:
- (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.
- Atividade prática individual:
- (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.
- Atividade prática em dupla (sugere-se que seja a mesma a desenvolver o projeto da ULA):
- (Ter. 19/09): Aula 06: memórias on-chip
- Mini-tutorial de como instanciar e usar memórias: Arquivo:SSC-118 2016 2 Onchip Tutorial.pdf
- (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.
- Desenvolver um módulo VHDL capaz de realizar as mesmas operações do módulo criado na aula 03/04, contendo as seguintes portas:
- Atividade prática:
- (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)
- Utilizar template AP9 sem processador disponível na seção acima de arquivos
- Descrição: http://bit.ly/2fUuuDU
- Diagrama da máquina de estados: http://bit.ly/2faedtv
- Diagrama da máquina de estados (redesenhada): Arquivo:SSC108FSM.pdf
- Template VHDL: http://bit.ly/2fw0YUF
- (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 para cada andar;
- 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 (um para cada andar).
- Saída em Leds:
- Indicar o andar atual;
- Indicar se o elevador já foi chamado (um led para cada andar);
- 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).
- Entrada:
- 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.
- O trabalho pode ser em dupla e utilizar VHDL e ser entregue até a próxima aula. Na apresentação do projeto demonstrar também o desenho da FSM. Este trabalho equivale a duas atividades de laboratório.
- 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: