Сетевой электронный научный журнал "СИСТЕМОТЕХНИКА", № 8, 2010 г.

 

Использование программных средств при тестировании  цифровых схем

 

Т.А. Деменкова

 

В статье рассматриваются вопросы тестирования с применением средств  автоматической генерации тестов, входящие  в состав современных САПР, которые используются при проектировании цифровых устройств на основе современной элементной базы.

 

  В настоящее время актуальной является проблема тестирования СБИС при реализации проектов цифровых схем на языках описания аппаратуры с использованием современных САПР.  Для обеспечения процесса тестирования цифровых СБИС недостаточно просто синтезировать тестопригодную  схему. Необходимо создать набор тестов, гарантирующих качественную проверку функционирования разрабатываемого устройства. Применение средств автоматической генерации тестов значительно облегчает решение этой задачи. Однако возможности современных средств изучены недостаточно и разработчики испытывают большие трудности ввиду отсутствия подробного описания процедур по использованию таких систем. В статье  рассматривается методика оценки тестового покрытия  цифровых СБИС,  основанная на опыте работы с  системой автоматической генерации тестов TetraMAX ATPG (Automatic Test Pattern Generation).

         Процесс генерации набора тестов включает в себя много различных аспектов, но с точки зрения рассматриваемой методики важен момент взаимосвязи системы TetraMAX ATPG и компилятора DFT Compiler. DFT Compiler, помимо синтеза тестопригодной схемы, также подготавливает данные о структуре сканирующих цепей и передает их в систему  TetraMAX ATPG. Наличие такой информации позволяет значительно ускорить процесс автоматической генерации тестов. Данные передаются в STIL-формате (IEEE 1450, Standart Test Interface Language), который содержит информацию о компонентах сканирующей цепи, тестовых выводах, описание процедуры инициализации цепи сканирования, а также требования к временным характеристикам тестовых сигналов и синхросигналов и ряд других ограничений.

На стадии разработки проекта необходимо заложить в него возможности для тестирования и выявления технологических дефектов. Для этого служат специальные средства САПР для логического синтеза тестопригодных проектов (Design-for-test). Далее происходит функциональная верификация проекта на соответствие выполняемых функций  спецификации. Итогом функциональной верификации являются функциональные векторы. Они представляют собой последовательность сигналов, снимаемых через определённый интервал времени с входов и выходов кристалла (временной срез). Далее необходимо сгенерировать специальные тестовые векторы для определения возможных дефектов кристалла на тестовом оборудовании. Этим занимаются специальные средства САПР, называемые ATPG (Automatic Test Pattern Generation). Следующими этапами являются размещение элементов, трассировка, и уже непосредственное изготовление кристалла дизайн-фабрикой.

До недавнего времени для проверки годности кристалла применяли только функциональные векторы. Образец устанавливался в тестовое оборудование и через него «прогонялись» функциональные векторы. Тем самым проверялась работоспособность кристалла. Сейчас на рынке САПР появились средства, которые позволяют быстро и качественно сгенерировать тестовые векторы для проверки трассировки и различных производственных дефектов на тестовом оборудовании.

Основной вопрос заключается в определении величины процента дефектов, которые  возможно выявить посредством функциональных векторов. Чтобы ответить на этот вопрос, необходимо взять функциональные векторы и прогнать их в среде ATPG. Так как функциональные векторы получаются после моделирования проекта средствами САПР, они имеют формат отличный от формата ATPG векторов. Для решения  задачи преобразования векторов разрабатываются специальные программы-конверторы для трансляции исходного формата (TBL) в формат, понятный среде ATPG (STIL).

Средства подготовки тестопригодных проектов, верификации и создания тестовых векторов представлены на рынке в основном тремя крупными производителями САПР: Cadence, Mentor Graphics и Synopsys. У компании Mentor Graphics для обеспечения проверки правил проектирования и анализа тестопригодности СБИС служит средство DFTAdvisor. Для автоматической генерации тестов предназначена система FastScan ATPG. Основа аппаратного проектирования в системе Сadence – платформа Incisive. Она представляет собой единую среду программно-аппаратного проектирования, отладки, верификации и генерации тестов для цифро-аналоговых СБИС. У компании Synopsys к средствам синтеза тестопригодных проектов можно отнести Design Compiler, DFT Compiler, BSD Compiler. Средство ATPGTetraMAX ATPG.

В рамках данной работы были использованы следующие средства САПР:

      - Графическая оболочка Design Vision компании Synopsys, включающая в себя средства Design Compiler, DFT Compiler и BSD Compiler ;

      - TetraMax ATPG компании Synopsys для автоматической генерации тестовых векторов;

      -  NC XLMode – среда логического моделирования компании Cadence.   

 

          Требования к среде  TetraMAX для оценки  тестового покрытия СБИС. Среда TetraMax в рамках предлагаемой методики должна обеспечивать выполнение следующих функций: импорт файла Netlist, импорт файла  тестового протокола (STIL Test Protocol File), импорт тестовых векторов, проверку функций проектирования тестопригодных проектов (Design-for-test),   автоматическую генерацию тестовых векторов (ATPG), сохранение тестовых векторов, протоколирование работы. Формат STIL – выходной формат программы-конвертора –  должен соответствовать стандарту IEEE 1450, Standard Test Interface Language. Формат Verilog  должен соответствовать стандарту IEEE 1364-2001 Verilog HDL Standard. В файлах этого формата сохраняются RTL-модели, нетлисты (netlist) и выходные векторы для тестового оборудования. Все тесты, RTL-модели и нетлисты должны храниться на жестком диске. Доступ к файлам должен осуществляться в соответствии с действующими ограничениями для конкретного разработчика.

Входные и выходные данные программы-конвертора и среды TetraMax должны контролироваться на корректность. При поступлении некорректных данных должно выводиться соответствующее сообщение. Должны быть предусмотрены контрольные точки в обработке данных и вывод их в файл для отслеживания правильного хода обработки информации.

Программа должна работать в однократном режиме. После осуществления одного цикла конвертирования или оценки программа завершает работу и сохраняет полученные результаты или выводит сообщение об ошибки.

        Анализ возможностей среды TetraMAX.  При создании методики оценки тестового покрытия СБИС были выделены и проанализированы  следующие основные особенности системы TetraMAX [1]:

   - возможность  чтения  netlist в форматах Verilog, VHDL , EDIF и информацию о тестовом протоколе в STIL формате;

         - возможность записи тестовых векторов в файл в наиболее распространённых стандартных форматах: WGL, STIL, Verilog, VHDL, Fujitsu TDL, TI TDL91 и Toshiba TSTL2;

       -  реализация  выбора режимов ATPG.

       Наличие нескольких режимов   автоматической генерации тестовых последовательностей позволяет формировать различные алгоритмы обнаружения ошибок в зависимости от структуры конкретной СБИС. 

       Режим Basic-Scan ATPG предназначен  для полностью сканируемых проектов. Его можно использовать  для проектов,  состоящих в большей степени из scan-элементов. Если проект частично состоит из scan-элементов,  то целесообразно сначала использовать этот режим для обнаружения большинства типичных ошибок, а потом воспользоваться другими вычислительными алгоритмами    

       Режим Fast-Sequential ATPG можно использовать  для ограниченной поддержки частично сканируемых проектов. Этот режим позволяет до 10 раз производить загрузку и выгрузку в сканирующую цепь таким образом,  чтобы данные могли проходить через разные несканируемые последовательные элементы проекта. Однако, все сигналы синхронизации и сброса (clock и reset) в несканируемых элементах должны подаваться с основных входов.

       Режим Full-Sequential ATPG можно включать для получения  максимального тестового покрытия в частично сканируемых проектах. Как и режим Fast-Sequential, Full-Sequential поддерживает многократные циклы загрузки/выгрузки данных, однако, сигналы синхронизации и сброса (clock и reset) в несканируемых элементах не обязательно должны подаваться с основных входов и нет никакого ограничения на число циклов загрузки/выгрузки. Этот режим также позволяет самостоятельно задавать длительность и вид синхросигнала, используя специальную процедуру.

        Последовательность работы в TetraMAX ATPG. ATPG работает с проектами, в которых были соблюдены все правила тестирования и к которым есть протокольный файл с описанием этих правил. Этот файл можно получить, используя средство  DFT Compiler или ему подобное.

Рис.1.

 

       Последовательность  работы в TetraMAX показана на рис.1. Для обеспечения успешной генерации тестов и получения покрытия необходимо знать следующую информацию:

- контакты синхронизации;

- контакты  асинхронной установки и сброса;

- контакты Scan-input и Scan-output для scan–цепочки;

- контакты, находящиеся в тестовом режиме, и их активное состояние;

- контакты,  осуществляющие сдвиг scan–цепочки, и их активное состояние;

- контакты управления двунаправленными шинами, и их активное состояние.

       Далее рассмотрим более подробно каждый шаг этого маршрута. Будет показано два способа выполнения каждой операции применительно к испытуемой СБИС.

        Загрузка Netlist

1.     Из командной строки командой read netlist:

read netlist /usr/export/K1116/Tmax/asic_ctg_opt_hold7.v

2.     Через оконный режим:

 - Нажать кнопку NetList на верхней панели инструментов основного окна  

   TetraMax, после чего откроется диалоговое окно Read Netlist (рис.3);

- В окне Netlist File Name(s) указать путь к файлу netlist;

- Все дополнительные опции можно оставить без изменений;

- Нажать кнопку Run.

read netlist /usr/export/K1116/Tmax/asic_ctg_opt_hold7.v

 

 

Рис.3.

        Загрузка библиотек

1.     Из командной строки командой read netlist с параметром - library

read netlist /raid/_/DesignKit/1X1/05SOI/Verilog/CORE05_SOI_3.v -library

read netlist /raid/_/DesignKit/1X1/05SOI/Verilog/PAD05_SOI_3.v -library

read netlist /raid/_/IP_Blocks/05SOI/ram2kx16_lib/ram2kx16.v -library

2.Через оконный режим:

- Нажать кнопку NetList на верхней панели инструментов основного окна

 TetraMax, после чего откроется диалоговое окно Read Netlist (рис.3);

- В окне Netlist File Name(s) указать пути к библиотекам;

- В дополнительных опция необходимо установить флаг Library Modules, все остальные опции можно оставить без изменений;

- Нажать кнопку Run.

          Задание параметра Black Box для сборки библиотеки ram2kx16

  выполняется посредством команды  set build -black_box ram2kx16.

    Сборка

1. Из командной строки командой run build_model: run build_model asic_m

2.Через оконный режим:

- Нажать кнопку Build на верхней панели инструментов основного окна TetraMax, после чего откроется диалоговое окно Build (рис.4);

- В поле Top Module Name ввести имя верхнего уровня (Top Level) проекта или модуля, который нужно собрать;

- Нажать кнопку Run.

Рис.4.

Проверка правил проектирования  (Design Rule Checking)

1.     Из командной строки:

set drc /usr/export/K1116/Tmax/ asic_ctg_opt_hold7.spf -noshadows

run drc

2.     Через оконный режим:

- Нажать кнопку DRC на верхней панели инструментов основного окна TetraMax, после чего откроется диалоговое окно DRC (рис.5);

- В поле Test Protocol File Name необходимо указать путь к файлу тестового протокола ( STIL test protocol file [ *.spf ] );

- Нажать кнопку Run.

    Также есть возможность создания, сохранения или правки уже готового spf – файла. Все необходимые манипуляции осуществляются в закладках Quick STIL и Write окна DRC.

         Во время исполнения каждой команды, TetraMax печатает подробные шаги выполнения команды и ее результаты. Если команда не выполнилась или выполнилась, но с некоторыми предупреждениями, то TetraMax пишет название и код ошибки или предупреждения соответственно. Далее приводится результат команды run drc. Как видно из общего отчета ( DRC Summary Report ), команда выполнилась с 72 предупреждениями из множества трех типов нарушений ( С17, Z4, Z9). Некоторые сообщения могут безопасно игнорироваться, некоторые могут быть решены через настройку определения процедуры, а другие требуют внесения изменений в проект. В TetraMax есть возможность просматривать многие  нарушения в графической среде GSV. Для этого необходимо нажать кнопку ANALYZE на GSV панели.

Рис.5.

 

       На рис.6 представлен вид диалогового окна Analyze.

 

Рис.6.

       Во вкладке Rules можно выбрать тип и номер нарушения и, после нажатия кнопки Ok , просмотреть конкретное место нарушения на схеме (рис.7.).

     В TetraMax  более чем 130 правил и они все сгруппированы по категориям. Каждое правило имеет идентификационный код (rule ID,) состоящий из символа, определяющего главную категорию, и следующего за ним  номера. Функционально все правила можно разделить  на 7 основных категорий:

- B (Build rules) Правила сборки;

- C (Clock rules) Правила подачи синхронизации;

- N (Netlist rules) Правила связанные с некорректностью Netlist`a;

- S (Scan trace rules for scan chain operation) Правила построения
 Scan-
цепи;

- V (Vector rules) Правила, связанные с форматом векторов;

- X (X- State rules) Правила, связанные с состоянием элементов;

                     - Z (Three-state rules) Правила для элементов с 3 состояниями.

 

Рис.7.

        

Настройка ATPG

Окно настройки ATPG состоит из 4-х вкладок:

- Основные настройки;

- Basic-Scan настройки;

- Full-Sequential настройки;

- Fast-Sequential настройки;

       Основные настройки ATPG:

·        Max Patterns –  можно указать максимальное количество генерируемых векторов;

·         Coverage % -  можно указать процент покрытия, по достижению которого ATPG остановится (от 1 до 100);

·        Capture Cycles – определяет количества циклов загрузки/выгрузки данных в scan-цепь (от 2 до 10). По умолчанию - 0;

·        Enable Full- Seq ATPG – определяет использовать ли режим Full- Sequential. Если эта функция активна, TetraMax сначала выполняет проверку в режимах Basic-Scan и Fast-Sequential, а потом только переходит к  Full-Sequential режиму. По умолчанию эта функция выключена;

·        Check Point – когда эта опция активирована, TetraMax периодически сохраняет сгенерированные векторы и список покрытых дефектов в файл. При активизации этого пункта открывается новое диалоговое окно, в котором можно указать интервал сохранения в файл промежуточных результатов (60 сек. минимум);

·        Store ATPG Patterns -  если эта опция активна, TetraMax сохранит результаты работы последней проверки в памяти программы;

·        Reset Bidis – эта опция определяет поведения при конфликтах на двунаправленной шине. По умолчанию она активна;

·        DI Analysis – определяет выполняет ли TetraMax косвенный анализ необнаруженных дефектов после завершения процесса ATPG;

·        Summary – Определяет вывод отчета по завершению процесса ATPG. Отчет  включает в себя подсчет векторов, тестового покрытия и дефектов.

          Настройки Basic-Scan, Full-Sequential и Fast-Sequential  используют идентичные опции:

·        Abort Limit -  можно установить предел циклов поиска тестовой последовательности для  одного дефекта;

·        Max Seconds/Fault – можно задать максимальное время поиска тестовой последовательности для одиночного дефекта;

·        Max Seconds/Run - можно задать максимальное время поиска тестовых последовательностей для всех дефектов;

·        Merge Effort -  когда TetraMax генерирует вектора, эта функция пытается объединить каждый новый вектор с предыдущим. При  успешном объединении векторов возможно увеличения покрытия дефектов без увеличения количества векторов;

          При первом запуске ATPG необходимо удалить, а потом добавить список возможных дефектов командами  remove faultsall    и     add faultsall  соответственно. Для автоматической генерации тестовых векторов производится установка флага в меню Pattern Source на пункте Internal или Random. Имеется  возможность загрузки внешних векторов (рис.8) путем выбора пункта External и указания в строке Pattern File Name заранее подготовленного файла с готовыми тестами в соответствующем формате. Загрузку можно произвести также через командную строку: set patterns external /usr/export/K1116/Tmax/finish/STIL/Register.stil

 

Рис.8.

 

Запуск ATPG

        Возможен запуск ATPG из окна Run ATPG или из командной строки командой run atpg. Результат выполнения этой команды показан на рис.9. Как видно из результатов, полученное тестовое покрытие составляет 20.88% и для этого потребовалось 203 тестовых вектора.

 

Рис.9.

 

        Для сохранения  полученных векторов необходимо воспользоваться кнопкой Write Pat на панели инструментов. Откроется диалоговое окно Write Patterns (рис.10). В строке Patterns File Name указывается путь и имя сохраняемого файла с векторами. В пункте Pattern Source необходимо выбрать векторы, которые должен сохранить TetraMax: внутренние или внешние. В меню File Format указывается формат, в котором записываются векторы.

     TetraMax поддерживает следующие форматы:

·        Binary : внутренний формат  TatraMax binary;

·        FTDL: Fujitsu TDL format. Этот формат только для записи. Прочить TatraMax их обратно не сможет;

·        STIL: Standard Test Interface Language.

·        TDL91: Texas Instruments TDL91 format. Этот формат только для записи. Прочить TatraMax их обратно не сможет;

·        TSTL2: Toshiba TSTL2 format. Этот формат только для записи. Прочить TatraMax их обратно не сможет;

·        Verilog Single File;

·        Verilog Tables;

·        VHDL;

·        VHDL93;

·        WGL: TSSI Waveform Generation Language format.

Так же сохранить тестовые вектора возможно из командной строки. Например:

write patterns /usr/export /Tmax/STIL/asic.stil    -replace   –external  -format stil

 

Рис.10.

 

         Автоматизация работы в TetraMAX. Можно автоматизировать ввод команд в TetraMAX путем  загрузки специального файла с заранее прописанными командами и их очередностью. Для этого необходимо вызвать окно Run Command File нажатием кнопки Cmd File на главной панели основного окна TetraMAX и указать файл с  последовательностью команд (рис.11). Другой вариант: при запуске графической среды TetraMax указать в параметрах запуска тот самый файл с последовательностью команд:  tmax tmax_list.cmd . Это позволяет ускорить процесс работы в TetraMax.

         Оценка тестового покрытия. После изучения возможностей и работы системы TatraMax, была проведена оценка тестового покрытия испытуемой СБИС. При генерации внутренних векторов ATPG давал покрытия около 21-25%. (рис.9). При проверке покрытия внешними векторами, полученными путём преобразования функциональных векторов в формат STIL, TetraMax показал покрытие около 25%. Для этого был создан специальный командный файл tmax.cmd. В составе этого файла  содержатся  имена файлов с функциональными тестами, полученными с помощью программы-конвертора,  и имена файлов с тестовыми векторами,  сохраненными после оценки покрытия  СБИС в формате  VERILOG_Single_file. Эти векторы в дальнейшем требуются для тестирования уже готовых образцов кристалла на тестовом оборудовании.

 

 

Рис.11.

 

 

              Для оценки времени тестирования  использовались  следующие программно-аппаратные средства:

     - файлы с функциональными тестами, полученные при помощи программы-конвертора;

- система TetraMAX ATPG;

- вычислительный комплекс на базе многопроцессорных станций с процессорами Opteron фирмы AMD.

         По приблизительной оценке время получения покрытия функциональными векторами в среде TetraMAX для испытуемой СБИС  составило  около 39 дней.

 

Заключение

        Рассмотренная методика  может использоваться для тестирования  СБИС с целью  выявления возможных ошибок проектирования и изготовления и получения данных о тестовом покрытии  с использованием программного обеспечения TetraMAX ATPG. Однако многие процедуры и подходы, описанные в работе, могут оказаться весьма полезными  при создании  алгоритмов работы с другими средствами  автоматической генерации тестов и значительно облегчить  решение этой задачи разработчикам цифровых СБИС.

 

                                               Литература

 

1. TetraMAX® ATPG User Guide, Version T-2002.09. September 2002. Document Order Number: 37043-000 NA.

2. Кравченко В., Радченко Д. Современные технологии RTL-синтеза в продуктах компании Synopsys. – «Электроника», 2005, №2,стр.66-69.

 

Сетевой электронный научный журнал "СИСТЕМОТЕХНИКА", № 8, 2010 г.