This document describes the implementation of the SHA-2 hashing algorithm on an FPGA. It discusses the SHA-2 algorithm and its variants SHA-224, SHA-256, SHA-384, and SHA-512. It describes the preprocessing, message scheduling, and compression functions of the SHA-256 algorithm in detail. The goal of the project is to implement the SHA-2 hashing algorithm in VHDL to generate hash values of fixed length from arbitrary length messages.