WebFPGA - Pengembangan Verilog di browser

Saya pikir banyak programmer, mulai dari python-dataayentists dan diakhiri dengan pengembang driver yang keras, kadang-kadang mengangkat mata mereka kesedihan dan mendesah: "Oh, itu akan lebih sulit, lebih keras ...". Tentu saja, kita berbicara tentang Verilog, bahasa untuk menggambarkan dan memodelkan sistem elektronik. Verilog selalu menonjol di antara bahasa pemrograman; memungkinkan untuk memecahkan masalah yang tidak dapat dikalahkan dengan cara lain, itu, bagaimanapun, membutuhkan platform perangkat keras tertentu, FPGA - sirkuit terintegrasi logika yang dapat diprogram. Ambang untuk memasuki pengembangan Verilog relatif tinggi, tetapi mungkin segera menjadi sedikit lebih rendah, karena saat ini

Proyek crowdfunding : WebFPGA.
Inti dari proyek ini : Papan debug untuk FPGA iCE40UP5k. Semua perangkat lunak pengembangan dan debugging terletak di cloud, interaksi dengan papan terjadi di browser menggunakan WebUSB API.
Platform : Kickstarter.
Diposting oleh Ryan Jacobs (programmer), Mick Jacobs (insinyur elektronik).
Lokasi : Los Angeles, California, AS.



Dewan menggabungkan Lattice iCE40UP5k FPGA (5280 sel logika, 32 GPIO, 1 Mbps SRAM) dan mikrokontroler Seri-STM32F04; lebih tepatnya, pengembang tidak melaporkan model mikrokontroler, tetapi menilai berdasarkan foto papan, ini adalah TSSOP-20, dan dalam TSSOP-20 ST Mikroelektronika hanya merilis satu mikrokontroler Seri-STM32F04 - STM32L041F6 seharga € 2,02.

Menariknya, salah satu penulis proyek, Ryan Jacobs, adalah seorang mahasiswa di UCLA, ia belum memiliki resume yang jelas, jadi ia memberikan tautan ke GitHub, di mana ia sudah berhasil mendapatkan 1.700 bintang.

Sementara bagian cloud dari proyek di-host di 6 server (karakteristik yang tepat tidak diumumkan, dari seluruh spesifikasi hanya diketahui bahwa ini adalah "dual Xeon"), pengembang menjanjikan bahwa sebagian dari dana yang dihimpun sebagai hasil kampanye akan digunakan untuk membayar peralatan yang sudah dibeli, jika jumlah yang dikumpulkan Jika proyek melebihi $ 10.000, maka dana tambahan ini akan menjadi sinyal yang menunjukkan sejumlah besar pengguna potensial dan taman server akan diperluas. Menurut penulis, penyimpanan cloud seperti Amazon atau Azure tidak cocok dengan model bisnis saat ini, sehingga segera memutuskan untuk menggunakan seluruh backend di server sendiri.

Untuk mencegah kemungkinan keresahan di kalangan pengguna potensial tentang kekuatan pemrosesan server yang tidak mencukupi, Ryan memastikan bahwa "server hanya digunakan untuk mensintesis dan mentransmisikan kepada pengguna akhir kode biner yang hanya berukuran 3 kilobyte." Menurut pendapat saya, volume lalu lintas sangat kecil - "naik" meninggalkan kode sumber untuk Verilog, yang juga dapat dikompresi dengan baik, "turun" adalah firmware biner, yang ukurannya sangat kecil karena kapasitas relatif kecil dari FPGA yang digunakan.

Tetapi dengan memuat server dengan proses mensintesis firmware dari Verilog-code, menurut saya, semuanya tidak begitu optimis secara unik. Bahkan jika kita meninggalkan proses mengoptimalkan penempatan fisik dari sirkuit yang dihasilkan di ruang FPGA umum, yang pasti membutuhkan antarmuka grafis yang agak cepat dan pertukaran paket-paket informasi yang agak besar dengan server, proses mensintesis firmware itu sendiri tetap ada, yang, menurut pendapat pribadi saya, adalah yang pertama , harus memakan jumlah waktu prosesor yang cukup besar dan, kedua, bersifat non-deterministik dan dapat ditunda.

