A Deep Dive into CORDIC Architectures to Implement Trigonometric Functions