آموزش Verilog برای یک مهندس FPGA با مجموعه طراحی Xilinx Vivado

Verilog for an FPGA Engineer with Xilinx Vivado Design Suite

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره: استفاده از اصول برنامه نویسی Verilog در Xilinx FPGA که به مصاحبه های شغلی مهندس RTL کمک می کند. جریان Vivado Design Suite برای طراحی سیستم دیجیتال را درک کنید. اشکال زدایی سخت افزار در Vivado یعنی. تحلیلگر منطقی یکپارچه، I/O مجازی. سبک های مختلف مدل سازی در زبان توصیف سخت افزار. نحوه استفاده از Xilinx IP و ایجاد IP های سفارشی. یکپارچه کننده IP جریان طراحی Vivado. نوشتن نیمکت های تست Verilog. طراحی برخی از پروژه های دنیای واقعی مانند: رابط PMOD DA4 DAC، Function Generator، Small Processor Architecture، UART Interface، PWM، BIST for Development و بسیاری دیگر. سوالات متداول مصاحبه پیش نیازها: مبانی مدار دیجیتال مزایای بیشتری به همراه خواهد داشت.

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

این دوره استفاده از سبک مدل‌سازی، تکالیف مسدود و غیر مسدود، FSM قابل ترکیب، ساخت حافظه‌ها با منابع حافظه بلاک و توزیع، یکپارچه‌ساز IP Vivado و تکنیک‌های اشکال‌زدایی سخت‌افزار مانند ILA و VIO را نشان می‌دهد. این دوره به بررسی جریان طراحی FPGA با مجموعه طراحی Xilinx Vivado به همراه بحث در مورد استراتژی های پیاده سازی برای دستیابی به عملکرد مطلوب می پردازد. پروژه های متعددی با جزئیات نشان داده شده اند تا کاربرد ساختارهای Verilog را برای اتصال دستگاه های جانبی واقعی به FPGA درک کنند. یک بخش جداگانه در مورد نوشتن Testebench و معماری FPGA، درک بیشتری از منابع داخلی FPGA و مراحل انجام تأیید طراحی ایجاد می‌کند.


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

در حال نصب Vivado Installing Vivado

  • هدف Target

  • نحوه دانلود و نصب Vivado IDE بر روی کامپیوتر How to download and Install Vivado IDE on PC

  • افزودن فایل مجوز Adding License File

  • Xilinx Vivado Webpack LIC FILE Xilinx Vivado Webpack LIC FILE

  • اضافه کردن بردهایی مانند Nexys 4 DDR که در Vivado موجود نیستند Adding boards such as Nexys 4 DDR which are not available in the Vivado

  • فایل های برد Board Files

  • خطای رایج با Vivado: بسته قابل توزیع مجدد Microsoft Visual C++ نادرست است Common Error with Vivado: Incorrect Microsoft Visual C++ redistributable package

  • IDE مبتنی بر ابر برای یادگیری ساختارهای Verilog بدون Vivado Cloud based IDE for learning Verilog constructs without Vivado

Vivado Design Flow قسمت 1 Vivado Design Flow Part 1

  • هدف Target

  • ایجاد پروژه جدید و افزودن فایل منبع Creating New Project and adding Source File

  • افزودن کد منبع Adding Source Code

  • درک کد منبع Understanding Source Code

  • RTL شماتیک P1 RTL Schematic P1

  • RTL شماتیک P2 RTL Schematic P2

  • شبیه سازی رفتاری: نیروی ثابت Behavioral Simulation : Force Constant

  • شبیه سازی رفتاری: ساعت نیرو Behavioral Simulation : Force Clock

  • میز تست معمولی Typical Testbench

  • سنتز P1 Synthesis P1

  • سنتز P2 Synthesis P2

  • پیاده سازی Implementation

  • تولید فایل برنامه نویسی Generating Programming File

  • Vivado GUI Insight Vivado GUI Insight

  • کد ویدیوی بعدی Code for next Video

  • گزینه های شبیه سازی مفید Useful Simulation Options

  • شبیه سازی پورت های چند بیتی P1 Simulation Multibit ports P1

  • شبیه سازی پورت های چند بیتی P2 Simulation Multibit ports P2

  • استفاده از RTL View در Vivado Use of RTL View in Vivado

  • استفاده از Post Synthesis View در Vivado Use of Post Synthesis View in Vivado

  • یک کد Verilog برای نیم جمع کننده طراحی کنید Design a Verilog Code for Half adder

  • برای تأیید عملکرد Half Adder محرک های دستی ایجاد کنید. Generate manual stimuli to verify the functionality of Half adder.

  • RTL و Tecnhnology شماتیک نیم جمع کننده را به اشتراک بگذارید Share RTL and Tecnhnology Schematic of Half adder

