All notable changes to this project are documented here.
The format follows Keep a Changelog. This project does not use semantic versioning — changes are tracked by milestone.
- FSM control unit for MAC orchestration
- SRAM/BRAM on-chip memory module
- Systolic array (2D MAC grid)
- AXI4 / AXI-Stream bus wrapper
- Multi-dataset support: CIFAR-10, Tiny-ImageNet (auto-download), ImageNet (manual)
- Model factory
get_model()dispatching SimpleCNN / ResNet-18 / ResNet-50 per dataset - Dataset-aware hyperparameter presets (
DATASET_PRESETSinconfig.py) - Configurable optimizer: Adam and AdamW with weight decay
- Hardware package restructuring:
units/,bus/,testbenches/ cleaner.shfor artifact cleanup with--forceflagdata_purge.pyfor GPU VRAM and system RAM releaseinitializer.shmulti-package-manager support (uv / poetry / conda / pip)--datasetand--managerflags ininitializer.sh- Community files:
CODE_OF_CONDUCT.md,CONTRIBUTING.md,SECURITY.md - GitHub PR template and issue templates
SimpleCNNscaled from 16/32 to 32/64 filters (+5% val acc on CIFAR-10)Trainerclass refactored withMetricsdataclass (from Jérémy Alcime's PR #4)- Checkpoint now stores
optimizer_state_dict,scheduler_state_dict,epoch,best_acc - Checkpoint filename is now dataset-dependent (
cifar10.pth,tiny_imagenet.pth) - All
print()replaced byloggingmodule intrain.py,dataset.py,testbench.py train.pynow usesapply_dataset_preset()for automatic hyperparameter coordination
- Testbench always uses CIFAR-10 for pixel extraction regardless of active dataset
avg_loss()now derives window frommetrics.totalinstead ofbatch_idx- Duplicate
metrics.lossaccumulation removed fromtrain_one_epoch() - Missing f-strings in logger calls corrected
- AMP
autocastandGradScalerwired correctly in training loop
SimpleCNNCNN architecture (PyTorch) with hardware-aware design- CIFAR-10 training pipeline with CosineAnnealingLR and model checkpointing
MACUnitcycle-accurate MAC hardware unit in Amaranth HDL- Verilog RTL export from Amaranth (
mac.v) - HW/SW co-simulation testbench with int8 quantization and assertion
- VCD waveform generation for GTKWave inspection
- Pydantic-based unified configuration (
src/config.py) uvproject management withpyproject.tomlREADME.mdwith full setup, usage, and GTKWave guide