Konstruieren Sie eine Manhattan-Route mit zwei Pins

Routen Sie ein Netz auf einem begrenzten DBU-Raster und prüfen Sie seine Segmente und die Gesamtlänge.

Verwenden Sie Altifigence CLI 0.1.9 unter Linux, um eine kleine lokale Manhattan-Route mit zwei Pins zu konstruieren. Die Eingabe definiert ein rechteckiges Raster und geordnete Netze mit Quell- und Zielkoordinaten in Datenbankeinheiten. Dieses Beispiel verbindet eine Quelle bei (10, 10) mit einem Ziel bei (30, 30) innerhalb eines Rasters von 40 mal 40. Speichern Sie es als route-input.json, bevor Sie den Befehl ausführen.

Setzen Sie den Exit-Status 0 voraus, bevor Sie ein gespeichertes Ergebnis lesen. Bewahren Sie die Standardfehlerausgabe separat auf und prüfen Sie die unten beschriebenen Ergebnisfelder.

Bereiten Sie die Routeneingabe vor

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

Geben Sie jedem Netz eine eindeutige, nicht leere Kennung und halten Sie beide Endpunkte innerhalb des Rasters. Der Konstruktor bewahrt die Reihenfolge der Eingabenetze. Er erstellt zuerst das horizontale und dann das vertikale Segment und lässt alle Segmente mit der Länge null weg. Diese Regeln erleichtern die Prüfung dieses Beispiels direkt anhand seiner Koordinaten.

Führen Sie die Konstruktion aus

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

Prüfen Sie route-result.json auf das Schema local-two-pin-manhattan-route, die angeforderte Eingabe, den Eingabe-Hashwert, die Routen und die gesamte Manhattan-Länge. Erwarten Sie in diesem Beispiel ein horizontales Segment von (10, 10) nach (30, 10), gefolgt von einem vertikalen Segment nach (30, 30). Jedes Segment misst 20 DBU und die Gesamtlänge beträgt 40 DBU. Bewahren Sie die ursprüngliche Eingabe zusammen mit dem Ergebnis auf, damit sich die Konstruktion wiederholen lässt.

Prüfen Sie das Ergebnis

Nachfolgend werden ausgewählte Felder des Routenergebnisses gezeigt; das vollständige Ergebnis enthält außerdem den Eingabe-Hashwert und die Segmentkoordinaten.

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

Prüfen Sie eine abgelehnte Eingabe

Eine x-Koordinate des Ziels von 41 liegt außerhalb dieses Rasters und erzeugt invalid_job, Exit-Code 13, mit job input is not an admitted local Physical job. Setzen Sie sink.x wieder auf 30 innerhalb des Rasters und wiederholen Sie anschließend die Konstruktion.