Jump to content

    

ECO (Engineering Change Order) cell, как устроены? как использовать?

скорее для флейма, а не для дела. потому как скорее всего это сильно субъективно...

 

но все же :

добавляете ли вы "запасные" ячейки?

какого типа?

какое количество?

 

собственно в тех проектах, где я участвовал - ревижинов не делали, поэтому реально spare cell-ами не пользовались, были какие-то правки финального нетлиста (уже отплэйс-роутенного) на пару вентелей

 

синтезатор например любит OAIxxx AOIxxx - на порядок больше чем любой другой логики

а я XORы люблю...

 

ну и вроде как критерием должно быть не количество spare cell-ов, а вероятность найти рядом с местом правки целл требуемого типа

 

--------------------

 

также TSMC предлагает некий универсальный запасной целл

 

ECO cell is intended to serve logic changes with metals only ECO (Engineering Change Order), after first tapeout, without having to touch base layers of POLY layer and below. Cells in this ECO library are designed with metal 1 and metal2 (Flip-Flop cells) routing resources only.

 

который вроде как автоматически использует бэкенд, без нашего участия

 

тоже интересно - насколько это заменяет спаре целы, и сколько штук :) надо

 

интересно устройство - в библиотеке этот (или эти) ECO cell характеризован, как набор элементов

 

The prefix code specifies the function of the cell. Notice that in order to identify with the other standard cell, all ECO cell prefixes “G” (means Gate array) to the cell name. Table 3.1 lists the prefix code descriptions.

 

GAN

AND Gate

GAOI

AND-OR-Inverter Gate

GBUFF

Non-Inverting Buffer

GDCAP

Decoupling cell

GDFQ

Q-only D Flip-Flop without Set/Reset

GINV

Inverting Buffer

GMUX

Multiplexer

GNR

NOR Gate

GOR

OR Gate

GXNR

Exclusive NOR Gate

GXOR

Exclusive OR Gate

 

причем размеры и мощность выходного каскада разная

 

интересно - это все-таки один цел (с размером приблизительно равным аналогичному стандартному) ?

или группа целов (реальный размер, которых значительно больше указанных при характеризации) типа микро-БМК, из которых выбирается требуемая функция

Share this post


Link to post
Share on other sites
скорее для флейма, а не для дела. потому как скорее всего это сильно субъективно...

 

но все же :

добавляете ли вы "запасные" ячейки?

какого типа?

какое количество?

 

собственно в тех проектах, где я участвовал - ревижинов не делали, поэтому реально spare cell-ами не пользовались, были какие-то правки финального нетлиста (уже отплэйс-роутенного) на пару вентелей

 

синтезатор например любит OAIxxx AOIxxx - на порядок больше чем любой другой логики

а я XORы люблю...

 

ну и вроде как критерием должно быть не количество spare cell-ов, а вероятность найти рядом с местом правки целл требуемого типа

 

--------------------

 

также TSMC предлагает некий универсальный запасной целл

 

ECO cell is intended to serve logic changes with metals only ECO (Engineering Change Order), after first tapeout, without having to touch base layers of POLY layer and below. Cells in this ECO library are designed with metal 1 and metal2 (Flip-Flop cells) routing resources only.

 

который вроде как автоматически использует бэкенд, без нашего участия

 

тоже интересно - насколько это заменяет спаре целы, и сколько штук :) надо

 

интересно устройство - в библиотеке этот (или эти) ECO cell характеризован, как набор элементов

 

The prefix code specifies the function of the cell. Notice that in order to identify with the other standard cell, all ECO cell prefixes “G” (means Gate array) to the cell name. Table 3.1 lists the prefix code descriptions.

 

GAN

AND Gate

GAOI

AND-OR-Inverter Gate

GBUFF

Non-Inverting Buffer

GDCAP

Decoupling cell

GDFQ

Q-only D Flip-Flop without Set/Reset

GINV

Inverting Buffer

GMUX

Multiplexer

GNR

NOR Gate

GOR

OR Gate

GXNR

Exclusive NOR Gate

GXOR

Exclusive OR Gate

 

причем размеры и мощность выходного каскада разная

 

интересно - это все-таки один цел (с размером приблизительно равным аналогичному стандартному) ?

или группа целов (реальный размер, которых значительно больше указанных при характеризации) типа микро-БМК, из которых выбирается требуемая функция

1. Не слышал чтобы добавляли запасные. По логике - это дополнительная потребиловка.

Дополнения сами появляются - клоковые деревья, сканирующие пути и т.п.

 

Бывают технологические добавления - но это производственные ( тестовые структуры и т.п)

 

2. По поводу выбора ОАI AOI - всегда есть возможность поставить dont use и синтезировать

в нужном базисе. XOR-ы плохи тем что сильно "дрожат" и SDF Path пути у них странные

(задержка IOPATH (причём например из 0->1) зависит от состояний на других входах).

А вообще всё можно синтезировать, используя NAND2,NOR2 и буферные элементы.

 

3. Можно синтезировать и в GateArray - но принцип тот-же как и asic. Как и в asic размеры у всех

ячеек разные. Наверное можно сделать GA по принципу FPGA - но тогда будут потери

по площади, да и ПО нужно специфическое и т.п.

 

4. Использование окружения топологии в аналогичном случае - только в FPGA при использовании стандартной большой многофункциональной ячейки (естественно надо экономить)

Часто используется эквивалентность входов.

Если логика типа and2 и при трассировке он может переставить (пересоединить) входные выводы.

Более того, он может вообще изменить логику (обычно большую группу) группу and заменить например на xor и др. и т.п.

Ещё есть хитрость - например, нужен инвертор а у соседней ячейки осталась часть (хоr)

берётся этот хоr, один вывод заводится на питание а другой рабочий (получился инвертор) и т.п.

Добавляются также элементы для выравнивания задержек (и много ещё чего).

 

Это всё можно посмотреть, анализируя timing netlist получаемый для моделирования из FPGA.

Я смотрел MAX-PLUS (тащил netlist).

5. А вообще, чтобы точно ответить по библиотеке надо посмотреть её файлы для проектирования.

 

Как я понимаю термин standard cell - это аттестованный , проверенный в изготовлении,

обсчитанный cell (а не универсальный).

Share this post


Link to post
Share on other sites

1)

ну например вот

http://www.synplicity.com/literature/pdf/SpareGates.pdf

google находит какие-то патенты и т.п. но на ASIC SPARE LOGIC нашел 200000 сцылок

 

2)

синтез подразумевается мануальный - ну то есть ошибку какуюнибудь исправить - в нетлисте берем запасной элемент и мануально вставляем

при этом на физическом уровне тянем проводки - то есть меняется только 1 или несколько металлов

 

вопрос собственно был какие элементы выгоднее брать (более универсальные)?

 

----------------

 

по поводу общих вопросов : количество запасных тип и т.п.....

Share this post


Link to post
Share on other sites
1)

ну например вот

http://www.synplicity.com/literature/pdf/SpareGates.pdf

google находит какие-то патенты и т.п. но на ASIC SPARE LOGIC нашел 200000 сцылок

 

2)

синтез подразумевается мануальный - ну то есть ошибку какуюнибудь исправить - в нетлисте берем запасной элемент и мануально вставляем

при этом на физическом уровне тянем проводки - то есть меняется только 1 или несколько металлов

 

вопрос собственно был какие элементы выгоднее брать (более универсальные)?

 

----------------

 

по поводу общих вопросов : количество запасных тип и т.п.....

1.

Интересная ссылка:

-- Действительно, я понял так же, что если вы ошиблись "по мелочам" (или хототе достроить scan), то используя зарезервированные spare вы можете коррекцией одним или двумя металлами исправить ситуацию.

-- В привед. примере используется версия Synplify Asic 3.0.3. Synplify ASIC - вообще больше не развивается (во всяком случае больше не рекламируется).

