آموزش طراحی سیستم های دیجیتال با زبان وریلاگ

آموزش وریلاگ

 

درباره Verilog :

Verilog HDL یک زبان توصیف سخت افزاری است که برای مدل سازی و شبیه سازی سیستم های دیجیتالی استفاده می شود.

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

 

درباره دوره آموزش Verilog :

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

در این دوره از دو نرم افزار Quratus II و ModelSim استفاده می کنیم.

از Quratus II بیشتر برای سنتز کردن مدار و مشاهده خروجی بصورت مجموعه ای از گیت ها و فیلپ فلاپ ها و رجیستر ها و… استفاده می شود.

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

 

آموزش وریلاگ مناسب چه افرادیست :

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

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

 

پیش نیازهای دوره آموزش زبان وریلاگ :

پیش نیاز های این دوره آشنایی متوسط  با مدار منطقی و معماری کامپیوتر است.

دوستانی که آشنایی خوبی با مدار منطقی و معماری کامپیوتر دارند مطالب را به راحتی درک خواهند کرد.

 

آموزش طراحی سیستم های دیجیتال با زبان وریلاگ

 

آنچه در دوره آموزش طراحی سیستم های دیجیتال با زبان وریلاگ یاد خواهید گرفت:

بخش اول : آشنایی با FPGA و نصب و راه اندازی برنامه های مورد نیاز

  • FPGA چیست؟
  • معرفی برد Altera Cyclone IV FPGA 4
  • تفاوت FPGA و میکروکنترلر
  • کاربرد FPGA
  • مزایا و معایب FPGA
  • ASIC چیست؟
  • مزایای و معایب ASIC
  • شرکت های سازنده FPGAوASIC
  • معرفی شرکت XilinxوAltera
  • قابلیت های جدید FPGA
  • معرفی نرم افزارهای مورد نیاز جهت طراحی
  • نحوه ی نصب نرم افزار Quratus II version 13
  • نحوه ی نصب نرم افزار ModelSim_Altera 10.1.d
  • آشنایی با محیط ModelSim_Altera 10.1d
  • معرفی مدار Half Adder
  • طراحی Half Adder در ModelSim
  • آشنایی با wavefrom در Modelsim
  • آشنایی با محیط نرم افزار Quartus II
  • معرفی Block Diagram
  • آشنایی با قطعات و نحوه ی سیم کشی
  • طراحی مدار Half Adder با Block Diagram
  • آشنایی با محیط University Program VWF برای شبیه سازی

بخش دوم : آشنایی با زبان وریلاگ و سطوح طراحی در زبان وریلاگ

  • وریلاگ چیست؟
  • هدف از وریلاگ
  • سبک طراحی در وریلاگ
  • سبک طراحی پایین به بالا
  • سبک طراحی بالا به پایین
  • مراحل طراحی یک سخت افزار
  • وریلاگ بعنوان یک ابزار طراحی
  • وریلاگ برای Simulation
  • TestBench در وریلاگ
  • وریلاگ برای Synthesis
  • سطوح طراحی در زبان وریلاگ
  • Modules
  • نمونه سازی Modules
  • Module Outline
  • Module Ports
  • قواعد دستوری و پایه ای زبان وریلاگ
  • پیاده سازی در سطح گیت
  • شبیه سازی در محیط Quartus II
  • شبیه سازی در محیط ModelSim
  • طراحی مالتی پلکسر ۲ به ۱ در سطح گیت
  • شبیه سازی در محیط Quartus II
  • طراحی مالتی پلسکر ۴ به ۱
  • شبیه سازی در محیط Quartus II

بخش سوم : طراحی در سطح ترانزیستور،آشنایی با بافرها،طراحی سلسله مراتبی

  • طراحی در سطح ترانزیستور
  • معرفی MOSFET
  • معرفی ترانزیستور NMOS
  • معرفی ترانزیستور PMOS
  • عملکرد ترانزیستور NMOS
  • عملکرد ترانزیستور PMOS
  • ترانزیستور MOS بعنوان کلید
  • اعداد صحیح در وریلاگ
  • Logic Value در وریلاگ
  • تاخیر در ترانزیستورها
  • طراحی مدار NAND در سطح ترانزیستور
  • شبیه سازی در محیط ModelSim
  • Abstraction
  • کاربرد بافرها
  • طراحی مالتی پلکسر ۲ به ۱ با بافرها
  • طراحی در سطح گیت بصورت سلسله مراتبی
  • حل مثال از طراحی سلسله مراتبی
  • طراحی FullAdder چهار بیتی
  • شبیه سازی در محیط Quratus II

آموزش طراحی سیستم های دیجیتال با زبان وریلاگ

بخش چهارم : طراحی در سطح RT Level

  • عبارتهای بولینی در سطح RTL
  • عملگرهای حسابی و منطقی ، عملگرهای رابطه ای و الحاق
  • مقایسه Gate Level با RT Level
  • حل مثال با کارنومپ
  • حل مثال در سطح RTL
  • طراحی مدار maj3 در سطح RTL
  • طراحی مدار مالتی پلسکر ۲ به ۱ در سطح RTL
  • عبارت های شرطی Conditional Expressions
  • طراحی مالتی پلکسر ۴ به ۱ با ورودی ۴ بیتی
  • شبیه سازی در محیط کوارتوس
  • طراحی FullAdder 8 بیتی
  • معرفی Concatenation ادغام
  • طراحی TestBenchدر ModelSim
  • طراحی ALU برای چهار عمل اصلی
  • طراحی به روش ساختمان آرایه ای
  • طراحی NOR_GATE به روش آرایه ای

بخش پنجم : طراحی در سطح رفتاری

  • نحوه تفکر در مغز انسان
  • معرفی Behavioral Modeling
  • آشنایی با always Block
  • ساختار طراحی در سطح رفتاری
  • دستورات شرطی در سطح رفتاری
  • مقایسه ی سطح رفتاری با RTL_GATE
  • طراحی گیت XOR
  • حل یک مثال در سطح رفتاری
  • شبیه سازی در محیط Quartus II
  • طراحی دیکودر ۲ به ۴ در سطح رفتاری
  • آشنایی با دستور Case
  • طراحی ALU در سطح رفتاری
  • طراحی مالتی پلکسر ۴ به ۱ در سطح رفتاری
  • شبیه سازی در محیط ModelSim
  • طراحی FullAdder بصورت N_Bit
  • آشنایی با دستور generate
  • آشنایی با دستور parameter
  • کار با حلقه for

بخش ششم : طراحی در سطح رفتاری بخش دوم

  • آشنایی با دستورات Blocking,Non_Blocking
  • حل مثال از Blocking,Non_Blocking
  • طراحی فیلپ فلاپ ها در وریلاگ
  • عملکرد تاخیر در فیلپ فلاپ ها
  • لچ چیست؟
  • طراحی لچ
  • فیلپ فلاپ چیست؟
  • طراحی فیلپ فلاپ با کلاک بالارونده
  • شبیه سازی در محیط Quartus II
  • سنکرون و آسنکرون
  • طراحی DFlipFlop با ریست سنکرون
  • طراحی DFlipFlop با ریست آسنکرون
  • طراحی فیلپ فلاپ با ریست آسنکرون و Load سنکرون با خروجی بافر سه حالته
  • طراحی رجیستر

بخش هفتم : طراحی در سطح رفتاری بخش سوم

  • طراحی شیفت رجیستر با Concatenation
  • طراحی شیفت رجیستر با حلقه for
  • طراحی شیفت رجیستر با ورودی شیفت
  • طراحی کانتر ۸ بیتی
  • طراحی مموری RAM
  • طراحی باس یا گذرگاه مشترک

بخش هشتم : روش طراحی بصورت RTL

  • مفهوم RTL Design
  • مثال دونده برای RTL Design
  • اجزای RTL
  • Datapath در RTL
  • Controller در RTL
  • المنت های تشکیل دهنده Datapath
  • ماشین حالت
  • معرفی ماشین میلی و مور
  • معایب های ماشین میلی و مور
  • طراحی ماشین حالت با مور
  • کاربرد case در ماشین های حالت
  • طراحی مدار more_detector
  • Functional Block Diagram Moore Machine
  • طراحی ماشین حالت با میلی
  • طراحی مدار melay_detector
  • Functional Block Diagram Mealy Machine
  • بلوک ساختمان کنترلر
  • هافمن کدینگ
  • طراحی more_detector به روش هافمن کدینگ

بخش نهم : روش طراحی بصورت RTL بخش دوم

  • انواع متدولوژی
  • متدولوژی RTL
  • RTL Datapath
  • RTL Controller
  • طراحی Serial Adder به روش RTL_Design
  • دید کلی از Serial Adder
  • قسمت DataPath Serial Adder
  • قسمت Controller Serial Adder
  • سیم کشی DataPath Controller
  • طراحی در محیط Quartus II و شبیه سازی
  • RTL Timing

آموزش طراحی سیستم های دیجیتال با زبان وریلاگ

بخش دهم : روش طراحی بصورت RTL حل مسئله

  • کنترل کننده چراغ راهنما در یک بزرگراه
  • طراحی در محیط Quartus II
  • شبیه سازی مدار در محیط Quartus II
  • پیکره بندی مدار بروی FPGA
  • آشنایی با برد Altera DE2
  • آشنایی با محیط Pin Planner
  • پیکره بندی مدار نمونه
  • Program کردن بروی FPGA

بخش یازدهم : طراحی میکروکنترلر

  • ساختار دستورالعملها
  • فضای تخصیص داده شده
  • نوع دستور M
  • نوع دستور I
  • نوع دستور S
  • دستورات مخصوص ALU
  • دستورات پرش شرطی و پرش غیرشرطی
  • Test در میکروکنترلر
  • معماری داخلی میکروکنترلر
  • قسمت Datapath Controller
  • آشنایی با رجیستر های قابل مشاهده
  • آشنایی با رجیسترهای نامرئی
  • زمان بندی و انتقال
  • مراحل انتقالات
  • کامپوننت های میکروکنترلر
  • Program Counter
  • Program Memory
  • Data Memory
  • مالتی پلکسر های موجود در میکروکنترلر
  • ALU در میکروکنترلر
  • Control Unit
  • آشنایی با جدول Control

بخش دوازدهم : طراحی میکروکنترلر بخش دوم

  • طراحی میکروکنترلر در محیط Quratus II
  • شبیه سازی در محیط ModelSim_Altera

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