آموزش اِفپیجیاِی از صفر
رفتن به کانال در Telegram
✅ آموزش قدم به قدم طراحی دیجیتال به کمک FPGA 🌎 آموزشگاه فراد اندیش www.FaradAndish.com ☎️ ۴۲۴۳۹۹۰۰ ❓ایمیل سایت: help@faradandish.com 📌 لینک اولین پست کانال: https://t.me/fpga0/22
نمایش بیشتر3 341
مشترکین
+124 ساعت
-17 روز
-230 روز
در حال بارگذاری دادهها
کانالهای مشابه
ابر برچسبها
اشارات ورودی و خروجی
---
---
---
---
---
---
جذب مشترکین
اکتبر '26اکتبر '26
اکتبر '26
+19
در 0 کانالها
سپتامبر '260
در 0 کانالها
Get PRO
اوت '260
در 0 کانالها
Get PRO
ژوئیه '260
در 0 کانالها
Get PRO
ژوئن '260
در 0 کانالها
Get PRO
مه '260
در 0 کانالها
Get PRO
آوریل '260
در 0 کانالها
Get PRO
مارس '260
در 0 کانالها
Get PRO
فوریه '260
در 0 کانالها
Get PRO
ژانویه '260
در 0 کانالها
Get PRO
دسامبر '250
در 0 کانالها
Get PRO
نوامبر '250
در 0 کانالها
Get PRO
اکتبر '250
در 0 کانالها
Get PRO
سپتامبر '250
در 0 کانالها
Get PRO
اوت '250
در 0 کانالها
Get PRO
ژوئیه '25
+10
در 0 کانالها
Get PRO
ژوئن '25
+18
در 0 کانالها
Get PRO
مه '25
+33
در 0 کانالها
Get PRO
آوریل '25
+30
در 0 کانالها
Get PRO
مارس '25
+26
در 0 کانالها
Get PRO
فوریه '25
+44
در 0 کانالها
Get PRO
ژانویه '25
+54
در 0 کانالها
Get PRO
دسامبر '24
+52
در 0 کانالها
Get PRO
نوامبر '24
+55
در 0 کانالها
Get PRO
اکتبر '24
+73
در 1 کانالها
Get PRO
سپتامبر '24
+43
در 0 کانالها
Get PRO
اوت '24
+55
در 0 کانالها
Get PRO
ژوئیه '24
+50
در 0 کانالها
Get PRO
ژوئن '24
+55
در 0 کانالها
Get PRO
مه '24
+64
در 0 کانالها
Get PRO
آوریل '24
+64
در 0 کانالها
Get PRO
مارس '24
+55
در 0 کانالها
Get PRO
فوریه '24
+78
در 0 کانالها
Get PRO
ژانویه '24
+67
در 0 کانالها
Get PRO
دسامبر '23
+58
در 0 کانالها
Get PRO
نوامبر '23
+41
در 1 کانالها
Get PRO
اکتبر '23
+48
در 0 کانالها
Get PRO
سپتامبر '23
+24
در 0 کانالها
Get PRO
اوت '23
+41
در 0 کانالها
Get PRO
ژوئیه '23
+48
در 0 کانالها
Get PRO
ژوئن '23
+37
در 0 کانالها
Get PRO
مه '23
+30
در 0 کانالها
Get PRO
آوریل '23
+37
در 0 کانالها
Get PRO
مارس '23
+44
در 0 کانالها
Get PRO
فوریه '23
+39
در 0 کانالها
Get PRO
ژانویه '23
+34
در 0 کانالها
Get PRO
دسامبر '22
+54
در 0 کانالها
Get PRO
نوامبر '22
+57
در 0 کانالها
Get PRO
اکتبر '22
+60
در 0 کانالها
Get PRO
سپتامبر '22
+33
در 0 کانالها
Get PRO
اوت '22
+62
در 0 کانالها
Get PRO
ژوئیه '22
+53
در 0 کانالها
Get PRO
ژوئن '22
+42
در 0 کانالها
Get PRO
مه '22
+35
در 0 کانالها
Get PRO
آوریل '22
+44
در 0 کانالها
Get PRO
مارس '22
+45
در 0 کانالها
Get PRO
فوریه '22
+52
در 0 کانالها
Get PRO
ژانویه '22
+41
در 0 کانالها
Get PRO
دسامبر '21
+44
در 0 کانالها
Get PRO
نوامبر '21
+49
در 0 کانالها
Get PRO
اکتبر '21
+61
در 0 کانالها
Get PRO
سپتامبر '21
+51
در 0 کانالها
Get PRO
اوت '21
+42
در 0 کانالها
Get PRO
ژوئیه '21
+49
در 0 کانالها
Get PRO
ژوئن '21
+36
در 0 کانالها
Get PRO
مه '21
+52
در 0 کانالها
Get PRO
آوریل '21
+66
در 0 کانالها
Get PRO
مارس '21
+73
در 0 کانالها
Get PRO
فوریه '21
+64
در 0 کانالها
Get PRO
ژانویه '21
+46
در 0 کانالها
Get PRO
دسامبر '20
+2 876
در 0 کانالها
| تاریخ | رشد مشترکین | اشارات | کانالها | |
| 28 اکتبر | +1 | |||
| 27 اکتبر | +1 | |||
| 26 اکتبر | 0 | |||
| 25 اکتبر | +2 | |||
| 24 اکتبر | +2 | |||
| 23 اکتبر | 0 | |||
| 22 اکتبر | +2 | |||
| 21 اکتبر | 0 | |||
| 20 اکتبر | 0 | |||
| 19 اکتبر | +1 | |||
| 18 اکتبر | +4 | |||
| 17 اکتبر | +1 | |||
| 16 اکتبر | +3 | |||
| 15 اکتبر | 0 | |||
| 14 اکتبر | 0 | |||
| 13 اکتبر | 0 | |||
| 12 اکتبر | +1 |
پستهای کانال
⚡️ ویدئوی چهارم: چطور ماجول اینترفیس را پیادهسازی میکنم؟
📽 ویدئوی جدید را حتما تا انتها ببینید، چون یک خبر بسیار مهم را در آن مطرح میکنم 👇
🌎 https://faradandish.com/fpga-interface/
🆔 @FPGA0
| 2 | ⚡️ ویدئوی سوم: چطور ماجول اینترفیس را طراحی کنیم؟
🔹 این مرحلهای است که اکثر پیادهسازان دیجیتال با FPGA آن را نادیده میگیرند!
📽 در قسمت سوم از مجموعه چهار قسمتی پیادهسازی مدارات اینترفیسی به کمک FPGA در مورد یک تکنیک ساده اما کارآمد برای طراحی ماجول توضیح میدهم 👇
🌎 https://faradandish.com/module-design/
🆔 @FPGA0 | 294 |
| 3 | ⚡️ ویدئوی دوم: نحوه مطالعه دیتاشیت و استخراج پارامترهای پیادهسازی از آن
🔹 مهمترین مشکل پیادهسازان سیستمهای اینترفیسی با FPGA نه ضعف در کدنویسی و نه عدم آشنایی با تکنیکهای پیادهسازی است!
📽 در قسمت دوم از مجموعه چهار قسمتی پیادهسازی مدارات اینترفیسی به کمک FPGA در مورد این مشکل و روش رفع آن توضیح دادهام 👇
🌎 https://faradandish.com/how-to-read-datasheet/
🆔 @FPGA0 | 340 |
| 4 | ⚡️ ویدئو: اینترفیس چیست؟
🔹 پیادهسازی مدارات اینترفیسی یکی از دو حوزه کاری اصلی در زمینه پیادهسازی با FPGA است.
🔶 من یک آموزش ویدئویی چهار قسمتی در مورد مهمترین مراحل پیادهسازی مدارات اینترفیسی تهیه کردهام که قسمت اول آن در حال حاضر قابل مشاهده است.
📽 عنوان قسمت اول: اینترفیس چیست؟ 👇
🌎 https://faradandish.com/what-is-interface
🆔 @FPGA0 | 378 |
| 5 | ✴️ پاسخ به ۶ سوال در مورد دوره آنلاین پردازش سیگنال با FPGA
1️⃣ پیشنهاد ویژهای که ارائه شده است دقیقا به چه صورت است؟
🔹 تخفیف ۳۰ درصدی برای شرکت در دوره آنلاین پردازش سیگنال با FPGA
2️⃣ بعد ثبتنام در این دوره، چه اتفاقی میافتد؟
🔹 به محض ثبتنام در دوره، شما به محتوای آموزشی جلسه اول دسترسی خواهید داشت.
3️⃣ ویدئوها چگونه در دسترس من قرار میگیرند؟
🔹 تمام فایلهای ویدئویی و دیگر موارد آموزشی، برای همیشه در حساب کاربری شما در سایت قابل دسترسی هستند.
4️⃣ ویدئوهای جلسات بعدی کی قابل دسترسی هستند؟
🔹 شما در هر هفته به دو جلسه دسترسی خواهید داشت.
5️⃣ چه پیشنیازی برای شرکت در دوره لازم است؟
🔹 آشنایی نسبی با FPGA و زبان VHDL
🔺 هیچ نیازی به آشنایی با الگوریتمهای پردازش سیگنال و حتی نرمافزار متلب نیست
6️⃣ هدایای این دوره، چطور به دست من میرسند؟
🔹 مشابه محتوای آموزشی دوره اصلی، هدایای آموزشی هم از طریق حساب کاربری شما در سایت قابل دسترسی هستند.
🌟 توضیحات کامل دوره پردازش سیگنال با FPGA 👇
🌎 https://faradandish.com/onlinefpgaprocessing/
🔺 مهلت استفاده از این پیشنهاد ویژه امشب به پایان میسد.
🆔 @FPGA0 | 715 |
| 6 | ⚡️ پیشنهاد ویژه شرکت در دوره "پردازش سیگنال با FPGA"
🔹 تخفیف فوقالعاده ۳۰ درصدی برای شرکت در دوره پردازش سیگنال با FPGA
⏳ مهلت استفاده از این تخفیف تا فردا چهارشنبه ۳۰ مهر است.
🖥 شرکت در دوره آنلاین "پردازش سیگنال با FPGA" 👇
🌎 https://faradandish.com/onlinefpgaprocessing/
🔺 %۳۰ تخفیف ویژه دوره پردازش سیگنال با FPGA فقط تا فردا چهارشنبه ۳۰ مهر
🆔 @FPGA0 | 677 |
| 7 | 🆔 @FPGA0
#برنامه_ویدئویی۲۴
🎓 نحوه تشخیص و کنترل سرریز در FPGA
🎥 برنامه ویدئویی احمد ثقفی
🕘 زمان: ۱۳ دقیقه
📥 در سایت فراد اندیش ببینید 👇👇👇👇
🌎 نحوه تشخیص و کنترل سرریز در FPGA | 787 |
| 8 | ❇️ آیا با تعریف دقیق کری و سرریز آشنا هستید؟
✅ تجربه من در دوره پردازش سیگنال با FPGA نشان داده است که علیرغم سادگی، خیلی از طراحان دیجیتال با این دو مفهوم آشنا نیستند
🔷 این در حالی است که آشنایی با این دو مفهوم برای یک پیادهسازی اصولی بسیار مهم است
🎥 در برنامه ویدئویی زیر، با مفهوم دقیق کری و سرریز، نحوه تشخیص آنها در مدار و دو روش اصلی برای کنترل سرریز آشنا میشوید 👇
🆔 @FPGA0 | 682 |
| 9 | ⚡️ پرداخت قسطی برای اولین بار در فراد اندیش...
🗓 امکان پرداخت در چهار قسط از طرق دیجیپِی
❇️ روی لینک زیر کلیک کنید تا از شش پیشنهاد ویژه تابستان مطلع شوید:
🌎 https://faradandish.com/summer-offer
🔺 مهلت استفاده از پیشنهادات تابستان برای سومین بار تا سهشنبه ۲۴ شهریور تمدید شد.
🆔 @FPGA0 | 882 |
| 10 | 📣 ثبتنام ویژه تعطیلات تابستان تکرار میشود...
⚡️ تا ۴۵% تخفیف!
❇️ روی لینک زیر کلیک کنید تا از شش پیشنهاد ویژه تابستان مطلع شوید:
🌎 https://faradandish.com/summer-offer
🔺 فرصت استفاده از این پیشنهادها فقط تا سهشنبه ۲۴ شهریور است
🆔 @FPGA0 | 830 |
| 11 | ✴️ احتمالا فصل تابستان بهترین زمان برای افزایش دانش و یادگیری مهارتهای جدید است، چون...
🔹 گرچه پیشنهادات ویژه تابستان امسال تا به حال دو مرتبه تکرار شده است و هر بار با استقبال فوقالعاده اعضای سایت رو به رو شده است، اما...
🔹 باز هم با درخواستهای متعددی برای تمدید این پیشنهادات و تخفیفها رو به رو هستیم و به همین دلیل تصمیم گرفتیم یک بار دیگر آنها را تکرار کنیم. 👇🏻👇🏻👇🏻👇🏻 | 683 |
| 12 | ✴️ نحوه برگزاری دورههای آنلاین فراد اندیش...
🔷 بسیاری از افرادی که تمایل به شرکت در دورههای آنلاین فراد اندیش را دارند تصور میکنند که باید حتما در زمان خاصی آنلاین باشند تا بتوانند از آموزشها استفاده کنند؛ اما...
🔹 تمام آموزشهای تخصصی که در قالب دورههای آنلاین ارائه میشوند به صورت ویدئوهای آموزشی از قبل ضبط شده هستند...
🔹 در عین حال، وقتی این آموزشها در دسترس شما قرار گرفتند، برای همیشه در بخش مخصوصی در حساب کاربری شما باقی میمانند...
🔹 و به همین دلیل، شما میتوانید آموزشها را در زمان مورد نظر خودتان و با سرعت دلخواه خودتان پیگیری کنید...
🔹 و مهمتر از همه این موارد، شما این امکان را دارید که سوالات خودتان در مورد درسهای دورهها را در زیر ویدئوی مربوط به همان درس مطرح کنید (این امکان، دائمی است و محدودیت زمانی ندارد)
⚡️ همانطور که احتمالا میدانید، فروش ویژه تابستان که حدود یک ماه پیش برگزار شده بود مجددا تکرار شده است که مجموعا شامل ۶ پیشنهاد فوقالعاده است.
🔷 برای اطلاع از جزئیات ۶ پیشنهاد ویژه تابستان وارد صفحه زیر شوید:
🌎 https://faradandish.com/summer-offer
🔺 مهلت استفاده از این پیشنهادها تا فردا شب است.
🆔 @FPGA0 | 1 113 |
| 13 | ✴️ پاسخ به ۶ سوال در مورد ۶ پیشنهاد ویژه تابستان
1️⃣ این ۶ پیشنهاد دقیقا چه هستند؟
🔹 ۱- شرکت در دوره آنلاین طراحی دیجیتال با FPGA (تخفیف ۳۵%)
🔹 ۲-شرکت در دوره آنلاین پردازش سیگنال با FPGA (تخفیف ۳۵%)
🔹 ۳-شرکت در دوره آنلاین اینترفیس با FPGA (تخفیف ۳۵%)
🔹 ۴، ۵ و ۶- ثبتنام همزمان در دو دوره آنلاین دلخواه (تخفیف ۴۵%)
2️⃣ بعد ثبتنام در دوره آنلاین، چه اتفاقی میافتد؟
🔹 به محض ثبتنام در دوره، شما به محتوای آموزشی جلسه اول دسترسی خواهید داشت.
3️⃣ ویدئوها چگونه در دسترس من قرار میگیرند؟
🔹 تمام فایلهای ویدئویی و دیگر موارد آموزشی، برای همیشه در حساب کاربری شما در سایت قابل دسترسی هستند.
4️⃣ ویدئوهای جلسات بعدی کی قابل دسترسی هستند؟
🔹 یک هفته بعد از جلسه اول، محتوای آموزشی جلسه دوم قابل دسترسی است و همین طور هفته به هفته به محتوای جلسات بعد دسترسی خواهید داشت. (در مورد دوره پردازش سیگنال با FPGA، هر هفته به دو جلسه دسترسی خواهید داشت.)
5️⃣ چه پیشنیازی برای شرکت در دوره لازم است؟
🔹 برای دوره طراحی دیجیتال با FPGA: فقط آشنایی عمومی با مدارات منطقی
🔹 برای دوره پردازش سیگنال با FPGA: آشنایی نسبی با FPGA و زبان VHDL
🔺 هیچ نیازی به آشنایی با الگوریتمهای پردازش سیگنال و حتی نرمافزار متلب نیست
🔹 برای دوره اینترفیس با FPGA: آشنایی نسبی با FPGA و زبان VHDL
6️⃣ هدایای این دوره، چطور به دست من میرسند؟
🔹 مشابه محتوای آموزشی دوره اصلی، هدایای آموزشی هم از طریق حساب کاربری شما در سایت قابل دسترسی هستند.
🌟 توضیحات کامل این ۶ پیشنهاد 👇
🌎 https://faradandish.com/summer-offer
🔺 مهلت استفاده از این ۶ پیشنهاد تا سهشنبه ۲۷ مرداد است.
🆔 @FPGA0 | 849 |
| 14 | 📣 ثبتنام ویژه تعطیلات تابستان تکرار میشود...
⚡️ تا ۴۵% تخفیف!
🔹 چند هفته پیش، بزرگترین فروش ویژه سال فراد اندیش با ارائه ۶ پیشنهاد ویژه تابستان برگزار شد.
🔹 با توجه به اینکه این پیشنهادات در اوایل تابستان ارائه شدند و بسیاری از مخاطبان سایت که دانشجو هستند نتوانستند از آن استفاده کنند، تصمیم گرفتیم آن را مجددا تکرار کنیم.
❇️ روی لینک زیر کلیک کنید تا از شش پیشنهاد ویژه تابستان مطلع شوید:
🌎 https://faradandish.com/summer-offer
🔺 فرصت استفاده از این پیشنهادها فقط تا سهشنبه ۲۷ مرداد است
🆔 @FPGA0 | 734 |
| 15 | تا زمانی که تنظیمات IP تغییر نکرده باشد، همان نتیجه قبلی دوباره استفاده میشود و عملاً زمان اضافهای از شما نمیگیرد.
اگر بدون نیاز Output Products را Reset یا دوباره Generate کنید، این مزیت را از دست میدهید.
یک فرآیند عملی که معمولاً خوب جواب میدهد:
ماژول را بنویسید.
مرحله Elaborate را انجام دهید.
با شبیهسازی آن را بررسی کنید و تا زمانی که خروجی درست نشده، همانجا بمانید.
بعد همان ماژول را بهصورت Out-of-Context سنتز کنید تا Resource Usage و سرعت آن را بررسی کنید.
سپس آن را وارد طراحی اصلی کنید و یک پیادهسازی کامل انجام دهید.
این را بهعنوان مرجع نگه دارید.
از آن به بعد، برای تغییرات کوچکتر اجازه دهید Incremental Implementation کار را انجام دهد.
الگوی اصلی پشت همه این نکات یک چیز است:
هرچه در Flow جلوتر میروید، هزینه زمانی مراحل بهشدت بیشتر میشود.
بنابراین هر سؤال را در ارزانترین و سریعترین مرحلهای پاسخ دهید که قادر است جواب آن سؤال را به شما بدهد.
بخش عمده زمان توسعه شما باید در شبیهسازی بگذرد.
اجرای Implementation مرحله آخر کار است، نه حلقهای که برای هر تغییر کوچک بارها و بارها تکرار شود.
🆔 @FPGA0 | 931 |
| 16 | فایل بیتی را فقط زمانی تولید کنید که واقعاً میخواهید FPGA روی برد را پروگرام کنید.
۵- Incremental Implementation را فعال کنید
به Settings و سپس بخش Implementation بروید.
در آنجا گزینه مربوط به Incremental Implementation را پیدا کنید و تنظیم کنید که بهصورت خودکار از Run قبلی استفاده شود.
این قابلیت چه کاری انجام میدهد؟
بعد از یک Implementation موفق، ویوادو یک Snapshot از Placement و Routing طراحی نگه میدارد.
در اجرای بعدی، طراحی جدید را با آن Snapshot مقایسه میکند.
برای قسمتهایی که تغییری نکردهاند، همان Placement و Routing قبلی را نگه میدارد و دوباره همه چیز را از ابتدا محاسبه نمیکند.
در واقع فقط روی بخشهایی کار سنگین انجام میشود که شما تغییر دادهاید.
اگر در یک طراحی بزرگ فقط یک بلوک کوچک را تغییر داده باشید، این قابلیت میتواند زمان Implementation را حتی به نصف یا کمتر کاهش دهد.
یک مزیت مهم دیگر هم وجود دارد که معمولاً کمتر به آن توجه میشود.
چون محل قرارگیری و مسیرهای بخشهای تغییرنکرده حفظ میشوند، نتایج Timing آنها نیز ثابتتر باقی میماند.
یعنی برای بلوکهایی که اصلاً دست نزدهاید، مجبور نیستید دوباره Timing Closure انجام دهید.
یک نکته هم کمک میکند Incremental Implementation بهتر عمل کند:
طراحی را به ماژولهای مشخص و مستقل تقسیم کنید.
ویوادو میتواند نتایج را ماژول به ماژول دوباره استفاده کند. بنابراین یک Hierarchy مرتب، چیز مشخصی برای استفاده دوباره از نتایج در اختیار ابزار قرار میدهد.
اگر کل طراحی را در یک فایل بسیار بزرگ نوشته باشید، امکان استفاده مجدد از نتایج بسیار کمتر میشود.
۶- هنگام توسعه از Strategy سریعتر استفاده کنید
در تنظیمات Synthesis و Implementation گزینهای به نام Strategy وجود دارد.
گزینه Strategy در واقع مجموعهای از تنظیمات ابزار است که از قبل برای یک هدف خاص انتخاب شدهاند.
یکی از این گزینهها Flow_RuntimeOptimized نام دارد.
این Strategy تعدادی از مراحل سنگینتر Optimization را اجرا نمیکند.
در نتیجه ممکن است طراحی نهایی کمی کندتر باشد یا کمی منابع بیشتری مصرف کند، اما اجرای Flow سریعتر تمام میشود.
وقتی هنوز در حال بررسی گزینههای مختلف و تغییر دادن طراحی هستید، میتوانید از این Strategy استفاده کنید.
برای پیادهسازی نهایی دوباره به Strategy پیشفرض برگردید؛ یعنی زمانی که واقعاً چند درصد آخر Performance یا Optimization برایتان اهمیت دارد.
۷- فقط همان فرکانسی را درخواست کنید که واقعاً نیاز دارید
این نکته خیلیها را غافلگیر میکند:
تنظیم Timing Constraint شما میتواند روی مدت زمان اجرای ابزارها تأثیر بگذارد.
ابزار Placer و Router تلاش میکنند طراحی را طوری پیادهسازی کنند که Timing موردنظر شما برآورده شود.
اگر طراحی شما فقط باید با فرکانس ۵۰ مگاهرتز کار کند، اما قید آن را روی ۱۵۰ مگاهرتز تنظیم کنید چون فکر میکنید این کار «مطمئنتر» است، ابزار ممکن است زمان زیادی صرف رسیدن به هدفی کند که اساساً هیچ نیازی به آن ندارید.
قیدها را بر اساس نیاز واقعی سیستم انتخاب کنید.
۸- Debug Probeها را بعد از Synthesis اضافه کنید، نه داخل کد
استفاده از ILA رایگان نیست.
هم Block RAM مصرف میکند، هم Routing بیشتری ایجاد میکند و هم کار ابزارهای Implementation را سنگینتر میکند.
اگر تعداد Probeها زیاد باشد و Capture Depth بزرگی انتخاب کرده باشید، ممکن است زمان زیادی به هر Run اضافه شود.
دو عادت ساده میتواند کمک زیادی کند.
اول اینکه تا زمانی که هنوز مرتب طراحی را تغییر میدهید، Capture Depth را کوچک نگه دارید.
فقط زمانی آن را افزایش دهید که واقعاً برای Debug نهایی به تعداد نمونه بیشتری نیاز دارید.
دوم اینکه Probeها را روی طرح سنتز شده اضافه کنید، نه اینکه ILA را مستقیماً داخل Source Code قرار دهید.
ابتدا Synthesized Design را باز کنید، سیگنالهایی را که میخواهید مشاهده کنید مشخص کنید و از Set Up Debug استفاده کنید.
مزیت این روش این است که با تغییر Probeها مجبور نمیشوید کل پروژه را دوباره Synthesize کنید.
۹- چند نکته کوچک که در مجموع تفاوت زیادی ایجاد میکنند
پروژه را روی حافظه داخلی کامپیوتر نگه دارید.
ویوادو هنگام اجرای Flow حجم زیادی داده میخواند و مینویسد. اگر پروژه روی Network Drive یا USB Drive باشد، تقریباً تمام مراحل کندتر میشوند.
تعداد Threadها را هم در تنظیمات Vivado افزایش دهید.
مراحل Placement و Routing میتوانند از چند هسته پردازنده استفاده کنند، اما تنظیم پیشفرض معمولاً محافظهکارانه است.
و در نهایت، تا زمانی که لازم نیست به IP Coreها دست نزنید.
ویوادو معمولاً هر IP Core را یک بار سنتز میکند و نتیجه را در Cache نگه میدارد. | 700 |
| 17 | 📩 ایمیل امروز...
⚡️ یکی از شرکت کنندگان در دوره طراحی دیجیتال با FPGA اخیراً این سؤال را مطرح کرد:
"یکی از چیزهایی که متوجه شدهام زمان زیادی میگیرد، فرایند Implementation پروژه و تولید Bitstream است. خیلی راحت ممکن است زمان زیادی فقط صرف همین کار شود."
این یکی از مشکلات رایج در کار با FPGA است.
سه خط از کد را تغییر میدهید، روی Run Implementation کلیک میکنید و بعد باید منتظر بمانید.
در یک طراحی کوچک شاید این انتظار فقط چند دقیقه باشد. اما در یک طراحی بزرگتر ممکن است هر بار بیست دقیقه، چهل دقیقه یا حتی بیشتر طول بکشد. اگر این کار را ده بار در طول روز تکرار کنید، بخش بزرگی از روزتان فقط صرف منتظر ماندن میشود.
اما نکته مهم اینجاست:
اجرای کامل Flow هزینه زمانی زیادی دارد، ولی در بیشتر مواقع اصلاً نیازی نیست کل Flow را اجرا کنید.
بیشتر سؤالهایی که هنگام توسعه یک طراحی برایتان پیش میآید، با یک مرحله بسیار سریعتر و سادهتر قابل پاسخ دادن است.
در ادامه چند روشی را توضیح میدهم که خودم برای کوتاه نگه داشتن چرخههای تست و اصلاح طراحی استفاده میکنم.
۱- تا جای ممکن در Simulation بمانید
تقریباً تمام خطاهای عملکردی طراحی را میتوان با Testbench پیدا کرد.
شبیهسازی معمولاً چند ثانیه طول میکشد. Implementation چندین دقیقه.
دلیلش هم ساده است.
شبیهسازی فقط رفتار طراحی را بررسی میکند. در واقع به این سؤال پاسخ میدهد:
آیا منطق طراحی من خروجی درست را تولید میکند؟
اما Implementation باید به سؤال کاملاً متفاوتی پاسخ دهد:
آیا این منطق واقعاً میتواند روی LUTها، Flip-Flopها و مسیرهای فیزیکی همین FPGA پیادهسازی شود؟ و آیا سیگنالها میتوانند با سرعت موردنیاز بین این منابع حرکت کنند؟
پاسخ دادن به سؤال دوم بسیار سختتر است و به همین دلیل زمان بیشتری میبرد.
وقتی طراحی شما درست کار نمیکند، در بیشتر مواقع مشکل از رفتار منطقی طراحی است.
پس رفتار طراحی را جایی بررسی کنید که هزینهاش بسیار کمتر است: Simulation.
۲- از Elaboration برای یک بررسی سریع استفاده کنید
در Flow Navigator و در بخش RTL Analysis گزینهای به نام Open Elaborated Design وجود دارد.
از آن استفاده کنید.
در مرحله Elaboration، نرمافزار Vivado فایلهای Source را میخواند، ساختار سلسلهمراتبی طراحی را مشخص میکند، ماژولها را به هم متصل میکند و یک نمایش منطقی عمومی از مدار میسازد.
اما هنوز چیزی را روی منابع واقعی FPGA پیادهسازی نمیکند.
به همین دلیل این مرحله معمولاً فقط چند ثانیه طول میکشد، نه چند دقیقه.
با این حال، همین مرحله ساده میتواند تعداد زیادی از مشکلات واقعی طراحی را پیدا کند:
خطاهای تایپی، اتصال اشتباه پورتها، یکسان نبودن عرض سیگنالها یا ساخته شدن ناخواسته Latch.
عادت کنید بعد از هر تغییر مهم در کد، یک بار Elaborated Design را باز کنید.
هزینه زمانی بسیار کمی دارد، ولی میتواند جلوی اجرای بیهوده مراحل سنگینتر را بگیرد.
۳- بهجای کل طراحی، فقط همان ماژولی را سنتز کنید که روی آن کار میکنید
اگر میخواهید فقط یک بلوک از طراحی را بررسی کنید، لازم نیست بقیه پروژه را Comment کنید.
در پنجره Sources روی ماژول موردنظر راستکلیک کنید و گزینه Set as Out-of-Context Module را انتخاب کنید.
انتخاب Out-of-Context یعنی ویوادو آن ماژول را بهصورت مستقل سنتز میکند.
پورتهای ماژول صرفاً بهعنوان سیگنال در نظر گرفته میشوند و Vivado تلاش نمیکند آنها را به پینهای فیزیکی FPGA اختصاص دهد. بقیه طراحی نیز در این فرایند دخالت داده نمیشود.
نتیجهای که از این کار میگیرید بسیار مفید است.
میتوانید Synthesized Design را باز کنید و با Report Utilization ببینید این ماژول چند LUT، چند Flip-Flop، چند DSP Slice و چه مقدار Block RAM مصرف میکند.
همچنین با Report Timing Summary میتوانید بررسی کنید که این بلوک تقریباً تا چه سرعتی میتواند کار کند.
این روش از Comment کردن قسمتهای مختلف پروژه بهتر است.
اول اینکه چیزی را از طراحی حذف نمیکنید و بعداً هم خطر این وجود ندارد که یادتان برود بخشی از کد را دوباره فعال کنید.
دوم اینکه اعدادی که در گزارشها میبینید فقط مربوط به همان ماژول هستند و در نتیجه تحلیل آنها سادهتر میشود.
۴- قبل از Bitstream متوقف شوید
تولید Bitstream یک مرحله جداگانه در انتهای Flow است.
وظیفه آن فقط یک چیز است:
ساخت فایلی که بتوان با آن FPGA واقعی را پیکرهبندی کرد.
اگر سؤال شما این است که طراحی چه مقدار Resource مصرف میکند یا آیا Timing را پاس میکند، نیازی به Bitstream ندارید.
مرحله Synthesis یا Implementation را اجرا کنید، گزارشها را بررسی کنید و همانجا متوقف شوید. | 723 |
| 18 | 📣 آخرین فرصت...
⚡️ شش پیشنهاد ویژه و تخفیفهایی تا ۴۵%
❇️ روی لینک زیر کلیک کنید تا از شش پیشنهاد ویژه تابستان مطلع شوید:
🌎 https://faradandish.com/summer-offer
🗓 امکان پرداخت در چهار قسط از طرق دیجیپِی
🔺 فرصت استفاده از این پیشنهادها فقط تا ساعت ۲۳:۵۹ دقیقه امشب است.
🆔 @FPGA0 | 1 166 |
| 19 | ⚡️ پرداخت قسطی برای اولین بار در فراد اندیش...
🗓 امکان پرداخت در چهار قسط از طرق دیجیپِی
❇️ روی لینک زیر کلیک کنید تا از شش پیشنهاد ویژه تابستان مطلع شوید:
🌎 https://faradandish.com/summer-offer
🔺 با توجه به عدم دسترسی به سایت در روز گذشته، مهلت استفاده از پیشنهادات تابستان تا چهارشنبه ۲۴ تیر تمدید شد.
🆔 @FPGA0 | 1 136 |
| 20 | ⚡️ فروش ویژه تعطیلات تابستان تمدید شد!
❇️ روی لینک زیر کلیک کنید تا از شش پیشنهاد ویژه تابستان مطلع شوید:
🌎 https://faradandish.com/summer-offer
🔺 فرصت استفاده از این پیشنهادها فقط تا چهارشنبه ۲۴ تیر است.
🆔 @FPGA0 | 1 280 |
