• Projetos

B - Lógica Combinacional

Data da entrega
Sexta - 06/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 + project
  • 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

Note

No exemplo de teste verificamos que aimplementação da nand está errada.

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.
  2. Para cada segmento do display, vocês devem encontrar uma equação booleana que o represente, e então implementar em VHDL e testar na FPGA.

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.
  • Funções da APS-A

    • Arquivo : carrinho.vhd
    • Descrição: Implemente as funções relacionadas a y1 e y2 da APS-A.

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 (do conceito C+) com falha
D Até dois Módulos (do conceito C+) com falha
C+ Todos os módulos básicos implementados e funcionado
B+ Módulos adicionais implementados e funcionado (circuito, detector de moedas, impressora)
Implementar um único display de 7s (conta de 0x0 0xF) - anexar video ao repositório
A+ Exibe três dígitos em Hexadecimal na FPGA - anexar video no repositório
(exibir até o valor 0x3FF = 2^10 - 1)
Módulos adicionais implementados e funcionado (xor, carrinho)
Implemente as funções relacionadas a y1 e y2 da APS-A na FPGA - anexar video no repositório

Conceito A 4

Vocês devem implementar o "exibe hexadecimal" no arquivo conceito_a.vhd. Tem um teste para os módulos, você pode testar incluindo o arquivo de configuração de testes.

Sugerimos que vocês reutilizem o módulo sevenSeg.vhd, 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