Как правильно считывать ДНК устройства с ПЛИС Xilinx с помощью пакетных команд Impact?

Я пытаюсь прочитать 57-битную ДНК устройства Xilinx Spartan 3AN FPGA, используя пакетную командную оболочку Impact (ISE v14.6) и используя следующий вызов командной строки:

impact -batch file.txt

Содержимое файла .txt:

setMode -bscan
setCable -p auto
addDevice -p 1 -file program.bit
readDna -p 1
quit

Ответ, который я получаю от Impact, неверен и меняется с каждым моим звонком. Я знаю, что это неправильно, потому что я создал экземпляр примитива DNA_PORT в своем HDL и считываю правильную ДНК. Вот последние несколько строк одного из ответов Impact:

Boundary-scan chain validated successfully.
DNA = '111111111111111100000000000000000000000000000000000000000'
Elapsed time = 0 sec.

Кто-нибудь добился успеха с этой командой? Если да, то что я делаю неправильно?


person Ryan    schedule 30.03.2015    source источник
comment
Это должно работать, вы уверены, что ваша цепочка JTAG верна? Можете ли вы прочитать ДНК с помощью графического интерфейса? Также есть ReadIdcode -p 1, просто чтобы убедиться, что вы нацелены на спартанца. Это единственное устройство в цепочке JTAG?   -  person Jonathan Drolet    schedule 30.03.2015
comment
Я ценю ответ, и да, ReadIdcode возвращает правильный идентификатор и соответствует используемой мной FPGA (0x02620093 = XC3AN400ANFTG256). Цепочка JTAG работает, потому что я могу получить этот идентификатор, стереть, запрограммировать, проверить и т. д. Используемый мной графический интерфейс (iMPACT P.68d, v14.6) не предоставляет метод получения ДНК для этого часть - по крайней мере, не так, как я знаю. Это позволяет мне получить идентификатор.   -  person Ryan    schedule 01.04.2015
comment
Также да, в этой цепочке всего одно устройство — Spartan 3AN FPGA с внутренней энергонезависимой памятью.   -  person Ryan    schedule 01.04.2015
comment
Я вытащил для вас свою запыленную плату spartan-3AN, кажется, опция чтения ДНК из GUI недоступна для spartan-3AN (она есть для spartan-6). Я никогда не использовал функцию ДНК до spartan-6, кажется, тогда она была более глючной, ваша часть пуста? Вы видели этот вариант ответа xilinx.com/support/answers/29977.html?   -  person Jonathan Drolet    schedule 01.04.2015
comment
Багги прав. К счастью, примитив DNA_PORT, который я создал в структуре, не содержит ошибок и возвращает согласованные результаты.   -  person Ryan    schedule 02.04.2015


Ответы (1)


С помощью Джонатана я добрался до сути этого.

Для Spartan 3AN FPGA вы можете использовать пакетные команды iMPACT только для чтения ДНК из пустой части, над которой не выполнялись никакие другие операции. Первоначально я читал ДНК сразу после стирания части и выполнения успешной пустой проверки. Эти два шага мешали iMPACT правильно считывать ДНК на Spartan 3AN, даже если он был пустым. Цикл включения питания FPGA после пустой проверки приводит к действительному чтению ДНК.

Я предполагаю, что это связано с поведением контакта DONE. На этом устройстве команда проверки пустого состояния приводит к утверждению вывода DONE, а также переводит ПЛИС в неактивное состояние независимо от того, пустой он или нет.

Еще раз спасибо, Джонатан, за то, что направил меня на правильный путь.

person Ryan    schedule 01.04.2015