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

 
 
5 страниц V  < 1 2 3 4 5 >  
Reply to this topicStart new topic
> Присвоение ID ПЛИС'е, Как бы проще сделать?
SM
сообщение Aug 26 2009, 08:40
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(DmitryR @ Aug 26 2009, 12:35) *
И все потому, что там есть CRC.

Да не только потому. CRC фигня, а вот что-то добавить дополнительное, не зная формата... Это еще та задача.
Go to the top of the page
 
+Quote Post
SFx
сообщение Aug 26 2009, 09:25
Сообщение #32


Знающий
****

Группа: Свой
Сообщений: 758
Регистрация: 11-07-05
Из: Понаехал (Мск)
Пользователь №: 6 688



DS2401 - вот решение. цена 1тыщи от 0.52$ но это ROM на 64 бита.
а если надо EEPROM - DS2431 чуть дороже, но тут уже целый килобит памяти.
Go to the top of the page
 
+Quote Post
SM
сообщение Aug 26 2009, 09:31
Сообщение #33


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Кстати еще решение - IMHO самое простое из всех. Не приписывать ID в pof для зашивки в EPCS, а шить pof отдельно, а потом, если есть какой-то интерфейс у устройства, шить через него (и ASMI) в эту же EPCS и ID.
Go to the top of the page
 
+Quote Post
x736C
сообщение Aug 26 2009, 09:32
Сообщение #34


Профессионал
*****

Группа: Участник
Сообщений: 1 273
Регистрация: 3-03-06
Пользователь №: 14 942



Цитата(DmitryR @ Aug 26 2009, 12:35) *
Если так, то бить следует того, кто при такой партии решил отдать распределение номеров на откуп тете Клаве.

Если партия небольшая в пару десятков, то можно и прошивок понастроить.
А если она больше, то точно что-то напутают.
Согласен с AJIEKCEu.

«А если ситуация такова, что этап присвоения этого ID проходит через дядю или тётю с соответствующей квалификацией..»
То это нетехнологичное некомильфо, Евгений Николаев.
И пайка только усугубит.
Считаю, что лучше постараться реализовать самому, как попытался автор темы, и не перекладывать на монтажника или еще какую-нибудь «бабусю».

«Работа с реальными эксплуатационщиками не раз разработчиков "спускала на землю"».
Работали, знаем. smile.gif Провода путают местами. А вы говорите, номера паяльником.
Go to the top of the page
 
+Quote Post
des00
сообщение Aug 26 2009, 11:41
Сообщение #35


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(SM @ Aug 26 2009, 04:31) *
Кстати еще решение - IMHO самое простое из всех. Не приписывать ID в pof для зашивки в EPCS, а шить pof отдельно, а потом, если есть какой-то интерфейс у устройства, шить через него (и ASMI) в эту же EPCS и ID.


+1 и через этот же разъем логику диагностики %) кстати по идее можно использовать jtag разъем, который к плис подключен.


--------------------
Go to the top of the page
 
+Quote Post
spectr
сообщение Sep 21 2010, 15:59
Сообщение #36


Местный
***

Группа: Свой
Сообщений: 285
Регистрация: 10-12-04
Из: Earth
Пользователь №: 1 437



Я что-то так и не понял - в итоге можно ли отдельно переписать USERCODE-регистр в JTAG'е?
Прочитать-то его можно без проблем, а вот записать?
То есть, идея какая - есть одна прошивка и сто микросхем (максов например). И есть скриптик.

Дядя Вася на заводе подключает девайс (с плисиной на борту), запускает скрипт, который (дергая необходимый сторонний софт) заливает сначала прошивку, а потом записывает какое-то уникальное для каждой микросхемы значение в регистр USERCODE.

Везде в сети написано про чтение этого регистра, но я так и не нашел ничего про его запись.
Прочитать его с помощью UrJTAG мне удалось. А вот как этот регистр ЗАПИСАТЬ - непонятно.

П.С.: знаю что его значение можно изменить при компиляции. Но это не мой вариант.

Спасибо!
Go to the top of the page
 
+Quote Post
XVR
сообщение Sep 22 2010, 09:05
Сообщение #37


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата
Я что-то так и не понял - в итоге можно ли отдельно переписать USERCODE-регистр в JTAG'е?
Нет, он закопан в битстриме. Можно сгенерить 2 битстрима с разными USERCODE, посмотреть где в них отличаются биты, а потом написать скрипт, который по этому месту будет прописывать в файл прошивки необходимый ID
Go to the top of the page
 
+Quote Post
disel
сообщение Sep 22 2010, 09:37
Сообщение #38


Знающий
****

Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410



Цитата(XVR @ Sep 22 2010, 13:05) *
Нет, он закопан в битстриме. Можно сгенерить 2 битстрима с разными USERCODE, посмотреть где в них отличаются биты, а потом написать скрипт, который по этому месту будет прописывать в файл прошивки необходимый ID


Я пробовал анализировать разные битстримы на предмет поиска положения USERCODE. Но то ли мозгов не хватило, то ли времени, но разобраться где USERCODE живет я не смог. А в документации все тихо по этому поводу.
Go to the top of the page
 
+Quote Post
XVR
сообщение Sep 22 2010, 12:52
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(disel @ Sep 22 2010, 13:37) *
Я пробовал анализировать разные битстримы на предмет поиска положения USERCODE. Но то ли мозгов не хватило, то ли времени, но разобраться где USERCODE живет я не смог. А в документации все тихо по этому поводу.
Увы, с Alter'ой не работал. У Xilinx'а местоположение регистра IDCODE задокументированно

Go to the top of the page
 
+Quote Post
disel
сообщение Sep 22 2010, 13:14
Сообщение #40


Знающий
****

Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410



Цитата(XVR @ Sep 22 2010, 16:52) *
Увы, с Alter'ой не работал. У Xilinx'а местоположение регистра IDCODE задокументированно


Так я про ксалинкс и писал. Только не про IDCODE, а про USERCODE. Джитагом его прочитать можно, а как найти в битстриме неясно.
Go to the top of the page
 
+Quote Post
XVR
сообщение Sep 22 2010, 19:58
Сообщение #41


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(disel @ Sep 22 2010, 17:14) *
Так я про ксалинкс и писал. Только не про IDCODE, а про USERCODE. Джитагом его прочитать можно, а как найти в битстриме неясно.
Покапаюсь в битстриме rolleyes.gif

Кстати, а почему бы просто не сгенерить новый битстрим с нужным ID? Это делается запуском bitgen с командной строки, т.е. сие действо можно автоматизировать скриптом. ISE конечно должен на машине стоять (хотя бы огрызок его), но запускать GUI совсем необязательно



Покопал битстрим. Похоже USERID записан внутри конфигурационного фрейма (в виде 2х половин по 16 бит и сдвинутый на 1 бит влево). Проблема в том, что позиция в файле видимо будет зависеть от прошивки и совершенно точно при изменении USERID меняется CRC фрейма, который тоже записан в битстриме sad.gif
Go to the top of the page
 
+Quote Post
disel
сообщение Sep 23 2010, 02:23
Сообщение #42


Знающий
****

Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410



Цитата(XVR @ Sep 22 2010, 23:58) *
Покапаюсь в битстриме rolleyes.gif

Кстати, а почему бы просто не сгенерить новый битстрим с нужным ID? Это делается запуском bitgen с командной строки, т.е. сие действо можно автоматизировать скриптом. ISE конечно должен на машине стоять (хотя бы огрызок его), но запускать GUI совсем необязательно

Меня интересовало не как генерить, а как его в битстриме найти. Как генерить я знаю. Ситуация такая: есть две платы (точнее две генерации одной платы), плис на них стоит одна и та же. Но окружение (синтезаторы, ддс, периферия разная) другое, ноги другие используются. Прошивки посылаются заказчику эл.почтой и заливаются в пзу через RS422. И вот сейчас у них оказались в руках обе платы одновременно. Заказчик раздолбай редкостный и чую, что начнут путать прошивки и писать нам что мы всякую лажу делаем.
Вот и хотелось бы зашить в битстрим какой-то признак, идентифицирующий прошивку. А микроблейз, который живет в плис и принимает прошивку по RS422, мог бы это несоответствие обнаружить. USERID для этого очень хорошо подходит.

Цитата(XVR @ Sep 22 2010, 23:58) *
Покопал битстрим. Похоже USERID записан внутри конфигурационного фрейма (в виде 2х половин по 16 бит и сдвинутый на 1 бит влево). Проблема в том, что позиция в файле видимо будет зависеть от прошивки и совершенно точно при изменении USERID меняется CRC фрейма, который тоже записан в битстриме sad.gif

Интересно. Я честно говоря тупо запустил поиск по целому USERID и не нашел. Поделитесь пожалуйста своими находками.
Go to the top of the page
 
+Quote Post
Gothard
сообщение Sep 23 2010, 04:51
Сообщение #43


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

Группа: Свой
Сообщений: 127
Регистрация: 16-02-07
Из: Долгопрудный
Пользователь №: 25 406



Цитата(SM @ Aug 26 2009, 12:40) *
Да не только потому. CRC фигня, а вот что-то добавить дополнительное, не зная формата... Это еще та задача.

Если CRC фигня, то можно закрепить ROM-lutы на конкретных местах (и оставить их там навсегда), сделать пару прошивок с разными значениями этих ROMов, чтобы найти, где они сидят в потоке и дальше дело техники, если вы знаете как посчитать CRC.
Типа реверсинжиниринг smile.gif

P.S. Но если предстоят обновления загрузок я бы так делать точно не стал smile.gif Лучше поставить что-то снаружи для хранения ID.

Сообщение отредактировал Gothard - Sep 23 2010, 04:55
Go to the top of the page
 
+Quote Post
iosifk
сообщение Sep 23 2010, 05:07
Сообщение #44


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Все прочитать не успел...
Я могу предложить для этой цели микросхему от Рамтрон - "процессор-компаньон"... Там есть все, чего не хватает ПЛИСке... Перечислять не буду...
И последний писк - рамтроновский чип с радиодоступом - RFID. Вот он как раз и планируется для идентификации плат...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
XVR
сообщение Sep 23 2010, 06:39
Сообщение #45


Гуру
******

Группа: Свой
Сообщений: 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 его проигнорирует (главное, что бы в нем не нашлось синхронизирующее слово rolleyes.gif )
Go to the top of the page
 
+Quote Post

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

 


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


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