Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Прошивка ПЛИС посредством Ethernet
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Art55555
Появилась необходимость загрузки прошивки в ПЛИС посредством Ethernet.
Предполагаемый алгоритм работы следующий (ещё он отображён на схеме):

Изначально Flash прошивается JTAG-ом. Далее после включения питания Flash конфигурирует ПЛИС, система начинает свою работу.
В последствии, появляется необходимость переконфигурирования Flash (например, смена версии или исправление ошибок). Будет ли работать следующее: из ПК подаётся специальная команда и происходит загрузка битового файла конфигурации в ПЛИС (в это время ПЛИС уже загружена и работает в обычном режиме), после чего (или одновременно) ПЛИС программирует Flash (как бы эмулируя работу JTAG). После этого при следующем запуске платы будет грузиться уже новая конфигурация.
Вопросы:
1) сложно ли реально реализовать данную схему, кто-нибудь делал это?
2) Есть ли альтернативные схемы без значительного увеличения сложности и стоимости?
Спасибо!

Схема
Maverick
Цитата(Art55555 @ Oct 7 2010, 09:41) *
Появилась необходимость загрузки прошивки в ПЛИС посредством Ethernet.
Предполагаемый алгоритм работы следующий (ещё он отображён на схеме):

Изначально Flash прошивается JTAG-ом. Далее после включения питания Flash конфигурирует ПЛИС, система начинает свою работу.
В последствии, появляется необходимость переконфигурирования Flash (например, смена версии или исправление ошибок). Будет ли работать следующее: из ПК подаётся специальная команда и происходит загрузка битового файла конфигурации в ПЛИС (в это время ПЛИС уже загружена и работает в обычном режиме), после чего (или одновременно) ПЛИС программирует Flash (как бы эмулируя работу JTAG). После этого при следующем запуске платы будет грузиться уже новая конфигурация.
Вопросы:
1) сложно ли реально реализовать данную схему, кто-нибудь делал это?
2) Есть ли альтернативные схемы без значительного увеличения сложности и стоимости?
Спасибо!

Схема

мне кажется без вспомогательного микропроцессора/CPLD или какого-то внешнего watchdog timer не обойтись wink.gif
vadimuzzz
а какая FPGA? в циклоне-3, например, есть это:

http://www.altera.com/literature/hb/cyc3/cyc3_ciii51012.pdf
http://www.altera.com/literature/an/AN521.pdf

я делал, работает. документировано, правда, довольно скудно. в принципе Eth не обязателен, любой интерфейс подойдет.
Art55555
Цитата(vadimuzzz @ Oct 7 2010, 11:13) *
а какая FPGA? в циклоне-3, например, есть это:

http://www.altera.com/literature/hb/cyc3/cyc3_ciii51012.pdf
http://www.altera.com/literature/an/AN521.pdf

я делал, работает. документировано, правда, довольно скудно. в принципе Eth не обязателен, любой интерфейс подойдет.


ПЛИС: Xilinx Virtex4 LX25
vadimuzzz
Цитата(Art55555 @ Oct 7 2010, 14:16) *
ПЛИС: Xilinx Virtex4 LX25

эти доки смотрели:
http://www.xilinx.com/support/documentatio...tes/xapp441.pdf
https://secure.xilinx.com/webreg/clickthrou...e=RefDesLicense
?
Art55555
Кто-нибудь может подсказать, как передавать битовый поток конфигурации от ПЛИС(Virtex4 LX25) в ПЗУ(XCF32P)? Алгоритм и ножки ПЗУ, которые в этом участвуют?
Koluchiy
Ставите ПЛИС, которая умеет грузиться со SPI-FLASH (все более-менее новые).
Организовываете схемотехнику так, чтобы ПЛИС могла в рабочем режиме общаться со своей загрузочной флешкой.
После загрузки с флешки ПЛИС начинает работать с езернетом. В частности, получать с него новую прошивку и грузить ее в загрузочную флешку.

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

Всё, чего еще надо?
Art55555
Цитата(Koluchiy @ Oct 18 2010, 17:25) *
Ставите ПЛИС, которая умеет грузиться со SPI-FLASH (все более-менее новые).
Организовываете схемотехнику так, чтобы ПЛИС могла в рабочем режиме общаться со своей загрузочной флешкой.
После загрузки с флешки ПЛИС начинает работать с езернетом. В частности, получать с него новую прошивку и грузить ее в загрузочную флешку.

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

Всё, чего еще надо?

Спасибо!
На этом решении , скорее всего, и остановлюсь. В данном случае пугает только одно. Вот, если произошёл сбой при загрузки флэш через SPI интерфейс. Решить вопрос уже можно только через JTAG, а это, согласитесь, некоторые сложности (ехать к заказчику или объяснять ему где взять провод и импакт - сомнительное удовольствие). Интерфейс - Ethernet UDP плюсь собственный протокол передачи и контроля. Есть ли какие-нибудь принципиальные моменты программирования флэшики по SPI из ПЛИС? Кто-нибудь делал сам это? Спасибо!

И еще пару вопросов:
Умеет-ли грузиться с SPI-FLASH VIRTEX-4?
XCF32P - это SPI-Flash?
Koluchiy
По большинству Ваших вопросов могу только отослать к документации - там всё есть.
DmitryR
Цитата(Art55555 @ Oct 19 2010, 09:37) *
Вот, если произошёл сбой при загрузки флэш через SPI интерфейс. Решить вопрос уже можно только через JTAG

Вовсе нет. Надо просто настроить failsafe (две прошивки, если первая не может загрузиться - автоматически загружается вторая) и не давать юзерам прошивать вторую (просто схемотехнически не давать такой возможности), чтобы если они первую упорят - стартовала вторая и давала возможность исправить.
VladimirB
Цитата(Art55555 @ Oct 19 2010, 09:37) *
И еще пару вопросов:
Умеет-ли грузиться с SPI-FLASH VIRTEX-4?
XCF32P - это SPI-Flash?


1) нет
2) нет
_pv
Цитата(vadimuzzz @ Oct 7 2010, 14:13) *
я делал, работает. документировано, правда, довольно скудно. в принципе Eth не обязателен, любой интерфейс подойдет.

небольшой вопрос вдогонку:
в an521 параллельная флэш описана.
в cyclone3 у последовательной флэши chipsel, datain, dataout и так сидят на пинах с io, а вот доступен ли потом после загрузки вывод dclk чтобы флэш перепрошить, или надо дополнительно завести клоки на какой-нибудь io пин?
Art55555
Существует-ли какая-нибудь возможность загрузки конфигурации в ПЗУ (XCF32P) из ПЛИС (Virtex4 LX25)?
DmitryR
Да, но достаточно кривая: надо JTAG присоединить к ПЛИС и писать через него. Проще поставить SPI через крошечную CPLD.
Art55555
Остановились на следующем варианте:
Изначально мы программируем флэшку в Спартане постоянной прошивкой в которой будет протокол обмена по LAN. При перезагрузки платы, прошивка конфигурирует Spartan. Далее оператор по LAN предает прошивку для Virtex 4, которую прошивает спартан. Имеет-ли место быть такой вариант? Есть-ли какие-нибудь подводные камни?
AndruB
А не обратить ли Вам внимание на следующий вариант - приемом и обслуживанием Ehternet занимается специализированная м/сх со встроенным микроконтроллером, который заодно и занимается загрузкой FPGA из Flash . А уж описанных вариантов загрузки FPGA из Flash можно найти достаточно. Остается только разобраться с записью прошивки микроконтроллером во Flash. А решать эту задачу программно мне кажется проще чем аппаратно на FPGA. В качестве возможного варианта - м/сх W7100 фирмы WIZNet . В ней есть Ehternet с полным стеком протоколов и 51 микроконтроллер с кучей портов В/В. http://www.wiznet.co.kr/en

Нажмите для просмотра прикрепленного файла
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.