Laboratório: Familiarização com a DE1-SoC

Laboratório: Familiarização com a DE1-SoC

Este laboratório é um tutorial para familiarização com a placa de desenvolvimento FPGA DE1-SoC. O objetivo principal é utilizar alguns componentes de entrada e saída básicos da placa e praticar o desenvolvimento de circuitos simples.

Ver histórico de mudanças

Changelog

Versão Data Descrição
v2025.1 21/fev/2025 Versão inicial

Disciplina

Este laboratório faz parte da disciplina MC613 - Laboratório de Circuitos Digitais. Ver oferecimento mais recente.

Entrega

  • A entrega deverá estar em único arquivo .ZIP contendo todos e apenas os arquivos listados abaixo.
  • O nome do arquivo ZIP deve ser RA<RA>.zip, onde <RA> é o RA do componente do grupo que fará a entrega. Por exemplo, RA123456.zip é a entrega do grupo do aluno com o RA 123456.
  • Os nomes dos arquivos dentro do ZIP devem ser seguidos.
  • Se mais do que um arquivo for recebido para a mesma entrega, apenas o último recebido dentro do prazo será considerado.
  • O cumprimento ou não dessas instruções fará parte dos critérios de avaliação.

Arquivos que fazem parte da entrega:

  • key2dec.pdf: Diagrama de blocos para o projeto da atividade 1
  • key2dec.vhd: Descrição em VHDL da entidade da atividade 1
  • key2dec_tb.vhd: Test bench da entidade da atividade 1
  • swxor.pdf: Diagrama de blocos para o projeto da atividade 2
  • swxor.vhd: Descrição em VHDL da entidade da atividade 2
  • swxor_tb.vhd: Test bench da entidade da atividade 2
  • ledshift.pdf: Diagrama de blocos para o projeto da atividade 3
  • ledshift.vhd: Descrição em VHDL da entidade da atividade 3
  • ledshift_tb.vhd: Test bench da entidade da atividade 3

Link para entrega: https://ic.unicamp.br/~isaias/mc613/entrega.

Atividades do laboratório

  1. Crie uma entidade chamada key2dec (arquivo key2dec.vhd) que converta a representação binária sem sinal de um número inserido através dos pushbuttons (KEY(3 downto 0)) em decimal e exiba a representação decimal no visor de 7 segmentos HEX0. Deixe o visor completamente apagado para números maiores do que 9.

  2. Crie uma entidade chamada swxor (arquivo swxor.vhd) que mostre nos leds vermelhos LEDR(i), onde i vai de 1 a 9, o resultado da operação SW(i) xor SW(i-1), conforme entrada nos switches. Deixe o LEDR(0) sempre apagado.

  3. Crie uma entidade chamada ledshift (arquivo ledshift.vhd) que, inicialmente, exiba na placa apenas o led vermelho LEDR(5) aceso e os demais apagados. A cada toque no pushbutton KEY(3) o led aceso deve deslocar uma posição para a esquerda (por exemplo, do LEDR(5) para o LEDR(6)), e a cada toque no pushbutton KEY(0) o led aceso deve deslocar uma posição para a direita (por exemplo, do LEDR(5) para o LEDR(4)). Ao chegar aos extremos (LEDR(0) e LEDR(9)), o botão que deslocaria o led aceso para o lado onde não há mais leds não deve exercer função nenhuma.