آموزش ساخت یک پردازنده با Verilog HDL از ابتدا

Building a Processor with Verilog HDL from Scratch

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: استفاده از Xilinx Vivado 2020.2 Startegies برای پیاده سازی CPU مبتنی بر Verilog Buliding Custom Intruction Set برای پاسخگویی به استفاده از منابع استراتژی های افزودن برنامه و حافظه داده در داخل پردازنده استراتژی های اضافه کردن Jump و Branching Instructions در داخل پردازنده پیش نیازها:Fundamentals Digital Electron

بیشتر برنامه‌های کاربردی قرن بیست و یکم به سخت‌افزار قدرتمندی نیاز دارند، اما همچنین به همراه کنترل‌کننده متمرکزی که امکان توسعه الگوریتم‌های پیچیده را فراهم می‌کند. با ورود به هوش مصنوعی یا دستگاه های مبتنی بر ابر و با افزایش پیچیدگی سیستم ها هر روز، نیاز به ترکیب چند نمونه پردازنده با پیشرفت در عصر هوش مصنوعی اجباری می شود. Zynq و Microblaze دو جایگزین محبوب هستند که در بازار وجود دارند و برای تقریباً هر نیاز کاربردی مناسب هستند. الزامات استفاده از چندین نمونه از پردازنده یعنی. چندین نمونه از پردازنده نرم Microblaze یا استفاده از یک پردازنده سخت مانند Zynq Processor به همراه نمونه های منفرد یا چندگانه Microblazer برای رسیدگی مستقل به نیازهای پردازش داده و کنترل ضروری است. چالش اساسی ترکیب چند نمونه از پردازنده های نرم مانند Microblaze تعداد منابع مصرف شده برای پیاده سازی Microblaze در FPGA است. از آنجایی که FPGA از مقدار محدودی از منابع FPGA تشکیل شده است، پارتیشن سخت افزار و نرم افزار نقش برجسته ای در ساخت سیستم های پیچیده ایفا می کند. روش جایگزین محبوب دیگری که توسط مهندسان جاسازی شده برای ساخت یک CPU/پردازنده سفارشی با تنها عملکرد مورد نیاز دنبال می‌شود و در نتیجه مقدار زیادی از منابع را در مقایسه با افزودن نمونه Microblaze صرفه‌جویی می‌کند. در این دوره تمام اصول مورد نیاز برای ساخت یک پردازنده/سی پی یو ساده با Verilog HDL و استراتژی هایی برای آزمایش عملکرد آن مورد بحث قرار می گیرد. پس از گذراندن این دوره، تمام مهارت های لازم برای ساخت معماری پیچیده CPU برای برآوردن نیازها را خواهید فهمید. با آرزوی بهترین ها برای ساخت پردازنده خود.


سرفصل ها و درس ها

اضافه کردن واحد حساب Adding Arithmetic Unit

  • آشنایی با معماری پردازنده Understanding Processor architecture

  • دستور جلسه Agenda

  • انواع دستورالعمل Types of Instructions

  • حالت های آدرس دهی Addressing Modes

  • درک Intruction Register Understanding Intruction Register

  • افزودن Instruction Register و GPR به Processor Adding Instruction Register and GPR to Processor

  • آشنایی با دستورات محاسباتی و حرکتی پردازنده Understanding Arithmetic and Move intructions of Processor

  • اضافه کردن دستورالعمل های MOV Adding MOV Instructions

  • اضافه کردن دستورات حسابی Adding Arithmetic Instructions

  • افزودن سل برای تأیید دستورالعمل P1 Adding TB to verify Instructions P1

  • افزودن سل برای تأیید دستورالعمل P2 Adding TB to verify Instructions P2

  • کد طراحی Design Code

  • کد تست میز Testbench Code

  • اسلایدهای OneNote OneNote Slides

  • A11: آزمایش عملیات ضرب A11 : Testing Multiplication operation

