|
Какой размер у hex файла прошивки и как его генерить?, virtex-6, blackfin |
|
|
|
Oct 10 2012, 18:21
|
Знающий
   
Группа: Свой
Сообщений: 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 из процессора - очень спорное решение.
|
|
|
|
|
Oct 10 2012, 18:47
|

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

|
Судя по нагуглённому тута, от бит-файла нужно только отрезать небольщой заголовочек (увы, переменной длины) и останется двоичный файл, который нужно затолкать в FPGA через SPI. Если линковать к программе массив байтов, то не важно, получен он из бинарного файла или пришиванием HEX-а. Размер будет одинаков. Кстати, у альтеровского квартуса в Device Options / Programming Files есть куча птичек, включая генерацию .rbf (raw binary file), .hex, .ttf (текстовый файл с числами через запятую), т.е. нет проблем получить что-то, из чего легко делается массив в программе. Должно же и у xilinx что-то такое быть прямо в родном софте.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Oct 10 2012, 18:57
|
Знающий
   
Группа: Свой
Сообщений: 702
Регистрация: 8-06-06
Пользователь №: 17 871

|
Цитата(ReAl @ Oct 10 2012, 22:47)  Должно же и у xilinx что-то такое быть прямо в родном софте. Если мне не изменяет память, у Xilinx генерируется сразу же по умолчанию, .bin, а также его аналог в текстовом формате. Заголовок bit файла то ли документирован, то ли частично документирован. В любом случае, можно и из .bit вынуть чистый битстрим. Правда, у Xilinx есть такое понятие как bitswap, часть файлов генерится так, часть иначе. Но все описано в Configuraion Guide.
|
|
|
|
|
Oct 10 2012, 19:16
|
Частый гость
 
Группа: Свой
Сообщений: 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 без заморочек.
|
|
|
|
|
Oct 10 2012, 19:45
|
Частый гость
 
Группа: Свой
Сообщений: 165
Регистрация: 26-02-10
Из: Москва
Пользователь №: 55 683

|
Цитата(Flood @ Oct 10 2012, 22:36)  А что такое hex, в таком случае? В смысле, зачем он нужен и какой именно формат hex-а имеется ввиду? http://www.xilinx.com/support/documentatio...uides/ug360.pdfpage 87 HEX Determined by User PROMGen or iMPACT ASCII PROM file format containing only configuration data. Used mainly in custom configuration solutions.
|
|
|
|
|
Oct 10 2012, 20:11
|

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

|
Цитата(Goose @ Oct 10 2012, 22:16)  Да все генерится (кроме hex), и про битсвап тоже читал (уже правда не помню для чего это делается, просто думал есть простая процедура как получить чистый hex без заморочек. bin -> srecord -> hex Правилом в makefile с полной автоматикой при подбрасывании нового bin
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Oct 10 2012, 21:04
|
Знающий
   
Группа: Свой
Сообщений: 702
Регистрация: 8-06-06
Пользователь №: 17 871

|
Я все-таки никак не пойму, зачем нужен hex? Вы собираетесь конфигурировать ПЛИС из процессора. Хорошо, а где будет хранится битстрим? Встроен в программу процессора, файл в файловой системе, область в ПЗУ? Я что-то не могу придумать ни одного случая, где потребовался бы именно hex (ASCII PROM file format!). "Сложный" hex (в смысле, Intel Hex или Motorola S-record) часто используется при программировании ПЗУшек, что обусловлено тяжелым прошлым большого числа программаторов, малым объемом таких ПЗУшек, а также во многих (но не в этом) случаях - возможностью произвольной адресации. Простой hex (1234abcd) вобще не ясно, зачем может пригодиться. Вот, к примеру, хранить прошивку ПЛИС в любом hex-формате в файловой системе встроенного процессора - действие, близкое к безумию. Конечно, когда файловая система 4ГБайт, уже не так важно, 8МБ или 4МБ занимает файл прошивка ПЛИС, но все равно как-то неприятно.
|
|
|
|
|
Oct 11 2012, 12:12
|
Частый гость
 
Группа: Свой
Сообщений: 165
Регистрация: 26-02-10
Из: Москва
Пользователь №: 55 683

|
может быть я неправильно выражаюсь) нужно из процессора (blackfin) конфигурировать плис, у процессора есть флешка (m25p64) в ней собираемся хранить прошивку ( видимо ее можно еще сжать неплохо) но вот где мне взять эту битовую последовательность, которую надо писать в плис чтобы ее сконфигурить ( у меня есть bit, bin, rbf) как из них получить эту необходимую битовую последовательность? и действительно ли Цитата bin -> srecord -> hex Правилом в makefile с полной автоматикой при подбрасывании нового bin эта программа генерит нужную мне битовую последовательность?
|
|
|
|
|
Oct 11 2012, 14:01
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 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 представления в другое, которое нужно.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Oct 12 2012, 06:02
|
Частый гость
 
Группа: Свой
Сообщений: 165
Регистрация: 26-02-10
Из: Москва
Пользователь №: 55 683

|
Цитата(Flood @ Oct 11 2012, 19:34)  Чистый битстрим находится в файле .bin. Фактически это тот же .bit, только без заголовка. Его (bin) и нужно сжимать и записывать в ПЗУ, а потом разжимать и побитно (раз это Slave Serial) отправлять в ПЛИС. На этапе отладки загрузчика сжатие лучше не применять. rbf - это что-то из мира Альтеры  Огромное спасибо!!! теперь понял!!!
|
|
|
|
|
Oct 12 2012, 06:25
|
Знающий
   
Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650

|
Цитата(Flood @ Oct 11 2012, 23:34)  Чистый битстрим находится в файле .bin. Фактически это тот же .bit, только без заголовка. Его (bin) и нужно сжимать и записывать в ПЗУ, а потом разжимать и побитно (раз это Slave Serial) отправлять в ПЛИС. На этапе отладки загрузчика сжатие лучше не применять. rbf - это что-то из мира Альтеры  Я делал так : специально для случая прилинковки битстрима к разным встроенным процессорам написал простенькую конвертайку *.bin(или *.bit) -> С-style const array. На выходе получается что-то типа : Код const unsigned char bitstream = { 0x11, 0x22, ..... }; #define bitstream_length = ....; Такой файлик легко прилинковывается к любому проекту, написанному на C. Если есть интерес - могу выложить сорцы конвертайки. З Ы Да, было бы вполне логично натравить на этот массив какой-нибудь алгоритм сжатия, но у меня до этого руки не дошли...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|