Secara pribadi, saya berkenalan dengan FPGA di paruh pertama nol (mereka adalah Actel FPGA, firmware yang dikembangkan dalam bundel Libero + Synplify + ModelSim) dan, sejauh yang saya ingat, proses sintesis tidak pernah kilat bahkan untuk proyek-proyek pendidikan yang sederhana. Sebenarnya, seperti proses kompilasi lainnya, sintesis dicirikan oleh semua jenis cegukan dan kegagapan berkala, tetapi mari kita berharap bahwa rata-rata waktu respons server akan berada dalam kerangka kesabaran manusia. Ngomong-ngomong, ketika di FAQ penulis berbicara tentang mengoptimalkan kompilasi dengan menyalin file biner (jika kode file Verilog dan flag kompiler tidak berubah, pengguna hanya diberikan biner terakhir yang diterima), kemudian ia menyebutkan bahwa "Anda tidak perlu 2 menit mengharapkan selesainya proses sintesis. "

Jika karena alasan tertentu Anda tidak puas dengan pengembangan melalui browser (setidaknya dapat diasumsikan bahwa prosesnya akan lembab pada awalnya), maka Anda dapat bekerja dengan FPGA melalui IceStorm / iCECube.

Jika Anda tertarik dengan teknologi WebUSB, Anda dapat memperhatikan proyek terbuka berikut (semua tautan mengarah ke GitHub, sehingga Anda dapat langsung masuk ke bawah tudung ini untuk proyek-proyek ini):

  • WebUSB + Arduino . Ini hanya bekerja pada motherboard yang kompatibel dengan Arduino dengan USB penuh, seperti Arduino Zero atau Adafruit Feather 32u4.
  • Weblight . LED terhubung ke mikrokontroler ATtiny85 dan dikendalikan melalui Internet. Tentu saja, jika Anda dapat mengontrol LED, Anda dapat mengontrol perangkat eksternal lainnya, semua yang dapat dihubungkan ke GPIO.
  • Yubikey HOTP . Perangkat untuk melindungi data pribadi di komputer dan smartphone. Mereka bekerja dengan Facebook, Gmail, GitHub dan banyak layanan lainnya.
  • webdfu . USB DFU digunakan untuk memprogram mikrokontroler. Saya sendiri menggunakan mode ini untuk perangkat pemrograman berbasis mikrokontroler STM32. Sekarang, jika penginstal perlu menjalankan instalasi teknologi dan memperbarui firmware beberapa lusin perangkat, Anda dapat membawa bukan laptop dengan Windows, tetapi ponsel Android.
  • JS IDE untuk RTOS Zephyr Project, yang memungkinkan Anda mengunduh kode ke semua papan Zephyr yang kompatibel, dan ada lebih dari seratus dari mereka. Jadi sekarang beli sesuatu seperti STM32F723E Discovery atau UDOO Neo Full dan tuliskan kode untuk mereka di ponsel Anda.

Pada halaman proyek, pengembang berbicara tentang dukungan untuk teknologi WebUSB di Chrome, Opera dan Edge, tetapi mozilla.org sekarang memiliki informasi lain, Edge tidak ada dalam daftar browser yang kompatibel:



Mengingat bahwa Microsoft Edge sekarang hanya menempati 5,2% dari pasar browser, ini tidak penting, tetapi jika Anda masih memiliki Edge, waspadai kemungkinan ketidaksesuaian. Di sisi lain, sekarang ada peluang untuk mengembangkan untuk FPGA di Chrome OS, yang sebelumnya pada prinsipnya tidak mungkin.

Haruskah saya membantu proyek ini? Menurut pendapat saya, sepadan. Sayangnya, ketika saya sudah ingin bergabung dengan barisan pendukung, ternyata untuk memesan WebFPGA Anda harus penduduk Amerika Serikat atau Kanada. Jika Anda adalah penduduk "kastil" global, maka penulis secara diplomatis meminta untuk menghubunginya dan berjanji untuk memikirkan apa yang dapat dilakukan tentang ini. Saya tidak mengerti apa batasan ini terkait, biasanya penulis kampanye crowdfunding hanya menentukan biaya pengiriman barang yang berbeda ke negara yang berbeda (sesuai dengan tarif pos negara tempat lokalisasi proyek), sehingga bungkusan itu juga dapat diterima di daerah yang kurang makmur daripada Amerika Utara.

