Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Формат Xilinx mcs файла
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
a123-flex
Добрый день.

Кто знает хоть что-то, подскажите. Может кто исследовал его ?
Интересует формат файлов прошивок Virtex2.
dm.pogrebnoy
https://code.google.com/archive/p/debit/sou.../default/source
https://github.com/djn3m0/debit
http://www.fabienm.eu/flf/wp-content/uploa...11/Note2008.pdf
подробностей не знаю, нагуглил случайно
makc
Если Вас интересует сам формат файла, то это Intel HEX.
Если интересует формат прошивок в двоичном виде, то читайте соответствующий Configuration Guide, там все написано, начиная с заголовка. Правда формат кадров, управляющих коммутацией матрицы и инициализацией ячеек там не описан, но на просторах интернета можно найти и эту информацию.
a123-flex
Цитата(makc @ Oct 14 2016, 22:28) *
Если Вас интересует сам формат файла, то это Intel HEX.
Если интересует формат прошивок в двоичном виде, то читайте соответствующий Configuration Guide, там все написано, начиная с заголовка. Правда формат кадров, управляющих коммутацией матрицы и инициализацией ячеек там не описан, но на просторах интернета можно найти и эту информацию.

ну скажите пару словечек чего гуглить.
VladimirB
Цитата(a123-flex @ Oct 14 2016, 22:44) *
ну скажите пару словечек чего гуглить.

По hex'у мне хватило вот этого:
https://ru.wikipedia.org/wiki/Intel_HEX

А в качестве содержимого hex'а идёт собственно bit файл прошивки.

makc
http://bfy.tw/8CCa
http://bfy.tw/8CCS

Цитата(VladimirB @ Oct 14 2016, 23:18) *
А в качестве содержимого hex'а идёт собственно bit файл прошивки.


Не совсем так, в bit-файле информации больше, т.к. там живет метка времени и другая служебная информация, которая не входит в аппаратный битстрим.


Еще один интересный проект: http://www.mn.uio.no/ifi/english/research/...srecos/goahead/
VladimirB
Цитата(makc @ Oct 14 2016, 23:39) *
http://bfy.tw/8CCa
http://bfy.tw/8CCS



Не совсем так, в bit-файле информации больше, т.к. там живет метка времени и другая служебная информация, которая не входит в аппаратный битстрим.


Еще один интересный проект: http://www.mn.uio.no/ifi/english/research/...srecos/goahead/


Согласен, там заголовок есть в начале bit-файла со всякой шнягой.
Но его тоже можно в mcs запихать и это не будет ошибкой, т.к. всё что идёт до слова синхронизации отбрасывается при загрузке ПЛИС.
a123-flex
благодарствуем.
a123-flex
Цитата(a123-flex @ Oct 15 2016, 15:49) *
благодарствуем.

Новая проблема. Не удается найти xilinx утилиту hex2bits. В закромах, гляжу, тоже нет. Может у кого есть ?

Или может есть другой способ сделать преобразование *.mcs - *.bit ?

vladec
Я так понимаю у Вас есть mcs, а вам нужен бинарник. Есть же у Xilinx еще и формат bin, который тот же bit но с выброшенным заголовком. Может Вам поискать транслятор в bin. Посмотрите, например, http://www.xilinx.com/support/answers/23174.html
dm.pogrebnoy
Цитата(vladec @ Oct 18 2016, 11:17) *
Я так понимаю у Вас есть mcs, а вам нужен бинарник. Есть же у Xilinx еще и формат bin, который тот же bit но с выброшенным заголовком. Может Вам поискать транслятор в bin. Посмотрите, например, http://www.xilinx.com/support/answers/23174.html

Похоже это какая-то недокументированная возможность. Может и в bit таким образом можно сконвертировать?...
makc
Цитата(a123-flex @ Oct 17 2016, 18:40) *
Новая проблема. Не удается найти xilinx утилиту hex2bits. В закромах, гляжу, тоже нет. Может у кого есть ?


Судя по описанию это не совсем то, что Вы хотели:

CODE

- HEX2BITS -

USAGE:
HEX2BITS [-k] <hexadecimal file> <output file name>

'HEX2BITS' translates a file of hexadecimal characters into ascii '1's
and '0's. It is primarily designed to operate on a hexadecimal PROM file
that has first been stripped of its PROM formatting by the 'STRIPHEX' program.
If the original PROM file was for an LCA bitstream, the 'HEX2BITS' version
of the 'stripped' PROM file will be an ascii '1's and '0's representation
of the LCA binary bitstream.

In it's default mode, 'HEX2BITS' will 'bit-swap' each byte of
hexadecimal data (ie. bit 7 of a byte becomes bit 0, bit 6 becomes bit 1).
It does this in order to restore the original order of the bitstream, since
it was 'bit-swapped' by the MAKEPROM program before being placed in
the PROM file. The 'bit-swapping' process is done to accommodate the
PROM-to-LCA loading process.

The '-k' option inhibits the 'bit-swapping', and keeps the ascii bits
in the same order as they appear in the hexadecimal file.

SAMPLE
------

This Intel MCS-86 Hexadecimal PROM-formatted file....

---------------------------------------------------------
| :020000020000FC |
| :10000000FF04400FFBEEFFFFFFFFFFFFFFFFB7FD09 |
| :10001000FDFBFFFBF7F7FFBFFFF7EDFFEFDFFFFF94 |
| :10002000FFFDFFFDFFFFFFFFFFFFEFFFFDFBFBFB02 |
| ......... |
| :1005D000F9F3FBF3E7E6F6DFFFFDFFFFFF7F777739 |
| :0205E000FFFF1B |
| :00000001FF |
---------------------------------------------------------

submitted to 'STRIPHEX', produces the following file...

-----------------------------------------
| FF04400FFBEEFFFFFFFFFFFFFFFFB7FD |
| FDFBFFFBF7F7FFBFFFF7EDFFEFDFFFFF |
| FFFDFFFDFFFFFFFFFFFFEFFFFDFBFBFB |
| ..... |
| F9F3FBF3E7E6F6DFFFFDFFFFFF7F7777 |
| FFFF |
-----------------------------------------


When the stripped file above is submitted to 'HEX2BITS',
the following file is produced....

-------------------------------------------------------------------------------
| Produced by Xilinx HEX2BITS version 0.02 |
| File dice.bits |
| Wed Aug 17 14:41:13 1988 |
| 1111111100100000000000101111000011011111 |
| 011101111111111111111111111111111111111111111111111111111111111111111111111 |
| 011011011111110111111110111111111111111011111111011111110111111111111111111 |
| 011111111111101111101101111111111111110111111110111111111111111111111111111 |
| ... |
| 001111110111111001111111001111110111111100111111100111011001110110111111111 |
| 011111111111011111111111111111111111111111111111110111011101110111011111111 |
| 11111111 |
-------------------------------------------------------------------------------
DISCLAIMER
==========

XILINX IS PROVIDING THIS SOFTWARE TO USERS OF XILINX PRODUCTS SOLELY FOR
USE IN SUPPORT OF THOSE PRODUCTS. XILINX DOES NOT ASSUME ANY LIABILITY
ARISING OUT OF THE APPLICATION OR USE OF THIS SOFTWARE OR FOR ANY ERRORS
OR DEFECTS THAT MAY EXIST IN THIS SOFTWARE. XILINX EXPRESSLY DISCLAIMS ANY
WARRANTY, EXPRESS OR IMPLIED, INCLUDING ANY WARRANTY OF MERCHANTABILITY OR
FITNESS FOR A PARTICULAR PURPOSE.
a123-flex
Цитата(vladec @ Oct 18 2016, 11:17) *
Я так понимаю у Вас есть mcs, а вам нужен бинарник. Есть же у Xilinx еще и формат bin, который тот же bit но с выброшенным заголовком. Может Вам поискать транслятор в bin. Посмотрите, например, http://www.xilinx.com/support/answers/23174.html

транслятор в bin работает.
Но debit потребляет bit, а bin не хочет.
А можно интересно восстановить заголовок ?
makc
Можно. Сделать bit-файл для такой же ПЛИС и параметров конфигурирования, выделить из него заголовок до начала синхропоследовательности и пристыковать к нему Ваш образ прошивки.
vladec
Цитата
транслятор в bin работает.
Но debit потребляет bit, а bin не хочет.
А можно интересно восстановить заголовок ?


