♨️ برای اطلاعات بیشتر درباره تفاوت ماهیت FPGA و پردازندهها، به مجموعه پست زیر مراجعه کنید👇👇👇
https://t.me/fpga0/869
https://t.me/fpga0/870
🆔 @FPGA0
https://t.me/fpga0/869
https://t.me/fpga0/870
🆔 @FPGA0
🆔 @FPGA0
#مقاله۱۴
🎓 مراحل پروگرام کردن FPGA
📚 نوشته فاطمه مشاک
📥 در سایت فراد اندیش بخوانید 👇👇👇👇
🌎 http://bit.ly/ProgrammingFPGA
#مقاله۱۴
🎓 مراحل پروگرام کردن FPGA
📚 نوشته فاطمه مشاک
📥 در سایت فراد اندیش بخوانید 👇👇👇👇
🌎 http://bit.ly/ProgrammingFPGA
کدامیک از موارد زیر در داشتن یک سیگنال کلاک باکیفیت موثر است؟
Anonymous Quiz
21%
استفاده از بلوک DCM
6%
استفاده از بافرهای مخصوص کلاک
10%
ورود سیگنال کلاک به FPGA از طریق پایههای مناسب
63%
همه موارد
♨️ برای اطلاعات بیشتر درباره پیادهسازی کلاک در FPGA، به مجموعه پست زیر مراجعه کنید👇👇👇
https://t.me/fpga0/882
https://t.me/fpga0/883
https://t.me/fpga0/884
🆔 @FPGA0
https://t.me/fpga0/882
https://t.me/fpga0/883
https://t.me/fpga0/884
🆔 @FPGA0
برای پیادهسازی ضرب در FPGA بهتر است از کدام منبع سختافزاری استفاده کنیم؟
Anonymous Quiz
68%
DSP48
32%
LUT
♨️ برای اطلاعات بیشتر درباره نحوه پیادهسازی عملیات ضرب در FPGA به پست زیر مراجعه کنید👇👇👇
https://t.me/fpga0/842
🆔 @FPGA0
https://t.me/fpga0/842
🆔 @FPGA0
آیا در زبان VHDL میتوان دو سیگنال با عرض بیت متفاوت را با یکدیگر جمع کرد؟
Anonymous Quiz
60%
بله
40%
خیر
♨️ برای اطلاعات بیشتر درباره قانون ارجاع جمع در زبان VHDL، به پست زیر مراجعه کنید👇👇👇
https://t.me/fpga0/903
🆔 @FPGA0
https://t.me/fpga0/903
🆔 @FPGA0
⚡️ میکروبلیز چگونه میتواند به پیادهسازی مدار شما کمک کند؟ (قسمت اول)
🔷 میکروبلیز، یک میکروکنترلر مخصوص، برای استفاده در FPGAهای شرکت Xilinx است.
🔷 شما میتوانید با استفاده از این میکروکنترلر، در کنار مداری که درون FPGA پیادهسازی میکنید، انعطافپذیری و سرعت پیادهسازی طرحتان را افزایش دهید.
🔷 شما میتوانید میکروبلیز را بهصورت soft core در تمام FPGAهای شرکت Xilinx استفاده کنید.
❓ اما پیادهسازی بهصورت soft core به چه معناست؟
❇️ مفاهیم soft core و hard core
🔷 اگر در هنگام تولید یک تراشه FPGA، یک ماجول یا بخش سختافزاری در آن تعبیه شود، اصطلاحاً به آن hard core میگوییم.
🔷 اما اگر این ماجول توسط کاربر بهکمک منابع سختافزاری موجود در FPGA (مانند LUTها، فلیپفلاپها و ...) ساخته شود، به آن soft core گفته میشود.
✅ میکروکنترلر میکروبلیز، در FPGAهای شرکت Xilinx بهصورت soft core ایجاد میشود.
🔷 در واقع، وقتی شما یک FPGA را خریداری میکنید، درون آن میکروکنترلر میکروبلیز وجود ندارد؛ بلکه شما باید آن را بهکمک منابع سختافزاری موجود در FPGA ایجاد کنید.
❇️ مزیت soft core بودن میکروبلیز
🔷 اولین مزیت soft core بودن میکروبلیز این است که برای استفاده از آن نیازی به صرف هزینه نیست.
🔷 اگر قرار بود FPGAای از شرکت سازنده خریداری کنید که در آن بهصورت سختافزاری یک میکروکنترلر وجود داشت، باید هزینه بیشتری نسبت به یک FPGA معمولی پرداخت میکردید.
🔷 مزیت دیگر soft core بودن میکروبلیز این است که در صورت عدم نیاز به این میکروکنترلر در طرح شما، فضایی از FPGA توسط آن اشغال نخواهد شد.
🔷 برای پیادهسازی میکروبلیز، بخشهای سختافزاری مختلفی وجود دارد؛ هر کدام از این بخشها را میتوانید بر اساس نیاز طرحتان استفاده کنید.
🔷 به این ترتیب، حداقل منابع سختافزاری FPGA برای پیادهسازی میکروبلیز مصرف میشود.
🔷 اگر میکروبلیز بهصورت hard core بود، نمیتوانستید بلوکهایی را که نیاز نداشتید حذف کنید و منابع FPGA را برای مصارف دیگر آزاد کنید. این موضوع، مزیت دیگری برای soft core بودن میکروبلیز است.
✅ مجموعهای از نرمافزارها به شما کمک میکنند که میکروبلیز را در FPGAهای شرکت Xilinx پیادهسازی کنید که در پستهای بعدی آنها را به شما معرفی خواهم کرد.
ادامه دارد...
🆔 @FPGA0
🔷 میکروبلیز، یک میکروکنترلر مخصوص، برای استفاده در FPGAهای شرکت Xilinx است.
🔷 شما میتوانید با استفاده از این میکروکنترلر، در کنار مداری که درون FPGA پیادهسازی میکنید، انعطافپذیری و سرعت پیادهسازی طرحتان را افزایش دهید.
🔷 شما میتوانید میکروبلیز را بهصورت soft core در تمام FPGAهای شرکت Xilinx استفاده کنید.
❓ اما پیادهسازی بهصورت soft core به چه معناست؟
❇️ مفاهیم soft core و hard core
🔷 اگر در هنگام تولید یک تراشه FPGA، یک ماجول یا بخش سختافزاری در آن تعبیه شود، اصطلاحاً به آن hard core میگوییم.
🔷 اما اگر این ماجول توسط کاربر بهکمک منابع سختافزاری موجود در FPGA (مانند LUTها، فلیپفلاپها و ...) ساخته شود، به آن soft core گفته میشود.
✅ میکروکنترلر میکروبلیز، در FPGAهای شرکت Xilinx بهصورت soft core ایجاد میشود.
🔷 در واقع، وقتی شما یک FPGA را خریداری میکنید، درون آن میکروکنترلر میکروبلیز وجود ندارد؛ بلکه شما باید آن را بهکمک منابع سختافزاری موجود در FPGA ایجاد کنید.
❇️ مزیت soft core بودن میکروبلیز
🔷 اولین مزیت soft core بودن میکروبلیز این است که برای استفاده از آن نیازی به صرف هزینه نیست.
🔷 اگر قرار بود FPGAای از شرکت سازنده خریداری کنید که در آن بهصورت سختافزاری یک میکروکنترلر وجود داشت، باید هزینه بیشتری نسبت به یک FPGA معمولی پرداخت میکردید.
🔷 مزیت دیگر soft core بودن میکروبلیز این است که در صورت عدم نیاز به این میکروکنترلر در طرح شما، فضایی از FPGA توسط آن اشغال نخواهد شد.
🔷 برای پیادهسازی میکروبلیز، بخشهای سختافزاری مختلفی وجود دارد؛ هر کدام از این بخشها را میتوانید بر اساس نیاز طرحتان استفاده کنید.
🔷 به این ترتیب، حداقل منابع سختافزاری FPGA برای پیادهسازی میکروبلیز مصرف میشود.
🔷 اگر میکروبلیز بهصورت hard core بود، نمیتوانستید بلوکهایی را که نیاز نداشتید حذف کنید و منابع FPGA را برای مصارف دیگر آزاد کنید. این موضوع، مزیت دیگری برای soft core بودن میکروبلیز است.
✅ مجموعهای از نرمافزارها به شما کمک میکنند که میکروبلیز را در FPGAهای شرکت Xilinx پیادهسازی کنید که در پستهای بعدی آنها را به شما معرفی خواهم کرد.
ادامه دارد...
🆔 @FPGA0
⚡️ میکروبلیز چگونه میتواند به پیادهسازی مدار شما کمک کند؟ (قسمت دوم)
🔷 در پست قبل، به معرفی میکروبلیز و مزایای soft core بودن آن پرداختم. همانطور که گفته شد، میکروبلیز میتواند بخشهای سختافزاری مختلفی داشته باشد که بسته به نیاز طرحمان از آنها استفاده خواهیم کرد.
🔷 از بخشهای سختافزاری میکروبلیز میتوان به انواع باس برای ارتباطات مختلف اشاره کرد.
🔷 همچنین، حجم حافظههایی که برای پیادهسازی میکروبلیز نیاز دارید را میتوانید تعیین کنید. مثلاً، برای ذخیره کردن برنامهای که قرار است میکروبلیز آن را اجرا کند، به حافظه نیاز دارید.
🔷 میتوانید وجود یا عدم وجود حافظه کَش برای میکروبلیز را نیز تعیین کنید.
🔷 تعیین این موارد باعث پیادهسازی بهینه میکروبلیز خواهد شد.
🔷 توجه داشته باشید که اگر میکروبلیز بهصورت سختافزاری و hard core ایجاد شده بود، تمامی این بخشها، فضایی اشغال میکردند. در حالی که ممکن بود در طرح شما استفاده نشوند.
❓ اما چرا در کنار FPGA از یک میکروکنترلر استفاده میکنیم؟
🔷 برای این کار دلایل مختلفی وجود دارد؛ یکی از دلایل این کار این است که پیادهسازی بخشهای کنترلی در FPGA مشکل است.
🔷 منظور از بخشهای کنترلی، بخشهایی است که فرایندهای مختلف را در یک مدار دیجیتال کنترل میکنند.
🔹 برای مثال، فرض کنید که یک سیستم پردازش سیگنال دارید که باید چند مرحله پردازشی در آن انجام شود. این مراحل باید با فواصل زمانی مشخص و ترتیب خاصی انجام شوند. بخش کنترلی، میتواند این موضوع را برای ما مدیریت کند.
🔷 گرچه میتوان تمام بخشها را در FPGA پیادهسازی کرد، اما کمک گرفتن از یک میکروکنترلر برای پیادهسازی بخش کنترلی، کار ما را سادهتر و سریعتر میکند.
🔷 بهطور کلی، فرایند پیادهسازی در FPGA، نسبت به کارهای نرمافزاری مانند کار با پردازندههایی چون AVR، ARM و DSP، پیچیدهتر است و به زمان بیشتری نیاز دارد.
🔷 مسلماً اگر بتوانیم بخشهایی را بهصورت نرمافزاری در میکروکنترلر پیادهسازی کنیم، سرعت پیادهسازی ما بیشتر خواهد شد.
🔷 نکته بعدی، پیادهسازی اینترفیسها در FPGA است. شما هر نوع اینترفیسی را میتوانید در FPGA پیادهسازی کنید.
🔷 اما اگر یک میکروکنترلر داشته باشید، بسیاری از اینترفیسها بهصورت آماده وجود دارند. استفاده از آنها کمک میکند که پیادهسازی آسانتر و سریعتری داشته باشید.
✅ بنابراین، میکروکنترلرها میتوانند وظیفه ایجاد اینترفیسها و مدیریت و زمانبندی انجام کارها را در یک طرح سختافزاری بر عهده گیرند. به این ترتیب، سرعت پیادهسازی افزایش مییابد و طرح منعطفتری خواهیم داشت.
ادامه دارد...
🆔 @FPGA0
🔷 در پست قبل، به معرفی میکروبلیز و مزایای soft core بودن آن پرداختم. همانطور که گفته شد، میکروبلیز میتواند بخشهای سختافزاری مختلفی داشته باشد که بسته به نیاز طرحمان از آنها استفاده خواهیم کرد.
🔷 از بخشهای سختافزاری میکروبلیز میتوان به انواع باس برای ارتباطات مختلف اشاره کرد.
🔷 همچنین، حجم حافظههایی که برای پیادهسازی میکروبلیز نیاز دارید را میتوانید تعیین کنید. مثلاً، برای ذخیره کردن برنامهای که قرار است میکروبلیز آن را اجرا کند، به حافظه نیاز دارید.
🔷 میتوانید وجود یا عدم وجود حافظه کَش برای میکروبلیز را نیز تعیین کنید.
🔷 تعیین این موارد باعث پیادهسازی بهینه میکروبلیز خواهد شد.
🔷 توجه داشته باشید که اگر میکروبلیز بهصورت سختافزاری و hard core ایجاد شده بود، تمامی این بخشها، فضایی اشغال میکردند. در حالی که ممکن بود در طرح شما استفاده نشوند.
❓ اما چرا در کنار FPGA از یک میکروکنترلر استفاده میکنیم؟
🔷 برای این کار دلایل مختلفی وجود دارد؛ یکی از دلایل این کار این است که پیادهسازی بخشهای کنترلی در FPGA مشکل است.
🔷 منظور از بخشهای کنترلی، بخشهایی است که فرایندهای مختلف را در یک مدار دیجیتال کنترل میکنند.
🔹 برای مثال، فرض کنید که یک سیستم پردازش سیگنال دارید که باید چند مرحله پردازشی در آن انجام شود. این مراحل باید با فواصل زمانی مشخص و ترتیب خاصی انجام شوند. بخش کنترلی، میتواند این موضوع را برای ما مدیریت کند.
🔷 گرچه میتوان تمام بخشها را در FPGA پیادهسازی کرد، اما کمک گرفتن از یک میکروکنترلر برای پیادهسازی بخش کنترلی، کار ما را سادهتر و سریعتر میکند.
🔷 بهطور کلی، فرایند پیادهسازی در FPGA، نسبت به کارهای نرمافزاری مانند کار با پردازندههایی چون AVR، ARM و DSP، پیچیدهتر است و به زمان بیشتری نیاز دارد.
🔷 مسلماً اگر بتوانیم بخشهایی را بهصورت نرمافزاری در میکروکنترلر پیادهسازی کنیم، سرعت پیادهسازی ما بیشتر خواهد شد.
🔷 نکته بعدی، پیادهسازی اینترفیسها در FPGA است. شما هر نوع اینترفیسی را میتوانید در FPGA پیادهسازی کنید.
🔷 اما اگر یک میکروکنترلر داشته باشید، بسیاری از اینترفیسها بهصورت آماده وجود دارند. استفاده از آنها کمک میکند که پیادهسازی آسانتر و سریعتری داشته باشید.
✅ بنابراین، میکروکنترلرها میتوانند وظیفه ایجاد اینترفیسها و مدیریت و زمانبندی انجام کارها را در یک طرح سختافزاری بر عهده گیرند. به این ترتیب، سرعت پیادهسازی افزایش مییابد و طرح منعطفتری خواهیم داشت.
ادامه دارد...
🆔 @FPGA0
⚡️ میکروبلیز چگونه میتواند به پیادهسازی مدار شما کمک کند؟ (قسمت سوم)
🔷 در پست قبل گفتیم که استفاده از یک میکروکنترلر در کنار طرحی که در FPGA پیادهسازی کردهایم میتواند به ما کمک کند که پیادهسازی سریعتر و راحتتری داشته باشیم.
❓ اما چرا بهجای میکروبلیز از میکروکنترلرهای دیگر استفاده نمیکنیم؟
🔷 همانطور که گفتم، میکروکنترلر میکروبلیز را میتوان درون FPGA پیادهسازی کرد.
🔷 اگر ما آن را در اختیار نداشتیم، مجبور بودیم از یک میکروکنترلر جانبی مانند ARM، AVR یا ... روی بُرد و در کنار تراشه FPGA استفاده کنیم.
⚡️ این کار معایبی بهدنبال دارد...
❇️ معایب استفاده از میکروکنترلر جانبی
🔷 معایب استفاده از یک میکروکنترلر جانبی در کنار FPGA بهصورت زیر است:
📌 صرف هزینه برای خرید میکروکنترلر جانبی
📌 اشغال مقداری از فضای بُرد
📌 اشغال پایههایی از FPGA برای ارتباط با میکروکنترلر جانبی
🔷 اما در صورت استفاده از میکروبلیز، در استفاده از فضای بُرد، پایههای FPGA و هزینه، صرفهجویی خواهد شد.
🔷 همچنین، IPهای زیادی در نرمافزار ISE وجود دارد که میتوان از آنها در کنار میکروبلیز استفاده کرد.
🔹 مثلاً، برای ارتباطات RS232، LAN و بسیاری از پروتکلهای دیگر، ماجولهای آماده وجود دارد.
🔷 میتوان بهجای کدنویسی برای پیادهسازی این پروتکلها، آنها را بهراحتی به سختافزار میکروبلیز اضافه کرد.
✅ در نرمافزار ISE، امکانات زیادی برای استفاده راحت و سریع از میکروبلیز وجود دارد که در پست بعدی درباره آنها صحبت خواهم کرد.
ادامه دارد...
🆔 @FPGA0
🔷 در پست قبل گفتیم که استفاده از یک میکروکنترلر در کنار طرحی که در FPGA پیادهسازی کردهایم میتواند به ما کمک کند که پیادهسازی سریعتر و راحتتری داشته باشیم.
❓ اما چرا بهجای میکروبلیز از میکروکنترلرهای دیگر استفاده نمیکنیم؟
🔷 همانطور که گفتم، میکروکنترلر میکروبلیز را میتوان درون FPGA پیادهسازی کرد.
🔷 اگر ما آن را در اختیار نداشتیم، مجبور بودیم از یک میکروکنترلر جانبی مانند ARM، AVR یا ... روی بُرد و در کنار تراشه FPGA استفاده کنیم.
⚡️ این کار معایبی بهدنبال دارد...
❇️ معایب استفاده از میکروکنترلر جانبی
🔷 معایب استفاده از یک میکروکنترلر جانبی در کنار FPGA بهصورت زیر است:
📌 صرف هزینه برای خرید میکروکنترلر جانبی
📌 اشغال مقداری از فضای بُرد
📌 اشغال پایههایی از FPGA برای ارتباط با میکروکنترلر جانبی
🔷 اما در صورت استفاده از میکروبلیز، در استفاده از فضای بُرد، پایههای FPGA و هزینه، صرفهجویی خواهد شد.
🔷 همچنین، IPهای زیادی در نرمافزار ISE وجود دارد که میتوان از آنها در کنار میکروبلیز استفاده کرد.
🔹 مثلاً، برای ارتباطات RS232، LAN و بسیاری از پروتکلهای دیگر، ماجولهای آماده وجود دارد.
🔷 میتوان بهجای کدنویسی برای پیادهسازی این پروتکلها، آنها را بهراحتی به سختافزار میکروبلیز اضافه کرد.
✅ در نرمافزار ISE، امکانات زیادی برای استفاده راحت و سریع از میکروبلیز وجود دارد که در پست بعدی درباره آنها صحبت خواهم کرد.
ادامه دارد...
🆔 @FPGA0
چه نوع مداراتی را میتوان در FPGA پیادهسازی کرد؟
Anonymous Quiz
4%
مدارات ترکیبی
1%
مدارات ترتیبی آسنکرون
3%
مدارات ترتیبی سنکرون
92%
همه موارد
♨️ برای اطلاعات بیشتر درباره انواع مدارات قابل پیادهسازی در FPGA به پست زیر مراجعه کنید👇👇👇
https://t.me/fpga0/881
🆔 @FPGA0
https://t.me/fpga0/881
🆔 @FPGA0
🌟 نحوه پروگرام کردن FPGA در نرمافزار ISE و ویوادو...
🔹 اگر از دو نرمافزار ISE و ویوادو به طور همزمان روی کامپیوترتان استفاده میکنید، به احتمال زیاد با مشکل عدم شناسایی پروگرامر در یکی از این نرمافزارها مواجه شدهاید
🎥 در جدیدترین ویدئوی آموزشی سایت که تا لحظاتی دیگر منتشر میشود، شما را با نحوه رفع این مشکل و همچنین پروگرام کردن FPGA و فلش جانبی آن در هر دو نرمافزار ISE و ویوادو آشنا میکنم 👇
🆔 @FPGA0
🔹 اگر از دو نرمافزار ISE و ویوادو به طور همزمان روی کامپیوترتان استفاده میکنید، به احتمال زیاد با مشکل عدم شناسایی پروگرامر در یکی از این نرمافزارها مواجه شدهاید
🎥 در جدیدترین ویدئوی آموزشی سایت که تا لحظاتی دیگر منتشر میشود، شما را با نحوه رفع این مشکل و همچنین پروگرام کردن FPGA و فلش جانبی آن در هر دو نرمافزار ISE و ویوادو آشنا میکنم 👇
🆔 @FPGA0
🆔 @FPGA0
#برنامه_ویدئویی۴۲
🎓 نحوه پروگرام کردن FPGA
🎥 برنامه ویدئویی احمد ثقفی
🕘 زمان: ۳۶ دقیقه
📥 در سایت فراد اندیش ببینید 👇👇👇👇
🌎 http://bit.ly/ProgrammingFPGA
#برنامه_ویدئویی۴۲
🎓 نحوه پروگرام کردن FPGA
🎥 برنامه ویدئویی احمد ثقفی
🕘 زمان: ۳۶ دقیقه
📥 در سایت فراد اندیش ببینید 👇👇👇👇
🌎 http://bit.ly/ProgrammingFPGA
⚡️ میکروبلیز چگونه میتواند به پیادهسازی مدار شما کمک کند؟ (قسمت چهارم)
🔷 در پست قبل، مزایای استفاده از میکروبلیز نسبت به دیگر میکروکنترلرها بیان شد. در این پست، به موضوع پیادهسازی میکروبلیز در FPGA میپردازم.
🔷 پیش از ورود به مبحث پیادهسازی، ابتدا ببینیم که مفهوم پلتفرم میکروبلیز چیست؟
❇️ پلتفرم میکروبلیز
🔷 میکروبلیز، فقط یک پردازنده یا یک هسته پردازشی نیست؛ همانطور که در شکل بالا مشاهده میکنید، میکروبلیز، علاوه بر هسته پردازشی، دارای ماجولها یا اصطلاحاً پریفرالهای مختلفی است.
✅ به مجموعه هسته پردازشی و پریفرالها، پلتفرم میکروبلیز میگویند.
🔹 برای مثال، در کنار هسته پردازشی میکروبلیز، حافظه RAM، پریفرالهایی برای RS232 یا LAN، بخش کلاک و ریست و ... را داریم.
🔷 برای استفاده از میکروبلیز باید برنامهای بنویسیم. این برنامه باید در یک حافظه RAM ذخیره شود.
🔷 برای پیادهسازی این حافظه RAM، از یک یا چند Block RAM درون FPGA استفاده میکنیم؛ زیرا قرار است میکروبلیز را درون FPGA پیادهسازی کنیم.
🔷 البته، این امکان وجود دارد که برنامهای که برای میکروبلیز نوشتهایم را درون یک حافظه RAM خارجی ذخیره کنیم.
🔹 مثلاً، میتوانیم از حافظه DDR2 یا DDR3 استفاده کنیم و آن را با میکروبلیز اینترفیس کنیم.
🔹 در صورتی که برنامه نوشته شده برای میکروبلیز، به فضای زیادی نیاز داشته باشد، از حافظه RAM خارجی استفاده میکنیم.
❇️ بخشهای اصلی میکروبلیز
🔷 میکروبلیز از دو بخش اصلی تشکیل شده است:
📌 پلتفرم سختافزاری
📌 نرمافزار
🔷 پلتفرم سختافزاری شامل پردازنده، حافظهها، IPها و ... میشود.
🔷 همچنین، برای اینکه یک میکروکنترلر برای ما کاری انجام دهد، باید برای آن برنامهای بنویسیم. این برنامه، بهکمک یک زبان برنامهنویسی نوشته میشود.
🔷 ما برای میکروبلیز، برنامهای بهزبان C یا ++C مینویسیم. این برنامه را در حافظه دستورات (instructions memory) و حافظه داده (data memory) ذخیره میکنیم.
🔷 اما ابزار پیادهسازی میکروبلیز چیست؟ و چه نرمافزارهایی در این کار به ما کمک میکنند؟
❇️ ابزار پیادهسازی میکروبلیز
🔷 تمام مراحل پیادهسازی سختافزار و نرمافزار میکروبلیز توسط ابزار EDK، از مجموعه نرمافزاری ISE انجام میشود.
🔷 عبارت EDK، مخفف Embedded Development Kit است.
✅ اگر اکنون نرمافزار ISE روی کامپیوتر شما نصب شده باشد، این ابزار را در اختیار دارید.
🔷 ابزار EDK از دو بخش اصلی تشکیل میشود:
📌 نرمافزار XPS که مخفف Xilinx Platform Studio است.
📌 نرمافزار SDK که مخفف Software Development Kit است.
🔷 نرمافزار XPS، برای طراحی و پیادهسازی پلتفرم سختافزاری میکروبلیز (ایجاد پریفرالها و باسهای مورد نیازتان) بهکار میرود.
🔷 پس از ساخت بخش سختافزاری، باید وارد نرمافزار SDK شوید؛ نرمافزار SDK، برای طراحی و پیادهسازی نرمافزار میکروبلیز استفاده میشود.
🔷 در این نرمافزار میتوانید به زبان C یا ++C برنامهنویسی کنید. سپس، آن برنامه را در حافظههای مخصوص میکروبلیز پراگرام میکنید.
✅ برای اطلاع از بخشها و پریفرالهای مختلف میکروبلیز و پیادهسازی گام به گام آن در FPGA، میتوانید مقاله زیر از سایت فراداندیش را مطالعه کنید:
🌎 https://bit.ly/MicroBlaze
🆔 @FPGA0
🔷 در پست قبل، مزایای استفاده از میکروبلیز نسبت به دیگر میکروکنترلرها بیان شد. در این پست، به موضوع پیادهسازی میکروبلیز در FPGA میپردازم.
🔷 پیش از ورود به مبحث پیادهسازی، ابتدا ببینیم که مفهوم پلتفرم میکروبلیز چیست؟
❇️ پلتفرم میکروبلیز
🔷 میکروبلیز، فقط یک پردازنده یا یک هسته پردازشی نیست؛ همانطور که در شکل بالا مشاهده میکنید، میکروبلیز، علاوه بر هسته پردازشی، دارای ماجولها یا اصطلاحاً پریفرالهای مختلفی است.
✅ به مجموعه هسته پردازشی و پریفرالها، پلتفرم میکروبلیز میگویند.
🔹 برای مثال، در کنار هسته پردازشی میکروبلیز، حافظه RAM، پریفرالهایی برای RS232 یا LAN، بخش کلاک و ریست و ... را داریم.
🔷 برای استفاده از میکروبلیز باید برنامهای بنویسیم. این برنامه باید در یک حافظه RAM ذخیره شود.
🔷 برای پیادهسازی این حافظه RAM، از یک یا چند Block RAM درون FPGA استفاده میکنیم؛ زیرا قرار است میکروبلیز را درون FPGA پیادهسازی کنیم.
🔷 البته، این امکان وجود دارد که برنامهای که برای میکروبلیز نوشتهایم را درون یک حافظه RAM خارجی ذخیره کنیم.
🔹 مثلاً، میتوانیم از حافظه DDR2 یا DDR3 استفاده کنیم و آن را با میکروبلیز اینترفیس کنیم.
🔹 در صورتی که برنامه نوشته شده برای میکروبلیز، به فضای زیادی نیاز داشته باشد، از حافظه RAM خارجی استفاده میکنیم.
❇️ بخشهای اصلی میکروبلیز
🔷 میکروبلیز از دو بخش اصلی تشکیل شده است:
📌 پلتفرم سختافزاری
📌 نرمافزار
🔷 پلتفرم سختافزاری شامل پردازنده، حافظهها، IPها و ... میشود.
🔷 همچنین، برای اینکه یک میکروکنترلر برای ما کاری انجام دهد، باید برای آن برنامهای بنویسیم. این برنامه، بهکمک یک زبان برنامهنویسی نوشته میشود.
🔷 ما برای میکروبلیز، برنامهای بهزبان C یا ++C مینویسیم. این برنامه را در حافظه دستورات (instructions memory) و حافظه داده (data memory) ذخیره میکنیم.
🔷 اما ابزار پیادهسازی میکروبلیز چیست؟ و چه نرمافزارهایی در این کار به ما کمک میکنند؟
❇️ ابزار پیادهسازی میکروبلیز
🔷 تمام مراحل پیادهسازی سختافزار و نرمافزار میکروبلیز توسط ابزار EDK، از مجموعه نرمافزاری ISE انجام میشود.
🔷 عبارت EDK، مخفف Embedded Development Kit است.
✅ اگر اکنون نرمافزار ISE روی کامپیوتر شما نصب شده باشد، این ابزار را در اختیار دارید.
🔷 ابزار EDK از دو بخش اصلی تشکیل میشود:
📌 نرمافزار XPS که مخفف Xilinx Platform Studio است.
📌 نرمافزار SDK که مخفف Software Development Kit است.
🔷 نرمافزار XPS، برای طراحی و پیادهسازی پلتفرم سختافزاری میکروبلیز (ایجاد پریفرالها و باسهای مورد نیازتان) بهکار میرود.
🔷 پس از ساخت بخش سختافزاری، باید وارد نرمافزار SDK شوید؛ نرمافزار SDK، برای طراحی و پیادهسازی نرمافزار میکروبلیز استفاده میشود.
🔷 در این نرمافزار میتوانید به زبان C یا ++C برنامهنویسی کنید. سپس، آن برنامه را در حافظههای مخصوص میکروبلیز پراگرام میکنید.
✅ برای اطلاع از بخشها و پریفرالهای مختلف میکروبلیز و پیادهسازی گام به گام آن در FPGA، میتوانید مقاله زیر از سایت فراداندیش را مطالعه کنید:
🌎 https://bit.ly/MicroBlaze
🆔 @FPGA0
📣 تخفیف ویژه به مناسبت روز مهندس
❇️ این تخفیفها به طور خودکار در سایت اعمال شدهاند و نیازی به وارد کردن کد نیست 👇
🌎 https://faradandish.com/courses/
🔺 فرصت استفاده از تخفیف روز مهندس فقط تا فردا شب است.
🆔 @FPGA0
❇️ این تخفیفها به طور خودکار در سایت اعمال شدهاند و نیازی به وارد کردن کد نیست 👇
🌎 https://faradandish.com/courses/
🔺 فرصت استفاده از تخفیف روز مهندس فقط تا فردا شب است.
🆔 @FPGA0
⚡️ مراحل ساخت یک سختافزار دیجیتال (قسمت اول)
🔷 در ساخت و ارائه یک سختافزار دیجیتال سه مرحله اساسی وجود دارد:
1️⃣ طراحی
2️⃣ عیبزدایی
3️⃣ درستیآزمایی
✅ برای انجام این سه مرحله، روالهای مشخصی وجود دارند که بهکمک نرمافزارها و سختافزارهای مربوط انجام میشود که در این مجموعه پست به آنها خواهم پرداخت.
❇️ طراحی سختافزار دیجیتال
🔷 طراحی یک سیستم پردازش سیگنال دیجیتال، با تعریف الگوریتمهای پردازشی توسط طراحان سطح سیستم آغاز میشود.
🔷 این الگوریتمها معمولاً توسط نرمافزارهای سطح بالا مثل نرمافزار MATLAB یا به زبان C مورد ارزیابی قرار میگیرند و در صورت کسب نتیجه مطلوب، در اختیار شما بهعنوان طراح بخش سختافزار دیجیتال قرار میگیرند.
✳️ مدل سطح سیستم
🔷 اولین مرحله برای پیادهسازی، ارزیابی الگوریتمها توسط پیادهساز به منظور تخمین مقدار منابع سختافزاری لازم برای پیادهسازی است.
🔷 باید تصمیم بگیرید که کدام بخش از پردازشها بهصورت سختافزاری، مثلاً توسط FPGA و کدام بخش بهصورت نرمافزاری، مثلاً توسط DSP انجام شود.
🔷 در پیادهسازیهای سختافزاری، معمولاً دقت نمایش اعداد و محاسبات محدود است.
🔷 اما یک مدل سطح سیستم که مثلاً توسط نرمافزار MATLAB طراحی شده است، دارای دقت نمایش اعداد بهصورت ممیز شناور (floating point) است.
✅ بنابراین، اولین مرحله در استفاده از مدل MATLAB، تبدیل آن به مدلی با دقت محدود (مدل ممیز ثابت یا fixed point) است.
🔷 برای انجام این تبدیل، باید نتیجه خروجی هر دو مدل را با هم مقایسه کنید و دقت نمایش (عرض بیتها) در مدل ممیز ثابت را طوری انتخاب کنید که نسبت به مدل ممیز شناور دارای خطای قابل قبولی باشند.
✳️ مدل سختافزاری سیستم
🔷 بعد از تولید مدل ممیز ثابت از بخشهای مختلف سیستم، پیادهسازی سختافزاری سیستم شروع میشود.
🔷 قبل از آن باید سیستم را به بخشهای کوچکتری تقسیم کنید. این کار باعث پیادهسازی و عیبزدایی آسانتر سیستم میشود.
🔷 برای پیادهسازی بخشهای مختلف سیستم ابتدا باید مدل سختافزاری آنها را توسط یکی از زبانهای توصیف سختافزاری (VHDL یا Verilog) ایجاد کنید.
🔷 معمولاً در طرحهای بزرگ که افراد زیادی در پیادهسازی آن مشارکت دارند، هر دو زبان استفاده میشود.
🔷 بعد از توصیف یک بخش سختافزاری، باید درستی آن بخش را با انجام شبیهسازی عملکرد (functional simulation) بررسی کنید.
🔷 برای مثال میتوانید از نرمافزار ISim از مجموعه ISE یا نرمافزار ModelSim محصول شرکت Mentor Graphics استفاده کنید.
🔷 در این مرحله، صرفاً عملکرد طرح از لحاظ الگوریتمی مورد بررسی قرار میگیرد.
🔷 در صورتی تایید عملکرد زیرسیستمها، میتوانید توصیف سختافزاری را سنتز کرد.
✳️ سنتز توصیف سختافزاری
🔷 منظور از سنتز، تعیین نحوه پیادهسازی سیستم بر روی یک تکنولوژی خاص، مثلاً یک مدل از FPGA است.
🔷 این مرحله توسط نرمافزارهای ویژهای که معمولاً توسط خود شرکت سازنده تکنولوژی هدف ارائه میشود انجام میگیرد. مثلاً، شرکت Xilinx، نرمافزارهای ISE و Vivado را ارائه داده است.
🔷 این نرمافزارها قادر به مدیریت تمامی مراحل پیادهسازی از ورود توصیف سختافزاری و شبیهسازی تا مرحله سنتز و پیادهسازی است.
🔷 بعد از سنتر طرح، میتوانید مجدداً آن را شبیهسازی کنید.
🔷 در این مرحله، محدودیتهای واقعی پیادهسازی مثل تاخیر انتشار سیگنال در بلوکهای سختافزاری نیز در شبیهسازی شما دخیل میشوند.
🔷 در نهایت، اگر تمام شبیهسازیها بیانگر صحت عملکرد سیستم بود، میتوانید مراحل پیادهسازی آن را توسط نرمافزار ISE انجام داده و طرح را به FPGA منتقل کنید.
ادامه دارد...
🆔 @FPGA0
🔷 در ساخت و ارائه یک سختافزار دیجیتال سه مرحله اساسی وجود دارد:
1️⃣ طراحی
2️⃣ عیبزدایی
3️⃣ درستیآزمایی
✅ برای انجام این سه مرحله، روالهای مشخصی وجود دارند که بهکمک نرمافزارها و سختافزارهای مربوط انجام میشود که در این مجموعه پست به آنها خواهم پرداخت.
❇️ طراحی سختافزار دیجیتال
🔷 طراحی یک سیستم پردازش سیگنال دیجیتال، با تعریف الگوریتمهای پردازشی توسط طراحان سطح سیستم آغاز میشود.
🔷 این الگوریتمها معمولاً توسط نرمافزارهای سطح بالا مثل نرمافزار MATLAB یا به زبان C مورد ارزیابی قرار میگیرند و در صورت کسب نتیجه مطلوب، در اختیار شما بهعنوان طراح بخش سختافزار دیجیتال قرار میگیرند.
✳️ مدل سطح سیستم
🔷 اولین مرحله برای پیادهسازی، ارزیابی الگوریتمها توسط پیادهساز به منظور تخمین مقدار منابع سختافزاری لازم برای پیادهسازی است.
🔷 باید تصمیم بگیرید که کدام بخش از پردازشها بهصورت سختافزاری، مثلاً توسط FPGA و کدام بخش بهصورت نرمافزاری، مثلاً توسط DSP انجام شود.
🔷 در پیادهسازیهای سختافزاری، معمولاً دقت نمایش اعداد و محاسبات محدود است.
🔷 اما یک مدل سطح سیستم که مثلاً توسط نرمافزار MATLAB طراحی شده است، دارای دقت نمایش اعداد بهصورت ممیز شناور (floating point) است.
✅ بنابراین، اولین مرحله در استفاده از مدل MATLAB، تبدیل آن به مدلی با دقت محدود (مدل ممیز ثابت یا fixed point) است.
🔷 برای انجام این تبدیل، باید نتیجه خروجی هر دو مدل را با هم مقایسه کنید و دقت نمایش (عرض بیتها) در مدل ممیز ثابت را طوری انتخاب کنید که نسبت به مدل ممیز شناور دارای خطای قابل قبولی باشند.
✳️ مدل سختافزاری سیستم
🔷 بعد از تولید مدل ممیز ثابت از بخشهای مختلف سیستم، پیادهسازی سختافزاری سیستم شروع میشود.
🔷 قبل از آن باید سیستم را به بخشهای کوچکتری تقسیم کنید. این کار باعث پیادهسازی و عیبزدایی آسانتر سیستم میشود.
🔷 برای پیادهسازی بخشهای مختلف سیستم ابتدا باید مدل سختافزاری آنها را توسط یکی از زبانهای توصیف سختافزاری (VHDL یا Verilog) ایجاد کنید.
🔷 معمولاً در طرحهای بزرگ که افراد زیادی در پیادهسازی آن مشارکت دارند، هر دو زبان استفاده میشود.
🔷 بعد از توصیف یک بخش سختافزاری، باید درستی آن بخش را با انجام شبیهسازی عملکرد (functional simulation) بررسی کنید.
🔷 برای مثال میتوانید از نرمافزار ISim از مجموعه ISE یا نرمافزار ModelSim محصول شرکت Mentor Graphics استفاده کنید.
🔷 در این مرحله، صرفاً عملکرد طرح از لحاظ الگوریتمی مورد بررسی قرار میگیرد.
🔷 در صورتی تایید عملکرد زیرسیستمها، میتوانید توصیف سختافزاری را سنتز کرد.
✳️ سنتز توصیف سختافزاری
🔷 منظور از سنتز، تعیین نحوه پیادهسازی سیستم بر روی یک تکنولوژی خاص، مثلاً یک مدل از FPGA است.
🔷 این مرحله توسط نرمافزارهای ویژهای که معمولاً توسط خود شرکت سازنده تکنولوژی هدف ارائه میشود انجام میگیرد. مثلاً، شرکت Xilinx، نرمافزارهای ISE و Vivado را ارائه داده است.
🔷 این نرمافزارها قادر به مدیریت تمامی مراحل پیادهسازی از ورود توصیف سختافزاری و شبیهسازی تا مرحله سنتز و پیادهسازی است.
🔷 بعد از سنتر طرح، میتوانید مجدداً آن را شبیهسازی کنید.
🔷 در این مرحله، محدودیتهای واقعی پیادهسازی مثل تاخیر انتشار سیگنال در بلوکهای سختافزاری نیز در شبیهسازی شما دخیل میشوند.
🔷 در نهایت، اگر تمام شبیهسازیها بیانگر صحت عملکرد سیستم بود، میتوانید مراحل پیادهسازی آن را توسط نرمافزار ISE انجام داده و طرح را به FPGA منتقل کنید.
ادامه دارد...
🆔 @FPGA0