UL_NET

Membres de données

class UL_CLASS
colonne chaîne (voir remarque)
Nom chaîne (NET_NAME_LENGTH)
ligne chaîne (voir remarque)

Membres de boucle

portrefs() UL_PORTREF
pinrefs() UL_PINREF (voir remarque)
segments() UL_SEGMENT (voir remarque)

Voir aussi UL_SHEET, UL_SCHEMATIC

Constantes

NET_NAME_LENGTH longueur maximale recommandée d’un nom de réseau (utilisée dans la sortie formatée uniquement)

Remarque

Le membre de boucle pinrefs() ne peut être utilisé que si le réseau se trouve dans un contexte de schéma. Le membre de boucle segments() ne peut être utilisé que si le réseau se trouve dans un contexte de feuille.

Les membres de données column et row renvoient les numéros de colonne et de ligne correspondant à l’emplacement de l’instance dans le cadre, sur la feuille où le réseau est dessiné. Comme un réseau peut s’étendre sur toute une zone, chacune de ces fonctions renvoie deux valeurs séparées par un espace. Les valeurs renvoyées par column correspondent aux colonnes en contact avec le net situées le plus à gauche et à droite ; les valeurs renvoyées par row correspondent aux lignes supérieure et inférieure.

Lors de la détermination des valeurs de colonne et de ligne d’un net sur une feuille, d’abord la colonne, puis la ligne dans cette colonne, sont prises en compte. Ici, les étiquettes XREF ont la priorité sur les étiquettes normales, qui elles-mêmes sont prioritaires sur les fils de réseau.

Si aucun cadre n’est présent sur cette feuille, deux points d’interrogation (« ? ? ») sont renvoyés. Si une partie du réseau se trouve en dehors du cadre, l’une des valeurs peut être un point d’interrogation (caractère « ? »). Ces membres ne peuvent être utilisés que dans un contexte de feuille.

Si le net est extrait à l’aide de UL_SCHEMATIC.allnets(), les membres valides sont : name, class et pincements(). Le membre de boucle pinrefs() parcourt aussi les objets pinref virtuels générés par les instances de module.

Exemple

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));
          }
        }
      }
    }
  }