Jump to content

    

Recommended Posts

Имеется память 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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this