نرم افزار ISE و آموزش کار با آن و ساخت پروژه

نرم افزار ISE
سوال: FPGA چیست؟ FPGA از تعداد بسیار زیادی گیت منطقی در داخل خودش ساخته می شود. این آی سی نسبت به عدم نویز پذیری بسیار مقاوم تر از انواع میکروکنترلر ها است. ویژگی مثبت FPGA ها نسبت به تراشه های میکروپروسسورها و میکروکنترلر ها و DSP ها این است که می تواند به صورت موازی بستورات را اجرا کند. همچنین توسط این آی سی می توان هر نوع میکروکنترلر و میکروپروسسوری را پیاده سازی نمود. به دلیل پردازش موازی این آی سی در صنایع مخابرات جهت سوییچ های مخابراتی و لایه های شبکه استفاده می شود. همچنین در صنایع نظامی جهت کنترل موشک استفاده می شود. این آی سی می تواند به عنوان پردازش سیگنال و تصویر نیز استفاده شود که این ویژگی توسط نرم افزار MATLAB پشتیبانی می شود. با استفاده از این آی سی می توان تمامی مدارات منطقی را پیاده نمود. همچنین این آی سی در PLC هایی مانند S7-400 استفاده می شود. ویژگی منفی این آی سی ها این است که قیمت آنها نسبت به میکروکنترلر ها بالاتر است.   سوال: زبان برنامه نویسی FPGA چیست؟ زبان های برنامه نویسی مانند C، Basic و اسمبلی به صورت خط به خط دستورات را اجرا می کنند. این زبان ها قدرت کافی جهت پردازش موازی و حفظ حالات قبلی مدار را ندارند. در نتیجه زبان های توصیف سخت افزار HDL ساخته شد. مشهور ترین این زبان ها عبارتند از: 1) System C: این زبان شباهت بسیار زیادی به زبان C دارد. 2) System Verilog: این زبان نیز شباهت هایی به زبان C دارد. این زبان توسط شرکت Cadence گسترش پیدا کرد و کمی بعد از زبان VHDL استاندارد IEEE شد. 3) VHDL: این زبان یکی از مشهور ترین زبان های توصیف سخت افزار می باشد که در وزارت دفاع آمریکا با همراری شرکت های Texas Instrument، IBM و Intermetrics ساخته شد و اولین زبان توصیف سخت افزار بسیار قوی می باشد. امروزه مشهور ترین زبان های توصیف سخت افزار زبان VHDL و Verilog می باشد.

چگونه از نرم افزار ISE استفاده کنیم؟ (راه اندازی سون سگمنت کاتد مشترک با زبان VHDL و FPGA های Xilinx)

قسمت بزرگی از کارکردن با FPGA مربوط به برنامه نویسی به زبان VHDL می باشد. با توجه به اینکه این زبان وابستگی به هیچ نرم افزاری ندارد، یعنی می توان برنامه ی VHDL نوشته شده برای یک FPGA Altera ر بر روی یک FPGA Xilinx ریخت با این فرق که باید مجددا توسط کامپایلر Xilinx سنتز شود. البته ممکن است بعضی از FPGA ها بلوک هایی داخل خودشان داشته باشند که دیگر FPGA ها ندارند (مانند پردازنده DSP) که این یک حالت استثنا می باشد. در این قسمت از نرم افزار ISE ورژن 14 استفاده شده است که با Windows 7 نیز کار می کند. Crack این نرم افزار را می توانید از قسمت دانلود دریافت نمایید. نخست نرم افزار ISE را باز نمایید. و سپس وارد منوی File شده و New Project را انتخاب کنید.

New ISE Project

در صفحه ی باز شده مسیر ذخیره ی پروژه را وارد کرده و حالت توصیف سخت افزاری را برای برنامه نویسی به زبان VHDL انتخاب کنید.

