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

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

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

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

آدرس اینستاگرام:
insatagram.com/hexalinx_go
Download Telegram
#Advanced
#Vitis

وقتی که کار با Vitis را آغاز می‌کنیم، اولین چیزی که توجه‌ ما را جلب می‌کند، جایگزین شدن SDSoC ، SDAccel و حتی SDK با مجموعه نرم افزاری Vitis است. به عنوان یک ابزار یکپارچه، در واقع قرار است Vitis برای توسعه یک سیستم نهفته دقیقاً مشابه SDK و یا شتاب دهی یک اپلیکیشن کاملا مشابه SDSoC و SDAccel بکارگرفته شود.

ادامه مطلب ...

@Hexalinx
#Advanced
#clock_monitoring

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

ادامه مطلب ...

@Hexalinx
#Advanced
#HLS

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

ادامه مطلب ...

@Hexalinx
#Advanced
#HLS

در مقاله کار با حلقه‌ها در HLS با چگونگی بهینه سازی حلقه‌ها در کدهای HLS آشنا شدیم. روش یکپارچه کردن، ترکیب کردن و باز کردن حلقه‌ها را روی کدهای عملی بررسی کردیم. در این مطلب قصد داریم، چگونگی بهینه سازی به کمک analysis perspective در محیط Vivado-HLS را با هم مرور کنیم. بنابراین در انتهای این مقاله قادر خواهیم بود با تحلیل نتایج پیاده‌سازی بهترین الگو برای اعمال تغییرات روی ساختار کدها را شناسایی کنیم و در می‌یابیم که چه شکل از بهینه سازی در افزایش کارایی کدهای HLS تاثیرگذارتر است.

کار با حلقه‌ها در HLS >>
بهینه سازی به کمک Analysis Perspective >>

@Hexalinx
#Advanced
#Retiming, #Vivado, #STA

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

تکنیک retiming در ابزار سنتز Vivado >>

@Hexalinx
#Advanced
#HLS, #DDR

فرض کنید قصد داریم یک پروژه در Vivado تولید کنیم که شامل بخش‌های زیر است.
✳️ یک Memory Interface Generator
✳️ یک JTAG to AXI IP Core
✳️ یک AXI Interconnect
✳️ یک VIO
✳️ یک ILA
❗️و یک بلوک سفارشی و بسیار جالب به نام ...... ؟
حدس می زنید با این پروژه و بلوک سفارشی که خدمتتان معرفی می‌ کنم قرار است چه کا ر بکنیم؟ اگر کمی تجربه داشته باشید بلافاصله واژه DDR تو ذهنتون جرقه می زنه و با خودتون فکر می کنید، احتمالاً با این پروژه قرار است در حافظه DDR بنویسم و برای ذخیره دیتا ازش استفاده کنیم. نمی خواهم نا امیدتون کنم ولی خب اگر جواب اینقدر سر راست و خلاصه بود لازم نبود این همه مقدمه براتون بنویسم. امیدوارم کمی حس کنجکاویتون رو تحریک کرده باشم.
بهتون پیشنهاد می‌کنم نگاهی به آخرین مقاله ما در سایت بیاندازید، و با ما همراه شوید.

ادامه مطلب >>

@Hexalinx
#Advanced
#Linux

مراحل بوت لینوکس

