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

جهاز التسلسل الرقمي من 4 خطوات: 19 خطوة (بالصور)
جهاز التسلسل الرقمي من 4 خطوات: 19 خطوة (بالصور)

فيديو: جهاز التسلسل الرقمي من 4 خطوات: 19 خطوة (بالصور)

فيديو: جهاز التسلسل الرقمي من 4 خطوات: 19 خطوة (بالصور)
فيديو: ماذا تعني الأرقام المدونة على المسامير 2024, يوليو
Anonim
4 خطوات المنظم الرقمي
4 خطوات المنظم الرقمي
4 خطوات المنظم الرقمي
4 خطوات المنظم الرقمي

CPE 133 ، كال بولي سان لويس أوبيسبو

مبتكرو المشروع: جيسون جونستون وبيورن نيلسون

في صناعة الموسيقى اليوم ، يعد المزج الرقمي أحد "الأدوات" الأكثر استخدامًا. يستخدم كل نوع من أنواع الموسيقى ، من موسيقى الهيب هوب إلى موسيقى البوب وحتى موسيقى الريف ، مُركبًا رقميًا في الاستوديو لإنشاء الإيقاعات والأصوات التي يحتاجون إليها لإضفاء الحيوية على موسيقاهم. في هذا البرنامج التعليمي ، سنقوم بإنشاء مُركب بسيط للغاية باستخدام لوحة Basys 3 FPGA.

سيكون جهاز المزج قادرًا على تشغيل أربع نغمات ربع موسيقية محددة بعدد ثابت من النبضات في الدقيقة. سيستخدم المستخدمون المفاتيح لتخصيص كل نوتة ربع سنوية لطبقة موسيقية. بالنسبة لهذا المشروع ، نستخدم محولًا رقميًا إلى تناظري 4 بت (DAC) لأخذ الإخراج من اللوحة وتحويله إلى إشارة تمثيلية. سيتم بعد ذلك تغذية الإخراج من DAC إلى مكبر صوت كمبيوتر قياسي ، مما يؤدي إلى إنشاء الموسيقى الخاصة بنا. ستة عشر الملعب المنفصلة ممكنة. سنقتصر جهاز المزج الخاص بنا على أوكتاف واحد من 12 نغمة ، والتي تقع بين وسط C (261.6 هرتز) و B4 (493.9 هرتز). سيكون لدى المستخدم أيضًا خيار تعيين ملاحظات متعددة في نفس الوقت ، بالإضافة إلى تخصيص راحة عن طريق الضغط على التعيين مع عدم تحويل أي من مفاتيح التبديل إلى الأعلى. عند تحديد كل نغمة وتشغيلها ، يتم عرض الملاحظة الحرفية على الشاشة المكونة من 7 مقاطع. سنستخدم أيضًا ثلاثة من الأزرار الموجودة على السبورة ، أحدها لتشغيل الموسيقى وإيقافها مؤقتًا ، وواحد لإعادة ضبط آلة النطق ووضعها في وضع "التحديد" ، والثالث لتعيين كل نغمة في وضع التحديد.

بمجرد أن يشعر المستخدم بالرضا عن اختياره للملاحظات ، وبعد الضغط على زر التشغيل ، سيعزف جهاز المزج كل نغمة متتالية بشكل متكرر حتى يضغط المستخدم على إيقاف مؤقت أو تحديد.

فيما يلي قائمة بالمعدات المطلوبة:

  • Vivado (أو أي مساحة عمل VHDL)
  • Basys 3 أو لوحة FPGA مماثلة
  • محول رقمي إلى تناظري (4 بت على الأقل)
  • مكبر صوت مع مقبس سماعة رأس
  • يؤدي الأسلاك

الخطوة 1: تشغيل المستخدم لجهاز التسلسل الرقمي

تشغيل المستخدم لجهاز التسلسل الرقمي
تشغيل المستخدم لجهاز التسلسل الرقمي

الخطوات التالية هي لتشغيل جهاز التسلسل الرقمي. يدعم جهاز التسلسل الرقمي تشغيل 12 نغمة مميزة (C ، Db ، D ، Eb ، E ، F ، Gb ، G ، Ab ، A ، Bb ، B) ، والتي تتراوح من 261.6 هرتز إلى 493.9 هرتز.

