jericho
Jan 18 2007, 13:45
Для новых ПЛИС (Spartan3E) в даташите слабо описана процедура загрузки ПЛИС. Кто-нибудь пробовал загружать Спартан-3Е с другой ПЛИС?
В каком режиме? Если Slave Serial или Slave Parallel, то аналогично другим семействам. На сайте у них есть XAPP про загрузку, да и здесь обсуждалось, правда применительно к микроконтроллерам.
P.S. Сейчас посмотрел - и в самом ds312.pdf написано про конфигурацию довольно подробно.
jericho
Jan 18 2007, 15:44
Что-то я не увидел в ds312 подробностей...
Описание формата .bit файла можно где-нибудь найти?
Посмотри xapp452.pdf Spartan Advanced Configuration Architecture.
Можно грузить не bit, a bin - тогда вопросов про формат не будет.
Если внимательно посмотреть на содержимое bit-файла и сравнить его с содержимым bin можно заключить, что первый состоит из заголовка и собс-но битового потока. Заголовок имеет формат <сигнатура поля - байт> <номер поля - байт> <длина поля - байт> <поле>. Битовый поток - тоже поле, только длина у него задается более длинной посл-ю, догадаться как разбирать несложно. Биты задвигать начиная со старшего (в bit-е), кажется. Времянки в даташите имеются.
jericho
Jan 18 2007, 18:25
...а после загрузки продолжать подавать клок, пока DONE не появится? Bin-это тот, что из hex-файлов делается с помощью hex2bits?
В свойствах процесса 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
Jan 19 2007, 09:00
Цитата(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.
Вот здесь я исходник программы загрузки конфигурации положил:
http://electronix.ru/forum/index.php?showt...amp;st=15&#Там есть и разбор заголовка bit-файла.
jericho
Jan 19 2007, 12:22
А если нужен Daisychain, то сначала сгенерить из нескольких .bit-файлов один .mcs, а потом с помощью promgen преобразовать его в .bin?
Да, наверно так.
Мне пока не приходилось грузить несколько камней таким способом.
Цитата(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
Jan 19 2007, 14:49
Насчет клоков, пишут, что нужно держать клок дольше, особенно если есть DCM-ы...
В документации описано минимальное количество start-up тактов CCLK. Их обычно вполне достаточно.
Но если их сделать больше, то ничего страшного не будет.
jericho
Jan 19 2007, 19:17
Большое спасибо за помощь, господа....
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.