This project was done for a SoC class during my undergrad. It involved modeling the hardware part of a system for the Diffie-Hellman key exchange algorithm in SystemC.
The software side of this project was given to us. Our task was to design the SW -> HW handshaking as well as design a datapath and controller for the hardware multiplier. This involved implementing and connecting all of the different required components in SystemC. My data path is shown below: