|
Присвоение ID ПЛИС'е, Как бы проще сделать? |
|
|
|
Aug 25 2009, 07:15
|
Участник

Группа: Участник
Сообщений: 66
Регистрация: 28-11-05
Из: Москва
Пользователь №: 11 510

|
Добрый день! Есть ли у кого опыт решения задачки присвоения ID номера микросхеме? Хочется сделать это не меняя какую-либо константу в программе, а просто прошивочным (программаторским) методом, минуя "залезания" в код. Ведь рано или поздно запустится серия и так хочется делать всё быстро и проще! Нет никаких идей, а? Заранее благодарен за возможные пути решения задачки! Используем Cyclone II и Quartus II.
Сообщение отредактировал Moks - Aug 25 2009, 07:16
|
|
|
|
|
 |
Ответов
|
Sep 23 2010, 02:23
|
Знающий
   
Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410

|
Цитата(XVR @ Sep 22 2010, 23:58)  Покапаюсь в битстриме Кстати, а почему бы просто не сгенерить новый битстрим с нужным ID? Это делается запуском bitgen с командной строки, т.е. сие действо можно автоматизировать скриптом. ISE конечно должен на машине стоять (хотя бы огрызок его), но запускать GUI совсем необязательно Меня интересовало не как генерить, а как его в битстриме найти. Как генерить я знаю. Ситуация такая: есть две платы (точнее две генерации одной платы), плис на них стоит одна и та же. Но окружение (синтезаторы, ддс, периферия разная) другое, ноги другие используются. Прошивки посылаются заказчику эл.почтой и заливаются в пзу через RS422. И вот сейчас у них оказались в руках обе платы одновременно. Заказчик раздолбай редкостный и чую, что начнут путать прошивки и писать нам что мы всякую лажу делаем. Вот и хотелось бы зашить в битстрим какой-то признак, идентифицирующий прошивку. А микроблейз, который живет в плис и принимает прошивку по RS422, мог бы это несоответствие обнаружить. USERID для этого очень хорошо подходит. Цитата(XVR @ Sep 22 2010, 23:58)  Покопал битстрим. Похоже USERID записан внутри конфигурационного фрейма (в виде 2х половин по 16 бит и сдвинутый на 1 бит влево). Проблема в том, что позиция в файле видимо будет зависеть от прошивки и совершенно точно при изменении USERID меняется CRC фрейма, который тоже записан в битстриме  Интересно. Я честно говоря тупо запустил поиск по целому USERID и не нашел. Поделитесь пожалуйста своими находками.
|
|
|
|
|
Sep 23 2010, 06:39
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата(disel @ Sep 23 2010, 06:23)  Интересно. Я честно говоря тупо запустил поиск по целому USERID и не нашел. Поделитесь пожалуйста своими находками. Сгенерил 2 прошивки с ID 000000 и FFFFFFFF и сравнил (побайтно) Код C:\home\roman\cnc\fpga_v3_servo>fc /b top.bin.fffff top.bin Сравнение файлов top.bin.fffff и TOP.BIN 00032E39: 00 01 00032E3A: 00 FF 00032E3B: 00 FE 00032FBD: 00 01 00032FBE: 00 FF 00032FBF: 00 FE 000452BA: 13 B1 000452BB: 8C 5F Как видим ID лежит 2 частями по адресам 32E39 (3 байта) и 32FBD (3 байта) Возможно еще были переставленны биты. CRC лежит с 452BA (2 байта) Увы, для другой прошивки адреса могут уехать Цитата Вот и хотелось бы зашить в битстрим какой-то признак, идентифицирующий прошивку. А микроблейз, который живет в плис и принимает прошивку по RS422, мог бы это несоответствие обнаружить. Сделайте у прошивки свой заголовок (с ID), при заливке проверяйте его и выбрасывайте (во FLASH его писать не надо) Да даже можно и записать, FPGA его проигнорирует (главное, что бы в нем не нашлось синхронизирующее слово  )
|
|
|
|
|
Sep 24 2010, 02:29
|
Знающий
   
Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410

