- •Введение
- •Раздел 1 Технологии тестирования и верификации цифровых систем на кристаллах
- •1.1. Современные проблемы верификации систем-на-кристаллах
- •1.2. Моделирование на уровне транзакций
- •1.3. Верификация на основе ассерций
- •1.4. Синтез ассерций
- •1.5. Средства верификации цифровых систем с использованием ассерций
- •1.6. Постановка цели и задач диссертационного исследования
- •Раздел 2 модели диагностирования функциональных нарушений hdl-кода цифровых систем на кристаллах
- •2.1. Введение в тему исследования
- •2.2. Модель процессов тестирования и верификации
- •2.3. Модель поиска функциональных нарушений в программе
- •2.4. Дискретная производная как бинарное xor-отношение
- •2.5. Выводы и рекомендации
- •Раздел 3 методы диагностирования функциональных нарушений
- •3.1. Форма представления модели
- •3.2. Метод векторно-логического анализа столбцов
- •3.3. Метод векторно-логического анализа строк
- •3.4. Матричный метод поиска функциональных нарушений в программных блоках
- •3.5. Выводы и рекомендации
- •Раздел 4 инфраструктура встроенного тестирования функциональных нарушений hdl-кода
- •4.1 Мультипроцессорные решения задач сервисного обслуживания
- •4.2. Мультиматричный процессор анализа бинарных операций
- •4.3. Аппаратная реализация мультиматричного процессора
- •4.4. Аппаратная имплементация инфраструктуры тестирования
- •4.5. Система тестирования и верификации hdl-кода
- •4.6. Выводы и рекомендации
- •Заключение
- •Приложение б. Подробный отчёт синтеза
- •Приложение в. Аппаратная имплементация инфраструктуры тестированиия
- •Приложение г. Документы, подтверждающие внедрение
- •Список использованных источников
4.4. Аппаратная имплементация инфраструктуры тестирования
Предполагает реализацию на FPGA инфраструктуры тестирования и диагностирования, представленной на рис. 4.3. При этом используются функциональные примитивы (ядра) для выполнения регистровых и матричных операций, синтезированные ранее. Из четырех блоков, представленных на упомянутом рис. 4.3, далее реализуются блок диагностирования и оптимизации, суть которого – минимизация мощности строк HDL-кода, в котором существует функциональное нарушение или семантическая ошибка, необнаруженная компилятором.
Результаты синтеза для модуля диагностирования представлены в виде распечатки или протокола синтез (Приложение В.1). Результаты синтеза модуля оптимизации представлены в виде распечатки или протокола синтеза (Приложение В.2).
Блок выполнения операций имеет три ступени конвейера: чтение данных, обработка данных, передача результата в память данных, которые представлены на рис. 4.18.
Разрядность шин данных масштабируется. Значения M=4 и N=4 выбраны для удобства проектирования и тестирования архитектуры устройства. Окончательные размеры выбираются на этапе 6 оптимизации размеров устройства.
Блок содержит регистры:
R0 – матрица регистров отношения;
R1 – регистр входного множества;
R2 – регистр формируемого множества;
R3 – признак, который отражает наличие изменения в выходном множестве после выполнения операции обработки отношения;
R – регистр служит для формирования промежуточных значений множеств.
Вычислительная или операционная часть реализует операции отношения между множествами Pm и Pn.
Рис. 4.18. Структура операционного блока
HDL-код синтеза для модуля выполения операций представлен в виде распечатки в (Приложении В.3.):
Данному коду ставится в соответствие RTL-схема проекта, полученная в результате синтеза на основе использования компилятора-синтезатора компании Xilinx ISE 9.0, представленная на рис. 4.19.
Selected Device : 3s500ecp132-5
Number of Slices: 20 out of 4656 0%
Number of Slice Flip Flops: 29 out of 9312 0%
Number of 4 input LUTs: 35 out of 9312 0%
Number of IOs: 40
Number of bonded IOBs: 40 out of 92 43%
Number of GCLKs: 1 out of 24 4%
Рис. 4.19. RTL-схема операционного блока
Таким образом, три реализованных модуля имеют следующие основные характеристики <язык, компилятор, корпус микросхемы, период, тактовая частота, аппаратурные затраты>:
-
Блок диагностирования – VHDL, Xilinx ISE 9.0, Spartan 3e–1200, 8.5 nc, 117.6 MHz, 4.011 gates;
-
Блок оптимизации – VHDL, Xilinx ISE 9.0, Spartan 3e–1200, 11.75 nc, 85.1 MHz, 3707 gates;
-
Блок выполнения операций – Verilog, Xilinx ISE 9.0, Spartan 3e– fg400, 7.5 nc, 133.1 MHz, 2007 gates.
4.5. Система тестирования и верификации hdl-кода
Программно-аппаратная реализация моделей и методов инфраструктуры тестирования была интегрирована в качестве компонентов среды моделирования Riviera компании Aldec, рис. 4.20. Введенные в систему программные модули синтеза ABC-графа и три метода диагностирования усовершенствовали существующий процесс верификации, что дало возможность на 15% уменьшить общее время проектирования цифрового изделия на кристалле.
Рис. 4.20. Интеграция инфраструктуры в систему Riviera
Фактически применение трех методов и ассерционной модели дает возможность уменьшить объем test-bench кода, а значит, существенно (в несколько раз) сократить время отладки проекта (рис. 4.21), которое влияет на стоимость разработки проекта в целом. Механизм ассерций вместе с графом активизации программных блоков, представленным в виде матрицы, позволяет уменьшить время диагностирования и повысить глубину поиска дефектов или функциональных нарушений программных модулей до уровня десятков операторов HDL-кода, удобного и приемлемого для пользователя.
Благодаря взаимодействию средств наблюдения (ассерций) в процессе моделирования, диагностирования и аппаратуры ускорения матричных вычислений, появилась возможность доступа к значениям внутренних сигналов программного изделия для оперативной идентификации места и вид функционального нарушения, а также уменьшить время обнаружения ошибок в процессе эволюции изделия при нисходящем проектировании. На основе использования практики применения граф-ассерционных методов верификации для 10 реальных проектов (от 1,5 тыс. до 150 тыс. вентилей) наработаны специальные решения, включаемые в библиотеку верификации VTL (Verification Template Library), которая объединяет наиболее востребованные на рынке EDA (Electronic Design Automation) ассерционные модели тестирования цифровых изделий.
Рис. 4.21. Сравнительный анализ методов тестирования
Программно-аппаратная реализация предложенных компонентов диагностирования HDL-кода интегрирована с промышленной средой Aldec Riviera для отладки HDL-моделей. Высокая производительность матричных вычислений и технологичные решения методов диагностирования совместно с HDL-симулятором фирмы Aldec предоставляют пользователю эффективные средства синтеза диагностической информации и анализа работоспособности проектируемых цифровых систем на кристаллах. Механизм ассерций реализован аппаратным и программным способами с ограничениями на подмножество поддерживаемых конкретными компиляторами языковых конструкций. Продукт Riviera с технологией ассерционной верификации и матричного диагностирования, позволяет на 2-3% повысить качество (выход годной продукции) проектов цифровых систем на кристаллах. Эффективность инфраструктуры диагностического обслуживания HDL-моделей SoC повышается также за счет реализации трех методов (движков) диагностирования функциональных нарушений программных блоков, рис. 4.22. На первом шаге выполняется синтез дополнительных структур данных в виде транзакционного графа программных модулей и таблицы активизации функциональных блоков, которая учитывает свойства тестовых сегментов активизировать минимальное множество транзакционных путей в графе для покрытия всех программных модулей. Затем, для выбора одного из методов диагностирования, выполняется анализ параметров модели проектируемой цифровой системы: 1) Число ассерционных мониторов на каждом тест-сегменте более одного, предпочтение отдается MMD-методу мультиматричного диагностирования, что обеспечивает высокий уровень параллелизма (минимальное время) и низкую глубину поиска дефектов за счет использования мультиматричного процессора; 2) Количество разрядов в каждой координате таблицы равно единице, то включается MAR-метод анализа строк таблицы активизации, который имеет более высокую глубину диагностирования; 3) В противном случае, когда число разрядов в каждой координате таблицы больше единицы, активизируется MAC-метод анализа столбцов таблицы активизации, который распознает функциональные нарушения в условиях неопределенности по минимальному кодовому расстоянию.
Рис. 4.22. Стратегия выбора метода диагностирования