This is an extremely simple, ChaCha20 accelerator for the MPW2-C multi project submission. The accelerator is exposed to the Wishbone bus. The state of the accelerator consists of a key-register, an iv/nonce-register, as well as a counter. The Wishbone bus exposes an interface to shift 32-bit words in or out of the key/iv/counter registers, and a status bit to check the status and initialize the permutation. After the permutation is initialized, the key stream can be read in 32-bit chunks. After 16 chunks are read, the counter is automatically incremented and the next key stream block is generated. The core also exposes an (untested) interrupt line, that can be en-/disabled via the status register.
- All the requirements for multi project tools
- The cocotb testbenches additionally require the cocotb-bus library. They also utilize the cocotbext-uart and cocotbext-wishbone extensions, which I have included in this repository.
This project is licensed under Apache 2
