Главная страница: Трассировка
Одним из самых затратных по времени этапов проектирования платы является трассировка цепей. Несмотря на то, что система правил проектирования управляет ограничениями, такими как ширина трасс, размер переходных отверстий, зазоры и т.п., на проектировщика возлагается задача по размещению тысяч сегментов трасс, необходимых для полной разводки платы.
Автотрассировка может упростить эту задачу, но в общем случае ее применение неуместно, поскольку:
Она не может правильно учесть множество неявных правил проектирования, которые проектировщик применяет в процессе трассировки на подсознательном уровне.
На ее настройку уходит так много времени, что зачастую эффективнее просто провести интерактивную трассировку.
Последующая доработка результата может быть настолько сложным и долгим процессом, что зачастую эффективнее провести трассировку в интерактивном режиме.
Заветной целью трассировки плат является быстрое получение результата высокого качества, который соответствует правилам проектирования и находится под управлением проектировщика. Это та задача, для решения которой создан ActiveRoute.
Improving the Completed Routes
Дополняющими, но отдельными от ActiveRoute функциональными возможностями являются сглаживание и повторная трассировка, которые можно использовать для улучшения качества существующих трасс, независимо от того, как они были созданы.
По умолчанию сглаживание включено, и оно запускается по завершении работы ActiveRoute. Это поведение можно отключить в панели PCB ActiveRoute если необходимо. У сглаживания также есть собственный набор настроек, в том числе возможность искривлять изломы трассировки.
► Узнать больше о Сглаживании и повторной трассировке
Что такое ActiveRoute?
ActiveRoute – это технология автоматизированной интерактивной трассировки, которая позволяет эффективно провести трассировку множества цепей или соединений, выбранных проектировщиком. ActiveRoute также позволяет в интерактивном режиме задать путь трасс – «коридор», вдоль которого будут проходить новые трассы.
Ключевые особенности ActiveRoute, которые делают такой подход значительно эффективнее сочетания привычной интерактивной и автотрассировки:
Автоматическая оптимизация трасс, отходящих от массивов выводов/переходных отверстий – наиболее трудозатратный аспект ручной трассировки.
Высокая производительность – трассировка каждой цепи занимает меньше одной секунды.
Следование правилам проектирования для ширины, зазора, слоев, топологии и комнат, для цепей и классов цепей, с учетом приоритетов.
Одновременная трассировка на множестве слоев и распределение трасс по этим слоям.
Интуитивно понятный инструмент Route Guide, который можно использовать для непосредственного размещения трасс.
Применение Route Guide позволяет получить высокий процент завершения цепей, без использования переходных отверстий.
Возможность трассировки через полигоны с их последующей перезаливкой (если включен параметр перезаливки).
Поддержка одиночных цепей и дифференциальных пар.
Доработка с помощью мощного инструмента сглаживания для уменьшения количества изломов и длины трассировки.
Чем не является ActiveRoute
ActiveRoute не является автотрассировщиком. Это управляемый интерактивный трассировщик, целью которого является получение чистой, высококачественной трассировки набора заданных цепей. Используйте ActiveRoute таким же образом, каким вы используете интерактивную трассировку – выберите нужные цепи, задайте слои, на которых вы хотите провести трассировку этих цепей, укажите путь, по которому необходимо растрассировать цепи, и затем проведите трассировку.
Если выбрать все цепи на плате и применить к ним ActiveRoute, то вы, скорее всего, будете разочарованы, поскольку ActiveRoute не является автотрассировщиком и не размещает переходные отверстия, а также не применяет стратегии трассировки цепей питания.
Панель PCB ActiveRoute
Справка по панели: PCB ActiveRoute
ActiveRoute следует критериям и ограничениям, заданным правилами проектирования, поэтому использование этой технологии сводится к выбору необходимых соединений или цепей и запуску процесса. Существует ряд особых параметров, управление которыми осуществляется в панели PCB ActiveRoute . Настоятельно рекомендуется открыть панель PCB ActiveRoute перед запуском ActiveRoute.
Чтобы открыть панель PCB ActiveRoute , когда активен документ платы:
Нажмите кнопку в нижнем правом углу рабочей области и выберите PCB ActiveRoute из меню.
Выберите команду View » Panels » PCB ActiveRoute .
Использование панели PCB ActiveRoute для управления процессом ActiveRoute.
Панель PCB ActiveRoute используется для следующего:
Выбор сигнальных слоев, на которых ActiveRoute может трассировать соединения.
Проведение процесса ActiveRoute над выбранными соединениями.
Включение сглаживания после проведения ActiveRoute.
Определение Route Guide .
Настройка зазора между трассами, который нужно использовать в Route Guide.
Настройка и включение подстройки длины трасс, размещаемых с помощью ActiveRoute.
Настройка параметров меандра, позволяющих ActiveRoute определить трассу большей длины, что может помочь повысить процент завершенных цепей.
Настройка и включение эквивалентной замены выводов. ActiveRoute может выполнять замену выводов в процессе трассировки для улучшения качества трассировки.
Дополнительные возможности ActiveRoute
ActiveRoute – это автоматизированный интерактивный трассировщик, использование которого достаточно просто и прозрачно – выберите соединения и нажмите Shift+A для запуска ActiveRoute, в соответствии с правилами проектирования. ActiveRoute включает в себя ряд прочих параметров и настроек, которые позволяют проектировщику лучше управлять определенными возможностями.
Среди них:
Определение пути трассировки и расстояния между трассами с помощью Route Guide.
Возможность размещения пути большей длины путем размещения меандров.
Автоматическое приведение длины трасс в соответствие с правилами с помощью подстройки длины.
Возможность эквивалентной замены выводов для упрощения задач трассировки.
Рассмотрим каждую из этих возможностей подробнее.
Определение пути трасс с помощью Route Guide
Одной из главных целей ActiveRoute является поиск кратчайшей общей длины трасс, но такой вариант может подойти не для каждого набора соединений. Инструмент Route Guide позволяет проектировщику задать желаемый путь, вдоль которого будут проложены трассы выбранных соединений, даже если этот путь не является кратчайшим.
Определение Route Guide – сначала выделите соединения, которые должны быть трассированы вдоль желаемого пути, нажмите кнопку в панели PCB ActiveRoute , щелкните для определения начала пути, после чего перемещайте мышь и продолжайте нажимать ЛКМ для определения пути. После того, как путь определен, нажмите кнопку ActiveRoute для трассировки выделенных соединений вдоль этого пути. Для получения более подробной информации перейдите в раздел Определение Route Guide этой страницы.
Избегайте размещения крайних точек Route Guide на контактных площадках, которые вы хотите трассировать. Качество трасс, выходящих из контактных площадок, будет выше, если они будут находиться вне Route Guide.
Изменение ширины Route Guide – в процессе размещения Route Guide вы можете делать его шире или уже с помощью клавиш и . Шириной по умолчанию является сумма значений ширины и зазоров выделенных соединений, определенных правилами проектирования, деленная на количество слоев и умноженная на 1,3. Нажмите клавишу Backspace для отката пути, если вы хотите определить путь по-другому.
Цвет Route Guide – определяется слоями, заданные для выбранных соединений как доступные для трассировки средствами ActiveRoute. Если выбран один слой, Route Guide имеет цвет этого же слоя. Если выбрано несколько слоев, Route Guide отображается в цвете по умолчанию.
Расстояние между трассами внутри Route Guide – по умолчанию ActiveRoute задает расстояния между трассами согласно правилам проектирования, и ActiveRoute не будет пытаться увеличить это расстояние или использовать все доступное пространство внутри Route Guide. Чтобы увеличить расстояние между трассами внутри Route Guide, используйте параметр Track-Track Space in Route Guide , как описано далее.
Видео с демонстрацией размещения объекта Route Guide и интерактивным изменением его ширины.
Ширина Route Guide
Шириной Route Guide по умолчанию является сумма значений ширины и зазоров выделенных соединений, определенных правилами проектирования, деленная на количество слоев и умноженная на 1,3.
Ширина_Route_Guide = ((W+C)/#слоев)*1.3)
Ширина Route Guide увеличена в 1,3 раза для обеспечения возможности трасс огибать препятствия, такие как переходные отверстия, на пути трасс. Ширина является жесткой границей трассировки, поэтому если трассы не будут помещаться в эту ширину, они не будут размещены.
В процессе размещения Route Guide, его ширину можно увеличивать и уменьшать с помощью клавиш и . Минимальный размер определяется множителем 1,0; максимальный – множителем 10,0.
Редактирование Route Guide
Route Guide является набором трасс, размещенных на механическом слое.
По умолчанию сегменты трасс заблокированы. Вы можете разблокировать их и затем изменить форму Route Guide, как обычные сегменты трасс.
Чтобы удалить Route Guide, дважды щелкните по любому сегменту, чтобы выделить его, и нажмите Delete .
Параметр Track-Track Space Within the Route Guide
С помощью параметра Track-Track Space in Route Guide вы можете указать ActiveRoute, как следует распределить трассы в Route Guide. Используйте ползунок, чтобы выбрать значение расстояния между трассами, или введите значение в текстовое поле. Ширина Route Guide будет подобрана автоматически с учетом этой настрой. Для этого необходимо задать необходимое значение Track-Track Space in Route Guide до размещения Route Guide. Вы можете изменить ширину Route Guide в дальнейшем, в процессе размещения, нажимая и .
Используйте параметр Track-Track Space Within the Route Guide для распределения трасс внутри Route Guide.
Настройка извилистости трасс
ActiveRoute пытается проложить трассы выбранных соединений по наиболее короткому из возможных путей – иными словами, с минимальной извилистостью трасс. Если процент завершенных трасс, получаемых с помощью ActiveRoute, меньше ожидаемого, вы можете использовать параметр Meander % Over Manhattan Length , чтобы увеличить допустимую для ActiveRoute степень извилистости. Максимальным значением этого параметра по умолчанию является 100% - это означает, что максимальная допустимая общая длина трасс составляет манхэттенская длина + 100% манхэттенской длины
. Используйте ползунок для выбора значения или введите нужный процент в текстовое поле.
Обратите внимание, что эта настройка будет проигнорирована при использовании Route Guide, поскольку Route Guide используется для задания пользовательского пути, извилистость которого может быть значительной.
Подстройка длины трасс
ActiveRoute может применить подстройку длины трасс к трассируемым соединениям или выбранным существующим трассам. ActiveRoute будет пытаться удовлетворить требования правила согласования длины Matched Length.
Для подстройки длины трасс при использовании ActiveRoute необходимо:
Включить параметр Tune Selected (Подстройка выделенных объектов) в разделе Action (Действие) панели.
Включить требуемое правило согласования длины Matched Length в разделе Tune (Подстройка) панели.
Настроить параметры Max Amplitude (Максимальная амплитуда) и Min Space (Минимальное расстояние) для одиночных цепей и/или дифференциальных пар в разделе Tune панели, как это необходимо.
В данный момент доступен только стиль меандров со скошенными углами, с величиной скоса около 20%. Также меандры, размещаемые в процессе работы ActiveRoute, не являются объединениями (Union). Поддержка подстройки длины ActiveRoute, включающая в себя различные стили подстройки и применение меандров-объединений, находится в разработке.
► Чтобы узнать более подробно о параметрах ActiveRoute для подстройки длины, перейдите на страницу панели PCB ActiveRoute , в раздел о подстройке длины .
► Чтобы узнать более подробно о подстройке длины существующих трасс с помощью настраиваемых меандров, перейдите на страницу Подстройка длины .
Эквивалентная замена выводов
Программное обеспечение включает в себя мощные функциональные возможности эквивалентной замены выводов и секций, связанные как с редактором схем, так и с редактором плат. ActiveRoute может использовать настройки эквивалентной замены выводов и производить такую замену в процессе трассировки, если она уменьшит общую длину трасс и улучшит их качество.
Чтобы использовать эквивалентную замену выводов, необходимо:
Перед выполнением любой эквивалентной замены выводов (интерактивной или с помощью ActiveRoute) проект должен быть скомпилирован (из меню Project ), при каждом открытии.
Для настройки и управления эквивалентной замены выводов компонентов активировать команду Tools » Pin/Part Swapping » Configure – будет открыто диалоговое окно Configure Swapping Information in Components .
Включить параметр Pin Swap Routing (Трассировка с эквивалентной заменой выводов) в разделе Action панели PCB ActiveRoute .
Включить необходимые компоненты в разделе Pin Swap (Эквивалентная замена выводов) панели PCB ActiveRoute .
Настройка ActiveRoute
1. Создание классов цепей
Для трассировки с помощью ActiveRoute необходимо выделить цепи, и классы цепей могут значительно упростить процесс выделения, если для трассировки с помощью ActiveRoute необходимо выбрать множество цепей. Перейдите в раздел Способы выделения ниже на этой странице, чтобы получить подробную информацию о методах выделения соединений.
2. Отключение существующих полигонов
С помощью ActiveRoute можно проводить трассировку через существующие полигоны, если в диалоговом окне Preferences на странице PCB Editor - General включен параметр Repour Polygons after Modification (Перезаливать полигоны после изменения). Либо можно отключить полигоны (сделать их невидимыми, но сохранить в проекте) с помощью команды Tools » Polygon Pours » Shelve Polygons .
3. Настройка правил проектирования
Зазоры – ActiveRoute следует применяемым правилам проектирования для зазоров , используя их согласно их приоритетам.
Ширина трасс – используется настройка Preferred (Предпочтительное значение) применяемого правила для ширины трасс . Как и при интерактивной трассировке, для изменения ширины трасс в определенной области, например при трассировке под корпусом BGA, определите комнату (Room) и примените к ней правило ширины трасс с меньшим значением предпочтительной ширины. В случае, если трассировку не удается провести вручную, то ActiveRoute также не сможет этого сделать.
Дифференциальные пары – ActiveRoute может трассировать дифференциальные пары. Убедитесь, что дифференциальные пары заданы корректно (посмотрите в панели PCB в режиме Differential Pairs Editor ) и правила трассировки дифференциальных пар (используются предпочтительные значения – Preferred ).
Выходы из контактных площадок – ActiveRoute старается использовать наиболее прямой путь в/из контактных площадок в соответствии с правилами проектирования, без создания острых углов. Трассировка подчиняется правилам SMT to Corner и SMT Pad Entry , но не всегда центрирует трассу в контактной площадке (как это происходит при интерактивной трассировке, если включено правило SMD to Corner). ActiveRoute включает в себя ряд специальных алгоритмов для контактных площадок дифференциальных пар, направленных на смыкание трасс пары, с поддержкой их аккуратности.
4. Настройка топологии цепей
ActiveRoute следует расположению линий соединения. Если у вас есть цепи, которым необходима специальная топология, например DDR3/4 с технологией Fly-By, вы можете задать порядок их следования с помощью объектов xSignals . Мастер xSignals Multi-Chip Wizard (Design » xSignals » Run xSignals Wizard ) может создать эти объекты в проекте, в который включены сигналы типа DDR3/4 и USB 3.0. Либо может задать расположение линий соединения с помощью маршрутов From-To, в панели PCB в режиме From-To Editor .
5. Создание фэнаутов
ActiveRoute не размещает переходные отверстия, поэтому необходимо предварительно создавать фэнауты компонентов в корпусах BGA, соединителей и дискретных компонентов, которые используют контактные площадки SMD (за исключением тех, которые нужно трассировать на внешних слоях).
6. Трассировка цепей питания
Технология ActiveRoute предназначена для трассировки сигнальных цепей, и эта технология игнорирует цепи, назначенные экранным слоям, а также цепи, содержащие более 20 выводов (такие цепи считаются цепями питания). Если вы хотите использовать ActiveRoute для созданных ранее конструкций, удалите сигнальные трассы, но оставьте трассировку цепей питания и фэнауты.
7. Включение необходимых слоев трассировки
Включите необходимые слои трассировки в панели PCB ActiveRoute . Подробнее об этом ниже.
ActiveRoute может использовать
сглаживание (
Route » Gloss Selected ), которое запускается автоматически в рамках процесса ActiveRoute, если оно включено в панели
PCB ActiveRoute .
Основной причиной, по которой ActiveRoute может не удаваться трассировка, является недостаточное пространство для трасс – важно убедиться, что правила для ширины трасс и зазоров заданы корректно.
Способы выделения
ActiveRoute необходимо понимать, какие соединения или трассы вы хотите трассировать – для этого их необходимо выделить. Можно непосредственно выделить линии соединения или выбрать объект существующей трассировки, например контактную площадку, трассу, переходное отверстие или компонент, чтобы обозначить, какие соединения/цепи вы хотите трассировать с помощью ActiveRoute.
Для выделения необходимых объектов используйте следующие сочетания клавиш:
Выделение внутри или на границе рамки
В Altium NEXUS можно выделять объекты, полностью попадающие в рамку, либо те, которые попадают в рамку и на ее границу. Режим зависит от направления перемещения мыши в процессе выделения объектов рамкой:
Режим Select Within – зажмите ЛКМ и перемещайте мышь слева направо для создания синей рамки и выделения всех видимых незаблокированных объектов, полностью попадающих в границы рамки .
Режим Select Touching – зажмите ЛКМ и перемещайте мышь справа налево для создания зеленой рамки и выделения всех видимых незаблокированных объектов, которые попадают в рамку и на ее границу .
Демонстрация способов выделения трасс
Используйте эти способы для быстрого выделения соединений для трассировки или удаления.
При трассировке выбранных цепей используется предпочтительное значение ширины (Preferred), заданное в применяемом правиле для ширины трасс. Исключение здесь – если выделенным объектом является отрезок трассы, то будет использоваться ширина этого отрезка.
Выполнение трассировки с помощью ActiveRoute
Для выполнения трассировки с помощью ActiveRoute, необходимо:
1. Выделить соединения для трассировки
С помощью способов, обозначенных выше, выделите соединения/цепи, которые необходимо трассировать. В строке состояния будет отображено количество выделенных соединений, пока курсор не будет наведен на другой объект.
2. Включить слои, на которых будет проведена трассировка с помощью ActiveRoute
В панели PCB ActiveRoute включите слои, на которых нужно трассировать выделенные соединения. ActiveRoute будет размещать трассы на этих слоях.
Если выбранных слоев нет, трассировка будет проведена на активном слое, выбранном с помощью вкладок в нижней части рабочей области редактора плат.
Панель PCB ActiveRoute позволяет выбрать слои для трассировки, создать Route Guide и запустить процесс ActiveRoute.
Панель PCB ActiveRoute можно открыть и закрепить так же, как и другие панели.
3. Определить Route Guide, если необходимо
Чтобы разместить Route Guide:
Выделите соединения, которые нужно трассировать вдоль пути Route Guide. В строке состояния будет отображено количество выделенных соединений, пока курсор не будет наведен на другой объект.
Нажмите кнопку Route Guide в панели PCB ActiveRoute .
Выбранные соединения будут привязаны к курсору, что указывает на то, что этот набор соединений должен идти вдоль Route Guide. Переместите курсор к положению начала пути, который вы хотите задать.
Щелкните ЛКМ, чтобы задать начальное положение Route Guide, при этот оставив некоторое пространство для входа соединений в скругленный конец Route Guide.
Route Guide выглядит как очень широкая трасса. Наведите курсор в то положение, где должен располагаться излом Route Guide, и щелкните ЛКМ, чтобы определить этот излом.
Продолжайте процесс определения пути, остановившись на некотором расстоянии от того места, где заканчиваются линии соединения – это обеспечит пространство для выхода соединений из Route Guide к их целевым контактным площадкам, переходным отверстиям или трассам.
Нажмите Стрелку вверх , чтобы увеличить ширину Route Guide, и Стрелку вниз , чтобы уменьшить ширину Route Guide.
Нажмите Backspace , чтобы удалить излом Route Guide, размещенный последним.
Нажмите ПКМ , чтобы завершить размещение Route Guide.
В плате может быть только один Route Guide.
4. Запустить ActiveRoute
Чтобы запустить ActiveRoute, вы можете:
Выбрать команду Route » ActiveRoute .
Нажать кнопку ActiveRoute ( ) в панели Active Bar .
Нажать кнопку ActiveRoute в панели PCB ActiveRoute .
Использовать сочетание клавиш Shift+A .
5. Отслеживать прогресс выполнения и проверять отклик
Прогресс выполнения ActiveRoute отображается в строке состояния редактора плат.
В панели Messages отображается отчет о степени завершенности.
Повышение квалификации
Основой повышения квалификации при работе с ActiveRoute является умение свободно использовать сочетания клавиш. Наиболее часто используемые из них:
Alt+ЛКМ – для выделения отдельных линий соединения.
Alt + перетаскивание с зажатой ЛКМ – для выделения линий соединения перетащите курсор с зажатой ЛКМ справа налево, чтобы выделить все линии, которые касаются рамки, или слева направо, чтобы выделить лишь те линии, которые полностью попадают в рамку. Нажмите Tab , чтобы выделить все соединения, принадлежащие той же цепи (или цепям). В строке состояния будет отображено количество выделенных соединений, пока курсор не будет наведен на другой объект.
Ctrl + перетаскивание с зажатой ЛКМ – для выделения контактных площадок перетащите курсор с зажатой ЛКМ справа налево, чтобы выделить все площадки, которые касаются рамки, или слева направо, чтобы выделить лишь те площадки, которые полностью попадают в рамку. Нажмите Tab , чтобы выделить все объекты трассировки, принадлежащие той же цепи (или цепям). Продолжайте нажимать Tab , чтобы циклически переключаться между всеми возможными состояниями выделения.
Перетаскивание с зажатой ЛКМ – для выделения существующих сегментов трасс, перетащите курсор с зажатой ЛКМ справа налево, чтобы выделить все трассы, которые касаются рамки, или слева направо, чтобы выделить лишь те трассы, которые полностью попадают в рамку. Нажмите Tab , чтобы выделить все объекты трассировки, принадлежащие той же цепи (или цепям). Продолжайте нажимать Tab , чтобы циклически переключаться между всеми возможными состояниями выделения.
Shift+A – для трассировки выделенных объектов с помощью ActiveRoute.
Ctrl+Alt+G – для сглаживания выделенных в данный момент объектов.
Выделение можно применить только в видимым объектам (исключение – сочетание клавиш Ctrl+A ).
Нажимайте Shift+S , чтобы циклически переключаться между режимами одного слоя – с их помощью можно отобразить только нужные слои.
Если в плате используются комнаты, их можно заблокировать через правила проектирования, которые их определяют, либо скрыть, чтобы они были не доступны для выделения и перетаскивания с зажатой ЛКМ. Комнаты можно скрыть через панель View Configuration , на вкладке View Options .
Создание фэнаутов контактных площадок SMD-компонентов. ActiveRoute не изменяет слои, так что вам необходимо предварительно создавать фэнауты контактных площадок SMD-компонентов. Чтобы ускорить процесс создания фэнаутов:
При трассировке соединения нажмите клавишу / на цифровой клавиатуре, чтобы поместить переходное отверстие и прекратить дальнейшую трассировку этого соединения. Если цифровая клавиатура отсутствует, используйте клавишу 2 – будет размещено переходное отверстие, без прекращения трассировки.
Скопируйте и вставьте существующие фэнауты. Редактор плат автоматически обновит имена цепей. Это можно сделать для множества фэнаутов.
Сохраните существующие фэнауты. ActiveRoute изменит фэнауты, если увидит лучшее решение, поэтому если вы не хотите, чтобы они были изменены, заблокируйте их. Самый простой способ заблокировать фэнауты – это выделить трассы и переходные отверстия фэнаутов (здесь может помочь фильтр выбора Selection Filter в верхней части панели Properties ), нажать F11 для открытия панели Properties и включить параметр Locked . Это заблокирует все выделенные объекты в одно действие.
Если при использовании Route Guide вы обнаружили, что степень завершения трасс довольно низкая, то, возможно, на вдоль пути находится слишком много препятствий, и ширину Route Guide необходимо увеличить. Нажмите клавишу со Стрелкой вверх , чтобы увеличить ширину Route Guide в процессе его размещения.
Когда ActiveRoute завершит работу, будет автоматически применено сглаживание (если соответствующий параметр включен в панели PCB ActiveRoute ). Можно использовать команду Route » Gloss Selected для сглаживания трасс и улучшения входов в контактные площадки любой трассировки, не только полученной с помощью ActiveRoute. Особое внимание было уделено высокому качеству входов в контактные площадки дифференциальных пар. Чтобы получить более подробную информацию, перейдите на страницу Сглаживание и повторная трассировка .
Если ActiveRoute не работает, то, скорее всего, некорректно заданы правила проектирования. Проверьте, что правила заданы правильно – например, правило для ширины трасс, которое задано в новом файле платы по умолчанию, может иметь слишком большое ограничение для плотной трассировки с элементами в корпусах BGA.
ActiveRoute отслеживает правила для ширины трасс, зазоров, расстояния между трассами дифференциальных пар, применяемых для слоев, комнат и классов. ActiveRoute не размещает трассы под произвольными углами и дуги.