A modular cryptographic accelerator system with AES encryption, SHA-256 hashing, and memory interface capabilities.
Documentation: https://docs.uwasic.com/doc/cryptographic-accelerator-A3kJhg6Jnn
This project implements a cryptographic accelerator with the following modules:
- AES - AES encryption core with S-box, MixColumns, and key generation
- SHA - SHA-256 hashing with message schedule and padding
- Control - Control logic with FSMs, queues, and arbiter
- IO - Acknowledgment bus arbiter and module interface
- NoC - Network-on-Chip with crossbar, arbiter, and FIFO
- MemInterface - Memory controller with SPI/QSPI interface
- Top - System-level integration module
Each module is self-contained with its own source files, tests, build infrastructure, and documentation.
# Enter the development environment
# The environment auto-detects project type (digital, analog, or mixed)
./env.sh# Lint a specific module
cd digital/<MODULE>/build/lint
make lint
# Run tests for a module
cd digital/<MODULE>/build/verification
make test
# Run synthesis
cd digital/<MODULE>/build/synthesis
make synthesis├── digital/ # Digital modules
│ ├── AES/ # AES encryption module
│ ├── SHA/ # SHA-256 hashing module
│ ├── Control/ # Control logic and FSMs
│ ├── IO/ # Interconnect bus
│ ├── NoC/ # Network-on-Chip
│ ├── MemInterface/# Memory controller
│ └── Top/ # System integration
├── docs/ # Project documentation
├── flows/ # Build flows and tooling
└── env.sh # Environment setup script
Full documentation is available in the docs/ directory and online.
cd docs/
bun install
bun run dev