Чем дизайн ASIC отличается от синтеза FPGA HDL?


42

У меня был некоторый опыт работы с наборами инструментов FPGA / HDL, такими как Xilinx ISE, Lattice Diamond и т. Д. Общий рабочий процесс - написание Verilog / VHDL, моделирование, тестирование, а затем программирование FPGA.

Я слышал, как несколько человек говорили, что дизайн ASIC совсем другой. Какие наборы инструментов используются для двух основных типов ASIC, ASIC уровня затвора и ASIC уровня транзистора? Я изучал инструменты синтеза высокого уровня, такие как Catapult C и Cadence C, для Silicon, но я еще ни разу не пробовал. Можете ли вы объяснить различные типы инструментов, доступных в поле ASIC / FPGA, которые могут изменить / ускорить типичный рабочий процесс HDL?

Ответы:


39

Как правило, дизайн ASIC - это командная работа из-за сложности и количества работы. Я приведу приблизительный порядок шагов, хотя некоторые шаги могут выполняться параллельно или не по порядку. Я перечислю инструменты, которые я использовал для каждой задачи, но она не будет энциклопедической.

  1. Создайте библиотеку клеток. (В качестве альтернативы, большинство процессов имеют библиотеки Gate, которые имеются в продаже. Я бы рекомендовал это, если вы не знаете, что вам нужно что-то, что недоступно.) Это включает в себя проектирование нескольких стробов мощности привода для столько логических функций, сколько необходимо, разработку драйверов / приемников пэдов, и любые макросы, такие как умножитель массива или память. Как только схема для каждой ячейки разработана и проверена, должна быть разработана физическая схема. Я использовал Cadence Virtuoso для этого процесса, наряду с симуляторами аналоговых цепей, такими как Spectre и HSPICE .

  2. Охарактеризуйте клеточную библиотеку. (Если у вас есть сторонняя библиотека шлюза, это обычно делается для вас.) Каждая ячейка в вашей библиотеке должна быть смоделирована для генерации таблиц синхронизации для статического анализа синхронизации (STA). Это включает в себя получение готовой ячейки, извлечение паразитных схем компоновки с использованием Assura , Diva или Caliber и моделирование схемы при различных входных условиях и выходных нагрузках. Это создает временную модель для каждого шлюза, которая совместима с вашим пакетом STA. Модели времени обычно находятся в формате файла Liberty . Я использовал Silicon Smart и Liberty-NCXсмоделировать все необходимые условия. Имейте в виду, что для правильной работы большинства программ вам, вероятно, понадобятся модели синхронизации в «наихудшем», «номинальном» и «наилучшем случае».

  3. Синтезируйте свой дизайн. У меня нет опыта работы с высокоуровневыми компиляторами, но в конце концов компилятор или цепочка компиляторов должны взять ваш высокоуровневый дизайн и сгенерировать список соединений уровня шлюза. Результат синтеза - это первый взгляд на теоретическую производительность системы, где впервые решаются проблемы с мощностью привода. Я использовал Design Compiler для RTL-кода.

  4. Разместите и направьте свой дизайн. Это берет список соединений уровня шлюза из синтезатора и превращает его в физический проект. В идеале это создает компоновку площадок, готовых к изготовлению. Это действительно легко настроить программное обеспечение P & R, чтобы автоматически делать тысячи ошибок DRC, так что не все развлечения и игры на этом этапе тоже. Большая часть программного обеспечения будет управлять проблемами силы привода и генерировать деревья часов в соответствии с указаниями. Некоторые программные пакеты включают Astro, IC Compiler, Silicon Encounter и Silicon Ensemble. Конечным результатом от места и маршрута является окончательный список соединений, окончательный макет и извлеченные паразитные макеты.

  5. Статический анализ времени после размещения. Целью здесь является проверка того, что ваш дизайн соответствует вашей спецификации времени и не имеет проблем с настройкой, удержанием или стробированием. Если ваши требования к дизайну жесткие, вы можете потратить здесь много времени на исправление ошибок и обновление исправлений в вашем инструменте P & R. Последний инструмент STA, который мы использовали, был PrimeTime .

  6. Физическая проверка макета. После того, как макет сгенерирован инструментом P & R, вам необходимо убедиться, что дизайн соответствует правилам проектирования процесса (Проверка правил проектирования / DRC) и что макет соответствует схеме (Макет против Схемы / LVS). Эти шаги должны быть выполнены, чтобы убедиться, что макет правильно подключен и может быть изготовлен. Опять же, некоторые физические инструменты проверки - Assura , Diva или Caliber .

  7. Моделирование окончательного дизайна. В зависимости от сложности, вы можете выполнить моделирование на уровне транзистора с использованием Specter или HSPICE , моделирование «быстрой специи» с использованием HSIM или полностью цифровое моделирование с использованием ModelSim или VCS . Вы должны иметь возможность генерировать симуляции с реалистичными задержками с помощью инструмента STA или P & R.

