سخنرانی اصلی اینتل در مورد رسمی یک برانکار ذهن

سخنرانی اصلی اینتل در مورد رسمی یک برانکار ذهن

گره منبع: 2528571

Synopsys has posted on the SolvNet site a fascinating talk given by Dr. Theo Drane of Intel Graphics. The topic is datapath equivalency checking. Might sound like just another Synopsys VC Formal DPV endorsement but you should watch it anyway. This is a mind-expanding discussion on the uses of and considerations in formal which will take you beyond the routine user-guide kind of pitch into more fascinating territory.

اینتل کلیدی در رسمی

Intellectual understanding versus sample testing

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

Formal encourages you to understand the functionality at a deep level (at least if you want to deliver a valuable result). In the example above, a simple question – can z ever be all 1’s – fails to demonstrate an example in a billion cycles on a simulator. Not surprising, since this is an extreme corner case. A formal test provides a specific and very non-obvious example in 188 seconds and can prove this is the only such case in slightly less time.

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

مسائل مربوط به مشخصات

Theo’s next example is based on a bug vending machine (so called because when you press a button you get a bug). This looks like a pretty straightforward C to RTL equivalence check problem, C model on the left, RTL model on the right. One surprise for Theo in his early days in formal was that right-shift behavior in the C-model is not completely defined in the C standard, even though gcc will behave reasonably. However, DPV will complain about a mismatch in a comparison with the RTL, as it should. Undefined behavior is a dangerous thing to rely on.

رسمی به عنوان یک دستگاه فروش ایراد

Spec comparison between C and RTL comes with other hazards, especially around bit widths. Truncation or loss of a carry bit in an intermediate signal (#3 above) are good examples. Are these spec issues? Maybe a gray area between spec and implementation choices.

Beyond equivalence checking

به نظر می رسد هدف اصلی DPV بررسی هم ارزی بین یک مرجع C یا RTL و یک پیاده سازی RTL است. اما این نیاز نسبتاً نادر است و راه‌های مفید دیگری نیز وجود دارد که می‌توان از چنین فناوری استفاده کرد. ابتدا یک کلاسیک در دنیای پیاده سازی - تغییری ایجاد کردم، یک اشکال را برطرف کردم - آیا در نتیجه اشکال جدیدی معرفی کردم؟ کمی شبیه بررسی SEQ بعد از افزودن گیت ساعت. تحلیل قابلیت دسترسی در خروجی های بلوک ممکن است در برخی موارد کاربرد مفید دیگری باشد.

Not just equivalence checking

Theo gets even more creative, asking trainees to use counter examples to better understand the design, سودوکوس را حل کنید or factorize integers. He acknowledges DPV make be an odd way to approach such problems but points out that his intent is to break the illusion that DPV is only for equivalence checking. Interesting idea and certainly brain-stretching to think through such challenges. (I confess I immediately started thinking about the Sudoku problem as soon he mentioned it.)

بسته شدن

Theo concludes with a discussion on methodologies important in production usage, around constraints, regressions and comparisons with legacy RTL models. Also the challenges in knowing whether what you are checking actually matches the top-level natural language specification.

سخنرانی بسیار پر انرژی، ارزش دیدن را دارد اینجا در SolvNet!

اشتراک گذاری این پست از طریق:

تمبر زمان:

بیشتر از نیمه ویکی