ویرگول
ورودثبت نام
fpgairan
fpgairan
خواندن ۳ دقیقه·۴ سال پیش

نکات طلایی درباره شبیه سازی و عیب یابی در طراحی سخت افزار

چگونه در طراحی سخت افزار، برنامه نوشته شده را عیب یابی کنیم؟

قبل از اینکه درباره انواع شبیه سازی صحبت کنیم، فرض کنید قراره یک پروژه را با سخت افزار طراحی کنید و زمان هم محدود هست، جهت عیب یابی برنامه نوشته شده چه می کنید؟
شاید پاسخ بعضی از مهندسان این باشه که پس از طراحی با اضافه کردن ip هایی (مثل ILA که میتواند سیگنال های درون FPGA را برامون رسم کنه) به عیب یابی برنامه می پردازیم.

باید گفت پاسخ درسته اما اگه زمان پروژه سه برابر بشه! “با این روش پس از ساعتها طراحی و اجرای برنامه و مشاهده ی نتیجه در سخت افزار، متوجه یک خطا میشیم بعد دوباره تغییر طراحی و باز متوجه خطای بعدی میشیم و بالاخره قبل از رسیدن به نتیجه وقت تمام میشه..” اینجا چاره چیه ؟

راهش اینه که بیاییم کدهای نوشته شده رو قبل از هر چیزی شبیه سازی کنیم و ببینیم پاسخ درستی دارن یا نه که خوشبختانه نرم افزار VIVADO واقعا در این قسمت قدرتمند عمل کرده. خود ویوادو یه شبیه ساز داره به نام XSIM که مخفف Xilinx Simulator هست علاوه بر اون از شبیه ساز هایی مثل Questa ، VCS ،Aldec  و… هم پشتیبانی میکنه.

شبیه سازیِ برنامه ها هم دوحالت کلی داره که باید حتما بهش توجه کرد: زمانی و غیرزمانی (رفتاری)

شبیه سازی غیر زمانی (رفتاری)

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

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

شبیه سازی توان

یکی دیگه از شبیه سازی هایی که انجام میگیره این هست که یک فایل SAIF طراحی میشه تا ببینیم میزان توان مصرفی چقدر هست که مخصوصا برای پروژه های مخابراتی که با باتری و به صورت بیسیم به مدت طولانی کار میکنند خیلی مهم هست.

اگر بخواهیم به جزئیات شبیه سازی بپردازیم، باید گفت که سه بخش دارد:

Compilation

تفسیر کدهای نوشته شده به زبان های Verilog ، VHDL و  SystemVerilog

Elaboration

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

actual Simulation

شبیه سازیِ سیگنال ها و خروجی مدار با استفاده از برنامه ی مرحله قبل و ورودی های شبیه سازی

طراحی سخت افزار - IRANFPGA
طراحی سخت افزار - IRANFPGA
https://iranfpga.ir/vivado-simulator/


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