16
۴٫۶ (۹۱٫۱۱%) ۹ votes

 

 

اف پی جی ای FPGA

 

FPGA چیست؟

اگر بخواهیم بدون مقدمه به توضیح FPGA بپردازیم باید گفت FPGA یا Field-Programmable Gate Array ( آرایه گیت های قابل برنامه ریزی ) یک مدار مجتمع است که می توان آن را پس از اتمام فرآیند تولید ، مطابق نیاز طراح برنامه ریزی نمود و روابط منطقی بین پایه های ورودی و خروجی را تغییر داد از این رو به این تراشه ها قابل برنامه ریزی می گویند. روابط منطقی درون این تراشه ها را اغلب با زبان توصیف سخت افزار ( HDL یا Hardware Description Language ) مشخص می کنند ( علاوه بر HDL از طراحی شماتیک ، State Diagram و برنامه نویسی به زبان های دیگر مانند C نیز می توان استفاده کرد که توسط برنامه ای که بواسطه آن طراحی را انجام می دهید به کد HDL تبدیل می گردد ) . به دلیل استفاده مستقیم از گیت ها در انجام عملیات ها ، این تراشه ها دارای سرعت و دقت بسیار بالا هستند. کاربرد های FPGA بسیار متنوع است و از FPGA ها در صنایع مختلف که نیاز به دقت و سرعت بالای محاسبه و انجام عملیات های منطقی است استفاده می شود.

ممکن است این سوال برای شما پیش بیاید که وقتی میکروکنترلر هایی مانند AVR و ARM در دسترس ما هستند به چه دلیلی باید سراغ FPGA برویم ؟ در پاسخ باید گفت هرگز سعی نکنید در پروژه های غیر تحقیقاتی ، میکروکنترلر را با FPGA مقایسه کنید یا این دو را به جای یکدیگر استفاده کنید ، دلیل این ادعا نیز کاملا مشخص است.

این مطلب را از دست ندهید:  کدویژن ( CodeVision ) یا بسکام ( Bascom )

 

مقایسه FPGA و میکروکنترلر

میکروکنترلر ها دارای CPU و جافظه های جانبی و … هستند که در اینجا می توانید اطلاعات بیشتری درباره میکروکنترلر ها بدست آورید ، میکروکنترلر ها برای کاربرد مشخصی ساخته نشده اند و هر طراح می تواند برنامه دلخواه خود را درون آنها برنامه ریزی کند ، منابع و دستور العمل های اجرایی یک میکروکنترلر مشخص همواره ثابت است در حالی که می تواند حاوی هزاران برنامه مختلف را روی خود جای دهد اما در مورد FPGA ها چنین نیست ، در یک FPGA هیچ CPU پیشفرضی وجود ندارد که شما عملیات های مورد نیازتان را با آن انجام دهید ، بلکه شما باید بلوک های مختلف مورد نیاز خود را در داخل FPGA پیاده سازی کنید و در نهایت از آنها برای رسیدن به نتیجه دلخواهتان استفاده کنید. به عنوان مثال برای اینکه بتوانید در FPGA چند عدد را جمع کنید باید بوسیله ی گیت ها یک بلوک جمع کننده طراحی کنید و از آن پس می توانید در سایر بلوک ها از آن استفاده نمایید.

FPGA ها به دلیل داشتن بلوک های منطقی خاص برای انجام هر عملیات و انجام پردازش های موازی ، با سرعت بسیار بالا عملیات های مورد نظر را انجام می دهد و از نظر سرعت و دقت نمی توان FPGA را با میکروکنترلر ها مقایسه کرد. از نظر هزینه اجرا نیز اغلب پروژه های FPGA گرانتر و هزینه بر تر از پروژه های میکروکنترلر هستند و در صورتی که بخواهید کارهایی را که با یک میکروکنترلر انجام می دادید با FPGA انجام دهید ، باید وقت و هزینه بیشتری صرف اجرا کنید از این رو معمولا FPGA و میکروکنترلر هر کدام کاربرد های خاص خود را دارند و به جای یکدیگر استفاده نمیشوند.

این مطلب را از دست ندهید:  استرین گیج چیست؟

 

