Synthesized Ver.

Not yet tested by ModelSim