Saya pergi ke kantor Arduino; berbicara tentang FPGA; diperlukan relawan

Pagi ini saya pergi ke kantor cabang Arduino di California. Ada pertemuan antar perusahaan tentang program pendidikan di mana manajer AMD Timur Paltashev mengundang saya. Di akhir acara, sebuah diskusi menarik muncul:

Saat ini, anak-anak sekolah diajarkan untuk memprogram Arduino dan perangkat lain berdasarkan mikrokontroler dan prosesor tertanam (Lego, Rasberry Pye, dll.). Tetapi pada tahun 1970-an, anak-anak sekolah diajarkan di sini di California untuk membuat sirkuit pada papan tempat memotong roti, transistor, dan sirkuit mikro dengan tingkat integrasi kecil (7400 TTL, CMOS 4000, dll.) Dengan elemen AND-OR-NOT dan pemicu-D. Ini seperti kemajuan - Anda dapat menulis sebuah program pada mikrokontroler yang secara sadar akan menggerakkan tangan robot, yang sulit dilakukan pada elemen logika individual, tetapi bagaimana kita membesarkan anak-anak sekolah yang dapat merancang (bukan memprogram) mikrokontroler sendiri?

Jawabannya secara umum jelas: antara elemen logika individual dan mikrokontroler yang dirilis di pabrik, Anda dapat menempatkan sirkuit terintegrasi logika yang dapat diprogram (FPGA) dan menggunakan triad "elemen individual - FPGA - mikrokontroler" untuk membentuk gambaran dunia yang lebih lengkap pada anak-anak, yang tidak hanya memiliki perangkat lunak dan sedikit antarmuka, tetapi pemikiran sistemik, di mana tugas didistribusikan antara pemrograman dan sirkuit, dan, meskipun di tingkat sekolah menengah yang sangat sederhana, semua tingkatan dapat dimengerti dan Teknologi - dari fisika semikonduktor untuk transistor ke gerbang - untuk mendaftarkan tingkat perpindahan - ke tingkat unit / blok prosesor mikro - untuk perintah arsitektur tingkat / sistem - untuk pemrograman tingkat di C dan Python - untuk robot dan sebagainya.



Gagasan untuk mengajar anak-anak sekolah di seluruh bagian depan sirkuit digital dan pemrograman tertanam kedengarannya bagus secara teori, tetapi bagaimana cara menghidupkannya?

Arduino sudah memiliki papan FPGA murah, dan produsen FPGA telah mulai mendistribusikan perangkat lunak gratis untuk sintesis tanpa lisensi yang rumit. Namun, dalam perjalanan ke nirwana adalah:

  1. Ketidaksukaan perangkat lunak untuk sintesis sirkuit dan konfigurasi FPGA oleh mereka
  2. Perbedaan serius antara model mental paralel kode dalam bahasa deskripsi SystemVerilog dari peralatan dan model mental jelas intuitif dari pemrograman sekuensial
  3. Khususnya masalah anak-anak, misalnya: bahkan anak sekolah yang lebih muda (7-10 tahun) relatif mudah untuk memahami konsep arus listrik, hambatan dan kapasitor, elemen logika kombinasional, operasi aritmatika biner - tetapi dengan pemahaman logika sekuensial (pemicu D, pemicu, register geser, mesin negara terbatas) ada plug, meskipun siswa yang lebih tua mengerti hal ini.


Jika Anda tidak tahu apa itu FPGA, Anda dapat membaca teks lama saya "Bagaimana cara memulai pengembangan perangkat keras menggunakan FPGA - instruksi langkah demi langkah" , serta "Pengantar desain perangkat keras chip untuk programmer yang belum pernah melakukan ini" .

Saya akan menulis posting terpisah tentang model mental dan masalah anak-anak, dan sekarang saya hanya akan fokus pada ketidaksukaan perangkat lunak untuk mensintesis kode dalam bahasa untuk menggambarkan peralatan. Perangkat lunak ini terlihat berat untuk anak bahkan dari tangkapan layar:

Altera Quartus II:



Xilinx Vivado:



Jelas bahwa GUI seperti itu tidak cocok untuk anak-anak. Anak-anak memerlukan GUI yang bersih dan sederhana seperti Arduino, tetapi dengan beberapa spesifik untuk mensintesis bahasa deskripsi perangkat keras - misalnya, GUI harus menunjukkan ukuran sirkuit dan kecepatan clock maksimum di mana sirkuit dapat beroperasi tanpa kelebihan beban dengan detail yang tidak perlu. Dan juga menunjukkan skema yang disintesis:



Menulis GUI sederhana dalam gaya Arduino seharusnya tidak menjadi tugas yang sangat sulit, karena baik Xilinx dan Altera berisi program dalam paket mereka yang melakukan sintesis dan pelacakan dari baris perintah, dan GUI dapat memanggil program-program ini. Masih menemukan siapa yang ingin melakukan ini dalam bentuk proyek open source yang populer. Saya berjanji kepada teman-teman saya dari Arduino.org untuk mencari di antara bahasa Rusia, Ukraina, dll. kontak, siapa yang bisa melakukan ini. Saya sarankan membahas ini di komentar.

Pertanyaan: Mengapa mensintesis rangkaian melintas di FPGA dari deskripsi di Verilog / SystemVerilog / VHDL? Lagi pula, apakah ada alat untuk sintesis tingkat tinggi yang memungkinkan Anda untuk mensintesis rangkaian dari suatu algoritma di C?

Jawab: Tula semacam ini memiliki batasan serius pada jenis skema yang dapat mereka hasilkan. Cobalah alat seperti itu untuk merancang prosesor pipeline dengan kios dan penerusan.

Pertanyaan: Tapi saya temukan di situs web board yang sangat arduino ini dengan FPGA ( http://www.cnx-software.com/2016/10/21/alorium-xlr8-arduino-compatible-altera-max-0-fpga-board -menjual-untuk-75 / ) yang dapat diprogram dengan lingkungan Arduino biasa, dengan sketsa biasa.

Jawab: Hanya saja pabrikan mensintesis mikrokontroler AVR dan mem-flash-nya ke FPGA. Menggunakan FPGA dengan cara ini seperti menggunakan drive CD-ROM sebagai warung kopi. Ini bisa dilakukan, tetapi ini tidak menghabiskan esensi drive. Anda dapat membuat berbagai skema pada FPGA, mulai dari elemen DAN sederhana dan mengedipkan bola lampu dengan cara sirkuit, dan tidak hanya mem-flash prosesor besar yang dirancang oleh orang lain.

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


All Articles