|
Загрузка прошивки в FPGA, Загрузка прошивки в FPGA |
|
|
|
Sep 23 2008, 11:25
|
Группа: Новичок
Сообщений: 13
Регистрация: 28-05-08
Пользователь №: 37 884

|
Пытаюсь загрузить сформированную прошивку в FPGA *.bin, который формируется в среде XilinxISE9.2 для XC3S200-tq144. Реализован простой счетчик. Контроль входных и выходных сигналов выполняю осциллографом. Все выводы подключены, питание где надо подведено соответствующее. Режим загрузки slave serial, т.е. мастером выступает внешний контроллер. В самом начале, после сброса конфигурации, дожидаюсь сигнала INIT_B. Далее выставляю PROG_B и начинаю побитно записывать данные. В конце жду сигнала DONE. Этот сигнал не появляется. Соответствующие тестовые сигналы с выводов микросхемы не наблюдаю - держатся постоянные уровни. В чем проблема, не понятно. Формат файла очень похож на правду - начало, данные, контрольная сумма, старт. Готов этот файл выслать, если кто захочет посмотреть. Правильно ли я понимаю, что в принципе, достаточно простой загрузки файла и никаких других данных загружать не надо? Также вопрос - тот ли файл прошивки я использую - *.bin? Заранее признателен.
|
|
|
|
|
Sep 23 2008, 11:35
|
Участник

Группа: Новичок
Сообщений: 27
Регистрация: 28-05-07
Пользователь №: 28 001

|
1. CCLK должен формировать мастер, т.е. внешний контроллер и по сигналу DONE он еще должен продолжаться вроде бы 8 тактов. 2. При генерации файла прошивки надо указать что прошивка для slave serial, по умолчанию делается проршивка для JTAG
|
|
|
|
|
Sep 23 2008, 11:36
|
Частый гость
 
Группа: Участник
Сообщений: 107
Регистрация: 1-07-07
Пользователь №: 28 823

|
Цитата(Sp_dev @ Sep 23 2008, 15:25)  Пытаюсь загрузить сформированную прошивку в FPGA *.bin, который формируется в среде XilinxISE9.2 для XC3S200-tq144... Плата своя или kit? Кабель свой или из kit'a? Побольше информации
|
|
|
|
|
Sep 23 2008, 11:40
|
Группа: Новичок
Сообщений: 13
Регистрация: 28-05-08
Пользователь №: 37 884

|
CCLK формируется мастером, конечно. Я пробовал несколько тактов пустых вставлять, не помогает. По поводу установки slave serial - кажется это устанавливал, но сейчас проверю. Плата своя. Загрузка происходит с процессора TI DM642
|
|
|
|
|
Sep 23 2008, 11:55
|
Участник

Группа: Новичок
Сообщений: 27
Регистрация: 28-05-07
Пользователь №: 28 001

|
Цитата(Sp_dev @ Sep 23 2008, 17:40)  CCLK формируется мастером, конечно. Я пробовал несколько тактов пустых вставлять, не помогает. По поводу установки slave serial - кажется это устанавливал, но сейчас проверю. Плата своя. Загрузка происходит с процессора TI DM642 Была такая же проблема из-за того что в EDK собирался проект с настройкой -g StartUpClk:JTAGCLK (прошивка через JTAG), V4FX12 в slave serial грузился через CPLD, тоже не выставлялся DONE, поменял настройку на -g StartUpClk:СCLK сгенерил прошивку, все заработало
|
|
|
|
|
Sep 23 2008, 12:00
|
Группа: Новичок
Сообщений: 13
Регистрация: 28-05-08
Пользователь №: 37 884

|
Использую файл *.bin
|
|
|
|
|
Sep 23 2008, 12:22
|
Злополезный
   
Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188

|
Цитата(Sp_dev) Правильно ли я понимаю, что в принципе, достаточно простой загрузки файла и никаких других данных загружать не надо? Правильно, только нужный файл прошивки. Теоретически еще надо добавить около 8 CCLK для процедуры Startup (по умолчанию DONE появляется на 4 CCLK при Startup), но обычно в конце файла прошивки есть "данные" (пустышки), при передачи которых и происходит Startup (если Вы Startup не перевели на USER Clock - опции BitGen) Цитата(Very_hard) Также вопрос - тот ли файл прошивки я использую - *.bin? Да использовать надо *.bin. Bit - это заголовок (формат которого можно найти в одной из тем этой конференции, если чего могу выложить заново) + содержимое bin файла. Цитата(Very_hard @ Sep 23 2008, 15:42)  В начале вроде бы выставляется в 0 PROG_B, потом ожидается 0 на INIT, потом 1 в PROG_B, ждем 1 на INIT, задержка (100 мкс) и дальше данные с клоком. Да где-то так и надо делать (иногда работает и без задержки в 100 мкс). ПЛИС фиксирует данные (DIN) по rising edge CCLK. Есть еще одни саперские грабли на которые периодически наступают: у последней загружаемой в цепочке ПЛИС в опциях BitGen надо поставить Done_Drive_High. У вас, я так понял, ПЛИС в цепочке единственная - проверьте наличие этой галочки.
|
|
|
|
|
Sep 23 2008, 12:58
|
Знающий
   
Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481

|
Цитата(Mig&L @ Sep 23 2008, 16:43)  Попробуйте дать побольше задержку после подачи питания и началом загрузки прошивки 1. Для указанного плиса пофигу какой файл грузить *.bit или *.bin. Она сама заголовок отрезает. 2. В настройках bitgen посмотрите установку start-up clock 3. Если мне не изменяет память, в файле bin биты в байтах переставлены местами. Вообще, чтобы создать файл для загрузки через микроконтроллер, сделайте его из файла bit при помощи утилиты iMPACT. Во время загрузки контролируйте init. Если он упадет, значит ошибка в данных.
|
|
|
|
|
Sep 23 2008, 16:18
|
Злополезный
   
Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188

|
Цитата(Михаил_K @ Sep 23 2008, 16:58)  1. Для указанного плиса пофигу какой файл грузить *.bit или *.bin. Она сама заголовок отрезает. ПЛИС'а - она конечно "умная" но не настолько, чтобы самой понимать: где заголовок, а где нет. Конфигурационная последовательность начинается со слов синхронизвции, вот после получения этих слов и начинается обработка команд в BitStream. Но кто гарантирует, что в заголовке (случайно) не сложатся байтики в эти самые "словеса синхронизации" ??? Поэму, во избежания проблем конфигурирования, Xilinx предлагает для непосредственной загрузки "чистый" BitStream, записываемый в *.bin файл.
|
|
|
|
|
Sep 25 2008, 17:44
|
Группа: Новичок
Сообщений: 13
Регистрация: 28-05-08
Пользователь №: 37 884

|
Всем спасибо. С учетом ваших замечаний и последующей корректировки кода все заработало.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|