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
Quartus
: Projeto Quartus que faz uso dos arquivos VHDL localizados emsrc/*.vhd
- Serve para programar a FPGA
*.py
: Scripts em python automatiza a execução dos testessrc/*.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.
- Arquivo :
-
OR de 16 bits
- Arquivo :
or16.vhd
- Descrição : OR bit a bit entre duas palavras de 16 bits.
- Arquivo :
-
NOT de 16 bits
- Arquivo :
not16.vhd
- Descrição : NOT bit a bit entre duas palavras de 16 bits.
- Arquivo :
-
NOR 8 Way
- Arquivo :
nor8way.vhd
- Descrição : NOR entre 8 bits, resulta em uma única saída
- Arquivo :
-
OR 8 Way
- Arquivo :
or8way.vhd
- Descrição : OR entre 8 bits, resulta em uma única saída
- Arquivo :
-
Demultiplexador de 2 saídas
- Arquivo :
dmux2way.vhd
- Descrição : Demultiplexa uma entrada binária em duas saídas.
- Arquivo :
-
Demultiplexador de 4 saídas
- Arquivo :
dmux4way.vhd
- Descrição : Demultiplexa uma entrada binária em quatro saídas.
- Arquivo :
-
Demultiplexador de 8 saídas
- Arquivo :
dmux8way.vhd
- Descrição : Demultiplexa uma entrada binária em oito saídas.
- Arquivo :
-
Multiplexador de duas entradas de 16 bits
- Arquivo :
mux16.vhd
- Descrição : Multiplexa duas entradas de 16 bits para uma de 16 bits.
- Arquivo :
-
Multiplexador 2 entradas de um bit cada
- Arquivo :
mux2way.vhd
- Descrição : Multiplexa 2 entradas binárias em uma saída binária
- Arquivo :
-
Multiplexador 4 entradas de um bit cada
- Arquivo :
mux4way.vhd
- Descrição : Multiplexa 4 entradas binárias em uma saída binária
- Arquivo :
-
Multiplexador 8 entradas de um bit cada
- Arquivo :
mux8way.vhd
- Descrição : Multiplexa 8 entradas binárias em uma saída binária
- Arquivo :
-
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.
- Arquivo :
-
Multiplexador 8 entradas de 16 bits cada
- Arquivo :
mux8way16.vhd
- Arquivo :
-
Deslocador de bits
- Arquivo :
barrelshifter16.vhd
- Arquivo :
Conceito B+
-
Circuito lógico
- Arquivo :
circuito.vhd
- Descrição: Primeira questão da lista de exercícios Álgebra Booleana 2
- Arquivo :
-
Detector de moedas
- Arquivo :
detectordemoedas.vhd
- Descrição: Questão do detector de moedas da lista de exercícios Álgebra Booleana 2
- Arquivo :
-
Impressora
- Arquivo :
impressora.vhd
- Descrição: Questão da impressora da lista de exercícios Álgebra Booleana 2
- Arquivo :
-
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
- Esse item é uma continuação do que foi realizado no Lab3, onde vocês tiveram que exibir um valor constante no display de 7s.
- 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.
- Arquivo :
-
Funções da APS-A
- Arquivo :
carrinho.vhd
- Descrição: Implemente as funções relacionadas a y1 e y2 da APS-A.
- Arquivo :
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: