کدگذاری حالتی برای قدرت کم
کدگذاری حالتی برای قدرت کم () یک الگوی منحصر به فرد از صفر و یک را به هر حالت تعریف شده ازماشین حالات متناهی(FSM) اختصاص می‌دهد. به‌طور سنتی، معیار طراحی برای سنتز FSM سرعت، مساحت یا هر دو بود. با توجه به قانون مور، با پیشرفت تکنولوژی تراکم و سرعت مدارهای مجتمع به‌طور نمایی افزایش یافته‌است. با این کار، ناگزیر اتلاف قدرت در هر ناحیه افزایش می‌یابد، که باعث شده‌است طراحان برای دستگاه‌های رایانه‌ای قابل حمل و پردازنده‌های با سرعت بالا در هنگام طراحی به اتلاف قدرت به عنوان یک پارامتر حیاتی توجه کنند.
سنتز FSM شامل سه مرحله عمده می‌شود:
برخی از تکنیک‌هایی که به‌طور گسترده برای رمزگذاری حالت استفاده می‌شوند عبارتند از: در این روش تعداد بیت‌ها (b) به ازای هرحالت بستگی به تعداد حالت‌ها (n) دارد. این رابطه با معادله زیر تعریف می‌شود: در این تکنیک، حالت‌ها در توالی باینری اختصاص داده می‌شوند که در آن حالت‌ها با شروع از صفر و شماره‌گذاری می‌شوند. واضح است که تعداد فلیپ فلاپ‌های مورد استفاده برابر با تعداد بیت(b) است. از آنجا که رمزگذاری باینری از حداقل تعداد (flip-flops) برای رمزگذاری یک ماشین استفاده می‌کند، فلیپ فلاپ‌ها به‌طور حداکثر استفاده می‌شوند. در نتیجه در مقایسه با روش گدگذاری داغ منطق ترکیبی بیشتری برای تقسیم هر حالت مورد نیاز است. همچنین در مقایسه با گدگذاری‌داغ تعداد flip-flops کمتری نیاز است اما فاصله همیلتنی به اندازه تعداد بیت‌ها (b) است که رقم بدتری است.  b = log2(n) تعداد فلیپ فلاپ‌های مورد استفاده و پیچیدگی منطق رمزگشایی در این روش مشابه رمزگذاری دودویی است. اما فاصله همینگ در کد خاکستری همیشه برابر۱ است. سایر تکنیک‌های رمزگذاری رمزگذاری مبتنی بر خروجی، MUSTANG, NOVA
برای شمارنده‌ها، کد گری دارای حداقل فعالیت سوئیچینگ است و بنابراین برای طراحی با قدرت کم مناسب است. کدگذاری گری زمانی که حالت‌ها به صورت ترتیبی تغییر می‌کنند، مناسب تر است. در تغییر حالت دلخواه، کد FSM Gray برای طراحی‌های کم قدرت ناکام می‌ماند. برای چنین FSMهایی، رمزگذاری داغ تضمین می‌کند برای هر تغییر حالت تنها دو بیت تغییر می‌کنند. اما از آنجا که تعداد متغیرهای حالت مورد نیاز برابر با تعداد حالت‌ها است، با افزایش تعداد حالت‌ها، رمزگذاری داغ به یک راه حل غیرعملی تبدیل می‌شود، عمدتاً به این دلیل که با افزایش تعداد ورودی و خروجی‌های مدار، پیچیدگی و بار خازنی افزایش پیدا می‌کند. برنامه‌نویسی باینری بدترین حالت برای قدرت کم است زیرا حداکثر فاصله همینگ برابر با تعداد متغیرهای حالت است. نیاز به یک راه حل برای تغییر حالت خودسرانه FSM منجر به تکنیک‌های رمزگذاری حالت متعددی شده‌است که تمرکز آن‌ها بر روی کاهش فعالیت سوئیچینگ در هنگام انتقال حالت است.
هدف این رویکرد این است که به وسیله مدارهای ترتیبی و انتخاب حالاتی که باعث کمینه شدن تغییر حالت‌ها شود، اتلاف انرژی را کاهش دهد؛ بنابراین بخش ترکیبی FSM دارای احتمال انتقال ورودی پایین‌تری است و بیشتر شبیه به تخلیه قدرت کم هنگام تولید است. این الگوریتم از ماتریس بولینی با ردیف‌های متناظر با کدهای حالت و ستون‌های متناظر با متغیرهای حالت استفاده می‌کند. یک متغیر حالت تنها در یک زمان در نظر گرفته شده‌است و تلاش می‌کند مقدارش را به حالتی در FSM اختصاص دهد، به‌طوری‌که دوست دارد تعداد سوئیچینگ برای تخصیص کلی را به حداقل برساند. این روش برای متغیر بعدی تکرار می‌شود. از آنجا که روش کمینه‌سازی ستون بر روی ستون‌ها اعمال می‌شود، این روش به عنوان رویکرد مبتنی بر ستون نامگذاری شده‌است.
تکنیک تخصیص حالت چندمنظوره(multi-code) به وسیله محدود کردن حالت‌های اضافه، به صورت اولویت‌بندی شده کدگذاری می‌کند؛ بنابراین هر حالت می‌تواند توسط تعداد متغیرحالت (بیت) کمتری رمزگذاری شود. علاوه بر این فلیپ-فلاپ‌های مربوط به حالت‌های غایب می‌توانند گیت‌های کلاک باشند.
این روش از اطلاعات حلقه پویا که از داده‌های پروفایل FSM استخراج می‌شوند استفاده کرده و برای کاهش سوئیچینگ استفاده می‌شود. در زیر مراحل استفاده شده در این تکنیک آمده‌است: