توسط احمد ثقفی 

5 مهر, 1399

آشنایی با نرم‌افزار ویوادو

جدیدترین نرم‌افزار شرکت Xilinx در حوزه پیاده‌سازی سخت‌افزاری سیستم‌های دیجیتال به کمک FPGAهای این شرکت، نرم‌افزار ویوادو است.

تا اواخر سال ۲۰۱۳، شرکت Xilinx نرم‌افزار ISE را برای این هدف ارائه می‌کرد، اما از آن به بعد، نرم‌افزار ویوادو به بازار عرضه شد و دیگر نسخه جدیدی از نرم‌افزار ISE ارائه نشد.

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

More...

یکی از باورهای اشتباهی که در بین بعضی از استفاده کنندگان از محصولات شرکت زایلینکس وجود دارد است که با توجه به اینکه نرم‌افزار ویوادو جدیدترین نرم‌افزار در حوزه توسعه سیستم‌های سخت‌افزاری است، بنابراین دیگر نیازی به نرم‌افزار ISE نیست!

برای آشنایی با نرم‌افزار ISE این برنامه ویدئویی را مشاهده کنید...

اما آیا با وجود ویوادو دیگر نیازی به ISE نخواهیم داشت؟

پاسخ به این پرسش را در این برنامه ویدئویی به طور مفصل بررسی خواهم کرد. 

این قسمت اول از آموزش نرم‌افزار ویوادو است. در قسمت بعدی، به طور عملی وارد نرم‌افزار ویوادو خواهم شد و ضمن معرفی بخش‌های مختلف آن، یک مثال ساده را هم پیاده‌سازی خواهم کرد.

ویدئو یا متن؟

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

برای دانلود نسخه با کیفیت این ویدئو، روی دکمه زیر کلیک کنید:

در این مقاله قصد دارم شما را با نرم‌افزار Vivado آشنا کنم.

این نرم‌افزار، جدیدترین نرم‌افزار شرکت Xilinx در حوزه پیاده‌سازی سیستم‌های سخت‌افزاری است.

همان‌طور که احتمالاً اطلاع دارید، تا اواخر سال ۲۰۱۳، شرکت Xilinx برای این حوزه، نرم‌افزار ISE را ارائه می‌کرد، اما پس از آن، نرم‌افزار Vivado به بازار عرضه شد و دیگر نسخه جدیدی از نرم‌افزار ISE ارائه نشد.

در حال حاضر، نرم‌افزار Vivado، نرم‌افزار اصلی شرکت Xilinx در حوزه پیاده‌سازی سیستم‌های سخت‌افزاری است.

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

بنابراین، قبل از ورود به محیط نرم‌افزار Vivado، درباره جایگاه این نرم‌افزار در بین سایر محصولات شرکت Xilinx، مطالبی را بیان خواهم داد.

همچنین، تعدادی باور غلط در این زمینه وجود دارد که حتماً به آن‌ها اشاره خواهم کرد.

انواع نرم‌افزارهای شرکت Xilinx

به‌طور کلی، نرم‌افزارهای شرکت Xilinx به دو گروه تقسیم می‌شوند:

  • hardware development
  • software development

نرم‌افزارهای گروه hardware development، در فرایند طراحی و پیاده‌سازی یک سخت‌افزار کمک می‌کنند.

همان‌طور که اشاره کردم، در گذشته، برای طراحی و پیاده‌سازی یک سخت‌افزار، از نرم‌افزار ISE استفاده می‌کردیم.

نرم‌افزار Vivado نیز متعلق به همین گروه است و جدیدترین نرم‌افزار این حوزه محسوب می‌شود.

اما گروه دوم نرم‌افزارهای شرکت Xilinx، گروه software developmentها است.

اکنون ممکن است این سوال مطرح شود که با توجه به اینکه شرکت Xilinx تولید کننده تراشه‌هایی برای پیاده‌سازی سخت‌افزاری است، موضوع توسعه نرم‌افزاری به چه کار خواهد آمد؟

در پاسخ باید گفت که ما می‌توانیم در تمامی FPGAهای شرکت Xilinx، میکروکنترلی به‌نام میکروبلیز را پیاده‌سازی کنیم.

ضمن اینکه شرکت Xilinx، تراشه‌ای به‌نام Zynq تولید می‌کند که شامل یک FPGA و یک پردازنده ARM است.

برای استفاده از میکروبلیز یا پردازنده ARM موجود در Zynq، باید برنامه‌نویسی کنید. این کار، به‌کمک نرم‌افزارهای حوزه software development انجام می‌شود.

البته مباحث دیگری نیز در حوزه نرم‌افزاری وجود دارد؛ اما شاید یکی از مهم‌ترین آن‌ها، برنامه‌نویسی برای پردازنده‌هایی است که شما می‌توانید درون یک FPGA ایجاد کنید.

