Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Spartan-3AN Starter Kit
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Sharapov
Доброго времени суток, господа.

В общем, стал недавно обладателем двух таких отладочных китов. В результате работы с ними возник один единственный вопрос: как затставить FPGA грузиться с установленной на борду Xilinx Platform Flash PROM XCF04F. Вроде бы всё делаю правильно, согласно документации, однако FPGА упорно не хочет грузить конфигурацию из PROM. Причем отдельно *.mcs файл, полученный из битстрима iMPACTом совершенно нормально шьется в PROM через JTAG и проходит верификацию, тоже самое с программированием и самой FPGA через JТAG - всё работает корректно, однако при включении питания при уже зашитой PROM ничего не происходит. Все пины, ответственные за конфигурацию в нужных состояниях.

Прилагаю лог, полученный при включении борды и выполнении команды Read Status Register в iMpact:

Код
INFO:iMPACT - Current time: Чт 4. фев 09:28:14 2010
// *** BATCH CMD : ReadStatusRegister -p 1
PROGRESS_START - Starting Operation.
Maximum TCK operating frequency for this device chain: 10000000.
Validating chain...
Boundary-scan chain validated successfully.
'1': Reading status register contents...
CRC error                                         :         0
IDCODE not validated while writing FDRI           :         0
DCM Locked                                        :         1
status of GTS_CFG_B                               :         0
status of GWE                                     :         0
status of GHIGH                                   :         1
value of VSEL pin 0                               :         1
value of VSEL pin 1                               :         1
value of VSEL pin 2                               :         1
value of MODE pin M0                              :         0
value of MODE pin M1                              :         0
value of MODE pin M2                              :         0
value of CFG_RDY (INIT_B)                         :         1
DONEIN input from Done Pin                        :         0
SYNC word not found                               :         0
'1': SPI access core not detected. SPI access core will be downloaded to the device to enable ope rations.
INFO:iMPACT - Downloading core file C:/Xilinx/11.1/ISE/spartan3a/data/xc3s700an_spi.cor.
'1': Downloading core...
done.
'1': Reading status register contents...
CRC error                                         :         0
IDCODE not validated while writing FDRI           :         0
DCM Locked                                        :         1
status of GTS_CFG_B                               :         1
status of GWE                                     :         1
status of GHIGH                                   :         1
value of VSEL pin 0                               :         1
value of VSEL pin 1                               :         1
value of VSEL pin 2                               :         1
value of MODE pin M0                              :         0
value of MODE pin M1                              :         0
value of MODE pin M2                              :         0
value of CFG_RDY (INIT_B)                         :         1
DONEIN input from Done Pin                        :         1
SYNC word not found                               :         0
INFO:iMPACT:2219 - Status register values:
INFO:iMPACT - 0011 1111 1000 1100
INFO:iMPACT:2492 - '1': Completed downloading core to device.
INFO:iMPACT - '1': Checking done pin....done.
'1': Core downloaded successfully.
Ready/Busy Bit: 0
Result of Main Memory Page to Buffer Compare: 0
Device Density Bits: 0000
Sector Protection enabled: 0
Power of 2 binary page size enabled: 1
The security register values are:
Sector[0]: NOT SECURED (0)
Sector[1]: NOT SECURED (0)
Sector[2]: NOT SECURED (0)
Sector[3]: NOT SECURED (0)
Sector[4]: NOT SECURED (0)
Sector[5]: NOT SECURED (0)
Sector[6]: NOT SECURED (0)
Sector[7]: NOT SECURED (0)
Sector[8]: NOT SECURED (0)
Sector[9]: NOT SECURED (0)
Sector[10]: NOT SECURED (0)
Sector[11]: NOT SECURED (0)
Sector[12]: NOT SECURED (0)
Sector[13]: NOT SECURED (0)
Sector[14]: NOT SECURED (0)
Sector[15]: NOT SECURED (0)
Sector[16]: NOT SECURED (0)
The lockdown register values are:
Sector[0]: NOT LOCKED DOWN (0)
Sector[1]: NOT LOCKED DOWN (0)
Sector[2]: NOT LOCKED DOWN (0)
Sector[3]: NOT LOCKED DOWN (0)
Sector[4]: NOT LOCKED DOWN (0)
Sector[5]: NOT LOCKED DOWN (0)
Sector[6]: NOT LOCKED DOWN (0)
Sector[7]: NOT LOCKED DOWN (0)
Sector[8]: NOT LOCKED DOWN (0)
Sector[9]: NOT LOCKED DOWN (0)
Sector[10]: NOT LOCKED DOWN (0)
Sector[11]: NOT LOCKED DOWN (0)
Sector[12]: NOT LOCKED DOWN (0)
Sector[13]: NOT LOCKED DOWN (0)
Sector[14]: NOT LOCKED DOWN (0)
Sector[15]: NOT LOCKED DOWN (0)
Sector[16]: NOT LOCKED DOWN (0)
'1': Reading security register...
Factory ID
07 09 01 15 17 09 1F 25 00 00 08 11 FF FF 08 FF
30 30 4D 30 31 32 38 37 04 FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

