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
Channel created
سلام و خیر مقدم خدمت تمامی علاقه مندان به تراشه های برنامه پذیر

این کانال با هدف ارائه مطالب آموزشی راه اندازی شده است و قصد داریم در آن تجربیات کاری تیمی از طراحان را در اختیار علاقه مندان به تراشه های FPGA و SoC قرار دهیم.
مطالب با سطوح مهارتی متفاوت و با دسته بندی موضوعی ارائه می شوند و گسترده وسیعی را در بر می گیرند:

🎯 اخبار و فناوری های مرتبط با تراشه های برنامه پذیر
🎯 سوالات کاربران و پاسخ های ارائه شده به ایشان
🎯 تجربیات کاری به همراه تکنیک های طراحی و پیاده سازی
🎯 مقالات آموزشی در رابطه با ابزارهای طراحی
🎯 آموزش های گام به گام و هدفمند
🎯 اطلاع رسانی دوره ها و رویدادهای آموزشی

از همراهی شما سپاسگزاریم
تماس با ما @ask_linx

@Hexalinx
#Petalinux
#Essentials

پتالینوکس چیست؟

پاسخ کوتاه این است که پتالینوکس (petalinux) مجموعه ای از ابزارهای نرم افزاری است که برای توسعه لینوکس تعبیه شده (embedded linux) توسط شرکت Xilinx ارائه شده است. پاسخ طولانی این است که پتالینوکس در واقع عنوان یک بسته نرم افزاری انحصاری است ولی نمی توان آن را به عنوان یک راه حل مستقل و کامل برای توسعه لینوکس تعبیه شده برای تراشه های Xilinx در نظر گرفت. پروسه بکارگیری آن متشکل از مراحل متعددی است و به دیگر برنامه های Xilinx مانند Vivado و Xilinx SDK متکی است. پتالینوکس تنها روی سیستم عامل های مبتنی بر هسته لینوکس نصب می شود و نسخه ویندوزی ندارد.

@Hexalinx
#Virtual_Input_Output
#VIO
#Essentials

ورودی/خروجی مجازی چیست؟

شرکت Xilinx برای تسهیل فرایند تست و خطایابی تراشه های تولیدی خود، از یک IP Core با عنوان ورودی خروجی مجازی یا Virtual Input Output-VIO استفاده می کند. این IP هم از طریق Vivado و هم ISE دردسترس است و حداکثر فرکانس کاری آن برای تراشه های سری 7 حدود 250 مگاهرتز است. این IP Core دو قابلیت مهم دارد که عبارت است از:

1️⃣ اعمال ورودی های بلادرنگ سنکرون و آسنکرون به بخش های مختلف طرح
2️⃣ مانیتورینگ بلادرنگ سیگنال های داخلی طرح به صورت سنکرون و آسنکرون

@Hexalinx
#Static_Timing_Analysis
#STA
#Intermediate

آنالیز زمانبندی ایستا چیست؟

به طور کلی هر طراحی مبتنی بر FPGA ترکیبی است از مجموعه سلول ها و نت های متصل به هم که یک عملکرد خاص را به همراه دارند. در اولین گام، بررسی صحت عملکرد طراحی (Design Functionality) با استفاده از ابزارهای شبیه سازی انجام می شود.

از سوی دیگر تعیین کارایی قطعه (Device Performance) با توجه به تاخیرهای بین سلول های سازنده طرح انجام می شود، به عبارت دیگر آیا قطعه قادر است عملکرد مطلوب طراح را با سرعت مد نظر وی اجرا کند یا خیر. در اولین گام، بررسی کارایی قطعه با آنالیز زمانبندی ایستا یا همان static timing analysis-STA انجام می شود.

@Hexalinx
🌐 سوالات کاربران

✳️ آیا لازم است بعد از روشن شدن و پیکره بندی FPGA، آن را ریست کنیم؟

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

@ask_linx
@Hexalinx
#C_Model
#Advanced

معرفی C Model

شبیه سازی دقیق عملکرد یک IP Core درون کدهای سطح بالای طراحی سیستمی که غالبا به زبان ++C/C و یا Matlab توسعه داده می شوند، یک چالش بزرگ برای طراحان است.

