عنوان پایاننامه
رهیافتی کنش گرا برای توصیف و سنتز سخت افزار
- رشته تحصیلی
- مهندسی کامپیوتر-معماری کامپیوتر
- مقطع تحصیلی
- کارشناسی ارشد
- محل دفاع
- کتابخانه مرکزی پردیس 2 فنی شماره ثبت: E 3116;کتابخانه مرکزی -تالار اطلاع رسانی شماره ثبت: 79314;کتابخانه مرکزی پردیس 2 فنی شماره ثبت: E 3116;کتابخانه مرکزی -تالار اطلاع رسانی شماره ثبت: 79314
- تاریخ دفاع
- ۰۳ مهر ۱۳۹۵
- دانشجو
- محمدکامیار مهاجرانی
- استاد راهنما
- زین العابدین نوابی شیرازی, سعید صفری
- چکیده
- زبانهای توصیف سختافزار رایج مانند Verilog و VHDL که در آغاز به عنوان زبانهای شبیهسازی معرفی شده بودند، با متداول شدن روش توصیف در سطح انتقال ثبات و پیشرفت ابزارهای سنتز، به راهکار اصلی طراحی مدارهای دیجیتال تبدیل شدهاند. ولی طراحی در سطح انتقال ثبات، قابلیت لازم برای گسترش به ساختارهای پیچیده و بزرگ را ندارد. در پی افزایش پیچیدگی طراحیها، روشهای توصیف سطح سیستم معرفی شدند که با به کارگیری زبانهای نرمافزاری، توصیف سامانههای بزرگ در سطح بالا و کاوش در فضای طراحی را امکانپذیر میکنند. سنتز سطح بالا برای تبدیل این توصیفهای نرمافزاری به سختافزار سالهاست که مورد پژوهش قرار گرفته ولی کماکان با چالشهای بسیاری مواجه است. علاوه بر آن، سطح زبان و طراحی آنقدر بالاست که ایدهها و ابتکارهای طراح برای پیادهسازی ریزمعماری، در طی فرایند طراحی و سنتز، ناپدید میشوند. یک راهکار امیدوارکننده برای پرکردن این شکاف، رهیافت کنشگرا برای توصیف و سنتز سختافزار است. این رهیافت امکان گسترش طراحی به سطوح بالاتر تجرید را دارد و در عین حال امکان دسترسی به جزئیات سطح پایینتر را نیز در اختیار طراح میگذارد. این رهیافت بر اساس نظریهی «سامانههای رونویسی عبارت» و «دستورات نگهبانیشده»ی دایکسترا شکل گرفته و از سالهای آغازین هزارهی سوم میلادی برای استفاده در توصیف سختافزار مورد بررسی قرار گرفته است. در این پایاننامه، یک زبان توصیف سختافزار به روش کنشگرا به نام «سیزل»، به شکل یک زبان خاص-دامنه بر روی زبان اسکالا ارائه شده و ابزارهای مورد نیاز برای سنتز بهینهی این زبان، پیادهسازی شده است. واژههای کلیدی: زبان توصیف سخت افزار، توصیف کنشگرا، سنتز، زبان خاص-دامنه
- Abstract
- Conventional Hardware Design Languages such as Verilog and VHDL were originally conceived as simulation languages, but with the adaptation of Register Transfer Level (RTL) methodology and development of logic synthesis tools they became the standard means for digital design entry. When designing at Register Transfer Level of abstraction, the designer needs to consider all state transitions at every clock cycle. As the complexity of designs increases, RTL designs become unyielding and it becomes very difficult to reason about their correctness. System Level descriptions based on software languages have been utilized to describe and simulate complex systems, but efficient synthesis of these languages into hardware (known as High-Level Synthesis) is still considered to be an open problem. Software-oriented descriptions are also too detached from actual hardware and do not allow designers to capture micro-architectural objectives and implementation ideas. Action-oriented hardware description methodology is a promising approach to raising the design abstraction, while allowing the designer to stay in touch with the intricacies of the hardware implementation. The theory of action-oriented description goes back to Term Rewriting Systems and Dijkstra's Guarded Command Language and has been explored for hardware design by researchers since the early 2000s. In this work, a Domain Specific Language named Sizzle is developed which enables hardware description by using the action-oriented abstraction. In a Sizzle design, all state elements, including registers and memories, are explicitly instantiated by the designer and the state transitions are captured inside "rules" which specify how the state elements are updated. A "rule" is comprised of "rule body" and a guarding "condition". The body describes the data-path which generates next-state value and the "rule condition" is the prerequisite condition for the activation of this rule's data-path. The functionality of each rule is guaranteed to be atomic and therefore the designer needs be concerned about every rule separately. The developed tools transform a Sizzle description to synthesizable Verilog and produce efficient control logic to schedule the rules in a way consistent to the action-oriented semantics. Sizzle has a reusable Component Library which includes flexible FIFO generators, Transaction-Level interfaces, and other utilities which assist in developing designs at higher levels of abstraction. A TLM-style verification harness has been developed which can handle automated simulation and verification of Sizzle designs. Multiple Sizzle design examples have been provided which are also evaluated for correctness and efficiency. Keywords: Hardware Description Language (HDL), Action-Oriented, Domain Specific Language (DSL), Verification, Synthesis.