Система на кристалле / однокристальная система (System-on-a-Chip, SoC, произносится как «эс-оу-си») — в микроэлектронике — электронная схема, выполняющая функции целого устройства (например, компьютера) и размещённая на одной интегральной схеме.

В зависимости от назначения она может оперировать как цифровыми сигналами, так и аналоговыми, аналого-цифровыми, а также частотами радиодиапазона. Как правило, применяются в портативных и встраиваемых системах.

Если разместить все необходимые цепи на одном полупроводниковом кристалле не удаётся, применяется схема из нескольких кристаллов, помещённых в единый корпус (System in a package, SiP). SoC считается более выгодной конструкцией, так как позволяет увеличить процент годных устройств при изготовлении и упростить конструкцию корпуса.


Устройство:

Типичная SoC содержит:

— один или несколько микроконтроллеров, микропроцессоров или ядер цифровой обработки сигналов (DSP). SoC, содержащую несколько процессоров, называют многопроцессорной системой на кристалле (MPSoC);

— банк памяти, состоящий из модулей ПЗУ, ОЗУ, ППЗУ или флеш;

— источники опорной частоты, например, кварцевые резонаторы и схемы ФАПЧ (фазовой автоподстройки частоты);

— таймеры, счётчики, цепи задержки после включения;

— блоки, реализующие стандартные интерфейсы для подключения внешних устройств: USB, FireWire, Ethernet, USART, SPI;

— блоки цифро-аналоговых и аналого-цифровых преобразователей;

— регуляторы напряжения и стабилизаторы питания.

В программируемые SOC часто входят также блоки программируемых логических матриц — ПЛМ, а в программируемые аналого-цифровые SOC — ещё и программируемые аналоговые блоки.

Блоки могут быть соединены с помощью шины собственной разработки или стандартной конструкции, например, AMBA в чипах компании ARM. Если в составе чипа есть контроллер прямого доступа к памяти (ПДП), то с его помощью можно заносить данные с большой скоростью из внешних устройств напрямую в память чипа, минуя процессорное ядро.


Разработка систем на кристалле:

Для функционирования системы программное обеспечение не менее важно, чем аппаратное. Разработка, как правило, ведётся параллельно. Аппаратная часть собирается из стандартных отлаженных блоков, для сборки программной части используются готовые подпрограммные настройки соответствующих блоков, реализующие необходимые процедуры и функции, которые в англоязычной литературе часто называются драйверами. Применяются средства автоматизации разработки CAD и интегрированные программные оболочки.

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

Перед сдачей в производство аппаратная часть тестируется на корректность с использованием языков Verilog и VHDL, а для более сложных схем — SystemVerilog, SystemC, e и OpenVera. До 70 % общих усилий на разработку затрачивается именно на этом этапе.

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

При проектировании систем на кристалле приходится решать проблему задержек и рассинхронизации сигналов. Особенно это важно при формировании сетевых структур. Наиболее перспективным путем решения этой проблемы считается использование беспроводных сетей на кристалле (Wireless network-on-chip, WNOC), что позволит обойти ограничения классических сетей, а также обеспечить связь между наномасштабными компонентами микросхем и макроуровнем.


   Мировой опыт