done.
'1': Reading security register...
One-time User Programmable
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

done.
PROGRESS_END - End Operation.


Может кто сталкивался с похожей проблемой?

П.С. Версия софта имеет номер 11.1
at89c51ed2
2 Sharapov
Ну наконец то! А то я думал, что только у нас с Георгием такие проблемы biggrin.gif ! Посмотрите здесь http://electronix.ru/forum/index.php?showt...=71818&st=0 И хотя, проблему полностью мы там не решили, но, возможно обсуждение натолкнёт Вас на нужные мысли. Вообще в описании на "кит" всё это подробно расписано (на мой s3esk это документ ug230.pdf), все режимы и возможные источники конфигурирования ФПГА.
Sharapov
Цитата(at89c51ed2 @ Feb 4 2010, 13:40) *
2 Sharapov
Ну наконец то! А то я думал, что только у нас с Георгием такие проблемы biggrin.gif ! Посмотрите здесь http://electronix.ru/forum/index.php?showt...=71818&st=0 И хотя, проблему полностью мы там не решили, но, возможно обсуждение натолкнёт Вас на нужные мысли. Вообще в описании на "кит" всё это подробно расписано (на мой s3esk это документ ug230.pdf), все режимы и возможные источники конфигурирования ФПГА.


К сожалению вопрос по конфигурированию FPGA через Platform Flash так и остался без ответа. Интересует именно этот способ, так как он заложен в будущую разработку.

Буду продолжать поиск решения.
at89c51ed2
2 Sharapov
Цитата
К сожалению вопрос по конфигурированию FPGA через Platform Flash так и остался без ответа. Интересует именно этот способ, так как он заложен в будущую разработку.

Согласен, сам в аналогичной ситуации smile3046.gif , собираюсь в проект закладывать XCF. Слышал мнение (не помню где), что эта проблема именно этих "китов" и если включить по "штатной" схеме конфигурации ФПГА, то всё будет работать. Возможно, проблема в большом количестве источников конфигурирования ФПГА на "ките", может из-за USB загрузчика, а может и всё вместе. В крайнем случае, когда будет готова схема устойства, приделаю к ней кусок для конфигурации и выложу здесь (на форуме). Попрошу спецов местных a14.gif мощным глазом просканировать (там не большя схема получится) и сказать своё мнение.
Kuzmi4
работал с 04 и 32 - проблем не было, всё конфигурилось в флеши за милую душу (Spartan/Virtex) laughing.gif

2at89c51ed2
Цитата
кусок для конфигурации
смотрится в любом ките wink.gif
Sharapov
Цитата(at89c51ed2 @ Feb 4 2010, 19:06) *
Возможно, проблема в большом количестве источников конфигурирования ФПГА на "ките", может из-за USB загрузчика, а может и всё вместе.


Уважаемый at89c51ed2, последние два дня провел изучая англоязычные форумы на предмет поиска решения вышеобозначенной проблемы и пришел к выводу, что вероятнее всего дело действительно в большом количестве источников конфигурирования, работающих от одного клока CCLK FPGA (кстати судя по схематику к CCLK также подключен ADC, Programmable Gain Amplifaer, DAC). Вероятно идет рассогласование импедансов, свидетелями чего мы с вами и являемся. Так что проще своё собрать и посмотреть, хотя с другой стороны киты должны быть по определению эталоном безглючности.
at89c51ed2
Уважаемый Sharapov
Цитата
Так что проще своё собрать и посмотреть, ...

Согласен. Я думаю, этого (ug332.pdf) будет достаточно.
Цитата
вероятнее всего дело действительно в большом количестве источников конфигурирования, работающих от одного клока CCLK FPGA (кстати судя по схематику к CCLK также подключен ADC, Programmable Gain Amplifaer, DAC)

