DOI: 10.15514/ISPRAS-2026-38(1)-9
Н.В. Желудков, ORCID: 0009-0009-0501-5686 <nvgel@cs.niisi.ras.ru>
Ю.А. Кулемина, ORCID: 0009-0008-5774-8921 <kulemina@cs.niisi.ras.ru>
НИЦ «Курчатовский институт» – НИИСИ,
Россия, 117218, г. Москва, Нахимовский просп., 36, к. 1.
Аннотация. В работе рассматривается решение задачи предсказания паразитной ёмкости цепей при проектировании цифровых блоков СБИС до этапа трассировки на основе данных о размещении стандартных ячеек. Реальные значения паразитной ёмкости могут быть получены только после детальной трассировки и экстракции паразитных параметров в специализированном САПР, что занимает длительное время и не позволяет на раннем этапе проектирования точно оценить быстродействие блока. Классические методы оценки ёмкости не позволяют достичь баланса между точностью модели и времязатратами. В работе для решения этой задачи предложен ряд моделей машинного обучения (МО): многослойные линейные регрессионные модели с одним выходом и реализующие многозадачную регрессию, а также модели на основе градиентного бустинга над решающими деревьями – XGBoost и CatBoost. Для обучения и валидации моделей был собран набор данных, содержащий признаки и метки цепей, полученных из топологии 35 блоков по техпроцессу 40 нм. При обучении моделей использовалась кросс-валидация, метрики точности – MAE, MAPE и коэффициент детерминации R². Наибольшую точность продемонстрировала модель XGBoost_M_A на основе градиентного бустинга в режиме мультизадачной регрессии – MAE 0,57 фФ, MAPE 10,3%, что на порядок ниже ошибки, полученной классическим методом на основе Wireload-модели. Среднее ускорение получения паразитных параметров по сравнению с эталонным методом после трассировки – 90 раз. Предсказанные ёмкости цепей были использованы для оценки финальной частоты блока на этапе размещения – точность оценки составила 99,1%, а среднее ускорение расчёта в 86 раз по сравнению с оценкой после проведения детальной трассировки. Предложенные методы на основе машинного обучения позволяют с высокой точностью и скоростью оценить на раннем этапе проектирования паразитные ёмкости цепей, а также оценить частоту работы блока СБИС.
Ключевые слова: сверхбольшие интегральные схемы СБИС; регистровая модель RTL; список ячеек и цепей электрической схемы нетлист; библиотека машинного обучения XGBoost; библиотека CatBoost.
Для цитирования: Желудков Н.В., Кулемина Ю.А. Оценка паразитной ёмкости цепей и быстродействия блока СБИС с помощью машинного обучения на этапе размещения. Труды ИСП РАН, том 38, вып. 1, 2026 г., стр. 113–132. DOI: 10.15514/ISPRAS-2026-38(1)-9.
Благодарности: Работа выполнена в рамках государственного задания НИЦ "Курчатовский институт" – НИИСИ по теме FNEF-2024-0003.
В процессе проектирования цифровых блоков сверхбольших интегральных схем (СБИС) множество параметров и характеристик блока определяется паразитными ёмкостями внутренних элементов. Время переключения стандартных элементов, из которых состоит цифровой блок, определяется табличными значениями задержек в liberty-файлах (файлы для описания временных характеристик, электрических параметров, функционального поведения библиотек стандартных ячеек). Задержка элемента (а точнее конкретной временной арки) зависит от значения длительности фронта входного сигнала и суммарной ёмкости на выходном контакте. Чем больше фронт входного сигнала, тем дольше ячейка выдает новое состояние на выходном контакте. Такая же зависимость наблюдается и для ёмкости – чем больше выходная ёмкость (то есть выходная нагрузка), тем дольше элемент будет переключаться. Выходная ёмкость элемента (с одним выходом) определяется как сумма ёмкостей контактов, управляемых рассматриваемой ячейкой, и ёмкости межсоединений, соединяющий выход ячейки с ее нагрузками. Ёмкость контактов складывается из следующих компонент:
Важно отметить, что ёмкость контакта конкретной ячейки в библиотеке элементов, спроектированных по одному технологическому процессу, является константой и определяется в liberty-файлах. Для современных технологических процессов (<90 нм) ёмкость контакта может составлять от единиц до десятков фемтофарад. Ёмкость межсоединения (то есть ёмкость цепи, соединяющих ячейки) состоит из следующих компонент:
Сокращение технологических норм увеличивает роль паразитных ёмкостей межсоединений в определении быстродействия цифровых блоков. В ряде случаев паразитная ёмкость межсоединений может быть сопоставима с ёмкостью контактов, или даже превосходить ее, что влечет за собой влияние на задержки и быстродействие проектируемого блока. Реальная ёмкость межсоединений может быть рассчитана только после проведения таких этапов топологического проектирования СБИС как размещение стандартных ячеек и трассировки межсоединений. После этапа топологического проектирования блока с разведенными цепями требуется запустить специализированную систему автоматизации проектирования (САПР) для расчёта паразитных параметров СБИС (кроме ёмкости такие САПР способны рассчитывать сопротивление и индуктивность). К таким САПР относятся:
На основе данных о топологии блока (чаще всего передаваемых в САПР с помощью DEF-файла, содержащего данные о физическом размещении и трассировке элементов интегральной схемы) и о технологических файлах, содержащихся в PDK (набор технологических правил и моделей, определяющий, как элементы интегральной схемы должны быть спроектированы и проверены для конкретного полупроводникового процесса) для расчёта паразитных параметров (в случае выбора коммерческих маршрутов проектирования в качестве такого технологического файла используется qrcTechFile), указанные выше САПР рассчитывают паразитные параметры цепей в топологии блока и для дальнейшего их использования сохраняют данную информацию в SPEF-файл (файл с паразитными RC-параметрами межсоединений схемы), построенного на основе ставшего стандартом в индустрии формата данных для передачи и хранения паразитных ёмкостей и сопротивлений цепей в СБИС. После получения SPEF-файла можно точно рассчитать задержки ячеек в блоке с учетом паразитных параметров цепей, и, как следствие, рассчитать быстродействие блока. Отметим, что суммарная ёмкость на выходе ячейки влияет не только на быстродействие ячейки, но и на потребляемую мощность, данные для расчёта которой также содержатся в liberty-файлах, однако в рамках данной работы влияние паразитных параметров цепей на потребляемую мощность не будет рассматриваться.
Ввиду длительности прохождения этапов проектирования для реальной оценки паразитных ёмкостей (этап трассировки для блока с более чем миллионом стандартных ячеек может длиться больше суток) существует проблема в точной и быстрой оценке паразитных ёмкостей уже на этапе размещения стандартных ячеек. Так как одна итерация трассировки может занимать длительное время, то существует вероятность того, что нарушение временных характеристик блока (запас по времени удержания и времени установки) может быть выявлено только на более поздних этапах проектирования, по сравнению с этапом размещения стандартных ячеек, где нарушение выявлено не будет. Отсутствие точных методов оценки паразитных ёмкостей на этапе размещения приводит к существенным погрешностям в прогнозировании временных характеристик и необходимости множественных длительных и ресурсоемких итераций трассировки. В то же время ранняя оценка паразитных параметров и корректный расчёт быстродействия на их основе помогает инженеру заранее определять проблему в блоке и вносить изменения в процесс его проектирования, например, выбирать другой план размещения, применять другую расстановку макроблоков, изменять расположение портов ввода-вывода.
В рамках данной работы будет представлено:
К наиболее ранним и широко использовавшимся подходам для оценки параметров межсоединений до проведения детальной трассировки относятся методы, основанные на аналитических расчётах и эмпирических данных. Наиболее ярким примером в данной категории является Wireload-модель. Данная модель применима на этапе логического синтеза (без какой-либо топологии блока), а также на этапе размещения стандартных ячеек в процессе топологического проектирования. Основное предположение, которое заложено в данную модель, заключается в том, что средняя длина проводника, а, следовательно, и его паразитная ёмкость, сильно коррелирует с таким параметром цепи как разветвление на выходном контакте (fanout-разветвление), показывающим сколько контактов ячеек управляется сигналом с выходного контакта ячейки, соединенной одной цепью. Также этот параметр отражает количество нагрузок, подключенных к цепи. Данные для использования модели Wireload, обычно, содержатся в liberty-файлах используемых стандартных ячеек. Алгоритм расчёта паразитной ёмкости с использованием данной модели выглядит следующим образом:
На рис. 1 изображен пример зависимости средней длины цепи от параметра разветвления при использовании модели Wireload из работы [1]. Несмотря на вычислительную эффективность и глубокую интеграцию в классические потоки проектирования, данная модель обладает рядом недостатков, особенно критичными для современных норм проектирования СБИС:
В связи с этими недостатками, использование Wireload-модели в настоящее время считается одним из основных препятствий для достижения сходимости результатов статического временного анализа на этапе размещения и на этапе трассировки. Несмотря на то, что эти модели представляют собой фундаментальный этап в развитии методов предварительной оценки паразитных параметров цепей, их неточность стала мотивацией для разработки более совершенных и физически обоснованных решений.

