构建双引脚曼哈顿布线

在有界 DBU 网格上对一条网络进行布线,并检查其线段和总长度。

在 Linux 上使用 Altifigence CLI 0.1.9 构建小型本地双引脚曼哈顿布线。输入定义矩形网格和有序网络,其源端及接收端坐标以数据库单位表示。本示例在 40 × 40 的网格内,将位于 (10, 10) 的一个源端连接到位于 (30, 30) 的一个接收端。运行命令前,将其保存为 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 schema、请求输入、输入摘要、布线路径和总曼哈顿长度。在此示例中,预期先生成从 (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,然后重新构建。