Thank you for your replies. I changed the circuit by taking out 2 PFETs which is switch. Then the circuit only has Opamp, NFET and LEDs. Can anyone verify this circuit?
I/O ports are switches to provide 0V or 3.3V and the half lower is current sink. This circuit does not turn both LEDs at the same time, it has 3 phases: Led1 on, Led2 off, vice versa and both off. So I think 1 current sink is enough to drive both LEDs.
However, in the same application, I saw someone use H-bridge (4 BJT transistors) to drive the LEDs. Could any one tell me the different between my circuit and that H-bridge? Why do they need H-bridge to drive the circuit while not hook LEDs (with current sink) directly to ucontroller to turn ON/OFF?