Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Загрузка ПЛИС при помощи другой ПЛИС
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
jericho
Для новых ПЛИС (Spartan3E) в даташите слабо описана процедура загрузки ПЛИС. Кто-нибудь пробовал загружать Спартан-3Е с другой ПЛИС?
BSV
В каком режиме? Если Slave Serial или Slave Parallel, то аналогично другим семействам. На сайте у них есть XAPP про загрузку, да и здесь обсуждалось, правда применительно к микроконтроллерам.

P.S. Сейчас посмотрел - и в самом ds312.pdf написано про конфигурацию довольно подробно.
jericho
Что-то я не увидел в ds312 подробностей...
Описание формата .bit файла можно где-нибудь найти?
RKOB
Посмотри xapp452.pdf Spartan Advanced Configuration Architecture.
BSV
Можно грузить не bit, a bin - тогда вопросов про формат не будет.
Если внимательно посмотреть на содержимое bit-файла и сравнить его с содержимым bin можно заключить, что первый состоит из заголовка и собс-но битового потока. Заголовок имеет формат <сигнатура поля - байт> <номер поля - байт> <длина поля - байт> <поле>. Битовый поток - тоже поле, только длина у него задается более длинной посл-ю, догадаться как разбирать несложно. Биты задвигать начиная со старшего (в bit-е), кажется. Времянки в даташите имеются.
jericho
...а после загрузки продолжать подавать клок, пока DONE не появится? Bin-это тот, что из hex-файлов делается с помощью hex2bits?
BSV
В свойствах процесса Generate Programming File поставьте галку напротив Create Binary Configuration File. Только я не знаю меняется ли при этом порядок бит в байте. Алгоритм такой - выставляем PROG, держим его > 0.3us, проверяем INIT = '0', снимаем PROG, дожидаемся INIT = '1' (если слишком долго нет, то ошибка), начинаем задвигать биты. Можно еще проверять INIT и DONE после заталкивания каждого байта или нескольких (если INIT = '0' или DONE = '1' - то ошибка).

После заталкивания последнего байта достаточно генерить CCLK 8 тактов, потом проверить DONE.
andrew_b
Цитата(BSV @ Jan 18 2007, 17:55) *
Если внимательно посмотреть на содержимое bit-файла и сравнить его с содержимым bin можно заключить, что первый состоит из заголовка и собс-но битового потока.
"Читайте доки -- они рулез". Это английским по белому так и написано в доке на bitgen:
Цитата
.bin A binary file that contains only configuration data. The .bin has no header like the .bit file. Produced when g Binary:Yes is specified.

.bit A binary file that contains proprietary header information as well as configuration data. Meant for input to other Xilinx tools, such as PROMGen and iMPACT. Always produced unless the - j option is specified.
BSV
Вот здесь я исходник программы загрузки конфигурации положил:
http://electronix.ru/forum/index.php?showt...amp;st=15&#

Там есть и разбор заголовка bit-файла.
jericho
А если нужен Daisychain, то сначала сгенерить из нескольких .bit-файлов один .mcs, а потом с помощью promgen преобразовать его в .bin?
BSV
Да, наверно так.
Мне пока не приходилось грузить несколько камней таким способом.
makc
Цитата(jericho @ Jan 19 2007, 12:22) *
А если нужен Daisychain, то сначала сгенерить из нескольких .bit-файлов один .mcs, а потом с помощью promgen преобразовать его в .bin?


Да, именно так. У меня в Makefile с помощью промгена из нескольких битов создается общий файл прошивки в формате mcs:
promgen -w -p mcs -c FF -o fpga_fw -u 0 dummy_x1/dummy_x1_top.bit dummy_x2/dummy_x2_top.bit dummy_x3/dummy_x3_top.bit -s 1048576
jericho
Насчет клоков, пишут, что нужно держать клок дольше, особенно если есть DCM-ы...
makc
В документации описано минимальное количество start-up тактов CCLK. Их обычно вполне достаточно.
Но если их сделать больше, то ничего страшного не будет. smile.gif
jericho
Большое спасибо за помощь, господа....
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.