Saya membaca di suatu tempat bahwa kode VHDL yang buruk dapat menyebabkan kerusakan FPGA.
Apakah mungkin untuk merusak FPGA dengan kode VHDL? Kondisi seperti apa yang menyebabkan ini dan apa skenario terburuknya?
Saya membaca di suatu tempat bahwa kode VHDL yang buruk dapat menyebabkan kerusakan FPGA.
Apakah mungkin untuk merusak FPGA dengan kode VHDL? Kondisi seperti apa yang menyebabkan ini dan apa skenario terburuknya?
Jawaban:
Menambah jawaban @ Anonymous, ada desain yang bisa Anda buat yang dapat merusak jalinan FPGA.
Sebagai permulaan jika Anda membangun desain yang sangat besar yang terdiri dari register dalam jumlah sangat besar (misalnya 70% dari FPGA) yang semuanya sudah mendekati frekuensi maksimum FPGA, dimungkinkan untuk memanaskan silikon secara signifikan. Tanpa pendinginan yang memadai ini dapat menyebabkan kerusakan fisik. Kami kehilangan FPGA $ 13k karena terlalu panas karena dev-kit memiliki sistem pendingin yang mengerikan.
Kasus lain yang lebih sederhana adalah loop kombinasional. Misalnya jika Anda membuat tiga gerbang tidak dirantai bersama dalam sebuah cincin, dan menonaktifkan atau mengabaikan peringatan synthesizer tentang struktur seperti itu, Anda dapat membentuk sesuatu yang sangat buruk untuk FPGA. Dalam contoh ini Anda akan membuat osilator multi-GHz yang dapat menghasilkan banyak panas di area yang sangat kecil, mungkin merusak ALM dan logika sekitarnya.
Kode bukan kata yang tepat dalam konteks ini. Sementara Verilog atau VHDL terlihat seperti program, output dari kompiler adalah konfigurasi yang dimuat ke dalam chip FPGA yang membentuk sirkuit elektronik di dalamnya.
Dua tipe muncul di benak saya:
Kesalahan konfigurasi blok pin input karena output mungkin melakukannya jika apa pun yang mendorongnya cukup kaku.
Saya tidak tahu apakah mengonfigurasi beberapa pin untuk LVDS atau salah satu standar LVCMOS sementara bank IO ditenagai dari tegangan yang terlalu tinggi (kekuatan 3.3V dengan standar IO 1.8V misalnya, atau sebaliknya pada input) akan melakukan saya t?
Jelas masalah termal dapat terjadi dengan melakukan sesuatu yang konyol seperti membuat banyak, banyak, cincin osilator.
FPGA dapat dikonfigurasi ulang saat runtime dengan bitstream (parsial) baru. Biasanya, aliran ini diambil dari sumber eksternal, tetapi Anda juga dapat membuatnya sendiri di FPGA (mis. Oleh CPU softcore tertanam). Menggunakan solusi semacam itu untuk misalnya memindahkan subdesign secara dinamis, tidak memberikan semua pemeriksaan konsistensi seperti yang dilakukan oleh alat vendor. Jadi, jika algoritme Anda rusak, Anda mungkin mengaktifkan transistor jalur palsu dalam FPGA dan membakarnya.
Anda juga dapat memilih mode operasi palsu untuk primitif FPGA seperti PLL atau transceiver.
Konfigurasi ulang dinamis seperti kode modifikasi sendiri dalam perangkat lunak.