Vivado Design Flow قسمت 2 Vivado Design Flow Part 2

  • هدف Target

  • انواع پروژه در ویوادو Project Types in Vivado

  • آشنایی با پروژه برنامه ریزی ورودی/خروجی Understanding I/O Planning Project

  • انواع پروژه و معنی آنها در ویوادو Types of Project and their meaning in Vivado

  • آشنایی با تنظیمات سنتز Understanding Synthesis Settings

  • دروازه ساعت در سنتز Clock Gating in Synthesis

  • رمزگذاری FSM FSM Encoding

  • مبانی رمزگذاری FSM Fundamentals of FSM Encoding

  • استراتژی های ترکیبی از پیش پیکربندی شده Vivado Vivado Pre-configured Synthesis Strategies

  • نمایش استراتژی های پیاده سازی در ویوادو Implementation Strategies Demonstration in Vivado

  • کد Code

  • یک استراتژی Power Optimization اضافه کنید و تغییرات را در Schematic و Power مشاهده کنید Add a Power Optimization strategy and observe the changes in Schematic and Power

  • جریان طراحی FPGA FPGA Design Flow

  • مراجع برای مطالعه بیشتر References for further study

  • نمایش جریان طراحی FPGA کامل Complete FPGA Design Flow Demonstration

  • کد مورد استفاده در نمایش Code Used in the Demonstration

  • شکل موج Sim نادرست در Post Synthesis and Post Implementation Testbench Incorrect Sim waveform in Post Synthesis and Post Implementation Testbench

  • درک سلسله مراتب پوشه Vivado Understanding Folder hierarchy of Vivado

  • اکنون جریان طراحی کامل FPGA و اشتراک‌گذاری عکس فوری از هر مرحله را امتحان کنید Now you try Complete FPGA Design flow and Share snapshot of each step

  • آزمون جریان طراحی FPGA FPGA Design Flow Quiz

سوالات متداول از ماژول قبلی Commonly Asked Question's from previous Module

  • چگونه LUT 6 ورودی Mux 4:1 را پیاده سازی می کند؟ (عمارش ماندال) How 6-input LUT implements 4:1 Mux ? (Amaresh Mandal)

مبانی Verilog Fundamentals of Verilog

  • هدف Target

  • شناسه ها Identifiers

  • شروع کار با نوع reg و wire Getting Started with reg and wire type

  • فرمت شماره Number Format

  • انواع داده Verilog Verilog Datatypes

  • مکانیسم گزارش P1 Reporting Mechanism P1

  • مکانیسم گزارش P2 Reporting Mechanism P2

  • مکانیسم گزارش نمایشی P1 Demonstration Reporting Mechanism P1

  • مکانیسم گزارش نمایشی P2 Demonstration Reporting Mechanism P2

  • کد Code

  • نمایش انواع داده ها Datatypes Demonstration

  • کد Code

  • اپراتورهای Verilog P1 Verilog Operators P1

  • Verilog Operators P2 Verilog Operators P2

  • اپراتورهای Verilog P3 Verilog Operators P3

  • Verilog Operators P4 Verilog Operators P4

  • کد Code

  • درک فرمت اعداد Understanding of Number Format

سبک های مدل سازی Modeling Styles

  • هدف Target

  • سبک مدل سازی P1 Modeling Style P1

  • سبک مدلسازی P2 Modeling Style P2

  • تظاهرات Demonstration

  • امتحان Quiz

