Costruire un percorso Manhattan a due pin

Instrada una net su una griglia DBU con limiti definiti e ispezionane i segmenti e la lunghezza totale.

Utilizza Altifigence CLI 0.1.9 su Linux per costruire un piccolo percorso Manhattan locale a due pin. L'input definisce una griglia rettangolare e net ordinate con coordinate di sorgente e destinazione in unità di database. Questo esempio collega una sorgente in (10, 10) a una destinazione in (30, 30) all'interno di una griglia 40 per 40. Salvalo come route-input.json prima di eseguire il comando.

Verifica che lo stato di uscita sia 0 prima di leggere un risultato salvato. Conserva separatamente l'output di errore standard e ispeziona i campi del risultato descritti di seguito.

Preparare l'input del percorso

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

Assegna a ogni net un identificatore univoco e non vuoto e mantieni entrambi gli estremi all'interno della griglia. Il costruttore conserva l'ordine delle net in input. Costruisce prima il segmento orizzontale, poi quello verticale, e omette qualsiasi segmento di lunghezza zero. Queste regole rendono l'esempio facile da verificare direttamente dalle coordinate.

Eseguire la costruzione

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

Ispeziona route-result.json per controllare lo schema local-two-pin-manhattan-route, l'input richiesto, il digest dell'input, i percorsi e la lunghezza Manhattan totale. Per questo esempio, è previsto un segmento orizzontale da (10, 10) a (30, 10), seguito da un segmento verticale fino a (30, 30). Ogni segmento misura 20 DBU e il totale è 40 DBU. Conserva l'input originale insieme al risultato per poter ripetere la costruzione.

Ispezionare il risultato

Di seguito sono mostrati alcuni campi del risultato del percorso; il risultato completo include anche il digest dell'input e le coordinate dei segmenti.

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

Controllare un input rifiutato

Una coordinata x della destinazione pari a 41 si trova fuori da questa griglia e produce invalid_job, codice di uscita 13, con job input is not an admitted local Physical job. Riporta sink.x a 30 all'interno della griglia, quindi ripeti la costruzione.