⚡️ انواع محصولات شرکت Xilinx و کاربرد هر یک از آنها
🔷 ممکن است برای افرادی که بهتازگی به حوزه پیادهسازی بهکمک FPGA وارد شدهاند، تعدد نرمافزارهای شرکت Xilinx کمی گیجکننده باشد.
✅ بهطور کلی، نرمافزارهای شرکت Xilinx به دو گروه تقسیم میشوند:
1️⃣ Hardware Development
2️⃣ Software Development
❇️ نرمافزارهای گروه hardware development، در فرایند طراحی و پیادهسازی یک سختافزار کمک میکنند.
🔷 نرمافزارهای ISE و Vivado متعلق به این گروه هستند که نرمافزار Vivado جدیدترین نرمافزار این حوزه محسوب میشود.
❇️ اما گروه دوم نرمافزارهای شرکت Xilinx، گروه software developmentها است.
❓ اکنون ممکن است این سوال مطرح شود که با توجه به اینکه شرکت Xilinx تولید کننده تراشههایی برای پیادهسازی سختافزاری است، موضوع توسعه نرمافزاری به چه کار خواهد آمد؟
✅ در پاسخ باید گفت که ما میتوانیم در تمامی FPGAهای شرکت Xilinx، میکروکنترلی بهنام میکروبلیز را پیادهسازی کنیم.
🔷 ضمن اینکه شرکت Xilinx، تراشهای بهنام Zynq تولید میکند که شامل یک FPGA و یک پردازنده ARM است.
🔷 برای استفاده از میکروبلیز یا پردازنده ARM موجود در Zynq، باید برنامهنویسی کنید. این کار، بهکمک نرمافزارهای حوزه software development انجام میشود.
🔷 در حوزه software development، جدیدترین نرمافزاری که شرکت Xilinx ارائه داده است، نرمافزار Vitis است.
🔷 در گذشته، نرمافزارهای زیادی در این حوزه وجود داشتند؛ از جمله، نرمافزار SDK، SDSoC و SDAccel.
🔷 بهتازگی، شرکت Xilinx نرمافزار جدید Vitis را ارائه داده است که تمام نرمافزارهای قبلی در حوزه software development، در این نرمافزار تجمیع شدهاند. البته امکانات جدیدی نیز به این مجموعه افزوده شده است.
🔷 برخی گمان میکنند که نرمافزار Vitis بهجای نرمافزار Vivado به بازار عرضه شده است؛ اما همانطور که توضیح دادم، این دو نرمافزار مربوط به دو حوزه متفاوت هستند.
✅ در حوزه hardware development، جدیدترین نرمافزار، نرمافزار Vivado است که ورژنهای جدیدتر آن در حال تولید و ارائه است.
✅ در حوزه software development نیز جدیدترین نرمافزار، نرمافزار Vitis است.
✅ برای آشنایی با نرمافزار Vivado روی لینک زیر کلیک کنید:👇👇👇
🌎https://bit.ly/Vivado1
✅ برای آشنایی با نرمافزار ISE روی لینک زیر کلیک کنید:👇👇👇
🌎https://bit.ly/ISE-Design-Suite
🆔 @FPGA0
🔷 ممکن است برای افرادی که بهتازگی به حوزه پیادهسازی بهکمک FPGA وارد شدهاند، تعدد نرمافزارهای شرکت Xilinx کمی گیجکننده باشد.
✅ بهطور کلی، نرمافزارهای شرکت Xilinx به دو گروه تقسیم میشوند:
1️⃣ Hardware Development
2️⃣ Software Development
❇️ نرمافزارهای گروه hardware development، در فرایند طراحی و پیادهسازی یک سختافزار کمک میکنند.
🔷 نرمافزارهای ISE و Vivado متعلق به این گروه هستند که نرمافزار Vivado جدیدترین نرمافزار این حوزه محسوب میشود.
❇️ اما گروه دوم نرمافزارهای شرکت Xilinx، گروه software developmentها است.
❓ اکنون ممکن است این سوال مطرح شود که با توجه به اینکه شرکت Xilinx تولید کننده تراشههایی برای پیادهسازی سختافزاری است، موضوع توسعه نرمافزاری به چه کار خواهد آمد؟
✅ در پاسخ باید گفت که ما میتوانیم در تمامی FPGAهای شرکت Xilinx، میکروکنترلی بهنام میکروبلیز را پیادهسازی کنیم.
🔷 ضمن اینکه شرکت Xilinx، تراشهای بهنام Zynq تولید میکند که شامل یک FPGA و یک پردازنده ARM است.
🔷 برای استفاده از میکروبلیز یا پردازنده ARM موجود در Zynq، باید برنامهنویسی کنید. این کار، بهکمک نرمافزارهای حوزه software development انجام میشود.
🔷 در حوزه software development، جدیدترین نرمافزاری که شرکت Xilinx ارائه داده است، نرمافزار Vitis است.
🔷 در گذشته، نرمافزارهای زیادی در این حوزه وجود داشتند؛ از جمله، نرمافزار SDK، SDSoC و SDAccel.
🔷 بهتازگی، شرکت Xilinx نرمافزار جدید Vitis را ارائه داده است که تمام نرمافزارهای قبلی در حوزه software development، در این نرمافزار تجمیع شدهاند. البته امکانات جدیدی نیز به این مجموعه افزوده شده است.
🔷 برخی گمان میکنند که نرمافزار Vitis بهجای نرمافزار Vivado به بازار عرضه شده است؛ اما همانطور که توضیح دادم، این دو نرمافزار مربوط به دو حوزه متفاوت هستند.
✅ در حوزه hardware development، جدیدترین نرمافزار، نرمافزار Vivado است که ورژنهای جدیدتر آن در حال تولید و ارائه است.
✅ در حوزه software development نیز جدیدترین نرمافزار، نرمافزار Vitis است.
✅ برای آشنایی با نرمافزار Vivado روی لینک زیر کلیک کنید:👇👇👇
🌎https://bit.ly/Vivado1
✅ برای آشنایی با نرمافزار ISE روی لینک زیر کلیک کنید:👇👇👇
🌎https://bit.ly/ISE-Design-Suite
🆔 @FPGA0
⚡️ نرمافزار Vivado یا ISE؟
🔷 بسیاری از افراد گمان میکنند که چون نرمافزار Vivado، نرمافزار جدید شرکت Xilinx است، حتماً باید برای پیادهسازیها از آن استفاده کنیم.
🔷 اما واقعیت این است که استفاده از این نرمافزار یک انتخاب نیست؛ بلکه یک اجبار است.
🔷 همانطور که اطلاع دارید، شرکت Xilinx، تراشههای FPGA را در خانوادههای مختلف تولید میکند.
🔹 برای مثال، تراشههای Spartan 3 ،Spartan 6 Vertix 4 ،Vertix 5 و Vertix 6 جز خانوادههای قدیمیتر هستند.
🔹 البته، بسیاری از این FPGAها همچنان تولید و استفاده میشوند و بُردهای حاوی آنها نیز در بازار موجود است. بنابراین، ما ممکن است برای پروژهمان نیاز داشته باشیم که از یکی از آنها استفاده کنیم.
🔹 خانوادههای جدیدتر، شامل FPGAهای سری ۷، FPGAهای سری UltraScale و +UltraScale هستند. همچنین، تراشههای Zynq جز خانوادههای جدید است.
✅ نکتهای که وجود دارد این است که نرمافزار ISE تراشههای FPGA را تا سری ۷ پشتیبانی میکند.
🔹 در واقع، FPGAهای سری ۷ به بعد و سایر تراشههای جدید، در نرمافزار ISE پشتیبانی نمیشوند.
✅ نکته مهمتر این است که نرمافزار Vivado نیز FPGAهای قدیمیتر را پشتیبانی نمیکند. این نرمافزار، صرفاً خانوادههای جدید و از سری 7 به بعد را پشتیبانی میکند.
❇️ بنابراین، انتخاب بین ISE و Vivado، یک مسئله سلیقهای نیست؛ بلکه عامل تعیینکننده، FPGAای است که قصد استفاده از آن را داریم.
✅ اگر FPGA شما قبل از سری 7 است، مجبور هستید از نرمافزار ISE استفاده کنید.
✅ و اگر FPGA شما سری 7 و جدیدتر از آن است، باید بهسراغ نرمافزار Vivado بروید.
✅ برای آشنایی با نرمافزار Vivado روی لینک زیر کلیک کنید:👇👇👇
🌎https://bit.ly/Vivado1
✅ برای آشنایی با نرمافزار ISE روی لینک زیر کلیک کنید:👇👇👇
🌎https://bit.ly/ISE-Design-Suite
🆔 @FPGA0
🔷 بسیاری از افراد گمان میکنند که چون نرمافزار Vivado، نرمافزار جدید شرکت Xilinx است، حتماً باید برای پیادهسازیها از آن استفاده کنیم.
🔷 اما واقعیت این است که استفاده از این نرمافزار یک انتخاب نیست؛ بلکه یک اجبار است.
🔷 همانطور که اطلاع دارید، شرکت Xilinx، تراشههای FPGA را در خانوادههای مختلف تولید میکند.
🔹 برای مثال، تراشههای Spartan 3 ،Spartan 6 Vertix 4 ،Vertix 5 و Vertix 6 جز خانوادههای قدیمیتر هستند.
🔹 البته، بسیاری از این FPGAها همچنان تولید و استفاده میشوند و بُردهای حاوی آنها نیز در بازار موجود است. بنابراین، ما ممکن است برای پروژهمان نیاز داشته باشیم که از یکی از آنها استفاده کنیم.
🔹 خانوادههای جدیدتر، شامل FPGAهای سری ۷، FPGAهای سری UltraScale و +UltraScale هستند. همچنین، تراشههای Zynq جز خانوادههای جدید است.
✅ نکتهای که وجود دارد این است که نرمافزار ISE تراشههای FPGA را تا سری ۷ پشتیبانی میکند.
🔹 در واقع، FPGAهای سری ۷ به بعد و سایر تراشههای جدید، در نرمافزار ISE پشتیبانی نمیشوند.
✅ نکته مهمتر این است که نرمافزار Vivado نیز FPGAهای قدیمیتر را پشتیبانی نمیکند. این نرمافزار، صرفاً خانوادههای جدید و از سری 7 به بعد را پشتیبانی میکند.
❇️ بنابراین، انتخاب بین ISE و Vivado، یک مسئله سلیقهای نیست؛ بلکه عامل تعیینکننده، FPGAای است که قصد استفاده از آن را داریم.
✅ اگر FPGA شما قبل از سری 7 است، مجبور هستید از نرمافزار ISE استفاده کنید.
✅ و اگر FPGA شما سری 7 و جدیدتر از آن است، باید بهسراغ نرمافزار Vivado بروید.
✅ برای آشنایی با نرمافزار Vivado روی لینک زیر کلیک کنید:👇👇👇
🌎https://bit.ly/Vivado1
✅ برای آشنایی با نرمافزار ISE روی لینک زیر کلیک کنید:👇👇👇
🌎https://bit.ly/ISE-Design-Suite
🆔 @FPGA0
⚡️ ویدئوی جدید: اینترفیس چیست؟
🔹 پیادهسازی مدارات اینترفیسی یک از دو حوزه کاری اصلی در زمینه پیادهسازی با FPGA است
🔶 من یک آموزش ویدئویی چهار قسمتی در مورد مهمترین مراحل پیادهسازی مدارات اینترفیسی تهیه کردهام که قسمت اول آن در حال حاضر قابل مشاهده است
📽 عنوان قسمت اول: اینترفیس چیست؟ 👇
🌎 https://faradandish.com/what-is-interface
🆔 @FPGA0
🔹 پیادهسازی مدارات اینترفیسی یک از دو حوزه کاری اصلی در زمینه پیادهسازی با FPGA است
🔶 من یک آموزش ویدئویی چهار قسمتی در مورد مهمترین مراحل پیادهسازی مدارات اینترفیسی تهیه کردهام که قسمت اول آن در حال حاضر قابل مشاهده است
📽 عنوان قسمت اول: اینترفیس چیست؟ 👇
🌎 https://faradandish.com/what-is-interface
🆔 @FPGA0
🌟 قسمت دوم از آموزش چهار قسمتی پیادهسازی مدارات اینترفیسی با FPGA امروز منتشر میشود
❇️ اما قبل از آن، اگر هنوز قسمت اول را مشاهده نکردید، پیشنهاد میکنم وارد صفحه زیر شوید و این ویدئو را همین حالا مشاهده کنید 👇
🌎 https://faradandish.com/what-is-interface
🔷 در پایین ویدئو و در بخش نظرات میتوانید هر سوالی که در این زمینه دارید را مطرح کنید.
🆔 @FPGA0
❇️ اما قبل از آن، اگر هنوز قسمت اول را مشاهده نکردید، پیشنهاد میکنم وارد صفحه زیر شوید و این ویدئو را همین حالا مشاهده کنید 👇
🌎 https://faradandish.com/what-is-interface
🔷 در پایین ویدئو و در بخش نظرات میتوانید هر سوالی که در این زمینه دارید را مطرح کنید.
🆔 @FPGA0
⚡️ ویدئوی دوم: نحوه مطالعه دیتاشیت و استخراج پارامترهای پیادهسازی از آن
🔹 مهمترین مشکل پیادهسازاان سیستمهای اینترفیسی با FPGA نه ضعف در کدنویسی و نه عدم آشنایی با تکنیکهای پیادهسازی است!
📽 در قسمت دوم از مجموعه چهار قسمتی پیادهسازی مدارات اینترفیسی به کمک FPGA در مورد این مشکل و روش رفع آن توضیح دادهام 👇
🌎 https://faradandish.com/how-to-read-datasheet/
🆔 @FPGA0
🔹 مهمترین مشکل پیادهسازاان سیستمهای اینترفیسی با FPGA نه ضعف در کدنویسی و نه عدم آشنایی با تکنیکهای پیادهسازی است!
📽 در قسمت دوم از مجموعه چهار قسمتی پیادهسازی مدارات اینترفیسی به کمک FPGA در مورد این مشکل و روش رفع آن توضیح دادهام 👇
🌎 https://faradandish.com/how-to-read-datasheet/
🆔 @FPGA0
🌟 در صفحههای زیر میتوانید هر سوالی در مورد موضوع اینترفیس با FPGA دارید مطرح کنید 👇
🌎 https://faradandish.com/what-is-interface
🌎 https://faradandish.com/how-to-read-datasheet/
🔷 سومین ویدئو از مجموعه چهار قسمتی اینترفیس با FPGA روز شنبه منتشر میشود.
🆔 @FPGA0
🌎 https://faradandish.com/what-is-interface
🌎 https://faradandish.com/how-to-read-datasheet/
🔷 سومین ویدئو از مجموعه چهار قسمتی اینترفیس با FPGA روز شنبه منتشر میشود.
🆔 @FPGA0
⚡️ ویدئوی سوم: چطور ماجول اینترفیس را طراحی کنیم؟
🔹 این مرحلهای است که اکثر پیادهسازان دیجیتال با FPGA آن را نادیده میگیرند!
📽 در قسمت سوم از مجموعه چهار قسمتی پیادهسازی مدارات اینترفیسی به کمک FPGA در مورد یک تکنیک ساده اما کارآمد برای طراحی ماجول توضیح میدهم 👇
🌎 https://faradandish.com/module-design/
🆔 @FPGA0
🔹 این مرحلهای است که اکثر پیادهسازان دیجیتال با FPGA آن را نادیده میگیرند!
📽 در قسمت سوم از مجموعه چهار قسمتی پیادهسازی مدارات اینترفیسی به کمک FPGA در مورد یک تکنیک ساده اما کارآمد برای طراحی ماجول توضیح میدهم 👇
🌎 https://faradandish.com/module-design/
🆔 @FPGA0
🌟 قسمت چهارم از آموزش چهار قسمتی پیادهسازی مدارات اینترفیسی با FPGA تا لحظاتی دیگر منتشر میشود
❇️ اما قبل از آن، اگر هنوز سه قسمت اول را مشاهده نکردید، پیشنهاد میکنم وارد صفحه زیر شوید و این سه ویدئو را همین حالا مشاهده کنید 👇
🌎 https://faradandish.com/what-is-interface
🔷 در پایین ویدئو و در بخش نظرات میتوانید هر سوالی که در این زمینه دارید را مطرح کنید.
🆔 @FPGA0
❇️ اما قبل از آن، اگر هنوز سه قسمت اول را مشاهده نکردید، پیشنهاد میکنم وارد صفحه زیر شوید و این سه ویدئو را همین حالا مشاهده کنید 👇
🌎 https://faradandish.com/what-is-interface
🔷 در پایین ویدئو و در بخش نظرات میتوانید هر سوالی که در این زمینه دارید را مطرح کنید.
🆔 @FPGA0
⚡️ ویدئوی چهارم: چطور ماجول اینترفیس را پیادهسازی میکنم؟
📽 ویدئوی جدید را حتما تا انتها ببینید، چون یک خبر بسیار مهم را برای اولین بار در آن مطرح میکنم 👇
🌎 https://faradandish.com/fpga-interface/
🆔 @FPGA0
📽 ویدئوی جدید را حتما تا انتها ببینید، چون یک خبر بسیار مهم را برای اولین بار در آن مطرح میکنم 👇
🌎 https://faradandish.com/fpga-interface/
🆔 @FPGA0
🚀 بالاخره منتشر شد...
🖥 دوره آنلاین "اینترفیس با FPGA" منتشر شد 👇
🌎 https://faradandish.com/fpga-interface/
🔺 %۴۰ تخفیف تکرار نشدنی رونمایی از دوره فقط تا لحظه تحویل سال نو
🆔 @FPGA0
🖥 دوره آنلاین "اینترفیس با FPGA" منتشر شد 👇
🌎 https://faradandish.com/fpga-interface/
🔺 %۴۰ تخفیف تکرار نشدنی رونمایی از دوره فقط تا لحظه تحویل سال نو
🆔 @FPGA0
🌟 فراد اندیش استخدام میکند...
🔹 ما به دنبال یک نیروی مسلط به FPGA برای پیوستن به گروه مهندسی فراد اندیش هستیم.
🔹 وظیفه اصلی این فرد، کمک به تولید انواع محتوا و آموزشهای جدید در فراد اندیش است.
🔹 اگر شما عاشق FPGA، یادگیری و یاد دادن هستید...
🔹 اگر سبک آموزشهای رایگان و دورههای تخصصی فراد اندیش را دوست دارید...
🔹 و اگر فرد دست به قلمی هستید و از نوشتن و تولید محتوای درجه یک و منحصر به فرد لذت میبرید...
🔸 شما احتمالا فردی هستید که ما به دنبال آن هستیم.
🔷 برای اطلاع از جزئیات این موقعیت شغلی، روی لینک زیر کلیک کنید 👇
🌏 https://faradandish.com/we-are-hiring/
🆔 FPGA0
🔹 ما به دنبال یک نیروی مسلط به FPGA برای پیوستن به گروه مهندسی فراد اندیش هستیم.
🔹 وظیفه اصلی این فرد، کمک به تولید انواع محتوا و آموزشهای جدید در فراد اندیش است.
🔹 اگر شما عاشق FPGA، یادگیری و یاد دادن هستید...
🔹 اگر سبک آموزشهای رایگان و دورههای تخصصی فراد اندیش را دوست دارید...
🔹 و اگر فرد دست به قلمی هستید و از نوشتن و تولید محتوای درجه یک و منحصر به فرد لذت میبرید...
🔸 شما احتمالا فردی هستید که ما به دنبال آن هستیم.
🔷 برای اطلاع از جزئیات این موقعیت شغلی، روی لینک زیر کلیک کنید 👇
🌏 https://faradandish.com/we-are-hiring/
🆔 FPGA0
⚡️ چگونه در FPGA یک مولد موج سینوسی بسازیم؟ (قسمت اول)
🔷 موج سینوسی در بسیاری از پیادهسازیها، خصوصاً پیادهسازی الگوریتمهای پردازش سیگنال، کاربرد دارد.
🔷 همانطور که میدانید ما در زبانهای توصیف سختافزاری VHDL یا Verilog، عملگری برای پیادهسازی توابع خاص، مانند سینوس، نداریم.
🔷 تنها عملگرهای شناخته شده در این زبانها، عملگرهای جمع و ضرب هستند؛ بنابراین، برای پیادهسازی تابع سینوس نیز باید از همین عملگرها استفاده کنیم.
✅ برای پیادهسازی موج سینوسی درون FPGA، چند روش وجود دارد که در این مجموعه پست، آنها را به شما معرفی خواهم کرد.
❇️ روش بسط تیلور
🔷 اولین روش پیادهسازی موج سینوسی درون FPGA، روش بسط تیلور است.
🔷 همانطور که میدانید، ما میتوانیم توابع خاص از جمله، سینوس، سینوس معکوس و بسیاری از توابع دیگر را بهکمک روش تیلور بنویسیم.
🔷 در روش تیلور، مجموعهای از جملات با هم جمع میشوند و تابع خاص ما را تشکیل میدهند.
🔷 در رابطهای که بر اساس روش تیلور بهدست میآید، جملات، فقط از عملیات ضرب و جمع تشکیل شدهاند.
🔷 بنابراین، همچین روشی قابلیت پیادهسازی در FPGA را دارد.
🔷 اما مشکل روش تیلور این است که برای معادل کردن یک تابع یا موج سینوسی، باید تعداد زیادی جمله را با هم جمع کنیم.
🔷 این تعداد زیاد جمله باعث میشود در هنگام پیادهسازی در FPGA، منابع سختافزاری زیادی اشغال شود.
🔷 بنابراین، پیادهسازی تمامی جملات بهصرفه نیست و ناچاراً باید تعداد محدودی از آنها را پیادهسازی کنیم.
🔷 پیادهسازی تعداد محدودی از جملات باعث کاهش دقت موج سینوسی میشود.
🔷 در نتیجه، روش بسط تیلور، برای پیادهسازی شکل موج سینوسی درون FPGA روش مطلوبی نیست.
در پستهای بعدی روش دوم و سوم را به شما معرفی خواهم کرد.
ادامه دارد...
🆔 @FPGA0
🔷 موج سینوسی در بسیاری از پیادهسازیها، خصوصاً پیادهسازی الگوریتمهای پردازش سیگنال، کاربرد دارد.
🔷 همانطور که میدانید ما در زبانهای توصیف سختافزاری VHDL یا Verilog، عملگری برای پیادهسازی توابع خاص، مانند سینوس، نداریم.
🔷 تنها عملگرهای شناخته شده در این زبانها، عملگرهای جمع و ضرب هستند؛ بنابراین، برای پیادهسازی تابع سینوس نیز باید از همین عملگرها استفاده کنیم.
✅ برای پیادهسازی موج سینوسی درون FPGA، چند روش وجود دارد که در این مجموعه پست، آنها را به شما معرفی خواهم کرد.
❇️ روش بسط تیلور
🔷 اولین روش پیادهسازی موج سینوسی درون FPGA، روش بسط تیلور است.
🔷 همانطور که میدانید، ما میتوانیم توابع خاص از جمله، سینوس، سینوس معکوس و بسیاری از توابع دیگر را بهکمک روش تیلور بنویسیم.
🔷 در روش تیلور، مجموعهای از جملات با هم جمع میشوند و تابع خاص ما را تشکیل میدهند.
🔷 در رابطهای که بر اساس روش تیلور بهدست میآید، جملات، فقط از عملیات ضرب و جمع تشکیل شدهاند.
🔷 بنابراین، همچین روشی قابلیت پیادهسازی در FPGA را دارد.
🔷 اما مشکل روش تیلور این است که برای معادل کردن یک تابع یا موج سینوسی، باید تعداد زیادی جمله را با هم جمع کنیم.
🔷 این تعداد زیاد جمله باعث میشود در هنگام پیادهسازی در FPGA، منابع سختافزاری زیادی اشغال شود.
🔷 بنابراین، پیادهسازی تمامی جملات بهصرفه نیست و ناچاراً باید تعداد محدودی از آنها را پیادهسازی کنیم.
🔷 پیادهسازی تعداد محدودی از جملات باعث کاهش دقت موج سینوسی میشود.
🔷 در نتیجه، روش بسط تیلور، برای پیادهسازی شکل موج سینوسی درون FPGA روش مطلوبی نیست.
در پستهای بعدی روش دوم و سوم را به شما معرفی خواهم کرد.
ادامه دارد...
🆔 @FPGA0
آیا استفاده از قابلیت Generic در کد VHDL منجر به پیادهسازی سختافزار جدید در FPGA میشود؟
Anonymous Quiz
32%
بله
68%
خیر
♨️ برای اطلاعات بیشتر درباره قابلیت Generic در زبان VHDL به پست زیر مراجعه کنید👇👇👇
https://t.me/fpga0/914
🆔 @FPGA0
https://t.me/fpga0/914
🆔 @FPGA0
⚡️ چگونه در FPGA یک مولد موج سینوسی بسازیم؟ (قسمت دوم)
🔷 در پست قبل، برای پیادهسازی موج سینوسی درون FPGA، روش تیلور را به شما معرفی کردم.
🔷 در این پست، به روش دوم میپردازم.
❇️ روش CORDIC
🔷 روش دوم، روش CORDIC است.
🔷 احتمالاً با نام الگوریتم CORDIC آشنا هستید.
🔷 روش CORDIC، یک روش بسیار کارامد برای پیادهسازی انواع توابع خاص مانند سینوس، کسینوس، سینوس معکوس یا رادیکال است.
✅ حسن این روش این است که شما بهکمک آن، میتوانید توابع خاص و نسبتاً پیچیده مثلثاتی را فقط و فقط با عملیات جمع و شیفت پیادهسازی کنید.
🔷 احتمالاً میتوانید حدس بزنید که پیادهسازی یک تابع، فقط با عملیات جمع و شیفت چقدر میتواند ساده باشد.
🔷 به همین دلیل، روش CORDIC یک روش محبوب در پیادهسازی توابع خاص است.
ادامه دارد...
🆔 @FPGA0
🔷 در پست قبل، برای پیادهسازی موج سینوسی درون FPGA، روش تیلور را به شما معرفی کردم.
🔷 در این پست، به روش دوم میپردازم.
❇️ روش CORDIC
🔷 روش دوم، روش CORDIC است.
🔷 احتمالاً با نام الگوریتم CORDIC آشنا هستید.
🔷 روش CORDIC، یک روش بسیار کارامد برای پیادهسازی انواع توابع خاص مانند سینوس، کسینوس، سینوس معکوس یا رادیکال است.
✅ حسن این روش این است که شما بهکمک آن، میتوانید توابع خاص و نسبتاً پیچیده مثلثاتی را فقط و فقط با عملیات جمع و شیفت پیادهسازی کنید.
🔷 احتمالاً میتوانید حدس بزنید که پیادهسازی یک تابع، فقط با عملیات جمع و شیفت چقدر میتواند ساده باشد.
🔷 به همین دلیل، روش CORDIC یک روش محبوب در پیادهسازی توابع خاص است.
ادامه دارد...
🆔 @FPGA0
⚡️ چگونه در FPGA یک مولد موج سینوسی بسازیم؟ (قسمت سوم)
🔷 در پستهای قبل، دو روش برای پیادهسازی موج سینوسی درون FPGA را به شما معرفی کردم. در این پست، روش دیگری، بهنام روش DDS را به شما معرفی خواهم کرد.
🌎 در سایت فراداندیش، در مقاله "چطور یک مولد موج سینوسی در FPGA پیادهسازی کنیم؟"، بهکمک این روش، یک موج سینوسی در FPGA پیادهسازی کردهام:
🌎 https://bit.ly/FPGASineWave
🔷 و اما روش سوم پیادهسازی موج سینوسی درون FPGA، روش DDS است.
❇️ روش DDS
🔷 عبارت DDS، مخفف Direct Digital Sensitizer است.
🔷 مفهوم روش DDS، مفهوم نسبتاً سادهای است؛ برای اینکه یک موج سینوسی را بهصورت دیجیتالی درون FPGA پیادهسازی کنید، روش DDS ایدهای بهصورت زیر ارائه میدهد:
🔷 ابتدا باید یک دوره تناوب از موج سینوسی را به روشی تولید کنید؛ مثلاً میتوانید این موج را در نرمافزار متلب تولید کنید.
🔷 سپس، از یک دوره تناوب این موج سینوسی، تعدادی نمونه را جدا میکنید و به یک حافظه که درون FPGA قرار دارد منتقل میکنید.
🔷 اگر من در هر کلاک، یک نمونه از این حافظه را بخوانم، در واقع، در حال خواندن نمونههای یک پریود از یک موج سینوسی هستم.
🔷 اگر این نمونهها را تا انتها بخوانم و دوباره به ابتدای RAM بازگردم، یک موج سینوسی را درون FPGA تولید کردهام.
🔷 اما اگر بخواهیم روش DDS را پیادهسازی کنیم، دو راه پیش رو داریم:
✅ روش اول این است که از یک IP Core به همین نام استفاده کنیم.
✅ روش دوم، کدنویسی به یکی از زبانهای VHDL یا Verilog است.
🔷 اگر از IP استفاده کنید، دیگر نیازی نیست که از ابتدا الگوریتم DDS را کدنویسی کنید و در وقت شما صرفهجویی میشود.
🔷 بهکمک آیپی DDS میتوانید انواع موجهای سینوسی و کسینوسی با فرکانسهای مختلف را در مدار درون FPGA پیادهسازی کنید.
❓ اکنون سوالی که مطرح میشود این است که فرکانس موج سینوسی که به این روش تولید میکنیم، به چه عواملی بستگی دارد؟
🌎 در مقاله "چطور یک مولد موج سینوسی در FPGA پیادهسازی کنیم؟"، در مورد این موضوع به طور کامل توضیح دادهام؛ همچنین، یک مولد موج سینوسی بهکمک آیپی DDS در FPGA پیادهسازی شده است:
🌎 https://bit.ly/FPGASineWave
🆔 @FPGA0
🔷 در پستهای قبل، دو روش برای پیادهسازی موج سینوسی درون FPGA را به شما معرفی کردم. در این پست، روش دیگری، بهنام روش DDS را به شما معرفی خواهم کرد.
🌎 در سایت فراداندیش، در مقاله "چطور یک مولد موج سینوسی در FPGA پیادهسازی کنیم؟"، بهکمک این روش، یک موج سینوسی در FPGA پیادهسازی کردهام:
🌎 https://bit.ly/FPGASineWave
🔷 و اما روش سوم پیادهسازی موج سینوسی درون FPGA، روش DDS است.
❇️ روش DDS
🔷 عبارت DDS، مخفف Direct Digital Sensitizer است.
🔷 مفهوم روش DDS، مفهوم نسبتاً سادهای است؛ برای اینکه یک موج سینوسی را بهصورت دیجیتالی درون FPGA پیادهسازی کنید، روش DDS ایدهای بهصورت زیر ارائه میدهد:
🔷 ابتدا باید یک دوره تناوب از موج سینوسی را به روشی تولید کنید؛ مثلاً میتوانید این موج را در نرمافزار متلب تولید کنید.
🔷 سپس، از یک دوره تناوب این موج سینوسی، تعدادی نمونه را جدا میکنید و به یک حافظه که درون FPGA قرار دارد منتقل میکنید.
🔷 اگر من در هر کلاک، یک نمونه از این حافظه را بخوانم، در واقع، در حال خواندن نمونههای یک پریود از یک موج سینوسی هستم.
🔷 اگر این نمونهها را تا انتها بخوانم و دوباره به ابتدای RAM بازگردم، یک موج سینوسی را درون FPGA تولید کردهام.
🔷 اما اگر بخواهیم روش DDS را پیادهسازی کنیم، دو راه پیش رو داریم:
✅ روش اول این است که از یک IP Core به همین نام استفاده کنیم.
✅ روش دوم، کدنویسی به یکی از زبانهای VHDL یا Verilog است.
🔷 اگر از IP استفاده کنید، دیگر نیازی نیست که از ابتدا الگوریتم DDS را کدنویسی کنید و در وقت شما صرفهجویی میشود.
🔷 بهکمک آیپی DDS میتوانید انواع موجهای سینوسی و کسینوسی با فرکانسهای مختلف را در مدار درون FPGA پیادهسازی کنید.
❓ اکنون سوالی که مطرح میشود این است که فرکانس موج سینوسی که به این روش تولید میکنیم، به چه عواملی بستگی دارد؟
🌎 در مقاله "چطور یک مولد موج سینوسی در FPGA پیادهسازی کنیم؟"، در مورد این موضوع به طور کامل توضیح دادهام؛ همچنین، یک مولد موج سینوسی بهکمک آیپی DDS در FPGA پیادهسازی شده است:
🌎 https://bit.ly/FPGASineWave
🆔 @FPGA0
⚡️ موقعیت شغلی جدید در غرب تهران...
🔹 شرکت مهندسی البرز، فعال در زمینه طراحی و ساخت سیستمهای مخابراتی از دانشجویان و فارغالتحصیلان کارشناسی، کارشناسی ارشد و دکتری در رشتههای برق و کامپیوتر به صورت تماموقت و نیمهوقت در زمینههای تخصصی زیر دعوت به همکاری می نماید:
1️⃣ متخصص الکترونیک مسلط به سختافزار به منظور تست و رفع عیب
2️⃣ متخصص کدنویسی VHDL و پیادهسازی بر روی تراشههای FPGA
3️⃣ متخصص کدنویسی ++C بر روی Windows و Linus
4️⃣ متخصص طراحی schematic و PCB بردهای دیجیتال شامل FPGA و پردازندههای DSP (بردهای چند لایه)
5️⃣ متخصص مونتاژ و تست بردهای دیجیتال و آنالوگ
❇️ اگر فکر میکنید مهارت و علاقه شما حداقل با یکی از موارد بالا تطبیق دارد، لطفا رزومهتان را به ایمیل زیر ارسال کنید:
📭 help@faradandish.com
☎️ رزومه شما به شرکت مورد نظر ارسال خواهد شد و آنها پس از بررسی، در صورت نیاز با شما تماس خواهند گرفت.
🆔 @FPGA0
🔹 شرکت مهندسی البرز، فعال در زمینه طراحی و ساخت سیستمهای مخابراتی از دانشجویان و فارغالتحصیلان کارشناسی، کارشناسی ارشد و دکتری در رشتههای برق و کامپیوتر به صورت تماموقت و نیمهوقت در زمینههای تخصصی زیر دعوت به همکاری می نماید:
1️⃣ متخصص الکترونیک مسلط به سختافزار به منظور تست و رفع عیب
2️⃣ متخصص کدنویسی VHDL و پیادهسازی بر روی تراشههای FPGA
3️⃣ متخصص کدنویسی ++C بر روی Windows و Linus
4️⃣ متخصص طراحی schematic و PCB بردهای دیجیتال شامل FPGA و پردازندههای DSP (بردهای چند لایه)
5️⃣ متخصص مونتاژ و تست بردهای دیجیتال و آنالوگ
❇️ اگر فکر میکنید مهارت و علاقه شما حداقل با یکی از موارد بالا تطبیق دارد، لطفا رزومهتان را به ایمیل زیر ارسال کنید:
📭 help@faradandish.com
☎️ رزومه شما به شرکت مورد نظر ارسال خواهد شد و آنها پس از بررسی، در صورت نیاز با شما تماس خواهند گرفت.
🆔 @FPGA0
⚡️ تعیین اهداف و استراتژیهای طراحی در نرمافزار ISE (قسمت اول)
✅ شما برای انجام عملیات پیادهسازی یک مدار بر روی FPGA، ممکن است اهداف متفاوتی داشته باشید:
🔷 گاهی هدف شما استفاده حداقلی از منابع سختافزاری درون FPGA است.
🔷 ممکن است بهینه کردن توان مصرفی مدار پیادهسازی شده در FPGA، هدف شما باشد.
🔷 گاهی برای شما مهم است که زمان پیادهسازی حداقل مقدار ممکن باشد.
🔷 در بعضی مواقع رسیدن به حداکثر فرکانس کلاک قابل اعمال به مدار هدف اصلی شما است.
🔷 و گاهی نیز از نرمافزار پیادهسازی میخواهید ترکیبی از اهداف بالا را در نظر بگیرد.
✅ در این مجموعه پست، نحوه تعیین این اهداف و استراتژیها را برای پیادهسازی در نرمافزار ISE بیان میکنم.
ادامه دارد...
🆔 @FPGA0
✅ شما برای انجام عملیات پیادهسازی یک مدار بر روی FPGA، ممکن است اهداف متفاوتی داشته باشید:
🔷 گاهی هدف شما استفاده حداقلی از منابع سختافزاری درون FPGA است.
🔷 ممکن است بهینه کردن توان مصرفی مدار پیادهسازی شده در FPGA، هدف شما باشد.
🔷 گاهی برای شما مهم است که زمان پیادهسازی حداقل مقدار ممکن باشد.
🔷 در بعضی مواقع رسیدن به حداکثر فرکانس کلاک قابل اعمال به مدار هدف اصلی شما است.
🔷 و گاهی نیز از نرمافزار پیادهسازی میخواهید ترکیبی از اهداف بالا را در نظر بگیرد.
✅ در این مجموعه پست، نحوه تعیین این اهداف و استراتژیها را برای پیادهسازی در نرمافزار ISE بیان میکنم.
ادامه دارد...
🆔 @FPGA0
⚡️ تعیین اهداف و استراتژیهای طراحی در نرمافزار ISE (قسمت دوم)
🔷 قیدهای پیادهسازی ابزاری هستند که بهکمک آنها میتوانید نتیجه پیادهسازی را بر مبنای نیاز خودتان تغییر دهید.
🔷 برای مراحل مختلف پیادهسازی، از جمله سنتز، جانمایی و مسیریابی، قیدهای مخصوصی وجود دارد که با تغییر مناسب آنها میتوانید نتیجه پیادهسازی را با توجه به هدف پیادهسازی تغییر دهید.
🔷 اما استفاده از این قیدها و آگاهی از نحوه تاثیر هر کدام از آنها بر نتیجه پیادهسازی، نیاز به دانش و تجربه بسیار زیادی دارد. حتی بعد از چندین سال تجربه نیز نمیتوان بهراحتی اثر تغییر هر کدام از آنها را در مدار پیشبینی کرد.
🔷 خوشبختانه، نرمافزار ISE دو قابلیت فوقالعاده برای تنظیم خودکار و هوشمند قیود پیادهسازی دارد که به ما کمک میکند بدون تسلط به ماهیت و نحوه عملکرد این قیدها بتوانیم با تغییر آنها نتایج پیادهسازی را به نحوی که مطلوب ما است تغییر دهیم:
1️⃣ قابلیت Design Goals & Strategies
2️⃣ قابلیت Smart Xplorer
✅ در قسمتهای بعد، این دو قابلیت را به شما معرفی خواهم کرد.
ادامه دارد...
🆔 @FPGA0
🔷 قیدهای پیادهسازی ابزاری هستند که بهکمک آنها میتوانید نتیجه پیادهسازی را بر مبنای نیاز خودتان تغییر دهید.
🔷 برای مراحل مختلف پیادهسازی، از جمله سنتز، جانمایی و مسیریابی، قیدهای مخصوصی وجود دارد که با تغییر مناسب آنها میتوانید نتیجه پیادهسازی را با توجه به هدف پیادهسازی تغییر دهید.
🔷 اما استفاده از این قیدها و آگاهی از نحوه تاثیر هر کدام از آنها بر نتیجه پیادهسازی، نیاز به دانش و تجربه بسیار زیادی دارد. حتی بعد از چندین سال تجربه نیز نمیتوان بهراحتی اثر تغییر هر کدام از آنها را در مدار پیشبینی کرد.
🔷 خوشبختانه، نرمافزار ISE دو قابلیت فوقالعاده برای تنظیم خودکار و هوشمند قیود پیادهسازی دارد که به ما کمک میکند بدون تسلط به ماهیت و نحوه عملکرد این قیدها بتوانیم با تغییر آنها نتایج پیادهسازی را به نحوی که مطلوب ما است تغییر دهیم:
1️⃣ قابلیت Design Goals & Strategies
2️⃣ قابلیت Smart Xplorer
✅ در قسمتهای بعد، این دو قابلیت را به شما معرفی خواهم کرد.
ادامه دارد...
🆔 @FPGA0
⚡️ تعیین اهداف و استراتژیهای طراحی در نرمافزار ISE (قسمت سوم)
🔷 همانطور که در پست قبل گفته شد، قیدهای پیادهسازی ابزاری هستند که بهکمک آنها میتوانید نتیجه پیادهسازی را بر مبنای نیاز خودتان تغییر دهید.
🔷 برای تعیین اهداف پیاهسازی در نرمافزار ISE به دو روش میتوانیم عمل کنیم:
1️⃣ روش Design Goals & Strategies
2️⃣ روش SmartXplorer
🔷 ابتدا روش Design Goals & Strategies را بررسی میکنم.
🔷 بهکمک قابلیت Design Goals & Strategies از نرمافزار ISE میتوانید هدفی برای پیادهسازیتان تعیین کنید.
✅ اهداف پیادهسازی در نرمافزار ISE شامل موارد زیر است:
🟣 Balanced
🟣 Area Reduction
🟣 Power Optimization
🟣 Minimum Runtime
🟣 Timing Performance
🔷 مثلا گزینه Area Reduction به این معنی است که میخواهید مدار شما کمترین فضا را از FPGA اشغال کند.
🔷 برای رسیدن مدار به حداکثر سرعت، باید گزینه Timing Performance را انتخاب کنید.
✅ در واقع، با انتخاب این گزینه، نرمافزار در پی حداکثر فرکانس برای سیگنال کلاک قابل اعمال به مدار خواهد بود. در اکثر پیادهسازیهای حرفهای نیز هدف ما رسیدن به حداکثر سرعت است.
✳️ نرمافزار برای هر هدف، چند استراتژی از قبل آماده شده دارد؛ هر استراتژی، قیدهای پیادهسازی گلوبال را بهگونهای تنظیم میکنند که هدف پیادهسازی محقق شود.
✳️ میتوانید استراتژیهای مختلف را امتحان کنید تا ببینید کدامیک شما را به هدفتان میرساند.
✅ برای مشاهده مراحل گام به گام استفاده از قابلیت Design Goals & Strategies در نرمافزار ISE، به مقاله "۲ روش برای تعیین استراتژی طراحی در نرمافزار ISE" از سایت فراد اندیش مراجعه کنید:
🌎 https://bit.ly/DesignStrategyGoals
ادامه دارد...
🆔 @FPGA0
🔷 همانطور که در پست قبل گفته شد، قیدهای پیادهسازی ابزاری هستند که بهکمک آنها میتوانید نتیجه پیادهسازی را بر مبنای نیاز خودتان تغییر دهید.
🔷 برای تعیین اهداف پیاهسازی در نرمافزار ISE به دو روش میتوانیم عمل کنیم:
1️⃣ روش Design Goals & Strategies
2️⃣ روش SmartXplorer
🔷 ابتدا روش Design Goals & Strategies را بررسی میکنم.
🔷 بهکمک قابلیت Design Goals & Strategies از نرمافزار ISE میتوانید هدفی برای پیادهسازیتان تعیین کنید.
✅ اهداف پیادهسازی در نرمافزار ISE شامل موارد زیر است:
🟣 Balanced
🟣 Area Reduction
🟣 Power Optimization
🟣 Minimum Runtime
🟣 Timing Performance
🔷 مثلا گزینه Area Reduction به این معنی است که میخواهید مدار شما کمترین فضا را از FPGA اشغال کند.
🔷 برای رسیدن مدار به حداکثر سرعت، باید گزینه Timing Performance را انتخاب کنید.
✅ در واقع، با انتخاب این گزینه، نرمافزار در پی حداکثر فرکانس برای سیگنال کلاک قابل اعمال به مدار خواهد بود. در اکثر پیادهسازیهای حرفهای نیز هدف ما رسیدن به حداکثر سرعت است.
✳️ نرمافزار برای هر هدف، چند استراتژی از قبل آماده شده دارد؛ هر استراتژی، قیدهای پیادهسازی گلوبال را بهگونهای تنظیم میکنند که هدف پیادهسازی محقق شود.
✳️ میتوانید استراتژیهای مختلف را امتحان کنید تا ببینید کدامیک شما را به هدفتان میرساند.
✅ برای مشاهده مراحل گام به گام استفاده از قابلیت Design Goals & Strategies در نرمافزار ISE، به مقاله "۲ روش برای تعیین استراتژی طراحی در نرمافزار ISE" از سایت فراد اندیش مراجعه کنید:
🌎 https://bit.ly/DesignStrategyGoals
ادامه دارد...
🆔 @FPGA0