Начать с существующей библиотеки шлюзов - это огромная экономия времени, а также использовать любые макросы, которые приносят пользу вашему дизайну, такие как память, микроконтроллер или альтернативные блоки обработки. Важным фактором также является управление сложностью проекта - проще будет проверить схему с одним тактовым генератором, чем схему с несколькими доменами тактовых импульсов.


2
Так как вы упомянули Virtuoso, Cadence предоставляет полный набор инструментов для дизайна (я думаю, что он называется Opus), где можно начать со схем, расположить одну ячейку, оценить паразитные эффекты, охарактеризовать их и затем встроить в верхний уровень. ,
Клабаккио

1
Я думаю, что каждый крупный поставщик предлагает полный набор инструментов. В итоге мы использовали несколько поставщиков в нашей цепочке инструментов, и таким образом мы могли использовать инструменты, с которыми мы были наиболее знакомы или имели лучшую в отрасли репутацию.
W5VO

1
Сбор инструментов для поддержки библиотеки или комплекта дизайна практически обязателен. Если вы не используете поддерживаемую версию определенного программного обеспечения, некоторые несовместимости могут убить ваш дизайн или дать ложные показания. При этом подавляющее большинство инструментов EDA, которые я видел, работают в системах Unix / Linux. У большинства есть крутые кривые обучения.
W5VO

1
@MartinThompson Абсолютно. Чем больше вы расширяете границы своей технологии (ASIC / FPGA), тем важнее эти шаги. При этом версии этих инструментов для ASIC дают вам гораздо больше веревок, чтобы вы могли попасть в неприятности.
W5VO

1
Обратите внимание, что 1 и 2 не являются общей частью дизайна. Эти шаги являются частью так называемой «квалификации процесса», а результаты (полностью охарактеризованные библиотеки) предоставляются FAB Vendor. Но некоторые компании делают «полный индивидуальный дизайн», и должны выполнить 1 и 2 самостоятельно.
Ale..chenski

7

Ответ от W5VO имеет тенденцию сосредотачиваться на заднем конце, и это является одним из основных различий между ASIC и FPGA потоков; но он пропускает часть проверки цифрового дизайна.

Когда создание дизайна на кремнии может стоить миллион долларов и более, и вы можете упаковать гораздо больше используемых шлюзов в ASIC по сравнению с FPGA, тогда вы проводите намного больше времени вдали от лаборатории и печатных плат перед рабочими станциями, на которых работают симуляторные фермы. эмуляторы и написание тестов для более полной проверки проекта ASIC перед его выпуском в производство. Разработчики ПЛИС, как правило, проводят большую часть своего тестирования, используя ПЛИС в системе, частью которой она станет.


Я хотел бы добавить, что базовый рабочий процесс для цифрового дизайнера не сильно отличается между ASIC и FPGA, но ASIC обладает гораздо большей гибкостью с точки зрения доступных макро / микроэлементов, размещения и маршрутизации, в то время как FPGA ограничена их заранее изготовленными логическими блоками и ограничено в топологии межсоединений. Таким образом, FPGA не может достичь уровней производительности ASIC и может диктовать немного другие дизайнерские решения.
Ale..chenski

Привет Али Чен. Если цифровой дизайн и цифровая верификация считаются раздельными, тогда процесс для чисто цифрового дизайна ближе к FPGA по сравнению с ASIC, но, как я уже упоминал, в верификации существует большое разделение. :-)
Paddy3118 20.09.16
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.