اپراتورهای واگذاری در Verilog Assignment Operators in Verilog

  • هدف Target

  • ارزیابی رویه ای در مقابل ارزیابی مستمر Procedural Assingment Vs Continuous Assingment

  • درک تکلیف مستمر Understanding Continuous Assignment

  • کد Code

  • درک اپراتور انتساب رویه ای Understanding Procedural Assignment Operator

  • کد Code

  • تفاوت در اپراتورهای تخصیص مستمر و رویه ای Differences in Continuous and Procedural Assignment Operators

  • تظاهرات Demonstration

  • کد Code

  • تعویض مقادیر متغیر Swapping of Variable values

  • کد Code

  • A101 A101

  • A102 A102

  • A103 A103

سوالات متداول FAQ

  • چه اتفاقی می‌افتد اگر در Sequential Ckt به جای NB، عبارات مسدودکننده را اعلام کنم What happens if I declare blocking statements rather than NB in Sequential Ckt

سبک مدل سازی رفتاری Behavioral Modeling Style

  • هدف Target

  • اسکلت مدلسازی رفتاری Behavioral Modeling Skeleton

  • بلوک اولیه: ساختارهای مدلسازی رفتاری P1 Initial Block : Behavioral Modeling Constructs P1

  • Always Block: مدلسازی رفتاری P2 را می سازد Always Block : Behavioral Modeling Constructs P2

  • Blocking and Non Blocking Assig. اپراتور: ساختار مدلسازی رفتاری P3 Blocking and Non-Blocking Assig. Operator : Behavioral Modeling Construct P3

  • تظاهرات Demonstration

  • کد Code

  • IF ELSE اسکلت IF ELSE skeleton

  • 2:1 Mux : Combinational Circuit P1 2:1 Mux : Combinational Circuit P1

  • کد Code

  • 4:1 Mux : Combinational Circuit P2 4:1 Mux : Combinational Circuit P2

  • کد Code

  • اسکلت مورد Case Skeleton

  • تبدیل باینری به 7 سگمنت Binary to 7-Seg Converter

  • کد Code

  • تفاوت بین IF ELSE و CASE Differences between IF ELSE and CASE

  • کد Code

  • فلیپ فلاپ داده: مدار متوالی P1 Data Flipflop : Sequential Circuit P1

  • کد D-Flipflop D-Flipflop Code

  • شمارنده بالا: مدار متوالی P2 Up Counter : Sequential Circuit P2

  • کد پیشخوان Counter Code

  • شمارنده ویژه P1 Special Counter P1

  • شمارنده ویژه P2 Special Counter P2

  • 4:1 Mux را با خروجی True و Complemented پیاده سازی کنید Implement 4:1 Mux with True and Complemented Output

  • اجرای D-Flipflop با تنظیم مجدد همزمان و ناهمزمان Implement D-Flipflop with Synchronous and Asynchronous Reset

  • انکودر 8×3 با اولویت طراحی. جدول حقیقت در تب دستورالعمل ذکر شده است. Design 8 x 3 Priority Encoder. Truth table is mentioned in the instruction tab.

سبک مدل سازی سطح دروازه Gate Level Modeling Style

  • هدف Target

  • نیم جمع کننده: همه شبکه ها تعریف شده اند Half-adder : All nets defined

  • کد Code

  • جمع کننده کامل: چند شبکه تعریف نشده Full-adder : Few Undefined nets

  • روش جایگزین Alternative Method

  • A131 A131

  • A132 A132

سبک مدل‌سازی سطح سوئیچ Switch level Modeling Style

  • هدف Target

  • مبانی Fundamentals

  • معکوس کننده Inverter

  • کد Code

  • NAND GATE NAND GATE

  • کد Code

  • و دروازه AND Gate

  • کد Code

  • 141 141

سبک مدلسازی سازه Structural Modeling Style

  • هدف Target

  • مبانی P1 Fundamentals P1

  • مبانی P2 Fundamentals P2

  • تمام جمع کننده Full adder

  • کد Code

  • 4:1 مکس 4:1 Mux

  • کد Code

  • 151 151

  • 152 152

  • 153 153

