WebFPGA - تطوير Verilog في المتصفح

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

تمويل الجماعي المشروع : WebFPGA.
جوهر المشروع : لوحة التصحيح لـ FPGA iCE40UP5k. توجد جميع برامج التطوير والتصحيح في السحابة ؛ يحدث التفاعل مع اللوحة في المستعرض باستخدام WebUSB API.
منصة : كيك ستارتر.
كتب بواسطة ريان جاكوبس (مبرمج) ، ميك جاكوبس (مهندس الكتروني).
الموقع : لوس أنجلوس ، كاليفورنيا ، الولايات المتحدة الأمريكية.



تجمع اللوحة بين Lattice iCE40UP5k FPGA (5280 خلية منطقية ، 32 GPIO ، 1 ميغابت في الثانية SRAM) و متحكم STM32F04-Series ؛ بتعبير أدق ، لا يقوم المطور بالإبلاغ عن نموذج متحكم دقيق ، ولكن استنادًا إلى صورة اللوحة ، هذا هو TSSOP-20 ، وفي TSSOP-20 ST تصدر Microelectronics واحد فقط متحكم في سلسلة STM32F04 - STM32L041F6 مقابل 2.02 يورو.

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

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

لمنع حدوث أي اضطرابات محتملة بين المستخدمين المحتملين حول عدم كفاية قدرة المعالجة للخوادم ، يؤكد Ryan أن "الخوادم تستخدم فقط لتوليف وإرسال رمز ثنائي إلى المستخدم النهائي يبلغ حجمه 3 كيلو بايت فقط." في رأيي ، حجم حركة المرور صغير جدًا - يترك "up" الكود المصدري لـ Verilog ، والذي يمكن أيضًا ضغطه جيدًا ، وتأتي البرامج الثابتة "الثنائية" ، التي يكون حجمها صغيرًا جدًا بسبب السعة الصغيرة نسبيًا لـ FPGA المستخدمة.

ولكن مع تحميل الخوادم من خلال عملية تجميع البرامج الثابتة من Verilog-code ، في رأيي ، ليس كل شيء متفائلاً بشكل فريد. حتى لو تركنا عملية تحسين الوضع الفعلي للدوائر الناتجة في مساحة FPGA العامة ، والتي تتطلب بالتأكيد واجهة رسومية سريعة إلى حد ما وتبادلًا ثابتًا لحزم معلومات كبيرة إلى حد ما مع الخادم ، تبقى عملية تجميع البرامج الثابتة نفسها ، والتي ، في رأيي الشخصي ، هي أولاً ، يجب أن تأكل كمية كبيرة بما فيه الكفاية من وقت المعالج ، وثانيا ، غير حتمية في الطبيعة ويمكن أن يتأخر.

شخصيا ، تعرفت على FPGAs في النصف الأول من الصفر (كانوا Actel FPGAs ، تم تطوير البرنامج الثابت الخاص به في حزمة Libero + Synplify + ModelSim) ، وحسبما أتذكر ، لم تكن عملية التوليف البرق حتى بالنسبة للمشروعات التعليمية البسيطة. في الواقع ، مثل أي عملية تجميع ، يتميز التوليف بجميع أنواع الفواق الدوري والتلعثم ، ولكن دعونا نأمل أن يكون متوسط ​​وقت استجابة الخادم في إطار الصبر البشري. بالمناسبة ، عندما يتحدث المؤلف في الأسئلة الشائعة عن تحسين الترجمة عن طريق تخزين الملفات الثنائية مؤقتًا (إذا لم يتغير رمز ملف Verilog وعلامات المحول البرمجي ، فالمستخدم يُمنح ببساطة آخر ثنائي تم استلامه) ، ثم يذكر أنه "لن تحتاج إلى دقيقتين نتوقع الانتهاء من عملية التوليف ".

إذا لم تكن راضيًا عن التطوير من خلال المتصفح لسبب ما (على الأقل يمكن افتراض أن العملية ستكون رطبة في البداية) ، يمكنك العمل مع FPGAs من خلال IceStorm / iCECube.

إذا كنت مهتمًا بتقنية WebUSB ، فيمكنك الانتباه إلى المشاريع المفتوحة التالية (تؤدي جميع الروابط إلى GitHub ، حتى تتمكن من الدخول مباشرة إلى هذه القلنسوات لهذه المشاريع):

  • WebUSB + اردوينو . إنه يعمل فقط على اللوحات الأم المتوافقة مع Arduino مع USB كامل ، مثل Arduino Zero أو Adafruit Feather 32u4.
  • Weblight . مؤشر ضوئي متصل بوحدة التحكم ATtiny85 والتحكم فيه عبر الإنترنت. بالطبع ، إذا كنت تستطيع التحكم في مؤشر LED ، فيمكنك التحكم في الأجهزة الخارجية الأخرى ، وكل ما يمكن توصيله بـ GPIO.
  • Yubikey HOTP . أجهزة لحماية البيانات الشخصية على أجهزة الكمبيوتر والهواتف الذكية. إنهم يعملون مع Facebook و Gmail و GitHub والعديد من الخدمات الأخرى.
  • webdfu . يستخدم USB DFU لبرمجة ميكروكنترولر. أنا نفسي استخدم هذا الوضع لأجهزة البرمجة القائمة على ميكروكنترولر STM32. الآن ، إذا كان المثبت بحاجة إلى تشغيل التثبيت التقني وتحديث البرامج الثابتة لعشرات الأجهزة ، يمكنك أن تأخذ معك ليس جهاز كمبيوتر محمول مع Windows ، ولكن هاتف Android.
  • JS IDE for RTOS Zephyr Project ، والذي يسمح لك بتنزيل الكود على جميع اللوحات المتوافقة مع Zephyr ، وهناك أكثر من مائة منها. لذا ، اشترِ الآن شيئا مثل STM32F723E Discovery أو UDOO Neo Full واكتب الكود الخاص بهم مباشرة على هاتفك.

