جدول المحتويات:

كمبيوتر عشرة بت - VHDL: 4 خطوات
كمبيوتر عشرة بت - VHDL: 4 خطوات

فيديو: كمبيوتر عشرة بت - VHDL: 4 خطوات

فيديو: كمبيوتر عشرة بت - VHDL: 4 خطوات
فيديو: ملخص حياة المبرمج 😂 #Shorts 2024, يوليو
Anonim
كمبيوتر عشرة بت - VHDL
كمبيوتر عشرة بت - VHDL

المفوض: تايلر ستار وعز الدين غزالي

مقدمة

تم الانتهاء من هذا المشروع كجزء من المشروع النهائي لـ CPE 133 في Cal Poly SLO. إنه مشروع رائع لشخص يتطلع إلى فهم كيفية عمل أجهزة الكمبيوتر في أدنى مستوياتها وكيفية تحقيقها لمهامها. تم تصميم المشروع على غرار كمبيوتر SAP 8 بت الموصوف في كتاب ألبرت مالفينو Digital Computer Electronics. ومع ذلك ، قمنا بزيادة الكمبيوتر إلى 10 بت للسماح بتنفيذ المزيد من أكواد العمليات (رموز التشغيل). يمكن للمستخدم برمجة الكمبيوتر لأداء مجموعة من العمليات عن طريق إدخال تعليمات معينة.

بنية النظام والدوائر:

الكمبيوتر مكتوب بلغة VHDL وسيتم تضمينه في لوحة Basys 3 من Digilent. سيتم تعيين المدخلات إلى المفاتيح الموجودة أسفل اللوحة. سيتم استخدام مفتاحي لمسية لوظائف إعادة التعيين والكتابة. سيتم عرض الإخراج على شاشة اللوحة السبعة.

سيتم تقسيم الكمبيوتر إلى دوائر أصغر (وحدات) تتعامل مع عمليات مختلفة. سيتم شرح كل وحدة بالتفصيل في الخطوات التالية.

الخطوة 1: المواد

المواد
المواد

كل ما هو مطلوب لهذا المشروع هو لوحة Basys3 FPGA من Digilent وسلك USB صغير لتوصيل اللوحة بجهاز الكمبيوتر الخاص بك.

الخطوة 2: رسم تخطيطي لوحدات الدوائر

رسم تخطيطي لوحدات الدوائر
رسم تخطيطي لوحدات الدوائر
رسم تخطيطي لوحدات الدوائر
رسم تخطيطي لوحدات الدوائر
رسم تخطيطي لوحدات الدوائر
رسم تخطيطي لوحدات الدوائر

توضح المخططات الموجودة أعلاه وحدات الدوائر المختلفة التي يتكون منها جهاز كمبيوتر 10 بت. فيما يلي وصف لكل جزء من الأجزاء / الوحدات الفردية الموضحة في الرسوم البيانية أعلاه.

عداد البرنامج

وصف المدخلات: الإدخال عبارة عن إدخال 5 بت لتحميل رقم في عداد البرنامج. Cp عند ارتفاع العداد يحسب على حواف الساعة المتساقطة. Clr يعيد تعيين العداد إلى 0. Ep عندما يكون العداد مرتفعًا ينتج عنه العد الحالي. Sp عندما يكون العداد مرتفعًا ، يضبط العداد العد على الرقم عند الإدخال

  • وصف المخرجات:

    الإخراج هو نسخة من العد للاستخدام على LEDS 0-15. إخراج العد العد الحالي.

  • المكان الكلي في النظام: يتتبع هذا العداد موقع الذاكرة الذي يوجد به البرنامج. تبدأ جميع البرامج عند عنوان الذاكرة 00000 (0) وتصل إلى 11111 (31) ، ما لم يتم استخدام التوقف. في عبارات القفز ، يستمر عداد البرنامج في العد من العنوان الذي يقفز إليه البرنامج.

إدخال MUX

  • وصف المدخلات: يأخذ العنوان المدخلات من المفاتيح 11 حتى 15. يأخذ MAR المدخلات من سجل 10 بت المستخدم كـ MAR. يتحكم البرنامج في المدخلات التي يتم توجيهها إلى الإخراج.
  • وصف المخرجات: الإخراج يوجه المدخلات المختارة إلى ذاكرة الوصول العشوائي.
  • المكان العام في النظام: يحدد هذا MUX ما إذا كان سيتم توجيه العنوان من المفاتيح أو الناقل إلى ذاكرة الوصول العشوائي. في وضع البرنامج ، يتم توجيه العنوان من المفاتيح وفي وضع التشغيل يتم توجيه العنوان من الناقل.

رامموكس

  • وصف المدخلات: userInput هو الإدخال الذي يدخله المستخدم أثناء وضع البرنامج. aRegInput هي البيانات الموجودة في السجل A ، ويتم استخدامها أثناء عملية النقل. التحكم هو التحديد لهذا MUX.
  • وصف المخرجات: الإخراج هو إدخال بيانات 10 بت إلى ذاكرة الوصول العشوائي.
  • المكان العام في النظام: يقوم MUX بإخراج بيانات إدخال 10 بت المستخدمة في وحدة ذاكرة الوصول العشوائي. عندما تكون بتة التحكم عالية ، تقوم MUX بإخراج البيانات التي أدخلها المستخدم في وضع البرنامج. عندما يكون بت التحكم منخفضًا ، يقوم MUX بإخراج البيانات الموجودة على ناقل التحكم.

رام

  • وصف المدخلات: بيانات الإدخال هي البيانات المخزنة في ذاكرة الوصول العشوائي. inputAddress هو الموقع حيث يتم تخزين البيانات. يشير البرنامج إلى ما إذا كان الكمبيوتر في وضع البرنامج أو التشغيل. يشير readWrite إلى حدوث عملية قراءة أو كتابة. notCE هو بت التحكم لوحدة ذاكرة الوصول العشوائي. تشير الحركة إلى أنه يتم تنفيذ عملية النقل.
  • وصف المخرجات: outputDataToBus هي البيانات التي تنتقل من ذاكرة الوصول العشوائي إلى الناقل. بيانات الإخراج وعنوان الإخراج هي البيانات والعنوان الذي ينتقل إلى سجل التعليمات.
  • المكان العام في النظام: تسمح ذاكرة الوصول العشوائي (RAM) بتخزين البرامج والبيانات في الذاكرة قبل تشغيل البرنامج. بمجرد تشغيل البرنامج ، تتلقى ذاكرة الوصول العشوائي عنوانًا من MAR وتقوم بإخراج البيانات الموجودة على هذا العنوان إلى الناقل.

العنوان روم

  • وصف المدخلات: opCode هو الإدخال الذي يحتوي على عنوان كود التشغيل الذي يتم تنفيذه بواسطة الكمبيوتر
  • وصف المخرجات: opCodeStart هو عنوان الذاكرة الذي يشير إلى أول موقع تعليمي صغير لكود التشغيل المقابل.
  • المكان العام في النظام: تأخذ هذه الوحدة التعليمات الدقيقة المغلق وتخرج موقع الذاكرة الذي يتوافق مع بداية تسلسل التعليمات الجزئية.

حلقة

  • وصف المدخلات: إعادة تعيين يعيد العداد إلى 100000 ("حالة T" الأولى). يقوم Clk بزيادة العداد بواحد على حافة الساعة المتساقطة. يشير NOP إلى أن الحالة / الدورة الحالية هي دورة "لا عملية".
  • وصف المخرجات: العد هو خرج العداد.
  • المكان الكلي في النظام: يتحكم العداد الدائري في العداد القابل للتعيين مسبقًا ويحدد الخطوات الست الدقيقة في كل دورة تعليمات (T1-T6).

عداد مسبق

  • وصف المدخلات: opCodeStart هو موقع الذاكرة للتعليمات الجزئية لشفرة التشغيل التي يتم تنفيذها. T1 يعيد ضبط العداد إلى 0 عندما يكون مرتفعًا. عندما يكون T3 مرتفعًا ، يتم تحميل opCodeStart ويستمر العد من هذا الموقع للدورات الثلاث المتبقية (T4-T6). يعين Clr العداد إلى 0. يزيد Clk العداد بواحد على حافة السقوط.
  • وصف المخرجات: controlWordLocation يخرج موقع الذاكرة الخاص بكلمة التحكم المراد تنفيذها.
  • المكان العام في النظام: يحتوي كل رمز تشغيل على 3 تعليمات دقيقة. يزيد العداد بمقدار 1 بدءًا من 0 للدورات الثلاث الأولى (دورة الجلب). ثم يتم تشغيل العداد بواسطة العداد الدائري لتحميل العنوان على opCodeStart والزيادات بمقدار 1 للدورات الثلاث المتبقية. وبهذه الطريقة ، يتحكم العداد المسبق في تسلسل التعليمات الدقيقة التي سيتم تنفيذها.

السيطرة

  • وصف المدخلات: controlWordLocation هو عنوان عنصر التحكم الكلمة التي ستخرجها وحدة التحكم ROM. يشير NOP إلى أن الموقع هو موقع "بلا عملية".
  • وصف المخرجات: كلمة التحكم هي كلمة التحكم التي تمكن / تعطل وحدات الكمبيوتر المختلفة لتنفيذ العملية المطلوبة.
  • المكان العام في النظام: تقوم هذه الوحدة بفك تشفير موقع الذاكرة من العداد المسبق وإخراج كلمة التحكم للعملية المطلوبة.

ALU

  • وصف المدخلات: A و B هما المدخلات من السجل A والسجل B الذي يقوم ALU بإجراء العمليات الحسابية والمنطقية عليه. عندما يكون الطرح نشطًا ، فإنه يشير إلى أنه يتم طرح B من A.
  • وصف المخرجات: النتيجة هي نتيجة إضافة A و B ، أو طرح B من A. المخرجات أكبر من ، وأقل من ، وتساوي للإشارة إلى ما إذا كانت (AB ، أو A = B) وتستخدم في وحدة الانتقال الشرطية. يشير الخطأ إلى تجاوز أو نقص في التدفق عند تنشيطه.
  • المكان العام في النظام: يحتوي ALU على منطق العمليات الحسابية والمنطقية التي يقوم بها الكمبيوتر. يمكن لهذه الوحدة جمع وطرح رقمين ثنائيين 10 بت. يمكن لوحدة ALU أيضًا تحديد ما إذا كانت A> B ، A

مشروط

  • Descriptoin of Inputs: يتم استخدام inputCount لإغلاق العد الحالي. يتم استخدام inputAddress لإغلاق العنوان الذي سيتم القفز إليه. loadFromRegister عند انخفاض المزالج inputAddress. loadCount عند إدخال عدد منخفض من المزالج. عندما يكون outputEnable منخفضة ، يتم تعيين الإخراج على العنوان للانتقال إلى gT و iT و eQ لتحديد الشرط الذي يتم التحقق منه. أكبر من ، وأقل من ، ومتساو هي المدخلات من ALU التي تشير إلى نتيجة المقارنة بين A و B. على حافة الساعة الصاعدة من Clk ، تتم قراءة inputCount و inputAddress في السجلات.
  • وصف المخرجات: outputJmp هو العنوان الذي سيقرأ فيه عداد البرنامج.
  • المكان العام في النظام: تتعامل هذه الوحدة مع القفزات الشرطية وغير المشروطة للكمبيوتر. استنادًا إلى المدخلات gT و iT و eQ ، تحدد الوحدة الشرط الذي يجب التحقق منه وما إذا كان هذا الشرط صحيحًا أم خطأ. إذا كان الشرط صحيحًا ، فسيخرج عنوان التعليمات للانتقال إليه ، وإلا فإنه ينتج عدد التعليمات التالية.

binToBCD

  • وصف المدخلات: قم بترقيم عدد 10 بتات لتحويله إلى رقم عشري ثنائي مشفر.
  • وصف المخرجات: مئات الخانات في خانة المئات من العدد الثنائي. عشرات الرقم في خانة العشرات من العدد الثنائي. الآحاد الرقم الموجود في خانة الآحاد من الرقم الثنائي.
  • المكان الكلي في النظام: تقوم هذه الوحدة بتحويل رقم 10 بت من سجل الإخراج إلى BCD حتى يتمكن برنامج تشغيل العرض المكون من أربعة أرقام من عرض الرقم عشريًا على شاشة العرض المكونة من 7 أجزاء.

أربعة ديجيت سائق

  • وصف المدخلات: الرقم هو الإدخال الثنائي 16 بت الذي يتم توجيهه إلى وحدة فك التشفير. inClk هي الساعة الداخلية للوحات Basys وتستخدم لمقسم الساعة. RST يعيد ضبط الساعة المستخدمة لدفع الأرقام.
  • وصف المخرجات: يحدد القطب الموجب مكان الرقم الذي سيضيء. رقم هو رقم الإدخال إلى وحدة فك التشفير.
  • المكان العام في النظام: تدفع هذه الوحدة وحدة فك التشفير لإخراج رقم BCD على الشاشة.

فك

  • وصف المدخلات: inputNumber هو الرقم الذي يأتي من برنامج التشغيل والذي سيتم فك تشفيره.
  • وصف المخرجات: تحدد الكاثودات الكاثودات التي سيتم تشغيلها لعرض الرقم المطلوب.
  • المكان العام في النظام: تقوم هذه الوحدة بفك تشفير الرقم الذي سيتم عرضه على شاشة العرض المكونة من 7 أجزاء.

