|
JTAG, SVF формат данных, непонятка |
|
|
|
Jun 5 2009, 15:49
|
Частый гость
 
Группа: Участник
Сообщений: 76
Регистрация: 4-06-07
Пользователь №: 28 178

|
Цитата(SM @ May 19 2009, 21:01)  Поясните мне пожалуйста, зачем в SVF в HIR/HDR/TIR/TDR/SIR/SDR нужен параметр SMASK? Что по нему должно делаться? Я понимаю, что он обозначает маску незначащих бит во входном потоке данных. Но зачем это нужно? Ведь никаких сравнений со входным потоком не может производиться, он тупо прогружается в DR/IR. Уважаемый SM. Ниже представлен ответ моего коллеги, д-ра Ами Городецкого. Ответ на Ваш вопрос содержится в одной из статей нашего цикла введения в технологии граничного сканирования в журнале Производство Электроники, в номере 8 за 2007 год. Там, в частности, объяснено, что маска - это не параметр, а входной вектор данных, наряду со входным вектором TDI и вектором ожидаемых реакций схемы TDO. Цитирую: "Маской SVF называется вектор, состоящий из единиц и нулей, длина которого равна длине выходного вектора реакций, ожидаемого на контакте TDO в рамках данного оператора SVF. Разряд вектора реакций SVF, маска которого равна 1, является тестовым и предназначен для сравнения с соответствующим разрядом выходного вектора реакций, получаемого на TDO. Разряд вектора реакций SVF, маска которого равна 0, не является тестовым и сравниваться с соответствующим разрядом выходного вектора реакций на TDO не будет." Полная статья приложена, а все остальные статьи цикла мы Вам вышлем бесплатно, если Вы обратитесь к нам по адресу info@Start-Test.com. Удачи.
Сообщение отредактировал Leonid.K. - Jun 5 2009, 15:56
|
|
|
|
|
Jun 6 2009, 07:45
|
Частый гость
 
Группа: Участник
Сообщений: 76
Регистрация: 4-06-07
Пользователь №: 28 178

