آموزش وریلاگ | پروژه وریلاگ
 گروه تلگرام 
VerilogCode.ir
آموزش وریلاگ | پروژه وریلاگ


آموزش وریلاگ - جلسه 5 :

آموزش وریلاگ آموزش Verilog

دانلود فیلم بالا (جلسه پنجم)

ما در وریلاگ می تونیم با 3 ساختار کد بنویسیم ، ساختار اول با استفاده از کلید واژه گیت ها بود ، که یاد گرفتیم. دو ساختار دیگه assign و always هست ، که با اُپراتور های منطقی و اُپراتور های جبری میشه توی این ساختار ها کد نوشت . به مثال زیر دقت کنید که قراره دو ورودی اَند بشه و در خروجی قرار بگیره :

ISE Project - VerilogCode.ir : \ Box5-1.v
 1-
 2-
 3-
 4-
 5-
 6-
 7- 
 8-
 9-
module MyAnd(
    input   A,
    input   B,
    output  C
    );  
	
    assign C = A & B;     //and(C,A,B);
	
endmodule

با استفاده از اُپراتور & اینکار صورت گرفت ، البته اُپراتور های دیگه هم داریم ، مثل نات ~ ، اور | ، ایکسور ^ ، نَند &~ ، نُر |~ و اُپراتور های دیگه. همیشه یادتون باشه ، وقتی از ساختار assign استفاده می کنید ، همیشه سیگنالی که قراره مقداردهی بشه ، باید از نوع wire باشه و حق نداریم نوع شو reg تعریف کنیم ، در مثال بالا سیگنال C حق نداره reg باشه .

آموزش وریلاگ

حالا بیاین شکل بالا که مثال جلسات قبلی بوده رو به این روش بنویسیم :

ISE Project - VerilogCode.ir : \ Box5-2.v
 1-
 2-
 3-
 4-
 5-
 6-
 7- 
 8-
 9-
10-
11-
12-
13-
14-
15-
16-
17-
module FullAdder(
    input   X,
    input   Y,
    input   W,
    output  S,
    output  C
    );  
	
    wire L,P,Q;
	
    assign L = X ^ Y;
    assign P = L & W;
    assign Q = X & Y;
    assign S = L ^ W;
    assign C = P | Q;
	
endmodule

همینجا بهتون بگم که ترتیب خطوط اصلا مهم نیست ، یعنی شما میتونید اول خط 14 رو بنویسید بعد خطوط بعدی ، وریلاگ میاد همه خطوط رو میخونه تموم که شد ، سخت افزار رو میسازه (خط به خط نمیسازه) . نکته جالب اینکه میشه این کُد رو بصورت خیلی خلاصه تری نوشت ، ما اجازه داریم تا جایی که میتونیم ساده سازی کنیم تا از حجم کُد کم کنیم :

ISE Project - VerilogCode.ir : \ Box5-3.v
 1-
 2-
 3-
 4-
 5-
 6-
 7- 
 8-
 9-
10-
11-
12-
module FullAdder(
    input   X,
    input   Y,
    input   W,
    output  S,
    output  C
    );  
	
    assign S = (X^Y) ^ (W);
    assign C = ((X^Y)&(W)) | (X&Y);
	
endmodule

برای اینکه بهتر درک کنید ، شکل مدار رو بیارید و با کُد مقایسه کنید . امیدوارم نحوه خوندن رو بلد باشید (همیشه اول داخل پرانتز ها انجام میشن و اولویت دارن ، بعدش بیرون پرانتزی ها ) . حالا فهمیدید چرا از این ساختار و این اُپراتور ها استفاده کردیم ؟ چون با قدرت خلاصه نویسی و ساده سازی می تونیم حجم کُد هامون رو بسیار کم کنیم، برخلاف کُد های فصل اول که بسیار طولانی بودند.

تا الان هرچی برنامه نوشتیم بر اساس شکل مدار بود ، یعنی شکل مدار رو داشتیم و کُد معادل شو می نوشتیم . اما آیا تمام قدرت وریلاگ همینه ؟ اینکار هارو که میشد با نرم افزار پروتئوس انجام داد و با رسم شماتیک مدار ، خروجی گرفت . پس چرا وریلاگ اختراع شد ؟
ما در وریلاگ میتونیم دو مدل کُد نویسی کنیم : الف) کد بر اساس شماتیک مدار ب) کُد بر اساس رفتار مدار

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

آموزش وریلاگ

شکل بالا یه مدار ضرب کننده تک بیتی است، که نمیدونیم چطور عمل ضرب رو انجام میده اما می تونیم با کمک اُپراتور های جبری ، توصیف اش کنیم . اُپراتور جبری جمع + ، تفریق - ، ضرب * ، شیفت به راست و چپ >> و << به این صورت نوشته میشن . پس کد ماژول ضرب کننده ما با روش رفتاری میشه :

ISE Project - VerilogCode.ir : \ Box5-4.v
 1-
 2-
 3-
 4-
 5-
 6-
 7- 
 8-
 9-
module Mult(
    input   A,
    input   B,
    output  C
    );  
	
    assign C = A*B;
	
endmodule

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

رفتن به جلسه بعد ...

مشاهده نظرات کاربران




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


morteza

Very Good

شاه پوری

بسیار عالی ست.

سید محسن

ممنون از انرژی تون