أربعة ديجيت

  • وصف المدخلات: الرقم هو الرقم الذي سيتم عرضه على شاشة 7 مقاطع. يشير الخطأ إلى الوقت الذي يجب أن تقرأ فيه الشاشة "Err". Clk هي إشارة الساعة التي تعمل الشاشة عليها. يجب أن تكون هذه الإشارة حوالي 60 هرتز حتى يمكن للشاشة عرض جميع الأماكن المكونة من 4 أرقام في وقت واحد.
  • وصف المخرجات: الأنود يحدد مكان الرقم الذي يتم تمكينه. يحدد الكاثود أي كاثود يتم تنشيطه لعرض الرقم المطلوب.
  • المكان العام في النظام: تعرض هذه الوحدة رقمًا على شاشة العرض المكونة من 7 أجزاء. راجع دليل تعليمات لوحة Basys 3 للحصول على معلومات حول تنشيط الكاثودات والأنودات لاستخدام الشاشة. عندما تكون قيمة بت الخطأ عالية ، تعرض الشاشة "خطأ".

الإخراج

  • وصف المدخلات: يحدد progModeInput المصابيح التي يتم تشغيلها أثناء وضع البرمجة. يحدد runModeInput المصابيح التي يتم تشغيلها أثناء وضع التشغيل. modeSelect هو بت التحديد أو التحكم لـ MUX.
  • وصف المخرجات: ledOutput يشير إلى الصمام الذي سيتم تشغيله.
  • المكان العام في النظام: اعتمادًا على الوضع الذي يوجد فيه الكمبيوتر (البرنامج أو الروم) ، سيقوم MUX بتشغيل مصابيح LED مختلفة. في وضع البرنامج (الوضع اختر "0") ، يقوم MUX بتشغيل مصابيح LED لتشبه موقع الذاكرة الذي يوجد به الكمبيوتر وما يحتويه. في وضع التشغيل (modeSelect is '1') ، يتم استخدام MUX لتصحيح الأخطاء ولكن يمكن ضبطها لعرض أي شيء آخر.

على مدار الساعة

  • وصف المدخلات: يقرأ stop خمس بتات MSB من الحافلة لاكتشاف أمر التوقف ('11111') وإيقاف الساعة. inputClk هي إشارة الساعة الداخلية للوحة Basys 3.
  • وصف المخرجات: ouputClk هي الساعة الجديدة التي تم إبطائها.
  • المكان العام في النظام: تُستخدم هذه الساعة لإبطاء الكمبيوتر لتمكين المستخدم من تحديد ما يجري. يمكن تشغيل الساعة بشكل أسرع ، ومع ذلك ، فهي مضبوطة حاليًا على 2 هرتز.

triStateBuffer

  • وصف المدخلات: Din هو إدخال 5 بت يذهب إلى المخزن المؤقت. Ep هو بت التحكم.
  • وصف المخرجات: Dout هو إخراج 5 بت من المخزن المؤقت
  • المكان العام في النظام: عندما تكون بتة التحكم Ep نشطة ، يقوم المخزن المؤقت بإخراج المدخلات. عندما لا يكون بت التحكم نشطًا ، لا ينتج المخزن المؤقت أي شيء.

tenBitDegister

  • وصف المدخلات: Dbus هو المدخل الذي يجب أن يقوم التسجيل به. يسمح Clk للمسجل بقراءة البيانات على حافة الساعة الصاعدة. يقوم ARST بتعيين السجل إلى 0 بشكل غير متزامن. عندما يكون outputEnable منخفضة ، فإن محتويات السجل هي الإخراج. عندما يكون readIn منخفضًا ، يقوم السجل بإغلاق Dbus على حافة الساعة الصاعدة.
  • وصف المخرجات: Qbus هو خرج السجل
  • المكان العام في النظام: يتم استخدام السجل عدة مرات في جميع أنحاء الكمبيوتر ويتم استخدامه لتخزين المعلومات عند إجراء العمليات.

FiveBitDegister

  • وصف المدخلات: Dbus هو المدخل الذي يجب أن يقوم التسجيل به. يسمح Clk للمسجل بقراءة البيانات على حافة الساعة الصاعدة. يقوم ARST بتعيين السجل إلى 0 بشكل غير متزامن. عندما يكون outputEnable منخفضة ، فإن محتويات السجل هي الإخراج. عندما يكون readIn منخفضًا ، يقوم السجل بإغلاق Dbus على حافة الساعة الصاعدة.
  • وصف المخرجات: Qbus هو خرج السجل.
  • المكان العام في النظام: يتم استخدام السجل عدة مرات في جميع أنحاء الكمبيوتر ويتم استخدامه لتخزين المعلومات عند إجراء العمليات.

الخطوة 3: الكود

يوجد أدناه مجلد يحتوي على القيد والملفات المصدر للكمبيوتر 10 بت.

الخطوة 4: العرض التوضيحي وعينة التعليمات البرمجية

يوضح الفيديو أعلاه كيفية برمجة الكمبيوتر 10 بت على لوحة Basys 3 FPGA. ملف pdf يحتوي على أكواد المرجع وعينة البرنامج مرفق أيضًا أدناه.

موصى به: