FPGA Synthesis with Retiming and Pipelining for Clock Period Minimization of Sequential Circuits