Saya mencoba mendapatkan pemahaman umum tentang apa yang terjadi jika Anda meninggalkan FPGA yang tidak terprogram untuk jangka waktu yang lama.
Misalkan Anda memiliki FPGA dan Anda membiarkannya tidak terprogram untuk jangka waktu yang lama (beberapa menit hingga berjam-jam setelah dihidupkan), yaitu tidak ada bitstream di atasnya, apakah ini buruk untuk perangkat? Apakah disarankan untuk memiliki bitstream pada FPGA yang dihidupkan setiap saat? Apa pendapat umum tentang ini?
Apakah hasilnya berbeda pada perangkat atau pabrikan yang berbeda (Xilinx vs Altera vs yang lain)?
Informasi tambahan:
Saya memiliki papan SoC kustom yang menggunakan Xilinx Virtex-6 FPGA. Saya juga punya Xilinx ML605 yang saya gunakan untuk tujuan referensi.
Papan khusus: Saya menghidupkan papan. Saya perhatikan bahwa saya mendapatkan waktu singkat untuk memprogramnya menggunakan XMD (Xilinx Microprocessor Debugger). Jika saya kehilangan jendela 20-30 detik, saya harus mematikan dan menghidupkan papan sebelum mencoba lagi. Ini tidak terjadi dengan ML605.
Ketika saya mencoba memprogram papan kustom melalui XMD, saya mendapatkan sesuatu seperti:
Error: Device Reset by JPROGRAM command, failed. INIT_COMPLETE did not go high.
Biarkan aku tahu apa yang kau pikirkan.
sumber
Jawaban:
Ini pertanyaan yang menarik. Dari pengalaman pribadi, saya membiarkan FPGA menyala selama berjam-jam dalam keadaan tidak terprogram saat melakukan pemeriksaan di seluruh sirkuit ketika papan baru masuk dari rumah perakitan. Saya belum melihat adanya efek yang merugikan dari melakukannya. Tapi sejujurnya saya tidak pernah memikirkannya.
Saya melihat sekeliling untuk mencoba dan menemukan rekomendasi dari produsen FPGA tetapi tidak dapat menemukannya. Satu-satunya pernyataan yang saya temukan mengenai keadaan ini adalah dari whitepaper Lattice dan menganggap desain FPGA itu sendiri dan bukan bagaimana seharusnya digunakan:
Xilinx juga menyebutkan apa arus diam sehingga Anda dapat merancang catu daya Anda sesuai. Tetapi tidak menyebutkan apa efek pada perangkat itu meninggalkannya dalam keadaan seperti itu:
Saya akan sangat tertarik untuk mendengar jika ada orang yang mengalami kerusakan pada perangkat karena meninggalkannya dalam keadaan diam. Tapi saya pikir selama catu daya cocok dengan perangkat, seharusnya tidak ada masalah.
sumber
Saya mereferensikan lembar data Spartan 3 , karena itulah FPGA yang paling saya kenal.
Jika Anda melihat bab 2 (Deskripsi Fungsional), bagian "Konfigurasi" memiliki diagram alir pasangan. Gambar 27 (halaman 50) menunjukkan diagram alir untuk memuat dari Flash. Gambar 28 menunjukkan diagram alir JTAG.
Berikut ringkasan singkatnya.
1) Tunggu Vccint, Vccaux, dan Vcco untuk mencapai level yang diperlukan.
2) Bersihkan kait konfigurasi
3) Tunggu INIT_B menjadi tinggi. INIT_B adalah output saluran terbuka yang dapat ditahan oleh master eksternal untuk menunda konfigurasi.
4) Contoh Mode pin. Ini menentukan apakah Anda akan memuat melalui JTAG atau Flash, dan jika Flash apakah FPGA atau Flash adalah Master.
5) Memuat frame data Konfigurasi.
6) Pastikan CRC untuk frame data sudah benar. Jika BUKAN benar, FPGA akan mendorong INIT_B rendah untuk menunjukkan kesalahan CRC dan itu akan membatalkan startup.
Langkah 5 mungkin di mana pertanyaan Anda sebenarnya - apa yang terjadi jika tidak ada yang memuat? Nah, Anda seharusnya tidak sampai ke Langkah 5 jika Anda melakukan hal-hal yang benar. Chip Flash akan menahan INIT_B rendah hingga siap melayani data ke FPGA. Jika Anda menggunakan JTAG, maka saya tidak yakin apakah programmer JTAG Anda akan menahan INIT_B rendah, tetapi ketika ia pergi ke program FPGA itu hampir pasti akan menegaskan PROG_B (dengan mengendarainya rendah), yang menyebabkan FPGA kembali ke langkah 2.
Jika saya jadi Anda, saya akan mengatur sinyal INIT_B selama penyalaan untuk melihat apa yang terjadi. Jika mulai rendah, naik tinggi, dan turun lagi, FPGA membatalkan urutan startup dan Anda mungkin perlu menegaskan PROG_B untuk mengatur ulang FPGA.
sumber
Konfigurasi default dirancang agar pasif mungkin agar perangkat dapat digunakan secara universal.
Untuk seri Altera Cyclone (yang saya punya paling banyak pengalaman) ini artinya
Jenis FPGA lainnya harus sama-sama diam, dan memberikan keluaran yang tidak terbalik dan terbalik yang menunjukkan status konfigurasi ke seluruh papan.
Membiarkan perangkat dalam keadaan itu tidak berbahaya, karena intinya cukup terisolasi dari dunia luar, dan hanya pull-up yang mungkin memiliki arus kecil melintasinya.
sumber