|
Присвоение 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, 02:40
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(disel @ Sep 23 2010, 20:29)  Такая мысль была сразу, но это надо не забыть запустить скрипт, которые припишет заголовок. А это человеческий фактор, могу ведь и забыть при очередной генерации прошивки. А с USERID все автоматически. а set_global_assignment -name PRE_FLOW_SCRIPT_FILE "quartus_sh:assign_id.tcl" не катит? или set_global_assignment -name POST_FLOW_SCRIPT_FILE "quartus_sh:assign_id.tcl" не катит?
--------------------
|
|
|
|
|
Sep 24 2010, 05:08
|
Знающий
   
Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410

|
Цитата(des00 @ Sep 24 2010, 06:40)  а set_global_assignment -name PRE_FLOW_SCRIPT_FILE "quartus_sh:assign_id.tcl" не катит? или set_global_assignment -name POST_FLOW_SCRIPT_FILE "quartus_sh:assign_id.tcl" не катит? Так то квартус, я про ксалникс. Как автоматически запустить скрипт для ISE я не смог разобраться. Цитата(XVR @ Sep 24 2010, 08:54)  Декодировал битстрим. ID лежит внутри фрейма (ISE сгенерил один большой фрейм). Уверен, что положение внутри одного отдельного фрейма (а не внутри той пачки, которая записана в битстриме) будет постоянна (и адрес фрейма будет фиксирован). Но вот положение внутри самого образа битстрима точно будет плавать Жалко что положение не постоянно. Цитата(XVR @ Sep 24 2010, 08:54)  Скрипт тоже можно запускать автоматически А как?
|
|
|
|
Сообщений в этой теме
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        XVR Цитата(disel @ Sep 24 2010, 06:29) Спасиб... Sep 24 2010, 04:54 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
|
|
|