ذهبت إلى مكتب اردوينو. تحدثت عن FPGAs. مطلوب متطوعين

هذا الصباح ذهبت إلى مكتب فرع اردوينو في كاليفورنيا. كان هناك اجتماع بين الشركات حول البرامج التعليمية حيث دعاني مدير AMD Timur Paltashev. في نهاية الحدث ، دار نقاش مثير للاهتمام:

في الوقت الحالي ، يتم تعليم أطفال المدارس برمجة Arduino والأجهزة الأخرى بناءً على وحدات التحكم الدقيقة والمعالجات المدمجة (Lego و Rasberry Pye ، إلخ). ولكن في السبعينيات ، تم تعليم أطفال المدارس هنا في كاليفورنيا لتجميع الدوائر على لوحة توصيل ، وترانزستورات ودوائر دقيقة بدرجة صغيرة من التكامل (7400 TTL ، CMOS 4000 ، إلخ) مع عناصر AND-OR-NOT ومحفزات D. الأمر أشبه بالتقدم - يمكنك كتابة برنامج على متحكم متحرك من شأنه أن يحرك يد الروبوتية بوعي ، وهو أمر يصعب القيام به على عناصر المنطق الفردية ، ولكن كيف ننشأ أطفال المدارس الذين يمكنهم تصميم (وليس برمجة) وحدات التحكم الدقيقة بأنفسهم؟

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



إن فكرة تعليم أطفال المدارس على مقدمة الدوائر الرقمية والبرمجة المدمجة تبدو جيدة من الناحية النظرية ، ولكن كيف نعيدها إلى الحياة؟

لدى Arduino بالفعل لوحات FPGA غير مكلفة ، وبدأ مصنعو FPGA في توزيع البرامج المجانية للتوليف دون تراخيص معقدة. ومع ذلك ، في الطريق إلى السكينة هي:

  1. عدم ملائمة البرمجيات لتوليف الدائرة وتكوين FPGAs من قبلهم
  2. اختلاف خطير بين النموذج العقلي الموازي للكود في لغة وصف SystemVerilog للمعدات والنموذج الذهني الواضح الواضح للبرمجة المتسلسلة
  3. على وجه التحديد مشاكل الأطفال ، على سبيل المثال: حتى أطفال المدارس الأصغر سنًا (7-10 سنوات) من السهل نسبيًا فهم مفهوم التيار الكهربائي والمقاومة والمكثفات والعناصر المنطقية التوافقية والعمليات الحسابية الثنائية - ولكن مع فهم المنطق التسلسلي (D- مشغلات ، عدادات ، سجلات التحول ، آلات الحالة المحدودة) هناك قابس ، على الرغم من أن الطلاب الأكبر سناً يفهمون ذلك.


إذا كنت لا تعرف ماهية FPGA ، يمكنك قراءة رسائلي القديمة "كيفية بدء تطوير الأجهزة باستخدام FPGAs - تعليمات خطوة بخطوة" ، بالإضافة إلى "مقدمة لتصميم أجهزة الرقاقة لهؤلاء المبرمجين الذين لم يفعلوا ذلك مطلقًا" .

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

ألتيرا كوارتوس الثاني:



Xilinx Vivado:



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



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

السؤال: لماذا توليف الدائرة التي تومض في FPGA من الوصف الموجود في Verilog / SystemVerilog / VHDL؟ بعد كل شيء ، هل هناك أداة للتركيب عالي المستوى تسمح لك بتجميع دارة من خوارزمية في لغة سي؟

الجواب: لدى تولا من هذا النوع قيود شديدة على أنواع المخططات التي يمكن أن تنتجها. جرب مثل هذه الأداة لتصميم معالج خط أنابيب مع الأكشاك والشحن.

سؤال: ولكن وجدت على موقع لوحة اردوينو هذه مع FPGA ( http://www.cnx-software.com/2016/10/21/alorium-xlr8-arduino-comp Compatible-altera-max-0-fpga-board -بيع-مقابل -75 / ) أنه يمكن برمجته مع بيئة Arduino المعتادة ، مع الرسومات المعتادة.

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

Source: https://habr.com/ru/post/ar402465/


All Articles