سپس نام تراشه را انتخاب کنید (در این برنامه آی سی XC3S400 انخاب شده است و تاخیر انتشار گیت های داخلی آن 4- در نظر گرفته شده است و زبان برنامه نویسی آن VHDL-93 می باشد.

سپس next را کلیک کرده و سپس finish را بزنید تا صفحه ی جدیدی باز شود. در آن صفحه در قسمت نشان داده شده در شکل زیر کلیک راست کرده و گزینه ی New Source را کلیک کنید تا فایل جدیدی را بتوانید به پروژه تان اضافه نمایید.

در صفحه ی باز شده مطابق شکل زیر VHDL Module را انتخاب کرده و سپس نام دلخواه فایل را وارد کرده و Next را کلیک کنید.

بعد از زدن کلید Next صفحه ای مانند شکل زیر باز می شود:

در این صفحه نام پایه های ورودی و خروجی را وارد کنید و بعد از وارد کردن نام Entity و Architecture کلید Next را کلیک کنید و سپس کلید Finish را بزنید تا صفحه ای مانند شکل زیر باز شود:

ابتدا در صورتی که فونت پنجره ی سم راست که به آن Editor می گویند، کوچک است، مطابق شکل زیر وارد منوی Edit شده و پس از انتخاب گزینه ی Preferences در پنجره ی باز شده فونت را تغییر دهید (مطابق شکل های زیر):

در قسمت Editor برنامه ی VHDL خود را تایپ کنید و آن را مطابق شکل زیر کامل کنید:

پس از نوشتن برنامه باید آن را سنتز (کامپایل) کنید تا اشکالات آن برطرف شود. برای این منظور وارد منوی Process شوید و گزینه ی Implement Top Module را انتخاب کنید (مطابق شکل زیر در ادامه ی توشیحات برای سنتز کردن باید وارد همین قسمت شویم):

در صورت وجود خطا، در قسمت پایین صفحه نمایش داده می شود، که آن را اصلاح می کنیم. پس از اطمینان از صحت برنامه، باید 7 پایه ی مربوط به خروجی را که به سون سگمنت وصل می شود، به یکی از پایه های FPGA اختصاص دهیم!!! یعنی می توان غیر از پایه های تغذیه و پایه های برنامه ریزی FPGA، هرپایه ای را که به دلخواه داریم، به عنوان پایه ی خروجی انتخاب کنیم! برای این کار مطابق شکل زیر در قسمت نشان داده شده کلید راست کرده و New Source را انتخاب می کنیم (از این پس هرجا New Source را خواستیم ایجاد نماییم به همین ترتیب عمل می کنیم)

در پنجره ی باز شده مطابق شکل زیر نام دلخواه برای فایل جدید را وارد کرده و سپس Implementation Constraints File (که به آن فایل UCF می گویند) را انتخاب می نماییم.

سپس در تصویر زیر، در قسمتی که فلش موس قرار دارد، کلیک کرده و در پایین صفحه گزینه ی I/O Planning (PlanAhead)- Pre Synthesis را دابل کلیک می کنیم.

پس از اندکی تاخیر صفحه ای مطابق شکل زیر باز می شود:

در قسمت سمت راست این صفحه مشاهده می شود که پایه های FPGA را نمایش داده است اما این محفظه BGA می باشد (یعنی پایه ها در زیر آی سی قرار دارد) که برای اصلاح محفظه ی آی سی باید در شکل زیر بر روی XC3S400-4fg320 دابل کلیک کنید.

پنجره ای مطابق شکل زیر باز می شود:

در این پنجره محفظه ی IC را PQ208 انتخاب می کنیم (این محفظه 208 پایه در چهار گوش آی سی دارد که فاصله ی پایه ها از هم در این محفظه 0.5 میلی متر است) و سپس OK را کلیک می کنیم و مجددا وارد گزینه ی I/O Planning (PlanAhead)- Pre Synthesis در بالا می شویم. مشاهده می شود که پایه های آی سی چهار طرف آن می باشند:

قسمت بالایی آی سی را Zoom می کنیم. برای این کار کلید Ctrl را نگه داشته و فلش موس را در قسمت بالای پایه های آی سی برده و چرخ موس را می چرخانیم. سپس موس را روی نام یکی از پین ها که در پایین صفحه نوشته شده است، می بریم، روی آن کلیک چپ را نگه م داریم و موس را روی دایره های موجود در شکل می بریم (مطابق شکل زیر)

در قسمت Device  در شکل بالا نیز می توان تمامی بلوک های داخل آی سی را مشاهده نمود (مانند شکل زیر)

بعد از اتمام کار باید پروژه را مجددا سنتز نماییم (مطابق شکل زیر)

در این قسمت برنامه کاملا آماده است و اگر آن را در FPGA پروگرام نماییم، به راحتی کار می کند.
چگونه برنامه ی نوشته شده به زبان VHDL را با نرم افزار ISE شبیه سازی نماییم؟ در این قسمت نحوه ی شبیه سازی برنامه گفته خواهد شد. در ادامه ی قسمت قبلی، طبق شکل زیر یک فایل جدید ایجاد نمایید:

در صفحه ی باز شده، گزینه ی VHDL Test Bench را انتخاب می کنیم (برنامه ی Test Bench به برنامه ای می گویند که نوشته می شود تا برنامه ی VHDL اصلی ما را تست نماید)

سپس در شکل زیر در قسمتی که فلش موس قرار دارد، گزینه ی Simulation را انتخاب می کنیم و سپس بر روی (F1t_behavior (f1t.vhd دابل کلیک می کنیم.

پس از دابل کلیک، برنامه را مانند شکل زیر می نویسیم:

پس از نوشتن برنامه مطابق شکل زیر در قسمت Simulate Behavioral Model دابل کلیک می کنیم تا این برنامه شبیه سازی شود.

صفحه ای مانند شکل زیر باز می شود که صحت شبیه سازی را نشان می دهد:


چگونه از IP های آماده در نرم افزار ISE استفاده کنیم؟ IP ها برنامه هایی هستند که قبلا نوشته شده اند و می توان از آنها استفاده نمود و به آنها Core نیز گفته می شود (مانند میکروکنترلر، درگاه PCI و USB و غیره). برای ساخت یک IP ابتدا مطابق شکل زیر وارد قسمت Implementation بشوید:

سپس مطابق شکل زیر یک فایل جدید ایجاد نمایید:

و سپس (IP (CORE Generate And Architecture Wizard را انتخاب نمایید:

سپس در شکل زیر Binary Counter را انتخاب کنید (برای شمارنده ی سون سگمنت)

سپس next را کلیک کنید. در این صفحه باید مشخصات این شمارنده تنظیم شود. می خواهیم این شمارنده از 0 تا 9 شمارش نماید که در این حالت باید 4 بیتی باشد و Max عددی را که شمارش می کند، عدد 9 باشد. برای این منظور بعد از زدن Next در صفحه ی جدیدی که باز می شود، این خصوصیات را تنظیم می کنیم (شکل زیر قسمتی از صفحه ی باز شده ی جدید را نمایش می دهد).

بعد از کلیک کردن بر روی دکمه ی Generate در شکل بالا این شمارنده ساخته می شود. پس از ساخت شمارنده، برای ایجاد شماتیک آن مجددا برنامه را طبق شکل زیر سنتز کنید:

سپس طبق شکل زیر یک فایل جدید ایجاد نمایید:

و از صفحه ی باز شده گزینه ی Schematic را طبق شکل زیر انتخاب نمایید:

سپس در پایین صفحه جایی که فلش موس قرار دارد، گزینه ی Symbols را انتخاب کنید

در شکل بالا در قسمت Categories آدرس درایو D نوشته شده است که 2 تا هم می باشد. روی تک تک آنها کلیک کرده و در قسمت Symbols روی نام آنها کلیک می کنیم و سپس موس را به سمت راست برده و آنها را در صفحه قرار می دهیم:

همانطور که در شکل بالا پیداست، موس را به قسمت Add Wire برده و حالت سیم کشی را انتخاب می کنیم و سپس بین شمارنده و سون سگمنت سیم کشی انجام می دهیم. سپس در شکل زیر وارد قسمت I/O Marker می شویم تا پایه های I/O را علامت گذاری نماییم.

پس از انجام این کار شماتیک کامل می شود و شبیه به شکل زیر می شود:

آن را ذخیره می کنیم (کلید Ctrl+S) را برای این کار می توان فشار داد. سپس در شکلزیر در پایین صفحه گزینه ی I/O Planning (PlanAhead)- Pre Synthesis را دابل کلیک می کنیم.

سپس در شکل زیر پایه های جدید را به آی سی اختصاص می دهیم. پایه ی XLXN_2 به دلیل اینکه یک پایه ی کلاک است، الزامی است که این پایه یک پایه ی GCLK انتخاب شود که در شکل زیر این موضوع نشان داده شده است:

پس از اختصاص دادن پایه های آن را ذخیره می کنیم و سپس در صفحه ی اصلی برنامه در قسمتی که در تصویر زیر فلش موس قرار دارد دابل کلیک می کنیم:

در این قسمت، می توان پایه های مختلف را در FPGA به صورت دستی تنظیم نمود. به دلیل اینکه از مرحله ی قبلی پایه های O وجود دارد، آنها را پاک می کنیم. (مطابق شکل زیر)

پس از انجام این کار می توان طبق شکل زیر مدار را سنتز نمود که در این صورت برنامه کامپایل می شود. در این برنامه پایه ی XLXN_2 با دریافت هر پالس یک شمارش را بر روی سون سگمنت اضافه خواهد نمود.

14 thoughts on “نرم افزار ISE و آموزش کار با آن و ساخت پروژه

  1. مجتبی توسلی says:

    ممنون از اطلاعات مفیدی که ارائه دادید.
    توضیحات مفید و جامعی بود، که به کارم اومد.
    باتشکر

    • محمد رضا بیگی says:

      از کدهای آماده در بخش دوره ها و FPGA استفاده کنید متوجه چگونگی نوشتن میشوید

  2. هدیه says:

    عالی بود. لطفا مطالب بیشتری درباره ی این نرم افزار قرار بدید. خیلی ممنون

  3. هومن بخش پور says:

    با سلام خدمت مهندس بیگی

    اگر برای شما امکان پذیر است لینک دانلود نرم افزار ise 14.2  را در سایت قرار دهید.

    اکثر سایت ها لینک نسخه 14.7 را قرار داده اند که ظاهرا کرکش مشکل دارد.

    با تشکر

    • محمد رضا بیگی says:

      حجم نرم افزار ISE حدود 6GB است و امکان آپلود آن وجود ندارد. از سایت های فارسی زبان به راحتی میتوانید آن را دانلود کنید. این نرم افزار Crack ندارد و فقط License دارد که آن هم همراه نرم افزار دانلود خواهد شد

  4. مژگان says:

    سلام . واقعا ممنون بابت مطالب بسیار مفیدی که انتشار می دهید. اکثر سایت های ما درحال حاضر فقط شامل تبلیغات و سرگرمی و کارهای بچه گانه شدند و سایت هایی با محتویات تخصصی بسیار کم مشاهده می شود متاسفانه . بازهم سپاس .

  5. آرش says:

    واقعا به دردم خورد!!! از این که میبینم انسانهایی مثل شما بدون هیچ چشم داشتی این جور مطالب تخصصی را نشر میدن واقعا خوشحال میشم. خدا عوض بده

  6. مجتبی says:

    سایت جالب و مفیدی دارید و امیدوارم پربارتر گردد

    موفق و پایدار باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *