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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Какой размер у hex файла прошивки и как его генерить?, virtex-6, blackfin
Goose
сообщение Oct 10 2012, 16:23
Сообщение #1


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

Группа: Свой
Сообщений: 165
Регистрация: 26-02-10
Из: Москва
Пользователь №: 55 683



Всем доброго времени суток,
необходимо оценить время за которое будет конфигурироваться virtex-6 через blackfin в Serial Slave моде, насколько отличается размер hex файла от bit файла (размер bit-файла я нашел в UG360), и собственно как его получить из bit-файла. в одном из доков нашел, что его можно получить скриптом на Perl'е, который я так и не нашел (может все-таки через impact это можно сделать?) или если разница в размере несущественна обойтись bit-файлом? (различия в процессе конфигурирования процессором есть для bit и hex?)
Спасибо.
Go to the top of the page
 
+Quote Post
Flood
сообщение Oct 10 2012, 18:21
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 702
Регистрация: 8-06-06
Пользователь №: 17 871



Цитата(Goose @ Oct 10 2012, 20:23) *
Всем доброго времени суток,
необходимо оценить время за которое будет конфигурироваться virtex-6 через blackfin в Serial Slave моде, насколько отличается размер hex файла от bit файла (размер bit-файла я нашел в UG360), и собственно как его получить из bit-файла. в одном из доков нашел, что его можно получить скриптом на Perl'е, который я так и не нашел (может все-таки через impact это можно сделать?) или если разница в размере несущественна обойтись bit-файлом? (различия в процессе конфигурирования процессором есть для bit и hex?)
Спасибо.


В ПЛИС загружается битовая последовательность, имеющая документированный размер. hex (mcs) - промежуточный формат (ASCII), его нельзя загрузить в ПЛИС без преобразования в бинарный, поэтому вопрос не имеет смысла. При загрузке ПЛИС из процессора используется чистая битовая последовательность (bin). Если ножек хватает, лучше грузить через SelectMAP, выдавай байт или более за 1 такт. Slave Serial из процессора - очень спорное решение.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Oct 10 2012, 18:47
Сообщение #3


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Судя по нагуглённому тута, от бит-файла нужно только отрезать небольщой заголовочек (увы, переменной длины) и останется двоичный файл, который нужно затолкать в FPGA через SPI.

Если линковать к программе массив байтов, то не важно, получен он из бинарного файла или пришиванием HEX-а. Размер будет одинаков.

Кстати, у альтеровского квартуса в Device Options / Programming Files есть куча птичек, включая генерацию .rbf (raw binary file), .hex, .ttf (текстовый файл с числами через запятую), т.е. нет проблем получить что-то, из чего легко делается массив в программе. Должно же и у xilinx что-то такое быть прямо в родном софте.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
Flood
сообщение Oct 10 2012, 18:57
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 702
Регистрация: 8-06-06
Пользователь №: 17 871



Цитата(ReAl @ Oct 10 2012, 22:47) *
Должно же и у xilinx что-то такое быть прямо в родном софте.


Если мне не изменяет память, у Xilinx генерируется сразу же по умолчанию, .bin, а также его аналог в текстовом формате. Заголовок bit файла то ли документирован, то ли частично документирован. В любом случае, можно и из .bit вынуть чистый битстрим. Правда, у Xilinx есть такое понятие как bitswap, часть файлов генерится так, часть иначе. Но все описано в Configuraion Guide.
Go to the top of the page
 
+Quote Post
Goose
сообщение Oct 10 2012, 19:16
Сообщение #5


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

Группа: Свой
Сообщений: 165
Регистрация: 26-02-10
Из: Москва
Пользователь №: 55 683




Цитата
Если ножек хватает, лучше грузить через SelectMAP, выдавай байт или более за 1 такт. Slave Serial из процессора - очень спорное решение.
Разработчики платы из другой фирмы решили что нам хватит slave serial. насчет длины понял.

