Efabless и компания Skywater Technology под финансированием Google объявила о приёме проектов, разработанных по технологии sky130 для Multi Project Wafer 4. Соответствующая новость появилась на сайте efabless. Для тех, кто не знает, как сделать что-то по технологии sky130 у меня есть подходящая серия статьей для вас на Хабре.
[TODO: Picture Efabless + SkyWater Technology, sponsored by Google]
Отдельное спасибо Хабру
Ваш редактор говно. Я потерял свою статью части 5,6 серии статей из-за нового редактора. Они просто исчерли после того как я нажал "Спрятать в черновик". Картинки из Word-а не вставляются. Вставка кода в Word не работает. Вставка кода обратно из Word-а не работает. Кнопка старого редактора вдруг перестаёт работать если войти в оконный режим. Если вставить текст в Word/Google Docs, а потом обратно, то теряется всё форматирование. Редактор ломается если вставить текст. Нет это не шутка. Редактор секций кода - говно. Написал письмо в поддержку, записал на видео, как повторить баги. Поддержка всё отрицает, говорит я всё вру. На просьбу записать РАБОТАЮЩИЙ редактор на видео они вдруг замолчали. Неудивительно, что все против нового редактора.
PSS: Редактор сломался в конец, попытка добавить абзац не увенчалась успехом. Попытка удалить текст, после того как ты поставил точку - не работает. Кнопка "Готово к публикации" сломалась, как круто, что нельзя его спрятать в черновик! PS: Статья выходит вот так, без картинок. Нет это не ошибка, просто Хабр считает что так и надо, ибо она их потеряла, после того как я нажал "В черновик". Спасибо Хабр! PSSS: Пока пытался хоть как то спрятать в черновик, каждая картинка стала открывать окно выбора файла, каждый раз когдая я нажимал что-то на клавиатуре. Я даже не знаю есть смысл эту серию статей продалжать или бросить всё.
Шатл Open MPW Shuttle
Шатл Open MPW Shuttle позволяет разрабатывать микросхемы по технологии Skywater 130nm. Efabless требует, чтобы ваш проект был доступен по одной из лицензий с открытым исходным кодом. Приём проектов открыт до 31-ого Декабря 2021-ого года. Размер микросхемы ограничены примерно до 10мм^2. Это позволяет поместить, до почти 1.6 миллионов ячеек на одну микросхему.
Моё мнение: хотите попробовать себя в разработке микросхем, то Open MPW Shuttle ваш единственный выбор, если кончено вы не учитесь в вузах, которые имеют контракты с компаниями Multi Project Wafer типо MOSIS.
TODO: Picture of successful MPW-1 projects
Касательно требований от Google, то в вашей документации не должны использоваться слова вроде M*ster/Sl*ve и другие. Это требование вполне логичное, и в принципе никак вам не должно помешать. А требование к лицензии с открытым исходным кодом не слишком мешает вам, что-то полезное разработать.
Подскажу лайфхак: если вы сделайте ваш проект по лицензии GPLv3, те кто решат использовать ваш проект, им придется публиковать их проект под той же лицензией, а вам самим требование GPLv3 для разработки на основе ваших проектов соблюдать не обязательно, если вы решите произвести её по коммерческой программе.
Например: Я сделаю компонента радиопередатчик-приёмника под лицензией GPLv3 (без подкомпонентов) выпущу его под Open MPW Shuttle. Другие лица не смогут использовать для коммерческих проектов, поскольку им придется выпустить исходный код их микросхемы. При этом я сам соблюдать GPLv3 не обязан, и когда захочу могу начать массовое производство под ChipIgnite в составе большой микросхемы вроде Wireless SoC.
Пример два: Я сделал АЦП/ЦАП, а кому-то он очень понравился, но он не хочет свою микросхему делать под лицензией GPLv3? Он пишет мне, и я продаю ему лицензию с условиями, которыми хочет этот клиент. Как например это сделали в Qt, либо MongoDB.
Учтите, что, если вы используйте подкомпоненты под лицензией GPLv3, либо от других разработчиков, такой трюк проделать не получится не получив разрешение (письменное, на бумаге, с печатью) от ВСЕХ авторов.
PS: Я не юрист, всё на ваш страх и риск.
ChipIgnite для коммерческих проектов
[TODO: ChipIgnite picture]
Для тех проектов, которые не хотят публиковать исходный код доступен шатл 2110C. Который позволяет за $9,750 получить 100 микросхем в корпусе QFN, либо 300 микросхем в корпусе WCSP. За $20,000 можно получить 1000 микросхем. Приём проектов открыт до первого апреля 2022-ого года.
Для мелких коммерческих проектов у вас нет другого выбора, кроме как ChipIgnite. Он очень дешевый, и вам не придется тратить деньги на дорогие программные обеспечения вроде Fusion Compiler, StarRC, Custom Compiler, HSPICE и других.
Каждая лицензия стоит много тысяч долларов. Несложно посчитать, чтобы сделать одну микросхему вам уже придется вложить 20 тысяч долларов в других технологиях, а тут бесплатный PDK, ПО и вы платите только за производство микросхемы.
Что можно сделать на Skywater 130nm
Skywater 130nm состоит из следующих фич:
Технология 130 нанометров для ячеек SRAM
Транзисторы (150 нанометров) для стандартных ячеек (Low-Vt, High-Vt, etc)
-
Транзисторы (500 нанометров+) с высоким напряжением (5В)
Биполярные транзисторы
Транзисторы PMOS с напряжением 20В
Транзисторы NMOS с напряжением 16В
Транзисторы для защиты от ESD
-
Поддержка напряжений 1.2В, 1.8В для цифровых компонентов
2.5В-5В для компонентов ввода-вывода
1 металлический слой, с высоким сопротивлением
5 металлических слоёв
Поддержка сопротивлений высокой точности, и высоким сопротивлением на квадрат (High Sheet Resistance 5000-10000 Ом на квадрат)
Поддержка индуктивностей (очень крутая фича)
Металл-изолятор-металл конденсаторы
Флэш память по технологии SONOS
170k-210k логических ячеек на квадратный миллиметр
[TODO: Process stack]
Металлические слои
Учитывая то, что SKY130 имеет огромную кучу классных фич, было бы глупо ими не воспользоваться. 1+5 металлических слоёв это очень круто. Для аналоговых компонентов, мне практически всегда хватает 1+3 слоя, а для цифровых компонентов большое количество слоёв имеет неимоверную важность, поскольку сильно упрощает разработку.
SRAM ячейки 130нм
TODO: KArtinka is slacka
SRAM ячейки высокой плотности, это крайне привлекательно. Мне лично это очень понравилось. Пока не пробовал, но были проекты, которые им пользовались. Эти ячейки - это не просто фича ради фичи, а важный фактор для это технологии. Пилите ли вы контроллер USB или же микроконтроллер/микропроцессор вам нужно будет это использовать для организации кеша, памяти на чипе, или буффера пакетов.
Единственный минус, что доступны конкретные конфигурации памяти 1024 слова по 32 бита с 4 битами маскировки (Byte masking). Компилятор OpenRAM настроенный под sky130 для создания своих собственных конфигураций, судя по всему, еще не доступен публично, но при необходимости в Slack-е можно запросить какие-то свои конфигурации, разработчики - очень классные ребята, нередко идут на встречу, но выбор всегда за ними, могут и отказать.
SONOS Flash
TODO: Picture of sonos flash from wikipedia
SONOS ячейки, это такая технология, которая позволяет сделать ячейки флэш памяти. Позволяет делать EEPROM/NOR/NAND память. Самое оно для микроконтроллеров.
Спросите в чём прикол? А в том, что SONOS ячейки значительно дешевле в производстве, поскольку требуют добавления всего одного слоя, а для технологий классической памяти флэш иногда требуется 5-8 новых слоёв, а значит масок.
Из недостатков это высокое рабочее напряжение и сложность разработки. Без готовых компонентов (они находятся под NDA), сделать, что-то в краткие сроки невозможно.
Высокое рабочее напряжение, еще можно обойти, сделав Voltage Charge Pump, а вот NDA и сложности в симуляции обойти невозможно.
[TODO: Voltage pump picture]
Разные транзисторы
Сначала мне показалось, а зачем мне в принципе транзисторы для напряжений 5В? Это же уже не модно! Потом пригляделся повнимательнее, и понял, что это тоже ОЧЕНЬ крутая фича. Транзисторы 1.8В это круто кончено, но для аналоговых проектов это очень мало.
[TODO: Picture of NMOS/PMOS]
Про транзисторы ESD понятно - без них не обойтись. Готовые ESD ячейки и компоненты, позволяют запилить, что-то своё в определённые сроки. Но есть одна проблема: Все компоненты ESD нужно согласовывать с Skywater.
1.8В транзисторы дают очень маленькое окно, для аналоговых проектов, это очень мало. Не видел никого, кто бы использовал 1.8В транзисторы для аналоговых проектов. А вот транзисторы 5В/3.3В/2.5В - запросто.
Если использовать напряжение 2.5В можно экономить на питании, а если использовать напряжение 3.3В - можно питать аналоговый компонент от того же источника, что и вводы-выводы (с некоторый фильтрацией, либо со встроенным регулятором 2.5В). Кроме того, окно становится значительно шире. Для аналоговых проектов получаются такие транзисторы незаменяемыми.
TODO: Voltage range
Кроме того, не забываем, что эта технология может использоваться для разработки микроконтроллеров. Кому бы не хотелось иметь ножки совместимые с 5В? Представьте Atmega328P с напряжением 1.8В, большой тактовой частотой, с встроенным множителем частоты, а может вам захочется сделать STM32F103C8T6 отечественной разработки, со встроенным радио передатчиком-приёмником.
Готовые стандартные ячейки
В sky130 представлены несколько библиотек стандартных ячеек. Давайте рассмотрим их:
sky130_fd_sc_hd - библиотека высокой плотности. 266 тысяч ячеек nand_1 на квадратный миллиметр. Более 160 тысяч ячеек nand_1 с подключенными входами выходами. Максимальная выходная ёмкость 0.746 pF для buf_16. Содержит Level Shifter 1.2V <-> 1.8V.
sky130_fd_sc_hdll - библиотека высокой плотности с пониженным статичным питанием. Совместима с sky130_fd_sc_hd. 200 тысяч ячеек nand_1 на квадратный миллиметр. Более 120 тысяч ячеек nand_1 с подключенными входами выходами. Максимальная выходная ёмкость 1 pF для buf_16. Статичный ток @ttleak_1.80v_25C 0.08 наноАмпер на килоячейку. Содержит Level Shifter 1.2V <-> 1.8V.
sky130_fd_sc_ls/sky130_fd_sc_ms/sky130_fd_sc_hs библиотека стандартных ячеек низкой, средней, высокой скорости. Совместимы с друг другом. Содержит Level Shifter 1.2V <-> 1.8V.
sky130_fd_sc_lp. Библиотека с пониженным потреблением.
sky130_fd_sc_hvl. Библиотека ячеек для высоких напряжений от 1.65В до 5.5В. 102 тысячи ячеек NAND_1 на квадратный миллиметр. Значительно медленнее чем другие ячейки, но очень полезная библиотека для использования в ваших смешанных компонентах (Mixed Signal). Содержит Level Shifter 1.2V <-> 5V.
Резисторы, конденсаторы, индуктивности
С этим всё понятно. Сопротивления высокой точности - просто круто. Сопротивления с высоким сопротивлением на квадрат - позволяет экономить площадь микросхемы.
TODO: Picture of precision resistors
Поддержка MiM конденсаторов - высокие ёмкости, при низком использовании площади. А индуктивности, просто вишенка на торте. Высокочастотные VCO, пассивные фильтры и еще куча классных вещей!
TODO: MiM capacitor picture
Ключевые недостатки
Нужно получать лицензии на экспорт для микросхем, попадающих под санкции или ограничения US Export Controls. Полный список стран с ограничениями можно найти тут. Список характеристик и компонентов под каждую группу ограничений можно найти вот тут. Судя по всему, в некоторые страны вроде Ирана нельзя экспортировать даже калькуляторы, а вот в Россию нельзя только то, что может использоваться для военной сферы. На конкретные компании вводятся санкции их список можно найти вот тут. А подробнее можно узнать тут.
Это не что-то новое. Мир разработки микросхем очень политизирован. И не зря, вот возьмет Россия и сделает свой супер-пупер Радар или рад стойкую ракету, и иди доказывай, что ты не верблюд. Поэтому для России важно развивать свою сферу разработок микросхем.
PS: Я не юрист, на свой страх и риск
Теперь давайте рассмотрим, чем может гордится шатл Open MPW Shuttle, он имеет следующие ограничения:
-
Caravel/Caravan Harness
Ядро RISC-V с внешней памятью SPI Flash
PLL для генерации тактовой частоты (1-100MHz)
Вход тактового сигнала и сигнала сброса
Площадь 10мм^2
2 подключения для питания (VDDA1/2) и 2 для заземления (VSSA1/2)
-
38 входов/выходов.
Аналоговое соединение 150 Ом со встроенной защитой ESD.
-
Цифровые выходы и входы
Частота 66 МГц
Частота 33 МГц в режиме энергосбережения
Подробнее можно найти тут.
в Caravan 11 входов/выходов могут иметь прямые подключения к ножкам микросхемы.
[TODO: Picture of Caravel]
У Caravel несколько фич, который вам очень понравятся. Например, в Caravel доступен RISC-V процессор, который может обращается к вашему компоненту по шине Wishbone. Кроме того, есть возможность использовать 128 ножек Logic Analyzer.
PLL позволяет генерировать тактовые частоты для вашей микросхему. Не знаю какие у неё характеристики, но при необходимости можно узнать, произведя симуляцию этого компонента.
RISC-V процессор используется для того, чтобы настроить вводы-выводы в необходимый режим. ESD встроен в GPIO, и отключить либо модифицировать её нельзя. Также аналоговый ввод-вывод подаётся к пользовательской части микросхемы через резистор 150 Ом. Caravan в свою очередь ESD не содержит на 11 ножка, что позволяет разработать свои ячейки ввода-вывода, либо подключать аналоговые компоненты. Все остальные ножки идентичны с Caravel.
На этом плюсы заканчиваются, и дальше идут только минусы. Основной минус, который я заметил - медленные ячейки ввода-вывода. Задержка 30ns при напряжении 1.8В, задержка 13ns при напряжении 3.3В это кончено смешно. Для энергосберегающих проектов самое оно. Дальше идёт 38 цифровых вводов-выводов, разгуляться негде. Сюда ты максимум PCIe+microSD впихнешь, а контроллер памяти для подключения памяти SDR SDRAM 128Мегабайт, это уже за пределами возможностей. Поэтому Open MPW 4 Shuttle сильно ограничен в применения для чего либо, что не IoT.
В этом плане интересно смотрится HyperRAM/HyperFLASH по шине HyperBUS. В принципе, можно попробовать сделать SoC, который поддерживает эти протоколы. Я не стал заморачиваться и планирую для своей процессорной системы создать свою последовательную шину данных, и сделать её на основе Caravan.
[TODO: Picture of HyperRAM/FLASH/BUS]
Интеграция
Тут важно отметить еще один важный шаг. После того, как вы разработали свой User Project вам будет необходимо пройти MPW Precheck, который проверит лицензии, соответствие документации на рекомендации Гугл. Для того, чтобы его пройти нужно выполнить команду, которая сгенерирует готовую микросхему. Подробнее можно найти на странице Caravel.
После того как вы прошли MPW Precheck вам нужно будет произвести его же, но уже на платформе Efabless.
Потенциальные возможности 130нм
Если вы сомневайтесь в возможностях технологии приведу несколько проектов (на похожих технологиях 130nm).
-
Котроллер PCIe Gen 1
-
Конфигурация x4
1100мкм x 2450мкм
-
Конфигурация x8
1100мкм x 4450мкм
-
-
Контроллер памяти LPDDR (только физический уровень)
32 бит шина - 5400мкм x 550мкм
16 бит шина - 3150мкм x 550мкм
-
Ядро Cortex-M0
-
@ 100Mhz
Площадь: 0.25мм^2
-
@ 50Mhz
Площадь: 0.12мм^2
-
Как мы видим, SKY130 вполне может использоваться для разработки, как простых микросхем для Интернета Вещей, но и для разработки энергосберегающих процессоров с поддержкой операционных систем вроде Linux с шинами данных вроде HyperBUS. Для этого efabless также сделала проект OpenLane для цикла RTL2GDS, а также sky130 поддерживает Magic VLSI, XSCHEM, KLayout, NGSPICE и многое другое используя Open_PDKs.
Ссылки
Моя серия статьей для разработки интегральных схем по технологии SKY130: https://habr.com/ru/company/ruvds/blog/591275/
Анонс MPW-4: https://efabless.com/open_shuttle_program/4
Open_PDKs (Сама PDK в удобном формате, содержит необходимые файлы для Magic VLSI/XSCHEM/KLayout/NGSPICE): https://github.com/RTimothyEdwards/open_pdks
Документация skywater: https://skywater-pdk.readthedocs.io/
Документация Caravel Harness: https://caravel-harness.readthedocs.io/en/latest/
Документация Caravel User Project: https://caravel-user-project.readthedocs.io/en/latest/
OpenLane RTL2GDS компилятор: https://github.com/efabless/openlane
FAQ (содержит ссылку на Slack, в котором можно узнать очень много важного инсайда и задать вопросы): https://efabless.com/open_mpw_faq
Caravel/Caravan Harness: https://github.com/efabless/caravel
Caravel User Project для цифровых проектов: https://github.com/efabless/caravel_user_project
Caravel User Project Analog для аналоговых проектов: https://github.com/efabless/caravel_user_project_analog/tree/mpw-3
Open MPW Precheck, которую нужно пройти до того, как сдать проект: https://github.com/efabless/open_mpw_precheck