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

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

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

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

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

معرفی Vivado

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

@Hexalinx
#Advanced
#Vivado, #Board_File_Interface

بورد فایل اینترفیس

✳️ وقتی که کار ساخت یک پروژه جدید در مجموعه نرم افزاری Vivado را آغاز می‌شود در اولین گام از طراح خواسته می‌شود که تراشه یا بورد ارزیابی که قرار است طراحی روی آن صورت بپذیرد را انتخاب کند. در لیست بوردها نام بوردهای ارزیاب تولیدی Xilinx و یا شرکای تجاریش وجود دارد اما معمولا این بوردها در اختیار همه طراحان نیست. علاوه بر این، در بسیاری از موارد نیاز است کار طراحی روی سخت افزارهای سفارشی که برای اهداف خاص ساخته شده‌اند، اجرا شود. از این رو در اکثر موارد مهندس طراح با انتخاب (تراشه هدف) به جای (پلت فرم هدف )کار طراحی خودش را آغاز می‌کند.

✳️ اما تمامی طراحانی که تجربه کار با ابزار Vivado IP Integrator را دارند از مزایای طراحی با بوردهای آماده همچون قابلیت Designer Assistance در این محیط آگاهی دارند، (بله همان نوار سبز رنگی به هنگام ساخت یک Block Design ظاهر می‌شود و با اضافه کردن هر IP فعال می‌شود)، بعلاوه اینکه در برگه Board لیستی از بخش‌های مختلف بورد انتخابی نمایش داده می‌شود که به سادگی تنها با چند کلیک می‌توان آنها را فعال و فراخوانی کرد. اما افسوس که این قابلیت تنها زمانی فعال می شود که از بوردهای ارزیاب Xilinx برای طراحی استفاده شود.

✳️ شاید شما هم به این مساله فکر کرده باشید که چه خوب می شد اگر می‌توانستیم بوردهای سفارشی خودمان را نیز مانند بوردهای Xilinx درون مجموعه نرم افزاری Vivado اضافه کنیم و از آن‌ها به راحتی استفاده کنیم و به جای اینکه هر بار به دنبال تنظیم فایل xdc و تعیین موقعیت پایه‌ها و پورت‌ها باشیم با چند کلیک ساده همه کارها انجام شود. یا به جای اینکه هر بار برای پیکره‌بندی ارتباط با DDR به دنبال تنظیمات اختصاصی MIG برویم با چند کلیک ساده همه IP Core های مورد نیاز برای برقراری ارتباط و تنظیمات آن‌ها به صورت اتوماتیک انجام شود.

❗️خبر خوب این است که این کار امکان پذیر است. اما چگونه؟

🔖 تمامی اطلاعات مورد نیاز برای ایجاد چنین قابلیتی در یکسری فایل های xml ذخیره می‌شود که مهمترین آن‌ها فایل بورد اینترفیس است. فایل بورد اینترفیس (board interface file) اسکریپتی با فرمت xml است که برای توصیف بوردهایی که تراشه‌های FPGA یا SoC شرکت Xilinx در آن‌ها به کار گرفته شده است، طراحی و استفاده می شود.

🔖 اطلاعاتی که در فایل بورد اینترفیس قرار داده می‌شود توسط مجموعه نرم افزاری Vivado و به شکل اختصاصی توسط ابزار Vivado IP Integrator در زمان ساخت یک Block Design فراخوانده می‌شود. از این اطلاعات برای تسهیل فرایند برقراری ارتباط بین تراشه Xilinx و سایر قطعات روی یک بورد بکار استفاده می شود.

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

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

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

@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
#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
#FIR, #FILTER, #VIVADO
#Basic, #Intermediate

✳️ دروازه ورود به دنیای پردازش سیگنال در FPGA از طریق فراگیری الفبای پیاده سازی یک فیلتر FIR در Vivado به صورت کاملاً ممیز ثابت و شبیه سازی آن با تست بنچ‌ HDL در یک قدمی شماست...
👈 چند هفته پیش بود که آموزشی در رابطه با طراحی یک فیلتر FIR با ابزار System Generator for DSP منتشر کردیم. این هفته در یک مقاله بسیار مفصل با آموزش پیاده سازی یک فیلتر میان گذر، تک کانال و تک نرخ با استفاده از FIR Compiler IP Core در Vivado به نزد شما بازگشتیم.

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

@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