Pull to refresh

Comments 62

Всё что мне остается это встать и по аплодировать стоя умным людям. Мой мозг нагрелся на первых трёх абзацах и автоматически отключился.

спасибо та информацию. Очень кстати. Но. Простите, я не понимаю Вас.
Ваша цель — склепать свой собственный Отечественный Процессор.

А можно по-меньше пафоса? Вы используете разработки современных иностранных фирм, в каждом названии процесса или шага — английское слово. Но вы всё равно что-то отечественное из иностранных деталей, компонентов и наработок хотите сделать. Просто процессор — это мало? Он должен быть именно отечественным?

Видимо вы не дочитали статью. Напишу как понял:

Вся фишка в том что весь техпроцесс и ПО полностью опенсорс. Т.е. любая Зимбабве при наличии денег и парочки спецов уровня Армана может создать производство своего процессора не вкладывая деньги в лицензии и патенты и игнорируя санкции. И там не будет никаких закладок, кроме утвержденных компетентными органами. А для молодых специалистов возможность испечь свой выстраданный процессор, это даже не мечта, это круче.

Вопрос автору - насколько это много 10 мм^2 на 130 нм. Приведите пример что туда влезет, например z80 или 80386? Или хотя бы количество транзисторов...

свой выстраданный процессор

Согласен. Но обязательно он при этом должен быть ещё каким-то отечественным? Ударение на это слово?

Ну Intel Pentium 3 имел 128 мм² и был разработан с технологией от 250 до 130 нм. В нём было 9 миллионов транзосторов. Это был 1999 год. В том-же году AMD выпустила свой процессор K7 под 184 мм² и такой-же технологией. Но у них там было 22 миллиона транзисторов. Делим и округляем — получаем около 700 тысяч / 1 миллион. В этом размере были Intel 486DX в году так этак 1989-м. Хотя шутка с Z80 удачная. Там количество транзисторов всего 8500 было.

80386 влезет, но лучше не заниматься извращениями и тянуть архитектуру с кучей костылей

"не будет никаких закладок, кроме утвержденных компетентными органами." - так неправильно, надо "будут только закладки утвержденные компетентными органами". Они же будут.

Вся фишка в том что весь техпроцесс и ПО полностью опенсорс.
Техпроцесс не опенсорс, опенсорс — только документация по тому, как производить чипы на этом конкретном процессе на этой конкретной фабрике. Так что Зимбабве может просто так только прийти на Skywater.
А Skywater, к слову, плотно сидит на американских оборонных контрактах.

Вопрос автору — насколько это много 10 мм^2 на 130 нм.
Примерно 200 тысяч вентилей на квадратный миллиметр. 80386 влезет раз двадцать.

Ваша цель — склепать свой собственный Отечественный Процессор.

Или не отечественный. Или не процессор.

А можно по-меньше пафоса? Вы используете разработки современных иностранных фирм, в каждом названии процесса или шага — английское слово. Но вы всё равно что-то отечественное из иностранных деталей, компонентов и наработок хотите сделать. Просто процессор — это мало? Он должен быть именно отечественным?

Нельзя меньше пафоса. Это неимоверно круто.

Мой RTL код - отечественный. То где я его произведу, в России по технологии 90нм, в TSMC16 или в Америке роли не играет.

Вы когда компилируете программу, не ставите же плашку "Американский", если у вас компилятор Clang?

Перестаньте быть такими пессимистами. Хотите производства микросхем в России - делайте. Только не забывайте, что для этого вам нужно импорта замещение и огромные бабки.

Вы когда компилируете программу, не ставите же плашку "Американский", если у вас компилятор Clang?

Сами подтверждаете в большинстве своём неуместность в названии продукта или темы таких слов как отечественный или национальный итд.

В Германии придумали формат mp3. В названии ноль от страны, языка и создавался этот формат не как национальныое достояние.

Так можно и Google российским назвать, тк. Сергей Брин из СССР родом.

Желаю вам огромного успеха в реализации ваших идей. Они ваши и только ваши. Даже если вы работаете не на своей фирме, а уж тем более, если наоборот. Желаю вам думать в первую очередь о ваших идеях, их реализации. И меньше в рамках понятий, которые придумывают для распила бюджета.

Ещё раз - спасибо за огромный материал в статье!

И меньше в рамках понятий, которые придумывают для распила бюджета.

Вы не правы. Распил бюджета это вторичное. Цель для России - полная автономность. В идеале конечно.

России не дадут строить свою оборонку, на американском тех процессе. НУЖНО своё делать. Это не хотелка, а необходимость.

