Построение манхэттенской трассы между двумя выводами

Проложите одну цепь на ограниченной сетке DBU и проверьте её сегменты и общую длину.

Используйте Altifigence CLI 0.1.9 в Linux для построения небольшой локальной манхэттенской трассы между двумя выводами. Входные данные задают прямоугольную сетку и упорядоченные цепи с координатами источника и приёмника в единицах базы данных. В этом примере один источник в точке (10, 10) соединяется с одним приёмником в точке (30, 30) внутри сетки 40 на 40. Перед запуском команды сохраните данные как route-input.json.

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

Подготовка входных данных трассировки

{
  "grid_bounds": {
    "x_min": 0,
    "y_min": 0,
    "x_max": 40,
    "y_max": 40
  },
  "nets": [
    {
      "net_id": "net_z",
      "source": {
        "x": 10,
        "y": 10
      },
      "sink": {
        "x": 30,
        "y": 30
      }
    }
  ]
}

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

Запуск построения

alti physical capabilities
alti physical two-pin-manhattan-route < route-input.json > route-result.json

Проверьте в route-result.json схему local-two-pin-manhattan-route, запрошенные входные данные, их хеш, трассы и общую манхэттенскую длину. В этом примере ожидается горизонтальный сегмент от (10, 10) до (30, 10), за которым следует вертикальный сегмент до (30, 30). Длина каждого сегмента составляет 20 DBU, общая длина — 40 DBU. Сохраните исходные входные данные вместе с результатом, чтобы построение можно было повторить.

Проверка результата

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

{"schema":"altifigence.physical.local-two-pin-manhattan-route.v0","execution_performed":true,"requested_net_order":["net_z"],"total_manhattan_length_dbu":40}

Проверка отклонённых входных данных

Координата x приёмника, равная 41, находится за пределами этой сетки и приводит к invalid_job, коду завершения 13 и сообщению job input is not an admitted local Physical job. Верните sink.x значение 30 внутри сетки, затем повторите построение.