• بوت مرحله صفر (#Boot_ROM)
• بوت لودر مرحله اول یا #FSBL
• بوت لودر مرحله دوم یا #SSBL

فایل‌های مورد نیاز برای بوت لینوکس به این شرح هستند.

❗️FSBL (First Stage Boot Loader)
❗️BIT File (Optional FPGA Configuration File)
❗️SSBL (Second Stage Boot Loader)
❗️Devicetree.dtb (Device Tree)
❗️Ramdisk.image.gz (Root File System)
❗️zImage (Compressed Linux Kernel)

👇👇👇👇👇👇👇👇

@Hexalinx
#Advanced
#VIVADO_HLS

✳️ قسمت اول از ویدئوهای آموزشی Vivado HLS با موضوع شروع کار با ابزار Vivado HLS

👈 در این ویدئوی کوتاه ابتدا با هم فایل‌های یکی از مثال‌های آماده Xilinx‌ را مرور می‌کنیم و از همین مثال برای نمایش قابلیت‌های ابزار Vivado HLS استفاده می‌کنیم. بعد از اون با نحوه ساخت، سنتز و پیاده سازی پروژه در Vivado HLS آشنا می‌شویم و در نهایت نحوه ارزیابی صحت عملکرد کدهای C و همینطور سنتز طرح C به طرح RTL را یاد می‌گیرم. در آخرین بخش ویدئو هم اینترفیس Tcl ابزار Vivado HLS و نحوه استفاده از آن را معرفی می‌کنیم.

🎥 مشاهده ویدئو >>

@Hexalinx
#Advanced
#VIVADO_HLS


✳️ قسمت دوم از ویدئوهای آموزشی Vivado HLS با موضوع ارزیابی فانکشنالیتی طرح در Vivado HLS

👈 در این ویدئوی کوتاه شیوه ارزیابی طرح در Vivado HLS را با هم مرور می‌کنیم و برای ارزیابی عملکرد طرح C و طرح RTL از تست بنچ C استفاده می‌کنیم. یکی از مهمترین ویژگی‌های‌ تست بنچ‌های C امکان استفاده از آن‌ها برای ارزیابی کدهای RTL تولیدی بعد از سنتز C و مشاهده نتایج آن در سیمولاتورهای مرسوم RTL همچون Vivado Simulator است. در این ویدئو شیوه استفاده از دیباگر Vivado HLS را فرا می‌گیریم.

🎥 مشاهده ویدئو >>


@Hexalinx
#Advanced
#VIVADO_HLS


✳️ قسمت سوم از ویدئوهای آموزشی Vivado HLS با موضوع پکیج کردن HLS IP برای Vivado IP Catalog

👈 برای اینکه بتوانیم از طرح Vivado HLS در کنار کدهای HDL و یا سایر IP های از پیش طراحی شده استفاده کنیم، نیاز داریم تا این IP ها را پکیج کنیم و در محیط‌های طراحی دیگر فراخوانی کنیم. از نسخه 2015.4 به بعد در Vivado HLS تنها امکان انتقال IP به محیط‌های Vivado Design Suite و System Generator for DSP وجود دارد و امکان استفاده از HLS IP در محیط ISE یاXPS وجود ندارد. در این ویدئو شیوه پکیج کردن HLS IP برای Vivado IP Catalog را باهم مرور خواهیم کرد. این HLS IP می‌تواند در محیط Vivado IP Integrator فراخوانی و استفاده شود.

🎥 مشاهده ویدئو >>

@Hexalinx
#Advanced
#VIVADO_HLS

✳️ قسمت چهارم از ویدئوهای آموزشی Vivado HLS با موضوع ساخت HLS IP برای System Generator

👈 برای اینکه بتوانیم از طرح Vivado HLS در کنار بلوک‌های آماده و یا سایر IP های از پیش طراحی شده استفاده کنیم، نیاز داریم تا این IP ها را پکیج کنیم و در محیط‌های طراحی دیگر فراخوانی کنیم. از نسخه 2015.4 به بعد در Vivado HLS تنها امکان انتقال IP به محیط‌های Vivado Design Suite و System Generator for DSP وجود دارد و امکان استفاده از HLS IP در محیط ISE یا XPS وجود ندارد.
در این ویدئو شیوه ساخت HLS IP برای System Generator for DSP را باهم مرور خواهیم کرد. این HLS IP می‌تواند به صورت یک بلوک فراخوانی و استفاده شود.

🎥 مشاهده ویدئو »

@Hexalinx
#Advanced
#VIVADO_HLS

✳️ قسمت پنجم از ویدئوهای آموزشی Vivado HLS با موضوع استفاده از اینترفیس Tcl در Vivado HLS

👈 زبان برنامه نویسی Tcl یک زبان سطح بالا و دینامیک است که با هدف ساده سازی توصیف فرایند ساخته شده و به صورت گسترده در ISE و به ویژه Vivado مورد استفاده قرار می‌گیرد. واژه TCL محفف Tool Command Language است.
👈 در Vivado HLS هم برای بالا بردن سطح اتوماسیون طراحی و همینطور مدیریت بهتر سورس فایل‌های پروژه از Tcl استفاده می‌شود. تمامی مثال‌های آماده Xilinx و همینطور آموزش‌هایی که برای Vivado HLS طراحی و منتشر شده است با استفاده از اسکریپتی‌هایی که به زبان Tcl نوشته شده‌اند، مدیریت می‌شوند. یادگیری شیوه استفاده از این فایل‌ها و نحوه ویرایش آن‌ها می‌تواند دروازه ورود شما به دنیای هزاران پروژه آماده در github باشد.
👈 ما در این ویدئو ابتدا روش ساخت و سفارشی سازی یک فایل Tcl را به شما آموزش می‌دهیم و در ادامه نحوه استفاده از اینترفیس Tcl برای اجرای Vivado HLS را با هم مرور خواهیم کرد.

🎥 مشاهده ویدئو »
📁 دانلود فایل‌ها »

@Hexalinx
#Advanced
#AXI, #AXIVIP,


✳️ معرفی AXI VIP و کاربردهای آن

راه حل پیشنهادی Xilinx برای تسهیل فرایند شبیه سازی اینترفیس‌های AXI4 و AXI4-Lite استفاده از یک IP Core رایگان به نام AXI Verification IP به اختصار AXI VIP است که به سادگی از طریق مخزن IP های Xilinx در مجموعه نرم افزاری Vivado قابل فراخوانی است.

در این ویدئوی آموزشی کوتاه ، مروری اجمالی بر مهمترین ویژگی‌های این IP و مزایای آن خواهیم داشت. برای دسترسی به مقاله و ویدئوی آموزشی از لینک زیر استفاده کنید.

🎥 مشاهده ویدئو »


@Hexalinx
#Advanced
#AXI, #AXIVIP, #AXI_Lite

✳️ مطلبی که در ادامه مطالعه می‌کنید، قسمت سوم از سری آموزشی AXI است. در این قسمت قصد داریم با اضافه کردن AXI VIP به یک پروژه در Vivado فرایند شبیه سازی اینترفیس AXI4-Lite با AXI VIP را به طور کامل بررسی کنیم. در انتهای کار نیز نگاهی دقیق‌تر به سیگنال‌هایی که در تراکنش‌های AXI4-Lite شرکت دارند می‌اندازیم و شکل موج‌های قابل نمایش در پنجره Waveform را به دقت بررسی می‌کنیم.

در قسمت اول این سری آموزشی به شکل خلاصه مبانی اینترفیس AXI را با هم مرور کردیم و مهمترین مفاهیم و اصطلاحات کلیدی در AXI3/AXI4 آشنا شدیم. در قسمت دوم به یک سؤال مهم پاسخ دادیم و در رابطه با متدهای استاندارد شبیه سازی اینترفیس AXI که توسط Xilinx در محیط توسعه Vivado ارائه شده است، توضیحاتی ارائه کردیم.

👈 قسمت اول: مقدمه‌ای بر AXI »
👈 قسمت دوم: شبیه سازی با AXI Verification IP»
👈 قسمت سوم: شبیه سازی AXI4-Lite با AXI VIP»

@Hexalinx
#Advanced
#VIVADO_HLS

✳️ قسمت ششم از ویدئوهای آموزشی Vivado HLS با موضوع آنالیز طرح در Vivado HLS

👈 در ویدئوهای آموزشی قبلی به شما مهمترین مراحلی که برای ساخت یک طرح در Vivado HLS و استفاده از آن به صورت یک IP نیاز بود آموزش دادیم. همینطور نحوه مدیریت فایل‌ها و شبیه سازی طرح آموزش داده شد. اکنون به مهمترین بخش این آموزش رسیدم و قصد داریم طرحمان را بهینه سازی کنیم.
❗️ بهترین راه برای یادگیری هر روش جدیدی ، ارائه مثال‌های کاربردی است. فیلتر FIR یکی از ماژول‌های بسیار پرکاربرد در الگوریتم‌های پردازشی است. پیاده سازی این فیلتر به صورت کاملاً استاندارد در زبان C کار نسبتاً ساده‌ای است. در این آموزش ابتدا کدهای C یک فیلتر FIR استاندارد را بررسی می‌کنیم و در نهایت جنبه‌های مختلف بهینه سازی و قابلیت‌های آنالیز در Vivado HLS را به کمک این مثال توضیح می‌دهیم.

🎥 مشاهده ویدئو >>

@Hexalinx
#Advanced
#VIVADO_HLS

✳️ قسمت هفتم از ویدئوهای آموزشی Vivado HLS با موضوع تعیین اینترفیس AXI4‌ برای طرح Vivado HLS

👈 یک طراحی در Vivado HLS زمانی کامل می‌شود که ملاحظات لازم برای تبادل داده بین طرح و سایر ماژول‌ها در یک سیستم کامل شود. یک HLS IP باید بتواند به خوبی داده‌های ورودی را بدون از دست رفتن آن‌ها دریافت کند و با یک هندشیک مناسب خروجی‌ها را به ماژول‌های مصرف کننده تحویل دهد. از آن جایی که یکی از مهمترین کاربردهای Vivado HLS طراحی ماژول‌های شتاب دهنده در سیستم‌های مبتنی بر پردازنده است (سیستم‌های مبتنی بر Zynq و Microblaze) ، از این رو تعیین اینترفیس AXI برای تسهیل تبادل داده بین ماژول و پردازنده بسیار مهم است. در Vivado HLS تعیین اینترفیس‌ برای آرگومان‌های ورودی و خروجی با استفاده از دایرکتیوها و پراگماها انجام می‌شود و کاربر نیازی به طراحی اینترفیس‌ها به صورت دستی ندارد (برخلاف HDL)

👈 در این ویدئو قصد داریم فرایند تعیین اینترفیس‌ AXI4 برای طرح Vivado HLS را با جزئیات کامل بررسی کنیم و شما را با مفاهیم مهمی همچون سنتز اینترفیس و پروتکل‌های ورودی خروجی آشنا کنیم.

🎥 مشاهده ویدئو >>

@Hexalinx
#VIVADO_HLS
#Advanced

✳️ اینبار برای آموزش Vivado HLS به سراغ یک پروژه عملی رفتیم.

مانیتور کردن مداوم دمای سیستم در فرایندهای صنعتی کاری مرسوم و البته ضروری است. این کار غالباً با استفاده از ترمیستور و یا ترمومتر که ادوات اندازه گیری دما هستند، انجام می‌شود. هر دو این ادوات غیرخطی هستند و با توجه به تغییرات مقاوت، دمای سیستم را گزارش می‌کنند. در هر دو قطعه، برای اینکه مقدار صحیح دما با توجه به مقدار مقاومت اندازه گیری شده تعیین شود، باید یک تبدیل انجام دهیم.
👈 در این پروژه ما با استفاده متغیرهای ممیز شناور یک رابطه غیرخطی را که در ابتدا پیچیده هم به نظر می‌رسد، با یک چند جمله‌ای جایگزین و سپس پیاده سازی کردیم.

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

@Hexalinx
#VIVADO_HLS
#Advanced

✳️ در قسمت اول سری دو قسمتی «نکات و تکنیک‌های طراحی با Vivado HLS » روش مدل سازی و پیاده سازی رابطه دما و مقاومت در سیستم‌های صنعتی را مرور کردیم. همانطور که وعده داده بودیم. در قسمت دوم قصد داریم برای اولین بار مفاهیم ممیز ثابت و کتابخانه‌های Arbiterary Precison را خدمت شما معرفی کنیم.

کتابخانه‌های Arbitrary Precision برای تمامی زبان‌های قابل پشتیبانی در Vivado HLS یعنی C و ++C و System C قابل استفاده هستند. با این کتابخانه‌ها تعریف متغیرهای ممیز ثابت علامت دار یا بدون علامت با طول بیت ۵۱۲ یا حتی ۱۰۲۴ بیت امکان پذیر است.
👈 نحوه استفاده از این کتابخانه‌ها در قالب یک فیلتر بسیار متدوال به نام فیلتر میانگین گیر متحرک ارئه شده است.

مطالعه ادامه مطلب >>

@Hexalinx
همراهان عزیز هگزالینکس:
برای جستجو در مطالب منتشر در کانال می‌توانید از کلید واژه‌ها یا هشتگ های زیر استفاده کنید. امیدوارم آموزش‌های تخصصی هگزالینکس در این مدت انتظارات شما را برآورده کرده باشد.
دسته بندی بر اساس سطح و پیچیدگی مطالب:
#Basic
#Essentials
#Intermediate
#Advanced

دسته بندی براساس ابزارهای طراحی
#VIVADO_HLS
#SYSGEN
#VITIS
#VIVADO
#ISE
#ISIM
#SDSoC

دسته بندی موضوعی
#FIR
#FILTER
#PETALINUX
#LINUX
#AXI
#AXIVIP
#AXI_Lite
#CDC
#Clock_Domain_Crossing
#FIXED_POINT
#CHIPSCOPE
#TCL
#DDR
#ZYNQ
#IOB
#Barrel_Shifter
#wire_bonding
#Pipelining
#device_tree
#Clock_Gating
#Clock
#Reset
#Fanout
#Digital_Filter
#Static_Timing_Paths
#Clock_skew
#U_BOOT
#SSBL
#BUFGCE
#BUFHCE
#MUX
#DCM
#CMT
#QEMU
#BARE_METAL
#CLB
#LUT
#DISTRIBUTED_RAM
#PYNQ
#HLS
#ILA
#VIO
#STA
@Hexalinx
#Advanced
#BUFG, #BUFR, #MRCC, #SRCC

♨️ هیچ گاه علاقه‌ای به استفاده از واژه صفر تا صد نداشته ایم، این بار هم قصد این کار را نداریم، اما به واقع در سری آموزشی مدیریت سیگنال کلاک بسیار فراتر از آن چیزی که انتظار دارید با منابع و شبکه توزیع کلاک در نسل‌های مختلف تراشه‌های FPGA شرکت Xilinx آشنا خواهید شد.

✳️ از نقطه نظر کلاک، بعد از معرفی تراشه Virtex-4، تراشه‌های FPGA شرکت Xilinx، به تعدادی ناحیه کلاک تقسیم می‌شوند. این نواحی برای مدیریت بهتر سیگنال کلاک ایجاد شدند و تعداد آن‌ها در نسل‌های مختلف، متفاوت است. همینطور شیوه تقسیم بندی فضای درونی هر تراشه به نواحی کلاک طی نسل‌های مختلف دستخوش تغییر شده است. معرفی مفهوم ناحیه کلاک باعث شکل گیری مفاهیم دیگری نیز شد که یکی از آن‌ها مفهومی به نام کلاک‌های محلی یا Regional Clock است، در حالی که تا پیش از آن تمامی منابع کلاک درون تراشه‌، تحت عنوان منابع سرتاسری یا Global ، شناخته می‌شدند.

🔖 مدیریت سیگنال کلاک: بخش اول منابع مدیریت کلاک در FPGA »
🔖 مدیریت سیگنال کلاک: بخش دوم شبکه توزیع کلاک در FPGA »

@Hexalinx