Проект «Сфера-82»: Цвет и слой - Станислав Миков
— Ничего ты выравнивать не будешь, — раздался за спиной спокойный, холодный женский голос.
Ланская достала из кармана белоснежного халата ручку и уверенно уперла её прямо в спорную строчку на распечатке, из-за которой кипятился программист.
— Не забывайте, что для вас, Евгений Александрович, любая линия на чертеже — это математическая абстракция нулевой толщины, — произнесла тополог. — А для нас это реальный, физический материал. То, что вы называете «наложением» и считаете ошибкой выгрузки, — это намеренный технологический запас.
— Запас на замыкание? — огрызнулся Громов, скрестив руки на груди.
— Запас на усадку и боковое подтравливание, — веско поправил Руденко. Технолог оперся тяжелыми, узловатыми ладонями о край стола, нависая над распечаткой. — Когда мы берем фоторезист, светим его ультрафиолетом, а потом пластина идет в кислотную ванну, ваш идеальный край растворяется. Кислота жрет металл не только вглубь, но и в стороны. То, что у вас на бумаге нарисовано с идеальной шириной, на живом кристалле после всей химии заметно стравливается. Мы специально рисуем окно контакта с запасом и легким смещением, чтобы после того, как кислота сделает свое дело, отверстие попало точно в центр площадки.
Громов уставился на колонки цифр. Идеальный мир чистой математики, в котором он привык выстраивать свои безупречные ассемблерные циклы, с треском рушился, разбиваясь о грязную, непредсказуемую заводскую химию.
— То есть, вы хотите сказать, что для разных слоев этот ваш… запас разный? — Евгений потер лоб, чувствуя, как начинает болеть голова.
— Естественно, — хмыкнул Руденко. — Металл первого уровня травится так. Поликремний — совершенно иначе. А зоны диффузии вообще расползаются в стороны при термическом нагреве в печи. И если ваша умная программа начнет искусственно округлять наши допуски по какой-то единой, выдуманной вами математической сетке, вы убьете нам всю годную топологию. Вы забракуете абсолютно здоровую микросхему.
Морозов подошел ближе. Он внимательно слушал спор и прекрасно понимал правоту зеленоградцев. Ошибка Громова была естественной: любой программист всегда стремится упорядочить хаос, загнать его в жесткие рамки предсказуемого алгоритма. Но программа, которая не учитывает агрессивную физику травления, останется просто красивой лабораторной игрушкой.
— Идеальная геометрия здесь не сработает, — резюмировал Алексей и повернулся к Липатову. — Сергей. Открывай новый лист.
Липатов мгновенно перелистнул страницу рабочего блокнота.
— Евгений, ты не будешь писать никакие фильтры округления, — отрезал Морозов, пресекая готовое сорваться с губ Громова возмущение. — Мы заложим их физику прямо в наш алгоритм. Инструмент должен понимать материал. Ирина Павловна, чтобы мы могли это сделать, мне нужна та самая карта допусков, о которой мы договаривались на вашем участке. Все запасы на стравливание, все минимальные зазоры для каждого конкретного слоя.
Ланская кивнула. Ей явно нравилось, что Морозов твердо держится их недавнего уговора и не пытается подменить реальные физические допуски строгой машинной логикой.
— Это толстая папка, Алексей Николаевич, — предупредила тополог. — В ней сотни параметров. И половина этих норм существует только в виде внутренних, цеховых инструкций для конкретной производственной линии.
— Значит, мы увезем копию этой папки во Владимир, — непререкаемым тоном ответил Морозов. — Без этих допусков писать код «СЛОЯ-81» бессмысленно. Мы переведем вашу производственную химию на язык математики.
* * *
Ахметов, до этого молча наблюдавший за разбором распечатки, подошел к столу и положил поверх зеленых листов АЦПУ отпечатанный в типографии желтоватый бланк.
— С физикой разобрались, теперь к отчетности, — ровным голосом произнес Тимур Рашидович. — Вы увезете допуски и напишете код во Владимире. Но я напоминаю: мне не нужны абстрактные машинные жалобы на сбой. Мне нужна точная, протоколируемая причина для журнала.
Липатов пододвинулся ближе, поправляя очки. Протоколы были его епархией.
— Таблица вывода уже согласована, — сказал Липатов, глядя в блокнот. — Мы выдадим координату, категорию отклонения и логический узел.
— К этой категории отклонения вы теперь обязаны добавить прямую ссылку на конкретное правило из той самой технологической папки, которую вам передаст Ирина Павловна, — уточнил Ахметов.
Веденеева, внимательно слушавшая разговор, добавила свою часть требований:
— И обязательно заставьте вашу программу выводить в шапку отчета номер версии чертежа. У нас технологи за одну смену могут три раза перекроить проблемный слой. Пришлете сбой без отметки листа — мы будем полдня искать ошибку там, где её уже исправили.
Липатов молча и методично дополнял согласованную таблицу. Координата. Категория. Номер правила. Версия листа. Резолюция технолога. Он превращал чужую производственную боль в жесткие, программируемые рамки будущего отчета.
Громов мрачно следил за тем, как быстро растет количество обязательных колонок в блокноте Липатова. Каждая новая графа означала десятки дополнительных команд на ассемблере, часы отладки и дополнительную нагрузку на и без того скромную оперативную память «Сферы-82».
— Принято, Тимур Рашидович, — сказал Морозов, заглянув в записи Липатова. — Программа будет не просто искать сбои, она будет сразу формировать выписку, полностью адаптированную под ваш производственный журнал. Ни один прогон во Владимире не будет считаться завершенным без заполнения этого формуляра.
К столу неспешно подошел Роман Кац. В руках он держал тонкую картонную папку с завязками.
— Раз уж мы тут делимся секретами выживания, — усмехнулся Кац, кладя папку рядом с распечатками Громова. — Держи, Евгений.
Громов с сомнением открыл картонную обложку. Внутри лежали несколько отпечатанных на машинке листов с плотными таблицами и структурами блоков данных.
— Это чтобы вы там во Владимире не написали алгоритм чтения, который насмерть подавится нашим первым же файлом, — пояснил Роман уже без иронии. — Здесь полная спецификация нашего формата выгрузки. Как пакуются координаты, где лежат метки слоев, как обозначается конец записи. И главное — точный формат выходного текстового файла, который мы ждем от вашей машины обратно.
Громов пробежал глазами по строкам. Кац передавал ему строгую структуру данных.
— Заголовки блоков читать строго по байтам, — жестко добавил Кац. — Попытаетесь пропустить служебные маркеры или проигнорировать контрольную сумму массива — получите кашу. Ваш итоговый файл с ошибками должен читаться нашей дисковой системой без дополнительных преобразований, иначе мы ваши результаты просто не сможем распечатать для журнала Ахметова.
Громов молча закрыл папку. Раздражение