Неуклонный рост требований к радиоэлектронной аппаратуре (РЭА) со стороны заказчика, как по функциональным, так и по эксплуатационным качествам заставляет разработчиков создавать все более и более сложные устройства. В то же время значительный прогресс в области технологий производства СБИС (0,35 мкм и менее) позволил создавать чипы со степенью интеграции более 10 млн. вентилей на кристалле. Таким образом, основной проблемой становится проектирование соответствующих СБИС.
Произведем простой расчет. При использовании традиционных методов проектирования хороший дизайнер может выполнять проект со средней скоростью порядка 100 вентилей в день или 30 строк RTL кода. (Эти цифры остаются постоянными на протяжении последних пяти лет.) В этом случае, чтобы спроектировать СБИС типа ASIC (Application Specific Integrated Circuit) сложностью 100 тыс. вентилей потребуется 1000 человеко-дней, т.е. команда из 5-ти человек сможет разработать такую СБИС в течение года. Следуя данной логике, чтобы разработать сложную СБИС порядка 10 млн. вентилей в течение одного года потребуется команда из 500 человек, что, безусловно, неприемлемо с точки зрения себестоимости разработки.
По более точным аналитическим прогнозам (рис. 1), если при переходе на новые технологии (0,18 мкм и менее) пользоваться существующей методологией проектирования, то стоимость проекта увеличивается до 250 человеко-лет, что также неприемлемо для заказчика. (Информация на рис. 1 предоставлена фирмой Cadence Design Systems.)
Рис. 1.  Зависимость стоимости разработки СБИС от технологии
Следует отметить, что в последнее время сложилась тенденция постоянного роста доли затрат на разработку программного обеспечения (ПО) РЭА. Так, при технологии 0,09 мкм затраты на ПО уже превышают затраты на аппаратную часть.
Выход из создавшейся ситуации очевиден – необходимо изменить методологию проектирования СБИС. Наиболее перспективным направлением в настоящий момент представляется методология проектирования СБИС типа "система на кристалле"(System-on-Chip - SoC).
В основе методологии проектирования SoC лежит принцип повторного использования блоков (reuse). Т.е. сложные функциональные блоки, разрабатываемые в рамках одного проекта или специально, затем используются в других проектах. По аналогии с системой на плате, где в качестве компонент выступают готовые микросхемы, система на кристалле конструируется из повторно используемых блоков.
В настоящее время для обозначения reuse-блока наиболее часто используется термин IP-блок (Intellectual Property), т.е. блок, представляющий собой объект интеллектуальной собственности. Одновременно с ним используются и другие термины:
IP-блоки могут быть двух типов: "мягкие" (soft) описанные на RTL-уровне и "жесткие" (hard) – на топологическом уровне. Иногда выделяют firm IP, в состав которых входят разные типы представлений от RTL до списка цепей с планировкой субблоков.
Одна из проблем проектирования SoC – создание IP-блоков. Практический опыт показывает, что стоимость reuse-блока в среднем в 10 раз превышает стоимость аналогичного разово используемого блока, а для процессоров эта величина на порядок выше. По этой причине reuse-блоки решают, как правило, общие логически формализуемые задачи, например, MPEG2 кодер, CPU, DSP, USB интерфейс, PCI интерфейс и т.п.
Фактически весь процесс разработки SoC делится на четыре этапа:
1) Разработка архитектуры SoC на системном уровне;
2) Выбор имеющихся IP-блоков из базы данных (внутри фирмы, других фирм или поставщиков IP-блоков);
3) Проектирование оставшихся блоков;
4) Интеграция всех блоков на кристалле.
Другая принципиальная особенность SoC это наличие программируемых блоков – процессоров. Поэтому SoC это не просто интегральная схема (ИС), а комплекс, в состав которого входят как аппаратная часть – чип, так и программная часть – встраиваемое ПО. Предполагается, что маршрут проектирования системы на кристалле должен содержать операции по совместной верификации и отладке программной и аппаратной частей.
В настоящее время не существует четкого детерминированного определения СБИС типа "система на кристалле". Исходя из вышеперечисленного, можно сделать вывод, что SoC должна изготавливаться по технологии не ниже 0.35 мкм и содержать не менее 1 млн. вентилей.
Рис. 2.  Пример структуры SoC
На рис. 2 представлен пример структуры SoC в общей форме. Как видно из рисунка, в состав SoC входят следующие компоненты:
1) Микропроцессор (или микропроцессоры) и подсистема памяти (статической и/или динамической). Тип процессора может варьироваться от простейшего 8-разрядного до высокоскоростного 64-разрядного RISC-процессора.
2) Шины центральная (высокоскоростная) и периферийная, чтобы обеспечивать обмен данными между блоками.
3) Контроллер внешней памяти для расширения памяти, например, DRAM, SRAM или Flash.
4) Контроллер ввода/вывода информации: PCI, Ethernet, USB и т.п.
5) Видео декодер, например MPEG2, AVI, ASF.
6) Таймер и контроллер прерываний.
7) Общий интерфейс ввода/вывода, например, чтобы вывести на светодиодный индикатор информацию о наличии питания.
8) Интерфейс UART (universal asynchronous receiver/transmitter).
Данная структура во многом искусственна, но, по сути, она отражает естественную структуру системы на кристалле.
Итак, можно выделить следующие принципиальные особенности системы на кристалле:
1) SoC конструируется из сложных функциональных блоков, которые могут быть как разработаны "с нуля", так и получены от поставщика IP-блоков. Поэтому в маршруте проектирования должен быть этап архитектурного проектирования, в задачи которого входит разработка общей архитектуры SoC. При выборе IP-блоков также учитывается стоимость готового блока и оцениваются затраты на разработку собственного блока.
2) SoC имеет в своем составе встраиваемое ПО, поэтому в маршруте должны быть этапы совместной верификации программного и аппаратного обеспечения (АО) – программно-аппаратной верификации (HW/SW co-verification);
3) SoC должна изготавливаться по технологии не ниже 0.35 мкм;
4) Наблюдается устойчивый рост доли смешанных цифро-аналоговых систем в общем объеме SoC , поэтому в маршруте проектирования (рис. 3) должны быть включены этапы по совместной разработке и верификации цифровой и аналоговой частей SoC.
Рис. 3.  Маршрут проектирования СБИС
Процесс проектирования начинается с разработки спецификации на проектируемую ASIC. Для сложных СБИС таких, как устройства графической обработки информации, в состав спецификации включается алгоритм обработки информации, который затем используется разработчиками для написания RTL-кода.
После функциональной верификации происходит синтез СБИС на вентильном уровне в виде списка цепей. Здесь же выполняется верификация временных требований. Как только временные требования удовлетворены, список цепей передается на физический синтез: размещение элементов и трассировка цепей. В конце создается и тестируется физический прототип СБИС, на основе которого впоследствии выполняется системная интеграция и тестируется ПО.
Используя такой маршрут можно проектировать схемы сложностью не более 100 тыс. вентилей по технологии не ниже 0.5 мкм. Это связано с тем, что проект здесь продвигается поэтапно от одной фазы к другой и никогда не происходит возврат на предыдущие фазы. Например, RTL дизайнер не может прийти к системному разработчику и сказать, что его алгоритм нереализуем, или команда логического синтеза не может попросить изменить RTL-код, чтобы добиться необходимых временных параметров. Для схем, изготавливаемых по DSM-технологии, такой маршрут вообще не будет работать, поскольку особенности физической реализации должны учитываться уже на логическом уровне проектирования.
Многие фирмы за рубежом переходят от традиционной нисходящей модели маршрута проектирования к новой спиралевидной модели (рис. 4). Здесь проектирование выполняется одновременно по четырем направлениям: разработка ПО, разработка RTL-кода, логический синтез, физический синтез. При этом в процессе работы группы разработчиков обмениваются результатами проектирования.
Рис. 4.  Спиралевидная модель процесса проектирования
Новая модель характеризуется следующими полезными свойствами:
Список литературы
1. Евтушенко Н.Д., Немудров В.Г. , Сырцов И.А. Методология проектирования систем на кристалле. Основные принципы, методы, программные средства // «Электроника», 2003, №3