آموزش اِف‌پی‌جی‌اِی از صفر
3.37K subscribers
520 photos
14 videos
10 files
517 links
آموزش قدم به قدم طراحی دیجیتال به کمک FPGA

🌎 آموزشگاه فراد اندیش
www.FaradAndish.com
☎️ ۴۲۴۳۹۹۰۰
ایمیل سایت:
help@faradandish.com

📌 لینک اولین پست کانال:
https://t.me/fpga0/22
Download Telegram
✴️ پاسخ به ۲ سوال در مورد ۳ پیشنهاد ویژه شب یلدا

1️⃣ آیا در صورت استفاده از تخفیف شب یلدا، به تمام هدایای دوره‌ها هم دسترسی خواهم داشت؟

🔹 بله. تمام هدایا و تخفیف‌های هر دوره قابل استفاده خواهد بود.

2️⃣ در صورت ثبت‌نام همزمان در هر دو دوره، چطور یادگیری را پیش ببرم؟

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

🎥 ویدئوی توضیحات کامل این ۳ پیشنهاد 👇

🌎 https://faradandish.com/yalda-offer

🔺 مهلت استفاده از ۳ پیشنهاد شب یلدا، فقط تا همین سه‌شنبه است.

🆔 @FPGA0
📣 فقط تا ساعت ۲۳:۵۹ دقیقه امشب...

❇️ برای استفاده از پیشنهادات ویژه شب یلدا روی لینک زیر کلیک کنید:

🌎 https://faradandish.com/yalda-offer

🆔 @FPGA0
❇️ یک بلوک سخت‌افزاری بسیار پرکاربرد در FPGAهای شرکت Xilinx وجود دارد به اسم DSP48.

🔷 این همان بلوکی است که اکثر پیاده‌سازان دیجیتال با FPGA از جمله خود من و همکارانم به نام ضرب کننده می‌شناسیم.

🔷 مثلا می‌گوییم در FPGAی اسپارتان ۶ از نوع LX9 به تعداد ۱۶ عدد ضرب کننده وجود دارد.

🔷 اما نکته‌ای که وجود دارد این است که نام "ضرب کننده" برای این بلوک، کمی بی انصافی است❗️

⁉️ چرا؟

🔷 چون بلوک DSP48 قابلیت‌هایی بسیار فراتر از یک ضرب کننده عادی دارد.

🔶 اگر علاقمندید با ماهیت واقعی این بلوک و قابلیت‌های متنوع آن آشنا شوید، پیشنهاد می‌کنم ویدئوی امروز را همین حالا ببینید 👇

🆔 @FPGA0
🆔 @FPGA0
#برنامه_ویدئویی۲۸
🎓 پشت پرده عملیات ضرب در FPGA

🎥 برنامه ویدئویی احمد ثقفی
🕘 زمان: ۲۲ دقیقه

📥 در سایت فراد اندیش ببینید 👇👇👇👇

🌎 faradandish.com/پشت-پرده-عملیات-ضرب-در-fpga/
📣 تکرار ثبت‌نام ویژه شب یلدا

⚡️ برای اولین بار تا ۳۰% تخفیف!

❇️ روی لینک زیر کلیک کنید تا از سه پیشنهاد ویژه شب یلدا مطلع شوید:

🌎 https://faradandish.com/yalda-offer

🔺 فرصت استفاده از این پیشنهادها فقط تا روز جمعه ساعت ۲۳:۵۹ دقیقه است.

🆔 @FPGA0
❇️ وقتی در حال انجام یک پزوژه جدی هستید، زمان بسیار حیاتی است.

🔷 منظورم از پروژه جدی، پروژه‌ای است که دارای یک کارفرما است و زمان تحویل آن مشخص شده است.

🔷 در این حالت معمولا برای تاخیر در تحویل پروژه، جریمه‌هایی هم در نظر گرفته می‌شود.

🔷 مهم‌تر از جریمه، اعتبار شما و احتمالا شرکتی است که در آن مشغول به کار هستید. در صورت تاخیر در انجام پروژه، اعتبار چیزی است که معمولا با پرداخت جریمه مجددا به دست نمی‌آید.

🔷 بنابراین منطقی است که از هر روشی که باعث افزایش سرعت فرآینده پیاده‌سازی پروژه می‌شود استفاده کنیم.

🔷 یکی از این روش‌ها، پرهیز از انجام کارهای تکراری به کمک استفاده از مفهومی به نام IP Core است.

🔶 در ویدئوی امروز، در مورد این مفهوم و نحوه استفاده عملی از آن برای پیاده‌سازی در FPGA صحبت می‌کنم 👇

🆔 @FPGA0
🆔 @FPGA0
#برنامه_ویدئویی۱۶
🎓 معرفی IPها در نرم‌افزار ISE و نحوه بکارگیری آنها

🎥 برنامه ویدئویی احمد ثقفی
🕘 زمان: ۱۷ دقیقه

📥 در سایت فراد اندیش ببینید 👇👇👇👇
http://goo.gl/6Ivw7p
⚡️چطور سرعت یک مدار دیجیتال را افزایش دهیم؟ (قسمت اول)

1⃣ روش اول: تغییر در الگوریتم

🔷 تغییر در الگوریتم پیاده‌سازی، بیشترین اثر را در افزایش سرعت مدار دارد.

2⃣ روش دوم: تغییر در معماری

پایپ لاین

🔷 اضافه کردن رجیستر، در مسیر‌های طولانی با تاخیر انتشار زیاد و تبدیل آن مسیر، به چند مسیر کوتاه‌تر پشت سر هم

موازی‌سازی

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

ادامه دارد...
🆔 @FPGA0
⚡️چطور سرعت یک مدار دیجیتال را افزایش دهیم؟ (قسمت دوم)

3⃣ روش سوم: رعایت الگوی استاندارد کدنویسی

رعایت نکات مرتبط با IF و CASE

🔷 تا حد امکان از شرط‌های تودرتو استفاده نکنید.

🔷 سعی کنید بیش از سه شرط تودرتو استفاده نکنید.

🔷 تا حد امکان، عبارت شرط را ساده کنید.

🔷 ارجاعاتی که نیاز نیست درون شرط باشند را در خارج از آن قرار دهید.

استفاده حداکثری از منابع اختصاصی FPGA به جای منابع عمومی (LUTها و فلیپ فلاپ‌ها)

پیاده‌سازی مدار به صورت کاملاً سنکرون

استفاده هوشمندانه از حافظه‌های بلوکی و توزیع شده

ادامه دارد...
🆔 @FPGA0
📚 اگر می‌خواهید به طور جدی‌تر در یادگیری و بکارگیری FPGA پیشرفت داشته باشید، خواندن این کتاب را به شما توصیه می‌کنم.

🔹 مطالب این کتاب، برگرفته از چندین سال تجربه حرفه‌ای نویسنده آن است که به صورت مختصر و مفید در این کتاب گردآوری شده است.

🔹 پیش‌نیاز خواندن این کتاب، آشنایی عمومی با ماهیت و ساختار FPGAها و نحوه توصیف و پیاده‌سازی مدارات دیجیتال به کمک آن است.

🔹 در این کتاب، زبان توصیف سخت‌افزار HDL یا ساختار FPGA آموزش داده نشده است و درک مطالب آن نیاز به تسلط شما به یک زبان HDL و ساختار FPGA دارد.

🔹 اگر در حال حاضر، مهارت پیاده‌سازی مدارات دیجیتال با FPGA را در سطح عمومی دارید، توصیه می‌کنم خواندن این کتاب را هر چه زودتر شروع کنید.

🔹 و اگر در حال یادگیری FPGA هستید، پیشنهاد می‌کنم این کتاب را در محلی روی کامپیوترتان قرار دهید تا در زمان مناسب بتوانید آن را مطالعه کنید و از دیدتان پنهان نماند.

🆔 @FPGA0
🆔 @FPGA0

📚 عنوان: Advanced FPGA Design Architecture, Implementation, and Optimization

👤 نویسنده: Steve Kilts
📅 سال انتشار: 2007
🖨 ناشر: John Wiley & Sons

📥 لینک دانلود:
http://bit.ly/advancedFPGA
⚡️چطور سرعت یک مدار دیجیتال را افزایش دهیم؟(قسمت سوم)

4️⃣ روش چهارم: تنظیم قیود پیاده‌سازی

تنظیم قید Period

🔷 با تنظیم این قید به نرم افزار اطلاع می‌دهیم که قصد داریم چه فرکانسی به مدار اعمال کنیم.

🔷 برای مثال در صورتی که فرکانس اعمال شده به مدار 50MHz باشد، باید کد زیر را در فایل UCF وارد کنیم:

NET "Clock" TNM_NET = Clock;
TIMESPEC TS_Clock = PERIOD "Clock" 50 MHz HIGH 50% ;

در کد بالا فرض شده که نام پورت کلاک، Clock است.

🆔 @FPGA0
⚡️⚡️چطور سرعت یک مدار دیجیتال را افزایش دهیم؟⚡️⚡️

♨️ در فرآیند انجام یک پروژه حرفه‌ای گاهی از شما خواسته می‌شود که سرعت یک مدار دیجیتال را که خودتان یا شخص دیگری پیاده‌سازی کرده است، افرایش دهید؛

♨️ شما باید خودتان را برای چنین روزی آماده کنید.

♨️ در پست‌های قبلی کانال، به بررسی این موضوع پرداختیم و راه‌حل‌های زیر را ارائه دادیم:

1⃣ روش اول: تغییر در الگوریتم

2⃣ روش دوم: تغییر در معماری

روش پایپ لاین

روش موازی

3⃣ روش سوم: رعایت الگوی استاندارد کدنویسی

رعایت نکات فنی مرتبط با ساختارهای شرطی IF و CASE

استفاده حداکثری از منابع اختصاصی FPGA به جای منابع عمومی (LUTها)

پیاده‌سازی مدار به صورت کاملاً سنکرون

استفاده هوشمندانه از حافظه‌های بلوکی و توزیع شده

4⃣ روش چهارم: تنظیم قیود پیاده‌سازی

