Skip to content

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ml-accelerator

Acelerador de redes neurais inspirado na arquitetura SNNAP (Moreau et al., FPGA'15), reduzido para FPGAs de baixo custo: 2 PUs × 4 PEs, aritmética Q9.7, sigmoide em LUT e interface de host via UART (frames com CRC8). Alvos: Tang Nano 9k (27 MHz) e Cyclone IV EP4CE22 (50 MHz).

Estrutura

src/core/      pe, datapath_chain, sigmoid_unit, sigmoid_lut (gerada), snnap_pkg
src/control/   sequencer (FSM de microcódigo)
src/memory/    dp_bram, sync_fifo
src/pu/        snnap_pu (PU completa)
src/io/        uart_rx, uart_tx, host_link
src/top/       snnap_top
tb/            7 testbenches (tb_pe ... tb_top, tb_perf)
scripts/       gen_vectors.py (golden model + vetores), run_sim.sh
docs/          plan.md, microcode_isa.md, performance_report.md

Como rodar (GHDL 4+ e Python 3)

python3 scripts/gen_vectors.py          # gera LUT da sigmoide + vetores de teste
./scripts/run_sim.sh tb_pe              # roda um testbench
./scripts/run_sim.sh tb_pu --wave       # ... com waveform (sim/wave/tb_pu.ghw)
gtkwave sim/wave/tb_pu.ghw              # visualizar

Testbenches: tb_pe, tb_sigmoid, tb_datapath_chain, tb_sequencer, tb_pu, tb_top (sistema completo via UART) e tb_perf (medição de ciclos).

Desempenho medido: ver docs/performance_report.md.

Demo visual (classificador "duas luas")

Treina um MLP pequeno (2→6→1, sigmoide) no dataset sintético "duas luas", quantiza para Q9.7 e roda a inferência — ponto a ponto, de verdade — na snnap_pu via GHDL (tb/tb_demo_classifier.vhd), depois compara com o modelo em float:

python3 -m venv .venv && .venv/bin/pip install numpy matplotlib
.venv/bin/python3 scripts/gen_demo_classifier.py gen
./scripts/run_sim.sh tb_demo_classifier
.venv/bin/python3 scripts/gen_demo_classifier.py plot   # gera docs/demo_moons_result.png

Roteiro de apresentação com esse demo passo a passo: docs/roteiro_apresentacao.md.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages