реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Загрузка прошивки в FPGA, Загрузка прошивки в FPGA
Sp_dev
сообщение Sep 23 2008, 11:25
Сообщение #1





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



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


Участник
*

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



1. CCLK должен формировать мастер, т.е. внешний контроллер и по сигналу DONE он еще должен продолжаться вроде бы 8 тактов.
2. При генерации файла прошивки надо указать что прошивка для slave serial, по умолчанию делается проршивка для JTAG
Go to the top of the page
 
+Quote Post
Mig&L
сообщение Sep 23 2008, 11:36
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 107
Регистрация: 1-07-07
Пользователь №: 28 823



Цитата(Sp_dev @ Sep 23 2008, 15:25) *
Пытаюсь загрузить сформированную прошивку в FPGA *.bin, который формируется в среде XilinxISE9.2 для XC3S200-tq144...

Плата своя или kit? Кабель свой или из kit'a? Побольше информации
Go to the top of the page
 
+Quote Post
Sp_dev
сообщение Sep 23 2008, 11:40
Сообщение #4





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



CCLK формируется мастером, конечно. Я пробовал несколько тактов пустых вставлять, не помогает. По поводу установки slave serial - кажется это устанавливал, но сейчас проверю. Плата своя. Загрузка происходит с процессора TI DM642
Go to the top of the page
 
+Quote Post
Very_hard
сообщение Sep 23 2008, 11:42
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 183
Регистрация: 10-02-06
Из: Киев, Украина
Пользователь №: 14 188



В xapp098 хорошо описана именно такая загрузка. Поищите на сайте Xilinx. Возможные проблемы - обратная последовательность бит в байте, не выдержаны требуемые тайминги.
Файл Вы используете правильный. Ничего больше загружать не нужно.
В начале вроде бы выставляется в 0 PROG_B, потом ожидается 0 на INIT, потом 1 в PROG_B, ждем 1 на INIT, задержка (100 мкс) и дальше данные с клоком.
Go to the top of the page
 
+Quote Post
Mig&L
сообщение Sep 23 2008, 11:49
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 107
Регистрация: 1-07-07
Пользователь №: 28 823



*.bin или *bit ? должно быть *bit.
Go to the top of the page
 
+Quote Post
Kedin
сообщение Sep 23 2008, 11:55
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 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 сгенерил прошивку, все заработало
Go to the top of the page
 
+Quote Post
Very_hard
сообщение Sep 23 2008, 11:56
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 183
Регистрация: 10-02-06
Из: Киев, Украина
Пользователь №: 14 188



Мы используем *.bin файл - все нормально загружается. Вроде у bit-файла нужно заголовок удалять перед загрузкой, не пробовал.
Go to the top of the page
 
+Quote Post
Sp_dev
сообщение Sep 23 2008, 12:00
Сообщение #9





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



Использую файл *.bin
Go to the top of the page
 
+Quote Post
Mig&L
сообщение Sep 23 2008, 12:07
Сообщение #10


Частый гость
**

Группа: Участник
Сообщений: 107
Регистрация: 1-07-07
Пользователь №: 28 823



Я использую *.bit ? но заголовок отрезаю, размер беру из книжки Кузелин, Кнышев , Зотов.
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Sep 23 2008, 12:19
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(Mig&L @ Sep 23 2008, 16:07) *
Я использую *.bit ? но заголовок отрезаю, размер беру из книжки Кузелин, Кнышев , Зотов.
Это делает САПР. Если у bitgen выставить опцию -g Binary:Yes, будет генерироваться .bin.
Go to the top of the page
 
+Quote Post
Boris_TS
сообщение Sep 23 2008, 12:22
Сообщение #12


Злополезный
****

Группа: Свой
Сообщений: 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. У вас, я так понял, ПЛИС в цепочке единственная - проверьте наличие этой галочки.
Go to the top of the page
 
+Quote Post
Mig&L
сообщение Sep 23 2008, 12:43
Сообщение #13


Частый гость
**

Группа: Участник
Сообщений: 107
Регистрация: 1-07-07
Пользователь №: 28 823



Попробуйте дать побольше задержку после подачи питания и началом загрузки прошивки
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Sep 23 2008, 12:58
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 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. Если он упадет, значит ошибка в данных.
Go to the top of the page
 
+Quote Post
Boris_TS
сообщение Sep 23 2008, 16:18
Сообщение #15


Злополезный
****

Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188



Цитата(Михаил_K @ Sep 23 2008, 16:58) *
1. Для указанного плиса пофигу какой файл грузить *.bit или *.bin. Она сама заголовок отрезает.

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

Поэму, во избежания проблем конфигурирования, Xilinx предлагает для непосредственной загрузки "чистый" BitStream, записываемый в *.bin файл.
Go to the top of the page
 
+Quote Post
Sp_dev
сообщение Sep 25 2008, 17:44
Сообщение #16





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



Всем спасибо. С учетом ваших замечаний и последующей корректировки кода все заработало.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th August 2025 - 10:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01496 секунд с 7
ELECTRONIX ©2004-2016