Хотите 10GHz полосы DAC/ADC - надо уже делать самому, ибо готовое американское вам не продадут.

Хотите рад стойкость для ракет? Снова нужно делать своё. И тд и тп.

Как все это сделать, если не развивать эту сферу и не создавать искусственные рынки, на которых российский продукт будет в приоритете.

Очень интересная статья. Прочитал на одном дыхании. Жду продолжения. :)

Неистово плюсую автору за его цель по созданию собственного отечественного процессора. Мне было бы интересно принять участие в реализации проектов на базе такого процессора)

Можно ссылку на «институт Synopsys»? Что за учебное заведение

Армения как я понял. Вы учились там, за границей? Даже если недалёкой, но всё равно в филиале иностранного уч. заведения. И там проживаете? Или нет? Последнее наверное нет. Мне вот что интересно. Даже после того как отучились за границей, у зарубежной фирмы всё равно думаете в рамках только одной отдельно взятой страны? Не чувствуете себя человеком для дела, т.е. для всего мира? Без политических границ и рамок? Можете не отвечать просто подумайте об этом.

Я родом из Армении, я почти не был в России или других странах СНГ, а тем более загранице.

Я политических границ вижу, ибо без них никак. Произвести микросхему без политики нельзя.

Имею ли я возможность поехать заграницу? Да. Пока не хочу, хотя такие планы есть.

Рад увидеть статью по SkyWater 130 и OpenLane!

Несколько фраз, которые я хочу прокомментировать.

У SkyWater было уже три производства микросхем по технологии Sky130, и очень даже успешных!

Всё же, MPW-1 оказался не совсем успешным. Временной анализ показывал успех, когда по факту это было не так. Поэтому проекты MPW-1 потенциально страдают от нарушений времени установки (aka 'hold violations'). См., например, эту публикацию в их Google группе:

https://groups.google.com/g/skywater-pdk-announce/c/TTJ28FF9qCA

Также примечательно то, что данная технология заставила Open Source комьюнити попотеть, ибо вместе с выходом технологии стали доступны KLayout и Magic VLSI

Я думал, что Magic был доступен ранее. Например, был и есть такой набор как Qflow, где Magic также используется на определённом этапе. Несомненно, OpenLane примечателен набором скриптов и иным составом софта в маршруте. Но изначальная формулировка, на мой взгляд, не совсем точна. Я бы сказал, что KLayout и Magic VLSI стали доступнее.

Для того чтобы разработать цифровую микросхему используется RTL Verilog

Мне казалось, что RTL - это всё-таки способ описывать аппаратуру. RTL можно писать на VHDL, Verilog, System Verilog. Возможно, что даже генераторы типа SpinalHDL/Chisel всё-таки тоже позволяют писать на уровне RTL? В общем и целом, под синтез можно писать на разных языках. Проблема лишь в том, что Yosys пока поддерживает только Verilog, поэтому конкретно в случае OpenLane остаётся один вариант. В то же время, есть разные проекты, которые пытаются сделать транслятор SystemVerilog в Verilog. Например,

https://github.com/zachjs/sv2v

https://github.com/chipsalliance/Surelog

Также у меня появился один вопрос. В случае PCB разработчик сталкивается с такой проблемой, когда на определённой частоте конденсаторы-компоненты перестают быть эффективными. Есть ли порог частоты, на которой с on-chip decap случается та же ситуация?

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

Коротко - а по-другому бывает? Это либо обратно-смещенный диод, либо ёмкость затвора сквозь канал (нельзя напрямую затвор на шину питания). "Аналоговые" конденсаторы делаются на межслойной ёмкости металлов с уменьшенной толщиной диалектика, и поэтому имеют кучу ограничений.

Не совсем понял, что именно бывает по-другому?

Ну тут уже ответили. DCAP скорее мало помогает, хорошо ещё что течёт не сильно. Методика анализа Timing+V-Drop пока далека от рабочей. А на спайсе много не посчитаешь

Припоминаю из одного подкаста, что со спайсом есть варианты считать относительно точные модели маленьких узлов, а потом считать обобщенные сферические модели узлов побольше. Хоть какой-то выход, получается.

А что именно не хватает методике Timing+V-Drop, чтобы стать рабочей?

Чем точнее модель, тем больше надо знать о границах её применимости. Часто при Flat-проверке иерархической модели находишь удивительно-очевидные ошибки. С влиянием просадок напряжения на таиминг - либо безумно долго, либо как про шмеля - летать такая конструкция не может в принципе)

