Инструменты, методологии и потоки, существовавшие с момента зарождения полупроводникового дизайна, разрушаются, но на этот раз нет большого пула исследователей, предлагающих потенциальные решения. Индустрия самостоятельно формулирует эти идеи, и для этого потребуется активное сотрудничество между компаниями EDA, производителями и дизайнерами, которое в прошлом не было их сильной стороной.
Трудно оптимизировать что-то, когда вы не можете это проанализировать, и анализ становится намного сложнее, потому что многие проблемы в больших полупроводниковых продуктах либо мультифизические, либо они представляют собой комбинацию аппаратного и программного обеспечения, системы, платы. , корпус ИС, интерпозер, чип и блок IP. В прошлом для решения проблем применялся подход «разделяй и властвуй». Иногда это делается иерархически, например, путем полной проверки блока перед его интеграцией, а иногда путем изоляции проблемы, например, при пересечении часового домена.
Тем не менее, некоторые проблемы все чаще сопротивляются этим типам подходов, и отрасли еще предстоит найти простое решение. Например, такие проблемы, как безопасность, являются проблемами системного уровня. То же самое верно для многих проблем с производительностью или питанием. Даже такие вопросы, как питание и целостность сигнала, должны решаться с помощью иерархии, которая простирается от IP до системы, посредством сложного соединения многих уровней, каждый из которых традиционно предназначен для использования другого набора инструментов.
Это создает новый набор проблем моделирования и требует, чтобы некоторые существующие инструменты играли гораздо большую роль, чем они играли в прошлом. В качестве альтернативы, отрасли придется серьезно отнестись к наложению ограничений на дизайн, чтобы можно было проводить анализ. Хотя эта отрасль начинает осознавать проблемы, сегодня она решает их постепенно. До сих пор никто не предложил общего решения, которое будет распространяться на будущее.
Это игра чисел. «Если принять во внимание систему в целом, количество углов резко возрастает», — говорит Шекхар Капур, старший директор по маркетингу в Synopsys. «Сегодня подходы все еще возвращаются к иерархическому принципу «разделяй и властвуй», а также ищут способы уменьшить количество сценариев, с которыми вам приходится иметь дело. Без них вычислительные требования будут огромными. И для того, чтобы вы могли подписаться в системах, путь будет намного, намного длиннее».
Иерархические подходы все еще полезны для некоторых вещей. «Принцип абстракции используется там, где фундаментальная сложность анализа слишком сложна, — говорит Пракаш Нараин, президент и главный исполнительный директор Real Intent. «В моделировании мы используем его с точки зрения функциональных моделей шины и статического временного анализа. Мы используем его, создавая модели синхронизации на уровне ввода-вывода, пересечения часовых доменов, методы статической подписи для пересечения часовых доменов, пересечения доменов сброса. Это все места, где мы успешно используем иерархические методы».
Уменьшение углов часто связано с дизайнерскими решениями. «Почему бы не избежать пересечения доменов, — говорит Капур из Synopsys. «Просто держите дизайн асинхронным, где каждая часть рассчитана по времени. Таким образом, вы можете управлять количеством углов для этой конкретной части. Затем вы можете использовать методы уменьшения углов вдобавок к этому. При иерархическом подходе к временному анализу мы измеряем каждую часть отдельно, а затем обе вместе с ограничениями и выполняем слияние углов».
Что подразумевается под возрастающими повсюду путями. «Многие люди хотят проводить анализ систем с несколькими кристаллами, — говорит Мик Познер, старший директор HPC IP в Synopsys. «Раньше решения для обеспечения целостности сигналов и питания были сосредоточены на кристалле, корпусе и печатной плате. Теперь он стал умирать, переходить, упаковывать, печатать на печатной плате. Это особенно верно для высокопроизводительных интерфейсов, таких как 112G, и интерфейсов памяти, где большое внимание уделяется влиянию этого интерпозера или уровня маршрутизации. Мы должны решить, как упаковать эту информацию с IP, что иногда невозможно, потому что мы не знаем, как этот IP используется. Мы можем предоставить эталонный поток, который покажет им, как они проводят этот анализ».
Проблема в том, что сделать некоторые из необходимых абстракций сложно. «Требования к абстракции очень специфичны для приложения, — говорит Нарайн из Real Intent. «Они зависят от технологии, и они отличаются от продукта к продукту даже для этого приложения. Они зависят от технологии, которая используется каждым продуктом для реализации функциональности. Затем вы должны рассмотреть уровень точности, который вы ищете. Это будет очень специфично для приложения и технологии, и стандарты действительно появятся позже, потому что это очень сложный процесс».
Познер приводит конкретный пример. «Для HBM3 мы создали эталонный дизайн. Это эталонный дизайн нашего собственного тестового чипа. Мы разработали PHY, но когда мы делаем тестовый чип, нам также нужно разработать промежуточный модуль, который подключается к стеку HBM. Мы должны сделать все аналогично тому, что должен был бы сделать клиент. Тогда они смогут использовать этот поток. Но, конечно же, это был наш тестовый чип. Они могут повторно использовать поток, но фактические данные будут зависеть от того, как они размещают этот промежуточный элемент».
Проблема моделирования
Причиной этих трудностей является отсутствие моделей и средств их создания. Модели — это компромисс между достоверностью, точностью и производительностью. Модели с высокой точностью, как правило, имеют хорошую точность, но работают медленно, тогда как модели, которые выполняются быстрее, уступают в чем-то с точки зрения точности, точности или того и другого. Требуемые модели являются как функциональными, так и нефункциональными моделями.
Мы уже некоторое время занимаемся этой проблемой в функциональной области, но требуется дополнительная работа. «Для функциональной проверки мы делаем несколько моделей, — говорит Нил Хэнд, директор по стратегии технологии проверки дизайна в Сименс ЭДА. «У нас есть точность цикла, точность набора инструкций и так далее. Но вы хотите иметь возможность легко перемещаться между ними. При гибридном моделировании у вас есть возможность того, что они называют быстрым, а затем точным. На лету нужно уметь переключать модели. Например, кто-то может загрузить операционную систему с менее точной моделью для быстрого выполнения, а затем переключить состояние разработки на модель для точного выполнения. Теперь они могут перейти от этой точки с гораздо большей детализацией и гораздо большей точностью в самой модели. Нам необходимо разработать еще более широкие возможности для переключения между уровнями точности, когда они вам нужны».
Сегодня аналогичная методология используется для проверки уровня блоков и интеграции. «Когда вы покупаете ядро ARM, вы не проверяете его функциональность, — говорит Саймон Дэвидманн, основатель и генеральный директор компании Программное обеспечение Imperas. «Вы проверяете его интеграцию. Вот тут-то и появляются такие компании, как Breker. У вас есть эти блоки, но как проверить, хорошо ли они разговаривают друг с другом? Вы не делаете это так же, как проверяете блок с помощью UVM или Verilog, которые вы используете для проверки на уровне блоков. Иерархия в проверке состоит в том, чтобы заставить все ваши блоки работать, протестировать их по отдельности, затем собрать их вместе и беспокоиться об интеграционных тестах. Но они требуют разных методологий».
Проблема всегда заключалась в том, что создание этих моделей требует времени и усилий, и каждая модель должна быть проверена для обеспечения согласованности. «Для архитектуры вам также нужны нефункциональные свойства, такие как детали синхронизации», — говорит Тим Когель, главный инженер по виртуальному прототипированию для Synopsys. «Это влечет за собой значительно больше усилий для создания моделей. Хотя отрасль установила более высокие уровни абстракции, создание инструментов для построения этих нефункциональных моделей производительности оказалось не столь успешным. Например, программное обеспечение рассматривает элементы обработки как более абстрактные единицы ресурсов, и тогда у вас могут быть более подробные модели межсоединений и подсистемы памяти или сети между различными микросхемами. Arteris и Arm предоставляют их для когерентных сетей, для различных типов межсоединений IP, а также для контроллеров памяти, которые являются ключевыми элементами интеграции».
Требуется больше инструментов для создания моделей. «Когда вы анализируете дизайн с использованием определенных шаблонов, у вас есть возможность создать абстрактную модель», — говорит Малик Васирикала, директор и специалист по продуктам для Ansys. «Например, когда я анализирую внутренности чипа, я также знаю, как он ведет себя с точки зрения интерфейса. Я могу создать модель, как будто я вижу всю эту часть с периферии, или на границе чипа с внешним миром. Тогда при анализе другого чипа, подключенного к нему, мне не нужны внутренние детали чипа. Я просто включаю эту поведенческую модель в этот анализ, и все готово».
Но есть пробелы. «Недостающая часть — это лучшая интеграция и обмен данными между физическими и виртуальными мирами», — говорит Когель из Synopsys. «Нам нужна архитектурная модель, основанная на изученной информации о плане этажа, изученной геометрии, которая при переносе на уровень виртуального прототипа поможет вам проверить производительность, мощность и температуру на основе реальной активности приложения».
Когда вы закончили?
Завершение является одной из проблем в любой аналитической задаче. Вы рассмотрели важные дела? Метрики покрытия существуют для функциональной проверки на уровне блоков, но это еще одна модель, которую необходимо перенести на более высокие уровни абстракции и в нефункциональные домены. «Если вы выполняете часть своей проверки в сфере RTL, а часть — в виртуальном прототипе, как вы объединяете эти элементы покрытия вместе?» — спрашивает Рука Сименса. «Сегодня это делается с помощью функционального покрытия, но есть возможность — особенно когда вы смотрите на генерацию стимулов, когда вы используете ИИ на стороне покрытия — начать извлекать информацию из разных типов покрытия».
Мир программного обеспечения был очень слабым в этом отношении. «Я не думаю, что существует стандартный подход или методология охвата», — говорит Дэвидманн из Imperas. «Насколько мне известно, люди не сделали никакой автоматизации вокруг программного обеспечения, эквивалентного точкам покрытия и группам покрытия в HDL. Программы проверки протоколов существуют для проверки и анализа. И вы можете строить статистику, где вы можете смотреть функции, или смотреть доступы к переменным. Учитывая отсутствие стандартизации, мы предоставляем необходимый инструментарий, но пользователю придется создавать его самостоятельно».
Когда у вас есть понятие покрытия, становится возможным подумать об оптимизации проверки. «Будь то портативный стимул в его нынешнем виде или что-то, что основано на этих понятиях, нам необходимо генерировать сценарии на системном уровне», — говорит Хэнд. «Можем ли мы взять это и подняться на один уровень выше, перейти к виртуальным прототипам и системному моделированию и генерировать сценарии для надежных систем? Это будет становиться все более и более важным, поскольку системы становятся все более и более интегрированными».
Другие согласны. «Вы хотите обеспечить преемственность между IP-уровнем, уровнем SoC, а затем проверкой в кремнии», — говорит Когель. «Портативный стимул — один из подходов к достижению этой цели. Затем вы также можете запустить то, что было абстрактным тестовым примером, например, программу на встроенном ядре, а затем в виртуальном прототипе. В этом широком смысле это проверка архитектурного замысла. Позже вы запускаете RTL с программным обеспечением на эмуляторе, на прототипе FPGA, и это можно использовать для проверки производительности, потому что это больше похоже на «Что вы видите, то и получаете». Это не какая-то высокоуровневая виртуальная модель».
Рис. 1: Несколько уровней моделей и целей проверки. Источник: Синопсис
Еще один подход к проверке интеграции — функциональное соответствие. «В Arm есть попытка под названием «системная готовность» определить, что значит быть совместимым и способным загружать операционную систему», — говорит Ник Хитон, выдающийся инженер и архитектор проверки SoC в Каденция. «Если ваша реализация пройдет успешно, вам не придется изменять выпуски ОС Red Hat или что-то еще. Они просто загрузятся на этом. Это контракт между программным обеспечением и оборудованием. Portable stimulus пытается сделать это в более обобщенном виде, и мы называем его VIP, потому что это нестандартный контент, который мы предоставляем, скажем, на уровне согласованности. Мы тестируем все варианты когерентности и можем доставить ее практически на любую платформу, будь то Arm, RISC-V или что-то еще».
Проблема отладки
Одно дело иметь возможность запустить модель, но совсем другой уровень сложности — найти и устранить проблему в модели или в том, как эта модель используется. «Если вы отлаживаете программное обеспечение на оборудовании или FPGA, вы получаете подключаемый к нему gdb, и вы можете выполнить пошаговый поток инструкций процессора», — говорит Дэвидманн. «Но проблема возникает, когда у них 10 или более процессоров, и им нужно знать, когда «это» пишет «то», как это выглядит? Анализ и отладка должны выполняться комплексно, чтобы вы могли видеть все. Это должно включать программные стеки, чтобы вы могли наблюдать за поведением платформы».
Это другой набор требований, чем просто отладка оборудования. «По мере того, как мы переходим к тестированию интеграции аппаратного и программного обеспечения, мы начинаем видеть больше возможностей отладки программного обеспечения, интегрированных в среду отладки виртуального прототипа», — говорит Хэнд. «По мере того, как мы делаем его доступным для разработчиков систем, у нас есть возможность взглянуть на модели использования и на какие среды проектирования хотят работать эти команды? Как мы можем включить это? Вы хотите, чтобы проектировщики систем взаимодействовали с виртуальными прототипами удобным для них способом. Все дело в идентификации конечных пользователей и сопоставлении с ними моделей использования. Это та область, где мы можем многое сделать и многое должны сделать».
Инструменты и методологии должны соответствовать потребностям на каждом уровне. «Ребята, занимающиеся проверкой интеграции, не знают каждый из блоков, — говорит Хитон из Cadence. «Время отладки или время обработки становится все более важным. Количество циклов отладки, которые вы можете выполнять в день, является критически проблематичным. Если инструменты могут указать вам место первого порядка, это может сэкономить часы отладки. Мы в начале этого пути. Обучение продолжается, и то, как мы используем эти инструменты, будет улучшаться».
ИИ может помочь. «Несмотря на то, что у людей лучшая нейронная сеть, наш ввод-вывод по-прежнему более или менее последовательный», — говорит Мэтт Грэм, директор группы разработки продуктов в Cadence. «Возможно, мы сможем справиться с двумя или тремя параллельными дорожками, но не более того. Машины могут рассматривать все эти вещи параллельно. Они могут использовать простой алгоритм или простой набор ИИ, чтобы сделать что-то с этой массивно-параллельной, высокоинтегрированной вещью. Но это отличается от того, что мы можем сделать сами. Может быть, это такие вещи, как последний раз, когда у нас была ревизия, или что изменилось, или определение различий в поведении, или какие параметры были изменены в IP».
Заключение
Сложность системы подавляет многие инструменты и методологии, существующие сегодня. Техники, использовавшиеся в прошлом, хотя и ценны, но недостаточны. Отрасль сталкивается со многими из этих проблем в области функциональной проверки, но это только верхушка айсберга. Учитывая, как мало прогресса был достигнут в наиболее хорошо изученной области, вряд ли прогресс будет быстрым во многих других областях, особенно в тех, которые связаны с усовершенствованной упаковкой.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- Платоблокчейн. Интеллект метавселенной Web3. Расширение знаний. Доступ здесь.
- Источник: https://semiengineering.com/design-and-verification-methodologies-breaking-down/
- 1
- 10
- a
- в состоянии
- О нас
- АБСТРАКТ НАЯ
- Учетная запись
- точность
- точный
- Достигать
- через
- деятельность
- продвинутый
- AI
- алгоритм
- Все
- всегда
- анализ
- анализировать
- анализ
- и
- Другой
- Применение
- подхода
- подходы
- архитектурный
- архитектура
- ПЛОЩАДЬ
- области
- ARM
- около
- автоматизация
- доступен
- назад
- основанный
- в основном
- , так как:
- становиться
- становится
- становление
- до
- начало
- не являетесь
- ЛУЧШЕЕ
- Лучшая
- между
- больший
- Заблокировать
- Блоки
- доска
- Разрыв
- приносить
- широкий
- строить
- Строительство
- строит
- автобус
- купить
- Каденция
- призывают
- под названием
- возможности
- способный
- случаев
- случаев
- Генеральный директор
- конечно
- проверка
- чип
- чипсы
- ПОСЛЕДОВАТЕЛЬНЫЙ
- сочетание
- как
- приход
- Компании
- комплекс
- сложность
- Соответствие закону
- уступчивый
- сама концепция
- подключенный
- подключает
- Рассматривать
- ограничения
- содержание
- контракт
- кооперация
- Основные
- Corner
- углов
- курс
- чехол для варгана
- охват
- покрытый
- Создайте
- создает
- Создающий
- Текущий
- клиент
- циклы
- данным
- день
- сделка
- занимавшийся
- решения
- доставить
- доставки
- запросы
- зависимый
- Проект
- дизайнеры
- конструкций
- подробность
- подробный
- подробнее
- развивать
- развитый
- Умереть
- различный
- трудный
- затруднения
- директор
- Выдающийся
- дело
- домен
- доменов
- Dont
- вниз
- управляемый
- каждый
- легко
- усилие
- или
- элементы
- встроенный
- инженер
- Проект и
- обеспечивать
- Окружающая среда
- средах
- Эквивалент
- особенно
- установленный
- Даже
- многое
- пример
- обмена
- выполнять
- существующий
- продлить
- и, что лучший способ
- Фэшн
- БЫСТРО
- быстрее
- несколько
- верность
- Фига
- Найдите
- обнаружение
- Во-первых,
- фиксированный
- поток
- Потоки
- Фокус
- следовать
- форма
- вперед
- основатель
- Основатель и Главный Исполнительный Директор
- FPGA
- от
- полностью
- функциональная
- функциональность
- Функции
- фундаментальный
- будущее
- игра
- Общие
- порождающий
- поколение
- получить
- Дайте
- данный
- Go
- Цели
- будет
- хорошо
- большой
- группы
- Группы
- обрабатывать
- Аппаратные средства
- имеет
- помощь
- иерархия
- на высшем уровне
- высокая производительность
- высший
- очень
- целостный
- ЧАСЫ
- Как
- How To
- HPC
- HTTPS
- огромный
- Людей
- Гибридный
- идеи
- идентифицирующий
- Влияние
- осуществлять
- реализация
- важную
- внушительный
- что она
- in
- включать
- повышение
- все больше и больше
- в отдельности
- промышленность
- информация
- интегрированный
- интеграции.
- целостность
- намерение
- взаимодействовать
- Интерфейс
- интерфейсы
- в нашей внутренней среде,
- включать в себя
- IP
- вопрос
- вопросы
- IT
- пункты
- саму трезвость
- путешествие
- Капур
- Сохранить
- Основные
- Вид
- Знать
- знания
- Отсутствие
- большой
- Фамилия
- слой
- слоев
- узнали
- изучение
- уровень
- уровни
- Кредитное плечо
- Вероятно
- мало
- дольше
- посмотреть
- выглядит как
- серия
- Продукция
- сделанный
- Создание
- управлять
- способ
- многих
- отображение
- Маркетинг
- массивно
- Совпадение
- макс-ширина
- значимым
- означает
- Память
- идти
- объединение
- методологии
- Методология
- Метрика
- может быть
- отсутствующий
- модель
- моделирование
- Модели
- изменять
- БОЛЕЕ
- самых
- перемещение
- с разными
- необходимо
- Необходимость
- потребности
- сеть
- сетей
- нервный
- нейронной сети
- Новые
- понятие
- номер
- номера
- ONE
- операционный
- операционная система
- Возможность
- Оптимизировать
- оптимизирующий
- заказ
- OS
- Другое
- собственный
- пакет
- коробок
- Параллельные
- параметры
- часть
- особый
- особенно
- проходит
- мимо
- путь
- паттеранами
- Люди
- производительность
- перспектива
- физический
- кусок
- штук
- Часть
- Мест
- Платформа
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- Точка
- пунктов
- бассейн
- возможное
- потенциал
- мощностью
- Пракаш
- президент
- Основной
- принцип
- Проблема
- проблемам
- процесс
- обработка
- процессоры
- Продукт
- Продукция
- FitPartner™
- Прогресс
- свойства
- предложило
- протокол
- прототип
- Прототипы
- макетирования
- обеспечивать
- приводит
- реальные
- область
- причина
- признавать
- Red
- Red Hat
- уменьшить
- эталонный дизайн
- публикации
- требовать
- обязательный
- Требования
- требуется
- исследователи
- ресурс
- надежный
- Роли
- Run
- Бег
- то же
- Сохранить
- Сценарии
- безопасность
- видя
- поиск
- видит
- полупроводник
- старший
- смысл
- последовательный
- серьезный
- набор
- должен
- Шоу
- подпись
- сигнал
- аналогичный
- Саймон
- просто
- моделирование
- с
- одинарной
- Медленно
- So
- уже
- Software
- Решение
- Решения
- некоторые
- Кто-то
- удалось
- Источник
- пролеты
- специалист
- конкретный
- стек
- Стеки
- стандарт
- стандартов
- Начало
- Начало
- Область
- статистика
- Шаг
- По-прежнему
- раздражитель
- Стратегия
- поток
- сильный
- успешный
- Успешно
- такие
- достаточный
- поставка
- Коммутатор
- система
- системы
- с учетом
- взять
- принимает
- говорить
- Сложность задачи
- команды
- снижения вреда
- Технологии
- terms
- тестXNUMX
- Тестирование
- тестов
- Ассоциация
- Местоположение
- Будущее
- их
- сами
- тепловой
- задача
- вещи
- три
- Через
- Тим
- время
- Timed
- синхронизация
- тип
- в
- сегодня
- вместе
- слишком
- инструменты
- топ
- к
- Традиционно
- правда
- Типы
- понимать
- На ходу
- единиц
- us
- использование
- Информация о пользователе
- пользователей
- использовать
- Использующий
- VALIDATE
- Проверка
- ценный
- различный
- проверка
- проверено
- проверить
- проверка
- VIP
- Виртуальный
- виртуальные миры
- Смотреть
- способы
- Что
- будь то
- который
- в то время как
- КТО
- будете
- без
- Работа
- разрабатывать
- работает
- Мир
- мире
- бы
- письмо
- ВАШЕ
- зефирнет