ممکن است به عنوان یک مهندس برای شما هم این سوال پیش آمده باشید که FPGA چیست و چه نقشی در طراحی الکترونیک دارد؟

FPGA یا (Field Programmable Gate Arrays) را می توان روشی تکاملی، در ادامه راه پیاده سازی توابع و اعمال منطقی دانست.

در ادامه مطلب با بررسی این تکنولوژی، به سؤالات شما در این زمینه پاسخ خواهیم داد. پس با ما همراه باشید.

1# FPGA چیست؟ (What Is FPGA)

اگر بخواهید بدانید FPGA چیست باید بگوییم این تکنولوژی، اشه ای است تشکیل یافته از منابع گوناگون دیجیتالی که
جایگزینی مناسب برای برد هایی متشکل از تراشه های متعدد است.

FPGA در حقیقت به تنهایی ارائه دهنده عملکردی خاص نیست و
می توان گفت این تراشه با یک پیکربندی مناسب است که می تواند تبدیل به راهی برای ساخت هر نوع سخت افزار دیجیتال شود.

به عبارتی FPGA تراشه ای است برنامه پذیر که پس از ساخت، این امکان را برای طراحان و کاربران ایجاد می کند که
آن را جهت پیاده سازی یک و یا چند مدار منطقی مورد استفاده قرار دهند.

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

لازم به ذکر است این برنامه ریزی و طراحی با استفاده از زبان توصیف سخت افزاری، همچون “VHDL” و “Verilog” صورت می گیرد.

این تراشه در ظاهر تفاوتی با انواع دیگر تراشه ها ندارد، بلکه آن چه که متفاوت است ساختار درونی آن می باشد.

همچنین جالب است بدانید نمونه های اولیه این نوع تراشه ها تنها در نقش حافظه ای با قابلیت برنامه ریزی مورد استفاده قرار می گرفتند اما
وجود معایبی نظیر عدم امکان بازنویسی مجدد بر روی آن سازندگان آن را به فکر تکامل این طرح انداخت.

آشنایی با fpga

این مقدمه ای برای ظهور نسل جدید FPGA و افزودن قابلیت بازنویسی مجدد بر روی آن شد.

قابلیتی که از طریق پاکسازی اطلاعات توسط اشعه ماوراء بنفش و بعدها به وسیله سیگنال های الکترونیکی محقق شد.

این روش به مرور زمان و با توسعه سیستم های الکترونیکی، به عنوان جایگزینی برای آی سی ها و
یا همان (integrated circuit) و همچنین در راستای دوری از تولید بردهایی با تراشه هایی متعدد، وارد عرصه طراحی الکترونیک شد.

این را هم ببینید
ic چیست؟

2# آشنایی با ساختار FPGA

لزوم شناخت عملکرد FPGA و رسیدن به جوابی دقیق برای این سوال که FPGA چیست آشنایی با منابع آن و بررسی ساختار و ماهیت داخلی این تراشه است.

ساختار داخلی fpga

به طور کلی می توان گفت منابع تشکیل دهنده FPGA به این شرح است:

  1. Look-Up Table
  2. بلوک های منطقی قابل پیکر بندی (Configurable Logic Block) / (CLB)
  3. سیم شبکه اتصالات با قابلیت برنامه ریزی (Routing Matrix)
  4. بلوک های ورودی و خروجی (Input/Output- Block)
  5. حافظه های داخلی
  6. منابع کلاک

1-2# Look-Up Table / LUT

یک تراشه FPGA مجموعه ای منظم از آرایه ای از منابع دیجیتالی است.

این تراشه در آغاز نشان دهنده تابع و یا مفهوم دیجیتالی نبوده و
در واقع در نقش بلوک های سازنده یک مدار دیجیتالی، ابزاری برای به وجود آوردن مدار مورد نظر طراح دیجیتال است.

اگر به طور دقیق بخواهید بدانید منابع FPGA چیست باید بگوییم که
FPGA پدیده ای متشکل از هزاران LUT است که به وسیله آن ها کاربر قادر به پیاده سازی مدارهای بزرگتر خواهد بود.

در توضیح باید گفت “Look-Up Table یا LUTدر واقع مجموعه ای از سلول های حافظه (SRAM) است که
کاربرد آن ایجاد توابع منطقی است.

روش کار به این صورت است که پس از تقسیم تابع بزرگ به توابعی کوچک، هر یک از این توابع با استفاده از یک LUT پیاده سازی خواهد شد و
در آخر نتیجه آن اتصال تمامی LUT ها به شکلی مناسب و ایجاد مدار اصلی مورد نظر است.

2-2# بلوک های منطقی قابل پیکر بندی (Configurable Logic Block) / (CLB)

بلوک های منطقی

“Logic Block” یا همان “Logic Cell در واقع همان LUT می باشد که
از اجزاء اصلی در ساختار FPGA محسوب می شود.

هر CLB تشکیل شده از دو بخش است که هر بخش نیز متشکل از چهار LUT و 8 فلیپ فلاپ (FLIP-FLOP) می باشد.

