Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Cyclon III, несколько конфигураций
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Копейкин
Подскажите пожалуйста, возможно ли такое и, если возможно, то как реализовать?
Есть Циклон EP3C25E144C8N + конф. флэш EPCS16.
Требуется при подаче питания на схему, принять решение - как сконфигурировать устройство.
Существуют 2 варианта конфигурации, у которых разное железо и программа для NIOSII.
Мне приходит в голову только установить две EPCS и при подаче питания разрешать работу только одной из них.
С другой стороны, объем EPCS позволяет хранить обе конфигурации...
Как быть?
wpost
Цитата(Копейкин @ Sep 5 2011, 12:17) *
Подскажите пожалуйста, возможно ли такое и, если возможно, то как реализовать?
Есть Циклон EP3C25E144C8N + конф. флэш EPCS16.
Требуется при подаче питания на схему, принять решение - как сконфигурировать устройство.
Существуют 2 варианта конфигурации, у которых разное железо и программа для NIOSII.
Мне приходит в голову только установить две EPCS и при подаче питания разрешать работу только одной из них.
С другой стороны, объем EPCS позволяет хранить обе конфигурации...
Как быть?

Грузить Alter'у по параллельному интерфейсу с любого процессора, например ATmeaga...
gosu-art
Смотрите в сторону Remote System Upgrade. В хендбуке на Cyclone 9я глава.
Например, как я у себя буду делать в новом проекте.
Грузится вначале стратаповая прошивка с Ниосом. Он смотрит где находится модуль ,определяется с прошивкой и вытаскивает ее из той же EPCS'ки.
Копейкин
Процессоров, кроме NIOS, в системе нет.
Увы, не подходит...
wpost
Цитата(gosu-art @ Sep 5 2011, 12:48) *
Смотрите в сторону Remote System Upgrade. В хендбуке на Cyclone 9я глава.
Например, как я у себя буду делать в новом проекте.
Грузится вначале стратаповая прошивка с Ниосом. Он смотрит где находится модуль ,определяется с прошивкой и вытаскивает ее из той же EPCS'ки.


НИОС можно загрузить другой прошивкой, а вот Альтера, насколько я знаю, всегда грузится с 0х0 адреса EPCS... Возможно я ошибаюсь...

----

про то как ковыряться внутри EPCS я сумбурно писал тут!
gosu-art
Цитата(wpost @ Sep 5 2011, 13:00) *
НИОС можно загрузить другой прошивкой, а вот Альтера, насколько я знаю, всегда грузится с 0х0 адреса EPCS... Возможно я ошибаюсь...

про то как ковыряться внутри EPCS я сумбурно писал тут!

http://www.altera.com/literature/ug/ug_altremote.pdf

В данном случае уже будет не Альтера сама грузится, а Ниос будет грузить конфигурационную память. И поэтому неважно откуда пришла прошивка-с флешки, EThernet'a, PCI и.т.д
Копейкин
gosu-art, спасибо большое, я бегло глянул ug_altremote.pdf, буду разбираться...

Ответьте пожалуйста:
1) C помощью ALTREMOTE_UPDATE можно выбрать прошивку содержащую "железо" и NIOS, из нескольких, хранящихся в EPCS ?
2) Можно на этапе производства, имея только JTAG для программирования, залить несколько конфигураций в EPCS?
wpost
Цитата(gosu-art @ Sep 5 2011, 13:13) *
http://www.altera.com/literature/ug/ug_altremote.pdf

В данном случае уже будет не Альтера сама грузится, а Ниос будет грузить конфигурационную память. И поэтому неважно откуда пришла прошивка-с флешки, EThernet'a, PCI и.т.д



By using the ALTREMOTE_UPDATE megafunction and the dedicated circuitry, your
design can download a new configuration image from a remote location, store it in the
configuration memory, and direct the dedicated remote system upgrade circuitry to
start a reconfiguration cycle.

Конфигурационная память - это EPCS как я понимаю... данный инструмент позволяет только перепрожечь EPCS удаленно. А Altera будет грузиться уже с перепрожженной EPCS. вот и всё... Altera не Мюнхаузен, чтобы себя за волосы вытаскивать... в процессе реконфигурации старая прошивка не работает, следовательно ПЛИС никак не может перегрузить себя сама... а у EPCS конечный цикл перезаписи...
IMHO: это средство для убирания багов в эксплуатации, но не решение на каждый день...

