• Aulas
  • Setembro
  • 09/09 - Formas de ondas

B - Lógica Combinacional

Data da entrega
Quarta - 09/09

Scrum Master 1

Você é Scrum Master e não sabe por onde começar? De uma olhada nessas dicas: Vixi! Sou Scrum Master

Esse projeto tem como objetivo trabalhar com portas lógicas e sistemas digitais combinacionais (sem um clock) em FPGA e VHDL. Os elementos lógicos desenvolvidos nessa etapa serão utilizados como elementos básicos para a construção do computador.

Instruções

O desenvolvimento será na linguagem VHDL, o grupo deve se organizar para implementar todos os elementos propostos. O facilitador escolhido será responsável pela completude e consistência do branch master do grupo.

Integrantes

Tarefas devem ser criadas no Issues e atribuídas aos demais colegas. As tarefas devem ser resolvidas individualmente! Utilize a ajuda de seus colegas, mas resolva o que foi atribuído a vocês, essa é sua tarefa/ responsabilidade!

Warning

Este projeto é para ser realizado por todos os integrantes do grupo em seus próprios computadores, quem não participar, não implementar os módulos que foram atribuídos, ou não realizar pull-request não ganhará nota de participação individual.

Controle de Tarefas e Repositório

Nas discussões com os outros colegas o scrum master deve definir os módulos que cada um do grupo irá desenvolver. Crie uma rotina para commits e pull-request. Sempre teste os módulos e verifique se está fazendo o esperado.

Facilitador (Scrum Master)

  • Fazer a atualização do fork com o upstream
  • Organizar o github + issues
  • Gerenciar o grupo (atribuir tarefas)
  • Gerenciar os pull-requests
  • Criar relatório da performance de cada um do grupo
  • Entregar/Apresentar o projeto no final

Desenvolvedores

  • Realizar as tarefas atribuidas pelo scrum-master
  • Ajudar na entrega final
  • Testar os códigos
  • Realizar os pull-requests

Arquivos

A pasta contém dois diretórios distintos : src/ e Quartus/. O diretório src contém os arquivos fontes que deverão ser editados para implementar o projeto. O diretório Quartus/ contém o projeto que possibilitará compilar os módulos e testar em hardware.

Entendendo o projeto

A pasta do projeto B no repositório Z01.1-proj possui a seguinte estrutura :

