Можно ли быть "здоровым и богатым"? Почему бы нет. Достаточно научиться разрабатывать " здоровые" системы на недорогих структурных ASIC с помощью "горизонтальных" САПР.
Термин "система на кристалле" (System on Chip – SoC) появился несколько лет назад, когда уровень развития полупроводниковой технологии позволил реализовывать на кристалле не только отдельные устройства, но и функционально законченные системы. В целом понятие "система на кристалле" предполагает любую более или менее сложную и функционально завершенную систему, содержащую, как правило, микропроцессорное ядро и реализуемую на отдельном кристалле. Основной способ реализации наиболее сложных систем – заказные интегральные схемы (ASIC). Для небольших проектов и в качестве вспомогательного средства используются ПЛИС. Сегодня между этими двумя полюсами – ASIC и ПЛИС – активно возникают новые способы реализации. Возможно, именно с использованием этих новых направлений будет связан следующий виток развития SoC.
СПОСОБЫ РЕАЛИЗАЦИИ СИСТЕМ НА КРИСТАЛЛЕ
В полной мере использовать возможности современных полупроводниковых технологий для достижения максимальной производительности, уменьшения потребляемой мощности и площади кристалла позволяет проектирование ASIC на основе библиотек стандартных элементов. Стоимость разработки при этом чрезвычайно высока в силу использования сложных дорогостоящих средств проектирования и необходимости создания большого числа масок (более двадцати). Кроме того, из-за сложности проектов высок риск ошибок, приводящих к необходимости перепроектирования и повторного изготовления комплекта масок.
На рис.1 приведены графики изменения стоимости изготовления полного комплекта масок для различных технологий. Видно, что после внедрения новой технологии стоимость производства со временем постепенно снижается, но в целом по новейшим технологиям ее величина растет экспонентциально. Использование новейших технологий оказывается экономически оправданным только при проектировании изделий массового применения, таких как процессоры, память, программируемая логика. Неудивительно, что число проектов ASIC в мире сокращается быстрыми темпами: с 10000 в 1998 году до 4500 в 2002 (из которых в массовое производство пошли только 3500 проектов). По некоторым оценкам, в 2003 году было начато менее 4000 проектов ASIC.
Проектирование на основе ПЛИС не связано с затратами на запуск производства, поскольку предполагает использование стандартных интегральных схем. Относительно короткий цикл и низкая стоимость средств проектирования, возможность устранения ошибок путем перепрограммирования делают реализацию проектов на основе ПЛИС весьма привлекательной. Однако большая потребляемая мощность, низкая производительность и очень высокая стоимость кристаллов по сравнению с ASIC существенно ограничивают область применения ПЛИС.
Компромиссным подходом в течение достаточно долгого времени было использование вентильных матриц, проектирование на которых, аналогично ASIC, ведется на основе библиотечных элементов, но в рамках единого, заранее разработанного и изготовленного конструктива. Базовые пластины для вентильных матриц изготавливаются массовым способом, а для создания новой интегральной схемы достаточно спроектировать и изготовить только заказные слои металла. Однако с ростом числа слоев металла при переходе на новые технологии количество заказных масок стало сравнимым с их количеством, требуемым для ASIC. При том, что в вентильных матрицах используется аналогичный ASIC продолжительный маршрут и дорогостоящие средства проектирования, а в самой концепции заложена избыточность площади кристалла, преимущества метода были сведены на нет и вентильные матрицы практически вышли из употребления.
Ниша, которую занимали вентильные матрицы, сейчас активно заполняется новыми гибридными технологиями под общим названием "структурные ASIC" (Structured ASIC). Структурные ASIC состоят из заранее спроектированной и изготовленной матрицы макроячеек (рис.2), имеющих однородную структуру (в этом смысле они похожи на ПЛИС). Как правило, все компоненты, схемы синхронизации, тестирования и самодиагностики уже реализованы, и это существенно упрощает разработку. Требуется спроектировать только от одного до трех слоев металла для функциональной настройки макроячеек и реализации межсоединений между макроячейками. Стоимость запуска в производство при этом составляет порядка 10–20% от аналогичной величины для ASIC. Даже с учетом высокой стоимости изготовления по новейшим технологиям (см. рис.1) такие затраты вполне приемлемы для разработки SoC широкой номенклатуры. При разработке структурных ASIC заранее учитываются субмикронные эффекты (электромиграция, падение напряжения на линиях связей), взаимное влияние сигналов, реализация средств синхронизации и тестирования. Поэтому маршрут проектирования существенно упрощен по сравнению с традиционными ASIC и может включать только 2–3 системы для моделирования, синтеза и планирования площади кристалла с последующим проектированием топологии на фирме-изготовителе. Время проектирования топологии также значительно сокращается (три-четыре недели от передачи списка цепей на проектирование топологии до получения готовых прототипов). Направление структурных ASIC, возникнув около двух лет назад как переосмысление концепции вентильных матриц на новом этапе эволюции полупроводниковых технологий, активно развивается. Около двух десятков компаний, таких как LSI Logic, NEC, Fujitsu, AMI Semiconductor, Lightspeed Semiconductor, Chip Express, eASIC, предлагают свои решения в этой области.
Можно привести следующие сравнительные оценки методов реализации SoC (для эквивалентных технологий). Плотность компоновки ПЛИС по сравнению с ASIC – 1% ( 90% площади кристалла ПЛИС используется только для программирования межсоединений), потребляемая мощность выше в 10–15 раз, максимальная производительность – в пределах 20%. Для структурных ASIC плотность компоновки в 50 раз выше, чем в ПЛИС, и, сответственно, составляет 40–60% от плотности стандартных ASIC. Максимальная производительность – 70%, потребляемая мощность выше в 2–3 раза, чем для стандартных ASIC.
В целом аналитики полагают, что время широкого использования ASIC на основе библиотек стандартных элементов проходит. Конечно, за ними останется область массовых и уникальных по характеристикам изделий, но для большинства интегральных схем со средними объемами выпуска будут использоваться именно структурные ASIC, а ПЛИС прочно займут свою нишу в сфере низкопроизводительных приложений с малыми объемами выпуска. Прогнозируемый объем рынка структурных ASIC оценивается в 2–5 миллиардов долларов, которые практически целиком "изымаются" с рынка традиционных ASIC при сохранении положительной динамики роста рынка ПЛИС.
Способы реализации систем на кристалле не ограничиваются вышеперечисленными методами. Существует ряд промежуточных вариантов, которые можно определить как конфигурируемые системы на кристалле (Configurable System on Chip – CsoC). Такие комбинированные методы строятся на сочетании нескольких подходов, могут включать полностью заказные блоки, например микропроцессорные ядра, блоки на основе библиотек стандартных элементов, структурных матриц и полей программируемой логики. Практической реализацией одного из таких методов является серия микросхем компании Triscend, которые могут включать поля программируемой логики, 32-разрядное процессорное ядро ARM7TDMI, микроконтроллер 8051. Компании Lightspeed и eASIC используют подход, при котором разрабатываются структурные блоки, встраиваемые в ASIC. Кристаллы компании Leopard Logic представляют собой комбинацию большого структурного блока и нескольких полей программируемой логики.
Системы на кристалле в полной мере можно реализовать и на современных ПЛИС. Такие проекты получили название "системы на программируемом кристалле" (System on Programmable Chip – SoPC). Действительно, здесь могут присутствовать все компоненты, свойственные системам на кристалле в традиционном понимании: процессорные ядра, память, IP-блоки... Покупка Triscend компанией Xilinx в феврале этого года и разработка компанией Altera серии программируемых масками микросхем Stratix HardCopy показывают, что производители традиционных ПЛИС, со своей стороны, стремятся выйти на рынок более эффективных решений. Средства проектирования по мере усложнения ПЛИС также усложняются, маршрут проектирования начинает походить на маршрут для традиционных ASIC. Включаются этапы планировки площади кристалла, физического синтеза и формальной верификации. Действительно, когда одна итерация цикла проектирования топологии ПЛИС объемом шесть миллионов вентилей занимает сутки, а количество итераций измеряется десятками, оценка временных и прочих ограничений на ранних стадиях, еше до проектирования топологии, становится актуальной задачей. К тому же, поскольку все большая часть проектов ASIC макетируется на ПЛИС (прогноз на ближайшее время – до 80% от общего числа), а успешные ПЛИС-проекты могут переноситься на ASIC, желательно, чтобы и в маршруте, и в средствах проектирования заранее учитывалась возможность перехода на другой вариант реализации.
Итак, между ASIC и ПЛИС развивается целый спектр методов реализации систем на кристалле, происходит взаимопроникновение, комбинирование подходов с целью поиска вариантов наиболее эффективных с технической и экономической точки зрения. Структурные ASIC оказываются реальной альтернативой как ПЛИС, так и ASIC. Объемы производства, при которых их применение может быть экономически целесообразно, оцениваются от одной тысячи до ста тысяч микросхем в год.
ИСПОЛЬЗОВАНИЕ IP-БЛОКОВ
Одновременно с появлением концепции системы на кристалле возникли идеи создания методологии проектирования на основе унифицированных наборов готовых базовых блоков (платформ). Интерфейсы компонентов платформы (процессоров, блоков памяти и управления, шинных интерфейсов и др.) в рамках достаточно широкого класса задач должны быть унифицированы, чтобы новые устройства можно было "собирать" из блоков, как конструктор. Причем "собирать" на системном уровне, уровне функционального описания, проводя анализ и глобальную оптимизацию всей системы в целом, а далее использовать готовые аппаратные решения, заложенные в описаниях базовых блоков (IP-блоков). В силу проблем с созданием переносимой универсальной аппаратной начинки блоков, которую можно было бы переиспользовать при производстве по различным технологиям, на различных фабриках в целом внедрение такого подхода в качестве универсальной методологии не оправдалось. Однако это дало толчок развитию индустрии IP-блоков. В результате сейчас существует большой выбор библиотек специализированных IP-блоков для различных прикладных областей и технологий изготовления микросхем, в частности библиотек IP-блоков для ПЛИС, представленных в виде синтезируемых блоков на языках высокого уровня, списков цепей в элементном базисе производителей ПЛИС и готовых макросов с топологической реализацией.
Структурные ASIC также обычно сопровождаются библиотеками IP-блоков. Это позволяет говорить о них как о готовых платформах для реализации систем на кристалле. Например, библиотека структурных ASIC компании LSI Logic включает более четырехсот элементов. Кроме того, может использоваться библиотека IP-блоков CoreWare, содержащая процессоры, периферийные блоки, компоненты шины AMBA, интерфейсы памяти и др. Для реализации процессорных ядер (ARM, MIPS, сигнальный процессор ZSP) предусмотрены специальные области. Если такие процессоры не используются, в этих областях можно реализовывать и произвольную логику. Процессоры, как и другие IP-блоки библиотек, верифицированы и могут использоваться в виде готовых макросов.
ОРГАНИЗАЦИЯ СРЕДСТВ ПРОЕКТИРОВАНИЯ
На сегодняшний день реально не существует ни одной интегрированной системы САПР, способной эффективно решать задачи проектирования систем на кристалле во всем диапазоне возможных способов реализации. Производители интегрированных САПР стараются поддерживать внутри своих систем весь маршрут проектирования (от спецификации до физической реализации), но только для определенного класса микросхем. Например, широко известные САПР компаний Xilinx и Altera (как и САПР других производителей ПЛИС) ориентированы исключительно на собственные микросхемы. Средства проектирования ASIC вроде бы не привязаны к конкретным производителям и технологиям, но и они рассчитаны только на проектирование в базисе библиотек стандартных элементов и не поддерживают работы со специфическим элементным базисом и жесткими конструктивами кристаллов. Образно говоря, все интегрированные системы выстроены "вертикально" и опираются на определенный способ физической реализации .
Но если предметно посмотреть на такие САПР, окажется, что интегрированные маршруты проектирования все равно состоят из отдельных систем (моделирования, синтеза и др.), каждая из которых имеет свой пользовательский интерфейс, систему команд, базу данных, а взаимодействие между системами основано на стандартных интерфейсах. К счастью, основные этапы проектирования (спецификация проекта, моделирование, верификация, логический синтез, физическая реализация) определены достаточно четко и поддерживаются стандартными интерфейсами. Это позволяет без потери эффективности и дополнительных затрат на интеграцию комбинировать средства проектирования различных производителей, выбирая те, которые наилучшим образом отвечают решаемым задачам.
С целью обеспечения единства инфраструктуры и максимальной унификации маршрутов проектирования, на наш взгляд, необходимо отойти от "вертикального" сегментирования средств проектирования по способам физической реализации или производителям САПР, и перейти к "горизонтальному" делению по классам задач, решаемых на отдельных этапах маршрута проектирования. В общем маршруте проектирования можно выделить три больших этапа, или уровня проектирования, а именно:
· системный уровень, где производится определение и спецификация основных функций проектируемой системы, создание исполняемой системной модели, анализ алгоритмов, протоколов, сценариев работы и общих функциональных характеристик;
· функциональный уровень, связанный с разработкой спецификаций функциональных блоков на языках высокого уровня описания аппаратуры – Verilog или VHDL, их верификацией, переходом в элементный базис производителя микросхем средствами логического синтеза;
· уровень проектирования топологии, где выполняется реализация проекта на физическом уровне с детальным размещением, трассировкой, генерацией тестовых структур и верификацией топологии.
Выбор средств проектирования топологии определяется способом реализации. Для ПЛИС – это средства конкретного производителя. Для ASIC проектирование топологии сейчас все больше выполняется специальными дизайн-бюро, которые имеют полный набор всех необходимых средств проектирования. Связано это как с ростом стоимости средств проектирования (пропорциональной росту стоимости производства при переходе на новые технологические нормы), так и с необходимостью наличия специальных навыков и опыта работы в области субмикронной и нанотопологии, где ошибки проектирования стоят как никогда дорого. Для структурных ASIC проектирование топологии выполняется изготовителем, как правило, с использованием специально адаптированных под особенности конкретной архитектуры коммерческих САПР.
В любом случае, когда сейчас говорят о разработке ASIC, речь обычно идет о доведении проекта до уровня описания списка соединений в библиотечном базисе производителя и (при технологических нормах ниже 0,25 микрон) прототипа размещения элементов, с последующей передачей этих данных на завершающие этапы физического проектирования. Поэтому с точки зрения унификации маршрутов проектирования интерес представляют первые два уровня проектирования – системный и функциональный.
СРЕДСТВА СИСТЕМНОГО ПРОЕКТИРОВАНИЯ
Понятие системного уровня проектирования фактически включает в себя все, что лежит выше уровня разработки RTL. Здесь создается модель исполняемой спецификации, которая служит эталоном поведения проектируемой системы на всех последующих этапах. В системном проектировании можно выделить три уровня детализации:
· уровень "миссии" и выбора общей концепции построения системы, включающий моделирование операционной среды, в которой будет работать проектируемая система, определение статических и динамических сценариев, планирование целевых задач;
· архитектурный уровень с моделированием и анализом производительности систем, сетевых архитектур и протоколов, пропускной способности каналов;
· уровень микроархитектуры, т.е. моделирование и анализ алгоритмов, протоколов, схем разрешения конфликтов на шинах, методов управления памятью, программно-аппаратное разделение и разработка программного обеспечения (драйверы и др.).
Если первые два уровня относятся к задаче концептуального построения и анализа системы, то микроархитектура непосредственно связана с последующим этапом функционального проектирования. Сегодня, когда методология проектирования на RTL-уровне в общем устоялась, именно в области средств проектирования микроархитектуры инновации наиболее активны. В первую очередь это связано с применением языка С/С++ и производных языков на его основе, таких как SystemC, Handel-C, Stream-C и других для разработки моделей аппаратных блоков. Идея использования моделей высокого уровня, реализованных на языках программирования не нова, но сейчас поддержка таких языков обеспечивается не только в системах моделирования, но и в системах синтеза.
Так, проекты созданные в одной из популярных систем разработки и моделирования алгоритмов цифровой обработки сигналов Matlab/Simulink, обычно использовались как спецификации для ручного кодирования моделей на уровне RTL. Разработанная компаний AccelChip система синтеза высокого уровня теперь позволяет сгенерировать синтезируемые RTL-модели на языках VHDL и Verilog напрямую из Matlab с поддержкой автоматического преобразования арифметики плавающей точки в фиксированную.
Другой подход используется компанией Celoxica в системе DK2 Design Suite, которая реализует методологию программного компилятивного проектирования. Среда проектирования позволяет выполнить общую модель и верификацию проекта на языке С, провести разделение на программную и аппаратную части и напрямую синтезировать последнюю в элементный базис ПЛИС или в код VHDL/Verilog. Поддерживаются языки C, C++, SystemC и Handel-C, а также компиляция исходных кодов в процессорные ядра, например Xilinx MicroBlaze. Это дает возможность, не меняя исходной спецификации алгоритма, быстро реализовать его в макетном варианте на процессорном ядре ПЛИС, провести оптимизацию с частичной или полной аппаратной реализацией и затем, при необходимости, сгенерировать код RTL для перевода на ASIC.
Обеспечение целостности исходных спецификаций при их трансформации с верхнего уровня на уровень функционального проектирования имеет принципиальное значение. Поэтому фирмы-разработчики систем логического моделирования стремятся обеспечить совместное моделирование и поддержку VHDL, Verilog, C/C++, SystemC и других языков из единой интегрированной среды проектирования. Например, помимо перечисленных языков, системы моделирования компании Aldec обеспечивают совместное моделирование с Matlab/Simulink, имеют встроенные системы отладки С/С++ и Handel-C и встроенные интерфейсы с системами AccelChip и Celoxica, так что разработчики могут в рамках единой среды проектирования выполнять разработку и отладку кода, моделирование и синтез с гибкой настройкой системы на свой маршрут проектирования.
СРЕДСТВА ФУНКЦИОНАЛЬНОГО ПРОЕКТИРОВАНИЯ
Функциональный уровень на сегодняшний день остается основным при проектировании цифровых систем независимо от их физической реализации. Задача разработчика на функциональном уровне – создать RTL-описание системы, из которого можно средствами логического синтеза получить работоспособный проект. Поэтому к средствам функционального проектирования обычно относят средства моделирования и отладки RTL-кода а также средства логического синтеза из RTL-описаний.
Процесс отладки RTL-кода носит итерационный характер. Уменьшение числа итераций – прямой путь к сокращению стоимости и сроков разработки. Решение этой задачи напрямую связано с созданием средств контроля качества исходного кода, оценки его реализуемости на ранних стадиях выполнения проектов еще до этапа логического синтеза. Кроме того, использование таких средств позволяет обеспечить переносимость проектов с ПЛИС на ASIC. Не секрет, что разработчики ПЛИС зачастую не заботятся о качестве создаваемого VHDL- или Verilog- описания. Ведь всегда можно поправить код и перепрограммировать ПЛИС. А когда работоспособный вариант получен, то до чистки и оптимизации руки, как правило, уже не доходят. В результате казалось бы уже выполненный проект при переносе на ASIC требует существенной переработки и детальной повторной верификации. Использование средств контроля качества на ранних стадиях позволяет значительно облегчить задачу переноса.
Первые поколения таких систем были ограничены лишь проверкой семантики, сейчас появились системы, которые учитывают целостность, завершенность проекта, стиль кодирования, временные ограничения, выполняют анализ площади блоков, нетрассируемых структур и времени распространения сигналов. Важно здесь то, что эти системы дают возможность разработчику оценить реализацию своего проекта на ранней стадии без необходимости иметь знания о физических аспектах дальнейших этапов проектирования. Более того, такой формальный анализ кода на уровне RTL не только повышает качество проекта и сокращает число итераций при логическом синтезе, но и в перспективе дает возможность передачи на завершающие этапы проектирования в специализированные дизайн-центры не списка цепей в элементном базисе производителя, а RTL-кода на языках VHDL или Verilog. Например, компании LSI Logic и NEC для анализа проектов с учетом возможности их реализации на своих структурных ASIC используют специально настроенный САПР компании Tera Systems. Компания IBM также использует средства Tera Systems в перспективном маршруте проектирования ASIC c приемом от заказчиков на финальное проектирование кода на уровне RTL.
Использование предварительного анализа – вещь, конечно, очень полезная, но в любом случае рабочей лошадью для отладки RTL-кода служат средства моделирования. Разработчик создает новые фрагменты кода, запускает моделирование полученной системы, после анализа результатов вносит изменения в код... И так до тех пор, пока не добьется требуемых результатов моделирования. Для ПЛИС, где в основе проектирования лежит принцип "всегда можно все исправить", потребительские характеристики систем моделирования определяются простотой, удобством отладки проектов, низкой стоимостью. Для ASIC (в том числе и структурных) нужно "сделать сразу все правильно". Поэтому основным здесь становится качество логической и временной верификации, даже за счет высокой стоимости систем моделирования.
Сегодня наиболее популярными системами моделирования являются продукты компаний Aldec, Cadence, Mentor Graphics и Synopsys. Если средства Cadence и Synopsys в основном используются в маршрутах проектирования ASIC, то системы моделирования Active-HDL, Riviera компании Aldec и ModelSim компании Mentor Graphics поддерживают также всех производителей ПЛИС. Так, САПР Active-HDL обеспечивает единую интегрированную среду проектирования и моделирования для ПЛИС любых производителей, содержит средства групповой разработки, управления проектами и библиотеками, кросс-отладки и анализа тестового покрытия, текстовые и графические редакторы, а вместе с системой Riviera, включающей в себя ряд специальных средств для верификации ASIC, предоставляет единую среду проектирования для всех возможных способов реализации проектов.
До тех пор, пока передача проекта на разработку топологии осуществляется на уровне списка цепей, разработчикам функционального уровня необходимо будет иметь у себя средства логического и физического синтеза. При всем многобразии подобных средств наиболее универсальным на сегодняшний день является продукт компании Synplicity. Средства Synplicity позволяют проводить логический и физический синтез для ASIC и ПЛИС любых производителей, поддерживают макетирование ASIC на ПЛИС с возможностью автоматического разбиения проекта (с сохранением целостности) на множество ПЛИС, имеют средства отладки прошивок ПЛИС на уровне исходного RTL-описания.
Компания Synplicity наиболее заметна и в плане поддержки синтеза для структурных ASIC. Для структурных ASIC можно использовать и традиционные средства логического синтеза ASIC. Но достижение хороших результатов при логическом синтезе возможно только при специальной настройке на элементный базис используемых структурных ASIC ( обычно более крупный, ближе к ПЛИС, включающий мультиплексоры, триггеры, память). Показательно, что именно систему физического синтеза Synplicity AmplifyASIC, адаптированную под архитектуру своих структурных ASIC, используют такие компании, как LSI Logic и NEC.
В заключение надо заметить, что хотя каждый из производителей строит свой маршрут проектирования, ориентированый на конкретную архитектуру, в целом направление структурных ASIC стимулирует развитие адаптивных коммерческих САПР и методологии функционального проектирования на основе средств формального анализа и контроля реализуемости RTL-описаний. Это может иметь широкое прикладное значение. Эффективный контроль и прогнозирование на функциональном уровне существенно сокращают число итераций и время проектирования. А создание адаптивных средств САПР для отдельных этапов проектирования (моделирование, синтез), при стандартизации переходов от этапа к этапу, позволит обеспечить более высокую степень технологической (от способа реализации) и организационной (от производителя САПР) независимости при организации разработок систем на кристалле.
КОМПАНИИ-ПРОИЗВОДИТЕЛИ СТРУКТУРНЫХ ASIC И СРЕДСТВ САПР ДЛЯ НИХ
AccelChip, Inc. (http://www.accelchip.com)
Aldec, Inc. (http://www.aldec.com)
AMI Semiconductor (http://www.amis.com)
Celoxica, Ltd. (http://www.celoxica.com)
ChipX, Corp. (ранее Chip Express, Corp.) (http://www.chipexpress.com)
eASIC, Corp. ( http://www.easic.com )
Fujitsu, Ltd. (http://www.fujitsu.com)
Leopard Logic, Inc. (http://www.leopardlogic.com)
Lightspeed Semiconductor, Corp. (http://www.lightspeed.com)
LSI Logic, Corp. (http://www.lsilogic.com)
NEC Electronics, Corp. (http://www.necel.com)
Synplicity, Inc. (http://www.synplicity.com)
Tera Systems, Inc. (http://www.terasystems.com)
Triscend, Corp. (http://www.triscend.com)
СПОСОБЫ РЕАЛИЗАЦИИ СИСТЕМ НА КРИСТАЛЛЕ
В полной мере использовать возможности современных полупроводниковых технологий для достижения максимальной производительности, уменьшения потребляемой мощности и площади кристалла позволяет проектирование ASIC на основе библиотек стандартных элементов. Стоимость разработки при этом чрезвычайно высока в силу использования сложных дорогостоящих средств проектирования и необходимости создания большого числа масок (более двадцати). Кроме того, из-за сложности проектов высок риск ошибок, приводящих к необходимости перепроектирования и повторного изготовления комплекта масок.
На рис.1 приведены графики изменения стоимости изготовления полного комплекта масок для различных технологий. Видно, что после внедрения новой технологии стоимость производства со временем постепенно снижается, но в целом по новейшим технологиям ее величина растет экспонентциально. Использование новейших технологий оказывается экономически оправданным только при проектировании изделий массового применения, таких как процессоры, память, программируемая логика. Неудивительно, что число проектов ASIC в мире сокращается быстрыми темпами: с 10000 в 1998 году до 4500 в 2002 (из которых в массовое производство пошли только 3500 проектов). По некоторым оценкам, в 2003 году было начато менее 4000 проектов ASIC.
Проектирование на основе ПЛИС не связано с затратами на запуск производства, поскольку предполагает использование стандартных интегральных схем. Относительно короткий цикл и низкая стоимость средств проектирования, возможность устранения ошибок путем перепрограммирования делают реализацию проектов на основе ПЛИС весьма привлекательной. Однако большая потребляемая мощность, низкая производительность и очень высокая стоимость кристаллов по сравнению с ASIC существенно ограничивают область применения ПЛИС.
Компромиссным подходом в течение достаточно долгого времени было использование вентильных матриц, проектирование на которых, аналогично ASIC, ведется на основе библиотечных элементов, но в рамках единого, заранее разработанного и изготовленного конструктива. Базовые пластины для вентильных матриц изготавливаются массовым способом, а для создания новой интегральной схемы достаточно спроектировать и изготовить только заказные слои металла. Однако с ростом числа слоев металла при переходе на новые технологии количество заказных масок стало сравнимым с их количеством, требуемым для ASIC. При том, что в вентильных матрицах используется аналогичный ASIC продолжительный маршрут и дорогостоящие средства проектирования, а в самой концепции заложена избыточность площади кристалла, преимущества метода были сведены на нет и вентильные матрицы практически вышли из употребления.
Ниша, которую занимали вентильные матрицы, сейчас активно заполняется новыми гибридными технологиями под общим названием "структурные ASIC" (Structured ASIC). Структурные ASIC состоят из заранее спроектированной и изготовленной матрицы макроячеек (рис.2), имеющих однородную структуру (в этом смысле они похожи на ПЛИС). Как правило, все компоненты, схемы синхронизации, тестирования и самодиагностики уже реализованы, и это существенно упрощает разработку. Требуется спроектировать только от одного до трех слоев металла для функциональной настройки макроячеек и реализации межсоединений между макроячейками. Стоимость запуска в производство при этом составляет порядка 10–20% от аналогичной величины для ASIC. Даже с учетом высокой стоимости изготовления по новейшим технологиям (см. рис.1) такие затраты вполне приемлемы для разработки SoC широкой номенклатуры. При разработке структурных ASIC заранее учитываются субмикронные эффекты (электромиграция, падение напряжения на линиях связей), взаимное влияние сигналов, реализация средств синхронизации и тестирования. Поэтому маршрут проектирования существенно упрощен по сравнению с традиционными ASIC и может включать только 2–3 системы для моделирования, синтеза и планирования площади кристалла с последующим проектированием топологии на фирме-изготовителе. Время проектирования топологии также значительно сокращается (три-четыре недели от передачи списка цепей на проектирование топологии до получения готовых прототипов). Направление структурных ASIC, возникнув около двух лет назад как переосмысление концепции вентильных матриц на новом этапе эволюции полупроводниковых технологий, активно развивается. Около двух десятков компаний, таких как LSI Logic, NEC, Fujitsu, AMI Semiconductor, Lightspeed Semiconductor, Chip Express, eASIC, предлагают свои решения в этой области.
Можно привести следующие сравнительные оценки методов реализации SoC (для эквивалентных технологий). Плотность компоновки ПЛИС по сравнению с ASIC – 1% ( 90% площади кристалла ПЛИС используется только для программирования межсоединений), потребляемая мощность выше в 10–15 раз, максимальная производительность – в пределах 20%. Для структурных ASIC плотность компоновки в 50 раз выше, чем в ПЛИС, и, сответственно, составляет 40–60% от плотности стандартных ASIC. Максимальная производительность – 70%, потребляемая мощность выше в 2–3 раза, чем для стандартных ASIC.
В целом аналитики полагают, что время широкого использования ASIC на основе библиотек стандартных элементов проходит. Конечно, за ними останется область массовых и уникальных по характеристикам изделий, но для большинства интегральных схем со средними объемами выпуска будут использоваться именно структурные ASIC, а ПЛИС прочно займут свою нишу в сфере низкопроизводительных приложений с малыми объемами выпуска. Прогнозируемый объем рынка структурных ASIC оценивается в 2–5 миллиардов долларов, которые практически целиком "изымаются" с рынка традиционных ASIC при сохранении положительной динамики роста рынка ПЛИС.
Способы реализации систем на кристалле не ограничиваются вышеперечисленными методами. Существует ряд промежуточных вариантов, которые можно определить как конфигурируемые системы на кристалле (Configurable System on Chip – CsoC). Такие комбинированные методы строятся на сочетании нескольких подходов, могут включать полностью заказные блоки, например микропроцессорные ядра, блоки на основе библиотек стандартных элементов, структурных матриц и полей программируемой логики. Практической реализацией одного из таких методов является серия микросхем компании Triscend, которые могут включать поля программируемой логики, 32-разрядное процессорное ядро ARM7TDMI, микроконтроллер 8051. Компании Lightspeed и eASIC используют подход, при котором разрабатываются структурные блоки, встраиваемые в ASIC. Кристаллы компании Leopard Logic представляют собой комбинацию большого структурного блока и нескольких полей программируемой логики.
Системы на кристалле в полной мере можно реализовать и на современных ПЛИС. Такие проекты получили название "системы на программируемом кристалле" (System on Programmable Chip – SoPC). Действительно, здесь могут присутствовать все компоненты, свойственные системам на кристалле в традиционном понимании: процессорные ядра, память, IP-блоки... Покупка Triscend компанией Xilinx в феврале этого года и разработка компанией Altera серии программируемых масками микросхем Stratix HardCopy показывают, что производители традиционных ПЛИС, со своей стороны, стремятся выйти на рынок более эффективных решений. Средства проектирования по мере усложнения ПЛИС также усложняются, маршрут проектирования начинает походить на маршрут для традиционных ASIC. Включаются этапы планировки площади кристалла, физического синтеза и формальной верификации. Действительно, когда одна итерация цикла проектирования топологии ПЛИС объемом шесть миллионов вентилей занимает сутки, а количество итераций измеряется десятками, оценка временных и прочих ограничений на ранних стадиях, еше до проектирования топологии, становится актуальной задачей. К тому же, поскольку все большая часть проектов ASIC макетируется на ПЛИС (прогноз на ближайшее время – до 80% от общего числа), а успешные ПЛИС-проекты могут переноситься на ASIC, желательно, чтобы и в маршруте, и в средствах проектирования заранее учитывалась возможность перехода на другой вариант реализации.
Итак, между ASIC и ПЛИС развивается целый спектр методов реализации систем на кристалле, происходит взаимопроникновение, комбинирование подходов с целью поиска вариантов наиболее эффективных с технической и экономической точки зрения. Структурные ASIC оказываются реальной альтернативой как ПЛИС, так и ASIC. Объемы производства, при которых их применение может быть экономически целесообразно, оцениваются от одной тысячи до ста тысяч микросхем в год.
ИСПОЛЬЗОВАНИЕ IP-БЛОКОВ
Одновременно с появлением концепции системы на кристалле возникли идеи создания методологии проектирования на основе унифицированных наборов готовых базовых блоков (платформ). Интерфейсы компонентов платформы (процессоров, блоков памяти и управления, шинных интерфейсов и др.) в рамках достаточно широкого класса задач должны быть унифицированы, чтобы новые устройства можно было "собирать" из блоков, как конструктор. Причем "собирать" на системном уровне, уровне функционального описания, проводя анализ и глобальную оптимизацию всей системы в целом, а далее использовать готовые аппаратные решения, заложенные в описаниях базовых блоков (IP-блоков). В силу проблем с созданием переносимой универсальной аппаратной начинки блоков, которую можно было бы переиспользовать при производстве по различным технологиям, на различных фабриках в целом внедрение такого подхода в качестве универсальной методологии не оправдалось. Однако это дало толчок развитию индустрии IP-блоков. В результате сейчас существует большой выбор библиотек специализированных IP-блоков для различных прикладных областей и технологий изготовления микросхем, в частности библиотек IP-блоков для ПЛИС, представленных в виде синтезируемых блоков на языках высокого уровня, списков цепей в элементном базисе производителей ПЛИС и готовых макросов с топологической реализацией.
Структурные ASIC также обычно сопровождаются библиотеками IP-блоков. Это позволяет говорить о них как о готовых платформах для реализации систем на кристалле. Например, библиотека структурных ASIC компании LSI Logic включает более четырехсот элементов. Кроме того, может использоваться библиотека IP-блоков CoreWare, содержащая процессоры, периферийные блоки, компоненты шины AMBA, интерфейсы памяти и др. Для реализации процессорных ядер (ARM, MIPS, сигнальный процессор ZSP) предусмотрены специальные области. Если такие процессоры не используются, в этих областях можно реализовывать и произвольную логику. Процессоры, как и другие IP-блоки библиотек, верифицированы и могут использоваться в виде готовых макросов.
ОРГАНИЗАЦИЯ СРЕДСТВ ПРОЕКТИРОВАНИЯ
На сегодняшний день реально не существует ни одной интегрированной системы САПР, способной эффективно решать задачи проектирования систем на кристалле во всем диапазоне возможных способов реализации. Производители интегрированных САПР стараются поддерживать внутри своих систем весь маршрут проектирования (от спецификации до физической реализации), но только для определенного класса микросхем. Например, широко известные САПР компаний Xilinx и Altera (как и САПР других производителей ПЛИС) ориентированы исключительно на собственные микросхемы. Средства проектирования ASIC вроде бы не привязаны к конкретным производителям и технологиям, но и они рассчитаны только на проектирование в базисе библиотек стандартных элементов и не поддерживают работы со специфическим элементным базисом и жесткими конструктивами кристаллов. Образно говоря, все интегрированные системы выстроены "вертикально" и опираются на определенный способ физической реализации .
Но если предметно посмотреть на такие САПР, окажется, что интегрированные маршруты проектирования все равно состоят из отдельных систем (моделирования, синтеза и др.), каждая из которых имеет свой пользовательский интерфейс, систему команд, базу данных, а взаимодействие между системами основано на стандартных интерфейсах. К счастью, основные этапы проектирования (спецификация проекта, моделирование, верификация, логический синтез, физическая реализация) определены достаточно четко и поддерживаются стандартными интерфейсами. Это позволяет без потери эффективности и дополнительных затрат на интеграцию комбинировать средства проектирования различных производителей, выбирая те, которые наилучшим образом отвечают решаемым задачам.
С целью обеспечения единства инфраструктуры и максимальной унификации маршрутов проектирования, на наш взгляд, необходимо отойти от "вертикального" сегментирования средств проектирования по способам физической реализации или производителям САПР, и перейти к "горизонтальному" делению по классам задач, решаемых на отдельных этапах маршрута проектирования. В общем маршруте проектирования можно выделить три больших этапа, или уровня проектирования, а именно:
· системный уровень, где производится определение и спецификация основных функций проектируемой системы, создание исполняемой системной модели, анализ алгоритмов, протоколов, сценариев работы и общих функциональных характеристик;
· функциональный уровень, связанный с разработкой спецификаций функциональных блоков на языках высокого уровня описания аппаратуры – Verilog или VHDL, их верификацией, переходом в элементный базис производителя микросхем средствами логического синтеза;
· уровень проектирования топологии, где выполняется реализация проекта на физическом уровне с детальным размещением, трассировкой, генерацией тестовых структур и верификацией топологии.
Выбор средств проектирования топологии определяется способом реализации. Для ПЛИС – это средства конкретного производителя. Для ASIC проектирование топологии сейчас все больше выполняется специальными дизайн-бюро, которые имеют полный набор всех необходимых средств проектирования. Связано это как с ростом стоимости средств проектирования (пропорциональной росту стоимости производства при переходе на новые технологические нормы), так и с необходимостью наличия специальных навыков и опыта работы в области субмикронной и нанотопологии, где ошибки проектирования стоят как никогда дорого. Для структурных ASIC проектирование топологии выполняется изготовителем, как правило, с использованием специально адаптированных под особенности конкретной архитектуры коммерческих САПР.
В любом случае, когда сейчас говорят о разработке ASIC, речь обычно идет о доведении проекта до уровня описания списка соединений в библиотечном базисе производителя и (при технологических нормах ниже 0,25 микрон) прототипа размещения элементов, с последующей передачей этих данных на завершающие этапы физического проектирования. Поэтому с точки зрения унификации маршрутов проектирования интерес представляют первые два уровня проектирования – системный и функциональный.
СРЕДСТВА СИСТЕМНОГО ПРОЕКТИРОВАНИЯ
Понятие системного уровня проектирования фактически включает в себя все, что лежит выше уровня разработки RTL. Здесь создается модель исполняемой спецификации, которая служит эталоном поведения проектируемой системы на всех последующих этапах. В системном проектировании можно выделить три уровня детализации:
· уровень "миссии" и выбора общей концепции построения системы, включающий моделирование операционной среды, в которой будет работать проектируемая система, определение статических и динамических сценариев, планирование целевых задач;
· архитектурный уровень с моделированием и анализом производительности систем, сетевых архитектур и протоколов, пропускной способности каналов;
· уровень микроархитектуры, т.е. моделирование и анализ алгоритмов, протоколов, схем разрешения конфликтов на шинах, методов управления памятью, программно-аппаратное разделение и разработка программного обеспечения (драйверы и др.).
Если первые два уровня относятся к задаче концептуального построения и анализа системы, то микроархитектура непосредственно связана с последующим этапом функционального проектирования. Сегодня, когда методология проектирования на RTL-уровне в общем устоялась, именно в области средств проектирования микроархитектуры инновации наиболее активны. В первую очередь это связано с применением языка С/С++ и производных языков на его основе, таких как SystemC, Handel-C, Stream-C и других для разработки моделей аппаратных блоков. Идея использования моделей высокого уровня, реализованных на языках программирования не нова, но сейчас поддержка таких языков обеспечивается не только в системах моделирования, но и в системах синтеза.
Так, проекты созданные в одной из популярных систем разработки и моделирования алгоритмов цифровой обработки сигналов Matlab/Simulink, обычно использовались как спецификации для ручного кодирования моделей на уровне RTL. Разработанная компаний AccelChip система синтеза высокого уровня теперь позволяет сгенерировать синтезируемые RTL-модели на языках VHDL и Verilog напрямую из Matlab с поддержкой автоматического преобразования арифметики плавающей точки в фиксированную.
Другой подход используется компанией Celoxica в системе DK2 Design Suite, которая реализует методологию программного компилятивного проектирования. Среда проектирования позволяет выполнить общую модель и верификацию проекта на языке С, провести разделение на программную и аппаратную части и напрямую синтезировать последнюю в элементный базис ПЛИС или в код VHDL/Verilog. Поддерживаются языки C, C++, SystemC и Handel-C, а также компиляция исходных кодов в процессорные ядра, например Xilinx MicroBlaze. Это дает возможность, не меняя исходной спецификации алгоритма, быстро реализовать его в макетном варианте на процессорном ядре ПЛИС, провести оптимизацию с частичной или полной аппаратной реализацией и затем, при необходимости, сгенерировать код RTL для перевода на ASIC.
Обеспечение целостности исходных спецификаций при их трансформации с верхнего уровня на уровень функционального проектирования имеет принципиальное значение. Поэтому фирмы-разработчики систем логического моделирования стремятся обеспечить совместное моделирование и поддержку VHDL, Verilog, C/C++, SystemC и других языков из единой интегрированной среды проектирования. Например, помимо перечисленных языков, системы моделирования компании Aldec обеспечивают совместное моделирование с Matlab/Simulink, имеют встроенные системы отладки С/С++ и Handel-C и встроенные интерфейсы с системами AccelChip и Celoxica, так что разработчики могут в рамках единой среды проектирования выполнять разработку и отладку кода, моделирование и синтез с гибкой настройкой системы на свой маршрут проектирования.
СРЕДСТВА ФУНКЦИОНАЛЬНОГО ПРОЕКТИРОВАНИЯ
Функциональный уровень на сегодняшний день остается основным при проектировании цифровых систем независимо от их физической реализации. Задача разработчика на функциональном уровне – создать RTL-описание системы, из которого можно средствами логического синтеза получить работоспособный проект. Поэтому к средствам функционального проектирования обычно относят средства моделирования и отладки RTL-кода а также средства логического синтеза из RTL-описаний.
Процесс отладки RTL-кода носит итерационный характер. Уменьшение числа итераций – прямой путь к сокращению стоимости и сроков разработки. Решение этой задачи напрямую связано с созданием средств контроля качества исходного кода, оценки его реализуемости на ранних стадиях выполнения проектов еще до этапа логического синтеза. Кроме того, использование таких средств позволяет обеспечить переносимость проектов с ПЛИС на ASIC. Не секрет, что разработчики ПЛИС зачастую не заботятся о качестве создаваемого VHDL- или Verilog- описания. Ведь всегда можно поправить код и перепрограммировать ПЛИС. А когда работоспособный вариант получен, то до чистки и оптимизации руки, как правило, уже не доходят. В результате казалось бы уже выполненный проект при переносе на ASIC требует существенной переработки и детальной повторной верификации. Использование средств контроля качества на ранних стадиях позволяет значительно облегчить задачу переноса.
Первые поколения таких систем были ограничены лишь проверкой семантики, сейчас появились системы, которые учитывают целостность, завершенность проекта, стиль кодирования, временные ограничения, выполняют анализ площади блоков, нетрассируемых структур и времени распространения сигналов. Важно здесь то, что эти системы дают возможность разработчику оценить реализацию своего проекта на ранней стадии без необходимости иметь знания о физических аспектах дальнейших этапов проектирования. Более того, такой формальный анализ кода на уровне RTL не только повышает качество проекта и сокращает число итераций при логическом синтезе, но и в перспективе дает возможность передачи на завершающие этапы проектирования в специализированные дизайн-центры не списка цепей в элементном базисе производителя, а RTL-кода на языках VHDL или Verilog. Например, компании LSI Logic и NEC для анализа проектов с учетом возможности их реализации на своих структурных ASIC используют специально настроенный САПР компании Tera Systems. Компания IBM также использует средства Tera Systems в перспективном маршруте проектирования ASIC c приемом от заказчиков на финальное проектирование кода на уровне RTL.
Использование предварительного анализа – вещь, конечно, очень полезная, но в любом случае рабочей лошадью для отладки RTL-кода служат средства моделирования. Разработчик создает новые фрагменты кода, запускает моделирование полученной системы, после анализа результатов вносит изменения в код... И так до тех пор, пока не добьется требуемых результатов моделирования. Для ПЛИС, где в основе проектирования лежит принцип "всегда можно все исправить", потребительские характеристики систем моделирования определяются простотой, удобством отладки проектов, низкой стоимостью. Для ASIC (в том числе и структурных) нужно "сделать сразу все правильно". Поэтому основным здесь становится качество логической и временной верификации, даже за счет высокой стоимости систем моделирования.
Сегодня наиболее популярными системами моделирования являются продукты компаний Aldec, Cadence, Mentor Graphics и Synopsys. Если средства Cadence и Synopsys в основном используются в маршрутах проектирования ASIC, то системы моделирования Active-HDL, Riviera компании Aldec и ModelSim компании Mentor Graphics поддерживают также всех производителей ПЛИС. Так, САПР Active-HDL обеспечивает единую интегрированную среду проектирования и моделирования для ПЛИС любых производителей, содержит средства групповой разработки, управления проектами и библиотеками, кросс-отладки и анализа тестового покрытия, текстовые и графические редакторы, а вместе с системой Riviera, включающей в себя ряд специальных средств для верификации ASIC, предоставляет единую среду проектирования для всех возможных способов реализации проектов.
До тех пор, пока передача проекта на разработку топологии осуществляется на уровне списка цепей, разработчикам функционального уровня необходимо будет иметь у себя средства логического и физического синтеза. При всем многобразии подобных средств наиболее универсальным на сегодняшний день является продукт компании Synplicity. Средства Synplicity позволяют проводить логический и физический синтез для ASIC и ПЛИС любых производителей, поддерживают макетирование ASIC на ПЛИС с возможностью автоматического разбиения проекта (с сохранением целостности) на множество ПЛИС, имеют средства отладки прошивок ПЛИС на уровне исходного RTL-описания.
Компания Synplicity наиболее заметна и в плане поддержки синтеза для структурных ASIC. Для структурных ASIC можно использовать и традиционные средства логического синтеза ASIC. Но достижение хороших результатов при логическом синтезе возможно только при специальной настройке на элементный базис используемых структурных ASIC ( обычно более крупный, ближе к ПЛИС, включающий мультиплексоры, триггеры, память). Показательно, что именно систему физического синтеза Synplicity AmplifyASIC, адаптированную под архитектуру своих структурных ASIC, используют такие компании, как LSI Logic и NEC.
В заключение надо заметить, что хотя каждый из производителей строит свой маршрут проектирования, ориентированый на конкретную архитектуру, в целом направление структурных ASIC стимулирует развитие адаптивных коммерческих САПР и методологии функционального проектирования на основе средств формального анализа и контроля реализуемости RTL-описаний. Это может иметь широкое прикладное значение. Эффективный контроль и прогнозирование на функциональном уровне существенно сокращают число итераций и время проектирования. А создание адаптивных средств САПР для отдельных этапов проектирования (моделирование, синтез), при стандартизации переходов от этапа к этапу, позволит обеспечить более высокую степень технологической (от способа реализации) и организационной (от производителя САПР) независимости при организации разработок систем на кристалле.
КОМПАНИИ-ПРОИЗВОДИТЕЛИ СТРУКТУРНЫХ ASIC И СРЕДСТВ САПР ДЛЯ НИХ
AccelChip, Inc. (http://www.accelchip.com)
Aldec, Inc. (http://www.aldec.com)
AMI Semiconductor (http://www.amis.com)
Celoxica, Ltd. (http://www.celoxica.com)
ChipX, Corp. (ранее Chip Express, Corp.) (http://www.chipexpress.com)
eASIC, Corp. ( http://www.easic.com )
Fujitsu, Ltd. (http://www.fujitsu.com)
Leopard Logic, Inc. (http://www.leopardlogic.com)
Lightspeed Semiconductor, Corp. (http://www.lightspeed.com)
LSI Logic, Corp. (http://www.lsilogic.com)
NEC Electronics, Corp. (http://www.necel.com)
Synplicity, Inc. (http://www.synplicity.com)
Tera Systems, Inc. (http://www.terasystems.com)
Triscend, Corp. (http://www.triscend.com)
Отзывы читателей