شرکت Xilinx برای یکسری از IP Core های پرکاربرد خود مدلی دقیق ارائه کرده است که می تواند به عنوان نماینده IP Core در کدهای C و یا Matlab فراخوانده شود و در اصطلاح یک عملکرد bit_accurate را به ارمغان بیاورد.

این مدل دقیق متشکل از مجموعه ای از توابع C درون کتابخانه های اشتراکی است و C Model نام گذاری شده است. برخی از مهمترین IP Core هایی که C Model دارند، عبارتند از:

#dds, #xfft, #div_gen, #dft, #cordic, #fir_compiler, #cmpy

@Hexalinx
#ISE
#Essentials

رفع مشکل بسته شدن ISE در ویندوز 10

در ویندوز 10 بعد از نصب نرم افزار و کرک کردن آن ممکن است با مشکل بسته شدن نرم افزار در حین اجرای آن برخورد کنید که برای رفع این مشکل می توانید بصورت زیر عمل کنید :

برای رفع این مشکل ابتدا نرم‌افزار را نصب و به نحو صحیح کرک کنید و بعد از نصب و با فرض اینکه نرم‌افزار را در درایو C نصب کرده‌اید، مراحل زیر را به دقت انجام دهید تا مشکل برطرف شود:

1️⃣ ابتدا وارد پوشه C:\Xilinx\14.7\ISE_DS\ISE\lib\nt64 شوبد و نام فایل libPortability.dll را به libPortability.dll.orig تغییر دهید.

2️⃣ در پوشه مرحله 1️⃣ ، یک کپی از فایل libPortabilityNOSH.dll ایجاد کنید و نام آن را libPortability.dll بگذارید.

3️⃣ حال وارد پوشه C:\Xilinx\14.7\ISE_DS\common\lib\nt64 شوید و فایل libPortabilityNOSH.dll را در این پوشه هم کپی کنید.

4️⃣ در پوشه مرحله 3️⃣ ، نام فایل libPortability.dll را به libPortability.dll.orig تغییر دهید.

5️⃣ در آخر، نام فایل libPortabilityNOSH.dll در پوشه مرحله 3️⃣ را به libPortability.dll تغییر دهید.

@Hexalinx
#Deep_Learning_Processor_Unit
#DPU
#Advanced

معرفی DPU

واحد پردازشگر یادگیری عمیق (DPU) یک موتور قابل برنامه ریزی برای شبکه های عصبی کانولوشنال است که توسط Xilinx در سال 2019 ارائه شده است. این واحد شامل ماژول پیکربندی برای رجیسترهای داخلی، ماژول کنترل کننده جریان داده ها و ماژول محاسباتی کانولوشنال است. بکارگیری مجموعه ای از دستورالعمل های اختصاصی، DPU را قادر می سازد تا کارآیی بسیار بالایی در انجام محاسبات مورد نیاز شبکه های عصبی کانولوشنال داشته باشند . مهمترین شبکه های عصبی کانولوشنال توسعه داده شده در DPU عبارتند از:

#VGG, #ResNet, #GoogLeNet, #YOLO, #SSD, #MobileNet, #FPN

@Hexalinx
#Integrated_Logic_Analyser
#ILA
#Essentials

لاجیک آنالیزر داخلی چیست؟

شرکت Xilinx برای تسهیل فرایند تست و خطایابی تراشه های خود، از یک IP Core با عنوان لاجیک آنالیزر داخلی یا Integrated Logic Analyser-ILA استفاده می کند. این IP Core هم از طریق Vivado و هم ISE دردسترس است. این IP Core به نوعی یک شفافیت داخلی در FPGA ایجاد می کند و امکان نمایش وضعیت سیگنال ها، باس های داده، اینترفیس ها و پورت های سایر IP Core ها را فراهم می آورد. در حالت کلی ILA برخلاف VIO با نمونه برداری از وضعیت سیگنال ها و ذخیره آنها در بلوک های حافظه درون تراشه، امکان نمایش رفتار سیستم در یک بازه زمانی را فراهم می کند. نحوه نمونه برداری و ذخیره اطلاعات با استفاده از مدارات اضافی که توسط LUT ها پیاده سازی می شود قابل کنترل است.

@Hexalinx
#ChipScope_Pro
#ILA
#Essentials
معرفی ChipScope Pro

