بخشی از مقاله
چکیده - در این مقاله یک ضرب کننده 16 بیتی Vedic توان پایین بر روی FPGA سری Spartan6 پیاده سازی شده است. بوسیلهی تکنیکهای Precomputing و Clock gating توان مصرفی ضرب کننده به میزان 14 درصد کاهش داده شده است. دراین روش ها با استفاده از کاهش فعالیت مدار توان تلفاتی کاهش داده شده است. با کاهش گذرهای صفر به یک توان تلفاتی دینامیک مدار به طور موثر کاهش میابد.این ضرب کننده توان پایین توسط نرم افزار ISE 13.2 طراحی و شبیه سازی شده است.
-1 مقدمه
بلوک ضرب کننده یکی از مهم ترین و اساسی ترین قسمت-های بلوک محاسبه و منطق پردازنده ها می باشد. این مدار ضرب کننده [1] Vedic در پردازنده های سیگنال دیجیتال - DSP - و همچنین تبدیل فوریه - FFT - ، عملیات فیلترینگ و میکروپروسسورها[2,3,4,5] کاربردهای فراوانی دارد. ضرب کننده یکی از بخشهای کلیدی در الگوریتم بسیاری از DSP ها به حساب میآید. بنابراین یک ضرب کننده با سرعت بالا و مصرف توان پایین مورد نیاز میباشد.
همچنین یکی از مهم ترین فاکتورها برای الگوریتمهایDSP ها زمان انجام ضرب دو عدد میباشد. یکی از تکنیک های ریاضی قدیمی که زمان محاسبات ضرب را کاهش میدهد، روش Vedic می باشد. در این روش هم سرعت انجام عملیات ضرب بالا میباشد و هم نیاز به سخت افزار کمتری نسبت به روشهای دیگر است. Vedic لغتی هندی است که از واژهی Veda به معنی "خانه ای که تمام علوم در آن ذخیره شده اند" اقتباس شده است. این مقاله در 4 بخش تهیه شده است. بخش دوم به معرفی ضرب کننده میپردازد. بخش سوم به معرفی طرح پیشنهادی میپردازد. نتایچ شبیه سازی و نتیجه گیری در انتها آورده شده است.
-2 اصول طراحی مدار ضرب کننده
-1-2 ساختار ضرب کننده Vedic
ضرب کننده Vedic یک اصل کلی به نام - Vertically and - Crosswise دارد که عملیات ضرب را با توجه به این اصل انجام میدهد. جهت روشن شدن مطلب، یک مثال برای ضرب اعداد 846×252 که به این روش محاسبه شده است در زیر آمده است. میشود سرعت ضرب افزایش یابد و همچنین از سخت افزار کمتری برای پیاده سازی آن استفاده شود. ضرب اعداد باینری نیز به همین صورت انجام میشود. برای مثال دو عدد باینری دو بیتی A و B را در نظر بگیرید که A - 0 - و B - 0 - کم ارزش ترین بیت A و B و A - 1 - و B - 1 - با ارزش ترین بیت این اعداد میباشند. برای محاسبه ضرب این دو عدد به ترتیب زیر عمل میکنیم : در ابتدا کم ارزش ترین بیت - - LSB حاصل ضرب - - S0 با ضرب کردن یا AND کردن A - 0 - و B - 0 - به دست میآید. - - Vertically
-2-2 تکنیکهای کاهش توان
در مدارات دیجیتال، اتلاف توان استاتیک بیش از 50 درصد از اتلاف توان کل را به خود اختصاص میدهد. که این مقدار با افزایش دما، افزایش مییابد. اتلاف توان داینامیک نیز به مقدار سوئیچینگ در مدار که شامل Clock و glitch می باشد بستگی دارد و همچنین به مقدار خازن بار خروجی نیز وابسته است. در تکنیکهای کاهش توان تلفاتی که در سطح RTL میباشند، نمیتوان انواع توانهای تلفاتی را کاهش داد. در این سطح می توان فقط با مدیریت کردن switching activity توان داینامیک را کاهش داد.
از جملهی این تکنیکها clock gating و precomputing میباشد که در این پروژه از آنها برای کاهش اتلاف توان داینامیک استفاده شده است. در این نوع تکنیک با طراحی و اضافه کردن یک مدار منطقی ترکیبی به مدار اصلی، در مواقعی که ورودی به شکلی است که میتوان خروجی را پیش بینی کرد، دیگر اطلاعات وارد مدار اصلی نمیشوند و خروجی مستقیما مقدار نهایی را میگیرد. در این صورت هیچ switching ی در داخل مدار اصلی نخواهیم داشت و در نتیجه اتلاف توان کاهش پیدا خواهد کرد. در روش clock gating نیز بوسیله یک گیت AND که پایه کلاک اصلی به یکی از پایه های آن وصل شده است میتوان توسط پایه دیگر گیت و یک مدار منطقی ، سیگنال کلاک را کنترل کرد و از switching اضافی در مدار جلوگیری کرد.
-3 طرح ارائه شده
در این طرح از یک مدار ترکیبی برای کنترل clock و خروجی مدار استفاده شده است. این مدار تشکیل شده است از دو عدد گیت OR شانزده ورودی که هر کدام از پورت های ورودی A و B به یکی از گیت های OR وصل می باشد. اگر همهی بیتهای یکی از ورودیها صفر باشد، خروجی گیت OR مربوط به آن ورودی صفر خواهد شد و باعث خواهد شد سیگنال کلاک که با خروجی OR ، AND شده است به لچ ها نرسد و در نتیجه مقادیر جدید A و B وارد ضرب کننده نخواهند شد و همچنین تک تک بیت های خروجی نیز به ورودی یک گیت AND وصل شده اند و ورودی دیگر گیتهای AND همگی به هم متصل شده و به خروجی گیت های OR تشخیص صفر متصل میباشند.
- شکل - 4 هنگامی که یکی از ورودیها کاملا صفر بود، پایهی مشترک AND های خروجی صفر میشود و خروجی P را صرف نظر از ورودیها صفر میکند. به این ترتیب بدون اینکه عملیاتی در داخل ضرب کننده انجام شود و سوئیچینگی اتفاق بیافتد و توان اضافی تلف شود، خروجی صفر خواهد شد. این مدار از نظر تاخیر تفاوت چندانی با مدار اصلی ضرب کننده ندارد زیرا ماکزیمم تاخیر در بین ورودی X - 0 - و خروجی P - 17 - می باشد، که در واقع فقط یک گیت AND بین این دو پورت قرار گرفته است و بقیه مدار به قسمت کلاک ضرب کننده اضافه شده و در مسیر تاخیر نمیباشد پس تاثیری بر روی بیشترین تاخیر مدار نخواهد داشت.
-4 نتایج شبیه سازی
این مدار در نرم افزار ISE طراحی و شبیه سازی شده است. برای شبیه سازی این طرح، توسط فایل Test Bench که به فایل اصلی اضافه شد یک سیگنال کلاک با فرکانس 5 MHz تولید شده است و در هر کلاک پالس یک عددی به A و B داده می شود. شبیه سازی در مدت زمان 5us انجام شده است که 25 کلاک پالس در این مدت زمان اتفاق میافتد. در ده کلاک پالس از این بیست و پنج کلاک پالس ورودی، یکی از ورودیهای A و B صفر در نظر گرفته شده اند و با توجه به این ورودی خاص مقادیر توان تلفاتی محاسبه شده اند که در شکل 5 مشاهده میشوند. در نمودار شکل 5 بیشترین توان تلفاتی داینامیک مربوط به قسمت IOs میباشد. در این شکل نتایج شبیه سازی بدون مدار کاهش اتلاف توان و نیز با اضافه کردن مدار کاهش اتلاف توان - ضرب کننده اصلاح شده - مشاهده میشود.