در حوزه software development، جدیدترین نرم‌افزاری که شرکت Xilinx ارائه داده است، نرم‌افزار Vitis است.

در گذشته، نرم‌افزارهای زیادی در این حوزه وجود داشتند؛ از جمله، نرم‌افزار SDSoC ،SDK و SDAccel.

شما می‌توانید به‌کمک نرم‌افزار SDK برای پردازنده‌های درون FPGA برنامه‌نویسی کنید.

به‌تازگی، شرکت Xilinx نرم‌افزار جدید Vitis را ارائه داده است که تمام نرم‌افزارهای قبلی در حوزه software development، در این نرم‌افزار تجمیع شده‌اند. البته امکانات جدیدی نیز به این مجموعه افزوده شده است.

برخی گمان می‌کنند که نرم‌افزار Vitis به‌جای نرم‌افزار Vivado به بازار عرضه شده است؛ اما همان‌طور که توضیح دادم، این دو نرم‌افزار مربوط به دو حوزه متفاوت هستند.

در حوزه hardware development، جدیدترین نرم‌افزار، نرم‌افزار Vivado است که ورژن‌های جدیدتر آن در حال تولید و ارائه هستند.

در حوزه software development نیز جدیدترین نرم‌افزار، نرم‌افزار Vitis است.

مسئله مهمی که باید به آن توجه کنیم، تفاوت‌های نرم‌افزار Vivado و ISE است.

اما این تفاوت‌ها شامل چه مواردی هستند؟

تفاوت‌های مهم نرم‌افزار Vivado و ISE

شاید مهم‌ترین تفاوت این دو نرم‌افزار این باشد که مجموعه نرم‌افزاری ISE از چندین نرم‌افزار مختلف تشکیل شده است اما نرم‌افزار Vivado، یک نرم‌افزار واحد است.

شما در هنگام پیاده‌سازی به‌کمک نرم‌افزار ISE، گاهی به‌طور مستقیم و گاهی به‌طور غیر مستقیم از نرم‌افزارهای مختلف استفاده می‌کنید.

مثلاً، وقتی نرم‌افزار ISE را باز می‌کنید تا یک پروژه جدید بسازید و ماجول‌های موردنیازتان را تشکیل دهید، در واقع وارد نرم‌افزار Project Navigator شده‌اید.

یا مثلاً وقتی پروژه‌تان را سنتز می‌کنید، این کار توسط نرم‌افزار دیگری به‌نام XST (مخفف عبارت Xilinx Synthesize Tool) انجام می‌شود.

عملیات پروگرام کردن FPGA نیز توسط نرم‌افزار iMPACT انجام می‌شود.

همچنین، به‌کمک نرم‌افزار ChipScope می‌توانید عملیات تست در حال اجرای مدار را انجام دهید.

بنابراین، همان‌طور که ملاحظه می‌کنید در مجموعه نرم‌افزاری ISE، انواع نرم‌افزارها وجود دارند که در پیاده‌سازی به شما کمک می‌کنند.

نکته‌ای که وجود دارد این است که در صورت استفاده از هر نرم‌افزار، اطلاعاتی تولید می‌شود؛ این اطلاعات، برای مراحل بعدی پیاده‌سازی، در نرم‌افزار دیگری موردنیاز هستند.

مسئله اینجاست که ساختار دیتابیس این اطلاعات، با یکدیگر متفاوت است.

بنابراین، هر نرم‌افزاری که بخواهد از اطلاعات مرحله قبل استفاده کند، باید ابتدا، طی مرحله‌ای به‌نام translation، ساختار داده را به ساختار داده موردنیازش تغییر دهد.

لزوم انجام مرحله translation در بین مراحل مختلف پیاده‌سازی، باعث صرف زمان زیادی می‌شود.

بنابراین، مدت زمان پیاده‌سازی در نرم‌افزار ISE نسبت به نرم‌افزار Vivado طولانی‌تر است.

اما درباره نرم‌افزار Vivado، عملیات پیاده‌سازی به این ترتیب انجام نمی‌شود.

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

در واقع، امکانات مختلف نرم‌افزار Vivado، دستوراتی هستند که شما در این نرم‌افزار اجرا می‌کنید و این امکانات، نرم‌افزار جدیدی نیستند.

با توجه به اینکه تمامی امکانات در یک نرم‌افزار قرار دارند، ساختار اطلاعات آن‌ها یکسان است و نیازی به مرحله translation نیست.

حذف مرحله translation یکی از دلایلی است که باعث می‌شود فرایند پیاده‌سازی در نرم‌افزار Vivado بسیار سریع‌تر از نرم‌افزار ISE باشد.