3-2# سیم شبکه اتصالات با قابلیت برنامه ریزی (Routing/Switch Matrix)

سیم شبکه اتصالات

آن چه که جهت اتصال (Look-Up Table) به یکدیگر مورد استفاده قرار می گیرد سیم های مابین LUT ها می باشد که
به شکلی منظم تعبیه شده و “Routing” نامیده می شود.

به طور کلی این سیم ها را می توان ابزاری برای اتصال منابع مختلف دیجیتالی به شمار آورد.

همچنین قابل ذکر است عمل پیکربندی LUT ها و سیم ها در اصطلاح کانفیگ (config/Configuration) نامیده می شود.

این تراشه ها قابلیت پیکربندی به دفعات را برای کاربر فراهم می کند که
می تواند به دلایلی از قبیل تست و یا عدم رضایت از مدار طراحی شده باشد.

4-2# بلوک های ورودی و خروجی (Input/Output- Block)

“I/O Blockمدارهای قابل برنامه ریزی قرار گرفته در پشت هر پایه FPGA می باشد که
به وسیله آن هر یک از پایه های این تراشه را به شکل ورودی، خروجی و یا دو طرفه می توان تعریف نمود.

همچنین این مدارها، می تواند ابزاری برای تعریف استانداردهایی نظیر ولتاژ پایه های ورودی و یا میزان جریان پایه های خروجی باشد.

قابلیتی که به وسیله آن امکان اتصال قطعات جانبی به پایه های این تراشه فراهم می شود.

5-2# حافظه داخلی

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

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

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

6-2# منابع کلاک (Clock Block)

از جمله منابع مهم سخت افزاری در FPGA، منابعی است که در ارتباط با ایجاد و توزیع کلاک است.

در توضیح باید گفت، مدارات دیجیتال به سه بخش ترکیبی، ترتیبی سنکرون و ترتیبی آسنکرون تقسیم بندی می شود.

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

3# مزایای استفاده از FPGA

مزایای استفاده از fpga

در بخش های قبل متوجه شدیم که ساختار و ماهیت FPGA چیست و
هر یک از منابع تشکیل دهنده آن چه نقشی در این تراشه ایفاء می کنند اما
یکی از مواردی که لازم است با آن آشنا شوید، مزایای استفاده از این فناوری است که
در ادامه به برخی از این مزایا اشاره خواهیم نمود:

  • پیاده سازی آسان مدارهای دیجیتالی پیچیده
  • امکان برنامه نویسی آسان
  • امکان ایجاد تغییرات با در نظر گرفتن نیاز کاربر و برنامه ریزی با ساختاری جدید
  • سرعت بسیار بالا در اجرای توابع منطقی
  • امکان تعریف چند هسته پردازشی جهت انجام کارهای متعدد به طور هم زمان
  • امکان پردازش موازی در FPGA
  • سرعت چشمگیر پردازش در مقایسه با دیگر سیستم ها

دانلود pdf مقاله

درباره نویسنده : مهرنوش طیاری

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

نظرتون درباره این مقاله چیه؟
ما رو راهنمایی کنید تا اون رو کامل تر کنیم و نواقصش رو رفع کنیم.
توی بخش دیدگاه ها منتظر پیشنهادهای فوق العاده شما هستیم.

۶ دیدگاه

  1. Avatar
    رضایی ۱۴۰۱/۰۳/۰۹ در ۱۱:۴۵ - پاسخ

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

    ممنون

    • مبینا شیرین
      مبینا شیرین ۱۴۰۱/۰۳/۱۰ در ۱۰:۳۰ - پاسخ

      سلام خدمت شما جناب رضایی بزرگوار
      برای پیشنهاد آموزشی که فرمودین
      ممنون میشیم لطف کنید و پیشنهاد خودتان رو در قسمت پیشنهاد اموزش سایت به ادرس لینکی که خدمتتون فرستادم ثبت بفرمایید🙏🌷
      https://namatek.com/%D9%BE%DB%8C%D8%B4%D9%86%D9%87%D8%A7%D8%AF-%D8%A2%D9%85%D9%88%D8%B2%D8%B4/
      از همراهی شما با تیم نماتک سپاسگزار هستیم.

  2. Avatar
    علیرضا باقری ۱۴۰۰/۰۵/۲۴ در ۰۱:۴۴ - پاسخ

    عالی بود

    • مبینا شیرین
      مبینا شیرین ۱۴۰۰/۰۵/۲۴ در ۱۹:۵۵ - پاسخ

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

  3. Avatar
    R&N ۱۳۹۹/۰۵/۲۸ در ۱۱:۲۶ - پاسخ

    سلام
    عالی و توضیحات بصورت کامل بود
    ممنون

    • حانیه برمایون
      حانیه برمایون ۱۳۹۹/۰۵/۲۸ در ۱۲:۳۲ - پاسخ

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

ارسال دیدگاه