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

Подскажите как можно запрограммировать Spartan-3e для загрузки Virtex4-FX20, которые связаны между собой. Spartan-3e опрашивает COM-порт и программирует Virtex-4.

 

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

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


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

Подскажите как можно запрограммировать Spartan-3e для загрузки Virtex4-FX20, которые связаны между собой.

Если связаны только по питанию то без разницы как. :biggrin:

Какая связь?

По 232 будет заливаться прошивка в ПЛИС при каждом включении?(В теории и по опыту это несколько минут)

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


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

Подскажите как можно запрограммировать Spartan-3e для загрузки Virtex4-FX20, которые связаны между собой. Spartan-3e опрашивает COM-порт и программирует Virtex-4.

 

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

Добрый день.

Каким образом "связаны" Spartan-3e и Virtex4-FX20?

Какой режим конфигурирования выбран для Virtex4-FX20?

Соответствует ли "связь" между Spartan-3e и Virtex4-FX20 выбранному режиму?

Откуда и каким образом Spartan-3e предполагает получать конфигурационные данные для Virtex4-FX20?

Без ответов на эти вопросы вряд ли кто-то возьмётся что-то подсказывать.

Удачи.

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


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

Подскажите как можно запрограммировать Spartan-3e для загрузки Virtex4-FX20, которые связаны между собой. Spartan-3e опрашивает COM-порт и программирует Virtex-4.

 

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

 

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

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


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

Кароче объясняю в деталях.

 

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

 

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


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

Что я делаю не так?

Во-первых, CCLK инвертирован - данные должны защелкиваться по фронту CCLK, а выставляться, соответственно, по спаду. Во-вторых, проверьте сам поток - начало "0x85 0xc0" на правду не похоже.

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


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

Кароче объясняю в деталях.

 

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. Поглядите и сравните с вашими.

 

З Ы А на воропс вы так и не ответили - как спартан-то грузится, ну тот который с микроблейзом?

 

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


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

Спартан грузится из PROM при включении питания ( схемотехнически то есть ).

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


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

Добрый день.

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.

Удачи.

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


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

На данный момент загрузка реализована по логике, описанной 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.

 

Подскажите в чем дело?

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


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

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

 

 

 

 

 

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


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

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

 

2dsmv

Подскажите вы bin файл используете, сгенерированный EDK?

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


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

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

Это может быть заголовок, только такой заголовок обычно бывает у *.bit файлов.

То обстоятельство, что биты в байте перевёрнуты для бинарного формата учитываете?

 

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


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

Это может быть заголовок, только такой заголовок обычно бывает у *.bit файлов.

То обстоятельство, что биты в байте перевёрнуты для бинарного формата учитываете?

В бин файле байты не перевернуты. Так написано в даташите.

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


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

В бин файле байты не перевернуты. Так написано в даташите.

Хорошо, зададим вопрос по-другому :

Каким битом вперёд вы выталкиваете байтовые данные для загрузки Virtex, младшим или старшим?

MSB first or LSB first?

По даташиту надо чтобы было MSB first.

 

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

 

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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