-- Почему вы пьёте чай?
-- Оно симулируется.
-- А, ну тогда продолжайте.

Но ведь, наверное, бывают случаи, когда разработчик может ждать?

Часто бывает так, что компонент потребляет слишком много и без Decapов не обойтись. Просто добавляют их больше, что бы ёмкость была больше

Но есть ведь некоторые условия, при которых "больше" не добавляет практически ничего? Или нет?

Сложно оценить, добавляет ли. Посмотрели - вреда не добавляет. Немного заморочек добавляет, несущественных. Ну и вспоминают про масло и кашу)

Ковровая бомбардировка конденсаторами? :)

Так и делают, да. Все свободное место, оставшееся после добавления некоторого количества запасных ячеек, заполняют декапами.

Много ли свободного места остаётся, если взять, для примера, что-нибудь продвинутое типа СнК для телефона?

Процентов двадцать-тридцать обычно.
Есть ли порог частоты, на которой с on-chip decap случается та же ситуация?
у интегральных конденсаторов, разумеется, есть частотные пороги. Но конкретно декапы фильтруют довольно низкие частоты (не имеющие прямой корреляции с тактовой частотой схемы), и для них эта проблема не существенна.

Если не ошибаюсь, эти частоты связаны с переходными токами?

Ну да, каждый вентиль создает мощный, но короткий импульс тока, когда переключается. Но во-первых, все эти импульсы несколько размазаны по времени относительно друг друга, а во-вторых, просадки питания допустимы в разумных пределах. Дело декапа — хранить некоторый запас заряда на то, чтобы шина питания успела подкачать достаточно тока при переключении соседних с декапом вентилей и не допустить просадки питания ниже допустимой.

Хорошо помню, как попадавшиеся мне руководства обращали внимание на SSN - Simultaneous Switching Noise. Как я понимаю, разработчики как раз стараются этого не допустить, по крайней мере, в существенных объемах. Т. е. в теории такой вариант получить можно, получается? Например, напортачить с проектом ПЛИС и сделать пачку выходов, которые переключаются вместе. Кажется, что это будет существенной нагрузкой на питание.

В любом случае, рад, что моё понимание, для чего нужны декапы, оказывается хоть как-то верным. Про локальные "батарейки" понял, когда разбирался с импедансом PDN (Power Delivery Network).

Т. е. в теории такой вариант получить можно, получается? Например, напортачить с проектом ПЛИС и сделать пачку выходов, которые переключаются вместе. Кажется, что это будет существенной нагрузкой на питание.

Да можно. Но зачем? :D

Иногда ощущение свободы из-за того, что почти любой контакт можно настроить на вход или выход, приводит к удивительным вещам. :D

Т. е. в теории такой вариант получить можно, получается? Например, напортачить с проектом ПЛИС и сделать пачку выходов, которые переключаются вместе
Почему в теории? Вполне себе на практике это и была основная причина перехода от параллельных скоростных интерфейсов к последовательным. Когда у вас шина DDRx одновременно переключается, там очень занятные вещи могут происходить, если за skew rate выводов не следить. И внутри ядра микросхемы такие же эффекты вполне возможны, особенно если сетка питания неаккуратно сделана.

Я всё-таки верю в то, что разработчики стараются, как могут, учесть эти эффекты. Понятно, что бывает цейтнот, и вылезают ошибки. Но всё же best practice в ходу, разве нет?

Да, ещё про hold violation. Это, вообще-то showstopper. По setup можно частоту снизить, или напряжение приподнять. А вот холд уже ничем не лечится.

Вот потому и не все MPW оказались удачными. :)

Интересно, к слову, что намёки на проблемы были в отчётах. Как я понял, какую-то величину движок STA принял за 0, и потому анализ был далёк от реальной ситуации в PnR.

Точнее там был целый ворох проблем. Тактовое дерево было построено не правильно поэтому
"Clock tree was made badly.

Clock skew of 10ns caused hold violations in many places in the management structure. This leads to no IO being able to be setup. Even if your design worked (it may have the same clock tree issues), you can’t get the signals in and out.Additional issues were found in wishbone.
The whole issue was caused by three things: (1) A bad algorithm for generating clock trees, (2) our inability to analyze timing with parasitics, and (3) our putting way too much trust in the tools.

Также в первой версии Openlane была библиотека на python для экстракции паразитов, но оказалось что это плохо работает с тулом openSTA. Сейчас добавили тул для экстракции OpenRCX и калибровачный файл для SKY130. Так что по идее все должно работать нормально будем надеяться