1. اضغط على الزر الأيسر لوضع اللوحة في وضع الاختيار. عندما تكون في هذا الوضع ، سيتم استخدام مفاتيح التبديل الأربعة الموجودة في أقصى اليسار (المفاتيح من 13 إلى 16) لتخزين قيمة درجة صوت مميزة.

2. لإجراء تحديد ، اقلب أحد المفاتيح اليسرى في وضع التشغيل ، ثم استخدم المفاتيح الأربعة الموجودة في أقصى اليمين (المفاتيح من 1 إلى 4) لاختيار درجة الصوت المرغوبة. سيتم عرض الملعب المرتبط بمجموعة محددة من المفاتيح اليمنى على شاشة العرض ذات الأجزاء السبعة ، وسيتم تحديث الشاشة إلى درجة الصوت الجديدة المرتبطة كلما تم تحويل المفاتيح اليمنى إلى مجموعة جديدة. يمكن تعيين الراحة من خلال عدم تعيين درجة واحدة أبدًا لأحد المفاتيح اليسرى ، أو عن طريق تعيين درجة صوت تظهر على أنها 0 على الشاشة للملاحظة. بمجرد العثور على الدرجة المطلوبة وعرضها على الشاشة ، اضغط على زر التخصيص السفلي لتعيين هذه الدرجة المحددة للملاحظة.

3. كرر الخطوة 2 للملاحظات الثلاثة المتبقية ، عن طريق قلب كل مفتاح من المفاتيح اليسرى المتبقية على حدة ، واختيار درجة الصوت المناسبة باستخدام المفاتيح اليمنى ، والضغط على الزر السفلي لتعيين درجة الصوت للنغمة. يمكن تعيين نغمات متعددة بنفس درجة الصوت عن طريق تحويل أكثر من مفتاح واحد من المفاتيح اليسرى لأعلى في نفس الوقت.

4. الآن بعد أن تم تعيين جميع نغمات النغمات ، أصبح جهاز التسلسل الرقمي جاهزًا للعب. لتشغيل النوتات الموسيقية على مكبر الصوت ، ما عليك سوى الضغط على زر التشغيل / الإيقاف المؤقت المناسب لبدء تشغيل الموسيقى. يعكس ترتيب تسلسل التشغيل النغمات المرتبطة بالمفاتيح اليسرى ، من اليسار إلى اليمين. سيتم عزف النوتات الموسيقية بعدد محدد من النبضات في الدقيقة ، بالترتيب 1 ، 2 ، 3 ، 4 ، 1 ، 2 …. ستعرض الشاشة الملاحظة التي يتم تشغيلها حاليًا أثناء تشغيل السماعات للموسيقى. لإيقاف تشغيل الموسيقى مؤقتًا ، ما عليك سوى الضغط على الزر الأيمن ، ثم ستتوقف الموسيقى عن التشغيل وسيظهر رمز الإيقاف المؤقت على الشاشة. سيؤدي الضغط على الزر الأيمن مرة أخرى إلى استئناف التشغيل.

الخطوة الثانية: التفاصيل الفنية

تفاصيل تقنية
تفاصيل تقنية

جهاز المزج الخاص بنا يستخدم العديد من المكونات الرقمية المختلفة. يتم تضمين آلات الحالة المحدودة ، والسجلات ، ومضاعفات الإرسال ، وفواصل الساعة ، والمزيد. لبناء جهاز المزج الخاص بنا ، استخدمنا 10 ملفات معيارية فريدة. بدلاً من جعل كل وحدة مكونًا ، قمنا بتقسيم الملفات النمطية حسب الوظيفة. ونتيجة لذلك ، فإن معظم الوحدات النمطية هي أكثر من مكون واحد. لاحظ أن الصورة أعلاه تُظهر كل كتلة مرتبطة ببعضها البعض في تصميمنا العلوي.

سنناقش كل وحدة من خلال وصف المدخلات والمخرجات ، وتفكيك مكوناتها ، وشرح الغرض منها في التصميم العام. يتم تضمين ملف ZIP في الجزء السفلي من التعليمات ، والذي يحتوي على كل ملف كود VHDL مستخدم في المشروع.