به‌جز این مورد، تفاوت‌های دیگری نیز بین نرم‌افزار Vivado و ISE وجود دارد.

برای مثال، در نرم‌افزار Vivado، قابلیت HSL وجود دارد که به‌کمک آن می‌توانید به‌کمک برنامه‌نویسی به‌زبان C، ماجول‌های قابل پیاده‌سازی در FPGA را ایجاد کنید.

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

موضوع دیگری که درباره نرم‌افزار Vivado باید با آن آشنا باشیم این است که در این نرم‌افزار، دو فلوی طراحی وجود دارد که در ادامه مقاله درباره آن‌ها توضیح می‌دهم.

انواع فلوی طراحی در نرم‌افزار Vivado

در نرم‌افزار Vivado، دو نوع فلوی طراحی داریم:

  • Project Mode
  • Non-Project Mode

در فلوی Project Mode، عمده کار به‌کمک واسط گرافیکی نرم‌افزار (GUI) انجام می‌شود.

به این ترتیب که شما بدون اینکه وارد جزئیات دستورالعمل‌ها و command‌ها شوید، تنها با کلیک کردن روی گزینه‌های مختلف، کارها را پیش می‌برید.

برای مثال، برای سنتز کردن، به‌راحتی روی گزینه سنتز کلیک می‌کنید.

در صورتی که سنتز کردن، شامل عملیات مختلفی می‌شود که هر کدام، دارای تنظیمات و پیچیدگی‌های خاص خود هستند.

اما در حالت Project Mode، کارها به‌صورت خودکار انجام می‌شود و شما می‌توانید با کلیک کردن روی فرامین مختلف، فرایند طراحی را پیش ببرید.

در حالت Non-Project Mode، شما با GUI و گزینه‌های آماده سروکار ندارید.

بلکه در این حالت، شما با اسکریپت‌نویسی به‌زبان TCL این کارها را انجام می‌دهید.

اما منظور از اسکریپت‌نویسی به‌زبان TCL چیست؟

زبان TCL، یک زبان استاندارد برای انجام فرامین، بدون استفاده از GUI است.

عبارت TCL، مخفف Tool Command Language است.

در واقع، شما تمامی کارهایی که از طریق GUI انجام می‌دهید را می‌توانید به‌کمک تعدادی فرمان انجام دهید.

اگر این فرامین را در یک فایل متنی بنویسید و پشت سر هم اجرا کنید، به این فایل متنی، اسکریپ TCL می‌گوییم.

نکته‌ای که وجود دارد این است که اسکریپت TCL نسبت به کار با GUI، قابلیت‌های بیشتری را در اختیار شما قرار می‌دهد.

در واقع، حوزه اختیارات و کنترل شما بسیار بیشتر از حالت Project Mode است.

به این ترتیب، شما می‌توانید فرایندهای پیاده‌سازی را بر اساس پروژه‌تان به‌صورت customize شده و اختصاصی انجام دهید.

این مسئله در بسیاری از موارد باعث سرعت گرفتن عملیات پیاده‌سازی خواهد شد.

البته، پیاده‌سازی به‌کمک اسکریپت‌نویسی به‌زبان TCL، مستلزم تسلط بر جزئیات فرایند پیاده‌سازی است.

به همین دلیل، در شروع کار با FPGA و نرم‌افزار Vivado، استفاده از این روش توصیه نمی‌شود.

ما نیز در ادامه مبحث آشنایی با نرم‌افزار Vivado، از روش Project Mode استفاده می‌کنیم.

قبل از ورود به محیط نرم‌افزار، ابتدا لازم است که به یک سوال مهم پاسخ دهیم.

پاسخ به این سوال، باورهای غلطی که در رابطه با استفاده از نرم‌افزار Vivado وجود دارد را برطرف می‌کند.

سوال این است که ما چه زمانی به استفاده از نرم‌افزار Vivado نیاز داریم؟

کاربرد نرم‌افزار Vivado

بسیاری از افراد گمان می‌کنند که چون نرم‌افزار Vivado، نرم‌افزار جدید شرکت Xilinx است، حتماً باید برای پیاده‌سازی‌ها از آن استفاده کنیم.

اما واقعیت این است که استفاده از این نرم‌افزار یک انتخاب نیست؛ بلکه یک اجبار است.

همان‌طور که اطلاع دارید، شرکت Xilinx، تراشه‌های FPGA را در خانواده‌های مختلف تولید می‌کند.

برای مثال، تراشه‌های Vertix 5 ،Vertix 4 ،Spartan 6 ،Spartan 3 و Vertix 6 جز خانواده‌های قدیمی‌تر هستند.