/b_logComb
  logComb_cocotb.py
  test_logComb.py
  /Quartus
  /src
    *.vhd
  1. Quartus: Projeto Quartus que faz uso dos arquivos VHDL localizados em src/*.vhd
    • Serve para programar a FPGA
  2. *.py: Scripts em python automatiza a execução dos testes
  3. src/*.vhd: Arquivos VHDL que serão implementado pelo grupo

Executando o script de teste

Abra o terminal na pasta b_logComb e execute os testes:

$ pytest -s

Entrega

A entrega deve ser feita no ramo main do git.

  • Implementar todos os módulos listados
  • Todos os módulos devem passar nos testes
  • Implementar acionamento do diplay de 7 segmentos e demonstrar na FPGA

Note

Esses arquivos estão localizados em b_logComb/src/

Tip 2

Utilize o VScode para editar os arquivos em vhdl e valide a implementação executando o script de testes.

Arquivos relacionados com cada conceito:

Conceito C+

  • AND 16 bits

    • Arquivo : and16.vhd
    • Descrição : And bit a bit entre duas palavras de 16 bits.
  • OR de 16 bits

    • Arquivo : or16.vhd
    • Descrição : OR bit a bit entre duas palavras de 16 bits.
  • NOT de 16 bits

    • Arquivo : not16.vhd
    • Descrição : NOT bit a bit entre duas palavras de 16 bits.
  • NOR 8 Way

    • Arquivo : nor8way.vhd
    • Descrição : NOR entre 8 bits, resulta em uma única saída
  • OR 8 Way

    • Arquivo : or8way.vhd
    • Descrição : OR entre 8 bits, resulta em uma única saída
  • Demultiplexador de 2 saídas

    • Arquivo : dmux2way.vhd
    • Descrição : Demultiplexa uma entrada binária em duas saídas.
  • Demultiplexador de 4 saídas

    • Arquivo : dmux4way.vhd
    • Descrição : Demultiplexa uma entrada binária em quatro saídas.
  • Demultiplexador de 8 saídas

    • Arquivo : dmux8way.vhd
    • Descrição : Demultiplexa uma entrada binária em oito saídas.
  • Multiplexador de duas entradas de 16 bits

    • Arquivo : mux16.vhd
    • Descrição : Multiplexa duas entradas de 16 bits para uma de 16 bits.
  • Multiplexador 2 entradas de um bit cada

    • Arquivo : mux2way.vhd
    • Descrição : Multiplexa 2 entradas binárias em uma saída binária
  • Multiplexador 4 entradas de um bit cada

    • Arquivo : mux4way.vhd
    • Descrição : Multiplexa 4 entradas binárias em uma saída binária
  • Multiplexador 8 entradas de um bit cada

    • Arquivo : mux8way.vhd
    • Descrição : Multiplexa 8 entradas binárias em uma saída binária
  • Multiplexador 4 entradas de 16 bits cada

    • Arquivo : mux4way16.vhd
    • Descrição : Multiplexa 4 entradas de 16 bits cada em uma saída de 16 bits.
  • Multiplexador 8 entradas de 16 bits cada

    • Arquivo : mux8way16.vhd
  • Deslocador de bits

    • Arquivo : barrelshifter16.vhd

Conceito B+

  • Circuito lógico

    • Arquivo : circuito.vhd
    • Descrição: Primeira questão da lista de exercícios Álgebra Booleana 2
  • Detector de moedas

    • Arquivo : detectordemoedas.vhd
    • Descrição: Questão do detector de moedas da lista de exercícios Álgebra Booleana 2
  • Impressora

    • Arquivo : impressora.vhd
    • Descrição: Questão da impressora da lista de exercícios Álgebra Booleana 2
  • Display de 7s

    • Arquivo: sevenSeg.vhd
    • Descrição: Questão do display de sete segmentos da lista de exercícios Álgebra Booleana 2

Display 7s 3

  1. Esse item é uma continuação do que foi realizado no Lab3, onde vocês tiveram que exibir um valor constante no display de 7s.

Conceito A+

  • Porta xor de 3 entradas

    • Arquivo : xor3.vhd (arquivos e testes não fornecidos)
    • Descrição: Implemente uma porta XOR de 3 entradas utilizando necessariamente apenas um mux8way.
  • O grupo deve apresentar um vídeo da FPGA mostrando nos display de 7 segmentos o seguinte:

    • O valor em hexadecimal da palavra binária formada pelas chaves SW(3 .. 0)
    • O valor em hexadecimal da palavra binária formada pelas chaves SW(9 .. 0)
    • O valor em decimal da palavra binária formada pelas chaves SW(9 .. 0) desafio adicional

Rubricas para avaliação do projeto

Cada integrante do grupo irá receber duas notas: Uma referente ao desenvolvimento total do projeto (Projeto) e outra referente a sua participação individual no grupo.

Grupo

Para atingir os objetivos A+ e B+, deve-se antes atingir o C+.

Conceito Descritivo
I Mais de três módulos (dos arquivos listados em conceito C+) com falha
D Até dois Módulos (dos arquivos listados em conceito C+) com falha
C+ Todos os módulos básicos (arquivos listados em conceito C+) implementados e funcionado
B+ Todos os módulos básicos (arquivos listados em conceito C+) implementados e funcionado
E Módulos adicionais implementados e funcionado (circuito, detector de moedas, impressora)
E Implementar um único display de 7s na FPGA (conta de 0x0 0xF) - anexar video ao repositório
A+ Todos os módulos dos conceitos C+ e B+ implementados e funcionado
E Exibe três dígitos em Hexadecimal na FPGA - anexar video no repositório
E Módulos xor implementado e funcionado
Para testar estes dois últimos, implementar na FPGA ou criar os testes.

Conceito A 4

Sugerimos que vocês reutilizem o módulo sevenSeg.vhd para impementar a exibição dos dígitos na FPGA, para isso devem utilizar uma recurso do VHDL chamado de port map.

Individual

As rubricas a serem seguidas serão comuns a todos os projeto e está descrito no link:

Formulários