Сорри... возможно, я не дочитал до соли... Там что-то про выбор страницы с прошивкой еще есть...
Копейкин
wpost
Я не хочу постоянно перепрошивать EPCS.
Просто плата, содержащая Циклон, имея одинаковый обвес и дизайн, должна работать в двух приборах по разному.
Вот и хочется 2 конфигурации в одну EPCS заранее включить, а при подаче питания разбираться, что грузить...
wpost
Цитата(Копейкин @ Sep 5 2011, 13:36) *
wpost
Я не хочу постоянно перепрошивать EPCS.
Просто плата, содержащая Циклон, имея одинаковый обвес и дизайн, должна работать в двух приборах по разному.
Вот и хочется 2 конфигурации в одну EPCS заранее включить, а при подаче питания разбираться, что грузить...


Нужно внимательно почитать про этот компонет... если это и можно сделать, то нужно создавать страницы в EPCS, записывать прошивки на разные страницы и как-то с них грузиться... Вроде как что-то такое там реализовано
gosu-art
Цитата(Копейкин @ Sep 5 2011, 13:27) *
gosu-art, спасибо большое, я бегло глянул ug_altremote.pdf, буду разбираться...

Ответьте пожалуйста:
1) C помощью ALTREMOTE_UPDATE можно выбрать прошивку содержащую "железо" и NIOS, из нескольких, хранящихся в EPCS ?
2) Можно на этапе производства, имея только JTAG для программирования, залить несколько конфигураций в EPCS?


1. When used with serial configuration devices, the remote update mode allows a
configuration space to start at any flash sector boundary, allowing a maximum of
128 pages in the EPCS64 device and 32 pages in the EPCS16 device, in which the
minimum size of each page is 512 Kbits. Additionally, the remote update mode
features a user watchdog timer that can detect functional errors in an application
configuration.

2. Да можно - File->Convert programming File.
Цитата
Конфигурационная память - это EPCS как я понимаю... данный инструмент позволяет только перепрожечь EPCS удаленно. А Altera будет грузиться уже с перепрожженной EPCS. вот и всё... Altera не Мюнхаузен, чтобы себя за волосы вытаскивать... в процессе реконфигурации старая прошивка не работает, следовательно ПЛИС никак не может перегрузить себя сама... а у EPCS конечный цикл перезаписи...
IMHO: это средство для убирания багов в эксплуатации, но не решение на каждый день...

EPCS можно прошивать используя EPCS контроллер. Это тут не причем.
Копейкин
Еще подскажите пожалуйста, кто знает, как объединить *.sof (логика) и *.elf файлы (программа NIOS)
в единственный конфигурационный файл для заливки в EPCS.
До сих пор программировал через NIOS II Flash programmer...
gosu-art
Цитата(Копейкин @ Sep 5 2011, 15:03) *
Еще подскажите пожалуйста, кто знает, как объединить *.sof (логика) и *.elf файлы (программа NIOS)
в единственный конфигурационный файл для заливки в EPCS.
До сих пор программировал через NIOS II Flash programmer...

Все там же File->Convert programming File.
Только elf в hex перевести нужно
vadimuzzz
Цитата(gosu-art @ Sep 5 2011, 18:10) *
Все там же File->Convert programming File.
Только elf в hex перевести нужно

этот вариант работает только с on-chip памятью.