ورودی طراحی مبتنی بر شماتیک با یکپارچه کننده IP و Xilinx IP Schematic based Design Entry with IP integrator and Xilinx IP's

  • هدف Target

  • نحوه ایجاد IP How to create IP

  • یک BD با IP ایجاد کنید Create a BD with IP

  • نحوه رفرش کردن مخزن IP How to refresh IP repository

  • نحوه به روز رسانی کد منبع IP How to Update IP Source Code

  • نادیده گرفتن پارامترهای رابط کاربری گرافیکی Override GUI parameters

  • پیاده سازی شیفت رجیستر 4 بیتی Implementing 4-bit Shift Register

  • پیاده سازی 4 بیتی Ripple Carry Adder P1 Implementing 4-bit Ripple Carry Adder P1

  • پیاده سازی 4 بیتی Ripple Carry Adder P2 Implementing 4-bit Ripple Carry Adder P2

  • طراحی فیلترهای دیجیتال با استفاده از یکپارچه کننده IP Design of Digital Filters using IP integrator

  • A151 A151

  • A152 A152

خاطرات Memories

  • هدف Target

  • مبانی حافظه Memory Fundamentals

  • درک اندازه حافظه Understanding Memory Size

  • RAM تک پورت: روش کلی Single Port RAM : GENERAL METHOD

  • کد Code

  • RAM تک پورت: LANGUAGE TEMPLATE Single Port RAM : LANGUAGE TEMPLATE

  • RAM تک پورت: روش IP Single Port RAM : IP Method

  • رام تک پورت Single Port ROM

  • کد متلب Matlab Code

  • فایل COE COE File

  • A161 A161

  • A162 A162

  • A163 A163

ماشین های حالت محدود Finite State Machines

  • هدف Target

  • اصول FSM FSM Fundamentals

  • مور FSM Moore FSM

  • Mealy FSM Mealy FSM

  • روش پیاده سازی FSM FSM Implementation Methodology

  • 3-روش فرآیند: Moore FSM 3-Process Methodology : Moore FSM

  • کد Code

  • 2-روش فرآیند: Moore FSM 2-Process Methodology : Moore FSM

  • کد Code

  • 1-روش فرآیند: Moore FSM 1-Process Methodology : Moore FSM

  • کد Code

  • 3-روش فرآیند: Mealy FSM 3-Process Methodology : Mealy FSM

  • 2-روش فرآیند: Mealy FSM 2-Process Methodology : Mealy FSM

  • کد Code

  • 1-روش فرآیند: Mealy FSM 1-Process Methodology : Mealy FSM

  • کد Code

  • روش های پیشنهادی برای FSM Recommended Methodologies for FSM

  • سیستم همزمان در مقابل سیستم ناهمزمان Synchronus Vs Asynchronus System

  • ردیاب توالی Sequence Detector

  • آشکارساز توالی همپوشانی Overlapping Sequence Detector

  • آشکارساز توالی غیر همپوشانی Non-Overlapping Sequence Detector

  • آشکارساز توالی همپوشانی Overlapping Sequence Detector

  • کد Code

  • آشکارساز توالی غیر همپوشانی Non-Overlapping Sequence Detector

  • کد Code

  • 221 221

  • 222 222

  • 223 223

  • 224 224

نوشتن میز تست Writing Testbenches

  • هدف Target

  • درک سیگنال ها Understanding Signals

  • ایجاد دوره ساعت نقطه ثابت Generating Fixed Point Clock Period

  • تولید سیگنال های ساعت ممیز شناور Generating Floating Point Clock Signals

  • تظاهرات Demonstration

  • کد Code

  • تولید سیگنال تنظیم مجدد Generating Reset Signal

  • تولید محرک برای سیگنال های چند بیتی Generating Stimulus for Multibit Signals

  • درک وظیفه Understanding Task

  • 2:1 مکس 2:1 Mux

  • کد Code

  • مبدل باینری به بیش از 3 Binary to Excess-3 Converter

  • کد Code

  • دیتا فلیپ فلاپ Data Flipflop

  • کد Code

  • پیشخوان Counter

  • کد Code

  • رم تک پورت Single Port RAM

  • کد Code

  • 4 بیت Down counter را با پین Reset و Load Control پیاده سازی کنید Implement 4-bit Down counter with Reset and Load Control pin

  • Demux 1:4 را پیاده سازی و تست کنید و شکل موج خود را به اشتراک بگذارید Implement and Test 1:4 Demux and Share your Waveform

  • یک شمارنده حلقه 4 بیتی طراحی کنید به طوری که بیت MSB ابتدا به جای LSB 1 شود. Design a 4-bit Ring Counter such that MSB bit first becomes 1 instead of LSB.

