🌟 در صفحههای زیر میتوانید هر سوالی در مورد موضوع اینترفیس با 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
⚡️ تعیین اهداف و استراتژیهای طراحی در نرمافزار ISE (قسمت چهارم)
🔷 در قسمت قبل، تعیین اهداف و استراتژیهای طراحی را از طریق قابلیت Design Goals & Strategies در نرمافزار ISE بیان کردم.
🔷 در این پست، بهسراغ قابلیت دوم میرویم.
🔷 دومین قابلیت نرمافزار ISE برای تعیین هدف و استراتژی برای پیادهسازی، SmartXplorer است.
🔷 در این روش نیز ابتدا یک هدف برای استراتژی تعیین میکنید.
🔷 سپس، برای نرمافزار تعیین میکنید که علاقهمندید چه تعداد استراتژی مختلف برای پیادهسازی مدار شما (بر اساس هدفی که انتخاب کردهاید) استفاده شود.
🔷 پس از آن، نرمافزار بر اساس هدف تعیین شده، چند مجموعه از قیود پیادهسازی ایجاد میکند و بهصورت خودکار عملیات پیادهسازی را انجام میدهد.
🔷 برای مثال، اگر شما عدد هفت را برای تعداد استراتژیها تعیین کنید، نرمافزار هفت ترکیب مختلف از تنظیم قیود پیادهسازی گلوبال که بهصورت هوشمندانه ایجاد شدهاند را به پروژه اعمال کرده و بهطور خودکار پیادهسازیها را انجام میدهد.
🔷 سپس، نتایج پیادهسازیها را بهصورت جداگانه در جدولی به شما ارائه میدهد.
🔷 نتایج این پیادهسازیها بر اساس مواردی چون حداکثر فرکانس قابل اعمال به مدار، مقدار Area مصرف شده و مدت زمان عملیات پیادهسازی ارائه میشوند.
🔷 به این ترتیب، مدار بهصورت خودکار هفت مرتبه پیادهسازی شده که هر بار یک مجموعه از تنظیمات هوشمندانه قیود گلوبال به آن اعمال شده است.
🔷 شما میتوانید نتایج بهدست آمده با اعمال استراتژیهای مختلف را با هم مقایسه کرده و یکی را به دلخواه برگزینید.
✅ برای مشاهده مراحل گام به گام بهکارگیری SmartXplorer، به مقاله "۲ روش برای تعیین استراتژی طراحی در نرمافزار ISE" از سایت فراد اندیش مراجعه کنید:
🌎 https://bit.ly/DesignStrategyGoals
🆔 @FPGA0
🔷 در قسمت قبل، تعیین اهداف و استراتژیهای طراحی را از طریق قابلیت Design Goals & Strategies در نرمافزار ISE بیان کردم.
🔷 در این پست، بهسراغ قابلیت دوم میرویم.
🔷 دومین قابلیت نرمافزار ISE برای تعیین هدف و استراتژی برای پیادهسازی، SmartXplorer است.
🔷 در این روش نیز ابتدا یک هدف برای استراتژی تعیین میکنید.
🔷 سپس، برای نرمافزار تعیین میکنید که علاقهمندید چه تعداد استراتژی مختلف برای پیادهسازی مدار شما (بر اساس هدفی که انتخاب کردهاید) استفاده شود.
🔷 پس از آن، نرمافزار بر اساس هدف تعیین شده، چند مجموعه از قیود پیادهسازی ایجاد میکند و بهصورت خودکار عملیات پیادهسازی را انجام میدهد.
🔷 برای مثال، اگر شما عدد هفت را برای تعداد استراتژیها تعیین کنید، نرمافزار هفت ترکیب مختلف از تنظیم قیود پیادهسازی گلوبال که بهصورت هوشمندانه ایجاد شدهاند را به پروژه اعمال کرده و بهطور خودکار پیادهسازیها را انجام میدهد.
🔷 سپس، نتایج پیادهسازیها را بهصورت جداگانه در جدولی به شما ارائه میدهد.
🔷 نتایج این پیادهسازیها بر اساس مواردی چون حداکثر فرکانس قابل اعمال به مدار، مقدار Area مصرف شده و مدت زمان عملیات پیادهسازی ارائه میشوند.
🔷 به این ترتیب، مدار بهصورت خودکار هفت مرتبه پیادهسازی شده که هر بار یک مجموعه از تنظیمات هوشمندانه قیود گلوبال به آن اعمال شده است.
🔷 شما میتوانید نتایج بهدست آمده با اعمال استراتژیهای مختلف را با هم مقایسه کرده و یکی را به دلخواه برگزینید.
✅ برای مشاهده مراحل گام به گام بهکارگیری SmartXplorer، به مقاله "۲ روش برای تعیین استراتژی طراحی در نرمافزار ISE" از سایت فراد اندیش مراجعه کنید:
🌎 https://bit.ly/DesignStrategyGoals
🆔 @FPGA0
⚡️ شمارنده چگونه میتواند مشکلات شما در پیادهسازی را حل کند؟ (قسمت اول)
🔷 هر مدار دیجیتالی از مجموعهای از مدارات کوچک و پایه تشکیل شده است.
🔷 در میان این مدارات پایه، احتمالاً پرکاربردترین آنها، شمارندهها هستند.
🔷 شمارندهها آنقدر پرکاربرد هستند که بعید میدانم یک طرح دیجیتالی را بتوان بدون آنها ساخت.
🔷 اما کاربردهای اصلی شمارندهها در مدارات دیجیتال چیست و چطور میتوان از آنها برای پیادهسازی در FPGA استفاده کرد؟
❇️ کاربردهای شمارنده
🔷 به طور کلی، شمارندهها دو کاربرد اصلی دارند؛ زمانسنجی و شمارش رخدادها.
✅ در قسمتهای بعد به تشریح این دو کاربرد میپردازم.
ادامه دارد...
🆔 @FPGA0
🔷 هر مدار دیجیتالی از مجموعهای از مدارات کوچک و پایه تشکیل شده است.
🔷 در میان این مدارات پایه، احتمالاً پرکاربردترین آنها، شمارندهها هستند.
🔷 شمارندهها آنقدر پرکاربرد هستند که بعید میدانم یک طرح دیجیتالی را بتوان بدون آنها ساخت.
🔷 اما کاربردهای اصلی شمارندهها در مدارات دیجیتال چیست و چطور میتوان از آنها برای پیادهسازی در FPGA استفاده کرد؟
❇️ کاربردهای شمارنده
🔷 به طور کلی، شمارندهها دو کاربرد اصلی دارند؛ زمانسنجی و شمارش رخدادها.
✅ در قسمتهای بعد به تشریح این دو کاربرد میپردازم.
ادامه دارد...
🆔 @FPGA0
⚡️ شمارنده چگونه میتواند مشکلات شما در پیادهسازی را حل کند؟ (قسمت دوم)
🔷 همانطور که در پست قبل گفته شد، شمارندهها در طراحی دیجیتال بسیار پرکاربرد هستند.
🔷 اولین کاربرد شمارنده، زمانسنجی یا timing است.
🌀 شما به کمک شمارنده میتوانید زمان را در یک مدار دیجیتال بسنجید و محاسبه کنید.
🌀 برای مثال، فرض کنید میخواهید در مدارتان، دو ثانیه بعد از رسیدن یک رجیستر خاص به مقدار ۱۰۰، عملیات دیگری انجام شود؛ مثلاً، موتوری حرکت کند یا یک چراغ روشن شود.
❓ چگونه باید این دو ثانیه را در مدار دیجیتال محاسبه کنید؟
✅ این کار را به کمک شمارنده انجام میدهیم.
🌀 و یا فرض کنید میخواهید پروتکل RS232 را پیادهسازی کنید؛ پروتکل RS232، بیتها را بهصورت سریال در خروجی ارسال میکند؛ هر کدام از این بیتها، عرض بیتی دارد که با توجه به baud rate یا سرعت پروتکل سریال مشخص میشود.
🌀 مثلاً فرض کنید هر بیت باید به مدت ۱۰۰ میکروثانیه در خروجی باشد. برای ایجاد این عرض بیتهای ۱۰۰ میکروثانیهای، نیاز به محاسبه زمان دارید؛ این ۱۰۰ میکروثانیه را چگونه میتوانید حساب کنید؟ این کار هم بهکمک شمارنده انجام میشود.
ادامه دارد...
🆔 @FPGA0
🔷 همانطور که در پست قبل گفته شد، شمارندهها در طراحی دیجیتال بسیار پرکاربرد هستند.
🔷 اولین کاربرد شمارنده، زمانسنجی یا timing است.
🌀 شما به کمک شمارنده میتوانید زمان را در یک مدار دیجیتال بسنجید و محاسبه کنید.
🌀 برای مثال، فرض کنید میخواهید در مدارتان، دو ثانیه بعد از رسیدن یک رجیستر خاص به مقدار ۱۰۰، عملیات دیگری انجام شود؛ مثلاً، موتوری حرکت کند یا یک چراغ روشن شود.
❓ چگونه باید این دو ثانیه را در مدار دیجیتال محاسبه کنید؟
✅ این کار را به کمک شمارنده انجام میدهیم.
🌀 و یا فرض کنید میخواهید پروتکل RS232 را پیادهسازی کنید؛ پروتکل RS232، بیتها را بهصورت سریال در خروجی ارسال میکند؛ هر کدام از این بیتها، عرض بیتی دارد که با توجه به baud rate یا سرعت پروتکل سریال مشخص میشود.
🌀 مثلاً فرض کنید هر بیت باید به مدت ۱۰۰ میکروثانیه در خروجی باشد. برای ایجاد این عرض بیتهای ۱۰۰ میکروثانیهای، نیاز به محاسبه زمان دارید؛ این ۱۰۰ میکروثانیه را چگونه میتوانید حساب کنید؟ این کار هم بهکمک شمارنده انجام میشود.
ادامه دارد...
🆔 @FPGA0
⚡️ شمارنده چگونه میتواند مشکلات شما در پیادهسازی را حل کند؟ (قسمت سوم)
🔷 در پست قبل، یکی از کاربردهای شمارندهها در طراحی دیجیتال که زمانسنجی است را بررسی کردم.
🔷 در این پست، به کاربرد دیگر شمارندهها که شمارش رخدادها است میپردازم.
🌀 فرض کنید نیاز است که در صورت تکرار یک رویداد به تعداد مشخص (مثلاً ۱۰ بار)، عملیات دیگری انجام شود؛ مثلاً، چراغی روشن شود.
❓ شما چگونه میتوانید تعداد رخ دادن آن رویداد را بشمارید؟
✅ بله، در این مورد هم میتوانید از یک شمارنده استفاده کنید.
❓ اما روند به کارگیری شمارنده در این مثال به چه صورت است؟
🔷 ابتدا یک شمارنده تعریف میکنید. سپس شرطی تعریف میکنید که اگر آن رویداد اتفاق افتاد، یک واحد به شمارنده شما اضافه شود.
🔷 آنگاه، در محل دیگری از مدار، یک شرط دیگر تعریف میکنید که اگر شمارنده برابر با ۱۰ شد، عملیات مورد نظر شما انجام شود.
✅ برای اطلاع از نحوه پیادهسازی شمارنده در زبان VHDL و مشاهده چند مثال، به مقاله "شمارنده چگونه میتواند مشکلات شما در پیادهسازی را حل کند؟" از سایت فراد اندیش مراجعه کنید.
🆔 @FPGA0
🔷 در پست قبل، یکی از کاربردهای شمارندهها در طراحی دیجیتال که زمانسنجی است را بررسی کردم.
🔷 در این پست، به کاربرد دیگر شمارندهها که شمارش رخدادها است میپردازم.
🌀 فرض کنید نیاز است که در صورت تکرار یک رویداد به تعداد مشخص (مثلاً ۱۰ بار)، عملیات دیگری انجام شود؛ مثلاً، چراغی روشن شود.
❓ شما چگونه میتوانید تعداد رخ دادن آن رویداد را بشمارید؟
✅ بله، در این مورد هم میتوانید از یک شمارنده استفاده کنید.
❓ اما روند به کارگیری شمارنده در این مثال به چه صورت است؟
🔷 ابتدا یک شمارنده تعریف میکنید. سپس شرطی تعریف میکنید که اگر آن رویداد اتفاق افتاد، یک واحد به شمارنده شما اضافه شود.
🔷 آنگاه، در محل دیگری از مدار، یک شرط دیگر تعریف میکنید که اگر شمارنده برابر با ۱۰ شد، عملیات مورد نظر شما انجام شود.
✅ برای اطلاع از نحوه پیادهسازی شمارنده در زبان VHDL و مشاهده چند مثال، به مقاله "شمارنده چگونه میتواند مشکلات شما در پیادهسازی را حل کند؟" از سایت فراد اندیش مراجعه کنید.
🆔 @FPGA0
⚡️ موقعیت شغلی جدید در غرب تهران...
🔹 شرکت طیفپرداز، فعال در حوزه ساخت سیستمهای مخابراتی و پردازش سیگنال از دانشجویان و فارغالتحصیلان در رشتههای برق و کامپیوتر در زمینههای تخصصی زیر دعوت به همکاری مینماید:
1️⃣ پیادهساز مدارات اینترفیسی مبتنی بر FPGA
2️⃣ پیادهساز الگوریتمهای پردازش سیگنال در FPGA
❇️ اگر فکر میکنید مهارت و علاقه شما حداقل با یکی از موارد بالا تطبیق دارد، لطفا رزومهتان را به ایمیل زیر ارسال کنید:
📭 help@faradandish.com
☎️ رزومه شما به شرکت مورد نظر ارسال خواهد شد و آنها پس از بررسی، در صورت نیاز با شما تماس خواهند گرفت.
🆔 @FPGA0
🔹 شرکت طیفپرداز، فعال در حوزه ساخت سیستمهای مخابراتی و پردازش سیگنال از دانشجویان و فارغالتحصیلان در رشتههای برق و کامپیوتر در زمینههای تخصصی زیر دعوت به همکاری مینماید:
1️⃣ پیادهساز مدارات اینترفیسی مبتنی بر FPGA
2️⃣ پیادهساز الگوریتمهای پردازش سیگنال در FPGA
❇️ اگر فکر میکنید مهارت و علاقه شما حداقل با یکی از موارد بالا تطبیق دارد، لطفا رزومهتان را به ایمیل زیر ارسال کنید:
📭 help@faradandish.com
☎️ رزومه شما به شرکت مورد نظر ارسال خواهد شد و آنها پس از بررسی، در صورت نیاز با شما تماس خواهند گرفت.
🆔 @FPGA0