构建双引脚曼哈顿布线
在有界 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,然后重新构建。