Construct a two-pin Manhattan route

Route one net on a bounded DBU grid and inspect its segments and total length.

Use Altifigence CLI 0.1.9 on Linux to construct a small local two-pin Manhattan route. The input defines a rectangular grid and ordered nets with source and sink coordinates in database units. This example connects one source at (10, 10) to one sink at (30, 30) inside a 40 by 40 grid. Save it as route-input.json before running the command.

Require exit status 0 before reading a saved result. Keep standard error separately and inspect the result fields described below.

Prepare the route input

{
  "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
      }
    }
  ]
}

Give each net a unique, nonempty identifier and keep both endpoints inside the grid. The constructor preserves input net order. It builds the horizontal segment first, then the vertical segment, and omits any segment whose length is zero. Those rules make this example easy to review directly from its coordinates.

Run the construction

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

Inspect route-result.json for the local-two-pin-manhattan-route schema, requested input, input digest, routes, and total Manhattan length. For this example, expect a horizontal segment from (10, 10) to (30, 10), followed by a vertical segment to (30, 30). Each segment measures 20 DBU and the total measures 40 DBU. Keep the original input with the result so the construction can be repeated.

Inspect the result

Selected fields from the route result are shown below; the full result also includes the input digest and segment coordinates.

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

Check a rejected input

A sink x coordinate of 41 lies outside this grid and produces invalid_job, exit code 13, with job input is not an admitted local Physical job. Set sink.x back to 30 inside the grid, then repeat the construction.