سلام
چندبار تو فروم در مورد Vivado سوال پرسیده شده بود. فکر می کنم الان که کمی تجربه کار با این نرم افزار رو پیدا کردم میشه در موردش حرف زد.
اولین مسئله که حتما همه می دونین اینه که vivado فقط از FPGA های سری 7 به بعد xilinx پشتیبانی میکنه و سری های قبل بهش اضافه نخواهند شد.
نرم افزار vivado هرچیزی که برای طراحی FPGA نیاز دارین تو خودش داره و همه ابزارها رو بصورت یکپارچه یک جا جمع کرده. ابزار core generator، ioplaning، ابزارهای timing، ابزارهای power، ابزارهای embedded، شبیه سازی و ...
برای راحتی کار، vivado از چند layout یا نما تشکیل شده. بعد از انجام عملیات سنتز، میتونین طرح سنتز شده رو تو layout های مختلف vivado (مثل IO Planning، clock planning، floorplanning، timing analysis debug) باز کنین و طراحی رو ادامه بدین. هر کدوم این ابزارها کلی امکانات پیچیده دارن.
چیزی که باعث شد من بر خلاف میلم برم سراغ Vivado این بود که coreهاش کاملتر و جدیدتر هستن. xilinx از وقتی vivado رو داده، یه سری از coreهاش رو فقط رو این پلتفرم نرم افزاری پدیت کرده. به خصوص مشکلات و کمبودهای مربوط به coreهای مرتبط با transceiverها که البته تو این تاپیک نمیگنجه ...
و اما مهمترین ویژگی Vivado چند هسته ای شدن برنامه است. ISE بخاطر تک هسته ای بودنش خیلی عذاب آور بود! موقع انجام عملیاتی مثل سنتز شما کار دیگه ای نمی تونین بکنین. در حالی که محیط Vivado که خیلی کامل هست و تمام ابزارها رو یکجا جمع کرده، کاملا چند هسته ای کار میکنه و شما میتونین از چند ابزار همزمان استفاده کنین. مسئله مهمتر خود عملیات سنتز و implement که البته تو ISE واسه بعضی هاشون به دروغ مینویسه دو هسته ای اجرا میشن اما در واقع اینطور نیست و اون چند هسته ای که ISE میگه هیچ بهبودی تو سرعت نخواهد داشت. سرعت implement تو ISE حالا یا بخاطر تک هسته ای بودن یا الگوریتم قدیمیش، خیلی پایین هست و این مشکل موقع کار با FPGA های بزرگ اعصاب واسه آدم نمیذاره. یه core اترنت ساده واسه Virtex7 با ISE حدود 15 دقیقه زمان میبره تا پیاده سازی بشه. تازه رو سیستم فول پشن من با پردازنده 3.5 گیگاهرتزی i7. در حالی که همین core با vivado حدود 7 دقیقه طول میکشه.
syntax نوشتن constraint ها تو طراحی مبتنی بر vivado فرق کرده و اینجا دیگه فایل ucf جواب نمیده. تو vivado به جای ucf از xdc استفاده میشه که syntax متفاوتی داره. اما نیاز نیست از همون اول درگیر نوشته xdc شد. ابزارهای مختلف vivado، خودشون فایل constraint رو پدیت میکنن. constraint ها می تونن هم برای سنتز و هم برای implement جدا تعریف بشن. در واقع با جزئیات بیشتری میشه برای مراحل مختلف constraint تعریف کرد که من فعلا ازش سر در نمیارم. ضمنا میشه چند گروه constraint داشت برای شرایط پیاده سازی مختلف. یا حتی مثل اینکه میشه برای یک فایل یا core خاص یک فایل constraint جدا داشت. چیزی که موقع استفاده از core ها دیده میشه و حتی بعضی هاشون read only هستن! ضمنا از سری 7 به بعد نرم افزار به شدت به constraint ها گیر میده و نمیذاره همه چی رو به حالت default رها کنین. این مورد تو ISE هم صدق میکنه. مثلا تمام iostandardها رو باید تعریف کنین.
ادیتور و محیط شماتیک هم بالاخره تو Vivado لایق یه طراح حرفه ای شد! (البته من همون notepad++ رو ترجیح میدم).
دیگه چیزی به ذهنم نمیرسه. البته من حدود 2 هفته است که با vivado کار کردم و پورت نوری SFP+ 10Gbps شبکه رو راه انداختم و راضی بودم. البته هنوز به محیط شلوغ و پیچیدش عادت نکردم. فکر میکنم خیی طول بکشه تا بشه به امکانات مختلف برنامه مسلط شد. اگه چیزای جدیدی یاد گرفتم و وقت کردم، تو همین تاپیک مینویسم.
چندبار تو فروم در مورد Vivado سوال پرسیده شده بود. فکر می کنم الان که کمی تجربه کار با این نرم افزار رو پیدا کردم میشه در موردش حرف زد.
اولین مسئله که حتما همه می دونین اینه که vivado فقط از FPGA های سری 7 به بعد xilinx پشتیبانی میکنه و سری های قبل بهش اضافه نخواهند شد.
نرم افزار vivado هرچیزی که برای طراحی FPGA نیاز دارین تو خودش داره و همه ابزارها رو بصورت یکپارچه یک جا جمع کرده. ابزار core generator، ioplaning، ابزارهای timing، ابزارهای power، ابزارهای embedded، شبیه سازی و ...
برای راحتی کار، vivado از چند layout یا نما تشکیل شده. بعد از انجام عملیات سنتز، میتونین طرح سنتز شده رو تو layout های مختلف vivado (مثل IO Planning، clock planning، floorplanning، timing analysis debug) باز کنین و طراحی رو ادامه بدین. هر کدوم این ابزارها کلی امکانات پیچیده دارن.
چیزی که باعث شد من بر خلاف میلم برم سراغ Vivado این بود که coreهاش کاملتر و جدیدتر هستن. xilinx از وقتی vivado رو داده، یه سری از coreهاش رو فقط رو این پلتفرم نرم افزاری پدیت کرده. به خصوص مشکلات و کمبودهای مربوط به coreهای مرتبط با transceiverها که البته تو این تاپیک نمیگنجه ...
و اما مهمترین ویژگی Vivado چند هسته ای شدن برنامه است. ISE بخاطر تک هسته ای بودنش خیلی عذاب آور بود! موقع انجام عملیاتی مثل سنتز شما کار دیگه ای نمی تونین بکنین. در حالی که محیط Vivado که خیلی کامل هست و تمام ابزارها رو یکجا جمع کرده، کاملا چند هسته ای کار میکنه و شما میتونین از چند ابزار همزمان استفاده کنین. مسئله مهمتر خود عملیات سنتز و implement که البته تو ISE واسه بعضی هاشون به دروغ مینویسه دو هسته ای اجرا میشن اما در واقع اینطور نیست و اون چند هسته ای که ISE میگه هیچ بهبودی تو سرعت نخواهد داشت. سرعت implement تو ISE حالا یا بخاطر تک هسته ای بودن یا الگوریتم قدیمیش، خیلی پایین هست و این مشکل موقع کار با FPGA های بزرگ اعصاب واسه آدم نمیذاره. یه core اترنت ساده واسه Virtex7 با ISE حدود 15 دقیقه زمان میبره تا پیاده سازی بشه. تازه رو سیستم فول پشن من با پردازنده 3.5 گیگاهرتزی i7. در حالی که همین core با vivado حدود 7 دقیقه طول میکشه.
syntax نوشتن constraint ها تو طراحی مبتنی بر vivado فرق کرده و اینجا دیگه فایل ucf جواب نمیده. تو vivado به جای ucf از xdc استفاده میشه که syntax متفاوتی داره. اما نیاز نیست از همون اول درگیر نوشته xdc شد. ابزارهای مختلف vivado، خودشون فایل constraint رو پدیت میکنن. constraint ها می تونن هم برای سنتز و هم برای implement جدا تعریف بشن. در واقع با جزئیات بیشتری میشه برای مراحل مختلف constraint تعریف کرد که من فعلا ازش سر در نمیارم. ضمنا میشه چند گروه constraint داشت برای شرایط پیاده سازی مختلف. یا حتی مثل اینکه میشه برای یک فایل یا core خاص یک فایل constraint جدا داشت. چیزی که موقع استفاده از core ها دیده میشه و حتی بعضی هاشون read only هستن! ضمنا از سری 7 به بعد نرم افزار به شدت به constraint ها گیر میده و نمیذاره همه چی رو به حالت default رها کنین. این مورد تو ISE هم صدق میکنه. مثلا تمام iostandardها رو باید تعریف کنین.
ادیتور و محیط شماتیک هم بالاخره تو Vivado لایق یه طراح حرفه ای شد! (البته من همون notepad++ رو ترجیح میدم).
دیگه چیزی به ذهنم نمیرسه. البته من حدود 2 هفته است که با vivado کار کردم و پورت نوری SFP+ 10Gbps شبکه رو راه انداختم و راضی بودم. البته هنوز به محیط شلوغ و پیچیدش عادت نکردم. فکر میکنم خیی طول بکشه تا بشه به امکانات مختلف برنامه مسلط شد. اگه چیزای جدیدی یاد گرفتم و وقت کردم، تو همین تاپیک مینویسم.
دیدگاه