Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Загрузка Virtex-4FX
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
D-Luxe
Подскажите как можно запрограммировать Spartan-3e для загрузки Virtex4-FX20, которые связаны между собой. Spartan-3e опрашивает COM-порт и программирует Virtex-4.

Если нужна еще какая-то информация напишу.
hlebn
Цитата(D-Luxe @ Nov 29 2011, 22:51) *
Подскажите как можно запрограммировать Spartan-3e для загрузки Virtex4-FX20, которые связаны между собой.

Если связаны только по питанию то без разницы как. biggrin.gif
Какая связь?
По 232 будет заливаться прошивка в ПЛИС при каждом включении?(В теории и по опыту это несколько минут)
Andrew Su
Цитата(D-Luxe @ Nov 29 2011, 20:51) *
Подскажите как можно запрограммировать Spartan-3e для загрузки Virtex4-FX20, которые связаны между собой. Spartan-3e опрашивает COM-порт и программирует Virtex-4.

Если нужна еще какая-то информация напишу.

Добрый день.
Каким образом "связаны" Spartan-3e и Virtex4-FX20?
Какой режим конфигурирования выбран для Virtex4-FX20?
Соответствует ли "связь" между Spartan-3e и Virtex4-FX20 выбранному режиму?
Откуда и каким образом Spartan-3e предполагает получать конфигурационные данные для Virtex4-FX20?
Без ответов на эти вопросы вряд ли кто-то возьмётся что-то подсказывать.
Удачи.
yes
Цитата(D-Luxe @ Nov 29 2011, 22:51) *
Подскажите как можно запрограммировать Spartan-3e для загрузки Virtex4-FX20, которые связаны между собой. Spartan-3e опрашивает COM-порт и программирует Virtex-4.

Если нужна еще какая-то информация напишу.


может вопрос в том - как прошивка Spartan-а окажется в Spartane? ведь ее тоже нужно туда как-то "попасть". а уж только потом разбираться, как залить виртекс
D-Luxe
Кароче объясняю в деталях.

Microblaze получает прошивку по RS232 от PC. Далее кладет в память.

После прошивка должна быть передана по интерфейсу Slave Serial, который соединяет Spartan3e и Virtex-4FX. ( см даташит ug071.pdf, на странице 28 есть диаграмма )

Для этой цели я написал компонент который осуществляет передачу по этому интерфейсу.

На данный момент проблема в том, что на выходе компонента выдается требуемая последовательность сигналов, но Virtex-4FX не программируется ( это я сужу по светодиоду DONE от Virtex-4FX ).

Как это дело можно отладить ? Что я делаю не так?

Диаграмма в реал тайм времени ниже.

На первой диаграмме:
D1 - PROGRAM_B
D2 - INIT_B
D3 - D_IN
D4 - CCLK ( частоту подаю 8МГц )
Foto_1

Foto_2
aaarrr
Цитата(D-Luxe @ Dec 25 2011, 23:21) *
Что я делаю не так?

Во-первых, CCLK инвертирован - данные должны защелкиваться по фронту CCLK, а выставляться, соответственно, по спаду. Во-вторых, проверьте сам поток - начало "0x85 0xc0" на правду не похоже.
Bad0512
Цитата(D-Luxe @ Dec 26 2011, 02:21) *
Кароче объясняю в деталях.

Microblaze получает прошивку по RS232 от PC. Далее кладет в память.

После прошивка должна быть передана по интерфейсу Slave Serial, который соединяет Spartan3e и Virtex-4FX. ( см даташит ug071.pdf, на странице 28 есть диаграмма )

Для этой цели я написал компонент который осуществляет передачу по этому интерфейсу.

На данный момент проблема в том, что на выходе компонента выдается требуемая последовательность сигналов, но Virtex-4FX не программируется ( это я сужу по светодиоду DONE от Virtex-4FX ).

Как это дело можно отладить ? Что я делаю не так?

Диаграмма в реал тайм времени ниже.

На первой диаграмме:
D1 - PROGRAM_B
D2 - INIT_B
D3 - D_IN
D4 - CCLK ( частоту подаю 8МГц )
Foto_1

Foto_2