|
Цитата(SM @ Jun 5 2009, 19:02)  Спасибо, конечно, но это Вы рассказали про MASK, это и так ясно, и вопроса про MASK не было. А вопрос был про SMASK - о нем в статье вообще не упомянуто ни слова. "Это" я рассказал про любую маску в SVF: MASK - для выходного потока TDO, а SMASK - для входного потока TDI. Ваше непонимание роли масок следует из Вашей же фразы о том, что "он тупо прогружается в DR/IR" ... Стоит обратить внимание на то, что в технологии ГС ничего и никуда тупо не погружается! Вы представляете себе ГС-цепочку лишь из одного элемента, в этом случае Вам SMASK действительно ни к чему. Но если у Вас два и более элементов в цепочке, Вам необходимо указать, что именно во входном потоке к последующим элементам не имеет к ним никакого отношения, но является выходным потоком предыдущих - в этом смысл SMASK. В статье действительно многого нет и быть не может из-за ограничений объема журнальной статьи. За любыми дополнительными консультациями смело обращайтесь прямо к нам. Dr. JTAG (Ами Городецкий)
|
|
|
|
|
Jun 6 2009, 09:46
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Leonid.K. @ Jun 6 2009, 11:45)  "Это" я рассказал про любую маску в SVF: MASK - для выходного потока TDO, а SMASK - для входного потока TDI. Ваше непонимание роли масок следует из Вашей же фразы о том, что "он тупо прогружается в DR/IR" ... Стоит обратить внимание на то, что в технологии ГС ничего и никуда тупо не погружается! Извините, но Вы не поняли смысла сленгового словечка "тупо". Поясняю - это значит, что согласно спецификации SVF Rev.E все, что указано в параметре TDI будет выдвинуто с выхода TDO тап-контроллера. Цитата(Leonid.K. @ Jun 6 2009, 11:45)  "Это" я рассказал про любую маску в SVF: MASK - для выходного потока TDO, а SMASK - для входного потока TDI. Ваше Вы представляете себе ГС-цепочку лишь из одного элемента, в этом случае Вам SMASK действительно ни к чему. Но если у Вас два и более элементов в цепочке, Вам необходимо указать, что именно во входном потоке к последующим элементам не имеет к ним никакого отношения, но является выходным потоком предыдущих - в этом смысл SMASK. Опять же, по спецификации SVF Rev.E для этих целей задаются преамбула (header) HIR/HDR и постамбула (trailer) TIR/TDR. А не SMASK. И, к тому же, при проигрывании SVF-файла на TDO тап-контроллера не может физически ничего попасть, что является частью потока предыдущих, так как на TDO тап-контроллера выдается исключительно то, что указано в параметре TDI SVF-файла, а длина регистра сдвига тап-контроллера равна указанной в SVF в первом параметре SIR/SDR, и равна длине потоков TDO, TDI, MASK и SMASK (ну плюс еще регистры преамбулы и постамбулы, если они есть, они удовлетворяют тем же требованиям, но и для них тоже SMASK может быть). Так что вопрос остался полностью открыт - какие действия надо предпринимать в SVF-плеере с параметром SMASK. И я ожидаю ответа типа такого: "MASK накладывается по лог. И на принятый входной поток тап-контроллера и на поток, указанный в параметре TDO, после чего производится сравнение обоих потоков" вот, по аналогии с этим, что делать в плеере с SMASK? (в стандарте я этого просто не обнаружил)
|
|
|
|
|
Jun 6 2009, 11:05
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Oldring @ Jun 6 2009, 14:57)  IMHO игнорировать. Чтобы понять причины появления этого параметра нужно допрашивать авторов стандарта. Кому они хотели передавать информацию о том, что некоторые входные биты на результат теста не влияют? Ну так и у меня то же IMHO. Пока так и делаю. И вопрос у меня, собственно, именно такой - кому и зачем... Ну а допрос авторов стандарта, тоже IMHO, не реален  Одна из догадок, что это, возможно, полезно, если указан PIOMAP и хочется графически отобразить сигналы в случае ошибки, чтобы подсветить то, что значимое, и скрыть незначимое. Но это так, на уровне догадок.
|
|
|
|
|
Jun 6 2009, 13:28
|
Частый гость
 
Группа: Участник
Сообщений: 76
Регистрация: 4-06-07
Пользователь №: 28 178

|
Цитата(SM @ Jun 6 2009, 14:05)  Ну так и у меня то же IMHO. Пока так и делаю. И вопрос у меня, собственно, именно такой - кому и зачем... Ну а допрос авторов стандарта, тоже IMHO, не реален Одна из догадок, что это, возможно, полезно, если указан PIOMAP и хочется графически отобразить сигналы в случае ошибки, чтобы подсветить то, что значимое, и скрыть незначимое. Но это так, на уровне догадок. Господа. Не надо ломать головы и копья. В приложенных документах совершенно точно определены цели и задачи операнда SMASK. Наслаждайтесь.
Сообщение отредактировал Leonid.K. - Jun 6 2009, 13:46
|
|
|
|
|
Jun 6 2009, 20:42
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Leonid.K. @ Jun 6 2009, 17:28)  Господа. Не надо ломать головы и копья. В приложенных документах совершенно точно определены цели и задачи операнда SMASK. Наслаждайтесь. Господин, то, что в SMASK определяются биты входного (с точки зрения тестируемого устройства) потока, влияющие на результат тестирования и не влияющие - это и без Ваших документов понятно было. И привешивать спецификацию смысла не было никакого, она и так прочитана вдоль и поперек. Вы вообще вопрос-то читали? Я ведь не спрашивал, что определяет SMASK, я это знаю, я хочу получить ответ на вопрос "а зачем это нужно, и кому".
|
|
|
|
|
Jun 7 2009, 05:00
|
Частый гость
 
Группа: Участник
Сообщений: 76
Регистрация: 4-06-07
Пользователь №: 28 178

