Перейти к содержанию
    

Spartan6. Проект загружается, но не стартует.

День добрый коллеги. Никак не могу подружиться с 6-ым спартаном. Вообщем о проблеме.

В цепь JTAG последовательно включены сначала ПЛИС, затем XC6SLX45-3FGG676I, затем конфигуратор XCF16PFSG48C.

При подаче питания эти 2 м/сх обнаруживаются по цепи JTAG. Идентификаторы м/сх считываются, т.е. все вроде работает.

1. Зашиваем проект (bit-файл) в ПЛИС по JTAGу.

iMPACT выдает:

----------------------------------------------------------------------

INFO:iMPACT - Current time: ?? 28. ??? 12:2PROGRESS_START - Starting Operation.

Maximum TCK operating frequency for this device chain: 15000000.

Validating chain...

Boundary-scan chain validated successfully.

'1': Programming device...

LCK_cycle = NoWait.

LCK cycle: NoWait

done.

'1': Reading status register contents...

[0] CRC ERROR : 0

[1] IDCODE ERROR : 0

[2] DCM LOCK STATUS : 1

[3] GTS_CFG_B STATUS : 1

[4] GWE STATUS : 1

[5] GHIGH STATUS : 1

[6] DECRYPTION ERROR : 0

[7] DECRYPTOR ENABLE : 0

[8] HSWAPEN PIN : 1

[9] MODE PIN M[0] : 1

[10] MODE PIN M[1] : 1

[11] RESERVED : 0

[12] INIT_B PIN : 1

[13] DONE PIN : 1

[14] SUSPEND STATUS : 0

[15] FALLBACK STATUS : 0

INFO:iMPACT:2219 - Status register values:

INFO:iMPACT - 0011 1100 1110 1100

INFO:iMPACT:579 - '1': Completed downloading bit file to device.

INFO:iMPACT:188 - '1': Programming completed successfully.

LCK_cycle = NoWait.

LCK cycle: NoWait

INFO:iMPACT - '1': Checking done pin....done.

'1': Programmed successfully.

PROGRESS_END - End Operation.

Elapsed time = 5 sec.

 

Вообщем проект залился, но на тестовых пинах все время нули, т.е. как будто ПЛИС в состоянии сброса. Посмотрел на состояние сигнала DONE (оттянут на +3,3В), ведет себя как и положено, т.е. во время прошивки в состоянии 0, а после уходит в состояние 1.

 

2. Пробовал прошивать конфигурашку. Ситуация абсолютно аналогичная (ПЛИС с конфигурашки грузится как master serial). С конфигурашки идет CCLK, данные (посмотрел) также сигнал DONE сначала в 0, а после заливки прошивки с конфигурашки уходит в 0. Но ПЛИС молчит((.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Была такая засада у Xilinx: DONE должен перейти в устойчивую '1' за 1 такт CCLK, иначе ПЛИС становится раком. Может быть это как раз Ваш случай ?

Было 2 варианта преодоления этого: повесить на DONE резистор в 330 Ом или включить DONE_DRIVE_HIGH в опциях BitGen'а (мне всегда больше нравился 2 вариант – он надёжнее работает).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Была такая засада у Xilinx: DONE должен перейти в устойчивую '1' за 1 такт CCLK, иначе ПЛИС становится раком. Может быть это как раз Ваш случай ?

Было 2 варианта преодоления этого: повесить на DONE резистор в 330 Ом или включить DONE_DRIVE_HIGH в опциях BitGen'а (мне всегда больше нравился 2 вариант – он надёжнее работает).

 

 

Да в том то и дело что и резистор 330 Ом стоит на месте (может по расстоянию далеко от ПЛИС, около 5 см), и опцию Drive Done Pin High включил. Рекомендуете посмотреть на длительность фронта сигнала Done?

 

Тут же не совсем тогда ясен вопрос прошивки через JTAG, т.е. загрузки bit-файла. Я в установках кабеля (cable setup) снижал рабочую частоту JTAG до 1,5МГц. Ситуация та же самая.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Больше никаких идей нет??

может дело не в житаге ? ноги не те стоят, тактовой нет и т.д. ? самый простой способ проверить : блинкер + чипскоп.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

может дело не в житаге ? ноги не те стоят, тактовой нет и т.д. ? самый простой способ проверить : блинкер + чипскоп.

 

На счет тактовой - я уже константы подаю на тестовые сигналы. Полазил по зарубежным сайтам - они рекомендуют тоже самое что и Boris_TS:

 

There are a handful of problems that might prevent a Xilinx Virtex series FPGA from operating correctly after the DONE pin goes High:

1. A slow rise time on the DONE pin

2. An incorrect startup clock

3. Insufficient clock cycles to complete the startup sequence

4. Contention between DONE signals on configured vs. unconfigured devices

 

А можно поподробней про "самый простой способ" или ссылку как его использовать (описание). Модуль чипскоп как то пробовал, но он мне не понравился (хотя использовал только для просмотра внутренних сигналов во время отладки проекта). А вот про "блинкер" что то не слышал.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На счет тактовой - я уже константы подаю на тестовые сигналы.

если ошибки в пинах нет, тогда это проблема загрузки.

 

А можно поподробней про "самый простой способ" или ссылку как его использовать (описание). Модуль чипскоп как то пробовал, но он мне не понравился (хотя использовал только для просмотра внутренних сигналов во время отладки проекта). А вот про "блинкер" что то не слышал.

да самые банальные проверки, выдать частоту на светодиод (blinker) и посмотреть работу делителя частоты в нем чипскопом. Если фпга загрузилась и молчит по внешним портам, то внутри она будет хлопать если есть тактовая. Если не находиться инстанс чипскопа значит фпга не загрузилась, если не хлопает чипскоп, значит тактовой нет. Но похоже что это не ваш вариант.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Входы/выходы могут не работать, например, из-за проблем с Vccio. Также стоит проверить физическое наличие клока на плате.

Блинкер - видимо, простейший проект, мигалка выходом (светодиодом) от основной частоты + поставить чипскоп на клок и мигающую ножку.

После загрузки проекта запустить анализатор чипскопа и смотреть, что он скажет насчет присутствия ядра ILA и его функциональности.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Входы/выходы могут не работать, например, из-за проблем с Vccio. Также стоит проверить физическое наличие клока на плате.

Блинкер - видимо, простейший проект, мигалка выходом (светодиодом) от основной частоты + поставить чипскоп на клок и мигающую ножку.

После загрузки проекта запустить анализатор чипскопа и смотреть, что он скажет насчет присутствия ядра ILA и его функциональности.

 

Понятно. Да я уже попытался отойти от внешней частоты (хотя она подается, по крайней мере идет от генератора). Подаю на тестовые сигналы (их 16 штук) различные константы, т.е. вообще отошел от частоты, простая логика. Во время заливки прошивки в ПЛИС по JTAGу на этих пинах состояние "1", т.е. пока идет программирование они в Z-состоянии как и положено, а после прошивки переходят в состояние 0, вне зависимости от того что я задал на них.

Насчет ошибки в пинах, не могли же ошибиться в разводке всех 16-ти пинов.

 

И еще по потреблению тока тоже интересный момент. Во время прошивки потребление - 300мА. После прошивки - 600мА. Далее через несколько секунд опять 300мА.

Вот такие чудеса. Сколько работаю (уже скоро 12 лет) такого не было ни разу. Даже Virtex5, куда более сложный девайс и то без проблем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Положение неиспользуемых ножек после программирования можно задавать в файле конфигурации (Pulldown, pullup, HiZ) - попробуйте разное.

Прыжок потребления - очень странно, похоже на сброс конфигурации. Стоит проверить все напряжения питания ПЛИС, включая IO и MGT (если это 45T).

Считайте регистр состояния после сброса потребления на 300мА. Возможно, конфигурация слетела (дрожит INIT ?).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Положение неиспользуемых ножек после программирования можно задавать в файле конфигурации (Pulldown, pullup, HiZ) - попробуйте разное.

Прыжок потребления - очень странно, похоже на сброс конфигурации. Стоит проверить все напряжения питания ПЛИС, включая IO и MGT (если это 45T).

Считайте регистр состояния после сброса потребления на 300мА. Возможно, конфигурация слетела (дрожит INIT ?).

 

Спасибо, завтра попробую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

День добрый. Как и предположил Boris, стоял не тот номинал резистора по сигналу DONE (хотя по перечню и схеме - 330Ом, поставили таки 4,7кОм). Перепаял ((((. И пошли новые глюки. Теперь стала дурить цепочка JTAG. Выдает такой баян:

 

Attempting to identify devices in the boundary-scan chain configuration...

INFO:iMPACT - Current time: ?? 29. ??? 11:4PROGRESS_START - Starting Operation.

Identifying chain contents...'0': : Manufacturer's ID = Xilinx xcf16p, Version : 13

INFO:iMPACT:1777 -

Reading C:/Xilinx/12.3/ISE_DS/ISE/xcfp/data/xcf16p.bsd...

INFO:iMPACT:501 - '1': Added Device xcf16p successfully.

----------------------------------------------------------------------

----------------------------------------------------------------------

'1': : Manufacturer's ID = Xilinx xc6slx45, Version : 4

INFO:iMPACT:1777 -

Reading C:/Xilinx/12.3/ISE_DS/ISE/spartan6/data/xc6slx45.bsd...

INFO:iMPACT:501 - '1': Added Device xc6slx45 successfully.

----------------------------------------------------------------------

----------------------------------------------------------------------

'2': : Manufacturer's ID = Unknown

INFO:iMPACT:501 - '1': Added Device UNKNOWN successfully.

----------------------------------------------------------------------

----------------------------------------------------------------------

'3': : Manufacturer's ID = Unknown

INFO:iMPACT:501 - '1': Added Device UNKNOWN successfully.

----------------------------------------------------------------------

----------------------------------------------------------------------

'4': : Manufacturer's ID = Unknown

INFO:iMPACT:501 - '1': Added Device UNKNOWN successfully.

----------------------------------------------------------------------

----------------------------------------------------------------------

'5': : Manufacturer's ID = Unknown

INFO:iMPACT:501 - '1': Added Device UNKNOWN successfully.

----------------------------------------------------------------------

... до 31

----------------------------------------------------------------------

ERROR:iMPACT - A problem may exist in the hardware configuration. that the cable, scan chain, and power connections are intact, that the specified scan chain configuration matches the actual hardware, and that the power supply is adequate and delivering the correct voltage.

----------------------------------------------------------------------

 

Хотя вчера все по цепи JTAG определялось ОК. Сейчас сижу перепроверяю JTAG. Хотя вроде бы м/сх он находит (если посмотреть в начале списка, то там как раз и есть мои м/сх, но далее идет брею).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хотя вчера все по цепи JTAG определялось ОК. Сейчас сижу перепроверяю JTAG. Хотя вроде бы м/сх он находит (если посмотреть в начале списка, то там как раз и есть мои м/сх, но далее идет бред).

Проверьте TMS и TDI, обычно такое из-за этих сигналов бывает.

 

Есть, конечно, и более мерзкий вариант, хоть на него не сильно похоже, но всё равно изложу: у нас в Virtex-6 была конкуренция между 2 процессами загрузки JTAG и Master Select MAP:

1. JTAG посылал команду #Program.

2. ПЛИС сбрасывалась, и считывала состояние ножек M[2:0].

3. согласно состоянию M[2:0] ПЛИС начинала грузиться с Platform Flash XL.

4. а тут, как раз, и JTAG созревал до загрузки.

Вылечили добавлением перемычки на одну из M[2:0] ножек для выбора режима загрузки: JTAG / Master Select MAP.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрел все сигналы JTAG. TCK, TMS и TDO есть, а вот TDI нет. Снял кабель программирования и прозвонил пин TDI на землю на плате. Оказалось КЗ (1,5 Ома). Т.е. вход ПЛИС TDI закорочен. Ведь чтобы контакт так выгорел вроде не похоже. Обыяно сопротивление побольше. Да и ПЛИС не потребляет ток, не разогревается.

Пока меня не было на плату устанавливали (допаивали) два банка памяти и видимо (возможно разогрели ПЛИС) что то под ПЛИСой коротит. Поэтому видимо по TDO информация о ПЛИС и конфигурашке считывается, а далее по TDI данные не проходят и iMPACT выдает такой баян. Попробую завтра попросить, чтобы прогрели ПЛИС, может, если это что то вроде кусочка припоя, расплавится к какому либо пину под ПЛИС. Ведь сначала работы этого не было. Либо на рентген тащить и смотреть что под ПЛИСой находиться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если там именно 1,5 Ом, а не 0 Ом, то это больше похоже на выгоревший контакт. На разных режимах и разной полярности звонится одинаково?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...