Как правило, дизайн ASIC - это командная работа из-за сложности и количества работы. Я приведу приблизительный порядок шагов, хотя некоторые шаги могут выполняться параллельно или не по порядку. Я перечислю инструменты, которые я использовал для каждой задачи, но она не будет энциклопедической.
Создайте библиотеку клеток. (В качестве альтернативы, большинство процессов имеют библиотеки Gate, которые имеются в продаже. Я бы рекомендовал это, если вы не знаете, что вам нужно что-то, что недоступно.) Это включает в себя проектирование нескольких стробов мощности привода для столько логических функций, сколько необходимо, разработку драйверов / приемников пэдов, и любые макросы, такие как умножитель массива или память. Как только схема для каждой ячейки разработана и проверена, должна быть разработана физическая схема. Я использовал Cadence Virtuoso для этого процесса, наряду с симуляторами аналоговых цепей, такими как Spectre и HSPICE .
Охарактеризуйте клеточную библиотеку. (Если у вас есть сторонняя библиотека шлюза, это обычно делается для вас.) Каждая ячейка в вашей библиотеке должна быть смоделирована для генерации таблиц синхронизации для статического анализа синхронизации (STA). Это включает в себя получение готовой ячейки, извлечение паразитных схем компоновки с использованием Assura , Diva или Caliber и моделирование схемы при различных входных условиях и выходных нагрузках. Это создает временную модель для каждого шлюза, которая совместима с вашим пакетом STA. Модели времени обычно находятся в формате файла Liberty . Я использовал Silicon Smart и Liberty-NCXсмоделировать все необходимые условия. Имейте в виду, что для правильной работы большинства программ вам, вероятно, понадобятся модели синхронизации в «наихудшем», «номинальном» и «наилучшем случае».
Синтезируйте свой дизайн. У меня нет опыта работы с высокоуровневыми компиляторами, но в конце концов компилятор или цепочка компиляторов должны взять ваш высокоуровневый дизайн и сгенерировать список соединений уровня шлюза. Результат синтеза - это первый взгляд на теоретическую производительность системы, где впервые решаются проблемы с мощностью привода. Я использовал Design Compiler для RTL-кода.
Разместите и направьте свой дизайн. Это берет список соединений уровня шлюза из синтезатора и превращает его в физический проект. В идеале это создает компоновку площадок, готовых к изготовлению. Это действительно легко настроить программное обеспечение P & R, чтобы автоматически делать тысячи ошибок DRC, так что не все развлечения и игры на этом этапе тоже. Большая часть программного обеспечения будет управлять проблемами силы привода и генерировать деревья часов в соответствии с указаниями. Некоторые программные пакеты включают Astro, IC Compiler, Silicon Encounter и Silicon Ensemble. Конечным результатом от места и маршрута является окончательный список соединений, окончательный макет и извлеченные паразитные макеты.
Статический анализ времени после размещения. Целью здесь является проверка того, что ваш дизайн соответствует вашей спецификации времени и не имеет проблем с настройкой, удержанием или стробированием. Если ваши требования к дизайну жесткие, вы можете потратить здесь много времени на исправление ошибок и обновление исправлений в вашем инструменте P & R. Последний инструмент STA, который мы использовали, был PrimeTime .
Физическая проверка макета. После того, как макет сгенерирован инструментом P & R, вам необходимо убедиться, что дизайн соответствует правилам проектирования процесса (Проверка правил проектирования / DRC) и что макет соответствует схеме (Макет против Схемы / LVS). Эти шаги должны быть выполнены, чтобы убедиться, что макет правильно подключен и может быть изготовлен. Опять же, некоторые физические инструменты проверки - Assura , Diva или Caliber .
Моделирование окончательного дизайна. В зависимости от сложности, вы можете выполнить моделирование на уровне транзистора с использованием Specter или HSPICE , моделирование «быстрой специи» с использованием HSIM или полностью цифровое моделирование с использованием ModelSim или VCS . Вы должны иметь возможность генерировать симуляции с реалистичными задержками с помощью инструмента STA или P & R.
Начать с существующей библиотеки шлюзов - это огромная экономия времени, а также использовать любые макросы, которые приносят пользу вашему дизайну, такие как память, микроконтроллер или альтернативные блоки обработки. Важным фактором также является управление сложностью проекта - проще будет проверить схему с одним тактовым генератором, чем схему с несколькими доменами тактовых импульсов.