Проектирование систем на кристалле является универсальной и многоплановой дисциплиной, объединяющей в себе методы проектирования законченных аппаратно-программных комплексов, встраиваемых систем на основе стандартных процессоров и процессорных ядер, разработки встроенного программного обеспечения, программируемых (ПЛИС), полузаказных и заказных интегральных схем.
В общем случае, система на кристалле может включать в себя различные типы блоков: программируемые процессорные ядра, блоки ASIC, блоки программируемой логики, памяти, периферийных устройств, аналоговые компоненты и различные интерфейсные схемы. Не обязательно все такие блоки должны быть физически реализованы на одном кристалле: процессоры, блоки памяти, ПЛИС или ASIC могут использоваться как отдельные компоненты. В рамках излагаемой методологии ставится задача спецификации, верификации и оптимизации системы в целом, а реализация отдельных устройств в контексте проектирования рассматривается как проектирование её составных частей.
Данный подход наряду с системами применим и к проектированию отдельных ПЛИС, в которых интегрируется всё большая и большая функциональность, включая процессоры, память, блоки цифровой обработки сигналов, DSP, высокоскоростные входы/выходы и ряд других сложных IP-блоков. Так, разработчики, использующие ПЛИС APEX компании Altera, могут выбирать между ядром процессора ARM и интегрированием собственного процессорного ядра Altera NIOS. Таким же образом разработчики, использующие ПЛИС Xilinx Virtex-II Pro, могут интегрировать ядро процессора PowerPC фирмы IBM или собственное процессорное ядро Xilinx MicroBlaze. С другой стороны, производители полузаказных интегральных схем начинают встраивать блоки программируемой логики в ASIC, и разница между этими двумя подходами начинает размываться.
Таким образом, тенденция к сближению архитектур ПЛИС, ASIC и систем с использованием стандартных компонентов в условиях быстро изменяющихся технологических возможностей и экономических факторов, предъявляет требования к унификации маршрутов проектирования. То, что сейчас возможно реализовать только на ASIC, завтра будет можно сделать на ПЛИС, а то, что сегодня делается на базе ПЛИС, надо будет использовать в других проектах, при этом невозможно ответить на вопрос, каков будет способ их реализации. Очевидно, что маршрут проектирования должен обеспечивать простой переход от ПЛИС к ASIC с построением прототипов ASIC на основе ПЛИС и наоборот, с переносом центра тяжести в общем объёме проектных работ на системный уровень, абстрагируясь от конкретной реализации.
Как следует из анализа состояния и перспектив развития проектирования на различных уровнях абстракции (рис. 1), если в 1990 году реализация проекта (логический и физический уровни) занимала 90% во всём объёме проектных работ, то в 2000 году эта доля сократилась до 55% и к 2010 году проектирование на архитектурном и функциональном уровнях будет составлять 70% в общем объёме работ, и только 30% придётся на конкретную реализацию проекта в выбранном элементном (библиотечном) базисе.
Рис. 1.  Тенденции проектирования на различных уровнях абстракции
В любом случае, проектирование систем на кристалле, состоящих из нескольких миллионов вентилей, является непростой задачей, и средства проектирования интегральных схем и ПЛИС, непрерывно усложняясь, эволюционируют в сторону системного уровня проектирования. В конечном счёте, чтобы использовать множество IP-блоков и объёмы интегральных схем в несколько миллионов вентилей, нужны соответствующие средства проектирования, позволяющие использовать все эти возможности в разработках.
Общий маршрут проектирования систем на кристалле показан на рис. 2 и состоит из следующих основных этапов:
Рис. 2.  Общий маршрут проектирования
При проектировании систем на кристалле концептуальный уровень является критическим для оценки общих характеристик системы. На этом уровне создаётся общая исполняемая спецификация проектируемой системы, позволяющая исследовать и оценить различные варианты её построения и выбрать оптимальное решение, которое будет реализовано в дальнейшем. Здесь решаются следующие задачи:
Таким образом, имея исполняемую спецификацию системы, поведенческие модели и общую архитектуру, проектирование, верификация и топологическая реализация системы далее ведутся параллельно.
Список литературы
1. Бухтеев А. Методы и средства проектирования систем на кристалле. — http://chipinfo.ru/literature/chipnews/200304/1.html