عنوان پایان‌نامه

محاسبه و درستی سنجی ممیز شناور در سیستمهای نهفته



    دانشجو در تاریخ ۲۶ دی ۱۳۹۴ ، به راهنمایی ، پایان نامه با عنوان "محاسبه و درستی سنجی ممیز شناور در سیستمهای نهفته" را دفاع نموده است.


    محل دفاع
    کتابخانه دانشکده برق و کامپیوتر شماره ثبت: E 2860;کتابخانه مرکزی -تالار اطلاع رسانی شماره ثبت: 72178
    تاریخ دفاع
    ۲۶ دی ۱۳۹۴
    استاد راهنما
    بیژن علیزاده ملفه

    امروزه، سیستم ممیز شناور در بسیاری از کاربرد ها در سیستم¬های نهفته مورد توجه قرار گرفته است. دلیل این امر بازه¬ی وسیع اعدادی است که این سیستم قادر به نمایش آن می¬باشد. از طرف دیگر در سال های اخیر، تراشه های قابل برنامه¬ریزی نیز به طور گسترده برای پیاده سازی مدار¬های منطقی پیچیده استفاده می شوند، بنابراین در بعضی از کاربرد ها، طراحان مدار های دیجیتال به پیاده-سازی عبارت های ریاضی ممیز شناور بر روی تراشه های قابل برنامه ریزی روی آورده اند تا کارایی و سرعت محاسبات ممیز شناور را تا حد ممکن افزایش دهند. با وجود این که پیاده سازی عبارت های ممیز شناور بر روی تراشه های قابل برنامه ریزی مزایای فراوانی دارد، توجه به بعضی از پارامتر ها مانند دقت عبارت ممیز شناور، تعداد منابع مصرفی، سرعت و توان مصرفی ضروری است، زیرا یک پیاده سازی غیربهینه می تواند خطای زیادی در محاسبات داشته باشد، مقدار زیادی از منابع را مصرف کند، سرعت را کم نماید و توان مصرفی زیادی داشته باشد. تغییرات سطح بالا در عبارت های ممیز شناور مانند تغییر شکل عبارت ریاضی یا تعیین عرض مانتیس و توان، تاثیر به سزایی در پارامتر های مهم در پیاده سازی نهایی دارد. ما در این پایان نامه سه روش متفاوت برای بهینه سازی عبارت های ممیز شناور برای پیاده سازی بر روی تراشه-های قابل برنامه ریزی ارائه می دهیم. این روش ها با تغییر شکل عبارت ممیز شناور و تعیین عرض مناسب برای مانتیس و توان، عبارت هایی را در اختیار طراح قرار می دهند که برای پیاده سازی نهایی بر روی تراشه مناسب هستند. در روش اول بهینه سازی، سه پارامتر از طراح دریافت میشود. این پارامتر ها اهمیت دقت، مساحت و تاخیر را برای طراح مشخص می کنند. با استفاده از این سه پارامتر، تنها بخشی از فضای طراحی هدف قرار می گیرد و عبارت های موردنظر در اختیار طراح قرار می گیرند. ما در این روش ضمن بهبود زمان اجرای فاز اول و دوم بهینه سازی تا حدود 34 و 40 درصد، توانستیم با انتخاب پارامتر های بهینه سازی متفاوت، مقادیر خطا، مساحت و تاخیر را به صورت متوسط 17.7، 22.2 و 22 درصد بهبود دهیم. در روش دوم بهینه سازی که انتخاب منظم نامیده می شود، ما با استفاده از الگوریتم پارتو یک مجموعه ی غیرچیره به صورتی استخراج می کنیم که کل فضای طراحی را پوشش دهد و طراح بتواند عبارت دلخواه خود را در مجموعه ی غیرچیره ی نهایی پیدا کند. هم چنین یک روش انتخاب سریع نیز برای افزایش سرعت بهینه سازی ارائه می شود. سرعت اجرای روش انتخاب سریع به صورت متوسط 45 بار از روش انتخاب منظم بیشتر است و کیفیت نتایج تفاوت چندانی با روش انتخاب منظم ندارد. در روش سوم بهینه سازی، انتخاب عرض مانتیس و توان مناسب نیز مورد توجه قرار گرفته است و به این منظور متدولوژی متفاوتی برای بهینه سازی ارائه شده است. این متدولوژی بر پایه ی تولید عبارت های برابر، تولید سه انتخاب برای عرض مانتیس و در نهایت انتخاب عبارت-هایی با کمترین تعداد منابع مصرفی و عرض مانتیس و توان مناسب می باشد. مقدار بهبود تعداد منابع مصرفی در این روش نسبت به روش انتخاب منظم، انتخاب سریع و انتخاب با استفاده از پارامترهای دریافتی از طراح به ترتیب 29.7، 53.7 و 21.9 درصد می باشد. مدار های محاسباتی ممیز شناور طراحی شده معمولا پیچیدگی بسیار بالایی دارند و ممکن است در آنها اشکال هایی وجود داشته باشد، بنابراین درستی سنجی مدار های طراحی شده ضروری است. از آنجایی که این مدارهای محاسباتی از واحد های جمع کننده و ضرب کننده تشکیل شده اند، بررسی درستی این واحد های محاسباتی می تواند به درستی سنجی کل مدار کمک نماید. ما در این پایان نامه روشی برای درستی سنجی مدارهای محاسباتی صحیح ارائه داده ایم که قادر است در زمانی کوتاه درستی عملکرد مدار را بررسی نماید. طبیعی است که روش ارائه شده می تواند برای درستی سنجی جمع کننده ها و ضرب¬کننده های صحیحی که بخش عمده ای از واحد های محاسباتی ممیز شناور را تشکیل می دهند استفاده شود. واژه‌های کلیدی: عبارت ممیز شناور، بهینه سازی سطح بالا، تراشه ی قابل برنامه ریزی، درستی سنجی
    Abstract
    Nowadays, floating point system is becoming popular in many applications because of supporting a large range of real numbers. Moreover, Field programmable gate arrays (FPGAs) are widely used in implementation of complex digital circuits. Therefore, in many applications, designers were motivated to implement floating point arithmetic expressions on FPGAs in order to improve the speed and performance of floating point computations. Implementation of floating point expressions on FPGA enjoys many advantages; however, some parameters such as accuracy, area, delay, and power should be taken into account for a high quality implementation. A bad implementation has a large error, consumes a lot of resources, decreases the speed, and consumes a considerable power. High level changes in expressions such as changing the form of floating point expression by arithmetic rules or deciding on the exponent and mantissa widths play important roles in optimization of final implementation. In this research, we propose three optimization methods to optimize the floating point expressions for implementation on FPGA. In the first optimization method, the floating point expressions are optimized by three parameters provided by the designer. These parameters specify the importance of accuracy, area, and delay for the designer. In this method, the run-times for phase 1 and 2 have been improved up to 34% and 40%, respectively. Moreover, by choosing different parameters, we can improve the average accuracy, area, and delay by 17.7%, 22.2%, and 22%, respectively. The second optimization method is called Regular Selection. In this method, a non-dominated set is extracted from equivalent expressions by applying Pareto algorithm. This non-dominated set covers the whole design space, and the designer finds desirable expressions in this set. To speed up the process of optimization, we propose another method called Fast Selection. Fast Selection combines the phase 1 and phase 2 in order to speed up the optimization while the quality of final results is still high. The run-time of Fast Selection is approximately 45 times shorter than that of Regular Selection. In the third optimization method, the optimization of exponent and mantissa widths are taken into account, so we propose a different optimization methodology. This methodology is based on generating equivalent expressions, generating three choices for mantissa width, and selecting expressions with minimum resource usage. Area improvements in this method in comparison with Regular Selection, Fast Selection, and optimization with designer’s parameters are 29.7%, 53.7%, and 21.9%, respectively. Floating point arithmetic circuits are usually complex, and it increases the possibility of bug presence in these circuits. Therefore, verification of these circuits is necessary before utilization. Integer multipliers and adders form a large part of floating point circuits; therefore, verification of integer operators plays an important role in guarantying the correctness of the whole design. In this research, we propose a new method in order to verify integer operators in a short time.