UL_NET

Membri dati

class UL_CLASS
column string (vedere nota)
name string (NET_NAME_LENGTH)
row string (vedere nota)

Membri di sequenza chiusa

portrefs() UL_PORTREF
pinrefs() UL_PINREF (vedere nota)
segments() UL_SEGMENT (vedere nota)

Vedere anche UL_SHEET, UL_SCHEMATIC

Costanti

NET_NAME_LENGTH lunghezza max. consigliata di un nome di rete (utilizzata solo nell'output formattato)

Nota

Il membro di sequenza chiusa pinrefs() può essere utilizzato solo se la rete si trova in un contesto schematico. Il membro di sequenza chiusa segments() può essere utilizzato solo se la rete si trova nel contesto di un foglio.

I membri column e row restituiscono le posizioni delle colonne e delle righe all'interno del riquadro nel foglio su cui viene disegnata la rete. Poiché una rete può estendersi oltre una determinata area, ognuna di queste funzioni restituisce due valori, separati da uno spazio vuoto. Nel caso della colonna, queste sono le colonne più a sinistra e a destra toccate dalla rete mentre nel caso di una riga, si tratta della riga più in alto e più in basso.

Quando si determinano la colonna e la riga di una rete in un foglio, vengono prese in considerazione prima la colonna e quindi la riga all'interno di tale colonna. In questo caso le etichette XRIF hanno la precedenza sulle etichette normali, che a loro volta hanno la precedenza sui fili della rete.

Se non è presente alcun riquadro sul foglio, viene restituito "? ?" (due punti interrogativi). Se qualsiasi parte della rete è all'esterno del riquadro, uno dei valori potrebbe essere '?' (punto interrogativo). Questi membri possono essere utilizzati solo nel contesto di un foglio.

Se la rete viene recuperata con UL_SCHEMATIC.allnets(), i membri validi sono: nome, class e pinrefs(). Il membro di sequenza chiusa pinrefs() esegue una sequenza chiusa tra i pinref virtuali generati dalle istanze del modulo.

Esempio

schematic(S) {
  S.nets(N) {
    printf("Net: %s\n", N.name);
    // N.segments(SEG) will NOT work here!
    }
  // or with virt. nets:
  S.allnets(N) {
    printf("Net: %s\n", N.name);
    }
  }
schematic(S) {
  S.sheets(SH) {
    SH.nets(N) {
      printf("Net: %s\n", N.name);
      N.segments(SEG) {
        SEG.wires(W) {
          printf("\tWire: (%f %f) (%f %f)\n",
                 u2mm(W.x1), u2mm(W.y1), u2mm(W.x2), u2mm(W.y2));
          }
        }
      }
    }
  }