در دنیای الکترونیک از انواع قطعات الکترونیکی استفاده میشود که هرکدام ویژگیهای خاص خود را دارند. تنوع قطعات الکترونیکی باعث شده است تا در دنیای امروز محصولات الکترونیکی پیشرفت زیادی بکنند و بخش مهمی از زندگی ما را تشکیل دهند. در این مقاله قصد داریم دربارهی قطعهای صحبت کنیم که ویژگیهای خیلی خاصی دارد و همین ویژگیها این قطعه به یکی از خاصترین قطعات الکترونیکی بدل کرده است. در ادامه با برد FPGA آشنا میشویم و ویژگیها و مزایا و معایب این برد را بیان میکنیم. پس تا انتهای این مقاله با آوند الکترونیک همراه باشید.
برد FPGA استفاده شده در یک برد الکترونیکی
برد FPGA چیست؟
یکی از سوالاتی که در ابتدای شنیدن نام برد FPGA به ذهنمان میرسد این است که FPGA چیست و به چه معناست. برد FPGA یک تراشه است که از نظر میزان عبور جریان نیمه رسانا محسوب میشود. همانطور که از کلمهی تراشهای که قبل از نام این قطعه میآید میتوان حدس زد این قطعه یک قطعهی پردازشی است. در اصل FPGA مخفف عبارت field programmable gate arrey است که به معنی تراشهی قابل برنامه ریزی است. FPGAها قابلیت پردازش تعداد زیادی داده (دیتا) را در لحظه دارند و همین ویژگی پردازش لحظهای آنها یکی از مزیتهای اصلی برد FPGA به حساب میآید.
همانطور که گفتیم FPGA قابل برنامه ریزی است و این موضوع یکی از مهمترین مزیتهای این قطعه نسبت به پردازشگرهایی مثل میکروکنترلرها و CPUهاست. عملکرد تراشه FPGA مابین عملکرد میکروکنترلرها و مدارهای الکترونیکی قرار دارد و در بردهایی که نیازمند آن هستیم که یک پردازشگر قابل تغییر داشته باشیم به بردهای FPGA نیاز پیدا میکنیم.
روش کار برد FPGA
تراشه FPGA از تعداد زیادی بلوک منطقی که به آنها logic block میگویند تشکیل شده است نام دیگر بلوکهای منطقی، سلول منطقی (logic cell) است. از بلوکهای منطقی در ساختار مدارهای مجتمع، CPU و میکروکنترلرها استفاده میشود. اگر بخواهیم به زبان ساده توضیح دهیم این بلوکهای منطقی اعمال OR و AND را روی دادهها پیاده میکنند. این اعمال باعث میشود تا بتوانیم محاسبات ریاضی ساده مثل ضرب و جمع را بر روی دیتاهایی که به FPGA وارد میکنیم، انجام دهیم. هنگامی که تعداد بالایی از بلوکهای منطقی را در اختیار داشته باشیم میتوانیم محاسبات پیشرفته را با استفاده از این بلوکها انجام دهیم.
انواع پردازشهایی که بلوک منطقی در برد FPGA انجام میدهد
تفاوت اصلیای که ساختار بلوکهای منطقی CPU و میکروکنترلر با FPGA دارد این است که در CPUها از بلوکهای منطقی با ساختار و معماری مشخص استفاده میشود. این ساختار و معماری یک بار برای این بلوکها تعیین میشود و دیگر قابل تغییر نیست. اما در تراشهی FPGA معماری و ساختار بلوکهای FPGA را میتوان تغییر داد که در بخش مزیتهای برد FPGA این موضوع را به طور کامل بیان میکنیم.
شماتیک ساختار برد FPGA
مزیتهای برد FPGA چیست؟
بردهای FPGA به خاطر مزیتهایی که دارند یکی از بهترین انتخابها برای بردهایی هستند که نیاز به پردازش در لحظه دارند در ادامه به بررسی تمامی ویژگیهای تراشههای FPGA میپردازیم.
سرعت بالای پردازش
تراشههای FPGA سرعت بسیار بالایی در انجام پردازش دادهها دارند و این سرعت بالا مهمترین عامل انتخاب و استفاده از FPGA است. بردهای FPGA بسیار سریعتر از CPUها و میکروکنترلرها عمل میکنند و علت آن استفادهی مستقیم این قطعات از جریان الکتریکی و شاخصههای الکترونیکی برای پردازش است. همین علت باعث میشود تا پردازشهایی که از برد FPGA انتظار داریم در لحظه و بدون وقفه انجام شود. منظور از بدون وقفه انجام شدن پردازشها این است که این پردازشها تنها در چند نانوثانیه (ns) انجام میشوند.
قابلیت برنامه ریزی مجدد و انعطاف پذیری
منظور از قابلیت برنامه ریزی مجدد این است که بردهای FPGA را میتوان چندباره برنامه ریزی کرد. این قابلیت یکی از اصلیترین مزیتهای FPGA نسبت به سایر پردازندههاست. کاری که FPGA انجام میدهد کاملا بستگی به وظیفهای دارد که طراح برد برای آن در نظر میگیرد حتی میتوان بعد از مدتی FPGA را دوباره و مطابق با عملکردی که میخواهیم برنامه ریزی کنیم. این ویژگی باهث کارآمدی بسیار زیاد FPGA در بردها میشود. CPUها و میکروکنترلرها بعد از آنکه برنامهی مشخصی میگیرند نمیتوان برنامهشان را تغییر داد اما برد FPGA قابلیت تغییر دارد.
کاهش هزینهی توسعهی محصول الکترونیکی
استفاده یا عدم استفاده از FPGA در زمان و هزینهی تولید و توسعهی محصولات الکترونیکی تاثیر گذار است. بسیار زیاد پیش میآید که برد الکترونیکی طراحی و ساخته میشود و پس از ساخت متوجه میشویم که طراحی برد و عملکرد پردازندهها نیاز به تغییر دارد. این تغییر در بردهایی که از میکرو کنترلر و CPU استفاده میکنند باعث تحمیل هزینهی زیادی به روند تولید برد میشود همچنین زمان تولید و بهره برداری از برد را افزایش میدهد. با استفاده از FPGA اگر ضعفی در عملکرد پردازندهها یافت شود میتوان با تغییر برنامهی برد FPGA تغییرات لازم را اعمال کرد. این کار باعث از بین رفتن هزینهی ساخت دوبارهی برد و صرفه جویی در زمان میشود.
قابلیت پردازش موازی در برد FPGA
بردهای FPGA پایههای زیادی دارند و برای همین میتوان دیتاهای زیادی را برای پردازش به FPGA منتقل کرد. FPGA برای هر کدام از این دادهها اعمال متفاوتی که برای آن برنامه ریزی شده است را انجام میدهد. در CPU و میکروکنترلرها دادهها برای پردازش شده باید منتظر باشند تا پردازش دادههای قبلی به اتمام برسد و سپس پردازش دادههای جدید انجام شود. در برد FPGA قابلیت پردازش موازی وجود دارد و این قابلیت برای انجام فعالیتهای همزمان بسیار کارآمد است. این ویژگی به این معنی است که دادههای جدید برای پردازش منتظر پردازش دادههای قبلی نمیمانند و هرکدام به بخشی که مربوط به پردازش همان دیتا است انتقال پیدا میکنند.
این مزیت زمانی که شما تعداد زیادی حسگر یا گیرندهی دیتا در برد و سیستم الکترونیکی خود دارید بسیار کارایی دارد و سرعت انجام پردازشها را به طور چشمگیری افزایش میدهد. این مزیت همراه با ویژگی سرعت پردازش لحظهای، برد FPGA را به بهترین انتخاب برای بردهایی با تعداد سنسور زیاد بدل میکند.
معایب برد FPGA چیست؟
بردهای FPGA در کنار ویژگیها و مزایایی که دارند، معایبی نیز دارند که بهتر است آنها را بشناسید تا برای انتخاب قطعات الکترونیکی خود بهترین تصمیم را بگیرید. در ادامه به بررسی معایب برد FPGA میپردازیم.
بردهای FPGA چند منظوره نیستند
یکی از ویژگیهای برد FPGA تک منظوره بودن است. در کامپیوترها و گوشیهای هوشمند که از CPU استفاده میکنند سیستم عاملها میتوانند میزان استفاده و نوع استفاده از CPU را تنظیم کنند. منظور این است که میزان استفاده از CPU در هر زمان متفاوت است. از سرعت پردازش تا میزان استفاده توسط سیستم عامل تعیین میشود اما برد FPGA همیشه یک کار را انجام میدهد. اگر بخواهید عملکردهای دیگری را از FPGA بخواهید باید ساختار و معماری بلوکهای منطقی آن را تغییر دهید. (یعنی برنامه ریزی FPGA را تغییر داد)
برنامه نویسی برای طراحی برد FPGA پیچیده است
زبانهای برنامه نویسیای که برای نوشتن برنامهی برد FPGA مورد استفاده قرار میگیرد دا اصطلاحا زبانهای توسعهی سخت افزار (hardware description language) مینامند. این زبانها همانند زبانهای برنامه نویسی دیگر به سادگی درک نمیشوند و برای نوشتن برنامهای که میخواهید به FPGA بدهید نیاز است این زبانها را بشناسید. زبانهای متداولی که برای نوشتن برنامهی برد FPGA استفاده میشوند VHDL و Verilog هستند. درک این زبانها و کار کردن با آنها برای افراد متخصصان طراحی برد نیز بسیار زمانبر است به طوریکه نوشتن یک برنامهی ساده برای FPGA نیز بسیار وقت گیر است و نیازمند مهارت بالاییست.
قیمت بالای FPGAها
برد FPGA در مقایسه با میکروکنترلرها قیمت بسیار بالایی دارد. با وجود تنوع بالای مدلهای FPGA اما همچنان به طور متوسط قیمت این بردها بسیار بالاتر از میکروکنترلرها است. این بالاتر بودن قیمت به طور متوسط بین ۱۰ الی ۲۰ برابر است. به علت بالاتر بودن قیمت برد FPGA بهتر است که جوانب مختلف برد را بسنجید و تنها زمانی که به بردها و تراشههای FPGA نیاز دارید از آنها استفاده کنید.
معرفی چند نمونه از بردهای FPGA
بردهای FPGA تنوع بسیار زیادی دارند. این تنوع هم در پردازش و سخت افزار آنها و هم در برندهای سازندهی این بردها وجود دارد. در ادامه به بررسی جند نمونه از برد FPGA میپردازیم و ویژگیهای آنها را با هم مرور میکنیم.
برد FPGA مدل PERF-V
برد perf-V برای افرادی که قصد دارند کار با FPGA را شروع کنند کاربرد دارد. این برد کوچک ۱۲۸ کیلوبایت حافظهی رم دارد و میتواند پردازشها و برنامهها را تا حد قابل قبولی در خود ذخیره کند. برد FPGA مدل Perf-V حدودا ۳۳ هزار واحد منطقی (logic block) در خود جای داده است. طراحی این برد و توسعهی این برد FPGA توسط تیمهای opensource انجام شده است و شما میتوانید به راحتی این برد را در بازار ایران تهیه کنید.
برد FPGA مدل spartan edge accelerator
این برد FPGA یکی از خاصترین بردهایی است که شما میتوانید از آن استفاده کنید. ظاهر و ابعاد این برد بسیار به برد arduino uno شباهت دارد و برای افرادی که کارهای مربوط به DIY انجام میدهند بسیار کاربردی است. spartan edge را میتوان هم به عنوان یک شیلد برای آردوینو استفاده کرد و هم به صورت یک برد مجزا از آن استفاده کرد. منظور از شیلد بردهایی است که روی بردهای اصلی نصب میشوند و یک قابلیت خاص را به برد اصی اضافه میکنند.
برد FPGA مدل spartan edge قابلیتهای بسیار زیادی دارد مثل: قابلیت اتصال به وای فای ۲.۴ گیگا هرتز، قابلیت بلوتوث، ورودی آنالوگ به دیجیتال، درگاه اتصال به دوربین و شتابسنج ۶ محوره
برد FPGA؛ یکی از بهترین قطعات در بردهایی با کاربرد خاص
بردهای FPGA به علت ویژگیهایی که دارند روز به روز محبوبتر میشوند و استفاده از آنها بیشتر میشود. برد FPGA را میتوان در هر بردی که نیاز به پردازش دارد استفاده کرد و هیچ محدودیتی برای استفاده از این بردها وجود ندارد. استفاده از FPGA در محصولاتی که نیاز دارند چندین داده را همزمان پردازش کنند و سرعت پردازش برایشان اهمیت دارد به شدت پیشنهاد میشود این موضوع در طراحی تجهیزات الکترونیکی مورد بررسی قرار میگیرد. آوند الکترونیک با در اختیار داشتن متخصصان برنامه نویسی و طراحی بردهای الکترونیکی میتواند در محصولاتی که نیاز باشد برنامهی FPGA را بنویسد و از این قطعه در محصولات خود استفاده کند.
از اینکه تا انتهای این مقاله همراه آوند الکترونیک بودید از شما سپاسگزاریم.