المدخلات

  • Clk (إشارة الساعة الأصلية)
  • PP (تشغيل / إيقاف مؤقت)
  • Sel (ضع آلة النطق في وضع التحديد)
  • تعيين (تعيين خطوة إلى الملعب)
  • الخطوة (الملاحظات الموضعية)
  • Freq (المفاتيح التي تنشئ الملعب المطلوب)

النواتج

  • الأنود (الأنودات المكونة من 7 أجزاء)
  • كاثود (كاثودات 7 مقاطع)
  • DAC (4 بتات تقود DAC)

الخطوة الثالثة: التفاصيل الفنية

تفاصيل تقنية
تفاصيل تقنية

الخطوة 4: مقسم الساعة المكون من 7 أجزاء

مقسم الساعة من 7 أجزاء
مقسم الساعة من 7 أجزاء

تستخدم آلة المزج الخاصة بنا ثلاث فواصل للساعة ، وكلها تنتج إشارات تخدم غرضًا مختلفًا في مشروعنا. يأخذ مقسم الساعة إشارة الساعة الأصلية وينتج إشارة معدلة لها تردد أقل من إشارة الساعة الأصلية. الساعة الأصلية لـ Basys 3 هي 100 ميجا هرتز. هذا هو التردد الذي تستخدمه مقسمات الساعة. إذا كنت تستخدم لوحة FPGA مختلفة بتردد ساعة أصلي مختلف ، فقد تضطر إلى تغيير الكود.

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

لتحقيق ذلك ، يأخذ الحاجز الإشارة الأصلية 100 ميجاهرتز ويحتسب عند كل حافة صاعدة. عندما يصل العداد إلى 416667 ، سينتقل الخرج من الأقل إلى الأعلى ، أو العكس.

المدخلات

Clk (إشارة الساعة الأصلية)

النواتج

Clk_7seg (إلى seg_display)

عناصر

  • سجل د
  • مكس
  • العاكس
  • الأفعى

الخطوة 5: يدق في الدقيقة على مدار الساعة مقسم

يدق في الدقيقة على مدار الساعة مقسم
يدق في الدقيقة على مدار الساعة مقسم

يعمل مقسم الساعة BPM بطريقة مماثلة. ينتج هذا الحاجز تردد الساعة الذي يدفع التبديل بين الخطوات الأربع عند إخراج النغمات في حالة التشغيل. قررنا التبديل بين الملاحظات عند 100 نبضة في الدقيقة. عند 100 نبضة في الدقيقة ، سيتم تشغيل كل نغمة لمدة 3/5 من الثانية. سيكون تردد الإشارة الناتجة 1.67 هرتز.

لإنتاج إشارة من هذا التردد ، استخدمنا نظام العد مرة أخرى ، لكن هذه المرة كان العدد 60 مليونًا. في كل مرة يصل فيها العداد إلى 60 مليون ، يتم تبديل إشارة الخرج عالية أو منخفضة.

المدخلات

Clk (تردد الساعة الأصلي)

النواتج

Clk_BPM (إلى output_FSM)

عناصر

  • سجل د
  • مكس
  • العاكس
  • الأفعى

الخطوة 6: مقسم ساعة الملاعب

مقسم ساعة الملاعب
مقسم ساعة الملاعب

يعد Pitches Clock Divider أكبر مقسم للساعة لدينا. يقوم هذا الحاجز بإخراج 12 إشارة مختلفة تتوافق مع الـ 12 نغمة الموسيقية المختلفة التي يمكن لآلة النطق الخاصة بنا تشغيلها. باستخدام المعرفة الأساسية لنظرية الموسيقى ، استنتجنا أن قطعة صغيرة أو حافلة يمكن أن تتأرجح بمعدل يتوافق مع تواتر النوتات الموسيقية. لرؤية الترددات التي استخدمناها ، انظر هنا. استخدمنا الأوكتاف الرابع من النغمات.

يتم استخدام نفس نظام العد هنا. لمعرفة القيم المحددة التي قمنا بالعد إليها ، راجع الملف المسمى Clk_div_pitches.

المدخلات

Clk (تردد الساعة الأصلي)

النواتج

C، Db، D، Eb، E، F، Gb، G، Ab، A، Bb، B (لتحديد الإخراج)

