Hardware function implementations deal with multidimensional design space metrics: performance (speed), power and area.
These should be taken into account in any work intended for more than just digital design basics.
This paper provides a modern take on these issues: