سجل الإزاحة
جزء من قسم الأساسيات في رحلة Verilog على Coddy. الدرس 86 من 90.
التحدي
يقوم مسجل الإزاحة بإزاحة البيانات من اليسار إلى اليمين عند كل حافة ساعة. تنتقل كل بتة إلى الموضع التالي.
كيفية عمل مسجل إزاحة من 4 بتات
Initial: q0=0, q1=0, q2=0, q3=0
Each clock: q0 = d, q1 = old q0, q2 = old q1, q3 = old q2
Shifting in d = 1, 0, 1, 0:
Clock 1 (d=1): q0=1, q1=0, q2=0, q3=0
Clock 2 (d=0): q0=0, q1=1, q2=0, q3=0
Clock 3 (d=1): q0=1, q1=0, q2=1, q3=0
Clock 4 (d=0): q0=0, q1=1, q2=0, q3=1بعد 4 دورات ساعة، تصل أول بتة إدخال إلى q3.
واجهة الوحدة
| المنفذ | الاتجاه | العرض | الوصف |
|---|---|---|---|
clk | input | 1 bit | إشارة الساعة |
reset | input | 1 bit | إعادة تعيين جميع المخرجات إلى 0 |
d | input | 1 bit | إدخال البيانات |
q0 | output | 1 bit | خرج القلاب الأول |
q1 | output | 1 bit | خرج القلاب الثاني |
q2 | output | 1 bit | خرج القلاب الثالث |
q3 | output | 1 bit | خرج القلاب الرابع |
مهمتك هي إكمال الوحدة أدناه.
ما يجب فعله:
- عند
reset، عيّن جميع المخرجات إلى 0 - عند كل حافة صاعدة للساعة، أزِح البيانات من اليسار إلى اليمين:
- تحصل
q0علىd - تحصل
q1علىq0القديمة - تحصل
q2علىq1القديمة - تحصل
q3علىq2القديمة
- تحصل
جرّب بنفسك
module shift_register (
input clk,
input reset,
input d,
output reg q0,
output reg q1,
output reg q2,
output reg q3
);
// TODO: أضف always @(posedge clk or posedge reset)
// عند reset: q0<=0, q1<=0, q2<=0, q3<=0
// وإلا: إزاحة البيانات: q0 <= d, q1 <= q0, q2 <= q1, q3 <= q2
endmodule
جميع دروس الأساسيات
4العوامل الجزء 1
العوامل الحسابيةعامل باقي القسمةعوامل المقارنةمراجعة - الرياضيات البسيطةالعوامل على مستوى البتات7التعيين والبوابات
التعيين المستمرالتعيين باستخدام العواملالعناصر الأساسية المدمجة للبواباتبوابات AND وOR وNOTبوابات XOR وXNORمراجعة - دائرة البوابات المنطقية5المعاملات - الجزء الثاني
المعاملات المنطقيةمعاملات الاختزالمعاملات الإزاحةمعامل الربطالمعامل الشرطيمراجعة - تحدي المعاملات11الحلقات التكرارية
حلقة Forحلقة Whileحلقة التكرارحلقة لا نهائيةتعليمة التعطيلمراجعة - أنماط الحلقات التكرارية3نظام الأعداد
التمثيل الثنائيالأعداد محددة الحجمالأعداد غير محددة الحجمالأعداد السالبةالقيم الخاصة X و Zمراجعة - تنسيقات الأعداد6الوحدات
هيكل الوحدةمنافذ الإدخال والإخراجمنافذ الإدخال والإخراج ثنائية الاتجاهإنشاء مثيل للوحدةربط المنافذ حسب الاسمربط المنافذ حسب الترتيبمراجعة - بناء وحدة9الكتل الإجرائية
كتلة Alwaysكتلة Initialقائمة الحساسيةإسناد حاجزإسناد غير حاجزمراجعة - Always مقابل Initial15متحكّم إشارات المرور
تعريف الحالاتمنطق آلة الحالاتتدرّب بنفسك: مترجم Verilog عبر الإنترنت