شرکت Xilinx برای تسهیل فرایند فراخوانی ILA IP Core در نرم افزار ISE از مجموعه ابزاری به نام ChipScope Pro استفاده می کند، این مجموعه ابزار به طراح اجازه می دهد، بعد از سنتز طرح، یک واحد مانیتورینگ ILA را به نت لیست های سنتز اضافه کند، این کار با استفاده از یک محیط گرافیکی که امکان جستجوی سیگنال ها در آن وجود دارد، انجام می شود. با فراخوانی ChipScope Pro بعد از تعیین پارامترهای مورد نیاز برای نمونه برداری، می توان بسادگی ارتباط میان ILA و کلیه سیگنال ها را برقرار کرد.

در حالت کلی ابزار ChipScope Pro متشکل از دو IP Core یا هسته است که اولی ChipScope Pro Core Inserter و دومی ChipScope Pro Analyzer نام دارد. هسته اول بعد از سنتز و دومی بعد از پیاده سازی روی سخت افزار مورد استفاده قرار می گیرد.

@Hexalinx
#Static_Leakage_Power
#Static_Power
#Dynamic_Power
#Essentials

توان مصرفی در FPGA

تراشه های FPGA به طور کلی توان مصرفی بالاتری نسبت به DSP ها و MCU ها دارند، ولی به دلیل توان پردازشی بالا استفاده از آنها در بسیاری از موارد بهترین راه حل است. توان مصرفی در FPGA از سه جز مهم تشکیل شده است که عبارتند از:

1️⃣ توان استاتیک نشتی قطعه: توان مورد نیاز برای روشن نگه داشتن قطعه پیش از پیکره بندی است. این توان مصرفی ناشی از جریان نشتی گیت ترانزیستورها است و صرف آماده پیکره بندی نگه داشتن FPGA می شود.

2️⃣ توان استاتیک طراحی: توان مصرفی قطعه زمانی که هنوز هیچ فعالیتی روی منابع وجود ندارد و هنوز قطعه زیر بار قرار نگرفته است. در این حالت علی الرغم پیکره بندی FPGA هنوز هیچ کدام از سیگنال ها و پورت های آن تغییر وضعیت نمی دهند.

3️⃣ توان دینامیک طراحی: توان مصرفی ناشی از زیر بار قرار گرفتن قطعه است و کاملا وابسته به طرح و منابع بکارگرفته شده در آن می باشد. منابع مسیر یابی و ولتاژ کاری مورد استفاده برای بخش های مختلف تراشه نیز روی مصرف توان دینامیک تاثیر می گذارند.

@Hexalinx
#Vivado
#Essentials

معرفی Vivado

سال 2010 شرکت Xilinx پس از معرفی تراشه های برنامه پذیر (FPGA) سری 7 ادعا کرد اقدامات بسیار وسیعی برای پایین آوردن قیمت، بالا بردن کارایی و کاهش توان مصرفی تراشه های FPGA انجام داده است و یک سال بعد اولین سری از تراشه های خانواده Zynq را که در آن تراشه FPGA با هسته پردازشی ARM تجمیع شده بود به بازار معرفی کرد. سپس در سال 2012 به صورت رسمی اولین نسخه از محیط توسعه یکپارچه Vivado برای کار با این تراشه ها را عرضه کرد و اعلام کرد به زودی پشتیبانی از نرم افزار قدیمی خودش یعنی ISE را خاتمه می دهد، و از کاربران درخواست کرد از این محیط جدید برای طراحی های آتی خود استفاده کنند.
شرکت Xilinx نرم افزار جدید خود را این چنین معرفی کرد.
این یک محیط کاملا یکپارچه طراحی (IDE) با نسلی کاملا جدید از ابزارهای مورد نیاز برای انتقال سیستم به درون یک تراشه است و شامل سنتز سطح بالا (HLS) ، سنتز آر تی ال (RTL) ، مسیر یابی و جانمایی تحلیلی (Place & route) و موتور کنترل زمانبندی پیشرفته مبتنی بر SDC است. این بدین معناست که توسعه دهندگان می توانند بهره وری خود را با شتاب 4 برابر افزایش دهد.