تنظیم قید Period

برای آشنایی بیشتر با تکنیک‌های افزایش سرعت مدارهای دیجیتال، می‌توانید به مقالات و ویدئوهای زیر از سایت فراداندیش مراجعه کنید:

چگونه سرعت مدار دیجیتال را افزایش دهیم؟:

http://bit.ly/SystemSpeed

الگوی استاندارد کدنویسی برای FPGA:

http://bit.ly/StandardCoding

افزایش سرعت مدار با تنظیم قیدها در ISE:

http://bit.ly/SetConstrains

🆔 @FPGA0
سوال:

من و دوستانم با این مشکل مواجه هستیم که هنوز به تسلط نسبی در میکروکنترلرها و زبان C نرسیدیم و از طرفی مشتاقیم برای یادگیری FPGA و VHDL. بعضی از افرادی که FPGA و VHDL کار کردن، هشدار میدادن که فراگیری همزمان VHDL و C در روند یادگیری و تسلط به VHDL مشکل ایجاد میکنه.

میخواستم با توجه به تجربه ای که در این زمینه دارید، در مورد این مشکل راهنمایی کنید. آیا همزمانی یادگیری زبان C و VHDL رو توصیه میکنید و مفید میدونید یا خیر؟️

📝 جواب:

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

همانطور که قبلا هم در کانال اشاره کردم، تنها پیش‌نیاز شروع یادگیری FPGAها، آشنایی عمومی با مدارات منطقی است. منظور از آشنایی عمومی این است که شما با مفاهیمی مثل گیت‌های منطقی، مالتی‌پلکسرها، دیکدرها، فلیپ‌فلاپ‌ها و ... آشنا باشید. البته حتی این موارد ساده هم در این دوره یادآوری می‌شوند.

دو موضوع توصیف سخت‌افزار دیجیتال به کمک زبان VHDL و نوشتن یک نرم‌افزار به کمک زبان C کاملا متفاوت هستند. برای آشنایی بیشتر با تفاوت‌های موجود بین FPGAها و پردازنده‌ها می‌توانید #برنامه_ویدئویی۳ را ببینید 👇

🌎 http://bit.ly/FPGAvsCPU

برای آشنایی اولیه با زبان توصیف سخت‌افزاری VHDL هم می‌توانید #برنامه_ویدئویی۱۰ و #برنامه_ویدئویی۱۲ و #برنامه_ویدئویی۱۳ و #برنامه_ویدئویی۱۵ را ببینید 👇

🌎 http://bit.ly/36rXYin

همچنین برای آشنایی با نحوه انتخاب تکنولوژی مناسب برای پیاده‌سازی یک پروژه، می‌توانید #برنامه_ویدئویی۸ را ببینید 👇

🌎 http://bit.ly/ChooseProperHW

در این برنامه می‌آموزید، چطور از بین تکنولوژی‌هایی مثل AVR ،ARM ،DSP و FPGA، یکی را برای استفاده در یک پروژه خاص انتخاب کنید.

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

🆔 @FPGA0
⚡️چگونه تکنولوژی مناسب برای پیاده‌سازی یک پروژه را انتخاب کنیم؟ (قسمت اول)

♨️ وقتی پروژه جدیدی به شما معرفی می‌شود، چطور از بین تکنولوژی‌هایی مثل AVR ،ARM ،DSP و FPGA یکی را انتخاب می‌کنید؟

معیارهای کلی انتخاب سخت‌افزار مناسب برای پیاده‌‌‌ساز‌‌ی:

🔹 هزینه‌‌‌ی کمتر‌‌

🔹 سرعت بیشتر

🔹 امکانات در دسترس

🔹 سهولت انجام پروژه

ادامه دارد...
🆔 @FPGA0
⚡️چگونه تکنولوژی مناسب برای پیاده‌سازی یک پروژه را انتخاب کنیم؟ (قسمت دوم)

برای پیاده‌سازی پروژه‌ی شما، پردازنده مناسب‌تر است یا FPGA؟

مزایای FPGA:

🔷 تراشه‌های FPGA، به دلیل قابلیت پیاده‌سازی موازی‌‌، سرعت بسیار زیاد‌‌ی دار‌‌ند.

🔷 تراشه‌های FPGA، به دلیل تعداد زیاد پایه‌‌‌ها، انعطاف‌پذیر‌‌ی زیاد‌‌ی در ارتباط با قطعات خارجی دار‌‌ند.

معایب FPGA:

🔷 قیمت FPGA‌ها بیش‌تر از پرداز‌‌ند‌‌‌‌ه‌ها است.

🔷 زمان طراحی‌‌، تست و عیب‌‌‌یابی FPGA‌ها، معمولاً بیش‌تر از پرداز‌‌ند‌‌ه‌‌‌ها است‌‌.

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

اما گاهی پردازنده‌ها سرعت و امکانات کافی، برای پیاده‌سازی پروژه‌ی شما را ندارند؛ در آن صورت، می‌توانید به انتخاب‌‌‌ها‌‌ی گران‌‌‌تر، مثل FPGA فکر کنید.

ادامه دارد...

🆔 @FPGA0