Saya telah memprogram mikrokontroler selama beberapa tahun sekarang, dan saya baru saja menemukan FPGA setelah mengambil kelas desain digital. Setelah melakukan riset ke berbagai FPGA, papan pengembangan, dll, saya masih ragu untuk membelinya karena saya tidak tahu bagaimana membuat versi "produk" saya sendiri. Saya telah menempatkan PIC, SAM, AVR, dll pada PCB kustom tanpa masalah, jadi saya tidak khawatir tentang hal itu - perhatian utama saya adalah pemrograman FPGA tanpa papan pabrikan.
Pertanyaan spesifik saya: Apakah fungsi FPGA jika saya mengambil file bitmap yang dihasilkan oleh Quartus, Vivado, iCEcube, dll, menulisnya ke chip memori flash SPI mulai dari alamat 0 (katakanlah, melalui FT2232H), dan menghubungkan memori flash ke pin SPI dari FPGA (dengan konfigurasi MODE diatur dengan benar)?
Saya minta maaf untuk hipotesis parsial; Saya cukup yakin hanya itulah yang dilakukan Lattice's Diamond Programmer, tetapi saya bertanya-tanya apakah pendekatan itu akan bekerja untuk FPGA dari produsen yang berbeda, atau apakah mengatakan, Quartus menambahkan "window dressing" tambahan atau header ke memori saat menulisnya.
Beri tahu saya jika ada yang bisa saya lakukan untuk meningkatkan / mengklarifikasi pertanyaan, atau jika saya kehilangan poin besar dalam proses pemrograman FPGA. Terima kasih!
sumber
Jawaban:
Ya, itu akan bekerja dengan baik.
Sebenarnya, alat pengembangan untuk sebagian besar FPGA memungkinkan Anda untuk memprogram flash eksternal secara langsung melalui koneksi JTAG FPGA sendiri, menghilangkan kebutuhan untuk antarmuka pemrograman terpisah untuk flash.
sumber
Ketika Anda mengatakan "file bitmap [sic] dihasilkan oleh", jawabannya adalah Ya selama Anda memilih yang benar - Anda membuat sedikit kesalahan dengan menggunakan artikel yang pasti karena tidak hanya ada satu file yang dihasilkan .
Sebagai contoh, Quartus dapat menghasilkan file SOF, POF, dan JIC. Yang terakhir adalah apa yang Anda gunakan untuk pemrograman tidak langsung melalui FPGA JTAG. Tidak akan berguna untuk menulis itu ke flash SPI. SOF adalah untuk memuat lebih dari JTAG untuk menjalankan desain Anda di FPGA secara sementara. POF adalah apa yang Anda butuhkan untuk memuat ke dalam chip flash.
Lihat FPGA: Bitstream vs. SRAM Object File untuk banyak informasi berguna tentang apa arti file yang berbeda dari masing-masing vendor yang berbeda.
sumber
Jika saya memahami pertanyaan Anda dengan benar, Anda ingin menulis konfigurasi FPGA (mis. Model HDL Anda yang dikompilasi) ke SPI EEPROM atau SPI Flash dan Anda ingin FPGA memprogram dirinya sendiri menggunakan data pada IC SPI.
(Jika saya mengerti jawaban Dave Tweed dengan benar, dia memahami pertanyaan Anda dengan cara yang berbeda.)
Setidaknya banyak perangkat memori SPI Flash TIDAK akan berfungsi karena IC memori SPI Flash memerlukan bentuk gelombang tertentu (misalnya alamat yang akan dibaca) untuk dikirim sehingga data dibaca dari IC.
Bentuk gelombang ini tidak sama untuk semua perangkat memori Flash. Bahkan ketika hanya melihat kartu memori SD (yang juga dapat digunakan sebagai memori Flash SPI) kami menemukan dua varian yang membutuhkan bentuk gelombang yang berbeda untuk dikirim ke kartu sebelum kartu membacakan data.
Saat mengatur pin mode FPGA dengan benar, FPGA akan mengirimkan beberapa bentuk gelombang yang menginstruksikan beberapa perangkat memori serial untuk mengirim data. Namun, karena IC yang berbeda memerlukan bentuk gelombang yang berbeda, bentuk gelombang tidak akan dipahami oleh semua IC Flash tetapi hanya oleh tipe tertentu.
Saya tahu bahwa Altera menghasilkan Flash khusus atau IC EEPROM yang kompatibel dengan FPGA mereka.
sumber
Jika Anda ingin menulis bitstream FPGA ke flash tanpa alat pemrograman FPGA resmi, kemungkinan besar Anda ingin mengonversi file bitstream tersebut ke format biner terbuka yang dapat Anda baca dengan mudah, seperti biner mentah, Intel HEX atau Motorola SREC ( contoh ). Ini akan menghapus setiap header kepemilikan yang mengandung bitstream FPGA.
Dengan cara ini Anda dapat memprogram flash menggunakan alat dari produsen flash (atau alat Anda sendiri), atau bahkan memesan chip flash yang diprogram sebelumnya dengan bitstream FPGA Anda.
sumber