@Hexalinx
#Book
#Intermediate
معرفی و دانلود کتاب طراحی FPGA با استفاده از Vivado
@Hexalinx
#ZYNQ
#SOC
#Essentials
تراشه ZYNQ چیست؟

برخلاف تصور ZYNQ یک نوع FPGA نیست. در حقیقت یک سیستم روی تراشه (SOC) هست. این تراشه کاملا انعطاف پذیر است و در آن یک FPGA در کنار یک یا چند پردازنده ARM قرار گرفته است. علاوه بر این تمامی واسط های پرکاربرد نیز روی تراشه به صورت اختصاصی در نظر گرفته شده است. با استفاده از باس های AXI ارتباط کاملی بین بخش پردازنده و بخش برنامه پذیر شکل گرفته است و این امکان به طراح داده می شود تا هر جا نیاز به استفاده از یک شتاب دهنده در کنار پردازشگر قدرتمند داشته باشد، از این قابلیت استفاده کند.

اولین سری از این تراشه ها در سال 2012 عرضه شد و تحت عنوان ZYNQ-7000 نام گذاری شدند. و سپس سری در سال های بعد تراشه های قدرتمندتر ZYNQ-UltraScale plus عرضه شدند.

@Hexalinx
#ZYNQ
#MIO, #EMIO
#Intermediate
مفهوم MIO و EMIO در تراشه های ZYNQ

تراشه ZYNQ بیش از 20 اینترفیس دارد که برحسب نیاز قابل استفاده هستند. دسترسی این اینترفیس ها به سایر منابع روی بورد هم از طریق IO های سمت پردازنده (ARM) و هم از طریق IO های سمت برنامه پذیر (FPGA) امکان پذیر است. در حالت کلی این اینترفیس ها می توانند به صورت مستقیم از طریق یکسری مالتی پلکسر اختصاصی Multiplexed I/Os - MIO به IO های پردازنده متصل شوند. و یا با استفاده از مالتی پلکسرهای اضافی Extended Multiplexed I/Os - EMIOs به سمت بخش برنامه پذیر تراشه و IO های آن هدایت شوند.

@Hexalinx
#Xilinx_Power_Estimator
#XPE
#Intermediate
تخمین توان مصرفی

تخمین توان مصرفی قبل از اتمام فرایند طراحی و پیاده سازی کار بسیار دشواری است، اما برای دستیابی به یک طراحی سخت افزاری مناسب، مصرف توان و مشخصات دمایی تراشه های FPGA و SoC بایستی در اولین گام های چرخه طراحی مشخص شوند. آنالیز دقیق و سخت گیرانه توان مصرفی این امکان را فراهم می آورد که هم سیستم خنک گنندگی بهتر و هم مدارات تغذیه بهینه تری برای محصول نهایی در نظر گرفته شود. برای تخمین توان مصرفی یکسری فرمول نیاز است که این فرمول ها در قالب ابزار Xilinx Power Estimator- XPE توسط Xilinx ارائه شده است. این ابزار در واقع مجموعه ای از صفحات Excel است که با استفاده از آن طراح می تواند تخمینی از شرایط دمایی و مصرف توان تراشه را محاسبه کند. این ابزار کاملا با ISE و Vivado سازگار است و به صورت رایگان قابل دانلود و استفاده است.

https://www.xilinx.com/products/technology/power/xpe.html

@Hexalinx
🌐 سوالات کاربران

✳️ کاربرد شبیه سازی post synthesize چیست؟ با وجود عملکرد صحیح مدار در شبیه سازی behavioral، در شبیه سازی post synthesize سیگنال ها با کمی تاخیر شروع به تغییر وضعیت می کنند؟

در شبیه سازی post synthesize ، مدل های دقیق عناصر درون FPGA برای شبیه سازی مورد استفاده قرار می گیرند، علاوه بر این مدلی از تاخیر start up در FPGA نیز لحاظ می گردد. در حالت کلی زمانی که برنامه ریزی FPGA به اتمام می رسد، FPGA در حالت ریست باقی می ماند، دلیل تاخیر روی تغییر وضعیت سیگنال ها فراخوانی اتوماتیک واحد Global Set Reset – GSR است. تاخیر ناشی از این ریست سراسری در شبیه سازی post synthesize مدل می شود.

@ask_linx
@Hexalinx