از FPGA اغلب برای ساخت دستگاه های مخابراتی پرسرعت ، دستگاه های صنعتی و تجاری خیلی حساس و سریع ، دستگاه های نظامی و مصارف این چنین بهره می برند. FPGA ها دارای چند هزار تا چند میلیون گیت در داخل خود هستند ، که تعداد گیت های یک FPGA بر قیمت آن تاثیر اساسی می گذارد. در هر پروژه ای شما باید بدانید از چه تراشه ای و با چه تعداد گیت استفاده کنید تا بهینه ترین حالت ممکن را بوجود آورید. شرکت های مختلفی تراشه های FPGA را تولید می کنند که شرکت Xilinx و Altera در ایران بیشتر شناخته شده اند.

 

آرایه گیت های برنامه پذیر بر اساس معماری داخلی ، پیچیدگی و تعداد گیت ها به دسته های متلفی مانند PAL,PLA,CPLD,FPGA و … تقسیم می شوند که هرکدام از این دسته ها برای مصارف خاصی مورد استفاده قرار می گیرد.

برخی از FPGA های پیشرفته امروزی علاوه بر گیت های منطقی دارای منابع داخلی دیگری مانند RAM , مبدل آنالوگ به دیجیتال ADC و مبدل دیجیتال به آنالوگ DAC نیز هستند که به کاربر کمک می کند تا در پروژه هایی که به این امکانات نیاز دارد ، از این منابع داخلی استفاده نماید و یک سیستم کامل را در داخل تراشه پیاده سازی نماید که به افزایش کارایی ، سرعت و دقت FPGA ها کمک می کند.

در مورد موارد کاربرد FPGA ها می توان اینطور گفت که FPGA ها را می توان برای تست طراحی های HDL به صورت عمل به کار برد و در صورت مطلوب بودن نتیجه تراشه ASIC آن را تولید نمود ( ASIC چیست؟ تراشه ASIC یا Application-Specific Integrated Circuit به تراشه ای گفته می شود که برای انجام عملیات خاصی طراحی و ساخته می شود ، اغلب ASIC ها با زبان HDL طراحی می شوند و سپس کارخانه های سازنده با تبدیل طراحی به گیت های منطقی NAND یا NOR آن را می سازند ) . تراشه های ASIC معمولا با تعداد بسیار بالا و هزینه پایین تولید می شود و در عین حال که قیمت تمام شده قطعه بسیار پایین می آید اما هزینه گزافی باید به علت تعداد بالا پرداخته شود بنابراین برای کارهایی مناسب ایت که قصد دارند تراشه را به تعداد انبوه استفاده کنند یا روانه بازار کنند ، اما معمولا زمانی که قصد تولید انبوه یک تراشه را نداریم و فقط می خواهیم تعداد مشخص و محدودی از یک تراشه سفارشی تولید کنیم ، بهترین گزینه استفاده از FPGA ها یا CPLD ها می باشد.

این مطلب را از دست ندهید:  وریستور چیست و چه کاربردی دارد؟ (قسمت اول)

 

16 نظرات
  1. فواد می گوید

    ممنونم استفاده کردیم

  2. خجسته می گوید

    khob bod..mamno:)))))

  3. ارشاویر می گوید

    ممنون

  4. SM می گوید

    ممنون

  5. m می گوید

    اجرتون با خدا. احسنت

  6. سهیل می گوید

    عالی بود خوشحال میشم یه سری هم به سایت بنده بزنید

  7. عباس می گوید

    ممنون

  8. علی می گوید

    سلام
    ممنون
    کامل بود…!

  9. مرتضی می گوید

    شرکت Xilinx و Altera در ایران بیشتر شناخته شده اند.
    در ایران و جهان بیشتر شناخته شده اند. نه تنها شناخته شده که بزرگترین شرکت های FPGA کار هستند.

  10. اندیشه پویان می گوید

    ممنون مطلبی مفیدی بود ولی کاش در مورد تفاوت cpld و fpga ها بیشتر میگفتید

    1. محمد حمیدی می گوید

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

  11. سید حمید رضا می گوید

    درود بر شما
    بهره مند شدم
    سپاسگزارم

  12. bahram می گوید

    با سپاس بسیار از تعریف سیستم fpga

  13. h.moazedy می گوید

    خیلی ممنون.مفید و زیبا

  14. مرتضی می گوید

    مختصر و مفید
    عالی بود

  15. نوید حکمت می گوید

    ممنون از توضیحاتتون 🙂

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.