Symbolic Synthesis of Clock-Gating Logic for Power Optimization of Synchrounous Controllers