Construire un routage Manhattan à deux broches

Routez un net sur une grille DBU bornée et examinez ses segments et sa longueur totale.

Utilisez Altifigence CLI 0.1.9 sous Linux pour construire un petit routage Manhattan local à deux broches. L’entrée définit une grille rectangulaire et des nets ordonnés dont les coordonnées source et destination sont exprimées en unités de base de données. Cet exemple relie une source en (10, 10) à une destination en (30, 30) dans une grille de 40 sur 40. Enregistrez-le dans route-input.json avant d’exécuter la commande.

Exigez un statut de sortie 0 avant de lire un résultat enregistré. Conservez la sortie d’erreur standard séparément et examinez les champs du résultat décrits ci-dessous.

Préparer l’entrée de routage

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

Attribuez à chaque net un identifiant unique et non vide, et maintenez ses deux extrémités dans la grille. Le constructeur préserve l’ordre des nets en entrée. Il construit d’abord le segment horizontal, puis le segment vertical, et omet tout segment de longueur nulle. Ces règles facilitent l’examen de cet exemple directement à partir de ses coordonnées.

Exécuter la construction

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

Examinez route-result.json pour y trouver le schéma local-two-pin-manhattan-route, l’entrée demandée, l’empreinte de l’entrée, les routes et la longueur Manhattan totale. Pour cet exemple, attendez-vous à un segment horizontal de (10, 10) à (30, 10), suivi d’un segment vertical jusqu’à (30, 30). Chaque segment mesure 20 DBU et le total mesure 40 DBU. Conservez l’entrée d’origine avec le résultat pour pouvoir répéter la construction.

Examiner le résultat

Certains champs du résultat de routage sont présentés ci-dessous ; le résultat complet comprend aussi l’empreinte de l’entrée et les coordonnées des segments.

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

Vérifier une entrée rejetée

Une coordonnée x de destination égale à 41 se situe hors de cette grille et produit invalid_job, avec le code de sortie 13 et le message job input is not an admitted local Physical job. Rétablissez sink.x à 30, à l’intérieur de la grille, puis répétez la construction.