في صفحة المشروع ، يتحدث المطورون عن دعم تقنية WebUSB في Chrome و Opera و Edge ، لكن لدى mozilla.org الآن معلومات أخرى ، Edge ليس مدرجًا في قائمة المتصفحات المتوافقة:



نظرًا لأن Microsoft Edge يشغل الآن 5.2٪ فقط من سوق المتصفح ، فإن هذا ليس بالأمر الحاسم ، ولكن إذا كنت لا تزال لديك Edge ، فكن على دراية بعدم التوافق المحتمل. من ناحية أخرى ، هناك الآن فرصة لتطوير FPGAs في نظام التشغيل Chrome ، والذي كان مستحيلًا في السابق من حيث المبدأ.

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

FPGA iCE40UP5k ، على حد علمي ، لا يقع تحت أي قيود تصدير وهو متاح مجانًا على جهاز Mouser بسعر 6.46 يورو. متحكم STM32L041F6 مقابل 2.02 يورو هو كل ما هو متاح للطلب المجاني. ربما قرر مؤلف حملة التمويل الجماعي الاسترشاد بمبدأ باريتو 80/20 ورفض بلطف العمل مع العملاء خارج العالم المسكوني المتحضر؟ إذا قام بالفعل بسحب المشروع بمفرده ، فقد يكون هذا هو القرار الصحيح للعمل.

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

من ناحية أخرى ، أصبح من الممكن الآن استخدام نوع من بيئة البرمجة المجانية لأجهزة FPGA (على الأقل iCEcube2 ، والتي ، على الرغم من أنها مرتبطة بحساب Lattice وعنوان MAC الخاص بجهاز العمل ، يتم توزيعها مجانًا) بالإضافة إلى لوحة تصحيح غير مكلفة من شركة تصنيع صينية ، لذلك إذا لم تتمكن من شراء برامج متخصصة ، فليس من الضروري التركيز على الحوسبة السحابية. لكن - المشروع رائع في حد ذاته (Verilog! في المتصفح! نجاح باهر!) ، ويمكن أن يؤدي إلى شيء أكثر نتيجة للتنمية. ربما ، مع مرور الوقت ، سوف يولد المحيط الحيوي ، بالقرب من مجتمعات المستخدمين في Arduino أو Raspberry Pi ، وسيكون بإمكان هواة FPGA للهواة تبادل Verilog-code ، والنواة المترجمة ، والتطورات الأخرى بحرية كما هي الحال الآن في عالم المتحكمات الدقيقة. بشكل عام ، يبدو لي أن إيجابيات الحملة تفوق السلبيات.

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

  • تحمل MojoBoard V3 ، بسعر 75 دولارًا ، على متن Spartan 6 XC6SLX9 FPGA في حزمة TQFP-144 ، ATmega32U4 مرافقي متحكم لـ 84 GPIOs ؛
  • IceBreaker ، مشروع آخر للتمويل الجماعي ، تم إغلاقه بنجاح بالفعل ؛ مقابل 69 دولارًا ، يتم تقديم لوحة أم مزودة بمحول Lattice iCE40UP5k FPGA ومحول FT2232 ؛
  • TinyFPGA BX ، السعر 38 دولارًا ، FPGA ICE40LP8K (7680 خلية منطقية) ، 41 دبابيس GPIO.

شخصياً ، أثناء إقامتي في روسيا ، لا يمكنني المشاركة بالكامل في مشروع WebFPGA ، لكنني أرسلت Ryan $ 5 باستخدام خيار "التبرع دون مقابل" (يشبه هذا الزر "إرسال الأموال إلى المؤلف" على Habré). أولاً ، يبدو لي أن المشروع بحد ذاته مثير للاهتمام ومفيد للغاية. ثانيًا ، تبرعني تبرع صغير تلقائيًا بجميع الأخبار المتعلقة بالمشروع ، لذلك أشعر بشيء من وارن بافيت ، الذي يشتري أحيانًا حصة واحدة في شركة تهمه ، بحيث يحصل لاحقًا ، كمساهم ، وإن كان أقلية ، على مجموعة كاملة من التقارير سنويًا.

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

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

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


All Articles