⚡️ مراحل ساخت یک سختافزار دیجیتال (قسمت سوم)
🔷 در دو قسمت قبل، به مرحله اول و دوم ساخت یک سختافزار دیجیتال، یعنی، طراحی و عیبزدایی پرداختم.
🔷 در این قسمت، مرحله سوم که درستیآزمایی است را مورد بررسی قرار خواهم داد.
❇️ درستیآزمایی سختافزار دیجیتال
🔷 یکی از مهمترین بخشهای فرایند طراحی و پیادهسازی سیستمهای دیجیتال، بهکارگیری روشهای مناسب و جامع برای درستیآزمایی محصول نهایی است.
✅ منظور از درستیآزمایی، تست سیستم پیادهسازی شده بهازای تمام حالتهای ممکن عملی و مقایسه نتایج بهدست آمده با نتایج مدلهای کامپیوتری است.
🔷 درستیآزمایی سیستم را میتوانید در سطوح مختلف طراحی انجام دهید.
🔷 در پایینترین سطح، بعد از پیادهسازی هر زیرسیستم، میتوان برای آن عملیات درستیآزمایی را انجام داد.
✳️ بهعنوان مثال، طراحی یک فیلتر را در نظر بگیرید.
🔷 طراحی این فیلتر، از یک مدل ممیز شناور که در نرمافزاری مانند MATLAB طراحی شده آغاز میشود.
🔷 سپس، مدل ممیز ثابت آن توسط پیادهساز تهیه میشود.
🔷 در مرحله بعد، باید بردارهای مناسبی بهعنوان ورودی تست برای آن طراحی کنید؛ این بردارها باید بهگونهای باشند که تمام حالتهای ممکن عملی را برای سیستم موردنظر بهوجود آورند؛ در غیر این صورت، درستیآزمایی جامعی انجام نخواهد شد.
🔷 پس از اعمال بردارها به مدل ممیز ثابت، خروجیهای متناظر را باید ذخیره کنید تا بهعنوان معیار مقایسه در مرحله درستیآزمایی مورد استفاده قرار گیرند.
🔷 پس از پیادهسازی سیستم بر روی تکنولوژی هدف، باید بردارهای تست ورودی تهیه شده را به زیرسیستم اعمال کنید و خروجیهای متناظر را ذخیره کنید.
🔷 برای ذخیرهسازی خروجیها و انتقال آنها به کامپیوتر، میتوان از ابزار ChipScope استفاده کنید.
🔷 بدین ترتیب، خروجیها به کامپیوتر منتقل شده و به شما این امکان داده میشود که در محیطی مانند نرمافزار MATLAB به تحلیل دادهها و مقایسه آنها با خروجیهای مدل ممیز ثابت بپردازید.
🔷 تمام زیرسیستمهای پردازشی سیستم را میتوان به این ترتیب درستیآزمایی نمود.
🔷 پس از اطمینان از صحت عملکرد زیرسیستمها، میتوانید آنها را یکییکی به سیستم اصلی اضافه کنید و در هر مرحله نیز، فرآیند درستیآزمایی را مجدداً انجام دهید.
🔷 بعد از اینکه سیستم نهایی پیادهسازی شد، نیاز به نوع دیگری از درستیآزمایی است که با روشهایی که تا اینجا اشاره کردم قابل انجام نیستند.
🔷 از آنجا که معمولاً سیستمهای مورد نظر برای تست، یک مجموعه پردازشی با عملکرد زمان-واقعی یا real-time است، باید تست و درستی-آزمایی زمان-واقعی در مورد آن انجام شود تا از صحت عملکرد آن اطمینان حاصل شود.
✳️ شبیهسازی زمان-واقعی
🔷 یک روش برای انجام درستیآزمایی زمان-واقعی، تست سیستم در شرایط و محیط عملی است.
✅ در این حالت، سیستم به محیطی مشابه آنچه در شرایط واقعی در آن قرار خواهد گرفت منتقل شده و با سناریوهای از پیش طراحی شدهای مورد آزمایش قرار میگیرد.
🔷 روش درستیآزمایی در محیط واقعی گرچه میتواند بهعنوان درستیآزمایی زمانواقعی انجام شود، ولی دارای معایب بسیاری، از جمله، هزینه زیاد، زمانبر بودن و محدودیت انجام است.
✅ امکان انجام تستهای میدانی بسیار محدود است. بنابراین، باید برای این منظور از روش دیگری استفاده کرد. روش متداول برای انجام تستهای زمان-واقعی در محیطهای آزمایشگاهی، استفاده از شبیهساز است.
🆔 @FPGA0
🔷 در دو قسمت قبل، به مرحله اول و دوم ساخت یک سختافزار دیجیتال، یعنی، طراحی و عیبزدایی پرداختم.
🔷 در این قسمت، مرحله سوم که درستیآزمایی است را مورد بررسی قرار خواهم داد.
❇️ درستیآزمایی سختافزار دیجیتال
🔷 یکی از مهمترین بخشهای فرایند طراحی و پیادهسازی سیستمهای دیجیتال، بهکارگیری روشهای مناسب و جامع برای درستیآزمایی محصول نهایی است.
✅ منظور از درستیآزمایی، تست سیستم پیادهسازی شده بهازای تمام حالتهای ممکن عملی و مقایسه نتایج بهدست آمده با نتایج مدلهای کامپیوتری است.
🔷 درستیآزمایی سیستم را میتوانید در سطوح مختلف طراحی انجام دهید.
🔷 در پایینترین سطح، بعد از پیادهسازی هر زیرسیستم، میتوان برای آن عملیات درستیآزمایی را انجام داد.
✳️ بهعنوان مثال، طراحی یک فیلتر را در نظر بگیرید.
🔷 طراحی این فیلتر، از یک مدل ممیز شناور که در نرمافزاری مانند MATLAB طراحی شده آغاز میشود.
🔷 سپس، مدل ممیز ثابت آن توسط پیادهساز تهیه میشود.
🔷 در مرحله بعد، باید بردارهای مناسبی بهعنوان ورودی تست برای آن طراحی کنید؛ این بردارها باید بهگونهای باشند که تمام حالتهای ممکن عملی را برای سیستم موردنظر بهوجود آورند؛ در غیر این صورت، درستیآزمایی جامعی انجام نخواهد شد.
🔷 پس از اعمال بردارها به مدل ممیز ثابت، خروجیهای متناظر را باید ذخیره کنید تا بهعنوان معیار مقایسه در مرحله درستیآزمایی مورد استفاده قرار گیرند.
🔷 پس از پیادهسازی سیستم بر روی تکنولوژی هدف، باید بردارهای تست ورودی تهیه شده را به زیرسیستم اعمال کنید و خروجیهای متناظر را ذخیره کنید.
🔷 برای ذخیرهسازی خروجیها و انتقال آنها به کامپیوتر، میتوان از ابزار ChipScope استفاده کنید.
🔷 بدین ترتیب، خروجیها به کامپیوتر منتقل شده و به شما این امکان داده میشود که در محیطی مانند نرمافزار MATLAB به تحلیل دادهها و مقایسه آنها با خروجیهای مدل ممیز ثابت بپردازید.
🔷 تمام زیرسیستمهای پردازشی سیستم را میتوان به این ترتیب درستیآزمایی نمود.
🔷 پس از اطمینان از صحت عملکرد زیرسیستمها، میتوانید آنها را یکییکی به سیستم اصلی اضافه کنید و در هر مرحله نیز، فرآیند درستیآزمایی را مجدداً انجام دهید.
🔷 بعد از اینکه سیستم نهایی پیادهسازی شد، نیاز به نوع دیگری از درستیآزمایی است که با روشهایی که تا اینجا اشاره کردم قابل انجام نیستند.
🔷 از آنجا که معمولاً سیستمهای مورد نظر برای تست، یک مجموعه پردازشی با عملکرد زمان-واقعی یا real-time است، باید تست و درستی-آزمایی زمان-واقعی در مورد آن انجام شود تا از صحت عملکرد آن اطمینان حاصل شود.
✳️ شبیهسازی زمان-واقعی
🔷 یک روش برای انجام درستیآزمایی زمان-واقعی، تست سیستم در شرایط و محیط عملی است.
✅ در این حالت، سیستم به محیطی مشابه آنچه در شرایط واقعی در آن قرار خواهد گرفت منتقل شده و با سناریوهای از پیش طراحی شدهای مورد آزمایش قرار میگیرد.
🔷 روش درستیآزمایی در محیط واقعی گرچه میتواند بهعنوان درستیآزمایی زمانواقعی انجام شود، ولی دارای معایب بسیاری، از جمله، هزینه زیاد، زمانبر بودن و محدودیت انجام است.
✅ امکان انجام تستهای میدانی بسیار محدود است. بنابراین، باید برای این منظور از روش دیگری استفاده کرد. روش متداول برای انجام تستهای زمان-واقعی در محیطهای آزمایشگاهی، استفاده از شبیهساز است.
🆔 @FPGA0
⚡️ انواع محصولات شرکت 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