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

FPGA configuration mode, virtex-6

Доброго времени суток,

Подскажите пожалуйста, влияет ли во время работы через Impact и JTAG с плисиной и ее флэшкой, какие значения были на пинах configuration mode плисы? у виртекса-6 их 8 режимов, причем есть JTAG, SPI master, serial master,slave serial ...

собственно если я хочу прошить плисину через jtag получается через slave serial (а с master spi не получается), но если я хочу прошить флэш через jtag->fpga, какой режим должен стоять?

раньше работал с спартаном-6 а у него только 2 режима было и вроде бы в одном из них делались любые операции

 

спасибо

 

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


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

Назначение режимов расписано в ug360 табл 2-1.

С обычной SPI флешкой ПЛИС напрямую работает только в режиме SPI Master. Для программирования SPI флешки через JTAG плисины установки режима загрузки скорее всего не важны. Они важны собственно для самой загрузки, а программирование происходит путем загрузки в плис специальной прошивки, входящей в комплект Impact.

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


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

JTAGу абсолютно всё равно в каком состоянии MSELы, шить плисину а также заливать данные во флешку он может при любых их значениях.

Состояние "прошилось, но не запустилось" может возникать у вас в том случае, если прошивка собрана с одними значениями конфигурации, а на плате у вас совершенно иные условия.

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


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

JTAGу абсолютно всё равно в каком состоянии MSELы, шить плисину а также заливать данные во флешку он может при любых их значениях.

Вы жестоко ошибаетесь.

Для ПЛИС не всё-равно в каком состоянии находятся ножки M[2:0] для работы с JTAG.

Суть мерзкого явления приблизительно такова: после окончания сброса (поданного с JTAG) ПЛИС проверяет ножки M[2:0] и начинает грузиться с того, что указано. Если JTAG успевает вклиниться в загрузку до того как будет всосано "достаточное" количесво данных с ПЗУ, то всё пройдёт успешно... Если JTAG не успеет - значит получится хрен знает что.

 

Естественно, чтобы такая бякость возникла, необходимо иметь достаточно шуструю ПЗУ.

Мы с этим эффектом столкнулись на Virtex-6 c Platform Flash XL и относительно "большой" скоростью загрузки.

 

P.S. В Virtex-6 FPGA Configuration User Guide есть такое замечание:

"The FPGA mode (M[2:0]) pins are shown set to Master BPI-Up mode (010). The implementation of a board-level option that enables the user to change the FPGA mode pins to JTAG mode (101) is recommended to enable JTAG-based debug capability for the FPGA during design. This is not required, but the JTAG mode setting ensures that there is no interference from the Master BPI-Up configuration during debug."

Несмотря на то, что тут говориться про Master BPI-Up, мы смогли на это напороться при Master SelectMAP.

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


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

Вы жестоко ошибаетесь.

Для ПЛИС не всё-равно в каком состоянии находятся ножки M[2:0] для работы с JTAG.

Суть мерзкого явления приблизительно такова: после окончания сброса (поданного с JTAG) ПЛИС проверяет ножки M[2:0] и начинает грузиться с того, что указано. Если JTAG успевает вклиниться в загрузку до того как будет всосано "достаточное" количесво данных с ПЗУ, то всё пройдёт успешно... Если JTAG не успеет - значит получится хрен знает что.

если FPGA ещё не загрузилась (или ей неоткуда) - JTAG сработает, еслу уже загрузилась - JTAG стработает.

тот, кто пытается шить FPGA JTAGом в процессе загрузки FPGA из флеша - не понимает что и зачем он делает, и тут вопрос скорее о профпригодности, чем о тонкостях загрузки ПЛИС. ;-)

 

зы. а мы напоролись на "двойной сброс" при включении, оказалось что PROG_B работает не по уровню как обычно, а по фронту, о чем через месац наших мучений и после обращения в суппорт вышла errata.

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


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

зы. а мы напоролись на "двойной сброс" при включении, оказалось что PROG_B работает не по уровню как обычно, а по фронту, о чем через месац наших мучений и после обращения в суппорт вышла errata.

 

Угу, знатная вышла подстава. Ее вроде как объявили не багом, а фичей, и исправлять не стали.

А насчет одновременной загрузки из флеша и JTAG - у автора темы в любом случае была не эта проблема.

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


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

