چکیده فارسی
سخت افزار تکاملی، سخت افزاری است که بتواند ساختار خود را اصلاح کند. این تفکر با پیدایش تکنولوژی FPGAدر بین محققان شروع به رشد کرد. با توجه به اهمیت مدار های ترتیبی همگام در طراحی مدار های منطقی، در این پروژه با یک رهیافت تکاملی سعی در بهینه سازی این گونه مدار ها داریم. درگام اول بهینه سازی، با توجه به اینکه مسئلۀ تخصیص حالت که ذاتاً به این گونه مدار ها مربوط می شود، مسئله ای NP کامل است، سعی داریم با رهیافتالگوریتم ژنتیک تخصیص حالت بهینه مدار را بیابیم. خواهیم دید که یک تخصیص حالت بهینه به طور قابل توجهی در کاهش پیچیدگی بخش ترکیبی مدار ترتیبی تأثیرگذار می باشد. در گام دوم بهینه سازی سعی داریم با رهیافت برنامه نویسی ژنتیکی بخش ترکیبی مدار را از نظر تعداد گیت های معادل و میزان تأخیر انتشار در مدار کاهش می دهیم
مقدمه
سخت افزار تکاملیبخش جدیدی از توسعۀ سخت افزار است که از الگوریتم های تکاملی برای ایجاد سیستم های الکترونیکی استفاده می کند. در حقیقت سخت افزار تکامل یافته، به سخت افزاری گفته می شود که بتواند معماری خودش را به طور پویا و خودکار توسط فرایند انعطاف پذیری چون الگوریتم ژنتیک بهبود ببخشد.
در حقیقت سخت افزار تکاملی از اشتراک علم کامپیوتر، مهندسی الکترونیک و علم زیست شناسی سرچشمه گرفته است.
بعد از سال 1990 ، با توسعۀ تکنولوژی FPGA، محققان به این فکر افتادند که چه طور یک سخت افزار ممکن است با انعطاف پذیری در ارتباط باشد، به طوری که در زمان اجرا نیز قابل برنامه ریزی و باز پیکر بندی باشد. در نتیجه محققان شروع به کار در زمینۀ سخت افزار تکاملی کردند.
یک نمونۀ معمول FPGAشامل ارایه ای از صد ها بلوک قابل پیکربندی است، که می تواند انواع توابع منطقی دیجیتال را اجرا کند. همچنین یک مجموعه از سیم هایی که به ورودی ها و خروجی های بلوک ها وصل شده اند. حال اینکه چه توابع منطقی ای توسط هر کدام از بلوک ها اجرا شود و سیم بندی بین بلوک ها چگونه باشد، توسط سوییچ های الکترونیکی کنترل می شود. تنظیمات مربوط به این سوییچ ها توسط محتوای سلول های حافظۀ پیکربندیFPGAتعیین می شود.
در فرم پایه سخت افزار تکاملی، الگوریتم تکاملی یک جمعیت از کروموزوم ها (به عنوان مثال در FPGA حافظۀ پیکر بندی یک نمادی از کروموزوم می باشد)که هر کدام نمایشگر یک نمونه مدار می باشد را توسط یک سری عملگر های خود تغییر می دهد، سپس به هر مدار یک میزان سودمندی تخصیص می دهد، که نشان دهندۀ این است که مدار ایجاد شده به چه میزان با مشخصات مورد نظر تطبیق می کند. در هر بار تکرار این الگوریتم، مدارها توسط عملگر ها ی الگوریتم ژنتیک تغییر می کنند. در نتیجه جمعیت جدیدی از جمعیت پیشین استنتاج می شود.
سودمندی یک مدار از دو روش تعیین می شود:
- ارزیابی خارجی : هر مدار به طور مجازی شبیه سازی می شود، در اخر بهترین مدار از جمعیت اخرین مرحله تکرار به طور فیزیکی اجرا می شود. (در این پروژه ما این روش را اتخاذ کردهایم)
- ارزیابی درونی : هر مدار از جمعیت، در هر تکرار از الگوریتم به طور فیزیکی روی سخت افزار واقعی اجرا می شود.
در این پروژه قصد داریم با الهام از الگوریتم های تکاملی، بهینه سازی مدل میلی مدار های ترتیبی همزمان را شبیه سازی کنیم. این بهینه سازی در دو مرحله صورت می گیرد:
- بهینه سازی تخصیص حالت: نشان می دهیم که یک تخصیص حالت بهینه به طور قابل ملاحظه ای در کاهش پیچیدگی اجزای بخش ترکیبی مدار تأثیر گذار است.در این مرحله الگوریتم ژنتیکی که این بهینه سازی را انجام دهد طراحی میکنیم.
- بهینه سازی بخش ترکیبی مدار: در این مرحله از پروژه سعی داریم مدار ترکیبی که از نظر تأخیر
انتشار و تعداد گیت های معادل کاهش یافته باشد را ایجاد کنیم. در این مرحله با رهیافت برنامه
نویسی ژنتیکی مدار های ترکیبی را بهینه می کنیم.
شرح مختصری از مطالبی که در فصل های اینده به ان می پردازیم، در ذیل اورده شده است :
فصل اول، مطالبی در بارۀ اصول الگوریتم ژنتیک بیان شده است.
فصل دوم، مسئلۀ تخصیص حالت را بررسی می کنیم و نشان می دهیم که یک تخصیص حالت بهینه به طور قابل ملاحظه ای در کاهش پیچیدگی اجزای بخش ترکیبی مدار تأثیر گذار است. و در اخر، الگوریتم ژنتیک به کار رفته را به طور مختصر بیان می کنیم.
فصل سوم، مطالبی در بارۀ اصول برنامه نویسی ژنتیکی پایه بیان شده است.
فصل چهارم، مفاهیمی چون ماکزیمم تأخیر انتشار و تعداد گیت های معادل در یک مدار را توضیح داده و کارهای انجام شده در جهت حداقل سازی این پارامتر ها را بیان می کنیم. و در اخر رهیافت تکاملی ارائه شده برمبنای برنامه نویسی ژنتیکی را شرح می دهیم.
فصل پنجم، نتایج حاصل از اجرای پروژه و مقایسه با روش مرسوم