|
Цитата(SM @ Jun 6 2009, 23:42)  Господин, то, что в SMASK определяются биты входного (с точки зрения тестируемого устройства) потока, влияющие на результат тестирования и не влияющие - это и без Ваших документов понятно было. И привешивать спецификацию смысла не было никакого, она и так прочитана вдоль и поперек. Вы вообще вопрос-то читали? Я ведь не спрашивал, что определяет SMASK, я это знаю, я хочу получить ответ на вопрос "а зачем это нужно, и кому". Уважаемый, гуру SM. Читать вдоль и поперек, не всегда означает понимать прочитанное. Если Вам в лом просто сказать, спасибо, можете не говорить. Но если даже после прочтения спецификации от ASSET, написанной одним из разработчиков стандарта Беном Беннетом, Вы задаете подобные вопросы, боюсь, что ни уважаемый форум, ни Dr.JTAG Вам не помогут. Удачи в освоении матчасти.
|
|
|
|
|
Jun 7 2009, 08:14
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Leonid.K. @ Jun 7 2009, 09:00)  Если Вам в лом просто сказать, спасибо, можете не говорить. Мне не в лом сказать спасибо, если мне кто-то помогает. Но за вывешивания доков, которые и так на каждом углу висят, и не дают ответа на поставленный вопрос, извините, спасибо не будет. Что задает MASK - ответ они дают. Зачем нужен MASK - дают. Что задает SMASK - дают. А вот зачем нужен SMASK, как не крутите, не дают. И если Вы этого сами не знаете, так и не отвечайте доками, в которых об этом ни слова. Если Вы не читали спецификацию сами - вот привожу цитату про SMASK из нее: Цитата Specifies that TDI data is don't care, expressed as a hex string. A ‘1’ in a specific bit position indicates the TDI data in that bit position is a care. A ‘0’ indicates a don't care. If this parameter is not resent, the mask used will equal the last previously specified SMASK value specified for the SDR/SIR statement. SDR and SIR SMASK values are ”remembered” independently. If a scan command changes the length of the last scan of the same type and the SMASK parameter is absent, the smask pattern used is all cares. The SMASK will be used even if the TDI parameter is not present Да, тут описано как хранить SMASK и как вести себя при указании параметра и без указания, да, тут написано, что он обозначает незначащие биты в потоке TDI, но тут ни слова нет, а зачем все это нужно вообще. Больше в стандарте про SMASK ничего нет. Кроме порядка следования бит LSB->MSB.
|
|
|
|
|
Jun 7 2009, 09:12
|
Частый гость
 
Группа: Участник
Сообщений: 76
Регистрация: 4-06-07
Пользователь №: 28 178

|
Цитата(SM @ Jun 7 2009, 11:14)  Мне не в лом сказать спасибо, если мне кто-то помогает. Но за вывешивания доков, которые и так на каждом углу висят, и не дают ответа на поставленный вопрос, извините, спасибо не будет. Что задает MASK - ответ они дают. Зачем нужен MASK - дают. Что задает SMASK - дают. А вот зачем нужен SMASK, как не крутите, не дают. И если Вы этого сами не знаете, так и не отвечайте доками, в которых об этом ни слова. Если Вы не читали спецификацию сами - вот привожу цитату про SMASK из нее:
Да, тут описано как хранить SMASK и как вести себя при указании параметра и без указания, да, тут написано, что он обозначает незначащие биты в потоке TDI, но тут ни слова нет, а зачем все это нужно вообще. Больше в стандарте про SMASK ничего нет. Кроме порядка следования бит LSB->MSB. If a
new scan command is specified which changes the
length of the data pattern with respect to a previous
scan, the SMASK parameter must be specified, otherwise
the default SMASK pattern used is undefined and
is an error. The SMASK will be used even if the TDI
parameter is not present.
|
|
|
|
|
Jun 7 2009, 09:19
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Ну и что? Перевожу (если Вы сами не в состоянии):
Если в новой команде сканирования происходит смена длины потока, то должна быть указана новая SMASK, иначе будет взята SMASK, принятая по умолчанию. SMASK используется и в том случае, если не указан параметр TDI.
В моем плеере в процессе парсинга SVF-файла все полностью соответствует этому требованию. Если указана - берется указанная, если не указана - берется по умолчанию. Если TDI не указано - маску не сбрасываю, а оставляю.
Ну, блин, храню я ее в какой-то внутренней структуре, ну меняю я ее по этому правилу, НО ЗАЧЕМ ОНА НУЖНА? ГДЕ ЕЕ И ДЛЯ ЧЕГО ИСПОЛЬЗОВАТЬ?>
|
|
|
|
|
Jun 7 2009, 09:53
|
Частый гость
 
Группа: Участник
Сообщений: 76
Регистрация: 4-06-07
Пользователь №: 28 178

|
Цитата(SM @ Jun 7 2009, 12:19)  Ну и что? Перевожу (если Вы сами не в состоянии):
Если в новой команде сканирования происходит смена длины потока, то должна быть указана новая SMASK, иначе будет взята SMASK, принятая по умолчанию. SMASK используется и в том случае, если не указан параметр TDI.
В моем плеере в процессе парсинга SVF-файла все полностью соответствует этому требованию. Если указана - берется указанная, если не указана - берется по умолчанию. Если TDI не указано - маску не сбрасываю, а оставляю.
Ну, блин, храню я ее в какой-то внутренней структуре, ну меняю я ее по этому правилу, НО ЗАЧЕМ ОНА НУЖНА? ГДЕ ЕЕ И ДЛЯ ЧЕГО ИСПОЛЬЗОВАТЬ?> Если в новой команде сканирования происходит смена длины потока, то обязана быть указана новая SMASK, иначе будет взята неопределенная SMASK, принятая по умолчанию, что является ошибкой. SMASK используется и в том случае, если не указан параметр TDI.
А нужно это для того, чтобы при "проталкивании" данных с TDO предыдущего элемента цепочки на TDI следующего Ваш SVF player позаботился о том, чтобы туда вошли только значащие биты. Это своего рода внутренний КПП. В отличии от SMASK, MASK является внешним КПП, контроллирующим поток данных на TDO последнего элемента в цепочке.
|
|
|
|
|
Jun 7 2009, 10:24
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Leonid.K. @ Jun 7 2009, 13:53)  Если в новой команде сканирования происходит смена длины потока, то обязана быть указана новая SMASK, иначе будет взята неопределенная SMASK, принятая по умолчанию, что является ошибкой. SMASK используется и в том случае, если не указан параметр TDI.
Ой-ой-ой, и где же это сказано, что неуказание SMASK и использование значения по умолчанию является ошибкой? Только не своими словами, а цитату плиз. Во всех SVF файлах, которые генерят мне средства разработки альтеры и lattice я вообще ни одного SMASK никогда не видел, и везде использовано значение по умолчанию. И SMASK по умолчанию отнюдь не неопределенная, в все единицы. If a scan command changes the length of the last scan of the same type and the SMASK parameter is absent, the smask pattern used is all cares.Цитата(Leonid.K. @ Jun 7 2009, 13:53)  А нужно это для того, чтобы при "проталкивании" данных с TDO предыдущего элемента цепочки на TDI следующего Ваш SVF player позаботился о том, чтобы туда вошли только значащие биты. Это своего рода внутренний КПП. Можно как-то по-русски, чтобы понятно было? На конкретном примере. Вот пример: HIR 5 TDI(1F); TIR 8 TDI(FF); ... ... ... SIR 8 TDI(5C) SMASK(F3); Я выталкиваю с TDO моего тап контроллера последовательность из 5 бит единиц HIR, потом 8 бит (в порядке их следования от LSB к MSB 0,0,1,1,1,0,1,0), потом 8 бит единиц TIR. Куда конкретно мне применить этот SMASK (F3) и как.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|