#PYNQ
#Python
#Advanced
✅ پروژه PYNQ چیست؟
پروژه PYNQ یک پروژه منبع باز یا Open-Source است که برای تسهیل فرایند طراحی سیستم های تعبیه شده (embedded) روی تراشه های ZYNQ توسط Xilinx ارائه شده است. در این پروژه طراحان با بکاگیری زبان برنامه نویسی و کتابخانه های پایتون قادر خواهند بود به بهترین شکل از مزایای بخش برنامه پذیر و پروسسور ARM موجود در تراشه ZYNQ استفاده کنند و سیستم های خود را توسعه دهند، در واقع PYNQ پروژه ای است که برای توسعه دهندگان نرم افزار (و نه سخت افزار) که علاقه مند به بهره گیری از قابلیت های ZYNQ هستند توسعه داده شده است.
@Hexalinx
#Python
#Advanced
✅ پروژه PYNQ چیست؟
پروژه PYNQ یک پروژه منبع باز یا Open-Source است که برای تسهیل فرایند طراحی سیستم های تعبیه شده (embedded) روی تراشه های ZYNQ توسط Xilinx ارائه شده است. در این پروژه طراحان با بکاگیری زبان برنامه نویسی و کتابخانه های پایتون قادر خواهند بود به بهترین شکل از مزایای بخش برنامه پذیر و پروسسور ARM موجود در تراشه ZYNQ استفاده کنند و سیستم های خود را توسعه دهند، در واقع PYNQ پروژه ای است که برای توسعه دهندگان نرم افزار (و نه سخت افزار) که علاقه مند به بهره گیری از قابلیت های ZYNQ هستند توسعه داده شده است.
@Hexalinx
لطفا به ما بگویید علاقه مند به کدامیک از موضوعات زیر هستید، با توجه به متفاوت بدون سطوح مهارتی اعضای کانال، به ما کمک کنید تا مطالبی متناسب با نیازهای شما ارائه بدهیم.
Final Results
22%
آموزش مفاهیم و مقدمات برنامه نویسی HDL
6%
آموزش کار با ابزار ISE و معرفی ویژگی های آن
16%
آموزش کار با ابزار Vivado و معرفی ویژگی های آن
24%
آموزش نکات مرتبط با پردازش سیگنال در FPGA
2%
آموزش های مرتبط با تراشه های Zynq
12%
آموزش های مرتبط با HLS و ابزار Vivado_HLS
4%
آموزش کار با پتالینوکس، لینوکس و پایتون (PYNQ)
6%
معرفی ساختار تراشه های FPGA (سری 7 به بعد)
10%
آموزش کار با ابزار قدرتمند SDSoC برای طراحی روی Zynq
🌐 سوالات کاربران
✅ آیا برای FFT دو بعدی هم IP Core داریم؟
اگر نداریم چجوری باید پیاده سازی بشه، چون در FFT دو بعدی داده ها دو بار باید ترانهاده بشوند. نحوه ترانهاده کردن داده ها به چه صورته؟ در صورتی که داده های ما به صورت یک بعدی وارد FFT می شوند.
✳️ متاسفانه پاسخ به این سوال خیر است و برای FFT دوبعدی IP Core وجود نداره.
اما باید توجه داشت که ترانهاده کردن یک ماتریس در FPGA عملا هیچ عملیات اضافی نداره، در ماتریس ترانهاده فقط جای عناصر ماتریس با هم عوض میشه، چون در FPGA ماتریس ها همانند بردارها به صورت پشت سرهم ذخیره می شوند، عملا فقط با کنترل آدرس یک حافظه میشه یک ماتریس رو به صورت ساده یا به صورت ترانهاده از داخل یک حافظه بازخوانی کرد.
@ask_linx
@Hexalinx
✅ آیا برای FFT دو بعدی هم IP Core داریم؟
اگر نداریم چجوری باید پیاده سازی بشه، چون در FFT دو بعدی داده ها دو بار باید ترانهاده بشوند. نحوه ترانهاده کردن داده ها به چه صورته؟ در صورتی که داده های ما به صورت یک بعدی وارد FFT می شوند.
✳️ متاسفانه پاسخ به این سوال خیر است و برای FFT دوبعدی IP Core وجود نداره.
اما باید توجه داشت که ترانهاده کردن یک ماتریس در FPGA عملا هیچ عملیات اضافی نداره، در ماتریس ترانهاده فقط جای عناصر ماتریس با هم عوض میشه، چون در FPGA ماتریس ها همانند بردارها به صورت پشت سرهم ذخیره می شوند، عملا فقط با کنترل آدرس یک حافظه میشه یک ماتریس رو به صورت ساده یا به صورت ترانهاده از داخل یک حافظه بازخوانی کرد.
@ask_linx
@Hexalinx
📋ابتدایی ترین و اصلی ترین منابع برای طراحی روی تراشه های FPGA شرکت Xilinx بلوک های منطقی قابل برنامه ریزی (CLBs) هستند. هر CLB متشکل از دو اسلایس (Slice) است. این اسلایس ها همانطور که در شکل نشان داده شده است، به ماتریسی از سوییچ ها متصل هستند و از آن برای برقراری ارتباط با سایر اسلایس ها و یا سایر منایع موجود در تراشه استفاده می کنند.
📋 اسلایس ها از رجیستر ها و LUT ها ساخته شده اند. جداول درستی یا LUT ها دقیقا همان عناصری هستند که برای ساخت مدارات ترکیبی مورد استفاده قرار می گیرند. هر کدام دارای رجیستر اختصاصی هستند و از ترکیب این LUT ها و رجیسترهای متناطرشون به همراه یکسری عناصر دیگر اسلایس ها شکل می گیرند.
📋 در کنار LUT ها و رجیستر ها، زنجیره بیت نقلی (Carry Chain) که در محاسبات ریاضی بسیار پرکاربرد هست و باعث افزایش چشمگیر سرعت انجام محاسبات می شود نیز در درون اسلایس ها وجود دارد. (در شکل با عبارت CIN و COUT نشان داده شده است.
@Hexalinx
📋 اسلایس ها از رجیستر ها و LUT ها ساخته شده اند. جداول درستی یا LUT ها دقیقا همان عناصری هستند که برای ساخت مدارات ترکیبی مورد استفاده قرار می گیرند. هر کدام دارای رجیستر اختصاصی هستند و از ترکیب این LUT ها و رجیسترهای متناطرشون به همراه یکسری عناصر دیگر اسلایس ها شکل می گیرند.
📋 در کنار LUT ها و رجیستر ها، زنجیره بیت نقلی (Carry Chain) که در محاسبات ریاضی بسیار پرکاربرد هست و باعث افزایش چشمگیر سرعت انجام محاسبات می شود نیز در درون اسلایس ها وجود دارد. (در شکل با عبارت CIN و COUT نشان داده شده است.
@Hexalinx
#Basic
#CLB, #SLICE, #PAR
✅ معرفی Slice و CLB بخش دوم
📋 در شکل بالا نحوه اتصال دو CLB به یک سوییچ ماتریس نشان داده شده است. اسلایس ها از طریق این سوییچ ماتریس ها به شبکه سرتاسری مسیرها در FPGA دسترسی پیدا می کنند. در این مسیرهای سرتاسری، مسیرهای مجزا برای داده و کلاک در نظر گرفته شده که در شکل نیز با نام Clk و Data نشان داده شده اند. در حالت کلی کاربر روی نحوه استفاده از سوییچ ها و مسیریابی بین عناصر موجود در تراشه دخالت نمی کند و این کار به صورت اتوماتیک توسط ابزار و در مرحله post place & route انجام می شود.
.
@Hexalinx
#CLB, #SLICE, #PAR
✅ معرفی Slice و CLB بخش دوم
📋 در شکل بالا نحوه اتصال دو CLB به یک سوییچ ماتریس نشان داده شده است. اسلایس ها از طریق این سوییچ ماتریس ها به شبکه سرتاسری مسیرها در FPGA دسترسی پیدا می کنند. در این مسیرهای سرتاسری، مسیرهای مجزا برای داده و کلاک در نظر گرفته شده که در شکل نیز با نام Clk و Data نشان داده شده اند. در حالت کلی کاربر روی نحوه استفاده از سوییچ ها و مسیریابی بین عناصر موجود در تراشه دخالت نمی کند و این کار به صورت اتوماتیک توسط ابزار و در مرحله post place & route انجام می شود.
.
@Hexalinx
#PYNQ
#ZYNQ
#Advanced
✅ معرفی بورد PYNQ-Z1 برای پروژه PYNQ
بورد PYNQ-Z1 برای اجرای پروژه منبع باز PYNQ یک روی تراشه های ZYNQ توسط شرکت Digilent طراحی و ارائه شده است. مهمترین امکانات این بورد به شرح زیر است.
❗️تراشه XC7Z020-1CLG400C
❗️حافظه 16 بیتی DDR3 با ظرفیت 512MB
❗️فلش QSPI با ظرفیت 16MB
❗️تغذیه مستقل از USB یا آداپتور کمکی
❗️پشتیبانی از Micro SD
❗️پشتیبانی از USB Host
❗️پشتیابنی از USB-UART
❗️پشتیبانی از USB-JTAG
❗️پشتیبانی از Ethernet PHY
❗️میکروفن
❗️پورت HDMI
❗️کلید فشاری، سوییچ و LED
❗️کانکتور Arduino
🔖 با وجود اینکه بورد PYNQ-Z1 به طور اختصاصی برای پروژه PYNQ به کار گرفته می شود، اما این بورد یک نمونه کاملا ارزان قیمت و آکادمیک است و به تراشه Zynq مجهز شده است و به راحتی می تواند برای کلیه آموزش های پایه ای و البته حرفه ای مورد استفاده قرار بگیرد.
@Hexalinx
#ZYNQ
#Advanced
✅ معرفی بورد PYNQ-Z1 برای پروژه PYNQ
بورد PYNQ-Z1 برای اجرای پروژه منبع باز PYNQ یک روی تراشه های ZYNQ توسط شرکت Digilent طراحی و ارائه شده است. مهمترین امکانات این بورد به شرح زیر است.
❗️تراشه XC7Z020-1CLG400C
❗️حافظه 16 بیتی DDR3 با ظرفیت 512MB
❗️فلش QSPI با ظرفیت 16MB
❗️تغذیه مستقل از USB یا آداپتور کمکی
❗️پشتیبانی از Micro SD
❗️پشتیبانی از USB Host
❗️پشتیابنی از USB-UART
❗️پشتیبانی از USB-JTAG
❗️پشتیبانی از Ethernet PHY
❗️میکروفن
❗️پورت HDMI
❗️کلید فشاری، سوییچ و LED
❗️کانکتور Arduino
🔖 با وجود اینکه بورد PYNQ-Z1 به طور اختصاصی برای پروژه PYNQ به کار گرفته می شود، اما این بورد یک نمونه کاملا ارزان قیمت و آکادمیک است و به تراشه Zynq مجهز شده است و به راحتی می تواند برای کلیه آموزش های پایه ای و البته حرفه ای مورد استفاده قرار بگیرد.
@Hexalinx
🔖 با توجه به نتایج نظر سنجی و علاقه شما عزیزان به مطالب پایه ای VHDL و FPGA از این هفته به بعد، به صورت مداوم آموزش های کوتاهی در قالب ویدیو و متن های کوتاه با کمله کلیدی #Basic ارائه می شود که امیدوارم به بهترین شکل پاسخگوی نیاز شما باشد.
🔖 علاوه بر این به پاس اعتماد شما، یک سرفصل کاملا جدید با عنوان پردازش سیگنال روی FPGA برای شما تدارک خواهیم دید و در قالب ویدیو و مقالات کاربردی خدمتتان ارائه خواهیم کرد. نکات آموزشی در رابطه با محاسبات ممیز ثابت، فیلترهای دیجیتال، IP Core های پرکاربرد، تکنیک های به اشتراک گذاری منابع و ... از جمله مواردی هستند که در این سلسله آموزش ها پوشش داده می شوند و در غالب کمله کلیدی #DSP بیان می گردند.
🔖 همچون گذشته در کنار دو این دو بخش جدید، نکات آموزشی پیشرفته، اخبار روز دنیا، موضوعات مربوط به سیستم های توکار و مفاهیم عمیق پیاده سازی همچنان به عنوان بخشی از علاقه مندی های شما به صورت روزانه منتشر خواهد.
این آغاز ماجراجویی شماست، با ما همراه باشید ...
@Hexalinx
🔖 علاوه بر این به پاس اعتماد شما، یک سرفصل کاملا جدید با عنوان پردازش سیگنال روی FPGA برای شما تدارک خواهیم دید و در قالب ویدیو و مقالات کاربردی خدمتتان ارائه خواهیم کرد. نکات آموزشی در رابطه با محاسبات ممیز ثابت، فیلترهای دیجیتال، IP Core های پرکاربرد، تکنیک های به اشتراک گذاری منابع و ... از جمله مواردی هستند که در این سلسله آموزش ها پوشش داده می شوند و در غالب کمله کلیدی #DSP بیان می گردند.
🔖 همچون گذشته در کنار دو این دو بخش جدید، نکات آموزشی پیشرفته، اخبار روز دنیا، موضوعات مربوط به سیستم های توکار و مفاهیم عمیق پیاده سازی همچنان به عنوان بخشی از علاقه مندی های شما به صورت روزانه منتشر خواهد.
این آغاز ماجراجویی شماست، با ما همراه باشید ...
@Hexalinx
#Basic
#SLICE, #SLICER, #SLICEM
✅ انواع اسلایس در FPGA های سری 7
🔖 کلیه منابع موجود درون اسلایس ها برای محاسبات منطقی، محاسبات ریاضی و ذخیره سازی به عنوان ROM قابل استفاده هستند. در معماری تراشه های سری 7 دو نوع Slice و دو نوع CLB وجود دارد.
1️⃣ اسلایس منطقی و محاسباتی (SLICER)
این اسلایس ها با بکارگیری منابع درونی خود به عنوان منابع منطقی، محاسباتی و ROM مورد استفاده قرار می گیرند.
2️⃣ اسلایس کامل (SLICEM)
این اسلایس ها علاوه بر انجام محاسبات منطقی، ریاضی و ROM از دو عملکرد اضافی نیز پشتیبانی می کنند و می توانند به عنوان حافظه (RAM) و یا شیفت رجیستر (Memory/SRL) مورد استفاده قرار بگیرند.
🔖 انتخاب بین این اسلایس ها توسط ابزار سنتز و به صورت اتوماتیک صورت می گیرد، اما با توجه به محدودیت تعداد اسلایس های کامل، طراحی درست می تواند منجربه به استفاده بهینه از آنها شود.
@Hexalinx
#SLICE, #SLICER, #SLICEM
✅ انواع اسلایس در FPGA های سری 7
🔖 کلیه منابع موجود درون اسلایس ها برای محاسبات منطقی، محاسبات ریاضی و ذخیره سازی به عنوان ROM قابل استفاده هستند. در معماری تراشه های سری 7 دو نوع Slice و دو نوع CLB وجود دارد.
1️⃣ اسلایس منطقی و محاسباتی (SLICER)
این اسلایس ها با بکارگیری منابع درونی خود به عنوان منابع منطقی، محاسباتی و ROM مورد استفاده قرار می گیرند.
2️⃣ اسلایس کامل (SLICEM)
این اسلایس ها علاوه بر انجام محاسبات منطقی، ریاضی و ROM از دو عملکرد اضافی نیز پشتیبانی می کنند و می توانند به عنوان حافظه (RAM) و یا شیفت رجیستر (Memory/SRL) مورد استفاده قرار بگیرند.
🔖 انتخاب بین این اسلایس ها توسط ابزار سنتز و به صورت اتوماتیک صورت می گیرد، اما با توجه به محدودیت تعداد اسلایس های کامل، طراحی درست می تواند منجربه به استفاده بهینه از آنها شود.
@Hexalinx
#FLY_BY
#DDR3
#Intermediate
✅ تفاوت توپولوژی Fly_by و T در اتصال حافظه های DDR3/4.
✳️ در اتصال حافظه های DDR3/4 به پردازنده و FPGAها، مسیرهای کلاک، آدرس و کنترل میتوانند به دو صورت Fly_by یا T متصل شوند.
افزایش فرکانس کاری، کاهش مقدار و طول stub های مسیر و درنتیجه بهبود SI و زمانبندی سیگنالهای حافظه، از مزایای توپولوژی Fly_by است. بعلاوه این توپولوژی به علت انحراف بسیار اندک زمانبندی بین سیگنالهای گروه آدرس و گروه داده باعث کاهش نویز سوئیچینگ همزمان (SSN) میشود.
توپولوژی T در هنگام مسیریابی و طراحی PCB بسیار پر چالش است اما با این حال این توپولوژی نیز کاربردهای خودش را دارد.
طراحی و مسیریابی Fly_by سادهتر از T است. اما این توپولوژی برای فعالیتهای با ظرفیت بالا و قطعاتی مانند LPDDR3 DDP(Double die package) یا QDP خوب کار نمیکند. هرچند در قطعات SDP توپولوژی Fly_by راه کم دردسرتری است.
#Hexalinx
#DDR3
#Intermediate
✅ تفاوت توپولوژی Fly_by و T در اتصال حافظه های DDR3/4.
✳️ در اتصال حافظه های DDR3/4 به پردازنده و FPGAها، مسیرهای کلاک، آدرس و کنترل میتوانند به دو صورت Fly_by یا T متصل شوند.
افزایش فرکانس کاری، کاهش مقدار و طول stub های مسیر و درنتیجه بهبود SI و زمانبندی سیگنالهای حافظه، از مزایای توپولوژی Fly_by است. بعلاوه این توپولوژی به علت انحراف بسیار اندک زمانبندی بین سیگنالهای گروه آدرس و گروه داده باعث کاهش نویز سوئیچینگ همزمان (SSN) میشود.
توپولوژی T در هنگام مسیریابی و طراحی PCB بسیار پر چالش است اما با این حال این توپولوژی نیز کاربردهای خودش را دارد.
طراحی و مسیریابی Fly_by سادهتر از T است. اما این توپولوژی برای فعالیتهای با ظرفیت بالا و قطعاتی مانند LPDDR3 DDP(Double die package) یا QDP خوب کار نمیکند. هرچند در قطعات SDP توپولوژی Fly_by راه کم دردسرتری است.
#Hexalinx
#Adaptive_Compute_Acceleration_Platform
#ACAP
#Advanced
✅ معرفی ACAP
شرکت Xilinx پلتفرم شتاب دهی محاسباتی تطبیقی خود یا همان ACAP را با هدف کمک به مراکز داده برای پاسخ به سونامی تقاضای محاسبات مورد نیاز هوش مصنوعی توسعه داده است. در واقع ACAP یک معماری محاسباتی چند هسته ای قابل برنامه ریزی و ناهمگن است که می تواند در طول عملیات به صورت پویا ظرف چند میلی ثانیه ویرایش شود تا پاسخگوی تغییرات بوجود آمده در حجم محاسبات باشد. شرکت Xilinx ادعا می کند که تراشه های 7 نانومتری جدیدش بسیار قدرتمندتر از ترکیب CPU و GPU هستند و راندمان کاری بالاتری به ازای هر وات توان مصرفی ارائه می دهند.
@Hexalinx
#ACAP
#Advanced
✅ معرفی ACAP
شرکت Xilinx پلتفرم شتاب دهی محاسباتی تطبیقی خود یا همان ACAP را با هدف کمک به مراکز داده برای پاسخ به سونامی تقاضای محاسبات مورد نیاز هوش مصنوعی توسعه داده است. در واقع ACAP یک معماری محاسباتی چند هسته ای قابل برنامه ریزی و ناهمگن است که می تواند در طول عملیات به صورت پویا ظرف چند میلی ثانیه ویرایش شود تا پاسخگوی تغییرات بوجود آمده در حجم محاسبات باشد. شرکت Xilinx ادعا می کند که تراشه های 7 نانومتری جدیدش بسیار قدرتمندتر از ترکیب CPU و GPU هستند و راندمان کاری بالاتری به ازای هر وات توان مصرفی ارائه می دهند.
@Hexalinx
#ZYNQ
✅ استفاده از تراشه های Zynq 7000 و Zynq ultrascale plus به عنوان کنترلر اصلی در ماشین های استخراج بیت کوین شرکت Bitman.
بر اساس ادعای شرکت سازنده با استفاده از تراشه zynq با توان مصرفی کمتری می توان به حداکثر راندمان دست یافت. علاوه بر این BOM و فضای مصرفی روی بورد نیز کاهش پیدا می کند.
البته توجه داشت باشید که خود تراشه zynq برای استخراج مورد استفاده قرار نمی گیره و این کار غالبا با تراشه های ASIC انجام می شه.
https://www.aparat.com/v/QMKG1
@Hexalinx
✅ استفاده از تراشه های Zynq 7000 و Zynq ultrascale plus به عنوان کنترلر اصلی در ماشین های استخراج بیت کوین شرکت Bitman.
بر اساس ادعای شرکت سازنده با استفاده از تراشه zynq با توان مصرفی کمتری می توان به حداکثر راندمان دست یافت. علاوه بر این BOM و فضای مصرفی روی بورد نیز کاهش پیدا می کند.
البته توجه داشت باشید که خود تراشه zynq برای استخراج مورد استفاده قرار نمی گیره و این کار غالبا با تراشه های ASIC انجام می شه.
https://www.aparat.com/v/QMKG1
@Hexalinx
آپارات - سرویس اشتراک ویدیو
بکارگیری تراشه های zynq در ماینر ها برای تولید بیت کوین
در این ویدیو استفاده از تراشه های Zynq 7000 و Zynq ultrascale plus به عنوان کنترلر اصلی در ماشین های استخراج بیت کوین شرکت Bitman، نشان داده شده است.
بر اساس ادعای شرکت سازنده با استفاده از تراشه Zynq بالاترین راندمان ممکن در ازای مصرف توان به مراتب کمتری…
بر اساس ادعای شرکت سازنده با استفاده از تراشه Zynq بالاترین راندمان ممکن در ازای مصرف توان به مراتب کمتری…
#Essentials
✅ آیا تا به حال به اهمیت رعایت مساله زمانبندی در طراحی های FPGA فکر کردید؟ آیا با مفاهیم ساده و اولیه سنجش کارایی یک پیاده سازی آشنایی دارید؟ تا به حال به این فکر کردید که چرا برخی از پیاده سازی ها با وجود اینکه نتایج شبیه سازی آن ها کاملا درست است، اما نتایج سخت افزاری کاملا اشتباه و نامعتبر دارند؟
به طور کلی انجام مجاسبات ریاضی و پردازش سیگنال در FPGA نیازمند رعایت اصول پیاده سازی خاص در این مدارهاست، سوال اینجاست که اگر این اصول رعایت نشود، چه مشکلی پیش می آید؟
✅ قبل از پاسخ به این سوال اجازه بدهید در پست زیر یکسری مفاهیم مقدماتی را به زبان ساده توصیف کنیم. هر طراح FPGA باید با مفاهیمی همچون #Race_Condition و #Glitch آشنایی داشته باشد تا بتواند دلیل رعایت یکسری از اصول را در برنامه نویسی متوجه شود، و برای آن ها راه حل مناسب پیدا کند. این آغاز ماجراجویی شماست، با ما همراه باشید ...
@Hexalinx
✅ آیا تا به حال به اهمیت رعایت مساله زمانبندی در طراحی های FPGA فکر کردید؟ آیا با مفاهیم ساده و اولیه سنجش کارایی یک پیاده سازی آشنایی دارید؟ تا به حال به این فکر کردید که چرا برخی از پیاده سازی ها با وجود اینکه نتایج شبیه سازی آن ها کاملا درست است، اما نتایج سخت افزاری کاملا اشتباه و نامعتبر دارند؟
به طور کلی انجام مجاسبات ریاضی و پردازش سیگنال در FPGA نیازمند رعایت اصول پیاده سازی خاص در این مدارهاست، سوال اینجاست که اگر این اصول رعایت نشود، چه مشکلی پیش می آید؟
✅ قبل از پاسخ به این سوال اجازه بدهید در پست زیر یکسری مفاهیم مقدماتی را به زبان ساده توصیف کنیم. هر طراح FPGA باید با مفاهیمی همچون #Race_Condition و #Glitch آشنایی داشته باشد تا بتواند دلیل رعایت یکسری از اصول را در برنامه نویسی متوجه شود، و برای آن ها راه حل مناسب پیدا کند. این آغاز ماجراجویی شماست، با ما همراه باشید ...
@Hexalinx
#Race_Condition
#Metastabilty
#Glitch
✳️ رخداد #Race_Condition نتیجه و حاصل یک طراحی نامناسب برای یک لچ یا فلیپ فلاپ در FPGA است. در واقع نشان دهنده وضعیتی است که در آن داده و کلاک ورودی به یک فلیپ فلاپ در یک زمان تغییر می کنند و نتیجه خروجی بستگی به این دارد که کدام یک از این دو در اصطلاح برنده شود.
✳️ در موارد نادر، ممکن است در زمان تغییر وضعیت کلاک، داده دقیقا برابر 0 و یا 1 باشد ، ولی در اکثر موارد داده مقداری بین 0 و یا 1 دارد، یعنی در بازه زمانی گذر از حالت low به حالت high قرار دارد. در این چنین شرایطی خروجی برای یک لحظه بین 0 و 1 باقی می ماند، (برای مثال در یک سیستم با ولتاژ 5V ، خروجی ممکن است برای مدت زمان خیلی کوتاهی مثلا چند نانو ثانیه حدود 2.5V باشد. هنگامی که این اتفاق می افتد در اطلاح گفته می شود خروجی ناپایدار یا #Metastable است. ناپایدار بودن باعث ایجاد اثرات جدی و منفی بر روی عملکرد سیستم می شود از همه بدتر اینکه، تقریبا تکرار پذیری این حالت ناپایدار تقریبا غیرممکن است و بنابراین پیدا کردن منشا خطا و برطرف کردن آن بسیار سخت است.
✳️ مسئله ناپداری در خروجی فقط مختص به فلیپ فلاپ ها نیست و ممکنه به دلیل تاخیر وضعیت نامتناسب در ورودی های گیت های منطقی نیز وجود داشته باشد و باعث ایجاد مشکلات ناخواسته بشود، این رخداد نیز در اصطلاح #Glitch نامیده می شود.
✳️ برای جلوگیری از بروز چنین مشکلاتی در طراحی، طراح باید با در نظر گرفتن بدترین شرایط ممکن، آنالیز زمانی کاملا دقیقی روی مداری که طرحی کرده است، انجام دهد. این نوع آنالیزها عموما با بکارگیری تاخیرهای انتشار، تاخیرهای مسیر بین عناصر موجود در FPGA، محاسبه زمان بندی high و low شدن سیگنال و یکسری پارامترهای دیگر انجام می شود. این کار عموما زمان بر است، اما شرکت های سازنده تراشه های قابل برنامه ریزی ابزارهای مناسبی را برای انجام این تحلیل ها ارائه داده اند.
@Hexalinx
#Metastabilty
#Glitch
✳️ رخداد #Race_Condition نتیجه و حاصل یک طراحی نامناسب برای یک لچ یا فلیپ فلاپ در FPGA است. در واقع نشان دهنده وضعیتی است که در آن داده و کلاک ورودی به یک فلیپ فلاپ در یک زمان تغییر می کنند و نتیجه خروجی بستگی به این دارد که کدام یک از این دو در اصطلاح برنده شود.
✳️ در موارد نادر، ممکن است در زمان تغییر وضعیت کلاک، داده دقیقا برابر 0 و یا 1 باشد ، ولی در اکثر موارد داده مقداری بین 0 و یا 1 دارد، یعنی در بازه زمانی گذر از حالت low به حالت high قرار دارد. در این چنین شرایطی خروجی برای یک لحظه بین 0 و 1 باقی می ماند، (برای مثال در یک سیستم با ولتاژ 5V ، خروجی ممکن است برای مدت زمان خیلی کوتاهی مثلا چند نانو ثانیه حدود 2.5V باشد. هنگامی که این اتفاق می افتد در اطلاح گفته می شود خروجی ناپایدار یا #Metastable است. ناپایدار بودن باعث ایجاد اثرات جدی و منفی بر روی عملکرد سیستم می شود از همه بدتر اینکه، تقریبا تکرار پذیری این حالت ناپایدار تقریبا غیرممکن است و بنابراین پیدا کردن منشا خطا و برطرف کردن آن بسیار سخت است.
✳️ مسئله ناپداری در خروجی فقط مختص به فلیپ فلاپ ها نیست و ممکنه به دلیل تاخیر وضعیت نامتناسب در ورودی های گیت های منطقی نیز وجود داشته باشد و باعث ایجاد مشکلات ناخواسته بشود، این رخداد نیز در اصطلاح #Glitch نامیده می شود.
✳️ برای جلوگیری از بروز چنین مشکلاتی در طراحی، طراح باید با در نظر گرفتن بدترین شرایط ممکن، آنالیز زمانی کاملا دقیقی روی مداری که طرحی کرده است، انجام دهد. این نوع آنالیزها عموما با بکارگیری تاخیرهای انتشار، تاخیرهای مسیر بین عناصر موجود در FPGA، محاسبه زمان بندی high و low شدن سیگنال و یکسری پارامترهای دیگر انجام می شود. این کار عموما زمان بر است، اما شرکت های سازنده تراشه های قابل برنامه ریزی ابزارهای مناسبی را برای انجام این تحلیل ها ارائه داده اند.
@Hexalinx
#ACAP
#Versal
#Advanced
✅ پلت فرم Versal چیست؟
عنوان Versal ACAP نامی است که Xilinx برای اولین پلت فرم شتاب دهنده محاسبه تطبیقی خود انتخاب کرده است. واژه Versal ترکیبی از واژه Universal و Versatility است. این تراشه یا به تبعیت از Xilinx پلت فرم محاسباتی شامل موتورهای پردازش اسکالر، موتورهای سخت افزاری تطبیقی و موتورهای هوشمند با فناوری های پیشرفته حافظه و ارتباطات برای ارائه شتاب ناهمگن قدرتمند برای هر نوع کاربردی می باشند. اما مهمتر از همه، سخت افزار و نرم افزار Versal ACAP می تواند توسط برنامه نویسان نرم افزار، دانشمندان داده پرداز و توسعه دهندگان سخت افزار به طور یکپارچه برنامه ریزی شود. این بهینه سازی عملکردی توسط مجموعه ابزارها، نرم افزارها، کتابخانه ها، میان افزارها، IP ها و چارچوب های استانداری که امکان طراحی صنعتی را فراهم می کنند صورت می پذیرد.
@Hexalinx
#Versal
#Advanced
✅ پلت فرم Versal چیست؟
عنوان Versal ACAP نامی است که Xilinx برای اولین پلت فرم شتاب دهنده محاسبه تطبیقی خود انتخاب کرده است. واژه Versal ترکیبی از واژه Universal و Versatility است. این تراشه یا به تبعیت از Xilinx پلت فرم محاسباتی شامل موتورهای پردازش اسکالر، موتورهای سخت افزاری تطبیقی و موتورهای هوشمند با فناوری های پیشرفته حافظه و ارتباطات برای ارائه شتاب ناهمگن قدرتمند برای هر نوع کاربردی می باشند. اما مهمتر از همه، سخت افزار و نرم افزار Versal ACAP می تواند توسط برنامه نویسان نرم افزار، دانشمندان داده پرداز و توسعه دهندگان سخت افزار به طور یکپارچه برنامه ریزی شود. این بهینه سازی عملکردی توسط مجموعه ابزارها، نرم افزارها، کتابخانه ها، میان افزارها، IP ها و چارچوب های استانداری که امکان طراحی صنعتی را فراهم می کنند صورت می پذیرد.
@Hexalinx
#MICROBLAZE
#SOFT_PROCESSOR
#Essentials
✅ میکرو بلیز، یک میکرو پروسسور نرم افزاری یا در اصطلاح soft micro processor است که توسط Xilinx در سال 2002 معرفی شد. این کنترلر یا پروسسور داخلی داری معماری 32 بیتی ریسک است و تقریبا در تمام FPGA های شرکت Xilinx قابل فراخوانی است. این پروسسور یک واحد سخت افزاری مجزا روی تراشه نیست و با استفاده از منابع داخلی تراشه های Xilinx یعنی LUT ها و حافظه ها ساخته می شود و فراخوانی آن باعث می شود بخشی از فضای منطقی روی تراشه مصرف شود، این دقیقا مفهوم #soft_processor است.
✅ در واقع هدف Xilinx از معرفی میکروبلیز قرار دادن یک کنترلر در کنار تراشه های FPGA با صرف کمترین هزینه بوده است و با این کار انعطاف پذیری بالایی را برای طراحان فراهم آورده است.
✅ میکروبلیز کاملا قابل سفارشی سازی است و می توان آن را متناسب با هر نیازی پیکره بندی کرد، محدودیتی در رابطه با تعداد میکروبلیزهای قابل فراخوانی در تراشه وجود ندارد و کاربر می تواند به راحتی چندین پروسسور را با ویژگی های مختلف در کد خود استفاده کند و در کنار سایر مدارات درون FPGA از آنها به بهترین شکل استفاده کند.
@Hexalinx
#SOFT_PROCESSOR
#Essentials
✅ میکرو بلیز، یک میکرو پروسسور نرم افزاری یا در اصطلاح soft micro processor است که توسط Xilinx در سال 2002 معرفی شد. این کنترلر یا پروسسور داخلی داری معماری 32 بیتی ریسک است و تقریبا در تمام FPGA های شرکت Xilinx قابل فراخوانی است. این پروسسور یک واحد سخت افزاری مجزا روی تراشه نیست و با استفاده از منابع داخلی تراشه های Xilinx یعنی LUT ها و حافظه ها ساخته می شود و فراخوانی آن باعث می شود بخشی از فضای منطقی روی تراشه مصرف شود، این دقیقا مفهوم #soft_processor است.
✅ در واقع هدف Xilinx از معرفی میکروبلیز قرار دادن یک کنترلر در کنار تراشه های FPGA با صرف کمترین هزینه بوده است و با این کار انعطاف پذیری بالایی را برای طراحان فراهم آورده است.
✅ میکروبلیز کاملا قابل سفارشی سازی است و می توان آن را متناسب با هر نیازی پیکره بندی کرد، محدودیتی در رابطه با تعداد میکروبلیزهای قابل فراخوانی در تراشه وجود ندارد و کاربر می تواند به راحتی چندین پروسسور را با ویژگی های مختلف در کد خود استفاده کند و در کنار سایر مدارات درون FPGA از آنها به بهترین شکل استفاده کند.
@Hexalinx
#PYNQ
#Python
#Essentials
✅ چگونه یک طراح نرم افزار کارش را با FPGA ها شروع کند؟
در نگاه اول به نظر می رسد، شما باید در یک زمان، تمام مفاهیم جدید، سخت افزار جدید و محیط توسعه جدید را مدیریت کنید. در حالت کلی تمامی مدارک، مستندات و مثال های آموزشی در این حوزه توسط مهندسین الکترونیک برای مهندسان الکترونیک ایجاد شده اند و این به مهندسان نرم افزار کمک نمی کند. این دقیقا نکته ایست که توجه شرکت Digilent را به خودش جلب کرد. بورد آموزشیPYNQ-Z1 برای حل این مشکل به افراد برنامه نویس اجازه می دهد به آرامی در انتهای کم عمق استخر شنا کنند، و کم کم به سمت مسائل پیچیده تر بروند.
اجرای کدها و کار با بورد در هر محیطی امکان پذیر است اما پیشنهاد خود سازندگان استفاده از Ubuntu است. به این ترتیب کار شروع می شود و شما به عنوان یک مهندس نرم افزار با اجرای کدهای پایتون یکسری فیدبک مثبت دریافت می کننید. کم کم همان طور که شما کد پایتون را اجرا می کنید، متوجه خواهید شد که تراشه Xilinx ZYNQ یک تراشه کاملا سازمان یافته است و به مرور نحوه اجرای کد روی آن را درک می کنید. البته اشتباه نکنید، شما در نهایت باید دست به کار شوید و به سطوح پایین تر طراحی بروید و مهارت کافی در بکاگیری مجموعه ابزارهای ارائه شده برای توسعه FPGA را بدست بیاورید. اما شما تنها پس از رسیدن به برخی از موفقیت ها و درک مفاهیم، شروع خواهید کرد. پس وقت را تلف نکنید و شروع کنید.
@Hexalinx
#Python
#Essentials
✅ چگونه یک طراح نرم افزار کارش را با FPGA ها شروع کند؟
در نگاه اول به نظر می رسد، شما باید در یک زمان، تمام مفاهیم جدید، سخت افزار جدید و محیط توسعه جدید را مدیریت کنید. در حالت کلی تمامی مدارک، مستندات و مثال های آموزشی در این حوزه توسط مهندسین الکترونیک برای مهندسان الکترونیک ایجاد شده اند و این به مهندسان نرم افزار کمک نمی کند. این دقیقا نکته ایست که توجه شرکت Digilent را به خودش جلب کرد. بورد آموزشیPYNQ-Z1 برای حل این مشکل به افراد برنامه نویس اجازه می دهد به آرامی در انتهای کم عمق استخر شنا کنند، و کم کم به سمت مسائل پیچیده تر بروند.
اجرای کدها و کار با بورد در هر محیطی امکان پذیر است اما پیشنهاد خود سازندگان استفاده از Ubuntu است. به این ترتیب کار شروع می شود و شما به عنوان یک مهندس نرم افزار با اجرای کدهای پایتون یکسری فیدبک مثبت دریافت می کننید. کم کم همان طور که شما کد پایتون را اجرا می کنید، متوجه خواهید شد که تراشه Xilinx ZYNQ یک تراشه کاملا سازمان یافته است و به مرور نحوه اجرای کد روی آن را درک می کنید. البته اشتباه نکنید، شما در نهایت باید دست به کار شوید و به سطوح پایین تر طراحی بروید و مهارت کافی در بکاگیری مجموعه ابزارهای ارائه شده برای توسعه FPGA را بدست بیاورید. اما شما تنها پس از رسیدن به برخی از موفقیت ها و درک مفاهیم، شروع خواهید کرد. پس وقت را تلف نکنید و شروع کنید.
@Hexalinx