Ещё как минимум 2 проблемы вижу :
1. Сигнал INIT у вас как-то уж больно быстро вскакивает, обычно у виртексов время на очистку конфигурации (т.е. пока INIT в нуле) составляет микросекунды, а то и десятки микросекунд. У вас этот процесс за 1 такт проходит. Очень странно.
2. Клоки не должны подаваться до тех пор, пока INIT не станет в 1. Диаграмки есть в соответствующем Config guide. Поглядите и сравните с вашими.

З Ы А на воропс вы так и не ответили - как спартан-то грузится, ну тот который с микроблейзом?
D-Luxe
Спартан грузится из PROM при включении питания ( схемотехнически то есть ).
Andrew Su
Добрый день.
1. Прислушайтесь к aaarrr. Совершенно справедливое замечание по поводу полярности CCLK.
2. Возможно я ошибаюсь, но по виду осциллограммы складывается впечатление, что вы сами формируете INIT_B. Однако в процессе загрузки конфигурации это open-drain выход.
3. CCLK у вас 8МГц(125нс период), и длительность PROGRAM_B = 1 такт, хотя в соответствии с табл.43 на стр. 46 файла ds302.pdf "TPROGRAM Program Pulse Width 300 ns, Min." И на это следует обратить внимание.

Некоторое время назад я реализовывал загрузку конфигурации Virtex5 процессором, правда в параллельном режиме, самостоятельно формируя PROGRAM_B.
После выставления PROGRAM_B дожидался перехода INIT_B в "0", после этого переводил PROGRAM_B в "1" и дожидался перехода INIT_B в "1", что свидельствовало об окончании очистки(инициализации) памяти конфигурации FPGA и ее готовности к приему конфигурационных данных. Кроме того в процессе загрузки необходимо контролировать INIT_B. Если он перейдет в "0", значит произошло нарушение CRC.
Удачи.
D-Luxe
На данный момент загрузка реализована по логике, описанной Andrew Su.

http://postimage.org/image/vdy0susv1/

http://postimage.org/image/htgfl7rtp/

http://postimage.org/image/yso0eco87/

На рисунках видно что после приема D3 (INIT_B) == 0, D2 (PROG_B) сбрасывается в 1, и потом ожидается поднятие D3. После подается частота D0 ( CCLK ) и загружаются данные. Частота - 8 Мгц.

Virtex-4 не хочет загружаться почему-то. Загружаю я bin файл, сгенерированной средой EDK.

Подскажите в чем дело?
dsmv
Обратите внимание, что после передачи всего файла прошивки, нужно сформировать ещё какое-то количество тактов clk. У нас подаётся ещё 100 тактов. Можно и больше.




D-Luxe
Еще непонятно почему размер bin файла - 905,328. Хотя из данных в Virtex-4 Guide, должно быть - 905,280.

2dsmv
Подскажите вы bin файл используете, сгенерированный EDK?
Bad0512
Цитата(D-Luxe @ Feb 24 2012, 15:01) *
Еще непонятно почему размер bin файла - 905,328. Хотя из данных в Virtex-4 Guide, должно быть - 905,280.

Это может быть заголовок, только такой заголовок обычно бывает у *.bit файлов.
То обстоятельство, что биты в байте перевёрнуты для бинарного формата учитываете?
D-Luxe
Цитата(Bad0512 @ Feb 24 2012, 12:26) *
Это может быть заголовок, только такой заголовок обычно бывает у *.bit файлов.
То обстоятельство, что биты в байте перевёрнуты для бинарного формата учитываете?

В бин файле байты не перевернуты. Так написано в даташите.
Bad0512
Цитата(D-Luxe @ Feb 25 2012, 03:33) *
В бин файле байты не перевернуты. Так написано в даташите.

Хорошо, зададим вопрос по-другому :
Каким битом вперёд вы выталкиваете байтовые данные для загрузки Virtex, младшим или старшим?
MSB first or LSB first?
По даташиту надо чтобы было MSB first.

P S поглядел на ваши картинки - вроде всё правильно у вас с порядком следования бит...
D-Luxe
Цитата(Bad0512 @ Feb 25 2012, 11:30) *
Хорошо, зададим вопрос по-другому :
Каким битом вперёд вы выталкиваете байтовые данные для загрузки Virtex, младшим или старшим?
MSB first or LSB first?
По даташиту надо чтобы было MSB first.

P S поглядел на ваши картинки - вроде всё правильно у вас с порядком следования бит...

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