Apa yang terjadi ketika FPGA dinyalakan dan dibiarkan tidak dikonfigurasi?

10

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.

sarjana
sumber
1
Anda menekankan dalam pertanyaan Anda dan dalam edit Anda "periode waktu yang panjang". Apakah itu penting jika beberapa detik atau beberapa jam? Saya tidak berpikir itu ..
m.lin
Saya melihat sebuah fenomena di papan FPGA khusus di mana saya mendapatkan jendela pemrograman 20-30 detik. Jika saya tidak memprogram di jendela ini, saya tidak bisa memprogram dengan sukses. Tema sentral dari pertanyaan saya bukanlah durasi waktu tetapi untuk mendapatkan pemahaman tentang fenomena tersebut.
peti mati
Apakah Anda dapat terhubung ke perangkat sama sekali? Atau apakah itu hanya gagal ketika Anda mencoba program? Apa kesalahan yang diberikan oleh programmer?
embedded.kyle
1
Apakah Anda memprogram FPGA melalui JTAG secara langsung, atau apakah Anda memuat chip Flash terlebih dahulu dan kemudian membiarkan FPGA mengonfigurasi melalui itu?
ajs410
@ fpga_boffin, bisakah Anda menambahkan detail itu ke pertanyaan Anda?
Jon L

Jawaban:

7

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:

Perangkat Diam Diam Statis Konsumsi Daya adalah jumlah daya yang dikonsumsi oleh FPGA sebelum perangkat diprogram. Untuk konsumsi daya perangkat yang diam, FPGA dalam kondisi tidak terprogram, namun telah diaktifkan. Adalah penting bahwa perangkat tidak mengkonsumsi daya yang signifikan selama waktu ini, karena secara konseptual perangkat FPGA dapat menarik daya yang berlebihan dan berpotensi mematikan catu daya, mencegah papan dari berhasil menginisialisasi dirinya dan sistem.
Oleh karena itu, pemasok FPGA harus secara hati-hati merancang transistor yang memiliki daya statis statis 3 rendah. Merancang Jejak Putih Kisi Semikonduktor White Paper, tanpa berkompromi di area di mana diperlukan kinerja yang lebih tinggi (mis. I / O dan SERDES)

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:

Daya statis atau diam terutama didominasi oleh arus kebocoran transistor. Ketika arus ini tercantum dalam lembar data, itu terdaftar sebagai ICCINTQ dan arus yang diambil melalui pasokan VCCINT yang memberi daya pada inti FPGA.

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.

tertanam.kyle
sumber
6

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.

ajs410
sumber
Jawaban Anda tidak mengatakan apa pun tentang keadaan internal FPGA sebelum langkah 5, yang ingin diketahui OP.
stevenvh
Langkah 2. Bersihkan Kait Konfigurasi. Langkah 3, menunggu INIT_B. Saya juga membahas keputusan apa yang mungkin dibuat oleh FPGA setiap kali ditemukan tidak ada data konfigurasi untuk dimuat (INIT_B semakin rendah untuk mengindikasikan kesalahan CRC).
ajs410
1
Permintaan maaf saya, lembar data yang saya referensikan sekitar tahun 2005, dan telah diperbarui pada tahun 2009. Namun, seandainya Anda benar-benar membaca komentar saya secara menyeluruh, Anda akan dapat menemukannya. Bab 2, Deskripsi Fungsional, di bawah judul Konfigurasi. Tautan telah diperbarui untuk menunjuk ke lembar data terbaru, serta nomor halaman baru.
ajs410
0

Konfigurasi default dirancang agar pasif mungkin agar perangkat dapat digunakan secara universal.

Untuk seri Altera Cyclone (yang saya punya paling banyak pengalaman) ini artinya

  • pin I / O lemah ditarik ke VCCIO (untuk menjaga IC dengan chip aktif-rendah memungkinkan jalur dari bus),
  • output CONF_DONE ditarik rendah (Anda dapat menyambungkan ini ke pin reset IC lain untuk menjaganya tetap dalam reset sampai konfigurasi telah dimuat serta mengembalikannya ke kondisi yang diketahui saat mengkonfigurasi ulang), dan
  • input jam tidak diteruskan ke jaringan jam.

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.

Simon Richter
sumber