Don't wanna be here? Send us removal request.
Text
راهنمای جامع خرید برد FPGA و مقایسه FPGA های شرکت Xilinx
در این مطلب قصد داریم به مقایسه FPGA های شرکت XILINX بپردازیم که باعث تصمیم گیری بهتر هنگام خرید برد FPGA می شود. همون طور که قبلا هم گفتیم FPGA های شرکت XILINX از خانواده های Spartan، Artix، Kintex، Virtex و ZYNQ تشکیل شدن که هر کدوم از این خانواده ها خودشون دارای ورژن های مختلفی هستن مثلا میبینیم که توی بردهای FPAG مثلا ممکنه Virtex7 باشه که این ینی خانواده اون Virtex هست و نسل 7 هست.
اما برای خرید برد FPGA چه گزینه هایی ممکنه اهمیت داشته باشه؟
1- فاکتور های مهم در خرید برد FPGA
قیمت
قیمت یکی از گزینه هایی هست که توی خرید برد FPGA بهش باید توجه کرد البته ممکنه گزینه اول نباشه اما ما اول آوردیمش! البته قیمت به خیلی از عوامل دیگه وابسته خواهد بود مثلا اینکه شما در پروژه تون نیاز به چه حجمی و سرعتی از پردازش داشته باشید ممکنه FPGA از نوع Kintex7 رو انتخاب کنید یا Kintex Ultrascale+ که خودش تفاوت بسیار زیادی رو ایجاد خواهد کرد در قیمت.
Interface
مثلا اینکه آیا برد مورد نظر شما باس PCIe داشته باشه یا نه؟
خود PCIe هم نمونه های مختلفی داره از نظر نسل PCIe و یا سرعت تبادل اطلاعات و اینکه 32 بیت باشه یا 64 بیت و همچنین Interface های دیگه مثل USB ، Ethernet، CAN و …
میزان منابع سخت افزاری در FPGA
مثلا توی طراحی شما به چه تعداد DSP نیاز خواهید داشت؟
فرکانس کاری سیستم
مثلا آیا FPGA شما قراره با یک ادوات جانبی پرسرعت ارتباط برقرار کنه؟ و نیاز به پردازش فوق سریع داره؟
میزان توان مصرف
مثلا آیا با اینکه برد توان زیادی مصرف کنه مشکل ندارید و یا ادوات تغذیه، جریان مصرفی رو تامین میکنه؟
2- یک مقایسه از FPGA های مختلف شرکت XILINX
بزارید یه تصویر رو بهتون نشون بدیم که خودش یه پایان نامه کامله!
تفسیر عکس مقایسه FPGA های شرکت Xilinx
این تصویر به ما میگه که اگه برای خرید برد FPGA توان پایین مدنظر هست سعی کنید با احتیاط به سمت ARTIX برانید! (البته ممکنه میزان مثلا منابع سخت افزاری مورد استفاده در پروژه ما رو به KINTEX محدود بکنه)، اما اگه توان براتون اهمیت نداره و کنتور برق رو یکی دیگه میخاد پرداخت کنه! برید سمت Virtex که بزرگشونه!
این تصویر ممکنه یک مفهوم کلی رو برسونه اما برای انتخاب بهتر باید خودمون تحقیق کنیم که چه چیزی رو باید انتخاب کنیم مثلا در بعضی موارد تفاوت فقط در منابع خواهد بود، مثلا توی ورژن های UltraScale و UltraScale+ از FPGA های خانواده KINTEX و VIRTEX تکنولوژی ساخت و معماری کاملا یکسان هست اما توی منابع متفاوت هستند (منابع ینی چی��! ینی LUTs, BRAMs, DSP48s و …) و Virtex منابع بیشتری داره.از نظر قیمت هم که توی یک ورژن هرچی از Artix به سمت Virtex بریم گرونتر خواهند شد.
3- چند نکته ی مهم درباره خرید برد FPGA
وجود میکروکنترلر یا DSP
نکته دیگر در خرید برد FPGA اینه که ممکنه بعضی جاها وجود میکروکنترلرهایی مثل ARM و یا پردازنده های DSP کار رو خیلی راحت تر کنه که باید به این هم در خرید برد توجه کنید. برای این مورد هم یک FPGA داریم به نام ZYNQ که داخل خودش علاوه بر قسمت لاجیک قسمت نرم افزاری هم داره که چندتا هسته ARM هستن از نوع CortexA9 و قسمت لاجیکش هم یا Artix هست و یا Kintex که با ارتباط دهی قسمت نرم افزاری و سخت افزار به یک SoC تبدیل شده به این معنا که تمام امکانات جهت پیاده سازی یک سیستم عامل رو داره و میتونید انواع سیستم عامل ها رو روش راه اندازی کنید مانند لینوکس، اندروید، RTOS و…
به پشتیبانی و گارانتی بردی که می خرید، دقت کنید!
نکته بعدی در خرید برد FPGA میزان پشتیبانی و همچنین گارانتی هستش، که خیلی مهم خواهد بود برای زمانی که با برد به مشکل میخورید و یا برد میسوزه و پروژه شما روی هوا میمونه پس باید گفت که وقتی در حال خرید برد FPGA هستید به این توجه کنید که شرکت در ادامه فرایند خرید به شما چه سرویس ها و چه تضمین هایی رو به شما ارائه میکنه مثلا ممکنه براتون ip هایی که خودش طراحی کرده به صورت رایگان در اختیارتون قرار بده و یا نرم افزارهایی رو توی سیستم عامل لینوکس یا ویندوز به شما بده که کار با برد خریداری شده رو براتون راحت تر بکنه
میزان و سرعت حافظه های موقت
نکته دیگه در خرید برد FPGA میزان و سرعت حافظه های موقت هستش کارشون دقیقا کار RAM هست توی کامپیوتر، مطمعنا وقتی اولین بار شروع به برنامه نویسی کردیم یادتونه که از متغیرها استفاده کردیم این متغیرها نیاز دارند که برای مدتی به صورت موقت یه جایی ذخیره بشوند و دوباره فراخوانی و دوباره ذخیره و …. تا پردازش به اتمام برسه، و بسته به اینکه سرعت پردازش چقدره و همچنین حجم متغیرهامون چقدر باشه باید نوع و میزان حافظه رو انتخاب بکنیم.
پس این هم شد چند تا نکته مهم دیگه که اولا حجم این حافظه ها چقدر باشه و دوما سرعت ارتباط با این حافظه ها چقدر باشه مثلا حافظه DDR4 سرعت ارتباط بیشتری رو فراهم میکنه نسبت به حافظه DDR3.
قابلیت ارتقاء سیستم
در خرید برد FPGA به قابلیت ارتقاء سیستم هم توجه کنید، مثلا فرض کنید شما یک سیستم داده برداری رو راه اندازی کردید که فعلا داره 12 تا داده آنالوگ رو نمونه برداری و پردازش میکنه، شاید در آینده تصمیم گرفته بشه که 50 تا داده، باید نمونه برداری و پردازش بشه که نوع و تعداد کانکتورها اینجا مهم خواهند شد
توجه به استانداردها
استانداردها نکته دیگه ای هستش که باید به اون توجه کرد، استاندارد ها میاند که یک نظم خاص به سیستم ها ببخشند مثلا فکرش رو بکنیم اگه کلا استانداردی برای واحد طول نداشتیم چی میشد! توی خرید برد FPGA هم درواق�� استاندارد هایی هستش که اگه رعایت نشده باشه به مشکل خواهید خورد مثلا استاندارد طراحی برد، استانداردها ارتباطی، استاندارد در ابعاد برد و … مثلا توی استاندارد ارتباطی یک استاندارد داریم به نام VPX که اگه رعایت نشده باشه اتصال اون برد به بردهای دیگه ای که این استاندارد رو رعایت میکنند مشکل خواهد بود.
و در آخر هم باید تاکید کنیم نکاتی که مطرح شد، در خرید برد FPGA نکاتی عمومی مثل مقایسه FPGA های شرکت Xilinx هستند. اما بسته به اینکه شما قصد انجام چه پروژه ای رو دارید ممکنه مسائل دیگه ای هم براتون مهم بشه.

0 notes
Text
راهنمای خرید برد داده برداری – هرآنچه باید درباره برد داده برداری بدانید!
سلام توی این مطلب میخایم کمک کنیم به انتخاب افرادی که قصد دارند برد داده برداری یا Data acquisition بخرند. خب مهمترین قسمت در خرید برد داده برداری ADC ها هستند که میخایم به بررسی خصوصیت اونها بپردازیم.
1- معنای اصطلاحات ADC و DAC
ADC : Analog to Digital Converters
ADC عمل تبدیل داده آنالوگ به دیجیتال را انجام میدهد و DAC برعکس کار ADC رو انجام میده یعنی تبدیل داده های دیجیتال به آنالوگ.
2- بررسی تمام خصوصیات ADC برای خرید برد داده برداری
جهت کمک به خرید یک برد داده برداری که مناسب داده پردازی باشد باید خصوصیات ADC رو مورد بررسی قرار دهیم.
(SNR (Signal to Noise Ratio
اصطلاحاً نسبت سیگنال به نویز است و به این صورت تعریف میشود که، نسبت توان سیگنال به توان نویز در آن سیگنال اندازه گیری شده.
به بیان بهتر زمانی که از یک سیگنال به عنوان مثال صوتی نمونه برداری میکنیم اگر SNR ، 100 دسیبل باشد به این معناست که نسبت سطح سیگنال صوتی به سطح سیگنال نویز 100 برابر بیشتر است و این سیستم از یک سیستم دیگر که SNR 90 دارد بهتر خواهد بود، پس هرچه میزان SNR بیشتر باشد، به دقت بیشتری دست پیدا خواهیم کرد و یا هرچه به دقت بالاتری نیاز باشد باید به سمت ADC با SNR بالاتر رفت.
SFDR
یکی از نکاتی که در خرید برد داده برداری باید به آن دقت کرد میزان SFDR است که به اختلاف بالاترین توان قابل اندازه گیری در ADC از بالاترین سطح نویز SFDR گفته میشود، که مشخصا هرچه به دقت بالاتری نیاز داشته باشیم باید مقدار بیشتری باشد.
این مقدار به عنوان مثال میتواند 80 دسیبل باشد. البته در مواردی به این صورت تعریف میشود که به اختلاف بالاترین توان سیگنال اندازه گیری شده در ADC از بالاترین سطح نویز SFDR گفته می شود.
INL
این پارامتر مخففی از Integral Non-Linearity است که میزان غیر خطی بودن ADC را نشان میدهد، غیر خطی بودن در واقع اختلافی بین مقدار واقعی و اندازه گیری شده است که نمونه آن را در تصویر مشاهده میکنید.
DNL
این ویژگی مخفف Differential Non-linearity است و میتوان آن را میزان رُند شدن ولتاژ ورودی جهت تبدیل به مقدار دیجیتال تفسیر کرد، در تصویر مقادیر DNL مشخص شده است که هرچه مقدار کمتری باشد ADC از دقت بالاتری برخوردار است. باید به این نکته توجه کرد که DNL با رزولوشن رابطه عکس دارد.
Power
میزان توان مصرفی یکی دیگر از خصوصیاتی است که باید به آن توجه کرد، این خصوصیت مخصوصا در ADC هایی که سرعت بالایی دارند بیشتر مورد اهیمت قرار میگیرد چرا که توان بالاتری نیز مصرف میکنند.
(Input range (FSR
این مشخصه که مخفف Full scale range است به معنای محدوده ی اندازه گیری ولتاژ است که باید قبل از خرید برد و یا ADC مربوطه به آن توجه کرد. در تصویر خط قرمز رنگ سیگنالی است که به دلیل عدم انتخاب درست ADC قسمت هایی از آن بریده شده است.
توجه کنید که بهترین حالت این است که FSR اندکی (به عنوان مثال 5%) از بیشترین رنج ولتاژ ورودی شما بزرگتر باشد تا بتوان از همه ی دقت ADC در اندازه گیری استفاده کرد.
Resolution
اصطلاحا به عرض بیت ADC رزولوشن نیز گفته میشود که هرچه بیشتر باشد، در نهایت دقت بیشتری در اندازه گیری خواهیم داشت. معمولا این خصوصیت ��ر ADC ها از 10 تا 24 بیت است که بسته به نوع اندازه گیری میتوان بهترین رزولوشن را در خرید برد داده برداری انتخاب کرد.
به این نکته باید توجه کرد که قیمت ADC با ضرب رزولوشن در سرعت سمپل برداری، رابطه مستقیم دارد.
(Bit rate (Sampling Frequency
بیت ریت در واقع سرعت ADC را مشخص میکند. یک رابطه مشهور به نام رابطه نایکوئیست وجود دارد که جهت بازسازی یک سیگنال آنالوگ، میزان داده برداری از آن سیگنال حداقل باید دوبرابر بالاترین فرکانس موجود در آن سیگنال آنالوگ باشد.
معنای متفاوت این قانون به این شکل هست که جهت جلوگیری از پدیده ی Aliasing باید فرکانس های بالاتر از نصف سرعت اندازه گیری ADC را فیلتر کنیم. این فیلتر در بعضی از ADC ها وجود دارد اما در بعضی دیگر باید به صورت دیجیتال یا آنالوگ فیلتر شوند.
ENOB
این خصوصیت مخفف effective number of bits است که به معنای تعداد بیت های موثر است.در بیت های اندازه گیری شده ADC بیت های کم ارزشی وجود دارند که به طور کلی همیشه نویز هستند که معمولا در بهترین حالت یک بیت همیشه خطا خواهد بود.
پس در واقع ENOB به تعداد بیت هایی اشاره دارد که بیانگر سیگنال باشند( نویز نباشند). البته این مقدار به صورت اعشاری بیان میشود نه صحیح به عنوان مثال در یک ADC با عرض بیت 12، ENOB میتواند 10.3 باشد.
Bandwidth
به زبان ساده پهنای باند به معنای محدوده ی فرکانس هایی هست که ADC اندازه گیری میکند، بقیه فرکانس هایی که توان اندازه گیری شده از آنها کمتر از یک دوم بالاترین توان اندازه گیری شده باشد جز این محدوده به حساب نخواهند آمد.
Interface
Interface در واقع به این معناست که ADC با چه پروتوکلی داده های دیجیتال اندازه گیری شده را ارائه میدهد که معمولا ADC ها از اینترفیس SPI جهت ارسال داده ها استفاده میکنند.
به این نکته در خرید برد داده برداری توجه بفرمایید که برخی بردها این مزیت را به شما ارائه میدهند که خواندن سیگنال از ADC را به صورت رایگان به شما ارائه میدهند.
فیلتر ورودی
طبق قانون نایکوئیست گفتیم که باید فرکانس های پایین تر از نصف سرعت سمپل برداری فیلتر شوند که بعضی از برد ها این قابلیت را ارائه میکنند که به صورت آنالوگ و یا دیجیتال فرکانس های بالا را فیلتر کنند.
AC-coupler و DC-coupler
در خرید برد داده برداری حتما به این مشخصه توجه کنید چرا که کوپلاژ AC بیشتر اوقات به معنای قرار دهی یک فیلتر خازنی در مسیر سیگنال و حذف کردن مقدار DC سیگنال است.
این مورد برای زمانی مناسب خواهد بود که اندازه گیری تغییرات سیگنال مد نظر است و تغییرات سیگنال در میزان DC سیگنال گم میشود و دقت نکردن به این موضوع میتواند دقت اندازه گیری را کاهش دهد. اما زمانی که میزان بایاس و یا DC سیگنال مد نظر باشد باید به وجود DC-coupler دقت کرد، در واقع در این حالت قسمت DC و AC سیگنال هر دو اندازه گیری خواهند شد.
channel
نکته دیگری که واضح است تعداد کانال های اندازه گیری است، که با توجه به تعداد داده هایی که نیاز به اندازه گیری باشد انتخاب میشود.
دمای قابل تحمل
در ADC ها استانداردهای دمایی وجود دارد که میزان دمای قابل تحمل آنها را بیان میکند که اگر هدف کار کردن برد در شرایط سخت باشد باید به سمت خرید بردهایی که استاندارد دمای نظامی دارند رفت.
تامین کلاک
تامین کلاک ADC میتواند به روش های مختلفی انجام شود، از روی برد، با اسیلاتور، از طریق کابل خارجی و … که اگر به این نکته توجه نکنید میتواند پس از خرید برد شما را درگیر جزییات کند.

#fpga#fpga design course in bangalore rtl design training institutes#fpga industry#FPGA_DESIGN#fpga market#electronics#electronic#xilinx
0 notes
Text
ویدیوی آموزشی پاسخ به سوال : FPGA چیست ؟
1- زبان توصیف سخت افزار چیست؟
برای اینکه بفهمیم FPGA چیست ، فرض می کنیم که شما با استفاده از کد ها یک برنامه را می نویسید.
روشی که معمولاً این کد کار می کند این است که به دستورالعمل هایی کامپایل می شود که روی یک پردازنده اجرا می شوند.
اما شما می توانید آن را کمی متفاوت بنویسید و آن سنتز می شود تا به طور موثر بر روی FPGA اجرا شود.
این نوع کد ، یک زبان توصیف سخت افزار نامیده می شود.
2- FPGA چیست ؟
سنتز فرآیند نگاشت این کد در بلوک های فیزیکی سخت افزار است.
این بلوک های سخت افزار، کاملاً از رجیسترها و بلوک های دیجیتال تشکیل شده است.
ترفند این است که بلوک های دیجیتال را می توان با استفاده از جداول LUT پیاده سازی کرد.
پس اگر یک دسته LUT را کنار هم قرار دهید و آنها را قابل برنامه نویسی کنید، سپس یک ساختار سوییچ به آن اضافه کنید که بتواند همه آنها را به هم متصل کند و بعد به کاربر اجازه دهید که LUT ها را دوباره طوری که خودش می خواهد برنامه نویسی کند، حالا یک دستگاه مستقل داریم که می تواند هر کدی که ما بخواهیم، اجرا کند که به این دستگاه FPGA گفته می شود.
برای آشنایی بیشتر با مفهوم FPGA، ویدیو را مشاهده نمایید.
0 notes
Text
بلاک DMA چیست و چه کاری در FPGA ها انجام می دهد؟
مروری بر ip block های VDMA
همون طور که در بخش axi توضیح دادیم هر تراشه از بلاک هایی تشکیل شده که اطلاعات رو بین هم منتقل می کنن. یکی از این بلاک ها، بلاک DMA هست .
حالا ببینیم این بلاک چه کاری انجام می دهد؟
(DMA (Direct Memory Access
این بلاک برای دسترسی مستقیم به حافظه به کار میره و این امکان رو میده که داده ها از یه بخش سیستم به بخش دیگه منتقل شن. ساده ترین کاربردش این هست که داده ها رو از یه قسمت حافظه به قسمت دیگه منتقل می کنه. هم چنین می تونن داده ها رو از هر تولید کننده داده (مثلا ADC) برای هر مصرف کننده داده بفرسته.
(VDMA (Video Direct Memory Access
در این بلاک axi قادر هست اطلاعاتی که در قالب memory mapped هستن رو به stream تبدیل کنه.(این قابلیت در DMA هم وجود داره)
از این بلاک برای پردازش ویدیو در fpga استفاده میشه . در واقع axi این بلاک پهنای باند زیادی داره که می تونه پروتکل های ویدیو رو ساپورت کنه .
خیلی از اپلیکیشن های ویدیو به بافر هایی نیاز دارن که بتونه تغییرات نرخ ارسال فریم ها و همین طور تغییر ابعاد تصاویر رو هندل کنه. و از نکات مثبت این بلاک اینه که این قابلیت رو داره.
در واقع از نقاط قوت این بلاک این هست که میشه پیش پردازش های اولیه رو مثل تغییر رزولوشن , زوم کردن , cropping و .. انجام داد.
تفاوت های این دو چیست؟
در axi VDMA قابلیت های جدیدی مثل سنکرون کردن فریم های دریافتی با استفاده از بافر های چرخشی ، تغییر دادن رزولوشن و .. وجود داره. ولی در axi DMA دسترسی به حافظه به صورت مرسوم و قدیمی انجام میشه و اطلاعاتی که به صورت stream دریافت میشن به همون ترتیب در DDR های حافظه ذخیره میشن و قابل تغییر نیستن.

0 notes
Text
میکروبلیز چیست ؟ معرفی MicroBlaze و مقایسه آن با ZYNQ
معرفی MicroBlaze : میکروبلیز چیست ؟
در این مقاله قرار است بفهمیم که میکروبلیز چیست و چه تفاوتی با ZYNQ دارد؟
میکروبلیز MicroBlaze یک هسته نرم افزاری میکروپروسسور است که برای FPGA طراحی شده است.
از این پردازنده می توان در حافظه های general purpose و قطعات منطقی fpga استفاده کرد.
در گذشته برای میکروبلیز از اتصال هسته (core connect) به عنوان باس استفاده می شده است.
ولی به دلیل سرعت کم آن، امروزه از AXI interconnect بدین منظور بهره می برند.
برای دسترسی به حافظه محلی، میکروبلیز از یک باس اختصاصی LMB استفاده می کند که باعث سرعت بالای سیستم می شود.
مهمترین ویژگی های میکروبلیز چیست ؟
از مهمترین ویژگی های میکروبلیز می توان به تنظیم مشخصاتی مانند اندازه حافظه cache و پریفرال ها (peripherals) توسط کاربر اشاره کرد.
در واقع همین ویژگی مهمترین برتری میکروبلیز MicroBlaze در برابر ZYNQ به شمار می رود.
زیرا باعث انعطاف پذیری آن در طراحی نسبت به پردازنده های ARM در دستگاه ZYNQ می شود.
همچنین با یک واحد مدیریت حافظه می توان از آن به عنوان میزبان برای سیستم عامل هایی مانند Linux kernel استفاده کرد.
تفاوت ZYNQ و میکروبلیز چیست ؟
قابل ذکر است که MicroBlaze در مقایسه با دیگر واحد های پردازش (مانند Zynq و ARM Cortex-A9) از توان عملیاتی کمتری برخوردار است.
پیش از اختراع ZYNQ ، پردازنده ها شامل دو بخش Programmable Logic و Processing System بودند که بوسیله FPGA به هم متصل می شدند.
با آمدن ZYNQ به عنوان آخرین نسل SOC شرکت Xilinx تغییرات زیادی در ساختار آن پدید آمد.
معماری ZYNQ چگونه است؟
معماری ZYNQ تلفیق دو هسته ARM Cortex-A9 با یک FPGA است.
رابط (interface) مورد استفاده در این معماری AXI) Advanced eXtensible Interface) است که به دلیل پهنای باند زیاد و تاخیر کم متداول شده و به عنوان رابط استاندارد در سیستم های جدید باعث کاهش هزینه و اندازه فیزیک سیستم می شود.
تصویر بالای صفحه، طرحی کلی از ZYNQ را نشان می دهد.

0 notes
Text
سنتز در FPGA ها به چه معناست و آیا اهمیتی دارد که جزئیات آن را یاد بگیریم؟
سنتز در FPGA ها
بیایید برای درک بهتر معنا و مفهوم سنتز در FPGA ها، با یک مثال ساده شروع کنیم. اگر در دوران مدرسه، خوب به حرفهای معلم علوم گوش کرده باشید، معنای سنتز را یاد گرفته اید! البته معلم علوم بنده، عموی من بود. به خاطر همین، برای اینکه به پدرم نگوید که من درس نمی خوانم، مجبور بودم حداقل درس علوم را خیلی خوب بخوانم.
خلاصه اینکه در درس علوم خواندیم که گیاه ها فتوسنتز می کنند ( شاید گیاه ها FPGA را از ما بهتر بلدند ) فتوسنتز ینی تبدیل نور به یه چیز دیگه..، اینجا کلمه ی سنتز مورد نظر ما هست که ینی تبدیل.. سنتز در FPGA ینی تبدیل کدی که ما مینویسیم به سخت افزار
درواقع نرم افزارهایی که کد رو سنتز میکنند دارن ساختار سخت افزار رو به زبان انسان نزدیکتر میکنن اما اگه واقعا قرار باشه برنامه رو به صورت حرفه ای و بهینه بنویسیم باید بدونیم پشت صحنه ی سنتز چه اتفاقی داره میوفته
دوره مقدماتی FPGA ARM در 12 ساعت. برای مشاهده سرفصل ها کلیک کنید.
ما اول دلایل یادگیری سنتز در FPGA رو میگیم بعد میریم سراغ یه مثال که مساله رو برامون روشن تر کنه.
دلایل ضرورت یادگیری نحوه ی سنتز مدار
1- تغییر ساختار کد جهت پیاده سازی در سیستم های دیگر
فرض کنید توی یکی از FPGA های شرکت Xilinx کد HDL نوشتید اما پروژه قراره توی یک FPGA دیگه مثلا شرکت (Intel Altera) پیاده سازی بشه
2- بهینه سازی کد جهت دستیابی به توان پایینتر، عملکرد بالاتر و استفاده از منابع سخت افزاری کمتر
ببینید رک بگم بهتون کد رو خیلیا مینویسن اما توی پروژه های بزرگ اگه بهینه نوشته نشه، همون که نوشته نشه سنگین تره
3- پیدا کردن مسیر بحرانی
توی FPGA یه مفهوم مهم داریم به نام Critical Path ینی مسیر بحرانی، چه زمانی استفاده میشه؟
وقتی که توی یک پروژه مخابراتی و یا نظامی کد HDL نوشته شده ��ما فرکانس کاری مدار پایینه، چه باید کرد؟ ببینید از من به شما نصیحت “توی یک سیستم، سرعت سیستم رو کندترین قسمت سیستم تعیین میکنه، اگه بخاید سیستم سریع بشه باید بگردید مسیربحرانی و یا همون قسمت کند رو پیدا کنید که راهش همون یادگیری نحوه ی سنتز هستش”
4- تاثیر سنتز در FPGA بر مراحل بعدی
بعضی اوقات سنتز مدار مشکلی نداره، فرکانس کاری مدار هم اصلا برامون مهم نیست و به نظر همه چیز عالی میاد،، بازهم نیاز به یادگیری نحوه ی سنتز مدار هست! چرا که برنامه نوشته شده جهت پیاده سازی بعد از سنتز FPGA باید یک سری مراحل دیگه رو هم طی بکنه مثل مکان یابی و مسیریابی … که اینجا سنتز در مراحل بعدی تاثیرگذار خواهد بود.
5- استفاده صحیح از منابع جهت پیاده سازی حافظه ها
توی FPGA دو نوع حافظه داریم حافظه های Block RAM و حافظه های distributed RAMs که اولی حافظه های تعبیه شده در FPGA هست و فقط به عنوان حافظه استفاده میشه و دومی با استفاده از LUT ها ساخته میشه، اولی حجم بیشتری برای ذخیره سازی داره دومی کمتر، نحوه استفاده از این حافظه ها هم باید به صورت بهینه باشه مثلا برای جابجایی یک بار 9 تنی بصرفه نیست که از چندین وانت استفاده بشه به جای یک کامیون ده تن همونطوری که به صرفه نیست برای مسافرت چند نفر یک اتوبوس را اجاره کنیم!
6- همون 5 مورد کافیه ولی …
هرچند دلایل بازم هست اما همون دلایل کافیه که نحوه سنتز مدار رو یاد بگیرید یک نکته دیگه که باید بهش توجه کنید اینه که ابزار سنتز مداری که ما ازش استفاده میکنیم اسمش هست Vivado synthesis tool ابزارهای دیگه ای هم جهت سنتز مدار هستند که رفتارها و البته قابلیت های مشابهی دارند.
مثال سنتز در FPGA
بیاید یک نمونه برنامه نویسی HDL و بهینه سازی اون جهت سنتز بهتر رو بررسی کنیم. اول یه سیگنال تعریف میکنیم و بعد برنامه رو مینویسیم. Signal s:std_logic_vector(2 downto 0); قسمتی از برنامه به صورت زیر نوشته شده
If(s>=4)then B<=a; End if;
اما اگه به سیگنال s که یه سیگنال سه بیتی هست توجه کنید متوجه میشید که میتونیم فقط یک بیتش رو معیار قرار بدیم، نه هر سه بیتش. برای اینکه هم سرعت مدار بالاتر بره هم از منابع کمتری استفاده کرده باشیم.
If(s(2)=’1’)then B<=a; End if;
نحوه پیاده سازی کد در سخت افزار رو در آینده بیشتر توضیح خواهیم داد. ولی خلاصه یادتون باشه که نحوه سنتز مدار بحث بزرگ و البته مهمیه! موفق باشید.

#FPGA#آموزش fpga#FPGA_DESIGN#fpga market#fpga design course in bangalore rtl design training institutes#electronics#electronic#الکترونیک#آموزش الکترونیک#vhdl#vivado#synthesis
0 notes
Text
VIVADO HLS نرم افزار قدرتمند برنامه نویسی برای طراحی سخت افزار
معرفی نرم افزار VIVADO HLS
یکی از نرم افزارهایی که شرکت Xilinx جهت طراحی سخت افزار ارائه می کند، نرم افزار قدرتمند VIVADO HLS است که خوشبختانه در کارگاه ها نیز تدریس خواهد شد.
مشاهده ی سرفصل های دوره مقدماتی FPGA ARM
داستان از زمانی شروع شد که مهندسین نرم افزار شروع به غر زدن کردند! که طراحی سخت افزار با زبان های HDL (مانند زبانهای VHDL و Verilog ) بسیار زمان بر و طاقت فرساست.
البته باید به مهندسین نرم افزار حق داد؛ افرادی که شیرینی زبان پایتون را چشیده اند، تن به برنامه نوشتن با زبانهای HDL نخواهند داد و این داستان به جایی رسید که امروز ما می توانیم بدون نوشتن حتی یک کلمه زبان HDL یک پروژه ی کامل FPGA را انجام دهیم.
سوال : اگر در این نرم افزار، برنامه نویسی به زبان HDL نیست، پس با چه زبانی است؟
جواب : زبان های برنامه نویسی سطح بالا، زبانهای SystemC و C++ , C
در واقع برنامه هایی که با زبان سطح بالا نوشته می شود ابتدا با نرم افزار VIVADO HLS به سطح سخت افزار ترجمه میشوند سپس جهت پیاده سازی در سخت افزار در نرم افزار VIVADO سنتز می شوند.
باز هم سوال : نرم افزار VIVADO HLS چه موضوعاتی را جهت طراحی، تحت الشعاع قرار می دهد؟
جواب : در زبانهای سطح بالا یک نیروی کمکی وجود دارد که باعث گسترش این زبان ها شده است، این نیروی کمکی همان کتابخانه ها هستند، 7 نوع کتابخانه ی مختلف جهت طراحی سخت افزار نوشته شده است که در ادامه به آنها اشاره می کنیم.
قبل از معرفی این 7 کتابخانه شاید برای شما سوال شود که اصلا کتابخانه چیست؟ مثلا وقتی در زبان C می نویسیم #include چه اتفاقی در پشت صحنه افتاده است؟ باید بگوییم که کتابخانه ها فقط کدهای آماده ای هستند که یک سری افراد که خداخیرشون بده از قبل نوشتن که کار ما رو راحت کن��د.
7 کتابخانه نرم افزار VIVADO HLS
اما 7 کتابخانه ای که گفتیم که در واقع 7 خان رستم هستند کدامند؟
۱_ کتابخانه ی پردازش سیگنال دیجیتال (DSP).
۲_ کتابخانه ی پردازش تصویر (Opencv).
۳_ کتابخانه هایی که عرض بیت متغیرها و ورودی خروجی ها را مشخص می کنند.
۴_ کتابخانه هایی که داده ها را جهت پردازش و یا تبدیل به ماتریس در یک حافظهFIFO قرار می دهند.
۵_ کتابخانه ی توابع ریاضی (Math.h)
۶_ کتابخانه هایی که از ip های از پیش طراحی شده استفاده می کنند.
۷_ کتابخانه ی توابع جبری و ماتریسی.
خیلی حرف در مورد VIVADO HLS مونده که باید بزنیم اما توی این مطلب نمی گنجه و یقین دارم شما هم دیگه حوصله خوندن بیش از اینو ندارید. پس انشالله کارگاه تشریف آوردید میگیم خدمتتون.
برای ثبت نام در دوره مقدماتی FPGA ARM اینجا کلیک کنید!

#FPGA#FPGA_DESIGN#آموزش fpga#fpga design course in bangalore rtl design training institutes#fpga market#vhdl#verilog#electronics#الکترونیک#آموزش الکترونیک#مهندسی برق#تکنولوژی#xilinx#intel
0 notes
Text
پیاده سازی انواع شبکه عصبی در سخت افزار FPGA
اهمیت و کاربردهای شبکه عصبی
در مهندسی برق، الکترونیک و کامپیوتر یکی از مسائلی که این روزها بسیار مورد اهمیت قرار گرفته، پیاده سازی شبکه عصبی است. کاربرد های زیادی نیز دارد:
در مهندسی قدرت، میزان تولید توان در نیروگاه ها جهت کاهش تلفات
در مهندسی کامپیوتر، تشخیص علاقه مندی افراد (چیزی که در اینستاگرام به خوبی دیده می شود)
در مهندسی سیستم، تشخیص صدای افراد مختلف و …
https://iranfpga.ir/%D8%B4%D8%A8%DA%A9%D9%87-%D8%B9%D8%B5%D8%A8%DB%8C/
مثال
بیایید ابتدا با یک مثال ساده ماهیت یک شبکه عصبی را بررسی کنیم. فرض کنید شخصی با سفر در زمان از هزار سال پیش به سال 2020 آمده است و می خواهیم دنیای جدید را به او آموزش دهیم. یکی از این آموزش ها می تواند انواع اتومبیل باشد. به عنوان مثال، اگر بخواهیم فرق بین اتوبوس و یک ماشین سبک را به وی آموزش دهیم، باید خصوصیاتی که در این دو اتومبیل متفاوت است را جهت آموزش انتخاب کنیم. مثلا اگر تعداد چرخ را معیار قرار دهیم، چون در هردو تعداد چرخ ها یکسان است، نمی تواند معیار خوبی جهت آموزش باشد. یکی از بهترین معیار ها اندازه ی اتومبیل است. با این تعریف که به وی بگوییم: اتومبیل هایی که طول حدود 7 و عرض 3 متر دارند، اتوبوس و اتومبیلی که طول حدود 4 و عرض حدود 2 متر داشته باشد، سواری خواهد بود (البته اگر بتوانید به وی واحد متر را آموزش دهید) .
در حین آموزش، از بدشانسی ما به یک لیموزین می رسیم که طول آن بیشتر به اتوبوس می خورد و عرض آن به یک ماشین سبک!! و چون فقط دو نوع ماشین به شخص آموزش داده شده، ممکن است در تشخیص اشتباه کند. به همین خاطر باید تعداد معیارهای بیشتری جهت تشخیص نوع اتومبیل انتخاب کنیم.

پیاده سازی شبکه های عصبی با FPGA
در سخت افزار نیز همان فلسفه مثال قبل را خواهیم داشت. با این تفاوت که اینجا FPGA آن شخصی است که از هزار سال پیش به زمان حال آمده است و مسئله آموزش هر چیزی می تواند باشد.
مثال
به عنوان مثال، فرض کنید بخواهیم رنگ های مختلف را به سخت افزار آموزش دهیم و معیار سه رنگی اصلی (RGB) قرمز سبز آبی باشد. در مثال قبل، برای آموزش به شخص ابتدا واحد متر را آموزش دادیم و سپس معنای طول و عرض. در اینجا نیز یکی از واحد ها میتواند لومن باشد و مفهوم سه رنگ اصلی خواهند بود.
ابتدا شبکه عصبی نیاز به آموزش دارد؛ به این معنا که باید برای شبکه تعداد زیادی مثال بزنیم. پس از آن شبکه آموزش داده شده می تواند نوع رنگ را تشخیص دهد.
سخن پایانی
شبکه های عصبی به این مثال ها محدود نمی شود. امروزه جهت مدل سازی مسائل کلان کشورها مانند اقتصاد، سهام، بورس، مدیریت بحران و … از شبکه عصبی استفاده می شود. آموزش عملی پیاده سازی شبکه های عصبی با FPGA در کارگاه های آموزش FPGA ARM به کارآموزان آموزش داده خواهد شد.
IRAN-FPGA برگزارکننده دوره های آموزش FPGA ARM در سه سطح مقدماتی، پیشرفته و تخصصی و مجری پروژه های طراحی سخت افزار و FPGA ، آماده همکاری با سازمان ها، دانشگاه ها ��وسسات آموزشی آزاد می باشد.

#FPGA#آموزش fpga#FPGA_DESIGN#fpga design course in bangalore rtl design training institutes#fpga market#electronics#neural network#الکترونیک#شبکه عصبی#آموزش الکترونیک
0 notes
Text
کاربردها و نحوه اجرای پروژه پردازش سیگنال دیجیتال (DSP) با FPGA
تشخیص صدای عبور انواع هواپیماها با کمک پردازش سیگنال دیجیتال با FPGA
فرض کنید در یک پروژه پردازش سیگنال دیجیتال (DSP) قرار است عبور انواع هواپیماها (جت جنگنده و یا مسافربری و …) را با پردازش صدای محیط تشخیص دهید.
اولین کاری که باید انجام دهیم این است که ورودی صدا را بگیریم.
https://iranfpga.ir/dsp-by-fpga/
میکروفونی که ما در کارگاه و دوره های طراحی سخت افزار از آن استفاده می کنیم، یک نمونه از میکروفون های شرکت MEMS است که قابلیت سمپل برداری از صدا تا ریت 50 کیلوسمپ بر ثانیه را دارد.
ریت 50 کیلوسمپل بر ثانیه، به معنای ضبط صدا تا فرکانس 25 کیلوهرتز می باشد (طبق قانون نایکوئیست).
همان طور که می دانید فرکانس 25 کیلوهرتز خارج از محدوده ی شنوایی انسان و فراصوت است.
پس همه صداهایی که با گوش شنیده می شود، با میکروفون ما نیز قابل ضبط خواهد بود.
نکته قابل توجه آنکه در این میکروفون دونوع فیلتر آنالوگ و دیجیتال به کار رفته است که فیلتر آنالوگ صداهای بالاتر از 25 کیلوهرتز را دمپ می کند و فیلتر دیجیتال متغیر است!

فیلتر دیجیتال متغیر
عملکرد فیلتر دیجیتال متغیر چگونه است؟!
اگر مطالب قبلی کانال ما در تلگرام را دیده باشید، توضیحاتی در مورد این نوع فیلترها داده شده است و تصویر یک نمونه ی پیاده سازی شده را نیز قرار داده ایم.
عملکرد کامل فیلترهای دیجیتال را نیز در کارگاه شرح خواهیم داد.
هارمونیک های اصلی
یکی از مباحث مهم در حوزه پردازش سیگنال دیجیتال، هارمونیک های اصلی است.
هارمونیک های اصلی صدای موتورهای جت در فرکانس های 80 تا 460 هرتز می باشد که جهت تشخیص آنها باید به رفتار سیگنال در حوزه ی فرکانس در این محدوده توجه کرد.
با توجه به بالاترین فرکانس مورد نیاز در پروژه (460 هرتز) سمپل برداری تا مقدار 2*460 که می شود 920 سمپل بر ثانیه است، کافیست.
کاهش داده برداری با میکروفون نهایتا تا 16 کیلوسمپل بر ثانیه ممکن است اما جهت کاهش پهنای باند تا محدوده ی 80 تا460 چه باید کرد؟
اشتباه رایجی که در اینجا رخ می دهد، کاهش ریت سمپل برداری بدون استفاده از فیلتر است که دلیل آن را در کارگاه FPGA به کارآموزان به صورت مفصل توضیح خواهیم داد.
جهت کاهش پهنای باند در کارگاه فیلترهای دیجیتال FIR را طراحی خواهیم کرد و سپس به الگوریتم تشخیصی خاص این پروژه (به نام oxor) می پردازیم.
جهت داده برداری از میکروفون نیز اینترفیس I2S را در FPGA پیاده سازی خواهیم کرد.
میکروفون ها صدا را به صورت استریو (دو کانال چپ و راست) ضبط می کنند.
هرچند میکروفون مورد نظر ما قابلیت ضبط صدا به صورت استریو را داراست و با 0 یا 1 شدن یکی از پایه ها میکروفون میتوان کانال چپ یا راست بودن را تعیین کرد، اما در این پروژه ما چون نیازی به ضبط صدا به صورت استریو نداریم، از این قابلیت صرف نظر می کنیم.
ذخیره شدن سیگنال در حافظه ی FIFO
پس از آنکه پردازش سیگنال دیجیتال در حوزه فرکانس انجام شد و پهنای باند خاصی از آن جدا شد، سیگنال دیجیتال در یک حافظه ی FIFO قرار می گیرد، همانطور که از اسم این حافظه مشخص است، اولین ورودی در آن اولین خروجی نیز خواهد بود که انتخاب خوبی جهت پردازش های بعدی خواهد بود.
پس از آن که سیگنال در حافظه ی FIFO ذخیره شد، با هر لبه ی کلاک می توانیم یک سمپل از صدا را در خروجی این حافظه برداشته و به پردازش سیگنال دیجیتال مورد نظر در حوزه زمان بپردازیم، تا در نهایت تشخیص وجود و یا عدم وجود موتور جت در محیط بپردازیم.
پیاده سازی پروژه ی پردازش سیگنال دیجیتال با FPGA
جهت برآورده کردن پیش نیازها در این پروژه به اصول پردازش سیگنال دیجیتال می پردازیم و آنها را ابتدا در نرم افزار متلب پیاده سازی می کنیم.
سپس به پیاده سازی در سخت افزار می پردازیم.
همچنین جهت طراحی فیلتر های دیجیتال نیز ابتدا آن را در متلب پیاده سازی خواهیم کرد و سپس به پیاده سازی آن در سخت افزار خواهیم پرداخت.
برای شرکت در کارگاه فشرده طراحی سخت افزار FPGA ARM اینجا کلیک کنید.
#fpga#آموزش fpga#fpga design course in bangalore rtl design training institutes#fpga market#electronics#hardware#سخت افزار#نرم افزار#برنامه_نویسی#vhdl#الکترونیک
0 notes
Text
اترنت چیست؟ آشنایی با شبکه ی اترنت ethernet
یکی از موضوع هایی که در دوره های طراحی سخت افزار IRAN GPGA تدریس خواهد شد شبکه ی اترنت است که این مطلب مقدمه ای بر موضوع دوره FPGA پیشرفته خواهد بود.

اترنت چیست؟
ابتدا بیایید به منشأ نام شبکه ی اترنت بپردازیم.اتر در واقع به معنای ماده ای است که در فضای عالم وجود دارد و میتوان گفت 99 درصد دنیا را فراگرفته است و این اسم در واقع از آن ماده مشتق شده است.شبکه ها انواع مختلفی دارند.به عنوان مثال شبکه ای که بانک ها از آن استفاده می کنند، شبکه ی ATM است که ضریب امنیت بالایی دارد.و انواع شبکه های دیگر که در این مطلب نمیگنجد.
لایه های مختلف شبکه ها
همه ی شبکه ها از لایه های مختلفی تشکیل شده اند که هر لایه پیچیدگی های خود را دارد.اما پایین ترین و بالاترین لایه در همه ی شبکه ها یکسان است،پایین ترین لایه که لایه ی فیزیکی است و بالاترین لایه که لایه ی اپلیکیشن است.لایه ی فیزیکی لایه ای است که در بستر آن پیام ها منتقل می شود که می تواند بسته به نیاز کابل، کابل نوری، امواج رادیویی و یا حتی در برخی شبکه ها مانند شبکه های زیر آبی، امواج صدا باشد.در مورد لایه ها در کارگاه بیشتر صحبت خواهد شد.
لایه اپلیکیشن
بالاترین لایه که در دسترس مهندسین نرم افزار است لایه ی اپلیکیشن است، این لایه خود به بخش های مختلفی گسترش یافته است.اگر بخواهیم آنها را نام ببریم، می توان به موارد زیر اشاره کرد :HTTP ،FTTP ،PPP ،Mail
مثال
پروتوکل HTTP پروتوکلی است که در ارتباط وب سایت ها م��رد استفاده قرار می گیرد و فایل های متنی را منتقل می کند.HTTP مخفف HyperText Transfer Protocol است.پروتوکل FTTP نیز مخفف کلمات Hyper File Transfer Protocol است.همانطور که از نام آن مشخص است هدف آن انتقال فایل ها توسط یک پروتوکل تحت شبکه است.
لایه های دیگر شبکه اترنت
لایه های دیگری نیز در ارتباط شبکه وجود دارند که بد نیست به آنها پرداخته شود.به عنوان نمونه، لایه ی MAC. هر دستگاه دارای یک آدرس مک مخصوص به خود است.مثلاً همین گوشی و یا لپ تاپی که با آن در حال وب گردی هستید، دارای یک آدرس مک مخصوص است.به طوری که در شبکه منحصر به فرد است و از روی آن می توان دستگاه شما را تشخیص داد.شاید به این نکته پی برده باشید که اگر دستگاهتان گم شد، یکی از راههای یافتن آن چیست!یکی از لایه ها که مورد تدریس و پیاده سازی در کارگاه قرار خواهد گرفت لایه ی TCP است که از نظر سرعت و دقت بالاتر از لایه ها ی دیگر است.از دیگر خوبی های
شبکه ی اترنت
می توان کاملاً دوطرفه بودن آن را مثال زد.این در حالی است که ارتباطی مانند ارتباط USB یک طرفه است.
مفاهیم و همچنین پیاده سازی شبکه اترنت در دوره های FPGA به طور کامل تدریس خواهد شد.
IRAN-FPGA
مجری پروژه های طراحی سخت افزار FPGA و برگزار کننده ی دوره های آموزشی طراحی سخت افزار FPGA و ARM در 3 سطح مقدماتی، پیشرفته و تخصصی، آماده ی همکاری با موسسات دانشگاهی و آموزش آزاد و سازمان های مختلف می باشد.
برای اطلاعات بیشتر کلیک کنید!
https://iranfpga.ir/ethernet/
0 notes
Text
نکات طلایی درباره شبیه سازی و عیب یابی در طراحی سخت افزار
چگونه در طراحی سخت افزار، برنامه نوشته شده را عیب یابی کنیم؟قبل از اینکه درباره انواع شبیه سازی صحبت کنیم، فرض کنید قراره یک پروژه را با سخت افزار طراحی کنید و زمان هم محدود هست، جهت عیب یابی برنامه نوشته شده چه می کنید؟شاید پاسخ بعضی از مهندسان این باشه که پس از طراحی با اضافه کردن ip هایی (مثل ILA که میتواند سیگنال های درون FPGA را برامون رسم کنه) به عیب یابی برنامه می پردازیم.
باید گفت پاسخ درسته اما اگه زمان پروژه سه برابر بشه! “با این روش پس از ساعتها طراحی و اجرای برنامه و مشاهده ی نتیجه در سخت افزار، متوجه یک خطا میشیم بعد دوباره تغییر طراحی و باز متوجه خطای بعدی میشیم و بالاخره قبل از رسیدن به نتیجه وقت تمام میشه..” اینجا چاره چیه ؟
راهش اینه که بیاییم کدهای نوشته شده رو قبل از هر چیزی شبیه سازی کنیم و ببینیم پاسخ درستی دارن یا نه که خوشبختانه نرم افزار VIVADO واقعا در این قسمت قدرتمند عمل کرده. خود ویوادو یه شبیه ساز داره به نام XSIM که مخفف Xilinx Simulator هست علاوه بر اون از شبیه ساز هایی مثل Questa ، VCS ،Aldec و… هم پشتیبانی میکنه.
شبیه سازیِ برنامه ها هم دوحالت کلی داره که باید حتما بهش توجه کرد: زمانی و غیرزمانی (رفتاری)
شبیه سازی غیر زمانی (رفتاری)در این نوع، فقط منطق برنامه مورد بررسی قرار میگیره که آیا درست نوشته شده یا نه. در این مورد فرض میکنیم که هیچ تاخیری در گیت ها و مسیرها نیست، اما شبیه سازیِ زمانی علاوه بر رفتار مدار، بررسی میکنه که تاخیر گیت ها و مسیرها تا چه فرکانس کاری را برای مدار جواب میده و آیا با فرکانسی که ما تعیین کردیم مدار درست کار میکنه یا خیر.
ممکنه یک مدار با شبیه سازی رفتاری درست کار کنه اما توی شبیه سازی زمانی به خطا بخوره که باید به نحوه ی سنتز مدار دقت کرد و طراحی رو بهینه کرد که در پست های گذشته به بخش سنتز هم اشاره شده.
شبیه سازی توانیکی دیگه از شبیه سازی هایی که انجام میگیره این هست که یک فایل SAIF طراحی میشه تا ببینیم میزان توان مصرفی چقدر هست که مخصوصا برای پروژه های مخابراتی که با باتری و به صورت بیسیم به مدت طولانی کار میکنند خیلی مهم هست.
اگر بخواهیم به جزئیات شبیه سازی بپردازیم، باید گفت که سه بخش دارد:
Compilationتفسیر کدهای نوشته شده به زبان های Verilog، VHDLو SystemVerilogElaborationتولید یک برنامه واحد از کدهای تفسیر شدهactual Simulationشبیه سازیِ سیگنال ها و خروجی مدار با استفاده از برنامه ی مرحله قبل و ورودی های شبیه سازیدر پست های بعد باز هم به این موضوع خواهیم پرداخت. مبحث شبیه سازی از سرفصل های دوره ی مقدماتی است که انشالله در کارگاه، به صورت عملی به کارآموزان آموزش خواهیم داد.با ما همراه باشید. IRANFPGA
https://iranfpga.ir/vivado-simulator/

#FPGA#FPGA_DESIGN#fpga design course in bangalore rtl design training institutes#fpga market#intel agilex fpga#آموزش fpga#xilinx
0 notes
Text
چرا و برای کدام پروژه ها باید به خرید برد FPGA اقدام کنیم؟
چرا باید در پروژه ها به خرید برد FPGA اقدام کنیم؟ و سوال مهم تر آنکه برای چه پروژه هایی باید به خرید برد FPGA اقدام کنیم؟ در این مطلب میخواهیم به این سوال پاسخ دهیم و جهت پاسخ به بررسی خاصیت های FPGA و در برخی موارد به مقایسه آن با پردازنده های دیگر خواهیم پرداخت، با ما همراه باشید تا در آخر مطلب یک هدیه به شما تقدیم می کنیم.
1- نکات مهم در خرید برد FPGA
قابلیت پردازش موازی
اولین و مهمترین دلیل برای خرید برد FPGA و کلا پردازش سیگنال با FPGA “قابلیت پردازش موازی” است به این معنا که یک هسته CPU در یک لحظه (در یک لبه بالا رونده کلاک) فقط یک پردازش میتواند انجام دهد (هر هسته CPU در هر لبه کلاک فقط یک دستور اسمبلی را انجام میدهد).
یک مثال از نعمت پردازش موازی در زندگی روزمره، وقتی به دقت به اطرافمان نگاه میکنیم میبینیم زمانی که ما در حال صحبت تلفنی هستیم، افراد بیشمار دیگری هم در حال تماس تلفنی هستند، کامپیوتری که پردازش و انتقال بخشی از این سیگنهال های فوق سنگین را به عهده دارد، به راستی! باید چند هسته پردازنده داشته باشد؟ پس اینجا یک خلا به وجود میاید که پر نمیشود مگر با سیستمی که توانایی پردازش موازی را داشته باشد. در کل سیستمی که بتواند چندین پردازش را به صورت موازی و همزمان انجام دهد دوای خیلی از دردهای سیگنالی دنیای امروز را درمان خواهد شد.
بهینه سازی سخت افزار
بهینه سازی سخت افزار دلیل دیگری است که مهندسین را مصمم میکند تا برای انجام پروژه ها به خرید برد FPGA روی بیاورند. و اما بهینه سازی سخت افزار به چه معناست؟ به این معنا که در کامپیوترها، میکروکنترلرها و … یک سخت افزار از پیش ساخته شده، شما محکوم به استفاده از یک سیستم 8 بیت یا 32 بیت یا 64 بیت و … هستید.
یا به عنوان مثال دیگر در ارتباط سریال جهت انتقال داده ها توانایی تعداد ارسال بیت به دلخواه را ندارید و بسیاری موارد دیگر که از پیش در سخت افزار طراحی شده است و شما توانایی تغییر در ساختار آنها را ندارید. اما در FPGA کاربر میتواند سیستم را با توجه به نیاز خود تغییر دهد و بهینه سازی کند تا به بهترین نقطه ی توان و عملکرد و بازدهی در سخت افزار دست یابد.
پردازش در زمان واقعی
همچنین در خرید برد FPGA در واقع یک برد real time خریداری میکنیم به بیان دیگر تنها جایی که میتوان ادعای پردازش در زمان واقعی کرد، سخت افزار است. بیایید یک سوال را مطرح کنیم، فرض کنید شما پیامکی را به مخاطب خود ارسال میکنید و پس از 2 دقیقه او این پیام را دریافت میکند.
خب این که مشکلی ندارد اما در یک مثال مشابه فرض کنید در حال صحبت تلفنی با یک شخص هستید، اگر صحبت کنونی شما پس از 2 دقیقه به گوش مخاطب شما برسد و همچنین صحبت مخاطب شما پس از 2 دقیقه به گوش شما برسد، آیا از این گفتگوی تلفنی راضی خواهید بود و به آن ادامه میدهید؟
همچنین فرض کنید که قرار است در یک سیستم هواپیمایی به محض رسیدن هواپیما به ارتفاع کمتر از 20 متری و باز نبودن چرخ ها به خلبان هشدار دهد و یا خودکار چرخ ها را باز کند. آیا اگر این عمل چند دقیقه طول بکشد سیستم شما چند نفر را رهسپار دیار باقی میکند؟!
ادامه مطلب خرید برد FPGA

#FPGA#fpga design course in bangalore rtl design training institutes#fpga market#FPGA_DESIGN#hardware#electronics
0 notes
Text
تفاوت FPGA و میکروکنترلرها ؛ مقدمه ی آموزش FPGA از صفر
تفاوت FPGA و میکروکنترلرها چیست؟

ما در FPGA یک تفاوت بزرگ داریم با میکروکنترلرها!در میکروکنترولرها، شرکت هایی که CPU رو ایجاد می کنند، چه AVR باشد، چه ARM یا PIC یا
DSP
باشد، در واقع یک سری سخت افزار از پیش طراحی می کنند.سپس برنامه نویس با نوشتن کد، از آن سخت افزار استفاده می کند.اما در FPGA کلا قضیه فرق می کند.در FPGA ما سخت افزار را خودمان از صفر طراحی می کنیم.برای الگوریتم، هرطوری که ما بخواهیم است تا بهینه تر شود و سرعت بالاتر رود.این مهمترین و بزرگترین تفاوت FPGA و میکروکنترلرها است اما تفاوت های دیگری هم هست که در دوره به آنها اشاره می کنیم.
https://iranfpga.ir/begin-fpga0/
0 notes
Link
1 note
·
View note