Я подумал, что несбалансированное дерево частот - это как раз следствие того, что паразитики не извлеклись так, как нужно для OpenSTA.

В любом случае, ситуация серьезная. Да, конечно, будем надеяться, что последующие тейпауты избегут этой участи.

Всё же, MPW-1 оказался не совсем успешным. Временной анализ показывал успех, когда по факту это было не так. Поэтому проекты MPW-1 потенциально страдают от нарушений времени установки (aka 'hold violations'). См., например, эту публикацию в их Google группе:

Да я слышал. Ну бывает, главное чипы получились. А исправить инструменты - задача легкая.

Я думал, что Magic был доступен ранее. Например, был и есть такой набор как Qflow, где Magic также используется на определённом этапе. Несомненно, OpenLane примечателен набором скриптов и иным составом софта в маршруте. Но изначальная формулировка, на мой взгляд, не совсем точна. Я бы сказал, что KLayout и Magic VLSI стали доступнее.

Исправлять уже поздно, но вы правы.

Ну бывает, главное чипы получились.

Но от них нет большой практической пользы. Что-то работает только при определённом сочетании температуры и напряжения. В остальном - поведение непредсказуемо.

Еще раз спасибо за подборку. Вопрос по делу. Как происходит синхронизация, если на предыдущей операции принимаются изменения, а для 'старого' например кода уже сделали layout. Как определяется, какая часть изменений в предыдущем шаге какую часть уже сделанных работ в следующем отбрасывает назад. Ведь, что всё не с нуля делается - понятно. Но охват? Сорри за мой французский - уже много лет живу за границей.

Делается engineering change order, и ячейки которые поменялись (только те, что поменялись) проходят по всему циклу заново.

У вас 15М ячеек от рук отбились! Срочно поставьте их на место! Лео!

;)

Я новость не создавал, я её поделился. За это минус?! Спасибо.
За то, что эта новость — спам, не имеющий никакого отношения к обсуждаемой статье.

Кто не понял новость - не успел купить очень красивый сувенир. Такая шифровка в отделе происшествий. Остап Бендер попал под лошадь.

Боюсь, что все сувениры достаточно быстро раскупили. Причем уже тогда, когда комментарий с ней разместили сюда. Поэтому, увы, но размещать эту новость уже было бессмысленно.

Акститесь. Это жесть как неграмотно.
Акститесь. Это жесть как неграмотно.

Начнем с того, что GDSII это бинарный формат, иерархический, который помимо полигонов содержит большое количество разных объектов со своими свойствами.

Это когда печень удаляют?

PWELL и NWELL это «Карманы», А Bulk это «Подложка» В подавляющем большинстве КМОП технологий есть один Bulk/Подложка, P-типа. И один Карман, N-типа, который по-русски называется N-карман. Редко встречались технологии с подложкой N-типа, с P-карманом. Также я слышал о «двухкарманных» технологии в которых действительно два кармана. Но я с ними не сталкивался. Уточните, неужели SkyWater является технологией, в которой N-транзистору нужно нарисовать P-карман?

Карманы иначе называют «телом» транзистора (body) но никак не bulk. Bulk это подложка, черный фон в редакторе топологии, собственно кремниевая пластина.

Вы упустили важнейший момент, что в FF-корнере проверяются Timing Hold Violations. И исправляются добавлением Hold-Buffers в Data-path (ну или, что крайне не рекомендуется, но в некоторых случаях является примером высшего пилотажа, Delay в Clock-Path.

Если небольшие нарушения Setup Timing были обнаружены в кремнии, это можно исправить повысив напряжение питания на схеме, так называемый overdrive. Или немного понизить тактовую частоту (запороть ТЗ, но получить рабочие чипы).

В случае, если в кремний попадут Hold-violations, вы получите кирпичи.

Прошу прошения, комментарий относится к "Corner cases, напряжение и температура"
А по поводу цитаты, я хотел написать следующее:
Помимо CMOS логики, к выходу подключена металлическая шина, которая соединяет эту логику, и ее вклад в задержку из-за паразитных ёмкостей (в глубоком субмикроне, еще и паразитных сопротивлений), может быть больше чем входная емкость подключенного гейта. В congested дизайнах, работающих на высокой частоте, добавляется еще и cross-talk. Помимо этого, сам по себе прибор (т.е. Транзистор) обладает паразитными емкостями, в аналоговом дизайне весьма значительными, и меандр не будет идеальным даже с загрузочной емкостью на выходе стремящейся к нулю.

Sign up to leave a comment.