عناصر

  • سجل د
  • مكس
  • العاكس
  • الأفعى

الخطوة 7: تشغيل / إيقاف مؤقت / تحديد آلة الدولة

تشغيل / إيقاف مؤقت / تحديد آلة الدولة
تشغيل / إيقاف مؤقت / تحديد آلة الدولة

يوجد في مشروعنا نوعان من آلات الحالة المحدودة (FSM). FSM هي جهاز منطقي يمكن أن يوجد في حالة واحدة فقط من عدد محدود من الحالات. باستخدام FSM ، يمكن أن تنتقل الدائرة الرقمية إلى حالة جديدة بناءً على مجموعة من المدخلات. باستخدام منطق الإدخال ، ستتغير حالة ولايات ميكرونيزيا الموحدة عندما تكون هناك حافة صاعدة للساعة. من الحالة والمدخلات في الدائرة ، يمكنك إنشاء منطق الإخراج الذي يعطي مخرجات لا توجد إلا إذا كانت FSM في حالة معينة.

آلة الحالة PPS هي أول FSM في دائرتنا. هناك ثلاث ولايات في ولايات ميكرونيزيا الموحدة ؛ وضع التشغيل والإيقاف المؤقت والاختيار. للتنقل عبر الحالات المختلفة ، استخدمنا أزرار PP و Selection. انظر إلى مخطط الحالة أعلاه لترى كيف تحدث التحولات بين الدول. لقد أجرينا انتقال FSM هذا على الحافة الصاعدة لساعة 100 ميجاهرتز الأصلية ، بحيث يكون من المستحيل على الجهاز ألا ينتقل عند الضغط على أحد الأزرار ، حتى لفترة قصيرة جدًا من الوقت. الحالة الحالية (P_state) هي الناتج الوحيد من هذه الوحدة.

المدخلات

  • Clk (تردد الساعة الأصلي)
  • Sel (الزر الأيسر)
  • PP (الزر الأيمن)

النواتج

P_state (الحالة الحالية ، إلى output_FSM ، note_assign ، و seg_dsiplay ، و final_select)

عناصر

  • مكس
  • سجل د

الخطوة 8: تشغيل / إيقاف مؤقت / تحديد آلة الدولة

تشغيل / إيقاف مؤقت / تحديد آلة الدولة
تشغيل / إيقاف مؤقت / تحديد آلة الدولة

الخطوة 9: إخراج FSM

إخراج FSM
إخراج FSM

هذه هي ولايات ميكرونيزيا الموحدة الثانية المشار إليها في القسم السابق. تخدم ولايات ميكرونيزيا الموحدة وظيفة مختلفة عن الأخرى ، لكن أساس هذه الوظيفة هو نفسه بشكل أساسي.

تعمل FSM الناتجة فقط إذا كانت الحالة الحالية من FSM الأولى هي "01" (حالة التشغيل). في الأساس ، هذا هو التمكين في الوحدة. إذا كانت الحالة "01" ، فستقوم FSM بالتبديل بين الحالات على الحافة الصاعدة لإشارة ساعة BPM. نقوم بذلك لأن output_FSM تتحكم في الرقم الثنائي للخطوة المحددة التي يتم إرسالها إلى وحدات output_select و seg_display. يحتوي FSM على مدخلات 16 بت قادمة من وحدة تخصيص الملاحظات ، والتي سيتم تغطيتها بعد ذلك. في حالة "00" الخاصة بـ output_FSM ، ستخرج الوحدة النمطية "xxxx" للملاحظة الأولى المعينة. ثم في "01" ، سيتم إخراج "yyyy" للملاحظة الثانية وما إلى ذلك لكل ملاحظة قبل التراجع إلى الملاحظة الأولى. انظر مخطط الدولة أعلاه.

تختلف ولايات ميكرونيزيا الموحدة عن الأولى لأنه لا يوجد منطق إدخال للتحكم في التبديل بين الدول. وبدلاً من ذلك ، لن تعمل ولايات ميكرونيزيا الموحدة إلا عندما تكون الحالة من أول ولايات ميكرونيزية الموحدة هي "01" ، وبعد ذلك ستنتقل ولايات ميكرونيزيا الموحدة بين الحالات فقط على الحافة الصاعدة لإشارة الساعة. الاختلاف الآخر هو أن هذه الوحدة لها منطق الإخراج ، مما يعني أنها لا تنتج الحالة الحالية ، إنها تنتج الرقم الثنائي للنغمة في تلك الحالة.

المدخلات

  • Clk_BPM (إشارة ساعة BPM من مقسم الساعة)
  • FSM1_state (PS من PPS FSM)
  • Pitch_in (نغمات من note_assign)

النواتج

Pitch_out (خطوة واحدة في كل مرة ، لتحديد الإخراج و seg_display)

عناصر

  • مكس
  • سجل د

الخطوة 10: إخراج FSM

إخراج FSM
إخراج FSM

الخطوة 11: تعيين الملاحظات

ملاحظة تعيين
ملاحظة تعيين

وحدة تخصيص الملاحظات هي المسؤولة عن تخصيص خطوة فعلية للملاحظة الموضعية أو الخطوة. هذه الوحدة في الواقع بسيطة للغاية. يتحقق أولاً مما إذا كانت الدائرة في حالة "التحديد" وما إذا كان مفتاح الخطوة (أقصى اليسار) مرتفعًا. إذا كان هذا صحيحًا وتم الضغط على زر التخصيص ، فسيكون خرج الوحدة مساويًا للرقم الثنائي الذي تمثله مفاتيح التردد (أقصى اليمين).

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

المدخلات

  • P_state (الحالة الحالية من PPS FSM)
  • Sel (الزر الأيسر)
  • التبديل (مفتاح خطوة واحدة)
  • Freq (مفاتيح أقصى اليمين للنغمة)
  • تعيين (الزر السفلي ، تعيين ملاحظة)

النواتج

الملعب (رقم ثنائي ، إلى output_FSM)

عناصر

  • مكس
  • D resgister

الخطوة 12: تحديد الإخراج

تحديد الإخراج
تحديد الإخراج

تحديد الإخراج مسؤول عن أخذ الرقم الثنائي للنغمة وتوصيله بإشارة الساعة الخاصة به. على الرغم من حجمها ، فهي أيضًا وحدة بسيطة نسبيًا. Output_select هو في الأساس مفكك تشفير ثنائي ، يقوم بفك تشفير الرقم الثنائي من أجل خطوة إلى إشارة ساعة محددة. في الواقع ، كان تعيين الإخراج لتردد ساعة أفضل هنا مقارنةً بوحدة note_ assign ، لأن كل ما كان على هذه الوحدة فعله هو MUX إشارات الساعة مع الرقم الثنائي الذي يمثل إدخال التحكم.

نعتذر عن التوجيه الغريب ، نظم Vivado إشارات الملعب أبجديًا لملف clk_div_pitches ، ولكن بالنسبة لهذا الملف ، قام بتنظيمها من خلال تصاعدي الرقم الثنائي ، مما تسبب في أن تكون النغمات بترتيب مختلف. لاحظ أيضًا أنه إذا كان الرقم الثنائي من output_FSM هو "0000" أو أي شيء أكبر من "1100" ، فإن MUX يرسل عبر إشارة '0' ثابتة.

مدخل

  • الملعب (من output_FSM) ؛
  • C ، Db ، D ، Eb ، E ، F ، Gb ، G ، Ab ، A ، Bb ، B (إشارات ساعة الملعب)

انتاج |

نغمة (بت واحد يتطابق مع إشارة الساعة المختارة ، بالموجة المربعة)

عناصر

مكس

الخطوة 13: Square Wave Gen

سكوير ويف جين
سكوير ويف جين

الوحدة النمطية square_wave هي المولد للموجة المربعة التي يتم إخراجها من اللوحة إلى DAC. باستخدام إشارة النغمة من الملف السابق ، تقوم هذه الموجة المربعة بعكس رقم 4 بت بين "0000" و "1111" على الحافة الصاعدة للنغمة. النغمة هي تردد معين للنغمة ، لذلك تنتج الموجة المربعة موجة ذات تردد مختلف عندما تنتقل output_FSM إلى حالة أخرى. ينتقل خرج 4 بت من هذه الوحدة إلى الوحدة النمطية fin_sel ، حيث يحدد المنطق ما إذا كان سيتم إخراج هذا الناقل بناءً على الحالة من PPS FSM.