ТС: используйте ALTREMOTE_UPDATE, ниос там совсем не обязателен, там достаточно несколько регистров записать/прочитать. ниос появляется, если надо, например, через интернет прошивки обновлять. если программируется флешка разово, то можно flash-programmer`ом обойтись
gosu-art
Цитата(vadimuzzz @ Sep 5 2011, 17:54) *


А вот если мне нужно законфигить ПЛИС не прошивая EPCS.
Например. Есть базовая прошивка в EPCS. Стартуем. Ниос смотрит- Ага, такой-то модуль blink.gif )) По езернету просит новую прошивку. Я ему ее отправляю, ПЛИС переконфигурируется (без прошивки EPCS) и все радуются 08.gif. Такое возможно?
vadimuzzz
Цитата(gosu-art @ Sep 5 2011, 21:29) *
А вот если мне нужно законфигить ПЛИС не прошивая EPCS.
Например. Есть базовая прошивка в EPCS. Стартуем. Ниос смотрит- Ага, такой-то модуль blink.gif )) По езернету просит новую прошивку. Я ему ее отправляю, ПЛИС переконфигурируется (без прошивки EPCS) и все радуются 08.gif. Такое возможно?

нет, remote_upgrade может только переключать прошивки, которые есть на флешке
Копейкин
Цитата(vadimuzzz @ Sep 5 2011, 18:31) *
нет, remote_upgrade может только переключать прошивки, которые есть на флешке



NIOS мне всё равно нужен в обоих загружаемых конфигурациях.

Я так понимаю, у меня одна конфигурация из двух нужных записывается типом Factory в страницу 0 (используется EPCS 16).
После старта она проверяет вывод, который сигналит, в каком устройстве используется плата и плата или остаётся в текущей конфигурации,
или прописывает новый адрес старта конфигурации и вызывает переконфигурацию, например аппаратным выводом nCONFIG ?

gosu-art
Цитата(vadimuzzz @ Sep 5 2011, 18:31) *
нет, remote_upgrade может только переключать прошивки, которые есть на флешке

crying.gif
А если сделать так: Ставим параллельную флешь, и параллельно с ней SRAM. Грузимся по AP с флэхи, "отключаем" ее, "подключаем" срам, загружаем туды новую прошивку, рестартимся и уже по АП с нее грузимся. Т.е. Флэха будет только для первого старта. Не сильно мудрено?
Копейкин
Цитата(gosu-art @ Sep 5 2011, 19:43) *
crying.gif
А если сделать так: Ставим параллельную флешь, и параллельно с ней SRAM. Грузимся по AP с флэхи, "отключаем" ее, "подключаем" срам, загружаем туды новую прошивку, рестартимся и уже по АП с нее грузимся. Т.е. Флэха будет только для первого старта. Не сильно мудрено?


Я так понимаю, что теоретически можно.
Но кто будет переключать выборку FLASH и SRAM и удерживать состояние во время переконфигурации?
А почему Active parallel загрузка?
Вам нужно менять и пользовательскую логику и программу процессора?
gosu-art
Цитата(Копейкин @ Sep 5 2011, 19:55) *
Но кто будет переключать выборку FLASH и SRAM и удерживать состояние во время переконфигурации?

Триггер внешний или CPLD поставить. Можно че нить на транзисторах намутить, в общем решаемо.
У нас просто системы построены так, чтобы все заливалось с ПО верхнего уровня.
Цитата(Копейкин @ Sep 5 2011, 19:55) *
А почему Active parallel загрузка?

Ну дык параллельное все)). Можно было бы конечно из EPCS по AS. а потом из ОЗУ по АП. Но альтера крайне не рекомендует щелкать MSELами.
vadimuzzz
Цитата(Копейкин @ Sep 5 2011, 22:17) *
Я так понимаю, у меня одна конфигурация из двух нужных записывается типом Factory в страницу 0 (используется EPCS 16).
После старта она проверяет вывод, который сигналит, в каком устройстве используется плата и плата или остаётся в текущей конфигурации,
или прописывает новый адрес старта конфигурации и вызывает переконфигурацию, например аппаратным выводом nCONFIG ?

да, можно и так. я делал немного иначе, Factory - это некая урезанная прошивка, минимальный набор функций для чтения/записи прошивок, а рабочие прошивки все в User Mode. но ваш вариант тоже нормальный.

Цитата(gosu-art @ Sep 5 2011, 22:43) *
А если сделать так: Ставим параллельную флешь, и параллельно с ней SRAM. Грузимся по AP с флэхи, "отключаем" ее, "подключаем" срам, загружаем туды новую прошивку, рестартимся и уже по АП с нее грузимся. Т.е. Флэха будет только для первого старта. Не сильно мудрено?

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