1 - سطح گیت
جلسه اول (ماژول ها) جلسه دوم (گیت ها) جلسه سوم (نوع سیگنال) جلسه چهارم (پایان فصل)2 - مقداردهی مداوم
جلسه پنجم (اُپراتور ها) جلسه ششم (آرایه ها) جلسه هفتم (شرط ها) جلسه هشتم (فراخوانی ماژول) جلسه نهم (تست بنچ) جلسه دهم (نگاشت حافظه)3 - سطح رفتاری (ترکیبی)
جلسه یازدهم (بلاک Always) جلسه دوازدهم (ابزار ها) جلسه سیزدهم (نوع پردازش) جلسه چهاردهم (نکات تکمیلی) جلسه پانزدهم (پایان فصل)4 - سطح رفتاری (ترتیبی)
جلسه شانزدهم (لبه ها) جلسه هفدهم (تست بنچ 2) جلسه هجدهم (شمارنده ها) جلسه نوزدهم (ضرب و شیفت) جلسه بیستم (استیت ماشین) جلسه بیست و یکم (کشف رشته) جلسه بیست و دوم (فرکانس) جلسه بیست و سوم (نان بلاک) جلسه بیست و چهارم (پایان)5 - جلسات تمرینی
جلسه تمرین اول (تاخیر ها) جلسه تمرین دوم (الحاق-منطق) جلسه تمرین سوم (شیفت ها) جلسه تمرین چهارم (استیت)6 - مثال های پروژه محور
پروژه طراحی پردازنده RTL پروژه پردازنده Maano پروژه پردازنده MIPS7 - ارتباط و گفتگو
ارتباط با نویسنده گروه تلگرام تبلیغات و آگهیآموزش وریلاگ آموزش Verilog
این جلسه قراره توی ورودی یه کلاک رو بگیریم و توی خروجی یه کلاک با فرکانس متفاوتی تحویل بدیم . ماژول مون چیز خاصی نداره ، صرفا یه ورودی کلاک و ریست و یک خروجی تک بیتی که قراره یجوری صفر و یک اش کنیم که سیگنال کلاک ساخته بشه که البته دوره تناوب این کلاک ، ضریبی از دوره تناوب کلاک ورودی مدار باشه .
فرض کنید این ماژول قراره کلاک رو در ورودی بگیره و یه کلاک خروجی با فرکانس ½ تحویل بده ، این ماژول رو میشه با فلیپ فلاپ نوع D پیاده سازی کرد اما من اصلا نمیخوام با شماتیک توصیف اش کنم ، میخوام رفتاری کد نویسی کنم ، پس بیایم رفتار سیگنال ورودی و خروجی رو ببینیم :
الان فرکانس سیگنال آبی دو برابر فرکانس سیگنال صورتی هست ، یا به عبارتی فرکانس سیگنال صورتی ½ فرکانس سیگنال آبی هست یا اگه به کادر قرمز نگاه کنید هر یه دوره کلاک صورتی رنگ به اندازه دو دوره کلاک آبی رنگ هست . برای تولید این سیگنال همونطور که میبینید کافیه توی هر لبه بالارونده کلاک آبی ، ما سیگنال صورتی رو نات کنیم ، به راحتی سیگنال صورتی ساخته خواهد شد.
1- 2- 3- 4- 5- 6- 7- 8- 9- 10- 11- 12- 13- 14- 15-
module Ferq2( input Clk, input Rst, output reg Out ); always @(posedge Clk or negedge Rst) begin if (~Rst) Out=0; else Out=~Out; end endmodule
خیلی ساده کد رو نوشتیم ، در ابتدا که ریست فعال است خروجی ما صفر خواهد بود اما پس از اون با اومدن هر لبه کلاک ، سیگنال خروجی ما نات خواهد شد یک فرکانس ½ برای ما خواهد ساخت .
حالا شکل بالا رو ببینید ، فرض کنید بما گفتن فرکانس خروجی 1/16 فرکانس ورودی باشد ، برای اینکار بجای اینکه در هر لبه کلاک سیگنال صورتی رو نات کنیم باید در هر 8 تا لبه کلاک اینکار رو کنیم ، بنابراین یه شمارنده باید بذاریم تا لبه های کلاک رو بشماره و هرگاه این لبه ها 8 تا شد ، خروجی رو نات کنه :
1- 2- 3- 4- 5- 6- 7- 8- 9- 10- 11- 12- 13- 14- 15- 16- 17- 18- 19- 20- 21- 22- 23- 24- 25- 26- 27-
module Ferq16( input Clk, input Rst, output reg Out ); reg [4:0] i; always @(posedge Clk or negedge Rst) begin if (~Rst) begin Out=0; i=0; end else begin i=i+1; if(i==8) begin Out=~Out; i=0; end end end endmodule
یه متغییر به اسم i گذاشتیم که از 0 تا 8 میشماره و وقتی به 8 رسید خروجی رو نات میکنه و مقدار خود شمارنده صفر میشه تا مجددا آماده بشه برای شمارش 8 تا لبه ی بعدی .
حالا فرض کنید همون مثال قبلی ، یه خروجی با فرکانس 1/16 داریم اما دیوتی سایکل اون 75% هست ، یعنی در هر 16 کلاک ، 12 کلاک خروجی ما 1 باشه و 4 کلاک خروجی ما 0 باشه ، توجه کنین فرکانس ما تغییری نکرده مشابه مثال قبلی همون 1/16 هست اما سیگنال از قرینگی در اومده ، به جای اینکه 8 کلاک صفر باشه و 8 کلاک یک باشه ، 4 کلاک صفر هست و 12 کلاک یک هست .
1- 2- 3- 4- 5- 6- 7- 8- 9- 10- 11- 12- 13- 14- 15- 16- 17- 18- 19- 20- 21- 22- 23- 24- 25- 26- 27- 28- 29-
module Ferq16_75( input Clk, input Rst, output reg Out ); reg [4:0] i; always @(posedge Clk or negedge Rst) begin if (~Rst) begin Out=0; i=0; end else begin i=i+1; if(i==4 || i==16) Out=~Out; if(i==16) i=0; end end endmodule
همونطور که در تصویر هم دیدیم ، در کلاک چهارم و کلاک شونزدهم باید خروجی رو نات کنیم ، وقتی هم که به کلاک شونزدهم رسیدیم ، شمارنده i رو صفر میکنیم تا مجددا این قضیه تکرار بشه . بنابراین ما یاد گرفتیم فرکانس های زوج رو دیگه بسازیم مثل ¼ و 1/8 و 1/10 و ... حتی با دیوتی سایکل های متفاوت . البته میشه فرکانس های فرد رو هم بسازیم مثل 1/3 و 1/5 و ... که البته دردسر بیشتری داره چون باید همزمان با لبه بالای و با لبه ی پایین کلاک شمارش انجام بدید که به دلیل ریزه کاری هایی که داره بی خیال میشم و تولید فرکانس های فرد رو به خودتون میسپارم هر چند بعیده بتونید : ))) دانلود فیلم جلسه
رفتن به جلسه بعد ...