-- Cadence FE поддерживает режим spare (spare cell shot gunning). Но это надо ещё проверять...

(наверняка будут ошибки или изменения (нестыковки) в маршруте back end). Но то что поддерживает это хорошо.

-- Рекомендаций наверняка нет (здесь пишут - можно "гибко" и "неограниченно" и по разному в иерархических блоках)

 

Собственно ничего нового, за исключением того что spare-cells должны быть сделаны определённым

образом. В нерабочем режиме должны быть подключены определённым образом.

Потом мы их (или вокруг них) drill down...

 

2.

Какие брать - я думаю зависит от имеющейся свободной площади.

За "универсализм" приходится платить.

Я думаю - по критерию минимальной площади.

 

А вообще вопрос филосовский. Это надо предвидеть в чём возможна ошибка и что ещё может вдруг понадобится или что-то заложить для дальнейшего развития.

В режиме gate-array - там всегда мало металлов (это принцип GA, изменяй как хочешь, зато есть некот. недостатки в другом).

 

Но в любом случае, надо сначала оценить используемую площадь.

Ну и конечно прокатить маршрут до конца.

 

Хорошо-бы посмотреть библиотеку. Как в конце задействуются эти spare.

(1 металл или 2 металла,1 или 2 контактов понадобится для коррекции если вдруг...)

Share this post


Link to post
Share on other sites
1)

ну например вот

http://www.synplicity.com/literature/pdf/SpareGates.pdf

google находит какие-то патенты и т.п. но на ASIC SPARE LOGIC нашел 200000 сцылок

 

2)

синтез подразумевается мануальный - ну то есть ошибку какуюнибудь исправить - в нетлисте берем запасной элемент и мануально вставляем

при этом на физическом уровне тянем проводки - то есть меняется только 1 или несколько металлов

 

вопрос собственно был какие элементы выгоднее брать (более универсальные)?

 

----------------

 

по поводу общих вопросов : количество запасных тип и т.п.....

Навёл справки...

Действительно это делать полезно.

Более того, хорошо бы заложить несколько spare контактных площадок.

 

И как всегда другая сторона...

Как правило "мелочи" обнаруживаются уже после исследования изготовленных образцов и

эта spare-возможность будет зависеть от фабрики и как будет осуществляться изготовление.

На мой взгляд надо учесть следующие аспекты:

-- режим запуска (университетский и т.п. или обычный)

-- объём выпуска (малый или большой)

-- способ изготовления шаблонов (мультишаблон или 1шаблон-1проект)

-- другие возможные нюансы (например, минимальная цена).

 

Например в первом случае (один из указанных в скобках) совершенно необязательно

что удастся провести spare-коррекцию и соответственно запланированно съэкономить.

Поскольку фабрика может и не хранить "базы" вашего проекта и мультишаблон и т.п.

Share this post


Link to post
Share on other sites

V principe yesli yest gate array eco cells (eto prosto kucha transistorov svyazannih kak yomkost, no mozno perevezat ispolzuya tolko metal i sdelat lyubuyu cifrovuyu funkciyu), to tolko eto nado i stavit kak spare cell. A s nimi stoit zapolnit vsyu neispolzovanuyu ploshad na chipe. Yedinstvenaya plohaya vesh s nimi eto to sto dobavlyayut leakage po sravneniyu so sluchayem gde voobshe net zapasnoy logiki. Gate-i s fiksirovanoy funkciey tolko nado stavit yesli net gate array.

Share this post


Link to post
Share on other sites

А какой пакет может из ячейки, содержащей матрицу транзисторов, синтезировать заказанную функцию? Или вы предполагаете это делать вручную, только в случае корректировки ошибки?

Возможен вариант синтеза нужной ячейки из нескольких одинаковых ячеек всего с парой п- и р- транзисторов? Так можно было бы выиграть по площади по сравнению с бОльшей матрицей транзисторов . Это тоже какой-то пакет умеет?

 

