Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Присвоение ID ПЛИС'е
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Страницы: 1, 2
Moks
Добрый день!
Есть ли у кого опыт решения задачки присвоения ID номера микросхеме? Хочется сделать это не меняя какую-либо константу в программе, а просто прошивочным (программаторским) методом, минуя "залезания" в код.
Ведь рано или поздно запустится серия и так хочется делать всё быстро и проще!
Нет никаких идей, а?
Заранее благодарен за возможные пути решения задачки!
Используем Cyclone II и Quartus II.
rolleyes.gif
Kuzmi4
2 Moks - ниос есть/нет ?
DmitryR
Впаять рядом DS28CM00. В каждой микрухе - свой код, интерфейс I2C, корпус микроскопический. Или переходить на Spartan-3A - там ID зашит в самой ПЛИС.
AJIEKCEu
Как вариант, аналогично DmitryR

DS1990 правда интерфейс 1-wire - чуть сложнее, но не особо. Зато может дешевле будет.

Но прошивка константы в ПЛИС - тоже интересно.
Moks
Цитата(AJIEKCEu @ Aug 25 2009, 11:36) *
Но прошивка константы в ПЛИС - тоже интересно.

Вот и мне интересно, читаю, пытаюсь понять пути решения задачки!

Цитата(DmitryR @ Aug 25 2009, 11:30) *
Впаять рядом DS28CM00. В каждой микрухе - свой код, интерфейс I2C, корпус микроскопический. Или переходить на Spartan-3A - там ID зашит в самой ПЛИС.

Спасибо, но пока что переход на Xilinx не рассматриваем!

Цитата(DmitryR @ Aug 25 2009, 11:30) *
Впаять рядом DS28CM00. В каждой микрухе - свой код, интерфейс I2C, корпус микроскопический. Или переходить на Spartan-3A - там ID зашит в самой ПЛИС.

Да, но тогда надо и DS28CM00 программировать отдельно ... А это ещё одна операция ...
AJIEKCEu
Цитата(Moks @ Aug 25 2009, 11:49) *
Да, но тогда надо и DS28CM00 программировать отдельно ... А это ещё одна операция ...

Насколько я понимаю, там уже прошит некий уникальный номер и его нельзя изменить.

Если вы хотите иметь "СВОИ" номера, то надо вести базу соответствия:
некий уникальный номер не по порядку <> свой красивый номер
Moks
Задача-то состоит в том, что все устройства объединены в систему, у них каждый свой ID (читай "адрес") ... И вот уж больно хочется его быстро прошивать ... (Пускай хоть с участием д. Васи с журнальчиком, в который он записывает что и куда программировал) wink.gif )
Предложенные вами микросхемы, как мне кажется, не особо подходят под данную задачку ...
AJIEKCEu
Цитата(Moks @ Aug 25 2009, 12:08) *
Задача-то состоит в том, что все устройства объединены в систему, у них каждый свой ID (читай "адрес") ... И вот уж больно хочется его быстро прошивать ... (Пускай хоть с участием д. Васи с журнальчиком, в который он записывает что и куда программировал) wink.gif )
Предложенные вами микросхемы, как мне кажется, не особо подходят под данную задачку ...

Если ваш ID - изначально задан внешними условиями - то да - микросхемы не подходят.

Но если сам ID не важен, а важна его уникальность - то микросхемы вариант. Ну как например MAC-адрес у сетевой карты.
SM
А откуда грузится ПЛИСка? Вариант - сделать блок ОЗУ, где хранится этот код, ну и расхачить формат SOF-файла в части поиска тех бит, куда попадет этот код (из данных инициализации ОЗУ, а так же CRC этого блока. После чего патчить SOF-ник.
Kuzmi4
Если есть ниос - когда то этот вопрос довольно детально разжёвывался на ниосфоруме страниц на 5 обсуждение было, можно там пошарится..
SM
Цитата(AJIEKCEu @ Aug 25 2009, 12:13) *
Но если сам ID не важен, а важна его уникальность - то микросхемы вариант. Ну как например MAC-адрес у сетевой карты.

Неудачный пример. MAC-адреса имеют стандартизованный формат, и каждому вендору выделяется вполне определенный диапазон.
x736C
Moks, доступ через дизайн к константе не планируете?
Если нет, тогда JTAG Usercode.
Для смены usercode проект каждый раз нужно будет пересобрать.

Хотя этот способ вам не очень-то подходит, так как вам нужно уникальный номер для каждой микросхемы, а не для прошивки.
Замучаетесь компилировать под каждую микросхему. Но если патчить прошивку на предмет смены номера, то именно этот usercode, имхо.
Moks
Цитата(SM @ Aug 25 2009, 12:27) *
А откуда грузится ПЛИСка? Вариант - сделать блок ОЗУ, где хранится этот код, ну и расхачить формат SOF-файла в части поиска тех бит, куда попадет этот код (из данных инициализации ОЗУ, а так же CRC этого блока. После чего патчить SOF-ник.

ПЛИС будет точно грузиться с EPCS4 ... Вот и мне надо сделать так, чтобы конфигурационная программа уже имела номер ID. Но чтоб этот номер присваивался не залезанием в VHDL код (мы на нём пишем), а гораздо проще ... Чтоб любой дядя Вася/Петя или тётя Клава/Марфа могли быстренько присвоить номер ...
DmitryR
Если вам необходимо именно самому с помощью тети Клавы присваивать номер - тогда как сказал SM:
1а. Ставите в проект небольшое ПЗУ
1б. Добавляете во флэшку блок данных.
2. Определяете, где в файле прошивки находится этот код, и пишите на С небольшую утиль по его замене с интерфейсом, понятным тете Клаве.
3. Тетя Клава этой утилью патчит прошивку и прошивает флэшку.
3а. Дизайн читает ID из ПЗУ
3б. Дизайн читает ID из serial flash loader.

Если же партия большая - то можно поставить на плату EEPROM в панельку (в DIP корпусе). Тетя Клава присваивает номер, прошивает его на программаторе в EEPROM (интерфейс у них обычно доступный для понимания) и втыкает EEPROM в панельку. При больших количествах стоимость программатора EEPROM не будет заметна.
Moks
Примерно понятно, спасибо. Значит, без дополнительных операций не обойтись никак ...
AJIEKCEu
Цитата(SM @ Aug 25 2009, 12:40) *
Неудачный пример. MAC-адреса имеют стандартизованный формат, и каждому вендору выделяется вполне определенный диапазон.

Ну именно в этой части - да некорректный пример.

Но в то же время, определенный диапазон вендору выделяется только для того, чтобы не следить за уникальностью адреса во всем мире. Вендору выделили диапазон - он сам внутри своего диапазона гарантирует уникальность.

А по большому счету никакой дополнительной нагрузки не несет smile.gif Если все маки в мире перемешать, сохранив уникальность, все останется работать smile.gif


А после битового потока записать ID в EPCS4?
Слегка похимичить с тем, чтобы после загрузки ПЛИСа её из ПЛИСа же читать можно было....
SM
Цитата(AJIEKCEu @ Aug 25 2009, 15:47) *
А после битового потока записать ID в EPCS4?
Слегка похимичить с тем, чтобы после загрузки ПЛИСа её из ПЛИСа же читать можно было....


Воткстатида. И задействовать альтерский ASMI для его чтения.
spectr
Э народ вы че, какие нафиг ПЗУ для идентификатора прошивки/плиса? smile.gif Все делается элементарно - пишется TCL-скрипт, который автоматически запускается при каждой компиляции первым (до начала анализа/синтеза), который генерит например верилоговский файлик с константой (индекс, дата, что угодно хотите), а он уже подцеплен к проекту. В итоге - имеем четкое разделение одной прошивки от другой, регистр (или даже целый банк памяти) с идентификатором не только ПЛИСки, но и еще кучей другой информации... И никаких ниосов, внешних флэшек и тому подобного smile.gif Пример есть у Альтеры - http://www.altera.com/support/examples/tcl...s=tcl%20version
SM
Цитата(spectr @ Aug 25 2009, 21:01) *
Э народ вы че, какие нафиг ПЗУ для идентификатора прошивки/плиса? smile.gif Все делается элементарно - пишется TCL-скрипт, который автоматически запускается при каждой компиляции первым

Эт Вы чего??? Какие нафиг компиляции на производстве? Для каждого экземпляра пустить синтез, да еще и производственникам все исходники дать, и квартус полный поставить? Должно быть подключил, нажал кнопку, десяток секунд, все прошито, следующий...
EvgenyNik
А каково должно быть разнообразие этих ID-номеров? Иными словами - какова разрядность этого читайте "адреса"?
Может быть банально сделать несколько перемычек на плате типа SMT (например 4 штуки или 8), подключить одним контактом к GND, другим - к свободным пинам. Пины подтянуть внутри к Vdd, а дядя или тётя просто будут паяльником "программировать" этот ID...
Компонентов не надо, при зазоре 0.25 две площадки замечательно перемыкаются обычным припоем.
1. Элементарно просто
2. Наглядно читается код визуальным способом (для дяди можно шелкографией надпись сделать ID=128(J7)+64(J6)+.... )
sazh
Цитата(Евгений Николаев @ Aug 25 2009, 22:27) *
Компонентов не надо, при зазоре 0.25 две площадки замечательно перемыкаются обычным припоем.


А ОТК пропустит?
SM
Цитата(sazh @ Aug 25 2009, 22:33) *
А ОТК пропустит?

ДолжОн. SMD-джампер это древнее как мир стандартное решение. Круглый пад с прорезью.
sazh
Цитата(SM @ Aug 25 2009, 22:45) *
ДолжОн. SMD-джампер это древнее как мир стандартное решение. Круглый пад с прорезью.

Может я чего не догоняю. Но припой как таковой в перечень элементов не внесешь.
А резистор как перемычку - наверно можно.
x736C
А зачем его вносить?
В документацию на технологию можно внести.

Только мне кажется джамперами задавать ID не комильфо.
Не технологично как-то.
Это что ж за серия такая? Под такую серию можно нагенерить одинаковых прошивок с разными номерами, как выше советовали.
SM
Цитата(sazh @ Aug 25 2009, 23:05) *
Может я чего не догоняю. Но припой как таковой в перечень элементов не внесешь.

А и не надо. Если плата например маркируется краской, то краску тоже в перечень элементов вносить? А на схеме их можно обозначить как контрольные точки например, или еще как, тут уже в каждом конкретном тяжелом случае по-своему.
ReAl
Цитата(sazh @ Aug 25 2009, 22:05) *
Может я чего не догоняю. Но припой как таковой в перечень элементов не внесешь.
В перечень элементов не надо. Надо в спецификацию в раздел "материалы".
Кстати, если проволочные перемычки "на ходу" монтажником делаются, а не на подготовительном участке (или если на подготовительном, но влом на них чертёж делать) - то тоже туда же грубо "проволока медная лужёная такая-то - 15мм"
И на сборочный чертёж в примечания - "перемычки такие-то соеднить припоем таким-то согласно инструкции такой-то".
Но я бы в sof полез бы - в ROM-блок или в саму epcs-ку после прошивки, как тут предлагали.
EvgenyNik
Цитата
Только мне кажется джамперами задавать ID не комильфо. Не технологично как-то.

Эта Вам не технологично и это, как Вы сказали то... не комильфо smile.gif
А если ситуация такова, что этап присвоения этого ID проходит через дядю или тётю с соответствующей квалификацией, то такой метод ещё и фору даст всем внешним ППЗУ и EPCS-контроллерам. Работа с реальными эксплуатационщиками не раз разработчиков "спускала на землю".
AJIEKCEu
Цитата(Евгений Николаев @ Aug 26 2009, 08:24) *
А если ситуация такова, что этап присвоения этого ID проходит через дядю или тётю с соответствующей квалификацией, то такой метод ещё и фору даст всем внешним ППЗУ и EPCS-контроллерам. Работа с реальными эксплуатационщиками не раз разработчиков "спускала на землю".

Это вы зря. Человеческий фактор надо исключать. А потом, если устройств предполагается 64К?
16 перемычек? А если больше?

И потом, эксплуатационщики и производители - разные понятия.

Самое нормальное - в конец прошивки флешки добавлять.
Вся сложность - в ПЛИСе поддержать вычитывание ID.
SM
Цитата(AJIEKCEu @ Aug 26 2009, 11:40) *
Самое нормальное - в конец прошивки флешки добавлять.
Вся сложность - в ПЛИСе поддержать вычитывание ID.


IMHO с точностью до наоборот. Вычитывание в ПЛИСе через ASMI полностью документировано и несложно. А вот добавление в конец прошивки чего-то в .pof-файл это хакерская работка еще та.
DmitryR
Цитата(AJIEKCEu @ Aug 26 2009, 11:40) *
А потом, если устройств предполагается 64К?

Если так, то бить следует того, кто при такой партии решил отдать распределение номеров на откуп тете Клаве.

Цитата(SM @ Aug 26 2009, 12:25) *
А вот добавление в конец прошивки чего-то в .pof-файл это хакерская работка еще та.
И все потому, что там есть CRC.
SM
Цитата(DmitryR @ Aug 26 2009, 12:35) *
И все потому, что там есть CRC.

Да не только потому. CRC фигня, а вот что-то добавить дополнительное, не зная формата... Это еще та задача.
SFx
DS2401 - вот решение. цена 1тыщи от 0.52$ но это ROM на 64 бита.
а если надо EEPROM - DS2431 чуть дороже, но тут уже целый килобит памяти.
SM
Кстати еще решение - IMHO самое простое из всех. Не приписывать ID в pof для зашивки в EPCS, а шить pof отдельно, а потом, если есть какой-то интерфейс у устройства, шить через него (и ASMI) в эту же EPCS и ID.
x736C
Цитата(DmitryR @ Aug 26 2009, 12:35) *
Если так, то бить следует того, кто при такой партии решил отдать распределение номеров на откуп тете Клаве.

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

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

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


+1 и через этот же разъем логику диагностики %) кстати по идее можно использовать jtag разъем, который к плис подключен.
spectr
Я что-то так и не понял - в итоге можно ли отдельно переписать USERCODE-регистр в JTAG'е?
Прочитать-то его можно без проблем, а вот записать?
То есть, идея какая - есть одна прошивка и сто микросхем (максов например). И есть скриптик.

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

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

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

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


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

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


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

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



Покопал битстрим. Похоже USERID записан внутри конфигурационного фрейма (в виде 2х половин по 16 бит и сдвинутый на 1 бит влево). Проблема в том, что позиция в файле видимо будет зависеть от прошивки и совершенно точно при изменении USERID меняется CRC фрейма, который тоже записан в битстриме sad.gif
disel
Цитата(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 и не нашел. Поделитесь пожалуйста своими находками.
Gothard
Цитата(SM @ Aug 26 2009, 12:40) *
Да не только потому. CRC фигня, а вот что-то добавить дополнительное, не зная формата... Это еще та задача.

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

P.S. Но если предстоят обновления загрузок я бы так делать точно не стал smile.gif Лучше поставить что-то снаружи для хранения ID.
iosifk
Все прочитать не успел...
Я могу предложить для этой цели микросхему от Рамтрон - "процессор-компаньон"... Там есть все, чего не хватает ПЛИСке... Перечислять не буду...
И последний писк - рамтроновский чип с радиодоступом - RFID. Вот он как раз и планируется для идентификации плат...
XVR
Цитата(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 )
disel
Цитата(XVR @ Sep 23 2010, 10:39) *
Как видим ID лежит 2 частями по адресам 32E39 (3 байта) и 32FBD (3 байта) Возможно еще были переставленны биты. CRC лежит с 452BA (2 байта)
Увы, для другой прошивки адреса могут уехать

Спасибо. Интересно, положение в битстриме для одного типа микросхем постоянно или нет? Сегодня поэкспериментирую.

Цитата(XVR @ Sep 23 2010, 10:39) *
Сделайте у прошивки свой заголовок (с ID), при заливке проверяйте его и выбрасывайте (во FLASH его писать не надо)
Да даже можно и записать, FPGA его проигнорирует (главное, что бы в нем не нашлось синхронизирующее слово rolleyes.gif )

Такая мысль была сразу, но это надо не забыть запустить скрипт, которые припишет заголовок. А это человеческий фактор, могу ведь и забыть при очередной генерации прошивки. А с USERID все автоматически.
des00
Цитата(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" не катит?
XVR
Цитата(disel @ Sep 24 2010, 06:29) *
Спасибо. Интересно, положение в битстриме для одного типа микросхем постоянно или нет? Сегодня поэкспериментирую.
Декодировал битстрим. ID лежит внутри фрейма (ISE сгенерил один большой фрейм). Уверен, что положение внутри одного отдельного фрейма (а не внутри той пачки, которая записана в битстриме) будет постоянна (и адрес фрейма будет фиксирован). Но вот положение внутри самого образа битстрима точно будет плавать
Цитата
Такая мысль была сразу, но это надо не забыть запустить скрипт, которые припишет заголовок. А это человеческий фактор, могу ведь и забыть при очередной генерации прошивки. А с USERID все автоматически.
Скрипт тоже можно запускать автоматически

disel
Цитата(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) *
Скрипт тоже можно запускать автоматически

А как?
XVR
Цитата
Скрипт тоже можно запускать автоматически
А как?
Как вариант весь синтез можно запускать с командной строки (из скрипта). ISE GUI вообще не открывать. Утилита xflow.
Как врезать запуск скрипта внутрь ISE не исследовал, (но TCL там есть, так что может быть и можно)

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