FPGA iCE40UP5k, sejauh yang saya tahu, tidak termasuk dalam batasan ekspor dan tersedia secara gratis di Mouser dengan harga € 6,46. Mikrokontroler STM32L041F6 seharga € 2,02 semakin tersedia untuk pesanan gratis. Mungkin penulis kampanye crowdfunding memutuskan untuk dipandu oleh prinsip Pareto 80/20 dan dengan lembut menolak bekerja dengan pelanggan di luar dunia ekumenis yang beradab? Jika dia benar-benar menarik proyek itu sendirian, maka ini mungkin menjadi keputusan bisnis yang tepat.

Proyek ini, tentu saja, agak kontroversial. Pengembangan Verilog di peramban menggunakan perangkat lunak cloud - well, agak keren; terutama untuk negara-negara di mana penghormatan terhadap perangkat lunak berpemilik didukung oleh banyak preseden hukum kehidupan nyata dan mengunduh beberapa IDE yang benar-benar keren dan nyaman untuk pengembangan di Verilog dari torrents, dan kemudian juga menggunakannya dalam bisnis Anda, merupakan fenomena yang jauh lebih jarang daripada , katakanlah, di negara-negara bekas. Uni Soviet. Saya sendiri, tentu saja, tidak mengunduh apa pun dari torrent, dan saya tidak menyarankan Anda, tetapi seseorang dapat melakukan ini, Anda dapat mengharapkan semuanya darinya .

Di sisi lain, sekarang dimungkinkan untuk menggunakan beberapa jenis lingkungan pemrograman gratis untuk FPGA (setidaknya iCEcube2, yang, meskipun diikatkan ke akun Lattice Anda dan alamat MAC dari mesin yang bekerja, didistribusikan secara gratis) ditambah papan debugging yang murah dari produsen Cina, jadi jika Anda tidak dapat membeli perangkat lunak khusus, Anda tidak perlu fokus pada komputasi awan. Tapi - proyek itu sendiri cukup keren (Verilog! Di browser! WOW!), Dan dapat mengarah ke sesuatu yang lebih sebagai hasil pengembangan. Mungkin, seiring berjalannya waktu, ekosfer akan lahir, dekat dengan komunitas pengguna Arduino atau Raspberry Pi, dan para penggemar FPGA amatir akan dapat bertukar kode Verilog, kernel yang disusun dan perkembangan lainnya dengan bebas seperti sekarang di dunia mikrokontroler. Secara umum, menurut saya pro dari kampanye lebih besar daripada kontra.

Untuk penghargaan penulis kampanye crowdfunding, mereka tidak menutup-nutupi fakta keberadaan perangkat kompetitif, yang juga mencoba untuk menggabungkan isian yang menarik dan harga yang cukup rendah:

  • MojoBoard V3, dengan harga $ 75, mengusung Spartan 6 XC6SLX9 FPGA dalam paket TQFP-144, ATmega32U4 mikrokontroler untuk 84 GPIO;
  • IceBreaker, proyek crowdfunding lain, sudah berhasil ditutup; dengan harga $ 69, ditawarkan motherboard dengan Lattice iCE40UP5k FPGA dan FT2232 converter;
  • TinyFPGA BX, harga $ 38, FPGA ICE40LP8K (7680 sel logika), GPIO 41 pin.

Secara pribadi, ketika tinggal di Rusia, saya tidak dapat sepenuhnya berpartisipasi dalam proyek WebFPGA, tetapi saya mengirim Ryan $ 5 menggunakan opsi "Buat donasi tanpa remunerasi" (ini seperti tombol "Kirim uang ke penulis" di Habré). Pertama, menurut saya proyek itu sendiri sangat menarik dan bermanfaat. Kedua, sumbangan kecil secara otomatis berlangganan saya ke semua berita di proyek, jadi saya merasa sedikit Warren Buffett, yang kadang-kadang membeli satu saham perusahaan yang ia minati, sehingga kemudian, sebagai pemegang saham, meskipun minoritas, setiap tahun menerima paket laporan lengkap.

Menilai dari identitas penulis, yang salah satunya menghabiskan malam dan tidur di GitHub, jadi meskipun proyek tidak lepas landas, kami masih akan mendapatkan banyak kode sumber yang sangat berguna, dan, mungkin, seiring waktu, akan ada orang yang siap katakanlah menaikkan spanduk jatuh.

Saya memiliki blog kecil yang terkait dengan perangkat keras open source dan crowdfunding; Jika Anda memiliki proyek pengembangan DIY atau crowdfunding yang menarik di bidang elektronik, saya akan berterima kasih atas tautannya.

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


All Articles