F Assembly Projeto - guidiamond/Z01.1-Insonia GitHub Wiki
- Entrega : Terça Feira - 16/4/2018
Nesse projeto cada grupo terá que implementar diversos códigos em assembly a fim de entendermos a linguagem e as limitações do hardware propostos.
Instruções
Seguir as intruções a seguir para desenvolvimento do projeto.
Entendendo a Organização do Projeto
A pasta do projeto D, no repositório Z01, possui a seguinte estrutura:
F-Assembly/
testeAssembly.py
Z01simulator.py
/Quartus
/src
/nasm
*.nasm
/tests
/tst
/abs
/add
....
Quartus: Projeto Quartus para gravar o computador na FPGA*.py: Scripts em python que automatizam a execução dos testes;src/nasm/*.nasm: Arquivos ASSEMBLY que serão implementados pelo grupo;tests/tst/*: Arquivos que realizam o teste nos arquivos códigos do rtl.
Executando o Script de Teste
Abra o terminal na pasta F-Assembly/ e execute o script python localizado nessa pasta:
$ ./testeAssembly.py
O mesmo irá compilar os arquivos src/rtl/*.nasm e executar os testes unitários em cada um deles. Nesse momento do teste, como os módulos não estão implementados, o resultado deverá ser falho.
Esse comando executa um teste unitário em cada um dos módulos, verificando se sua implementação está correta. O resultado é exibido na tela como : pass ou fail.
- Lembrando que o arquivo tests/config.txt define quais
- testes serão executados.
Projeto
Deve-se implementar diversos programas na linguagem de máquina do Z01 que irão manipular a memória RAM a fim de implementar o que é pedido. A descrição a seguir está classificada em ordem de dificuldade, começando pelos mais simples.
Módulos
- Esses arquivos estão localizados em
F-Assembly/src/nasm/
A descrição de cada módulo está localizada no cabeçalho do arquivo.
- mov
- Arquivo :
mov.nasm
- Arquivo :
- add
- Arquivo :
add.nasm
- Arquivo :
- sub
- Arquivo :
sub.nasm
- Arquivo :
- abs
- Arquivo :
abs.nasm
- Arquivo :
- pow
- Arquivo :
pow.nasm
- Arquivo :
- fatorial
- Arquivo :
fatorial.nasm
- Arquivo :
- mod
- Arquivo :
mod.nasm
- Arquivo :
- Chaves e Leds
- Arquivo :
SWeLED.nasm
- Arquivo :
- Linha
- Arquivo :
line.nasm
- Arquivo :
- Quadrado
- Arquivo :
quadrado.nasm
- Arquivo :
- Letra Grupo
- Arquivo :
LCDletraGrupo.nasm
- Arquivo :
Conceito B
- String length
- Arquivo :
stringLength.nasm
- Arquivo :
- É par
- Arquivo :
isEven.nasm
- Arquivo :
- Palindromo
- Arquivo :
palindromo.nasm
- Arquivo :
- Nome grupo
- Arquivo :
LCDnomeGrupo.nasm
- Arquivo :
Conceito A
- Nome grupo
- Arquivo :
jogo.nasm
- Arquivo :
Rubricas para avaliação de projetos
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 (que depende do seu papel).
Projeto
| Conceito | |
|---|---|
| I | - Menos da metade dos módulos funcionando |
| D | - Ao menos um módulo não está feito e não passa no testes. |
| C | - Configurou o travis para operar com o novo projeto. |
| - Todos os módulos sendo testados no Travis. | |
| - Todos os módulos passam nos testes. | |
| - Programa que desenha a letra do grupo no LCD | |
| B | - Escreve o nome do grupo no LCD |
| (grava vídeo) | |
- Implementa os módulos extras (stringLength.nasm, ... ) |
|
| A | - Faz algum jogo com o Z01.1 (jogo.nasm) |
| (grava vídeo) |
A seguir algumas dicas:
B
Faça um programa em python que gere automaticamente um código em assembly de um texto. Existem várias alternativas:
- A entrada do programa é um .png e a saída é um código em nasm
- A entrada do programa é uma tabela do excel e a saída é um código em nasm
A
Não precisa ser um jogo complexo, pode ser algo como um "Genius" com os LEDs e botões.