Представляется, что такой подход целесообразен именно только в случае ошибки. (А ее быть не должно при хорошей верификации :) ). А иначе - какая разница сколько разных ячеек в библиотеке, - лишь бы схема работала так, как надо.

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

Share this post


Link to post
Share on other sites

Da, ya tolko videl i polzovalsya takimi stuckami v slucaye osibki. Iz moego opita osibkov vsegda kucha daze yesli dostatochno normalnaya verifikaciya :) To ze neploho yesli hoces zakrit bazniye sloi chipa stobi otpravit na mask making a porabotat esho nemnozhko polzuyas tolko metaliceskimi i via sloyami.

 

Sto kasayetsya lazera ili focused ion beam, eta horoshaya ideya yesli ne ispolzovat flip chip a wire bond packaging.

 

Mozhno poiti esho dalse i zdelat malenkiye fpga v castyah svoego asic-a, LSI Logic v odnom momente polzovalsya takim priomom, no okazalos sto u Xilinx i Altera patenti protiv etogo i oni ih zastavili perestat nemedlenno.

Share this post


Link to post
Share on other sites
Mozhno poiti esho dalse i zdelat malenkiye fpga v castyah svoego asic-a, LSI Logic v odnom momente polzovalsya takim priomom, no okazalos sto u Xilinx i Altera patenti protiv etogo i oni ih zastavili perestat nemedlenno.
Явные издержки патентной системы. И сейчас еще попадаются "фрукты", запатентовавшие инвертор, 2И-НЕ и т.п и злобно требующих компенсации за использование :) . Идиотизм бесконечен...

 

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

 

Гораздо эффективней прием остановки части партии пластин до металлизации.

Часть прогоняется до конца и по ней фактически определяется верность работы. В случае ошибки - корректируются ФШ для оставшейся части. Правда, не всегда производитель идет на такой маршрут. В РФ - это постоянная практика для сложных разработок. А в шатлах пошлют куда подальше, скорее всего.

 

Делать ФПГА в ЭйСиках тоже как-то некрасиво - потребуются дополнительные средства для программирования. Да и потом эти ячейки нужно выкидывать - тайминг поменяется - появляется дополнительная вероятность ошибки.

 

Мне лично было бы интересно поковырять пакет, способный из транзисторов сам собирать (компактно!) стандартные ячейки (или любые другие схемы. В принципе, так можно в любом трассировщике, если ему подсунуть нетлист из ячеек из двух транзисторов. Но, это будет примерно в 1.5-2 раза менее компактно, чем рисовать ячейки руками. А площадь порой - решающий фактор.

Share this post


Link to post
Share on other sites

Sto kasayetsa verifikaciyi, ya soglasen, no ya poka vsyo i rabotal na ogromnih cipah s >100 razrabotchikov. Yesli vsye normalniye lyudi - osibok malo, no iz moego opita obicno 90% tupovatih i 10% nadyoznih lyudey. Gauss-ovskaya distribuciya vezde v prirode :)

 

Po voprosu transistorov, para kompaniy popitalas sdelat tool kotoriy generiruyet standard cell "on the fly" stobi soversenno podhodil situaciye. Naskolko pomnyu fokus bil na size standad cell-a, (po tipa, sdelayet BUFX1.33 jesli nado).

Cadabra

Zenasis

Esho odna bila no ne pomnyu kak nazivalas. U nih po cemu to ne ochen polucilos na rinke.

Share this post


Link to post
Share on other sites
А какой пакет может из ячейки, содержащей матрицу транзисторов, синтезировать заказанную функцию?

 

этот ECO-cell имеется в библиотеке

 

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

 

отчитываясь по результатам : хоть мы и ставили и spare и ECO - они опять не понадобились :) критических багов не обнаружили, а всякую мелочевку софтом можно пофиксить

 

то есть изменений между триал-раном и основной партией не было

Share this post


Link to post
Share on other sites
то есть изменений между триал-раном и основной партией не было
Можно только поздравить! :tort:

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this