Рис. 1. Зависимость средней длины цепи от разветвления в модели Wireload.
В одной из ранних работ [2] авторы предлагают улучшение Wireload-модели для более точного расчёта потребляемой мощности на этапе размещения ячеек. В своей работе авторы использовали не названную субмикронную технологию с 6 доступными слоями металлизации для трассировки. Ключевая идея работы заключается в предположении, что цепи, обладающие большей длиной, располагаются в более высоких слоях металлизации, обладающих отличной от нижних слоев паразитной ёмкостью. Авторы предлагают следующий алгоритм для уточнения паразитной ёмкости на этапе размещения:
Предложенный метод позволил авторам снизить ошибку в оценке паразитной ёмкости по сравнению с оригинальной моделью Wireload в среднем на 2-13% для рассмотренных сложно-функциональных блоков (СФ-блоков), а также уменьшить ошибку расчёта мощности в среднем на 18,5% [2].
В последние годы методы машинного обучения активно исследуются как альтернатива традиционным подходам для устранения разрыва между предварительной и финальной оценкой параметров. Данные подходы демонстрируют потенциал в прогнозировании паразитных эффектов на основе данных, доступных на ранних этапах проектирования. Ярким примером специализированного подхода является работа [4], посвященная прогнозированию паразитных ёмкостей в SRAM-блоках (специализированные макроблоки статической памяти) на этапе схемотехнического проектирования. Авторы подчеркивают проблему значительных расхождений между результатами предварительного моделирования паразитной ёмкости и моделирования после этапа трассировки, что приводит к многочисленным итерациям при проектировании энергоэффективных SRAM. Для её решения предложена двухэтапная модель глубокого обучения, комбинирующая графовые нейронные сети и полносвязные сети. Ключевыми особенностями метода являются:
Эксперименты на 4 реальных SRAM-блоках показали, что предложенный метод превосходит актуальную модель, обеспечивая снижение ошибки в 19 раз и ускорение процесса симуляции в 598 раз [4]. Также стоит отметить, что данная работа сфокусирована на оценке паразитных параметров блоков на транзисторном уровне и не рассматривает эту оценку для блоков, проектируемом на уровне абстракций, предоставляемых стандартными ячейками.
Ряд работ направлен на применение моделей машинного обучения (МО) не для предсказания паразитных параметров на этапе размещения, а для непосредственной оценки после этапа трассировки. В работе [5] представлена модель GNN-Ceff – одна из первых моделей на основе графовых нейронных сетей для прогнозирования паразитной ёмкости цепей на этапе трассировки. В работе проводится расчёт такого параметра как эффективная ёмкость – единая ёмкость, включающая в себя паразитную ёмкость цепи и ёмкость полезной нагрузки, используемая для расчёта задержек ячеек. К основным достижениям работы стоит отнести:
Модель GNN-Ceff представляет собой значительный прорыв в скорости и точности расчёта ёмкости для цепей после трассировки. Однако её фундаментальное ограничение в контексте нашей задачи заключается в том, что она требует завершенной топологии в качестве входных данных. Таким образом, хотя метод и исключает необходимость в итеративных SPICE-симуляциях (моделирования электрических характеристик схем на транзисторном уровне) для расчёта эффективной ёмкости, он не решает проблему зависимости от самого трудоемкого этапа – трассировки.
Настоящее исследование направлено на решение этой проблемы на более раннем этапе. В то время как GNN-Ceff предсказывает эффективную ёмкость после трассировки, наша цель – предсказать физическую ёмкость до её начала, используя лишь данные, доступные на этапе размещения, что может потенциально сократить время на проектирование топологии блока.
В данном разделе подробно представлена информация о подготовке репрезентативного набора данных, выборе признаков для обучения, проектировании дополнительных признаков (feature engineering), анализе данных, представленных в наборе данных, а также описан процесс создания моделей для оценки паразитной ёмкости цепей и процесс их обучения.
Для создания набора данных были выбраны 35 открытых RTL-моделей (описание цифровой системы на уровне регистров, комбинаторной логики и управляющих сигналов) цифровых блоков СБИС, в состав которых не входили макроблоки (крупные функциональные блоки интегральной схемы с заранее определённой внутренней структурой) и блоки памяти. В качестве источника этих моделей были выбраны 3 ресурса:
Блоки, выбранные из данных проектов, были синтезированы в САПР Cadence Genus для получения изначального нетлиста. Топологическое проектирование блоков проводилось в САПР Cadence Innovus. В качестве технологии был выбран процесс с технологической нормой 40 нм. Ниже приведены основные особенности проектирования блоков:
Перечисленные параметры блоков и настройки проектирования являются характерными при проектировании цифровых блоков для данной технологии и позволяют получить реалистичный набор данных. В табл. 1 представлен список из 35 блоков, для которых был пройден маршрут проектирования и собран набор данных.
Собранный набор данных представляет собой набор из 35 csv-файлов, содержащих признаки и метки цепей, для каждого из блоков. Всего в наборе данных содержится 564898 уникальных цепей. При создании набора данных не учитывались цепи, для которых САПР не смог провести экстракцию паразитов (вычисление паразитных RC-параметров схемы по её топологии) и для которых это значение было равно 0. В наборах данных представлены следующие метки цепей:
Помимо основной метрики “cap” в наборе данных также собиралась информация о длине цепей и о числе сегментов (отдельных металлических проводников). Данные метки были собраны для проверки гипотезы, что совместное прогнозирование взаимосвязанных параметров может улучшить обобщающую способность модели и точность предсказания основной метки за счет выявления общих скрытых закономерностей в данных. Метрики “length” и “segs” были выбраны ввиду предположения, что паразитная ёмкость сильно зависит от длины цепи и числа ее сегментов. Распределение выбранных меток в наборе данных представлено в табл. 2 (единицы измерения соответствуют обозначенным выше в разделе; P25, P50, P75, P95 – соответствующие перцентили).
Табл. 1. Список блоков в наборе данных.
| № | Название блока | Описание | Число ячеек | Число цепей |
|---|---|---|---|---|
| 1 | ac97_top | Блок контроллера Audio Codec '97 | 5996 | 3851 |
| 2 | aes128_core | Блок аппаратной реализации алгоритма шифрования AES со 128 битным ключом | 16736 | 14350 |
| 3 | aes_cipher_top | Блок, реализующий полный конвейерный или последовательный алгоритм AES | 9279 | 7907 |
| 4 | aes_core | Блок ядра алгоритма шифрования | 12058 | 9482 |
| 5 | des3 | Блок симметричного блочного шифра Triple DES | 1517 | 1410 |
| 6 | dft_top | Блок дискретного преобразования Фурье | 103940 | 66076 |
| 7 | dynamic_node | Блок динамически переконфигурируемого узла в сетевых системах | 7303 | 5678 |
| 8 | FIR_filter | Фильтр с конечной импульсной характеристикой | 1282 | 1164 |
| 9 | fpu | Блок арифметических операций над числами с плавающей точкой | 13216 | 8831 |
| 10 | jpeg_encoder | Блок для сжатия изображений по стандарту JPEG | 30691 | 21221 |
| 11 | mc_top | Блок контроллера статической памяти | 3236 | 2376 |
| 12 | mips_core | Блок RISC-ядра процессора архитектуры MIPS | 6562 | 4977 |
| 13 | mrisc_top | Реализация ядра RISCV | 863 | 560 |
| 14 | Network | Блок накристальной сети | 298936 | 215786 |
| 15 | pci_bridge32 | Блок 32-битного моста между шиной PCI и другими устройствами | 9143 | 6507 |
| 16 | pcm_slv_top | Блок Pulse Code Modulation | 214 | 149 |
| 17 | picosoc | Блок системы на кристалле на основе RISC-V | 32816 | 22444 |
| 18 | plic_core | Блок контроллера прерываний в RISC-V системах | 1999 | 1732 |
| 19 | psram_core | Блок контроллера статической памяти | 626 | 698 |
| 20 | risc16f84_clk2x | 8-битный микроконтроллер с ядром PIC-совместимой архитектуры | 1076 | 729 |
| 21 | RocketTile | Ядро RISC-V, сгенерированное с помощью генератора Chisel Rocket Chip | 3475 | 2389 |
| 22 | RsDecodeTop | Дешифратор Рида-Соломона | 31883 | 19974 |
| 23 | rs_encode | Реализация кодера Рида-Соломона | 1830 | 1127 |
| 24 | RsEncodeTop | Шифратор Рида-Соломона | 977 | 613 |
| 25 | sasc_top | Блок интегрированного контроллера для управления датчиками и исполнительными механизмами | 334 | 260 |
| 26 | sdram | Контроллер синхронной статической памяти | 563 | 488 |
| 27 | sha256 | Блок криптографической хэш-функции, преобразующий входные данные произвольной длины в фиксированный 256-битный хеш | 4246 | 3907 |
| 28 | Sha3BlackBox | Блок хеширования данных с использованием алгоритма SHA-3 | 15765 | 11512 |
| 29 | simple_spi_top | Блок SPI, реализованный в микроконтроллере Motorola MC68HC11E | 419 | 285 |
| 30 | spi_top | Блок контроллера интерфейса SPI | 1161 | 1012 |
| 31 | PipelinedCipher | Конвейерный криптографический сопроцессор | 96872 | 78257 |
| 32 | usb_phy | Блок физического уровня USB | 274 | 192 |
| 33 | vga_enh_top | Контроллер VGA-дисплея | 47143 | 31564 |
| 34 | wb_conmax_top | Блок многоуровневого арбитра и коммутатора для шины Wishbone | 18628 | 16092 |
| 35 | wb_dma_top | Блок контроллера прямого доступа к памяти с интерфейсом Wishbone | 1618 | 1298 |
Анализ распределения паразитной ёмкости выявил выраженную положительную асимметрию. Медианное значение ёмкости составляет 1,0 фФ, что значительно ниже среднего значения 4,5 фФ. Распределение сильно сконцентрировано в области малых величин: 75% всех цепей имеют ёмкость не более 3,0 фФ, в то время как 95-й перцентиль достигает 21,0 фФ, а максимальное значение – 219,0 фФ. Стандартное отклонение (9,2 фФ), существенно превышающее среднее значение, дополнительно подтверждает высокую неоднородность данных. Также для цепей в наборе данных было рассчитано отношение паразитной ёмкости к ёмкости контактов в нагрузке – среднее значение этой характеристики оказалось равным 1,4 со стандартным отклонением 3,1, 75-перцентиль – 1, 95-перцентиль – 4. Из этого можно сделать вывод, что для блоков, спроектированных по выбранной технологии, значение паразитной ёмкости часто оказывается сопоставимо с полезной нагрузкой, поэтому точное предсказание паразитной составляющей актуально для данной технологической нормы. Корреляционный анализ по методу Пирсона показал, что коэффициент корреляции метрики “cap” и метрик “length” и “segs” составляет 0,98 и 0,72, соответственно, что свидетельствует о высоком уровне корреляции между выбранными метриками.
Табл. 2. Распределение меток в наборе данных.
| Метка | Среднее | Стандартное отклонение | Мин. | Макс. | P25 | P50 | P75 | P95 |
|---|---|---|---|---|---|---|---|---|
| “cap” | 4,5 | 9,2 | 1 | 219 | 1 | 1 | 3 | 21 |
| “length” | 32,4 | 72,8 | 0,84 | 1812 | 4,6 | 7,4 | 20,9 | 156,1 |
| “segs” | 19,0 | 33,7 | 1 | 559 | 5 | 8 | 16 | 74 |
Каждая цепь в наборе данных обладает 26 признаками: 19 из этих признаков были получены из САПР, а еще 7 признаков были сконструированы вручную в процессе обработки данных. Список и описание признаков цепей приведено в табл. 3. Первоначальный набор признаков был сформирован на основе эмпирических знаний о физических факторах, влияющих на паразитную ёмкость цепей в цифровых СБИС. Данный набор основан на предположении, что выбранные признаки коррелируют с предсказываемой величиной.
К 7 признакам, созданным вручную из других имеющихся в наборе данных признаков в процессе обработки данных, относятся следующие:
Табл. 3. Список признаков.
| № | Признак | Описание признака |
|---|---|---|
| 1 | fanin | Число входных контактов ячейки, управляющей цепью |
| 2 | fanout | Число нагрузок цепи |
| 3 | fanin_area | Площадь fanin ячеек |
| 4 | fanout_area | Площадь ячеек, соединенных с цепью |
| 5 | llx | Левая нижняя координата X HPWL прямоугольника |
| 6 | lly | Левая нижняя координата Y HPWL прямоугольника |
| 7 | urx | Правая верхняя координата X HPWL прямоугольника |
| 8 | ury | Правая верхняя координата Y HPWL прямоугольника |
| 9 | hpwl | Метрика “полупериметр” для цепи |
| 10 | hpwl_min | Мин. “полупериметр” для цепи |
| 11 | hpwl_max | Макс. “полупериметр” для цепи |
| 12 | hpwl_mean | Среднее значение “полупериметра” для цепи |
| 13 | hpwl_std | Стандартное отклонение “полупериметра” для цепи |
| 14 | cell_density | Плотность ячеек в прямоугольнике HPWL |
| 15 | pin_cap | Ёмкость контактов в нагрузке |
| 16 | wireload_fan_cap | Метрика Wireload на основе fanout |
| 17 | wireload_hpwl_cap | Метрика Wireload на основе HPWL |
| 18 | block_area | Площадь проектируемого блока |
| 19 | gcell_area | Площадь HPWL прямоугольника |
| 20 | gcell_ar | Соотношение сторон HPWL прямоугольника |
| 21 | dist_to_right | Расстояние от центра HPWL прямоугольника до правого края блока |
| 22 | dist_to_left | Расстояние от центра HPWL прямоугольника до левого края блока |
| 23 | dist_to_top | Расстояние от центра HPWL прямоугольника до верхнего края блока |
| 24 | dist_to_bottom | Расстояние от центра HPWL прямоугольника до нижнего края блока |
| 25 | block_width | Ширина блоков |
| 26 | block_height | Высота блока |
Первоначально сформированный на физических принципах набор признаков может содержать избыточную информацию. Для построения компактной и эффективной модели был проведен статистический отбор признаков. В первую очередь был проведен корреляционный анализ – рассчитаны коэффициенты корреляции Пирсона признаков с целевой метрикой. После получения этих коэффициентов из набора признаков были убраны те, чей коэффициент корреляции составлял по модулю меньше 0,1. Признаками, слабо коррелирующими с целевой метрикой паразитной ёмкости, оказались: абсолютные координаты HPWL прямоугольника (llx, lly, urx, ury – коэффициенты 0,02, -0,0005, 0,08, 0,06, соответственно), размер блока (block_area, block_width, block_height – 0,07, 0,06, 0,06), относительное расположение центра HPWL прямоугольника (dist_to_right, dist_to_left, dist_to_top, dist_to_bottom – -0,08, 0,02, 0,01, 0,03). Корреляционная матрица для оставшихся в наборе признаков цепей представлена на Рис. 2.
Вторая часть отбора признаков заключалась в устранение мультиколлинеарности – ситуации сильной корреляции признаков между собой, которая приводит к неустойчивости оценок весов модели и затрудняет их интерпретацию. Для учета мультиколлинеарности, обычно, исследуют попарные корреляции между признаками и в зависимости от порогового значения коэффициента взаимной корреляции признаков, оставляют тот признак, который демонстрировал более высокую корреляцию с целевой переменной. Поскольку выбор пороговых значений корреляции и методы устранения мультиколлинеарности не гарантируют автоматического улучшения качества моделей, в данной работе был применен сравнительный подход. Были сформированы четыре альтернативных набора признаков, варьирующих строгость отбора:
Признаки, которые попали в соответствующие наборы, приведены в табл. 4.