|
Цитата(XVR @ Sep 23 2010, 10:39)  Как видим ID лежит 2 частями по адресам 32E39 (3 байта) и 32FBD (3 байта) Возможно еще были переставленны биты. CRC лежит с 452BA (2 байта) Увы, для другой прошивки адреса могут уехать Спасибо. Интересно, положение в битстриме для одного типа микросхем постоянно или нет? Сегодня поэкспериментирую. Цитата(XVR @ Sep 23 2010, 10:39)  Сделайте у прошивки свой заголовок (с ID), при заливке проверяйте его и выбрасывайте (во FLASH его писать не надо) Да даже можно и записать, FPGA его проигнорирует (главное, что бы в нем не нашлось синхронизирующее слово  ) Такая мысль была сразу, но это надо не забыть запустить скрипт, которые припишет заголовок. А это человеческий фактор, могу ведь и забыть при очередной генерации прошивки. А с USERID все автоматически.
|
|
|
|
|
Sep 24 2010, 04:54
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата(disel @ Sep 24 2010, 06:29)  Спасибо. Интересно, положение в битстриме для одного типа микросхем постоянно или нет? Сегодня поэкспериментирую. Декодировал битстрим. ID лежит внутри фрейма (ISE сгенерил один большой фрейм). Уверен, что положение внутри одного отдельного фрейма (а не внутри той пачки, которая записана в битстриме) будет постоянна (и адрес фрейма будет фиксирован). Но вот положение внутри самого образа битстрима точно будет плавать Цитата Такая мысль была сразу, но это надо не забыть запустить скрипт, которые припишет заголовок. А это человеческий фактор, могу ведь и забыть при очередной генерации прошивки. А с USERID все автоматически. Скрипт тоже можно запускать автоматически
|
|
|
|
Сообщений в этой теме
Moks Присвоение ID ПЛИС'е Aug 25 2009, 07:15 Kuzmi4 2 Moks - ниос есть/нет ? Aug 25 2009, 07:27 DmitryR Впаять рядом DS28CM00. В каждой микрухе - свой код... Aug 25 2009, 07:30 AJIEKCEu Как вариант, аналогично DmitryR
DS1990 правда инт... Aug 25 2009, 07:36 Moks Цитата(AJIEKCEu @ Aug 25 2009, 11:36) Но ... Aug 25 2009, 07:49 AJIEKCEu Цитата(Moks @ Aug 25 2009, 11:49) Да, но ... Aug 25 2009, 07:54 Moks Задача-то состоит в том, что все устройства объеди... Aug 25 2009, 08:08 AJIEKCEu Цитата(Moks @ Aug 25 2009, 12:08) Задача-... Aug 25 2009, 08:13 SM Цитата(AJIEKCEu @ Aug 25 2009, 12:13) Но ... Aug 25 2009, 08:40 SM А откуда грузится ПЛИСка? Вариант - сделать блок О... Aug 25 2009, 08:27 Moks Цитата(SM @ Aug 25 2009, 12:27) А откуда ... Aug 25 2009, 09:01  DmitryR Если вам необходимо именно самому с помощью тети К... Aug 25 2009, 09:22 Kuzmi4 Если есть ниос - когда то этот вопрос довольно дет... Aug 25 2009, 08:35 x736C Moks, доступ через дизайн к константе не планирует... Aug 25 2009, 08:47 Moks Примерно понятно, спасибо. Значит, без дополнитель... Aug 25 2009, 09:48 AJIEKCEu Цитата(SM @ Aug 25 2009, 12:40) Неудачный... Aug 25 2009, 11:47 SM Цитата(AJIEKCEu @ Aug 25 2009, 15:47) А п... Aug 25 2009, 12:03 spectr Э народ вы че, какие нафиг ПЗУ для идентификатора ... Aug 25 2009, 17:01 SM Цитата(spectr @ Aug 25 2009, 21:01) Э нар... Aug 25 2009, 17:43 Евгений Николаев А каково должно быть разнообразие этих ID-номеров?... Aug 25 2009, 18:27 sazh Цитата(Евгений Николаев @ Aug 25 2009, 22... Aug 25 2009, 18:33  SM Цитата(sazh @ Aug 25 2009, 22:33) А ОТК п... Aug 25 2009, 18:45   sazh Цитата(SM @ Aug 25 2009, 22:45) ДолжОн. S... Aug 25 2009, 19:05    SM Цитата(sazh @ Aug 25 2009, 23:05) Может я... Aug 25 2009, 19:18    ReAl Цитата(sazh @ Aug 25 2009, 22:05) Может я... Aug 25 2009, 20:11 x736C А зачем его вносить?
В документацию на технологию ... Aug 25 2009, 19:15 Евгений Николаев ЦитатаТолько мне кажется джамперами задавать ID не... Aug 26 2009, 04:24 AJIEKCEu Цитата(Евгений Николаев @ Aug 26 2009, 08... Aug 26 2009, 07:40  SM Цитата(AJIEKCEu @ Aug 26 2009, 11:40) Сам... Aug 26 2009, 08:25  DmitryR Цитата(AJIEKCEu @ Aug 26 2009, 11:40) А п... Aug 26 2009, 08:35   SM Цитата(DmitryR @ Aug 26 2009, 12:35) И вс... Aug 26 2009, 08:40    Gothard Цитата(SM @ Aug 26 2009, 12:40) Да не тол... Sep 23 2010, 04:51     iosifk Все прочитать не успел...
Я могу предложить для эт... Sep 23 2010, 05:07   x736C Цитата(DmitryR @ Aug 26 2009, 12:35) Если... Aug 26 2009, 09:32 SFx DS2401 - вот решение. цена 1тыщи от 0.52$ но ... Aug 26 2009, 09:25 SM Кстати еще решение - IMHO самое простое из всех. Н... Aug 26 2009, 09:31 des00 Цитата(SM @ Aug 26 2009, 04:31) Кстати ещ... Aug 26 2009, 11:41 spectr Я что-то так и не понял - в итоге можно ли отдельн... Sep 21 2010, 15:59        des00 Цитата(disel @ Sep 23 2010, 20:29) Такая ... Sep 24 2010, 02:40         disel Цитата(des00 @ Sep 24 2010, 06:40) а
set... Sep 24 2010, 05:08 XVR ЦитатаСкрипт тоже можно запускать автоматически
А ... Sep 24 2010, 09:10 disel Цитата(XVR @ Sep 24 2010, 13:10) Как вари... Sep 24 2010, 13:00 spectr Народ, смотрите что нашел - описание POF-формата (... Sep 24 2010, 13:43 zombi Цитата(spectr @ Sep 24 2010, 16:43) Народ... Sep 28 2010, 21:32  spectr Цитата(zombi @ Sep 29 2010, 01:32) Кстати... Sep 30 2010, 17:19   zombi Цитата(spectr @ Sep 30 2010, 20:19) Наско... Oct 1 2010, 12:12 vitan По повдоу основного вопроса топика можно сказать, ... Sep 24 2010, 18:41 XVR ЦитатаА прошивку ПЛИС, имхо, нужно стремиться сохр... Sep 25 2010, 05:03 Reanimator++ Мне честно говоря не нравится идея вставки номера ... Sep 26 2010, 09:49 XVR Цитата(Reanimator++ @ Sep 26 2010, ... Sep 27 2010, 08:38 Reanimator++ Я бы тогда разделил прошивку заводскую (через JTAG... Sep 27 2010, 13:12 Aprox Позвольте напомню, как этот вопрос решался на древ... Oct 5 2010, 18:13
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|