Saya memiliki rantai JTAG yang menghubungkan 4 Spartan 6 FPGA yang saya program menggunakan ISE iMPACT. Perangkat lunak ini dapat memprogram subset ketat dari 4 FPGA secara berturut-turut, dan dalam urutan apa pun. Namun, ketika saya mencoba memprogram keempat FPGA, pin SELESAI dari FPGA terakhir tidak menjadi tinggi, dan pemrograman gagal.
Apa yang bisa menyebabkan perilaku aneh ini?
Catatan:
- Setelah memprogram tiga FPGA, bit INIT_B dari register status untuk FPGA keempat adalah 0, meskipun pin INIT_B tinggi. Tepat sebelum pemrograman FPGA ketiga, bit itu adalah 1. Ini menunjukkan FPGA keempat telah terkunci.
- Saat pemrograman dengan SelectMap, saya dapat memprogram keempat FPGA tanpa masalah.
- Ketika saya memprogram tiga FPGA menggunakan SelectMap, yang keempat masih tidak dapat diprogram menggunakan JTAG.
- Masing-masing dari empat pin yang dilakukan ditarik ke atas hingga 3V3 hingga 4.7K Ohm resistor, dan kemudian diikat bersama.
Hal yang saya coba :
Memutuskan hubungan salah satu FPGA dari rantai memungkinkan 3 FPGA yang tersisa masih diprogram.
Mengganti resistor pull-up 4.7K Ohm dari FPGA terakhir untuk resistor 330 Ohm tidak menyelesaikan masalah.
"If the Spartan-6 device is configured via JTAG, the configuration instructions occur independent from the mode pins."
DONE
pin diikat bersama. Untuk JTAG, pemrograman banyak perangkat disebut Boundary-Scan Chain. Dalam Chapter 3: Boundary-Scan and JTAG Configuration
, satu-satunya menyebutkan DONE
pin adalah "If JTAG is the only configuration mode, then PROGRAM_B, INIT_B, and DONE can be tied High to a 330 resistor."
Jadi apakah DONE
pin rendah satu-satunya masalah? Apakah programnya benar?
"The first device in a serial daisy chain is the last to be configured."
Apakah maksud Anda terakhir di rantai atau terakhir yang akan dikonfigurasi (pertama di rantai)? Bisakah Anda memberikan skema?