🔔 با توجه به بهبود نسبی اینترنت، آمادهسازی دورهها آغاز شده است. به دلیل تداوم برخی اختلالات، بارگذاری دورهها ممکن است با کمی تأخیر انجام شود. مدت اشتراکهای تهیهشده محفوظ است.
لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش نکات ضروری وربالاگ برای مهندسین طراحی RTL
- آخرین آپدیت
دانلود Verilog Lint essentials for RTL Design Engineer
نکته:
ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:
راهنمای گام به گام از صفر
نقش لینتینگ در تحلیل DUT
تحلیل DUT (دستگاه تحت آزمایش) به دو دسته اصلی تقسیم میشود:
تحلیل ایستا (Static Analysis): در این نوع تحلیل، طراحی بدون اعمال هیچگونه ورودی (تحریک) مورد بررسی قرار میگیرد. هدف اصلی، تجزیه و تحلیل ساختارها و الگوهای کدنویسی برای شناسایی زودهنگام اشکالات، یا استفاده از مدلهای ریاضی برای اطمینان از صحت عملکرد DUT است. مثالهای رایج تحلیل ایستا شامل لینتینگ (Linting) و تأیید رسمی (Formal Verification) میباشند.
تحلیل پویا (Dynamic Analysis): در این روش، مجموعهای از ورودیها بر اساس موارد آزمایشی (Test Cases) به DUT اعمال شده و پاسخ آن برای تأیید عملکرد تحلیل میشود.
اهمیت لینتینگ در طراحی وِریلوگ (Verilog): لینتینگ نقش حیاتی در تضمین کیفیت کد و جلوگیری از بروز خطا در طراحی وِریلوگ ایفا میکند. این فرآیند با اعمال استانداردهای کدنویسی، شناسایی زودهنگام باگها، و بررسی صحت سینتکس و معناشناسی، به مهندسان وِریلوگ کمک میکند تا:
ثبات را در سراسر پایگاه کد حفظ کنند.
خوانایی کد را بهبود بخشند.
از مشکلاتی که ممکن است در شبیهسازی تأثیر نداشته باشند اما در زمان سنتز منجر به نتایج غیرمنتظره شوند، جلوگیری کنند.
مزایای کلیدی لینتینگ در طراحی RTL (Register Transfer Level):یکی از مزایای اصلی لینتینگ در طراحی RTL، توانایی آن در شناسایی موارد نادرست استفاده از کلاکها، ریستها، سبکهای مدلسازی، حلقهها و ساختارهای کنترلی است که میتوانند منجر به طراحیهای غیرقابل سنتز (Un-synthesizable Designs) شوند. دشواری این نوع اشکالات در این است که اغلب در طول دیباگینگ به سختی قابل شناسایی هستند، چرا که معمولاً خطاهای منطقی محسوب میشوند. کشف زودهنگام این مسائل، زمان و تلاش قابل توجهی را برای طراحان صرفهجویی میکند.
بهترین شیوهها برای ریست و کلاک
بهترین شیوهها برای قراردادهای نامگذاری و عملگرهای انتساب
بهترین شیوهها برای حلقهها (Loops)
بهترین شیوهها برای دستورات شرطی Case
بهترین شیوهها برای توابع (Functions) و وظایف (Tasks)
پیشنیازها:
مبانی الکترونیک دیجیتال و زبان وِریلوگ
سرفصل ها و درس ها
روز ۱: مبانی لینت (Lint Basics)
Day 1 : Lint Basics
دستور جلسه
Agenda
انواع تحلیل
Analysis Types
کاربرد لینت
Lint Usage
فرمت معمول نقض لینت P1
Typical format of Lint violation P1
فرمت معمول نقض لینت P2
Typical format of Lint violation P2
فرمت معمول نقض لینت P3
Typical format of Lint violation P3
اجرای لینت با Verilator
Performing Lint with Verilator
اجرای لینت با Vivado 2024.1
Performing Lint with Vivado 2024.1
A1 : بررسی کاربرد IDE
A1 : IDE Usage Check
A2 : بررسی کاربرد IDE
A2 : IDE Usage Check
روز ۲: قوانین لینت P1
Day 2 : Lint Rules P1
دستور جلسه
Agenda
مرور قوانین لینت
Lint Rules Overview
قوانین ریست P1
Reset rules P1
قوانین ریست P2
Reset rules P2
قوانین ریست P3
Reset rules P3
کد بد
Bad Code
کد خوب
Good Code
قوانین کلاک P1
Clock rules P1
قوانین کلاک P2
Clock rules P2
کد بد
Bad Code
کد خوب
Good Code
A3 : درک قانون ریست
A3 : Reset Rule Understanding
A4 : درک قانون ریست
A4 : Reset rule understanding
A5 : درک قانون کلاک
A5 : Clock rule Understanding
A6 : درک قانون کلاک
A6 : Clock rule Understanding
روز ۳: قوانین لینت P2
Day 3 : Lint Rules P2
دستور جلسه
Agenda
قوانین انتساب P1
Assignment rules P1
قوانین انتساب P2
Assignment rules P2
قوانین انتساب P3
Assignment rules P3
قوانین انتساب P4
Assignment rules P4
قوانین انتساب P5
Assignment rules P5
قوانین انتساب P6
Assignment rules P6
قوانین انتساب P7
Assignment rules P7
کد بد
Bad Code
کد خوب
Good Code
عملیاتها
Operations
کد بد
Bad Code
کد خوب
Good Code
قوانین نامگذاری P1
Naming rules P1
قوانین نامگذاری P2
Naming rules P2
قوانین نامگذاری P3
Naming rules P3
قوانین نامگذاری P4
Naming rules P4
کد
Code
قوانین حلقه P1
Loop Rules P1
قوانین حلقه P2
Loop Rules P2
قوانین حلقه P3
Loop Rules P3
حلقه While : کد خوب و بد
While loop : Good & Bad Code
نمایش نظرات