F - Assembly
Entrega |
---|
Quinta - 24/10 |
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 instruções a seguir para desenvolvimento do projeto.
Entendendo a Organização do Projeto
A pasta do projeto F, no repositório Z01, possui a seguinte estrutura:
f_Assembly/
compileALL.py
test_CPU.py
CPU_cocotb.py
Z01simulator.py
/Quartus
/src
*.nasm
/tests
/abs
/add
....
Quartus
: Projeto Quartus para gravar o computador na FPGA*.py
: Scripts em python que automatizam a execução dos testes;src/*.nasm
: Arquivos ASSEMBLY que serão implementados pelo grupo;tests/*
: 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:
$ ./compileALL.py
$ pytest -s
O mesmo irá compilar os arquivos src/*.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.
Tip 1
O arquivo config_testes_nasm.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/
A descrição de cada módulo está localizada no cabeçalho do arquivo.
- add
- Arquivo :
add.nasm
(lab 11)
- Arquivo :
- sub
- Arquivo :
sub.nasm
(lab 11)
- Arquivo :
- mov
- Arquivo :
mov.nasm
(lab 11)
- Arquivo :
- abs
- Arquivo :
abs.nasm
(lab 13)
- Arquivo :
- max
- Arquivo :
max.nasm
(lab 13)
- Arquivo :
- mult
- Arquivo :
mult.nasm
(lab 13)
- Arquivo :
- mod
- Arquivo :
mod.nasm
- Arquivo :
- div
- Arquivo :
div.nasm
- Arquivo :
- pow
- Arquivo :
pow.nasm
- Arquivo :
- É par
- Arquivo :
isEven.nasm
- Arquivo :
- String length
- Arquivo :
stringLength.nasm
- Arquivo :
Conceito B
- Palindromo
- Arquivo :
palindromo.nasm
- Arquivo :
- fatorial
- Arquivo :
fatorial.nasm
- Arquivo :
- Mean
- Arquivo :
vectorMean.nasm
- Arquivo :
- Chaves e Leds
- Arquivo :
SWeLED.nasm
- Arquivo :
Conceito A
- Linha
- Arquivo :
LCDlinha.nasm
- Edite o arquivo para desenhar uma linha completa
- Arquivo :
- Quadrado
- Arquivo :
quadrado.nasm
- Arquivo :
- Letra Grupo
- Arquivo :
LCDletraGrupo.nasm
- Arquivo :
O funcionamento dos arquivos que envolvem SWs, LEDs e LCD deve ser demonstrado na FPGA.
Extra
- SWeLED2
- Arquivo :
SWeLED2.nasm
- Arquivo :
- Nome grupo
- Arquivo :
LCDnomeGrupo.nasm
- Arquivo :
- excelToLCD.py
- Arquivo :
excelToLCD.py
- Criar um programa em python que converte um tabela do excel (onde cada célula equivale a um px pintado) em um código nasm que executa no Z01 e gera a imagem da tabela
- Arquivo :