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

Загрузка прошивки в FPGA

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

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


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

1. CCLK должен формировать мастер, т.е. внешний контроллер и по сигналу DONE он еще должен продолжаться вроде бы 8 тактов.

2. При генерации файла прошивки надо указать что прошивка для slave serial, по умолчанию делается проршивка для JTAG

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


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

Пытаюсь загрузить сформированную прошивку в FPGA *.bin, который формируется в среде XilinxISE9.2 для XC3S200-tq144...

Плата своя или kit? Кабель свой или из kit'a? Побольше информации

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


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

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

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


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

В xapp098 хорошо описана именно такая загрузка. Поищите на сайте Xilinx. Возможные проблемы - обратная последовательность бит в байте, не выдержаны требуемые тайминги.

Файл Вы используете правильный. Ничего больше загружать не нужно.

В начале вроде бы выставляется в 0 PROG_B, потом ожидается 0 на INIT, потом 1 в PROG_B, ждем 1 на INIT, задержка (100 мкс) и дальше данные с клоком.

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


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

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

Была такая же проблема из-за того что в EDK собирался проект с настройкой -g StartUpClk:JTAGCLK

(прошивка через JTAG), V4FX12 в slave serial грузился через CPLD, тоже не выставлялся DONE, поменял настройку на -g StartUpClk:СCLK сгенерил прошивку, все заработало

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


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

Мы используем *.bin файл - все нормально загружается. Вроде у bit-файла нужно заголовок удалять перед загрузкой, не пробовал.

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


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

Я использую *.bit ? но заголовок отрезаю, размер беру из книжки Кузелин, Кнышев , Зотов.

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


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

Я использую *.bit ? но заголовок отрезаю, размер беру из книжки Кузелин, Кнышев , Зотов.
Это делает САПР. Если у bitgen выставить опцию -g Binary:Yes, будет генерироваться .bin.

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


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

Правильно ли я понимаю, что в принципе, достаточно простой загрузки файла и никаких других данных загружать не надо?

Правильно, только нужный файл прошивки. Теоретически еще надо добавить около 8 CCLK для процедуры Startup (по умолчанию DONE появляется на 4 CCLK при Startup), но обычно в конце файла прошивки есть "данные" (пустышки), при передачи которых и происходит Startup (если Вы Startup не перевели на USER Clock - опции BitGen)

 

Также вопрос - тот ли файл прошивки я использую - *.bin?

Да использовать надо *.bin. Bit - это заголовок (формат которого можно найти в одной из тем этой конференции, если чего могу выложить заново) + содержимое bin файла.

 

В начале вроде бы выставляется в 0 PROG_B, потом ожидается 0 на INIT, потом 1 в PROG_B, ждем 1 на INIT, задержка (100 мкс) и дальше данные с клоком.

Да где-то так и надо делать (иногда работает и без задержки в 100 мкс). ПЛИС фиксирует данные (DIN) по rising edge CCLK.

 

Есть еще одни саперские грабли на которые периодически наступают: у последней загружаемой в цепочке ПЛИС в опциях BitGen надо поставить Done_Drive_High. У вас, я так понял, ПЛИС в цепочке единственная - проверьте наличие этой галочки.

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


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

Попробуйте дать побольше задержку после подачи питания и началом загрузки прошивки

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


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

Попробуйте дать побольше задержку после подачи питания и началом загрузки прошивки

1. Для указанного плиса пофигу какой файл грузить *.bit или *.bin. Она сама заголовок отрезает.

2. В настройках bitgen посмотрите установку start-up clock

3. Если мне не изменяет память, в файле bin биты в байтах переставлены местами.

 

Вообще, чтобы создать файл для загрузки через микроконтроллер, сделайте его из файла bit при помощи утилиты iMPACT.

 

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

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


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

1. Для указанного плиса пофигу какой файл грузить *.bit или *.bin. Она сама заголовок отрезает.

ПЛИС'а - она конечно "умная" но не настолько, чтобы самой понимать: где заголовок, а где нет.

Конфигурационная последовательность начинается со слов синхронизвции, вот после получения этих слов и начинается обработка команд в BitStream. Но кто гарантирует, что в заголовке (случайно) не сложатся байтики в эти самые "словеса синхронизации" ???

 

Поэму, во избежания проблем конфигурирования, Xilinx предлагает для непосредственной загрузки "чистый" BitStream, записываемый в *.bin файл.

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


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

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

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

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

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

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

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

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

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

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