This a simple coprocessor that implements some cryptographic algorithms. Specifically, some of the ones in the proposed RISC-V crypto extension in the NIST Suite for RV32. It includes the following instructions:
Along with some load instructions necessary to get data into the coprocessor:
Through this project I learned more advanced verilog than I previously had experience with, along with how to use verilog build tools like Icarus Verilog, and how to use Make with it.
Here is a link to the project: https://github.com/AidenPetersen/crypto-coproc
Prior to this project I was inexperienced with sequential HDL programming, so I used HDLBits to learn verilog better, along with the RISC-V cypto extention repository.
This project was thought of and written entirely by me.