Tôi có một chuỗi JTAG kết nối 4 Spartan 6 FPGA mà tôi lập trình bằng ISE iMPACT. Phần mềm có thể lập trình thành công bất kỳ tập hợp con nghiêm ngặt nào của 4 FPGA liên tiếp và theo bất kỳ thứ tự nào. Tuy nhiên, khi tôi cố gắng lập trình cả bốn GPU, chân DONE của FPGA cuối không tăng cao và việc lập trình thất bại.
Điều gì có thể gây ra hành vi kỳ lạ này?
Ghi chú:
- Sau khi lập trình ba trong số các GPU, bit INIT_B của thanh ghi trạng thái cho FPGA thứ tư là 0, mặc dù chân INIT_B cao. Ngay trước khi lập trình FPGA thứ ba, bit đó là 1. Điều này cho thấy rằng FPGA thứ tư đã bị khóa.
- Khi lập trình với SelectMap, tôi có thể lập trình cả bốn FPGA mà không gặp vấn đề gì.
- Khi tôi lập trình ba trong số các GPU sử dụng Chọn Bản đồ, cái thứ tư vẫn không thể được lập trình bằng JTAG.
- Mỗi trong số bốn chân được thực hiện được kéo lên đến 3V3 qua điện trở 4,7K Ohm, sau đó gắn lại với nhau.
Những điều tôi đã thử :
Việc ngắt kết nối một trong các FPGA khỏi chuỗi cho phép 3 FPGA còn lại vẫn được lập trình.
Hoán đổi điện trở kéo lên 4,7K Ohm của đồ họa cuối cùng cho điện trở 330 Ohm không giải quyết được vấn đề.
"If the Spartan-6 device is configured via JTAG, the configuration instructions occur independent from the mode pins."
DONE
chân được gắn với nhau. Đối với JTAG, lập trình nhiều thiết bị được gọi là Chuỗi ranh giới quét. Trong Chapter 3: Boundary-Scan and JTAG Configuration
, đề cập duy nhất của DONE
pin là "If JTAG is the only configuration mode, then PROGRAM_B, INIT_B, and DONE can be tied High to a 330 resistor."
Vì vậy, DONE
pin thấp là vấn đề duy nhất? Liệu nó có đúng chương trình không?
"The first device in a serial daisy chain is the last to be configured."
Bạn có nghĩa là cuối cùng trong chuỗi hoặc cuối cùng được định cấu hình (đầu tiên trong chuỗi)? Bạn có thể cung cấp một sơ đồ?