منطق آلة الحالة
جزء من قسم الأساسيات في رحلة Verilog على Coddy — الدرس 80 من 90.
التحدي
في هذا الدرس، ستضيف منطق الانتقال بين الحالات (state transition logic) إلى وحدة التحكم في إشارة المرور. تحدد آلة الحالات (state machine) متى تنتقل من حالة إلى أخرى.
يتتحكم منطق آلة الحالات في متى وكيف تتغير حالات إشارة المرور.
تسلسل الحالات
Green → Yellow → Red → Green → …
مهمتك هي إضافة منطق آلة الحالات إلى الـ module.
ما يجب عليك فعله:
- أضف كتلة
always @(posedge clk or posedge reset) - عند إعادة الضبط (
reset)، اضبطstateعلى Red (2) - عندما يكون
nextبقيمة 1، انتقل إلى الحالة التالية:- إذا كانت الحالة Green (0): قم بالتغيير إلى Yellow
- إذا كانت الحالة Yellow (1): قم بالتغيير إلى Red
- إذا كانت الحالة Red (2): قم بالتغيير إلى Green
جرّب بنفسك
module traffic_light (
input clk,
input reset,
input next, // محفز لتغيير الحالة
output reg red,
output reg yellow,
output reg green
);
reg [1:0] state;
// تعيينات المخرجات
always @(*) begin
case (state)
0: begin green = 1; yellow = 0; red = 0; end
1: begin green = 0; yellow = 1; red = 0; end
2: begin green = 0; yellow = 0; red = 1; end
default: begin green = 0; yellow = 0; red = 1; end
endcase
end
// TODO: أضف منطق آلة الحالة (بدون توقيت)
// always @(posedge clk or posedge reset) begin
// if (reset) begin
// state <= 2;
// end else if (next) begin
// case (state)
// 0: state <= 1;
// 1: state <= 2;
// 2: state <= 0;
// endcase
// end
// end
endmoduleجميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)معاملات المقارنةملخص - رياضيات بسيطةمعاملات Bitwise7التعيين والبوابات المنطقية
التعيين المستمرالتعيين باستخدام العملياتالبوابات الأساسية المدمجةبوابات AND و OR و NOTبوابات XOR و XNORمراجعة - دارة البوابات المنطقية5المعاملات - الجزء الثاني
المعاملات المنطقيةمعاملات الاختزالمعاملات الإزاحةمعامل الدمجالمعامل الشرطيمراجعة - تحدي المعاملات3أنظمة العد
التمثيل الثنائيالأعداد محددة الحجمالأعداد غير محددة الحجمالأعداد السالبةالقيم الخاصة X و Zمراجعة - تنسيقات الأعداد6الوحدات
هيكل الوحدةمنافذ الإدخال والإخراجمنافذ Inoutاستدعاء الوحداتربط المنافذ بالاسمربط المنافذ بالترتيبمراجعة - بناء وحدة9الكتل الإجرائية
كتلة Alwaysكتلة Initialقائمة التحسسالإسناد الحاجبالإسناد غير الحاجبمراجعة - Always مقابل Initial15متحكم إشارة المرور
تحديد الحالاتمنطق آلة الحالة