بديل لمولد الموجة المربعة هذا هو إنتاج موجة جيبية. في حين أن هذا من شأنه أن ينتج نغمة نهائية أفضل على الأرجح ، إلا أنه من الصعب تنفيذها بشكل كبير ، لذلك اخترنا إنشاء موجة مربعة فقط.

المدخلات

النغمة (بت متذبذب من output_select)

النواتج

DAC_input (ناقل متذبذب 4 بت يتغير بنفس تردد النغمة)

عناصر

  • العاكس
  • سجل د

الخطوة 14: عرض 7 أجزاء

شاشة من 7 شرائح
شاشة من 7 شرائح

تتحكم وحدة seg_display في شاشة العرض المكونة من 7 مقاطع على اللوحة الأساسية الخاصة بنا. داخل الوحدة ، تحدث عمليتان. تقوم العملية الأولى بفك تشفير التكرار عندما تكون في حالة "التحديد" أو الملعب عندما تكون في وضع "التشغيل". في وضع "الإيقاف المؤقت" ، تقوم الوحدة بفك تشفيرها لإظهار رمز الإيقاف المؤقت. بالنظر إلى رمز VHDL ، يمكنك أن ترى أن وحدة فك التشفير الثنائية تقوم بالفعل بفك تشفير الإدخال إلى إشارتين مختلفتين ، الكاثود 1 والكاثود 2. يمثل Cathode1 الحرف المقابل للخطوة المراد عرضها ، ويمثل الكاثود 2 الرمز المسطح (ب) إذا كان هناك واحد. يعود سبب ذلك إلى العملية الثانية التي تقوم بها الوحدة النمطية seg_display.

على لوحة basys3 ، تحتوي شاشة العرض على كاثودات مشتركة. بينما تتحكم الأنودات في الرقم الذي يتم تشغيله ، تتحكم الكاثودات في الأجزاء التي يتم تشغيلها. نظرًا لأن الشاشة تحتوي على كاثودات مشتركة ، فهذا يعني أنه يمكنك فقط عرض مجموعة واحدة من المقاطع في كل مرة. يطرح ذلك مشكلة لهذا المشروع لأننا نريد عرض حرف في الرقم الأول والرمز المسطح ، إذا لزم الأمر ، في نفس الوقت. الآن تذكر إشارة الساعة 7seg؟ للتغلب على هذه المشكلة ، نقوم بتغيير الأنودات والكاثودات ذهابًا وإيابًا على إشارة الساعة 7seg. نظرًا لأن إشارة الساعة 240 هرتز ونحن نستخدم رقمين ، فإن كل رقم سيتأرجح عند 60 هرتز. بالنسبة للعين البشرية ، يبدو أن الأرقام لا تتأرجح على الإطلاق.

لاحظ أيضًا أن شاشة لوحة basys3 تستخدم منطقًا سلبيًا. هذا يعني أنه إذا تم ضبط الأنود أو الكاثود على "0" ، فسيتم تشغيل هذا الرقم أو المقطع ، والعكس صحيح.

المدخلات

  • الملعب (رقم ثنائي لملاحظة ، مستخدم في حالة اللعب)
  • Freq (مفاتيح التردد ، تُستخدم عندما تكون في حالة الاختيار)
  • P_state (الحالة الحالية من PPS FSM)
  • Clk_240Hz (إشارة الساعة من Clk_div_7seg ، مزدوج 120 لأننا نستخدم الحافة الصاعدة فقط)

النواتج

  • كاثود (ناقل يتحكم في الأجزاء على الشاشة ، الإخراج النهائي)
  • الأنود (ناقل يتحكم في الأرقام على الشاشة ، الإخراج النهائي)

عناصر

  • مزلاج
  • مكس
  • سجل د

الخطوة 15: التحديد النهائي

تحديد نهائي
تحديد نهائي