Тут (ug230.pdf) официальное тому подтверждение.
max77
Для обычных ПЛИС цепочка программирования через JTAG, и заливка прошивки из флешки идут разными путями. При заливки файла из флешки цепи TCK, TDI, TDO, TMS не используются.
Откуда будет по умолчанию браться проект задается уровнем сигнала на ногах конфигурации. Кажется за это отвечают М0, М1, М2. При подаче питания на ПЛИС происходит инициализация и опрос выставляет свой внутренний CCLK на флешку, после загрузки проекта из флешки ПЛИС выставляет сигнал удачной загрузки DONE и снимает CCLK. В принципе эти сигналы можно отловить осциллографом. Как это точно сделано в Spartan 3AN не знаю, там якобы внесли флешку на борт ПЛИС. И цепи труднее прозвонить. Но наверняка для того чтобы проект зашивался из флеш в ПЛИС нужно правильно сконфигурировать ПЛИС на момент подачи питания. Или пытаться сделать сброс загруженной информации замыканием INIT на землю. Тогда ПЛИС снова выставляет клок на флешку и должна пройти запись.
Мы когда-то боролись с не пропаянными BGA и смотрели эти сигналы.

Для обычных ПЛИС цепочка программирования через JTAG, и заливка прошивки из флешки идут разными путями. При заливки файла из флешки цепи TCK, TDI, TDO, TMS не используются.
Откуда будет по умолчанию браться проект задается уровнем сигнала на ногах конфигурации. Кажется за это отвечают М0, М1, М2. При подаче питания на ПЛИС происходит инициализация и опрос выставляет свой внутренний CCLK на флешку, после загрузки проекта из флешки ПЛИС выставляет сигнал удачной загрузки DONE и снимает CCLK. В принципе эти сигналы можно отловить осциллографом. Как это точно сделано в Spartan 3AN не знаю, там якобы внесли флешку на борт ПЛИС. И цепи труднее прозвонить. Но наверняка для того чтобы проект зашивался из флеш в ПЛИС нужно правильно сконфигурировать ПЛИС на момент подачи питания. Или пытаться сделать сброс загруженной информации замыканием INIT на землю. Тогда ПЛИС снова выставляет клок на флешку и должна пройти запись.
Мы когда-то боролись с не пропаянными BGA и смотрели эти сигналы.
Sharapov
at89c51ed2, решил я проблему с конфигурацией FPGA через Xilinx Platform Flash. В общем дело было так - пришли мои платы с производства, после монтажа компонентов всё тщательно промыл в ультразвуковой ванне, был у меня готовый проект, правда я сейчас не в ISE работаю, а в EDK, но по сути не так важно, главное что на выходе у нас битстрим получается (*.bit). Так вот, пошел по тому же пути что и со своей отладкой Spartan-3AN (кстати на плате у меня стаит Spartan-3E XC3S500E), получил импактом *.mcf и зашил его во флэшу, выставил M2..M0 в нули и ... в итоге всё тоже самое: шьется отдельно FPGA, шьется отдельно Flash, всёработает как надо, однако при выключении/включении питания та же ситуаия, что и описана выше - FPGA упорно не хочет грузить конфиг из флэши. Ну тут, в принципе, понятно стало, что дело не в китах, а в моём понимании и действительно так и оказалось. Короче поизучав документацию я, наконец решил свою проблему. Дело оказалось в том, что *.bit файл создавался с неправильной опцией, а именно:

Код
bitgen -g StartUpClk:JTAGCLK


а нужно было:
Код
bitgen -g StartUpClk:Cclk


После этого изменения я пересобрал проект, сгенерировал новый *.mcs, прошил флэшу и всё заработало как и должно было, т.е. FPGA начала грузить конфигурацию из Platform Flash.

Удачи!
at89c51ed2
2 Sharapov
Спасибо за то, что поделились инфой. Я мало сомневался, что загрузка будет работать на своей плате, если собрано по схеме из DS. Мы пробовали генерить *.bit файл с разными опциями и CCLK и JTAGCLK, всё равно не работало. При неправильной опции по клоку кто то (ИСИ или ИМПАКТ) сам выдавал сообщение об ошибке и переназначал этот клок. Когда дойдёт дело до разводки платы проекта и заливки её, буду тогда думать. Пока больше других проблем - научиться описывать железки на V и как то их симулировать. Пока можно работать с "китом", буду грузить из SPI.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.