• Projetos

F - Assembly

Entrega
Quinta - 24/10

Assembly

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
      ....
  1. Quartus: Projeto Quartus para gravar o computador na FPGA
  2. *.py: Scripts em python que automatizam a execução dos testes;
  3. src/*.nasm: Arquivos ASSEMBLY que serão implementados pelo grupo;
  4. 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)
  • sub
    • Arquivo : sub.nasm (lab 11)
  • mov
    • Arquivo : mov.nasm (lab 11)
  • abs
    • Arquivo : abs.nasm (lab 13)
  • max
    • Arquivo : max.nasm (lab 13)
  • mult
    • Arquivo : mult.nasm (lab 13)
  • mod
    • Arquivo : mod.nasm
  • div
    • Arquivo : div.nasm
  • pow
    • Arquivo : pow.nasm
  • É par
    • Arquivo : isEven.nasm
  • String length
    • Arquivo : stringLength.nasm

Conceito B

  • Palindromo
    • Arquivo : palindromo.nasm
  • fatorial
    • Arquivo : fatorial.nasm
  • Mean
    • Arquivo : vectorMean.nasm
  • Chaves e Leds
    • Arquivo : SWeLED.nasm

Conceito A

  • Linha
    • Arquivo : LCDlinha.nasm
    • Edite o arquivo para desenhar uma linha completa
  • Quadrado
    • Arquivo : quadrado.nasm
  • Letra Grupo
    • Arquivo : LCDletraGrupo.nasm

O funcionamento dos arquivos que envolvem SWs, LEDs e LCD deve ser demonstrado na FPGA.

Extra

  • SWeLED2
    • Arquivo : SWeLED2.nasm
  • Nome grupo
    • Arquivo : LCDnomeGrupo.nasm
  • 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

Formulários