Цитата
Кстати, у альтеровского квартуса в Device Options / Programming Files есть куча птичек, включая генерацию .rbf (raw binary file), .hex, .ttf (текстовый файл с числами через запятую), т.е. нет проблем получить что-то, из чего легко делается массив в программе. Должно же и у xilinx что-то такое быть прямо в родном софте.

Да в ISE есть эти галочки все кроме hex

Цитата
Если мне не изменяет память, у Xilinx генерируется сразу же по умолчанию, .bin, а также его аналог в текстовом формате. Заголовок bit файла то ли документирован, то ли частично документирован. В любом случае, можно и из .bit вынуть чистый битстрим. Правда, у Xilinx есть такое понятие как bitswap, часть файлов генерится так, часть иначе. Но все описано в Configuraion Guide.

Да все генерится (кроме hex), и про битсвап тоже читал (уже правда не помню для чего это делается, просто думал есть простая процедура как получить чистый hex без заморочек.
Go to the top of the page
 
+Quote Post
Flood
сообщение Oct 10 2012, 19:36
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 702
Регистрация: 8-06-06
Пользователь №: 17 871



А что такое hex, в таком случае? В смысле, зачем он нужен и какой именно формат hex-а имеется ввиду?
Go to the top of the page
 
+Quote Post
Goose
сообщение Oct 10 2012, 19:45
Сообщение #7


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

Группа: Свой
Сообщений: 165
Регистрация: 26-02-10
Из: Москва
Пользователь №: 55 683



Цитата(Flood @ Oct 10 2012, 22:36) *
А что такое hex, в таком случае? В смысле, зачем он нужен и какой именно формат hex-а имеется ввиду?


http://www.xilinx.com/support/documentatio...uides/ug360.pdf
page 87

HEX
Determined
by User
PROMGen or
iMPACT
ASCII PROM file format containing only configuration data.
Used mainly in custom configuration solutions.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Oct 10 2012, 20:11
Сообщение #8


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(Goose @ Oct 10 2012, 22:16) *
Да все генерится (кроме hex), и про битсвап тоже читал (уже правда не помню для чего это делается, просто думал есть простая процедура как получить чистый hex без заморочек.
bin -> srecord -> hex
Правилом в makefile с полной автоматикой при подбрасывании нового bin


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
Flood
сообщение Oct 10 2012, 21:04
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 702
Регистрация: 8-06-06
Пользователь №: 17 871



Я все-таки никак не пойму, зачем нужен hex?
Вы собираетесь конфигурировать ПЛИС из процессора. Хорошо, а где будет хранится битстрим? Встроен в программу процессора, файл в файловой системе, область в ПЗУ? Я что-то не могу придумать ни одного случая, где потребовался бы именно hex (ASCII PROM file format!).
"Сложный" hex (в смысле, Intel Hex или Motorola S-record) часто используется при программировании ПЗУшек, что обусловлено тяжелым прошлым большого числа программаторов, малым объемом таких ПЗУшек, а также во многих (но не в этом) случаях - возможностью произвольной адресации. Простой hex (1234abcd) вобще не ясно, зачем может пригодиться. Вот, к примеру, хранить прошивку ПЛИС в любом hex-формате в файловой системе встроенного процессора - действие, близкое к безумию. Конечно, когда файловая система 4ГБайт, уже не так важно, 8МБ или 4МБ занимает файл прошивка ПЛИС, но все равно как-то неприятно.
Go to the top of the page
 
+Quote Post
Goose
сообщение Oct 11 2012, 12:12
Сообщение #10


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

Группа: Свой
Сообщений: 165
Регистрация: 26-02-10
Из: Москва
Пользователь №: 55 683



может быть я неправильно выражаюсь) нужно из процессора (blackfin) конфигурировать плис, у процессора есть флешка (m25p64) в ней собираемся хранить прошивку ( видимо ее можно еще сжать неплохо) но вот где мне взять эту битовую последовательность, которую надо писать в плис чтобы ее сконфигурить ( у меня есть bit, bin, rbf) как из них получить эту необходимую битовую последовательность?

и действительно ли
Цитата
bin -> srecord -> hex
Правилом в makefile с полной автоматикой при подбрасывании нового bin
эта программа генерит нужную мне битовую последовательность?
Go to the top of the page
 
+Quote Post
ReAl
сообщение Oct 11 2012, 14:01
Сообщение #11


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(Flood @ Oct 11 2012, 00:04) *
Я все-таки никак не пойму, зачем нужен hex?
Один из способов пришить двоичные данные к прошивке процессора -- приклеить HEX со сдвигом адресов.
Если снаружи висит последовательная флешка — её программатор тоже может hex брать.
Так что само по себе желание иметь hex не удивляет.

Цитата(Goose @ Oct 11 2012, 15:12) *
(у меня есть bit, bin, rbf) как из них получить эту необходимую битовую последовательность?
Ну если есть raw binary file (bin/rbf/... как там он у xilinx называется), то вот она битовая последовательность, нужно только знать -- старшим или младшим битом вперёд её нужно выдвигать в последовательный порт.

Цитата(Goose @ Oct 11 2012, 15:12) *
и действительно ли эта программа генерит нужную мне битовую последовательность?
Битовую последовательность генерит FPGA-шный инструментарий. Эта програма может только преобразовать её из bin или hex представления в другое, которое нужно.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
Flood
сообщение Oct 11 2012, 16:34
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 702
Регистрация: 8-06-06
Пользователь №: 17 871



Цитата(Goose @ Oct 11 2012, 16:12) *
где мне взять эту битовую последовательность, которую надо писать в плис чтобы ее сконфигурить ( у меня есть bit, bin, rbf) как из них получить эту необходимую битовую последовательность?


Чистый битстрим находится в файле .bin. Фактически это тот же .bit, только без заголовка. Его (bin) и нужно сжимать и записывать в ПЗУ, а потом разжимать и побитно (раз это Slave Serial) отправлять в ПЛИС. На этапе отладки загрузчика сжатие лучше не применять.
rbf - это что-то из мира Альтеры sm.gif
Go to the top of the page
 
+Quote Post
Goose
сообщение Oct 12 2012, 06:02
Сообщение #13


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

Группа: Свой
Сообщений: 165
Регистрация: 26-02-10
Из: Москва
Пользователь №: 55 683



Цитата(Flood @ Oct 11 2012, 19:34) *
Чистый битстрим находится в файле .bin. Фактически это тот же .bit, только без заголовка. Его (bin) и нужно сжимать и записывать в ПЗУ, а потом разжимать и побитно (раз это Slave Serial) отправлять в ПЛИС. На этапе отладки загрузчика сжатие лучше не применять.
rbf - это что-то из мира Альтеры sm.gif

Огромное спасибо!!! теперь понял!!! 1111493779.gif
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Oct 12 2012, 06:25
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(Flood @ Oct 11 2012, 23:34) *
Чистый битстрим находится в файле .bin. Фактически это тот же .bit, только без заголовка. Его (bin) и нужно сжимать и записывать в ПЗУ, а потом разжимать и побитно (раз это Slave Serial) отправлять в ПЛИС. На этапе отладки загрузчика сжатие лучше не применять.
rbf - это что-то из мира Альтеры sm.gif

Я делал так : специально для случая прилинковки битстрима к разным встроенным процессорам написал простенькую конвертайку *.bin(или *.bit) -> С-style const array. На выходе получается что-то типа :
Код
const unsigned char bitstream = { 0x11, 0x22, ..... };
#define bitstream_length = ....;


Такой файлик легко прилинковывается к любому проекту, написанному на C. Если есть интерес - могу выложить сорцы конвертайки.

З Ы Да, было бы вполне логично натравить на этот массив какой-нибудь алгоритм сжатия, но у меня до этого руки не дошли...

Go to the top of the page
 
+Quote Post
Flood
сообщение Oct 12 2012, 06:44
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 702
Регистрация: 8-06-06
Пользователь №: 17 871



Насчет C-array - в принципе, в
#define bitstream_length = ....;
нет необходимости, т.к. есть sizeof bitstream.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 17:03
Рейтинг@Mail.ru


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