HEXALINX
527 subscribers
147 photos
4 files
74 links
این آغاز ماجراجویی شماست...
آموزش رایگان برنامه نویسی FPGA و ZYNQ و ابزارهای طراحی XILINX

پرسش و پاسخ:
@ask_linx

آدرس سایت:
hexalinx.com

آدرس کانال آپارات:
aparat.com/hexalinx

آدرس اینستاگرام:
insatagram.com/hexalinx_go
Download Telegram
🔖 با توجه به نتایج نظر سنجی و علاقه شما عزیزان به مطالب پایه ای VHDL و FPGA از این هفته به بعد، به صورت مداوم آموزش های کوتاهی در قالب ویدیو و متن های کوتاه با کمله کلیدی #Basic ارائه می شود که امیدوارم به بهترین شکل پاسخگوی نیاز شما باشد.

🔖 علاوه بر این به پاس اعتماد شما، یک سرفصل کاملا جدید با عنوان پردازش سیگنال روی FPGA برای شما تدارک خواهیم دید و در قالب ویدیو و مقالات کاربردی خدمتتان ارائه خواهیم کرد. نکات آموزشی در رابطه با محاسبات ممیز ثابت، فیلترهای دیجیتال، IP Core های پرکاربرد، تکنیک های به اشتراک گذاری منابع و ... از جمله مواردی هستند که در این سلسله آموزش ها پوشش داده می شوند و در غالب کمله کلیدی #DSP بیان می گردند.

🔖 همچون گذشته در کنار دو این دو بخش جدید، نکات آموزشی پیشرفته، اخبار روز دنیا، موضوعات مربوط به سیستم های توکار و مفاهیم عمیق پیاده سازی همچنان به عنوان بخشی از علاقه مندی های شما به صورت روزانه منتشر خواهد.

این آغاز ماجراجویی شماست، با ما همراه باشید ...

@Hexalinx
#Essentials

🔖پاسخ سوال فوق بله است. تمامی منابع و عناصر اصلی درون FPGA با کدنویسی قابل استنتاج نیستند. از نقطه نظر نحوه استنتاج منابع روی تراشه های FPGA به سه دسته تقسیم می شوند.

1️⃣ دسته اول منابعی هستند که توسط تمامی ابزارهای سنتز قابل استنتاج هستند. مثل شیفیت رجیسترها #SRLs ، مالتی پلکسرهای عریض #F7 و #F8 ، زنجیره بیت نقلی #Carry_Chain ، بلوک های ضرب کننده #DSP_Blocks ، بافرهای سرتاسری کلاک #BUFG ، بافرهای ورودی خروجی ساده #IOBUF و بافرهای ورودی DDR یا #IDDR .

2️⃣ دسته دوم منابعی هستند که تنها توسط برخی از ابزارهای سنتز قابل فراخوانی هستند. مهمترین عناصر در این دسته،
بلوک های حافظه #Block_RAMs ، بافرهای سرتاسری خاص منظوره کلاک
همچون #BUFGCE هستن. علاوه بر این برخی از فانکشنالیتی های خاص در بلوک های ضرب کننده نیز ممکن است توسط ابزارهای سنتز قابل استنتاج باشد.

3️⃣ دسته سوم منابعی هستند که به هیچ وجه به صورت اتوماتیک توسط ابزارهای سنتز قابل استنتاج نیستند و تنها راه استفاده از آن ها استفاده از primitive های آماده داخل کتابخانه های شرکت سازنده و یا استفاده از IP Core ها است. از آن جمله می توان به اینترفیس های تفاضلی روی IO ها ، بافرهای خروجی DDR یا #ODDR ، بلوک های مدیریت کلاک #DCM و #PLL و بافرهای محلی کلاک همچون #BUFR و #BUFIO اشاره کرد.

❗️استفاده از primitive ها در برنامه نویسی HDL یک تکنیک بسیار مناسب برای فراخوانی منابع است و به شدت توسط سازندگانی تراشه های قابل برنامه ریزی توصیه شده است. در واقع primitive ها به صورت قطعه کدهای آماده و در قالب یک کامپوننت توسط طراح بین سایر کدهای HDL قرار داده می شوند و یک بخش خاص از تراشه را فراخوانی می کنند. به طور کلی به عمل فراخوانی و قرار دادن کامپوننت ها درون کدها instantiation گفته می شود.

@Hexalinx
#XADC
#Intermediate

سیگنال آنالوگ در FPGA

✳️در کنار منابع دیجیتالی مرسوم موجود در تراشه‌های FPGA شرکت Xilinx همچون بلوک‌های منطقی قابل پیکره بندی #CLB، بلوک‌های ضرب کننده #DSP_BLOCK و بلوک‌های حافظه #BLOCK_RAM، یک بلوک کاملا آنالوگ نیز درون این تراشه‌ها وجود دارد. این بلوک برای کاربردهایی که نیاز به پردازش ترکیبی سیگنال‌های آنالوگ و دیجیتال دارند بکار گرفته می‌شود. این بلوک آنالوگ در تراشه‌های نسل قبل همچون Vitex 5 و Virtex 6 تحت عنوان System Monitor و در تراشه‌های سری ۷ به بعد تحت عنوان #XADC شناخته می‌شود.

بلوک XADC متشکل از یک ADC دو کاناله ۱۲ بیتی با حداکثر نرخ نمونه برداری 1 مگا سمپل بر ثانیه (MSPS) به همراه تعدادی سنسور و مدارات کنترلی است. در واقع XADC به عنوان یک ورودی آنالوگ همه منظوره برای FPGA‌ در نظر گرفته می‌شود و کاربردهای فراوانی را می‌توان برای آن برشمرد.

@Hexalinx
#FPGA, #ARM, #DSP

✳️ چرا باید تا این حد زمان و هزینه صرف کنیم تا کار با FPGA ها را فرا بگیریم؟
✳️ واقعاً چرا باید به جای ARM و یا DSP کار با FPGA را یاد بگیریم؟

جواب بسیار کوتاه به این سوأل در علاقه و برنامه ریزی کاری شما نهفته است.

📌 اما بد نیست این را بدانید که ما در میانه راه یک انقلاب بزرگ به نام هوش مصنوعی در سال‌های آینده هستیم، راهی که در نهایت تمامی سرگرمی‌های امروز را به کارهای مهم همه روزه ما تبدیل خواهد کرد. گام نهادن در این راه بدون فراگیری دانش های FPGA ابتر خواهد بود.

مطالعه متن کامل مقاله »

@Hexalinx