Рис. 2. Корреляционная матрица.
Сформированные наборы признаков послужили основой для сравнительного анализа, представленного в следующем разделе. Каждый из четырех наборов использовался для обучения и оценки идентичных моделей машинного обучения, что позволило количественно оценить влияние различных стратегий отбора признаков на итоговое качество прогнозирования паразитных ёмкостей.
Табл. 4. Наборы признаков.
| Набор признаков | Признаки, входящие в набор | Число признаков |
|---|---|---|
| A | 'fanin', 'fanout', 'fanin_area', 'fanout_area', 'hpwl', 'hpwl_min', 'hpwl_max', 'hpwl_mean', 'hpwl_stddev', 'cell_density', 'pin_cap', 'wireload_fan_cap', 'wireload_hpwl_cap', 'gcell_area', 'gcell_ar' | 15 |
| B | 'fanout', 'fanout_area', 'hpwl', 'hpwl_min', 'hpwl_max', 'hpwl_mean', 'hpwl_stddev', 'pin_cap', 'wireload_fan_cap', 'wireload_hpwl_cap', 'gcell_area' | 11 |
| C | 'fanin', 'fanout', 'fanin_area', 'hpwl', 'hpwl_min', 'hpwl_stddev', 'cell_density', 'pin_cap', 'gcell_area', 'gcell_ar' | 10 |
| D | 'fanout', 'hpwl', 'hpwl_min', 'hpwl_stddev', 'pin_cap', 'gcell_area' | 6 |
Для решения задачи предсказания паразитной ёмкости цепи в данной работе предложены различные варианты архитектур нейронных сетей. Рассмотрим архитектуры этих моделей: Первая модель MLP_C состоит из двух основных компонент: кодировщика признаков и регрессора. Кодировщик состоит из 3 линейных слоев размерностью 64, 32 и 16 нейронов. После каждого слоя используются слой нормализации (LayerNorm) и слой Dropout (0,2) для устойчивости модели и борьбы с переобучением. На выходе слоев используется функция активации ReLU. После кодировщика вектор представления передается в регрессионную часть (2 полносвязных слоя из 16 и 8 нейронов) для предсказания одной метки “cap” – паразитной ёмкости.
Вторая модель MLP_CL отличается от первой тем, что на основе векторного представления после кодировщика предсказывает длину цепи, конкатенирует это предсказание с выходом кодировщика и подает на регрессор, предсказывающий ёмкость. Основная мотивация использовать многозадачные модели (эту и последующие) заключается в том, что многозадачное обучение может позволять выявлять общие закономерности в данных и использовать синергетический эффект при совместном прогнозировании связанных величин. В то же время при многозадачном обучении кодировщик может создавать более содержательные представления, релевантные сразу для нескольких связанных физических характеристик, что может улучшить обобщающую способность модели.
Третья модель MLP_CLS схожа со второй моделью, но кроме предсказания длины также предсказывает количество сегментов цепи, после чего представление кодировщика конкатенируется с предсказанием длины цепи и числом ее сегментов для подачи на регрессор.
Четвертая модель MLP_C_L_S обладает таким же кодировщиком на входе, как и предыдущие модели, однако затем представление передается параллельно в 3 независимых регрессора для предсказания ёмкости, длины и числа сегментов. Каждая выходная метрика оптимизирует свою функцию потерь, а общая функция потерь модели – взвешенная сумма частных потерь.
Пятая модель основана на алгоритме градиентного бустинга над решающими деревьями XGBoost [9]. Модель предсказывала паразитную ёмкость на основе признаков цепи из набора данных. Модель была создана со следующими параметрами: количество деревьев – 100, максимальная глубина – 10, скорость обучения – 0,1.
Шестая модель основана на еще одном алгоритме градиентного бустинга над решающими деревьями – CatBoost [10]. Модель была создана с такими же параметрами, как и XGBoost. Данные алгоритмы демонстрируют высокую эффективность при работе с табличными данными за счет встроенной регуляризации и отсутствия необходимости в предобработке данных.
Седьмая и последняя архитектура модели XGBoost_M реализует многозадачную регрессию для одновременного предсказания ёмкости, длины и числа сегментов цепи. Модель создана с теми же параметрами, что и другие модели градиентного бустинга в этой работе.
Предложенные выше модели будут сравниваться в точности с классической метрикой Wireload (в наборе данных представлена в качестве признака “wireload_fan_cap”).
Графическое изображение предложенных моделей представлено в GitHub репозитории авторов данной статьи [11].
При обучении и валидации приведенных в предыдущем разделе моделей для объективной оценки использовалась кросс-валидация по блокам методом k-Fold [12]. Каждый блок из набора данных рассматривался как отдельная единица: в каждом цикле обучения одна подгруппа блоков выделялась в качестве тестовой выборки, в то время как остальные использовались для обучения и валидации. Такой подход позволяет избежать утечек данных между обучающими и тестовыми блоками и обеспечивает более реалистичную проверку способности моделей к обобщению на новые, ранее не виденные блоки. В данной работе набор данных из 35 блоков разбивался в процессе обучения на 7 частей (фолдов) по 5 блоков. На каждой итерации обучения 6 фолдов использовались для обучения модели, а 1 фолд для ее валидации. Процесс повторялся 7 раз таким образом, что каждый блок побывал в тестовом наборе только один раз.
В качестве метрик точности для задачи регрессии были выбраны средняя абсолютная ошибка (MAE), средняя абсолютная ошибка в процентах (MAPE) и коэффициент детерминации (R2). В разделе с результатами итоговые значения метрик вычислялись как среднее по всем фолдам. В качестве функции потерь при обучении использовалась среднеквадратичная ошибка (MSE). В качестве оптимизатора – Adam [13] с параметром weight_decay = 0,0001, используемом для L2-регуляризации в качестве борьбы с переобучением [14]. Модели обучались на протяжении 20 эпох.
Для обеспечения сходимости алгоритмов и устранения влияния масштаба признаков на процесс обучения была применена стандартизация данных. Все числовые признаки масштабировались с использованием метода StandardScaler [15], который преобразует данные к распределению с нулевым средним значением и единичной дисперсией. Процедура выполнялась отдельно для каждого фолда кросс-валидации: параметры масштабирования (среднее значение и стандартное отклонение) вычислялись исключительно на тренировочной выборке, после чего применялись к тестовой выборке. Такой подход предотвращает информационную утечку и обеспечивает корректную оценку обобщающей способности моделей.
Обучение проводилось локально на компьютере с ОС Windows 10, процессор Intel Core i5 9400F, 16 ГБ оперативной памяти формата DDR4, видеокарта NVIDIA GeForce GTX 1660 SUPER с 6 ГБ видеопамяти c 1408 CUDA ядрами. В качестве окружения использовался Jupyter Lab (версия 4.3.6), Python 3.12, PyTorch 2.6.0+cu124 и PyTorchGeometric 2.6.1. Версия XGBoost 2.1.4, версия CatBoost 1.2.8. Все вычисления выполнялись на GPU.
В данном разделе будут представлены результаты обучения предложенных моделей оценки паразитной ёмкости, приведено сравнение их точности и сделаны основные выводы о преимуществах предложенных архитектур, а также о выборе стратегии отбора признаков для обучения. По итогам сравнения будет выбрана лучшая модель, результаты которой будут использоваться для решения задачи оценки частоты работы блока на этапе размещения ячеек.
Стоит отметить, что суммарное число моделей, рассмотренных в сравнении, будет равняться 29 – 7 предложенных архитектур будут обучаться на 4 наборах признаков, представленных в табл. 4, а также классическая метрика Wireload. Это позволит определить среди всех архитектур и подходов к отбору признаков наилучший вариант. Название моделей с учетом используемых входных признаков в данной статье строится следующим образом – после названия выбранной архитектуры через нижнее подчеркивание указывается название набора признаков из табл. 4. То есть модель MLP_C_A – первая архитектура нейронной сети, обученная на наборе признаков “A”. В табл. 5 представлены итоговые метрики 29 моделей по итогам обучения с кросс-валидацией (значения в таблице строятся как среднее ± стандартное отклонение по всем фолдам) для задачи предсказания паразитной ёмкости цепей.
Отметим главные выводы из сравнения точности моделей:
Также был проведен анализ времени, затрачиваемого на работу лучшей модели XGBoost_M_A:
Табл. 5. Сравнение точности моделей в задаче предсказания паразитной ёмкости.
| № | Модель | MAE, фФ | MAPE, % | R2 |
|---|---|---|---|---|
| 1 | Wireload | 7,87 ± 3,84 | 169,7± 80,2 | 0,23 ± 0,15 |
| 2 | MLP_C_A | 0,85 ± 0,38 | 16,4 ± 3,0 | 0,90 ± 0,06 |
| 3 | MLP_C_B | 0,83 ± 0,35 | 20,2 ± 4,2 | 0,91 ± 0,05 |
| 4 | MLP_C_C | 0,80 ± 0,34 | 16,3 ± 3,5 | 0,92 ± 0,05 |
| 5 | MLP_C_D | 0,77 ± 0,31 | 15,6 ± 3,6 | 0,92 ± 0,04 |
| 6 | MLP_CL_A | 0,79 ± 0,35 | 15,2 ± 4,2 | 0,92 ± 0,04 |
| 7 | MLP_CL_B | 0,79 ± 0,35 | 16,3 ± 3,9 | 0,91 ± 0,05 |
| 8 | MLP_CL_C | 0,82 ± 0,33 | 17,5 ± 2,8 | 0,92 ± 0,05 |
| 9 | MLP_CL_D | 0,78 ± 0,37 | 15,1 ± 2,9 | 0,92 ± 0,05 |
| 10 | MLP_CLS_A | 0,81 ± 0,40 | 16,9 ± 5,3 | 0,92 ± 0,04 |
| 11 | MLP_CLS_B | 0,79 ± 0,39 | 15,8 ± 3,2 | 0,92 ± 0,05 |
| 12 | MLP_CLS_C | 0,83 ± 0,38 | 17,3 ± 5,5 | 0,91 ± 0,06 |
| 13 | MLP_CLS_D | 0,78 ± 0,37 | 15,1 ± 2,9 | 0,92 ± 0,05 |
| 14 | MLP_C_L_S_A | 0,79 ± 0,33 | 15,2 ± 3,3 | 0,91 ± 0,06 |
| 15 | MLP_C_L_S_B | 0,77 ± 0,27 | 18,9 ± 7,9 | 0,93 ± 0,04 |
| 16 | MLP_C_L_S_C | 0,77 ± 0,37 | 15,3 ± 4,8 | 0,93 ± 0,05 |
| 17 | MLP_C_L_S_D | 0,73 ± 0,32 | 14,7 ± 2,4 | 0,93 ± 0,04 |
| 18 | XGBoost_A | 0,58 ± 0,30 | 10,4 ± 2,1 | 0,93 ± 0,05 |
| 19 | XGBoost_B | 0,59 ± 0,28 | 10,9 ± 1,8 | 0,93 ± 0,05 |
| 20 | XGBoost_C | 0,59 ± 0,28 | 10,6 ± 2,1 | 0,93 ± 0,04 |
| 21 | XGBoost_D | 0,60 ± 0,23 | 12,1 ± 2,5 | 0,91 ± 0,06 |
| 22 | CatBoost_A | 0,63 ± 0,30 | 12,8 ± 2,2 | 0,93 ± 0,04 |
| 23 | CatBoost_B | 0,63 ± 0,28 | 12,7 ± 2,1 | 0,94 ± 0,04 |
| 24 | CatBoost_C | 0,60 ± 0,26 | 12,2 ± 1,7 | 0,94 ± 0,04 |
| 25 | CatBoost_D | 0,61 ± 0,24 | 12,6 ± 2,0 | 0,94 ± 0,04 |
| 26 | XGBoost_M_A | 0,57 ± 0,30 | 10,3 ± 2,1 | 0,94 ± 0,05 |
| 27 | XGBoost_M_B | 0,59 ± 0,28 | 10,9 ± 1,8 | 0,93 ± 0,05 |
| 28 | XGBoost_M_C | 0,59 ± 0,28 | 10,6 ± 2,1 | 0,93 ± 0,04 |
| 29 | XGBoost_M_D | 0,60 ± 0,23 | 12,1 ± 2,5 | 0,91 ± 0,06 |
Результаты оценки паразитной ёмкости, полученные моделью XGBoost_M_A, были применены в решении другой важной практической задачи – оценке быстродействия блока на этапе размещения ячеек. В данной задаче требуется оценить, какая будет частота работы блока после этапа трассировки (вносящего изменения в блок и расчёт временных задержек), обладая лишь информацией о расположении ячеек без данных о детальной трассировке. Поскольку учет паразитной ёмкости на этапе трассировки является основной причиной, влияющей на изменение быстродействия, мы предлагаем следующий алгоритм оценки быстродействия на этапе размещения с помощью созданной модели из предыдущего раздела:
Оценка быстродействия предложенным методом (для краткости обозначим его ML) сравнивалась со следующими методами:
В табл. 6 представлено сравнение точности оценки быстродействия указанными выше методами, а также ускорение времени работы относительно эталонного алгоритма с использованием детальной трассировки и экстракции паразитных параметров в САПР Quantus. Данные в таблице представлены в формате “среднее” ± “стандартное отклонение”, поскольку расчёт метрик проходил внутри 7 фолдов на кросс-валидации – на 6 фолдах проходило обучение модели предсказывать паразитную ёмкость цепей, на блоках из оставшегося фолда проходила оценка быстродействия.
Табл. 6. Сравнение точности оценки быстродействия и затрат времени на работу модели.
| Модель | Ускорение | Точность оценки частоты, % |
|---|---|---|
| Route | 1x | 100 |
| Wireload | (97 ± 90)x | 91,2 ± 12,6 |
| ER | (8 ± 6)x | 99,1 ± 0,7 |
| ML | (86 ± 80)x | 99,1 ± 0,9 |
Отметим главные выводы из сравнения точности моделей оценки быстродействия, а также времязатрат:
Также был проведен статистический анализ абсолютной ошибки оценки частоты работы блока – рассчитан 95% доверительный интервал для 3 методов. Результаты анализа:
Интерпретация доверительных интервалов данных методов показывает, что метод ER систематически завышает частоту, метод ML систематически занижает частоту и обеспечивает более консервативную оценку, а метод Wireload демонстрирует систематическое заметное занижение частоты.
В данной работе решалась задача оценки паразитной ёмкости цепей в цифровом блоке СБИС на этапе размещения ячеек с помощью методов машинного обучения. Был предложен ряд моделей машинного обучения для решения данной задачи: линейные модели в однозадачном и многозадачном режиме регрессии, модели на основе градиентного бустинга. Был собран набор данных для обучения моделей по технологии 40 нм для 35 RTL-моделей с открытым исходным кодом. Проведен отбор признаков и обучение 28 моделей с различными наборами признаков. Наибольшую точность продемонстрировала модель XGBoost_M_A – модель на основе градиентного бустинга в режиме мультизадачной регрессии для набора признаков А без агрессивного отбора (порог корреляции больше 0,1 без устранения мультиколлинеарности). Средняя абсолютная ошибка на кросс-валидации составила 0,57 фФ (в процентах 10,3%), что на порядок ниже ошибки, полученной классическим методом на основе Wireload-модели. Среднее ускорение получения паразитных параметров по сравнению с эталонным методом – 90 раз.
На основе модели XGBoost_M_A была предложена модель ML для решения задачи оценки быстродействия блока на этапе размещения. Ее результаты сравнивались с результатами моделей на основе Wireload, на основе инструмента Early Route из САПР Innovus, а также с эталонным значением после трассировки и экстракции паразитных параметров. Предложенная модель ML продемонстрировала высокую точность в оценке быстродействия – 99,1% (сравнимо с ER-моделью), значительно превосходит в точности модель на основе Wireload (точность 91,2%), а также обеспечивает значительное ускорение (~ 86 раз) по сравнению с эталонным методом, а также по сравнению с методом ER (~ 10 раз), что делает данную модель перспективной для ее использования при проектировании цифровых блоков СБИС для оценки быстродействия на раннем этапе проектирования ввиду баланса ее высокой точности и быстром времени работы по сравнению с другими методами.
Никита Владимирович ЖЕЛУДКОВ – заведующий сектором, младший научный сотрудник в НИЦ "Курчатовский институт" – НИИСИ. Сфера научных интересов: проектирование СБИС, систем на кристалле, применение методов машинного обучения в проектировании СБИС, автоматизация проектирования.
Юлия Андреевна КУЛЕМИНА – инженер и аспирант в НИЦ "Курчатовский институт" – НИИСИ. Сфера научных интересов: проектирование аналоговых блоков СБИС, применение методов машинного обучения в процессе разработки аналоговых блоков, автоматизация проектирования.