البته، بسیاری از این FPGA‌ها همچنان تولید و استفاده می‌شوند و بُردهای حاوی آن‌ها نیز در بازار موجود است. بنابراین، ممکن است برای پروژه‌هایمان نیاز به استفاده از یکی از این FPGA‌ها داشته باشیم.

خانواده‌های جدیدتر، شامل FPGA‌های سری ۷، FPGA‌های سری Altera Scale و Altera Scale+ هستند. همچنین، تراشه‌های Zynq جز خانواده‌های جدید هستند.

نکته‌ای که وجود دارد این است که نرم‌افزار ISE، تا سری ۷ FPGAها را پشتیبانی می‌کند.

در واقع، FPGA‌های سری ۷ به بعد و سایر تراشه‌های جدید، در نرم‌افزار ISE پشتیبانی نمی‌شوند.

نکته مهم‌تر این است که نرم‌افزار ویوادو نیز FPGA‌های قدیمی‌تر را پشتیبانی نمی‌کند. این نرم‌افزار، صرفاً خانواده‌های جدید و از سری ۷ به بعد را پشتیبانی می‌کند.

بنابراین، انتخاب بین ISE و Vivado، یک مسئله سلیقه‌ای نیست؛ بلکه عامل تعیین‌کننده، FPGA‌ای است که قصد استفاده از آن را داریم.

اگر FPGA شما قبل از سری ۷ است، مجبور هستید از نرم‌افزار ISE استفاده کنید.

و اگر FPGA شما سری ۷ و جدیدتر از آن است، باید به‌سراغ نرم‌افزار ویوادو بروید.

در این مقاله که قسمت اول از سری آشنایی با نرم‌افزار ویوادو بود، اطلاعاتی درباره جایگاه این نرم‌افزار و زمان استفاده از آن را کسب کردیم.

اکنون با این اطلاعات مقدماتی می‌توانیم وارد نرم‌افزار ویوادو شویم و یک آشنایی اولیه نسبت به این نرم‌افزار به‌دست آوریم.

در مقاله بعد، به‌کمک پیاده‌سازی یک مثال عملی، شما را با محیط نرم‌افزار ویوادو، نحوه ساخت یک پروژه و امکانات آن آشنا می‌کنم.

امیدوارم از خواندن این مقاله نیز لذت برده باشید. می‌توانید قسمت دوم آشنایی با نرم‌افزار ویوادو را از لینک زیر دنبال کنید.

آشنایی با نرم‌افزار ویوادو - قسمت دوم

آیا برنامه ویدئویی آشنایی با نرم‌افزار ویوادو برای شما مفید بود؟

لطفا نظرتان را در مورد این برنامه در پایین همین پست با دیگران به اشتراک بگذارید. همچنین با کلیک روی هر کدام از دکمه‌های اشتراک گذاری ابتدای این مطلب و به اشتراک‌گذاری آن در شبکه‌های اجتماعی می‌توانید افراد بیشتری را در یادگیری این مطالب سهیم کنید.

کانال تلگرام آموزش FPGA از صفر

برای عضویت در کانال تلگرام و دسترسی به آموزش‌های بیشتر و اطلاع سریع از زمان انتشار آموزش‌ها و تخفیف‌های ویژه، روی دکمه زیر کلیک کنید:

درباره نویسنده:

احمد ثقفی

شاید به این موضوعات نیز علاقه داشته باشید:

  • بسیار خوشحالم که پس از این وقفه ی طولانی به وعده ی خود عمل کردید و امیدوارم این آموزش ها با نظم و سرعت مناسبی که از شما انتظار می ره ادامه پیدا کنه. بسیار خوب می شه که شامل مباحث پیشرفته تری مانند زینک و پنتالینوکس هم بشه. مرسی

    • سلام،

      آموزش فشرده ویوادو به طور کامل ضبط شده است و در حال حاضر در مرحله ادیت است. این آموزش در روزهای آتی به دوره طراحی دیجیتال با FPGA اضافه خواهد شد.

      موضوعاتی که اشاره کردید در برنامه آموزشی ما قرار ندارند. به طور کلی، آموزش‌های این سایت فقط در حوزه توسعه سخت‌افزار خواهند بود و نه توسعه نرم‌افزار.

      موفق باشید.

  • سلام
    آموزش ویوادو قرار بود به عنوان آموزش هدیه برای دوره پردازش سیگنال باشد که با وقفه حداقل 1 ساله سرانجام در فراد اندیش قرار داده شد. آیا این آموزش در حساب کاربری شرکت‌کنندگان قرار داده خواهد شد؟
    با تشکر از فراد اندیش

    • سلام،

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

      موفق باشید.

  • {"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

    ۷ تکنیک پیشرفته کدنویسی برای FPGA

    >