اضافه کردن واحد منطقی Adding Logical Unit

  • دستور جلسه Agenda

  • پشتیبانی از عملیات منطقی Supported Logical Operations

  • افزودن عملیات منطقی به RTL Adding Logical operations to RTL

  • افزودن TB برای تأیید عملیات منطقی Adding TB to verify Logical Operations

  • تجزیه و تحلیل خروجی RTL Analyzing RTL output

  • کد طراحی Design Code

  • کد تست میز Testbench Code

  • اسلایدهای OneNote OneNote Slides

  • A21: آزمایش عملیات منطقی در حالت ثبت A21 : Testing Logical Operation in Register mode

افزودن پرچم های شرایط Adding Conditions Flags

  • دستور جلسه Agenda

  • استفاده از پرچم های وضعیت Condition flags usage

  • منطق برای حمل پرچم Logic for Carry flag

  • منطق برای علامت و پرچم صفر Logic for Sign, and Zero Flag

  • منطق برای پرچم سرریز Logic for Overflow flag

  • افزودن پرچم Sign به RTL Adding Sign flag to RTL

  • افزودن پرچم حمل به RTL Adding Carry flag to RTL

  • اضافه کردن پرچم صفر به RTL Adding Zero flag to RTL

  • اضافه کردن پرچم سرریز به RTL Adding Overflow flag to RTL

  • بررسی عملکرد پرچم های شرایط Verifying operation of condition flags

  • کد طراحی Design Code

  • کد تست میز Testbench Code

  • اسلاید OneNote OneNote Slide

افزودن حافظه برنامه و داده Adding Program and Data memory

  • دستور جلسه Agenda

  • معماری پردازنده بر اساس مدل حافظه Processor architecture based on Memory model

  • کار با Memory Generator IP Working with Memory Generator IP

  • کد Code

  • فایل COE COE File

  • کار با آرایه های Verilog Working with Verilog arrays

  • کد Code

  • افزودن حافظه به پردازنده RTL P1 Adding Memory to Processor RTL P1

  • تبدیل بلوک های مستقل همیشه به وظایف Converting independent always block to tasks

  • اضافه کردن منطق برای خواندن دستورالعمل ها از حافظه برنامه پس از تاخیر ثابت Adding logic to read Instructions from Program Memory after fixed delay

  • افزودن دستورالعمل برای کار با پورت ها و حافظه داده Adding Instructions to work with Ports and Data Memory

  • استفاده از برنامه برای آزمایش عملکرد RTL Program use for testing operation of RTL

  • افزودن سل برای تأیید عملکرد RTL Adding TB to verify operation of RTL

  • کد طراحی Design Code

  • کد تست میز Testbench Code

  • اسلایدهای OneNote OneNote Slides

  • A41 A41

اضافه کردن دستورالعمل‌های پرش و انشعاب Adding Jumping and Branching Instructions

  • دستور جلسه Agenda

  • دستورالعمل های شاخه و پرش پردازنده ما را پشتیبانی می کند Branch and Jump Instructions our processor support

  • عملیات دستورالعمل های پرش Operation of Jump Instructions

  • افزودن دستورالعمل های پرش به پردازنده RTL Adding Jump instructions to Processor RTL

  • اصلاح FSM برای ترکیب Jump، Branch و Halt: فلوچارت Modifying FSM to incorporate Jump, Branch and Halt : Flowchart

  • افزودن FSM به RTL Adding FSM to RTL

  • تست برنامه موجود با FSM جدید Testing existing program with new FSM

  • کد برای تأیید دستورالعمل های پرش و شاخه Code to Verify Jump and Branch Instructions

  • اجرای کد تست بنچ Executing Testbench Code

  • کد طراحی Design Code

  • کد تست میز Testbench Code

  • محتوای حافظه برنامه Program memory content

  • اسلایدهای OneNote OneNote Slides

نمایش نظرات

Udemy (یودمی)

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

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

آموزش ساخت یک پردازنده با Verilog HDL از ابتدا
جزییات دوره
3 hours
64
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
753
4.6 از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Kumar Khandagle Kumar Khandagle

رهبر توسعه دهنده FPGA @ FinTech