Перейти к содержанию
    

Имеется память RAM(TSMC)

Как ее дфтить ?

Что использовать ATPG или BIST ? Как потом это интегрировать с глобальным DFT который в виде скан цепочки ?

Какие тулы лучше mentor или cadence ? Я имею ввиду для вставки DFT и анализа ATPG

В теме DFT буквально пару недель поэтому столько вопросов...

Изменено пользователем MickeyMouse

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

DFT для памяти называется MBIST, это некая синтезируемая (soft-IP) тестовая структура, встраивемая в разрыв интерфейса памяти. Для управления использует собственный интерфейс, для которого еще нужен контроллер и тестовый порт, либо просто тестовые выводы микросхемы. У кэденса эта штука вставляется синтезатором (Genus), и есть еще отдельный тул у Ментора. Еще, можете этот MBIST написать сами: ничего сложного, по сути - просто автомат записи/чтения со сравнением результата и тестовым доступом к регустру команд и чтению статуса (результата теста). Итого, начните с изучения документации Генуса (он у Вас есть, если не путаю).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 минуты назад, Aleх сказал:

DFT для памяти называется MBIST, это некая синтезируемая (soft-IP) тестовая структура, встраивемая в разрыв интерфейса памяти. Для управления использует собственный интерфейс, для которого еще нужен контроллер и тестовый порт, либо просто тестовые выводы микросхемы. У кэденса эта штука вставляется синтезатором (Genus), и есть еще отдельный тул у Ментора. Еще, можете этот MBIST написать сами: ничего сложного, по сути - просто автомат записи/чтения со сравнением результата и тестовым доступом к регустру команд и чтению статуса (результата теста). Итого, начните с изучения документации Генуса (он у Вас есть, если не путаю).

А все-таки используют ли ATPG-скан вместо MBIST для памяти? Если скажем память не очень большая.

Имели ли Вы опыт работы с  Tessent ? Просто документация от ментора на порядок лучше

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@MickeyMouse ATPG предназначено для проверки логики и флопов/латчей, а не памяти. И работает по другому принципу - тесты задаются не внутренним автоматом, а снаружи, с тестера. При этом, думаю, можно совместить управление MBIST со сканами: организовать для MBIST последовательный тестовый порт и подключить его к одной из цепочек. Тогда управлять MBIST можно будет задвигая/выгружая векторы с тестера. Но, я далеко не гуру в этом вопросе, лучше спросить у @topor_topor , он вроде часто чипы с DFT делает.

С Ментором нет, не работал. Мне вообще чипы с DFT почти не попадались. Избыточно это: больше места, выше потребление, и т.д. - изделие проиграет конкурентам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, MickeyMouse said:

А все-таки используют ли ATPG-скан вместо MBIST для памяти? Если скажем память не очень большая.

Имели ли Вы опыт работы с  Tessent ? Просто документация от ментора на порядок лучше

ATPG вместо MBIST - это как? Память у Вас в каком виде?  На регистрах в исходниках и синтезируется вместе с остальным кодом? Или таки аналоговый IP?

2 hours ago, Aleх said:

Мне вообще чипы с DFT почти не попадались. Избыточно это: больше места, выше потребление, и т.д. - изделие проиграет конкурентам.

А разбраковывали как?  100% покрытие функциональными тестами или уже в приборе?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С Tessent когда-то у меня не опыт, а скорее проба была. Заняла неделю (неспешно) с 0 до моделирования нетлиста со вставленным MBIST. И еще время ушло на перегон части исходников (тех, где память вставляется и что задействуются для доступа к ней по иерархии до топа) с VHDL в verilog. Tessent вставляет свой код на verilog. Дальше обычный синтез с DFT или без. Управление MBIST можно через JTAG организовать, если есть.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 часов назад, Aleх сказал:

@MickeyMouse ATPG предназначено для проверки логики и флопов/латчей, а не памяти. И работает по другому принципу - тесты задаются не внутренним автоматом, а снаружи, с тестера. При этом, думаю, можно совместить управление MBIST со сканами: организовать для MBIST последовательный тестовый порт и подключить его к одной из цепочек. Тогда управлять MBIST можно будет задвигая/выгружая векторы с тестера. Но, я далеко не гуру в этом вопросе, лучше спросить у @topor_topor , он вроде часто чипы с DFT делает.

С Ментором нет, не работал. Мне вообще чипы с DFT почти не попадались. Избыточно это: больше места, выше потребление, и т.д. - изделие проиграет конкурентам.

Ну насколько я понимаю, основной аргумент против ATPG для памяти - это время  и объемы тестирования. Так то вроде ничего сложного в этом нет, задвинули данные на запись слова - выдвинули на чтение(+ возможно доп тестовый порт WR)... Кроме того в либах TSMС имеются два варианта для RAM : BIST (в виде обычных муксов на портах) и ATPG(видимо просто структурная модель, чтобы проверку на иксы проходить в модусе, пока не понял).

Ну понятно, буду с бистом разбираться. Интересует все-таки вопрос качества ATPG-тулов от тех кто имеет опыт в этом деле. По первому впечатлению модус хуже тисента.

14 часов назад, honinbo сказал:

С Tessent когда-то у меня не опыт, а скорее проба была. Заняла неделю (неспешно) с 0 до моделирования нетлиста со вставленным MBIST. И еще время ушло на перегон части исходников (тех, где память вставляется и что задействуются для доступа к ней по иерархии до топа) с VHDL в verilog. Tessent вставляет свой код на verilog. Дальше обычный синтез с DFT или без. Управление MBIST можно через JTAG организовать, если есть.

 

Мне наверно нет большого смысла организовывать управление через JTAG при наличии скановых цепей для ATPG. В таком случае я должен буду сначала гонять цепи, а потом подключаться через JTAG к бистам и их отдельно гонять. Ведь если отбросить проблему диагностики ошибок, то единственной задачей DFT является разбраковка. И в таком случае очень удобно будет все объединить в один заход для ATE.

Вот если потом еще затолкать весть DFT в JTAG - это сэкономит минимум один порт.

Повторюсь не имел опыта работы с  DFT, поэтому могу не знать каких-то банальных вещей.

 

Изменено пользователем MickeyMouse

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@MickeyMouse Вы не все верно поняли. 1. ATPG это скан-цепи, вставляемые в синтезируемую логику. Блок SRAM, очевидно, не синтезируемая логика, а хард-айпи, скан цепями его не прошить. Что имели ввиду TSMC, я не знаю, надо читать их доки. 2. В чипе даже средних размеров делают не одну, а сотни скан цепей, поскольку иначе получим проблемы с покрытием и длинной цепей. Более того, используют алгоритмы сжатия, снижая количество цепей до 1-2 десятков. Очевидно, что через JTAG более одной последовательной цепочки дергать не получится, поэтому нужно выводить интерфейс на тестовые пины. Часто ATPG прошивают уже поверх вставленного JTAG.

p.s.

Много лет назад я участвовал в проектировании пары маленьких микросхем, у каждой была всего одна скан-цепь, и доступ к ней через JTAG. Изврат жуткий. Ведь к каждому сгенеренному вектору добавлялась инструкция житага, чтобыэтот вектор задвинуть, а в считанном векторе надо было вычесть несколько бит. К тому же, приходилось специальным образом донастраивать генератор, чтобы векторы задвигались внутренними сигналами тап-контроллера житаг, которые дергаются несколько иначе, чем принято в ATPG. В общем, так делать не надо.

Изменено пользователем Aleх

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 21.12.2019 в 00:02, Aleх сказал:

@MickeyMouse Вы не все верно поняли. 1. ATPG это скан-цепи, вставляемые в синтезируемую логику. Блок SRAM, очевидно, не синтезируемая логика, а хард-айпи, скан цепями его не прошить. Что имели ввиду TSMC, я не знаю, надо читать их доки. 2. В чипе даже средних размеров делают не одну, а сотни скан цепей, поскольку иначе получим проблемы с покрытием и длинной цепей. Более того, используют алгоритмы сжатия, снижая количество цепей до 1-2 десятков. Очевидно, что через JTAG более одной последовательной цепочки дергать не получится, поэтому нужно выводить интерфейс на тестовые пины. Часто ATPG прошивают уже поверх вставленного JTAG.

p.s.

Много лет назад я участвовал в проектировании пары маленьких микросхем, у каждой была всего одна скан-цепь, и доступ к ней через JTAG. Изврат жуткий. Ведь к каждому сгенеренному вектору добавлялась инструкция житага, чтобыэтот вектор задвинуть, а в считанном векторе надо было вычесть несколько бит. К тому же, приходилось специальным образом донастраивать генератор, чтобы векторы задвигались внутренними сигналами тап-контроллера житаг, которые дергаются несколько иначе, чем принято в ATPG. В общем, так делать не надо.

 

Во текст из документации на tesetnt :

The ATPG tool does not test the internals of the RAM/ROM, although MacroTest (separately
licensed but available in the ATPG tool) lets you create tests for small memories such as register
files by converting a functional test sequence or algorithm into a sequence of scan tests.
For
large memories, built-in test structures within the chip itself are the best methods of testing the
internal RAM or ROM

Никто и не говорил про "прошить изнутри", вопрос лишь в возможности теста через подачу/прием тестовых векторов. По сути бист эту задачу и реализует, просто чтобы это сделать быстро источник входных вектров встраивают в чип в виде генератора случайных чисел, тут же делают проверку. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@MickeyMouse Так можно делать, но время тестирования памяти получится чудовищно большим. Представляете, сколько необходимо тестов памяти? Я как то заглянул в исходники такого теста и насчитал аж 83 пунка - бегущие единицы, 0xAAA-0x5555 и т.д. - по всем адресам. Если каждй тест пускать последовательными записями, работать будет оооочень медленно.

Когда то на заре, я написал тест JTAG boundary scan, который дергая лапки микросхемы считывал содержимое NVRAM, NAND флеша, и в довесок еще и SPI памяти. Почувствовал себя крутым, но .. ни разу не пригодилось, слишком медленно работало :-)  Это из той же серии - круто, но бестолково.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 minutes ago, Aleх said:

@MickeyMouse Так можно делать, но время тестирования памяти получится чудовищно большим. Представляете, сколько необходимо тестов памяти? Я как то заглянул в исходники такого теста и насчитал аж 83 пунка - бегущие единицы, 0xAAA-0x5555 и т.д. - по всем адресам. Если каждй тест пускать последовательными записями, работать будет оооочень медленно.

 

MBIST только запускается через JTAG (если вы выбрали этот способ) и выдает результат теста. Алгоритмы (те, что вы выбрали из стандартных или описали свой) теста прошиты внутри MBIST.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, honinbo said:

MBIST только запускается через JTAG (если вы выбрали этот способ) и выдает результат теста. Алгоритмы (те, что вы выбрали из стандартных или описали свой) теста прошиты внутри MBIST.

Коллега имел ввиду именно задание тестов через скан, а не управление мбистом:

The ATPG tool does not test the internals of the RAM/ROM, although MacroTest (separately
licensed but available in the ATPG tool) lets you create tests for small memories such as register
files by converting a functional test sequence or algorithm into a sequence of scan tests. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 19.12.2019 в 21:55, Aleх сказал:

Мне вообще чипы с DFT почти не попадались. Избыточно это: больше места, выше потребление, и т.д. - изделие проиграет конкурентам.

 

В 20.12.2019 в 00:02, honinbo сказал:

А разбраковывали как?  100% покрытие функциональными тестами или уже в приборе?

Присоединяюсь к вопросу, ограничиваетесь функциональными тестами? А если память большая есть ?

А есть еще кто-то кто использует DFT в каком-либо виде ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насколько я знаю, в отечественных компаниях, для памяти используют проверки искл. ИЛИ (XOR) состояния соседних топологических ячеек.

Они могут располагаться в адресном пространстве рядом друг с другом, в соседних ячейках для гражданских применений.

Либо соседние по топологии ячейки находятся  в разных байтах и даже банках. Это для военки и космоса.

Делается это для того, чтобы в случае попадания вот таких частиц, не нарушалась работа систем. А  была возможность исправить ошибки по CRC и прочим алгоритмам.

Для ОЗУ космических применений это должно делаться на этапе написания компилятора памяти.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 hours ago, MickeyMouse said:

Присоединяюсь к вопросу, ограничиваетесь функциональными тестами? А если память большая есть ?

Вместо ATPG - функциональные тесты, как и написал @honinbo. Конечно, покрытие низкое, но если чип с браком, то сыпется сразу куча мест. Память - самое уязвимое в чипе, ее проверять обязательно: вставляется MBIST, управляется через JTAG. Boundary scan - весьма желательно иметь, т.к. с пайкой косячат часто, особенно при ручном монтаже малых серий.

Итого, мы экономили в основном на ATPG,  ряд микросхем, что я делал, был без памятей, но почти везде был boundary scan. Поскольку с рекламациями тоже приходилось иметь дело, скажу следующее: boundary scan очень и очень себя оправдал, сами микросхемы браковались в основном по тестам памяти (сбой функционального теста при работающей памяти - редкость), но - скрывать не буду - было пару раз такое, что поступали рекламации по чипам, которые прошли отбраковку. Впрочем их могли и банально перегреть при ручном (де)монтаже, там история темная была. Другими словами, все зависит от конкретной ситуации: где то ATPG обязателен а где то достаточно и функциональных тестов. К примеру, некоторые продают не отдельные чипы, а собранные модули - там все значительно проще: микросхемы дополнительно тестируются в системе, покрытие очень высокое можно получить, да и периферия обычно заранее известна и не меняется. А если продавать не модули, а целые системы/приборы в сборе, то тестирование чипов на стороне разработчика и еще глубже получается. Как то так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...