Транслятора в bit быть не может поскольку в mcs и в bin отсутствует информация заголовка. Поэтому только в ручную, как советует makc.
a123-flex
Цитата(vladec @ Oct 19 2016, 14:50) *
Транслятора в bit быть не может поскольку в mcs и в bin отсутствует информация заголовка. Поэтому только в ручную, как советует makc.

м. а дальше, насколько я понимаю, *.bit (debit) -> *.ncd -> FPGA editor ?
dm.pogrebnoy
a123-flex
А кто ж его знает, тут наверное еще никто такого не пробовал, по крайней мере не писал. Мы все в нетерпении, интересен результат.
Flood
Цитата(a123-flex @ Oct 19 2016, 17:25) *
м. а дальше, насколько я понимаю, *.bit (debit) -> *.ncd -> FPGA editor ?

Для Virtex2 (не PRO), поддержка была заявлена в debit. Но насколько она позволяет получить ncd, открывабельный в FPGA Editor... Ну, не знаю...
Мне казалось, debit позволяет получить низкоуровневое описание конфигурации в каком-то собственном текстовом формате на основе конвертированных примитивов. Чтобы он делал ncd даже не верится. Возможно, это был ultimate task до закрытия проекта.
a123-flex
Цитата(Flood @ Oct 19 2016, 22:13) *
Для Virtex2 (не PRO), поддержка была заявлена в debit. Но насколько она позволяет получить ncd, открывабельный в FPGA Editor... Ну, не знаю...
Мне казалось, debit позволяет получить низкоуровневое описание конфигурации в каком-то собственном текстовом формате на основе конвертированных примитивов. Чтобы он делал ncd даже не верится. Возможно, это был ultimate task до закрытия проекта.

да, вот именно с этим и проблема. не жрет его выхлоп fpga editor. и формат файла там какой-то странный, я бы сказал на edif похожий. Но не ncd точно
Flood
Если нужно найти в битстриме какую-то информацию, можно попытаться разобраться с форматом.
Если нужны исправления - это хуже. Обратно в bit этот формат конвертируется (debit-ом же)?
Возможно этого будет достаточно чтобы поправить что-то мелкое. Все равно сделать серьезные исправления не получится.
a123-flex
Цитата(dm.pogrebnoy @ Oct 19 2016, 19:24) *
a123-flex
А кто ж его знает, тут наверное еще никто такого не пробовал, по крайней мере не писал. Мы все в нетерпении, интересен результат.

пробовали
https://electronix.ru/forum/index.php?showtopic=116848

Цитата(Flood @ Oct 20 2016, 12:31) *
Если нужно найти в битстриме какую-то информацию, можно попытаться разобраться с форматом.
Если нужны исправления - это хуже. Обратно в bit этот формат конвертируется (debit-ом же)?
Возможно этого будет достаточно чтобы поправить что-то мелкое. Все равно сделать серьезные исправления не получится.

вернуть обратно етот чудо файл я не попробовал. действительно интересно.
Результат преобразования debit-а вообще иерархический и легко читаемый - в нем действительно можно разобраться.
Я всегда писал rtl и руками схему никогда не правил, так что на мой неопытный взгляд нет большой разницы чего править - нетлист или картинки fpga editor-а - и то и другое - АД)

Ну да, видимо так и есть. В составе debit-а есть смотрелка. Очевидно, предполагаемое flow такое - правим нетлист руками, просматриваем.
И так до готовности.
Думаю debit в принципе не предполагал использования fpga editor-а.

О. а нельзя ли засунуть gate - level netlist обратно на вход Xilinx ?
Собсно, чем собственные примитивы Xilinx хуже просто примитивов ?
Типа симуляции post-fit модели ?
Тогда, найдя вход и выход требуемого блока, можно добавить описание своего блока, прописать констрейн на клок, а дальше Xil сам все разведет.
О. еще круче.
Если оригинальное размещение списать в rloc констрейны, тогда при перетрассировке Xil сохранит его.
Правда для етого нужно или вытаскивать констрейны размещения из gate-level нетлиста ручками, или вернуть все же проект в родную среду, для чего пути сейчас не видно.

А кто знает как списать констрейны размещения готового проекта ?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.