СХЕМОТЕХНИКА И ПРОЕКТИРОВАНИЕ
УДК 621.3.049.771.16
Тестирование библиотек цифровых ячеек
С.А. Ильин
Национальный исследовательский университет «МИЭТ.»
Предложена методика тестирования библиотек стандартных цифровых ячеек в формате Liberty и Verilog при помощи специализированного программного обеспечения. Разработаны и описаны программные продукты, реализующие данную методику. Проведено сравнение эффективности применения данной методики с существующими методами тестирования.
Ключевые слова: библиотека стандартных элементов, верификация, тестирование.
Развитие микроэлектроники и острая конкуренция в последние десятилетия сделали актуальной задачу ускорения процесса разработки новых устройств и оптимизации маршрута «от идеи до готового устройства». Самые большие затраты времени и ресурсов приходятся на этапы отладки и исправления ошибок, возникновение которых часто обусловлено так называемым человеческим фактором, при этом чем позже ошибка будет обнаружена, тем больший ущерб она нанесет и сложнее будет ее исправить. Одним из возможных способов избежать ошибок на этапе проектирования является полная автоматизация процесса, которая заметно ускоряет процесс проектирования. Автоматизация открывает множество дополнительных направлений исследований, связанных с возможностью быстрого получения результатов и сравнения различных решений.
Одним из элементов автоматизированного маршрута синтеза цифровых устройств является библиотека стандартных цифровых элементов [1]. Наиболее важными представлениями библиотеки стандартных цифровых элементов являются форматы Liberty и Verilog. Файлы описания библиотек в форматах Liberty и Verilog - звенья процесса синтеза и содержат очень большой объем данных, отформатированных в соответствии с определенными правилами [2]. При современных технологиях изготовления ИС и соответствующих им объемах данных, содержащихся в библиотеках, на первый план выходит задача максимально автоматизировать процессы контроля получаемых результатов. Таким образом, актуальной становится задача разработки методики тестирования данных, содержащихся в файлах Liberty и Verilog, и построения маршрута реализации указанной методики.
Форматы входных данных. Каждый из форматов представления данных о библиотеке стандартных ячеек Liberty и Verilog решает определенные задачи и имеет свои особенности.
Библиотека в формате Verilog содержит описания ячеек, составленные в соответствии с форматом языка Verilog v. 1995/2001 [2, 3, 4]. Каждое описание содержит объяв-
© С.А. Ильин, 2013
ление модуля с уникальным названием, определение входов и выходов модуля, секцию, в которой описывается логика функционирования данной ячейки, секцию, где отражены ее площадь и нагрузочная способность и секцию, в которой показаны задержки при прохождении сигнала через ячейку от входа до выхода. В файле также содержится функционально-логическое описание всех логических примитивов, которые используются для описания логики работы ячеек. Кроме того, для каждой ячейки указываются шаг и точность моделирования (в единицах времени).
В отличие от описания библиотеки в формате Verilog, описание библиотеки в формате Liberty не связано с каким-либо языком описания аппаратуры и является самостоятельным форматом, предложенным фирмой Synopsys. Формат Liberty дает больше информации о функционировании конкретных ячеек, чем поведенческое описание. Данная особенность связана с тем, что в формате Liberty отражено больше параметров, для каждой ячейки описывается каждый вход/выход: мощность утечки, потребляемая мощность при различных сочетаниях входных воздействий, задержки при различных комбинациях входных воздействий, нагрузочной емкости и направления/длительности фронта, входная емкость контактов, площадь ячейки [5]. Указывается также информация, относящаяся к библиотеке в целом: при каких условиях проводилось моделирование, при каких сочетаниях нагрузочных емкостей и фронтов, единицы измерения величин в библиотеке и модели проводников (межсоединений). Описания даны в соответствии с общим форматом, единым для каждого конкретного типа ячеек (комбинационных, последовательностных, буферов и т.п.)
Таким образом, можно сказать, что два формата дополняют друг друга и позволяют проводить синтез и моделирование в конкретном базисе на различных уровнях абстракции (языке высокого уровня и технологическом уровне), что позволяет ускорить синтез и моделирование, предназначенные для предварительной оценки параметров проекта.
Разработка методики тестирования библиотек. Большой объем данных и сложная структура файлов представления библиотек стандартных ячеек в форматах Liberty и Verilog крайне затрудняют, а в некоторых случаях делают невозможной проверку их работоспособности разработчиком самостоятельно и требуют применения специальных методик, основанных на специализированных программных средствах.
Процесс тестирования можно разделить на два этапа [6]:
- тестирование представления библиотеки как файла определенного формата;
- тестирование корректности данных в разных представлениях библиотеки.
Тестирование представления библиотеки как файла определенного формата, содержащего данные о ячейках, проводится с целью выяснения синтаксической правильности структуры файла. Успешное прохождение подобного теста гарантирует, что использование данного файла в маршруте проектирования устройства не вызовет ошибок, но не гарантирует корректность представленных данных. Этот этап можно назвать тестированием при помощи САПР, в который входят: проверка синтаксиса; компиляция во внутреннее представление САПР; зачитывание данных программным продуктом.
Важным направлением тестирования библиотек является проверка правильности данных, представленных в отдельно взятом файле, и сквозная проверка всех созданных представлений. Для решения данной проблемы разработана следующая система тестов.
Тест на полноту - проверка наличия всех необходимых представлений и/или описаний ячейки. В применении к поставленной задаче тестирование на полноту означает, что необходимо получить информацию о наличии или отсутствии описания конкретной ячейки из списка в файле определенного формата или наличии/отсутствии файлов с
именем из списка и определенным расширением. Проводится анализ списка имен ячеек и в зависимости от режима работы определяется наличие их описания в файлах различного формата или в директории. Результатом работы является информация о том, ячейки с какими именами содержатся в одном файле и не содержатся в другом и наоборот, или сообщение о полноте библиотеки. Данный тест позволяет избежать ошибок, связанных с тем, что набор ячеек в разных представлениях неидентичен.
Тест целостности данных - проверка того, что данное представление ячейки содержит все необходимые данные и атрибуты. В применении к существующей задаче тест целостности данных - это тестирование описания ячейки на наличие всех необходимых значений и атрибутов. Тест частично пересекается по спектру решаемых задач с этапом тестирования при помощи САПР.
Тест корректности данных - проверка данных на корректность (корректность изменения данных, корректность значений величин). Тест представляет собой тестирование описаний ячеек на правильность содержащихся в них значений: проверку знака величины, ее равенства нулю (для того, чтобы избежать ошибок, связанных с делением на нуль) или нечисловому значению.
Тест сравнения - сравнение двух файлов и анализ содержащихся в них данных. Тест решает задачу функционально-логического тестирования, позволяя определить правильность функционирования ячеек, представленных в файлах разного формата (Liberty vs. Verilog) или в файлах одного формата, но различным образом (Verilog vs. Verilog, Liberty vs. Liberty).
Реализация методики тестирования библиотек при помощи специализированного программного обеспечения (ПО). В качестве языка программирования при создании программного продукта выбран язык Perl, обладающий наиболее широким и удобным набором конструкций для обработки данных, представленных в текстовом виде, что позволяет значительно упростить процесс формирования описаний.
Perl является одним из наиболее переносимых языков программирования и обеспечивает работоспособность программы практически во всех реально используемых операционных системах, таких как Unix, Linux, Mac OS X, и всех разновидностях Windows без какой-либо перекомпиляции.
Пакет прикладных программ реализует следующую функциональность:
- проверка атрибутов в Liberty-файле (area, leakage, library name, footprint и т.д.);
- проверка полноты наличия в Liberty-файле набора ячеек из списка;
- функционально-логическое тестирование комбинационных ячеек, содержащихся в Liberty-файле и Verilog-файле. Программа формирует файл тестовых воздействий и проверяет правильность функционирования ячейки, функция которой взята из Liberty-файла и ячейки, описание которой находится в Verilog-файле;
- сравнение двух Liberty-файлов. Программа решает задачу сравнения двух Liberty-файлов (эталонного и сравниваемого) и вычисления статистических показателей между значениями одинаковых параметров. Программа оперирует с относительными ошибками параметров в таблицах, вычисляя среднюю ошибку, определяя максимальную и минимальную ошибки, среднеквадратичное отклонение и вычисляя количество параметров, для которых относительное отклонение равно нулю, больше нуля и меньше среднего отклонения, больше среднего, но меньше суммы среднего значения и среднеквадратичного отклонения и больше суммы среднего значения и среднеквадратичного отклонения. Полученные данные позволяют установить, является ли сильное отклонение какого-либо параметра единичным выбросом (статистически незначимым) либо все параметры в ячейке или библиотеке отклоняются в определенном направлении одина-
ково. В совокупности с разработкой автоматизированного маршрута характеризации библиотек тестирование при помощи специализированного ПО позволяет разработчику быстро сравнивать полученные библиотеки и определять эффективность внесенных изменений. Реализация методики тестирования на примере маршрута характеризации библиотеки цифровых элементов показана на рисунке.
Реализация предложенной методики в маршруте создания представления библиотеки в формате Synopsys Liberty
Сравнение и анализ результатов внедрение методики тестирования библиотек. Наличие единой методики тестирования библиотек в совокупности с автоматизированным маршрутом позволяет практически полностью избежать ошибок, характерных для процесса, когда тестирование проводится вручную каждым разработчиком самостоятельно [6]. Для оценки эффективности предлагаемого маршрута можно рассмотреть работу скрипта, который проводит функционально-логическое тестирование ячеек, описанных в Liberty- и Verilog-файлах. Исследуемая библиотека содержала 274 ячейки, из которых 40% были уникальными, иными словами для них не существовало RTL-описаний. Затраты времени на тестирование можно оценить следующим образом: 1,5-2 ч на анализ Liberty-файла (поиск функции и создание RTL-описания для каждой уникальной ячейки), 20-30 мин на переделку уже сделанного RTL-описания для одного из вариантов и 30-40 мин на создание файла тестовых воздействий, запуск
моделирования и анализ результатов. Таким образом, общие затраты времени для библиотеки небольшого по промышленным меркам размера составят примерно 466 ч или 12 рабочих недель квалифицированного инженера. Автоматизированное ПО справляется с подобной задачей за 2,5-3 ч, автоматически формируя RTL-описания, файлы тестовых воздействий и анализируя результаты, полностью исключая возможность ошибки в связи с человеческим фактором, освобождая рабочее время проектировщика. Аналогичные выкладки по временным затратам получаются и для остальных программ.
Таким образом, методика тестирования делится на два этапа: тестирование при помощи средств САПР и тестирование при помощи специализированного ПО.
Разработанная методика тестирования данных, содержащихся в файлах Liberty и Verilog, и предложенный маршрут ее реализации позволяют при помощи специализированного программного обеспечения повысить эффективность тестирования библиотек цифровых ячеек.
Литература
1. Chavez-Martinez E.J., Chavez-MartinezM., Gurrola-Navarro M.A. Modified standard cell methodology for VLSI layout compaction // Electrical Engineering, Computing Science and Automatic Control (CCE): 9-th Intern. Conf. (Mexico, 26-28 of September 2012). - 2012. - P. 1-6.
2. Liberty User Guide, Volume 1, Version 2003.12. - December 2003. - P. 1011. - URL: www.synopsys.com. (дата обращения: 2.08.2012).
3. IEEE Standard Verilog Hardware Description Language, IEEE Std 1364-2001 (Revision of IEEE 1364-1995), 17 march, 2001. - 778 p.
4. Verilog - XL Reference, Product Version 3.3. - July 2001. - 566 p. - URL: www.cadence.com (дата обращения: 2 августа 2012 г.)
5. Hashimoto M., Fujimori K., Onodera H. Standard Cell Library with various driving strength cells for 0,13, 0,18, and 0,35 um technologies // Proc. of the ASP-DAC 2003 Asia and South Pacific (21-24 January 2003). - 2003. - P. 589-590.
6. Ильин С.А. Методика верификации библиотек стандартных цифровых элементов // Тез. докл. XVII Всерос. межвуз. конф. студентов и аспирантов «Микроэлектроника и информатика 2010». -М.: МИЭТ, 2010. - С. 77.
Статья поступила 2 августа 2012 г.
Ильин Сергей Алексеевич - аспирант кафедры проектирования и конструирования интегральных микросхем МИЭТ. Область научных интересов: разработка библиотек стандартных цифровых элементов, автоматизация маршрута разработки библиотек, автоматизация маршрута характеризации библиотек, характеризация библиотек, верификация и тестирование библиотек. E-mail: vermut.42@gmail.com