اشکال زدایی سخت افزار با Vivado (سخت افزار مورد نیاز) Hardware Debugging with Vivado (Required Hardware)

  • هدف Target

  • تجزیه و تحلیل منطق یکپارچه P1 Integrated Logic Analyzer P1

  • تجزیه و تحلیل منطق یکپارچه P2 Integrated Logic Analyzer P2

  • تجزیه و تحلیل منطق یکپارچه P3 Integrated Logic Analyzer P3

  • ILA با IP Integrator ILA with IP Integrator

  • ورودی/خروجی مجازی (VIO) P1 Virtual I/O (VIO) P1

  • ورودی/خروجی مجازی (VIO) P2 Virtual I/O (VIO) P2

  • ورودی/خروجی مجازی (VIO) P3 Virtual I/O (VIO) P3

ورودی/خروجی فایل File I/O

  • هدف Target

  • دسترسی به فایل Accessing File

  • نوشتن داده ها در فایل Writing Data to File

  • کد Code

  • خواندن داده ها از فایل Reading Data from File

  • خواندن چندین ستون از فایل Reading Multiple Columns from File

  • کد Code

  • مثال 1: جمع کننده Exampl 1 : Adder

  • کد Code

  • مثال 2: RAM Example 2: RAM

  • کد Code

پروژه ها Projects

  • هدف Target

  • آشنایی با پروتکل UART Understanding UART Protocol

  • ساعت برای Baud مورد نظر Clock for desired Baud

  • فرستنده UART UART Transmitter

  • گیرنده UART UART Receiver

  • UART TB UART TB

  • کد طراحی Design Code

  • کد سل TB Code

  • رابط جانبی سریال Serial Peripheral Interface

  • کد Code

  • PWM PWM

  • کد Code

  • A231 A231

  • LCD LCD

  • کد Code

  • BIST برای SW و LED BIST for SW and LED

  • کد Code

  • I2C I2C

  • کد Code

RTL برای سنتز RTL for Synthesis

  • تمرین های خوب Good Practices

مبانی معماری FPGA FPGA Architecture Fundamentals

  • هدف Target

  • نیاز به معماری قابل برنامه ریزی مجدد Need of Reprogrammable architecture

  • طبقه بندی PLD PLD Classification

  • شبیه سازی منطق قابل برنامه ریزی Simulating Programmable Logic

  • نمایش PROM در NI Multisim IDE PROM Demonstration on NI Multisim IDE

  • PAL و PLA PAL and PLA

  • SPLD و GAL SPLD and GAL

  • مرور دیتاشیت GAL: 16V8 Going through GAL datasheet : 16V8

  • خلاصه SPLD و GAL SPLD and GAL Summary

  • آشنایی با معماری CPLD Understanding CPLD architecture

  • مقدمه ای بر معماری FPGA Introduction to FPGA Architecture

  • استفاده از مالتی پلکسر گسترده Wide Multiplexer Usage

  • آشنایی با معماری Spartan 6 Understanding Spartan 6 Architecture

  • خلاصه معماری Spartan 6 FPGA Spartan 6 FPGA Architecture Summary

  • طراحی مدار PAL Designing a PAL Circuit.

آماده سازی مصاحبه Interview Preparations

  • فرمت رزومه Resume Format

  • امتحان Quiz

  • سوالات متداول مصاحبه Common Interview Questions

گام بعدی Next Step

  • تأیید RTL با SystemVerilog برای Newbie RTL Verification with SystemVerilog for Newbie

  • تأیید RTL با UVM برای تازه کار RTL Verification with UVM for Newbie

نمایش نظرات

نظری ارسال نشده است.

آموزش Verilog برای یک مهندس FPGA با مجموعه طراحی Xilinx Vivado
خرید اشتراک و دانلود خرید تکی و دانلود | 160,000 تومان (5 روز مهلت دانلود) زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
16 hours
258
Udemy (یودمی) udemy-small
30 بهمن 1401 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
4,786
4.6 از 5
دارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Kumar Khandagle Kumar Khandagle

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

Udemy (یودمی)

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

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