если FPGA ещё не загрузилась (или ей неоткуда) - JTAG сработает, еслу уже загрузилась - JTAG стработает.
Вот как раз с Virtex-6 уже загрузился, а надо залить другую (отладочную) прошивку и была проблема. Возможно глюг более тонкий, и, в большей степени, каcается ISE iMPACT 13.x (может он коряво настраивает внутренний блок старта и загрузки - кто его знает ?). Но факт имел (имеет) место быть: при начале загрузки через JTAG подаётся внутренний Program, после успешного стирания конфигурационной памяти Init переходит в '1', и ПЛИС фиксирует состояние M[2:0], если на них выставлен любой Master Mode, то ПЛИС начинает себя конфигурировать - тут-то и начитается тот самый "interference" JTAG с процессом самозагрузки ПЛИС.

Но, повторюсь, для ловли проблем от этого эффекта скорость самозагрузки ПЛИС должна быть весьма большая: мы поймали при Master SelectMap 16-bit (а вот какую скорость ставили колеги в BitGen'е - не помню; зато помню, что при 2 сеё заподло себя никак не проявляет).

 

зы. а мы напоролись на "двойной сброс" при включении, оказалось что PROG_B работает не по уровню как обычно, а по фронту, о чем через месяц наших мучений и после обращения в суппорт вышла errata.
А для какого именно семейства ПЛИС ?

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


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

А для какого именно семейства ПЛИС ?

 

Virtex-6 и все 7-series. Сначала данные появились в errata (http://www.xilinx.com/support/answers/38134.htm), затем эту особенность узаконили в соответствующих ug360, ug470. Если кто делал раньше отложенную загрузку удержанием program_b, то теперь этот фокус не пройдет, нужно использовать init_b.

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


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

Действительно проверил, когда FPGA в режиме Master SPI, после команды Initialize Chain, все биты в Status регистре нули (что это значит?)

и в этом режиме нельзя даже плисину прошить.

собственно чтобы память то зашить через плису в каком режиме она должна быть?

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


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

Когда подключаюсь для direct in-system программирования flash на jtagе загорается зеленая лампочка, что дальше нужно делать чтобы законфигурировать память?

я нигде не могу найти инструкцию к этому процессу где описаны шаги в impacte. может кто-нибудь поможет?

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


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

собственно чтобы память то зашить через плису в каком режиме она должна быть?
Чтобы с минимумом проблем - в любом Slave или JTAG режиме.

 

Когда подключаюсь для direct in-system программирования flash на jtagе загорается зеленая лампочка, что дальше нужно делать чтобы законфигурировать память?
Вы так и не написали (или я проглядел) что именно Вам необходимо запрограммировать. Есть у Xilinx пример Indirect Programming of BPI PROMs with Virtex-5 FPGAs, хоть тут пишется про V-5, для V-6 оно тоже справедливо.

 

Для более детальной информации Вам необходимо в меню iMPACT выбрать Help->Software Mauals, затем выбрать iMPACT Help, после найти разделы indirect programming и ознакомиться с ними. В этих разделах есть информация о том, какие микросхемы ПЗУ и для какого семейства ПЛИС могут бытьзапрограммированы при помощи Вашей версии iMPACT.

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


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

Когда подключаюсь для direct in-system программирования flash на jtagе загорается зеленая лампочка, что дальше нужно делать чтобы законфигурировать память?

я нигде не могу найти инструкцию к этому процессу где описаны шаги в impacte. может кто-нибудь поможет?

 

Начиная с ISE 12 direct SPI и другие не-JTAG методы программирования более не поддерживаются. Нужно брать iMPACT 11 или еще более ранний.

Вообще говоря, если ПЛИС нормально конфигурируется с этой флешки, то и indirect программирование, в конечном счете, должно работать. Хотя бы читать ID - совершенно точно. Проверьте схему и плату. Может быть, плата битая, или флеш подключен неправильно?

 

Действительно проверил, когда FPGA в режиме Master SPI, после команды Initialize Chain, все биты в Status регистре нули (что это значит?)

 

Это как-то ненормально. А откуда вы узнаете, что ПЛИС находится в режиме Master SPI? Есть указания на плате? ПЛИС в это время не загружена?

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


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

Да спасибо, уже разобрался

написал ответ в теме http://electronix.ru/forum/index.php?showt...p;#entry1100214

 

 

Это как-то ненормально. А откуда вы узнаете, что ПЛИС находится в режиме Master SPI? Есть указания на плате? ПЛИС в это время не загружена?

да, для этого там тоже джампер был переключающий master spi/slave serial.

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


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

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

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

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

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

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

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

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

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

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