التحديد النهائي هو آخر وحدة تم استخدامها في هذا المشروع. وحدة أخرى بسيطة ، تتحكم هذه الوحدة في الإخراج النهائي الذي سيذهب إلى DAC. عندما تكون في حالة "التحديد" أو "الإيقاف المؤقت" ، ستقوم الوحدة بإخراج "0000" ثابت بحيث لا يتم تشغيل أي موسيقى من السماعات. في حالة "التشغيل" ، ستقوم الوحدة بإخراج 4 بتات متذبذبة كما هو محدد بواسطة الموجة المربعة.

المدخلات

  • P_state (الحالة الحالية من PPS FSM)
  • DAC_input (التذبذب 4 بت من الموجة المربعة)

النواتج

DAC (يساوي DAC_input في حالة التشغيل ، الإخراج النهائي)

عناصر

مكس

الخطوة 16: الأجهزة الخارجية: DAC

الأجهزة الخارجية: DAC
الأجهزة الخارجية: DAC

يأخذ المحول الرقمي إلى التناظري (DAC) إشارة منفصلة ويحولها إلى إشارة مستمرة. يحتوي DAC الخاص بنا على أربع بتات وهو مصنوع من مضخم تجميع. باستخدام نسبة المقاومات في حلقة العرض والتغذية الراجعة ، تمكنا من إنشاء نظام ينتج 16 مستوى مختلفًا عن طريق "جمع" كل فرع. Bit0 ، الفرع العلوي ، يحمل أقل وزن ويساهم في أصغر احتمال عندما يكون مرتفعًا بسبب تلك الفروع ذات المقاومة الأعلى. يزداد الوزن كلما نزلت إلى الفروع. إذا كنت ستقوم بالعد في ثنائي لأعلى ثم تراجعت باستخدام مدخلات البت ، فإن الفولتية الناتجة ستبدو كموجة جيبية متدرجة. تم توصيل المدخلات إلى DAC بأحد وحدات PMODs الموجودة على اللوحة لنقل إشارة 4 بت.

تم تجميع DAC في الأصل لفئة الهندسة الكهربائية وتم تصميمها ولحامها بواسطتنا ، ولم يتم شراؤها من المتجر. أعلاه صورة لملف التصميم لإنشاء لوحة الدوائر المطبوعة.

الخطوة 17: الأجهزة الخارجية: مكبر الصوت

الأجهزة الخارجية: مكبر صوت
الأجهزة الخارجية: مكبر صوت

بالنسبة لهذا المشروع ، لن ترغب في شراء زوج رائع من مكبرات الصوت. كما يمكنك أن تقول ، الصوت أساسي جدًا. ذهبنا واشترينا مجموعة مكبرات صوت للكمبيوتر بقيمة 8 دولارات من Best Buy. أي شيء به مقبس سماعة رأس يعمل بشكل جيد. الرتابة يعمل بشكل جيد كذلك. يمكنك حتى استخدام سماعات الرأس ، ولكن يمكنك تفجيرها!

لتوصيل خرج DAC بالسماعات ، استخدمنا كبلات التوصيل ثم حملنا كبل الإخراج على طرف مقبس سماعة الرأس والكابل للأرض بالقاعدة. حاولنا استخدام الشريط الكهربائي لتثبيت الكابلات في مكانها ، لكنه تسبب في الكثير من التداخل. يمكن أن تؤدي تجربة نمط مختلف من الشريط إلى حل هذه المشكلة.

بالنسبة لمكبرات الصوت لدينا ، قمنا بتحويلهم إلى أعلى إعداد وحصلنا على ضوضاء عالية بشكل لائق.

وهذه هي الخطوة الأخيرة لإنشاء مُسلسِل رقمي من لوحة FPGA! انتقل إلى القسمين التاليين لتنزيل جميع أكواد VHDL الخاصة بنا وشاهد جهاز التسلسل أثناء العمل.

الخطوة 18: عرض الفيديو

يعرض هذا الفيديو النسخة النهائية من مشروع العمل ، بما في ذلك عملية تعيين المفاتيح إلى 4 نغمات مختلفة ، وتشغيل السماعات للملاحظات ذات الصلة.

الخطوة 19: كود VHDL

فيما يلي رمز المشروع بأكمله ، بما في ذلك القيد وملفات sim المستخدمة أثناء إنشاء جهاز التسلسل. لاحظ أن ملفات التصميم غير المستخدمة تقول ذلك في الهندسة المعمارية.

موصى به: