Выпуск #3/2019
Ж.-Ф. Бинуа, С. Белоусов, Ю. Ковалевский
Средства статической верификации SpyGlass и VC LP: поиск ошибок на уровне RTL
Средства статической верификации SpyGlass и VC LP: поиск ошибок на уровне RTL
Просмотры: 2337
Приводятся назначение и некоторые возможности средств статической верификации SpyGlass и VC LP от компании Synopsys в приложении к их применению на уровне RTL с целью выявления ошибок в проектах СБИС на ранних стадиях процесса разработки.
DOI: 10.22184/1992-4178.2019.184.3.98.103
УДК 004.4'233:621.3.049.774 | ВАК 05.13.12
DOI: 10.22184/1992-4178.2019.184.3.98.103
УДК 004.4'233:621.3.049.774 | ВАК 05.13.12
Теги: cdc issues design constraints dft hardware description language lint check low-power structures rtl code rtl-код static verification vlsi vlsi power consumption optimization обеспечение тестопригодности оптимизация энергопотребления сбис ошибки пересечения доменов тактовой частоты поверка качества кода проектные ограничения сбис статическая верификация структуры малого энергопотребления язык описания аппаратуры
Требования к увеличению функциональности и миниатюризации электронной аппаратуры приводят к постоянному росту сложности проектов современных СБИС. Наличие на кристалле более миллиарда транзисторов уже перестало быть фантастикой. Для упрощения разработки таких ИС был создан маршрут, позволяющий в большой степени формализовать процесс проектирования и автоматизировать определенные его этапы. Одним из этапов этого маршрута является разработка RTL-кода на языке описания аппаратуры (hardware description language – HDL), определяющего логику работы и архитектуру будущего устройства. Полученный RTL-код позволяет выполнить автоматизированное преобразование структуры в список соединений (netlist), который будет использоваться далее при проектировании кристалла на физическом уровне.[1]
Поскольку разработка RTL является одним из самых ранних этапов в маршруте проектирования и выполняется вручную, выявление как можно большего числа ошибок на этом этапе позволяет существенно сократить временные и материальные затраты, связанные с внесением изменений в проект для устранения ошибок, найденных или проявивших себя на более поздних этапах, включая тестирование опытных образцов и использование изделия в конечной аппаратуре.
При разработке программного обеспечения широко применяется подход, связанный со статическим анализом исходного кода на предмет обнаружения в нем ошибок в синтаксисе, логических ошибок и т. п. Данный подход основан не на исполнении кода, а на его синтаксическом анализе и сравнении с определенными ранее правилами. Аналогичный подход применим и для RTL-кода.
В связи с тем, что виды ошибок в проектах имеют значительные различия, не существует единого метода верификации, который позволил бы выявить их все. Потенциальные проблемы необходимо разделить по группам и построить план верификации, в котором для каждой группы используется наиболее подходящий инструмент.
Компания Synopsys предлагает весь необходимый набор инструментов для реализации таких планов. В данной статье рассматриваются назначение и некоторые возможности средств статической верификации Synopsys – SpyGlass и VC LP в приложении к их применению на уровне RTL.
SpyGlass
SpyGlass от Synopsys представляет собой интегрированную платформу для статической верификации, которая получила широкое распространение в отрасли. На данный момент платформу использует более 300 компаний по всему миру, включая основных производителей кристаллов.
Одним из важных преимуществ SpyGlass является удобный единый графический интерфейс пользователя. Система имеет интерпретатор языка Tcl, позволяющий автоматизировать процесс статической верификации проекта, возможности простого и быстрого доступа к БД проекта, содержащей информацию о структуре исследуемого блока, а также средство анализа временных диаграмм GTKWave и мощные средства просмотра схем, в том числе Incremental Schematic, позволяющее просматривать не только всю схему на одном уровне, но и часть схемы, связанной с конкретным выбранным сообщением, в виде блоков различных уровней, включая IP-блоки (рис. 1).
Платформа SpyGlass снабжена предопределенной методологией верификации GuideWare, применимой как к IP-блокам, так и к подсистемам и СнК. Эта методология является базовым руководством для выполнения проверки, отправной точкой построения процесса, который в дальнейшем может быть адаптирован к конкретной задаче. В основу GuideWare положен большой опыт применения платформы ее пользователями.
Еще один полезный инструмент SpyGlass – средство формирования отчетов Dashboard, позволяющее в том числе легко контролировать результаты верификации проектов, над которыми работают несколько человек. Дополнительное удобство заключается в том, что эти отчеты могут создаваться непосредственно из инструментов верификации, а из отчетов можно открывать соответствующие инструменты.
Ниже рассматриваются назначение и основные возможности инструментов SpyGlass.
SpyGlass Lint
Lint является основой платформы SpyGlass. Этот инструмент, выполняющий проверку RTL-кода на соответствие правилам, предназначен для того, чтобы перед передачей проекта с уровня RTL на следующую стадию обеспечить его максимально возможную корректность и отсутствие в нем ошибок.
В качестве исходной информации для Lint может выступать код на любом из широко распространенных языков HDL: Verilog, VHDL, SystemVerilog, а также их комбинации. Также поддерживаются различные стандарты правил, такие как STARC, OpenMORE, Morelint и др.
На рис. 2 показаны проверки, выполняемые в Lint. Можно видеть, что верификация выходит далеко за пределы обычной синтаксической проверки кода. SpyGlass содержит встроенный механизм «облегченного» синтеза схемы, результат работы которого используется при статической проверке. Это позволяет получить полную картину и выполнить проверку структуры проекта и самого списка соединений, выявив ряд ошибок, которые в противном случае проявили бы себя только на более поздних стадиях, и в результате передать на этап логического синтеза подготовленный для этого код.
Также следует отметить, что Lint является полезным инструментом для выявления ошибок в IP-блоках в составе проекта и проверки того, что все разработчики RTL-кода следуют одним и тем же правилам и подходам при его написании.
При каждой проверке могут быть выполнены анализ ошибок и отладка RTL с помощью графического интерфейса, в котором обеспечивается связь каждой ошибки с различными представлениями проекта, включая код и отображение схемы.
SpyGlass CDC
В современных СнК может присутствовать более 100 доменов тактовых частот, то есть участков схемы, тактовые частоты которых асинхронны по отношению друг к другу. При пересечении сигналом границы доменов могут возникать различные ситуации, приводящие к сбою работы системы, в том числе метастабильные состояния, причина которых во временных рассогласованиях, и ложные события, вызываемые кратковременными импульсами и расхождением и схождением сигналов. Один из простейших примеров возникновения метастабильного состояния приведен на рис. 3. Здесь из-за отсутствия синхронизатора сигнала A с тактовым сигналом clk_B он регистрируется регистром F2 во время его заднего фронта, что может привести к неопределенному состоянию сигнала B.
Ошибки пресечения доменов тактовой частоты вызывают сокращение среднего времени наработки до отказа и являются первостепенной причиной переработки проектов кристаллов, поэтому их выявление на ранних стадиях проектирования очень важно для сокращения времени вывода изделия на рынок.
Выявление данных ошибок при обычно используемых методах анализа временных характеристик затруднено или невозможно. Так, например, при статическом временном анализе (STA) выполняется проверка только синхронных логических схем, при этом асинхронные сигналы, идущие в обход доменов тактовой частоты, игнорируются. Функциональная симуляция очень времязатратная и не обеспечивает полную верификацию. Прототипирование и эмуляция обладают теми же недостатками, что и функциональная симуляция, и, кроме того, отличаются сложностью отладки.
В SpyGlass предусмотрен специализированный инструмент для поиска ошибок пересечения доменов тактовой частоты – SpyGlass CDC. Схема процесса верификации в данном инструменте приведена на рис. 4. Исходной информацией являются RTL-код и проектные ограничения в формате SDC. CDC-анализ включает в себя выделение доменов тактовой частоты, путей распространения сигналов через домены и идентификацию синхронизаторов. Данный анализ выполняется в интерактивном режиме с пользователем. Затем выполняются расширенные CDC-проверки. Результаты обоих этапов сохраняются в БД нарушений и выдаются в виде отчета.
Как и в SpyGlass Lint, анализ результатов и отладка RTL выполняется в графическом интерфейсе.
Следует отметить, что инструменты SpyGlass Lint и CDC также с успехом применяются для верификации проектов на ПЛИС.
SpyGlass RDC
Инструмент SpyGlass RDC относительно новый. Его задача – поиск ошибок, связанных с асинхронным сбросом, которые с точки зрения механизмов возникновения и вызываемых сбоев близки к ошибкам пересечения доменов тактовой частоты. Процесс верификации в этом инструменте также похож на SpyGlass CDC.
SpyGlass Constraints
На практике многие проекты проходят несколько итераций корректировки из-за проблем, связанных с заданием проектных ограничений. Инструмент SpyGlass Constraints позволяет уменьшить количество этих лишних итераций за счет ранней валидации и коррекции ограничений, включая проверку полноты, целостности и правильности ограничений SDC в отношении конкретного проекта, удаление излишних и добавление недостающих ограничений, проверку назначения тактовых сигналов, ограничений задержки тактовых сигналов и сигналов ввода-вывода, наличия многотактовых и ложных путей, а также задание проектных ограничений для CDC-анализа.
Кроме того, инструмент SpyGlass Constraints содержит шаблоны ограничений SDC, которые могут быть кастомизированы под конкретную задачу. Это позволяет снизить вероятность того, что некоторые типовые ограничения будут упущены при формировании их набора.
SpyGlass Power
Важность задачи оптимизации энергопотребления при проектировании современных ИС сложно переоценить. Так же, как и в отношении поиска ошибок, учет аспектов энергопотребления на возможно более ранней стадии проектирования позволяет снизить количество итераций на поздних этапах и, как следствие, затраты на проектирование и время вывода изделия на рынок.
Инструмент SpyGlass Power позволяет уже на уровне RTL получить достаточно точную и подробную картину того, как распределяется и используется электропитание в проекте, насколько эффективно выполняется стробирование тактовым сигналом, определить другие метрики, такие как плотность переключательной активности выходов регистров и активность памяти.
Среди преимуществ SpyGlass Power – возможность использования в качестве исходных данных результатов симуляции и эмуляции в форматах VCD, FSDB, SAIF и безвекторном, работа в режимах на основе тактов, усреднения или гибридном, а также возможность калибровки энергопотребления с использованием списка соединений похожего проекта и данных паразитных параметров в формате SPEF.
Графический интерфейс SpyGlass Power, помимо привычных для инструментов SpyGlass окон, таких как средство просмотра схем и интерпретатор языка Tcl, содержит графики изменения потребляемой энергии во времени, включая утечки, потребление на переключения и т. п., а также окно Power Explorer (рис. 5), в котором в табличной форме отображаются данные эффективности в отношении энергопотребления с цветовой подсветкой, указывающей на возможности оптимизации проекта.
SpyGlass DFT
Еще одна характеристика будущего кристалла, которой следует уделить внимание на ранних стадиях проектирования, – его тестопригодность. Инструмент SpyGlass DFT позволяет не только проверить RTL-код на предмет соответствия требованиям тестирования и заданному тестовому покрытию, но также выявить области, тестирование которых будет затруднено, определить возможность тестирования на высокой скорости и сократить время тестирования за счет уменьшения количества тестовых векторов.
VC LP
Как уже говорилось, вопрос энергопотребления – один из важнейших при разработке подавляющего большинства современных микроэлектронных изделий. Однако есть области, в которых ограничение потребления энергии особенно жесткое, и среди них – такие активно развивающиеся сегменты, как мобильные устройства и устройства Интернета вещей.
Верификация проектов с низким энергопотреблением обладает рядом особенностей из-за специфики их архитектуры и режимов работы. В таких проектах применяются различные подходы для уменьшения потребляемой мощности, такие как стробирование питания, режим ожидания с пониженным напряжением, динамическое масштабирование напряжения и др.
Решение VC LP от Synopsys предназначено для статической верификации проектов с низким энергопотреблением и включает в себя более 400 проверок, обеспечивающих полноценную верификацию проекта и включающих в себя проверки целостности питания, архитектуры (влияния разбиения на домены питания на функционирование проекта), наличия необходимых и достаточных структур низкого энергопотребления, соответствия функциональности данных структур, а также подключения выводов питания и общей шины (на стадии после формирования топологии) данным UPF и библиотеке ячеек.
Отметим, что верификация с помощью VC LP начинается с уровня RTL, на котором выполняются проверки данных UPF. Проверки архитектуры и структур низкого энергопотребления относятся к последующему этапу – уровню списка соединений после выполнения логического синтеза.
ЗАКЛЮЧЕНИЕ
Рассмотренные средства статической верификации от компании Synopsys позволяют выявить ошибки многих видов на уровне регистровых передач, благодаря чему можно существенно уменьшить количество итераций проверки и отладки на более поздних стадиях проектирования, сократив таким образом затраты и обеспечив более быстрый вывод изделия на рынок.
Ценность таких решений для разработчиков современных СБИС, СнК и решений на ПЛИС особенно высока, учитывая огромное количество потенциальных возможностей для возникновения ошибок в проектах ввиду их нарастающей сложности, уменьшения проектных норм, роста тактовой частоты и особенно жестких требований в отношении энергопотребления. ●
Поскольку разработка RTL является одним из самых ранних этапов в маршруте проектирования и выполняется вручную, выявление как можно большего числа ошибок на этом этапе позволяет существенно сократить временные и материальные затраты, связанные с внесением изменений в проект для устранения ошибок, найденных или проявивших себя на более поздних этапах, включая тестирование опытных образцов и использование изделия в конечной аппаратуре.
При разработке программного обеспечения широко применяется подход, связанный со статическим анализом исходного кода на предмет обнаружения в нем ошибок в синтаксисе, логических ошибок и т. п. Данный подход основан не на исполнении кода, а на его синтаксическом анализе и сравнении с определенными ранее правилами. Аналогичный подход применим и для RTL-кода.
В связи с тем, что виды ошибок в проектах имеют значительные различия, не существует единого метода верификации, который позволил бы выявить их все. Потенциальные проблемы необходимо разделить по группам и построить план верификации, в котором для каждой группы используется наиболее подходящий инструмент.
Компания Synopsys предлагает весь необходимый набор инструментов для реализации таких планов. В данной статье рассматриваются назначение и некоторые возможности средств статической верификации Synopsys – SpyGlass и VC LP в приложении к их применению на уровне RTL.
SpyGlass
SpyGlass от Synopsys представляет собой интегрированную платформу для статической верификации, которая получила широкое распространение в отрасли. На данный момент платформу использует более 300 компаний по всему миру, включая основных производителей кристаллов.
Одним из важных преимуществ SpyGlass является удобный единый графический интерфейс пользователя. Система имеет интерпретатор языка Tcl, позволяющий автоматизировать процесс статической верификации проекта, возможности простого и быстрого доступа к БД проекта, содержащей информацию о структуре исследуемого блока, а также средство анализа временных диаграмм GTKWave и мощные средства просмотра схем, в том числе Incremental Schematic, позволяющее просматривать не только всю схему на одном уровне, но и часть схемы, связанной с конкретным выбранным сообщением, в виде блоков различных уровней, включая IP-блоки (рис. 1).
Платформа SpyGlass снабжена предопределенной методологией верификации GuideWare, применимой как к IP-блокам, так и к подсистемам и СнК. Эта методология является базовым руководством для выполнения проверки, отправной точкой построения процесса, который в дальнейшем может быть адаптирован к конкретной задаче. В основу GuideWare положен большой опыт применения платформы ее пользователями.
Еще один полезный инструмент SpyGlass – средство формирования отчетов Dashboard, позволяющее в том числе легко контролировать результаты верификации проектов, над которыми работают несколько человек. Дополнительное удобство заключается в том, что эти отчеты могут создаваться непосредственно из инструментов верификации, а из отчетов можно открывать соответствующие инструменты.
Ниже рассматриваются назначение и основные возможности инструментов SpyGlass.
SpyGlass Lint
Lint является основой платформы SpyGlass. Этот инструмент, выполняющий проверку RTL-кода на соответствие правилам, предназначен для того, чтобы перед передачей проекта с уровня RTL на следующую стадию обеспечить его максимально возможную корректность и отсутствие в нем ошибок.
В качестве исходной информации для Lint может выступать код на любом из широко распространенных языков HDL: Verilog, VHDL, SystemVerilog, а также их комбинации. Также поддерживаются различные стандарты правил, такие как STARC, OpenMORE, Morelint и др.
На рис. 2 показаны проверки, выполняемые в Lint. Можно видеть, что верификация выходит далеко за пределы обычной синтаксической проверки кода. SpyGlass содержит встроенный механизм «облегченного» синтеза схемы, результат работы которого используется при статической проверке. Это позволяет получить полную картину и выполнить проверку структуры проекта и самого списка соединений, выявив ряд ошибок, которые в противном случае проявили бы себя только на более поздних стадиях, и в результате передать на этап логического синтеза подготовленный для этого код.
Также следует отметить, что Lint является полезным инструментом для выявления ошибок в IP-блоках в составе проекта и проверки того, что все разработчики RTL-кода следуют одним и тем же правилам и подходам при его написании.
При каждой проверке могут быть выполнены анализ ошибок и отладка RTL с помощью графического интерфейса, в котором обеспечивается связь каждой ошибки с различными представлениями проекта, включая код и отображение схемы.
SpyGlass CDC
В современных СнК может присутствовать более 100 доменов тактовых частот, то есть участков схемы, тактовые частоты которых асинхронны по отношению друг к другу. При пересечении сигналом границы доменов могут возникать различные ситуации, приводящие к сбою работы системы, в том числе метастабильные состояния, причина которых во временных рассогласованиях, и ложные события, вызываемые кратковременными импульсами и расхождением и схождением сигналов. Один из простейших примеров возникновения метастабильного состояния приведен на рис. 3. Здесь из-за отсутствия синхронизатора сигнала A с тактовым сигналом clk_B он регистрируется регистром F2 во время его заднего фронта, что может привести к неопределенному состоянию сигнала B.
Ошибки пресечения доменов тактовой частоты вызывают сокращение среднего времени наработки до отказа и являются первостепенной причиной переработки проектов кристаллов, поэтому их выявление на ранних стадиях проектирования очень важно для сокращения времени вывода изделия на рынок.
Выявление данных ошибок при обычно используемых методах анализа временных характеристик затруднено или невозможно. Так, например, при статическом временном анализе (STA) выполняется проверка только синхронных логических схем, при этом асинхронные сигналы, идущие в обход доменов тактовой частоты, игнорируются. Функциональная симуляция очень времязатратная и не обеспечивает полную верификацию. Прототипирование и эмуляция обладают теми же недостатками, что и функциональная симуляция, и, кроме того, отличаются сложностью отладки.
В SpyGlass предусмотрен специализированный инструмент для поиска ошибок пересечения доменов тактовой частоты – SpyGlass CDC. Схема процесса верификации в данном инструменте приведена на рис. 4. Исходной информацией являются RTL-код и проектные ограничения в формате SDC. CDC-анализ включает в себя выделение доменов тактовой частоты, путей распространения сигналов через домены и идентификацию синхронизаторов. Данный анализ выполняется в интерактивном режиме с пользователем. Затем выполняются расширенные CDC-проверки. Результаты обоих этапов сохраняются в БД нарушений и выдаются в виде отчета.
Как и в SpyGlass Lint, анализ результатов и отладка RTL выполняется в графическом интерфейсе.
Следует отметить, что инструменты SpyGlass Lint и CDC также с успехом применяются для верификации проектов на ПЛИС.
SpyGlass RDC
Инструмент SpyGlass RDC относительно новый. Его задача – поиск ошибок, связанных с асинхронным сбросом, которые с точки зрения механизмов возникновения и вызываемых сбоев близки к ошибкам пересечения доменов тактовой частоты. Процесс верификации в этом инструменте также похож на SpyGlass CDC.
SpyGlass Constraints
На практике многие проекты проходят несколько итераций корректировки из-за проблем, связанных с заданием проектных ограничений. Инструмент SpyGlass Constraints позволяет уменьшить количество этих лишних итераций за счет ранней валидации и коррекции ограничений, включая проверку полноты, целостности и правильности ограничений SDC в отношении конкретного проекта, удаление излишних и добавление недостающих ограничений, проверку назначения тактовых сигналов, ограничений задержки тактовых сигналов и сигналов ввода-вывода, наличия многотактовых и ложных путей, а также задание проектных ограничений для CDC-анализа.
Кроме того, инструмент SpyGlass Constraints содержит шаблоны ограничений SDC, которые могут быть кастомизированы под конкретную задачу. Это позволяет снизить вероятность того, что некоторые типовые ограничения будут упущены при формировании их набора.
SpyGlass Power
Важность задачи оптимизации энергопотребления при проектировании современных ИС сложно переоценить. Так же, как и в отношении поиска ошибок, учет аспектов энергопотребления на возможно более ранней стадии проектирования позволяет снизить количество итераций на поздних этапах и, как следствие, затраты на проектирование и время вывода изделия на рынок.
Инструмент SpyGlass Power позволяет уже на уровне RTL получить достаточно точную и подробную картину того, как распределяется и используется электропитание в проекте, насколько эффективно выполняется стробирование тактовым сигналом, определить другие метрики, такие как плотность переключательной активности выходов регистров и активность памяти.
Среди преимуществ SpyGlass Power – возможность использования в качестве исходных данных результатов симуляции и эмуляции в форматах VCD, FSDB, SAIF и безвекторном, работа в режимах на основе тактов, усреднения или гибридном, а также возможность калибровки энергопотребления с использованием списка соединений похожего проекта и данных паразитных параметров в формате SPEF.
Графический интерфейс SpyGlass Power, помимо привычных для инструментов SpyGlass окон, таких как средство просмотра схем и интерпретатор языка Tcl, содержит графики изменения потребляемой энергии во времени, включая утечки, потребление на переключения и т. п., а также окно Power Explorer (рис. 5), в котором в табличной форме отображаются данные эффективности в отношении энергопотребления с цветовой подсветкой, указывающей на возможности оптимизации проекта.
SpyGlass DFT
Еще одна характеристика будущего кристалла, которой следует уделить внимание на ранних стадиях проектирования, – его тестопригодность. Инструмент SpyGlass DFT позволяет не только проверить RTL-код на предмет соответствия требованиям тестирования и заданному тестовому покрытию, но также выявить области, тестирование которых будет затруднено, определить возможность тестирования на высокой скорости и сократить время тестирования за счет уменьшения количества тестовых векторов.
VC LP
Как уже говорилось, вопрос энергопотребления – один из важнейших при разработке подавляющего большинства современных микроэлектронных изделий. Однако есть области, в которых ограничение потребления энергии особенно жесткое, и среди них – такие активно развивающиеся сегменты, как мобильные устройства и устройства Интернета вещей.
Верификация проектов с низким энергопотреблением обладает рядом особенностей из-за специфики их архитектуры и режимов работы. В таких проектах применяются различные подходы для уменьшения потребляемой мощности, такие как стробирование питания, режим ожидания с пониженным напряжением, динамическое масштабирование напряжения и др.
Решение VC LP от Synopsys предназначено для статической верификации проектов с низким энергопотреблением и включает в себя более 400 проверок, обеспечивающих полноценную верификацию проекта и включающих в себя проверки целостности питания, архитектуры (влияния разбиения на домены питания на функционирование проекта), наличия необходимых и достаточных структур низкого энергопотребления, соответствия функциональности данных структур, а также подключения выводов питания и общей шины (на стадии после формирования топологии) данным UPF и библиотеке ячеек.
Отметим, что верификация с помощью VC LP начинается с уровня RTL, на котором выполняются проверки данных UPF. Проверки архитектуры и структур низкого энергопотребления относятся к последующему этапу – уровню списка соединений после выполнения логического синтеза.
ЗАКЛЮЧЕНИЕ
Рассмотренные средства статической верификации от компании Synopsys позволяют выявить ошибки многих видов на уровне регистровых передач, благодаря чему можно существенно уменьшить количество итераций проверки и отладки на более поздних стадиях проектирования, сократив таким образом затраты и обеспечив более быстрый вывод изделия на рынок.
Ценность таких решений для разработчиков современных СБИС, СнК и решений на ПЛИС особенно высока, учитывая огромное количество потенциальных возможностей для возникновения ошибок в проектах ввиду их нарастающей сложности, уменьшения проектных норм, роста тактовой частоты и особенно жестких требований в отношении энергопотребления. ●
Отзывы читателей