Jump to content

    

DFT для RAM

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

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

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

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

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

Edited by MickeyMouse

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
2 минуты назад, Aleх сказал:

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

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites
2 hours ago, MickeyMouse said:

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

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

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

2 hours ago, Aleх said:

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

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

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites
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, поэтому могу не знать каких-то банальных вещей.

 

Edited by MickeyMouse

Share this post


Link to post
Share on other sites

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

p.s.

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

Edited by Aleх

Share this post


Link to post
Share on other sites
В 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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites
18 minutes ago, Aleх said:

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

 

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

Share this post


Link to post
Share on other sites
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. 

Share this post


Link to post
Share on other sites
В 19.12.2019 в 21:55, Aleх сказал:

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

 

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

 

Share this post


Link to post
Share on other sites
12 hours ago, MickeyMouse said:

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

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this