Carte
Impédance et pertes
Géométrie des pistes par classe et par couche, impédance en forme fermée et résolue par champ, paires différentielles, et le modèle de pertes avec rugosité et ENIG.
Pour chaque classe de nets et couche de routage, il trouve la géométrie de la piste à partir de l'empilement (les couches externes sont en microstrip, les couches internes sont en stripline entre le cuivre le plus proche au-dessus et en dessous), puis l'impédance (microstrip Hammerstad-Jensen, stripline Wheeler, coplanaire à terre par transformation conforme avec l'épaisseur du cuivre et les parois latérales, tout non revêtu ; la forme coplanaire tombe dans les 4 % du solveur de champ d'un cœur de 0,08 mm à 0,21 mm), la largeur qui atteint la cible, et la capacité de courant IPC-2221. agentee show <board> imprime tout cela en JSON.
Avec solver = "field", la classe est vérifiée par le solveur de champ 2D à la place : une résolution de Laplace par différences finies basée sur les nœuds sur une maille graduée, exécutée sur le GPU via wgpu, avec l'épaisseur du cuivre, le vernis épargne, les terres coplanaires et les paires incluses. Sur des références exactes, elle tombe dans les 0,5 % de la stripline d'épaisseur nulle de Cohn et dans les 0,4 % de la microstrip Hammerstad-Jensen. Quand la classe est hors cible, la vérification suggère la largeur de piste qui l'atteint. agentee calc field --netclass RF imprime le résultat complet (Z0, eeff, C et L par mètre, délai, grille).
--sweep 10MHz,20GHz,21 (MCP sweep) ajoute un tableau de pertes par fréquence : R, L, G, C, Z0 et dB par mètre et par pouce, séparé en perte de conducteur et perte diélectrique. La perte de conducteur provient de l'inductance incrémentale de Wheeler, résolue en reculant chaque surface de cuivre dans le solveur de champ (dans les 1 % de la formule de stripline de Wheeler dans Pozar), avec la profondeur de peau du cuivre recuit et la résistance DC mélangée en sqrt(Rdc^2 + Rac^2). Les diélectriques suivent le modèle causal Djordjevic-Sarkar ajusté à er et loss_tangent de chaque couche, pris comme valeurs à 1 GHz. La rugosité du cuivre est définie sur l'empilement :
[stackup]
roughness = "0.5um" # rms, Hammerstad-Jensen
# huray = { radius = "0.5um", ratio = 2.0 } # or the Huray snowball model
finish = "ENIG"
nickel = "4.5um" # ENIG nickel thickness, default 4.5 um
gold = "0.075um" # ENIG immersion gold thickness, default 0.075 umLe solveur 2D applique la rugosité comme un facteur de perte sur la résistance à chaque fréquence. Le FDTD utilise la rugosité et le fini ENIG comme décrit sous « Pertes dans le FDTD » ci-dessous ; nickel et gold ne comptent que quand finish = "ENIG". Les valeurs par défaut sont le milieu des fenêtres IPC-4552 (3 à 6 um de nickel, or 0,05 um minimum avec les fabricants visant 0,05 à 0,1 um).
Une classe avec diff_gap est une paire : son impedance est l'impédance différentielle, et le solveur exécute les modes impair et pair. calc field ajoute alors un bloc pair avec Zdiff, Zcommon, les impédances et délais des modes impair et pair, le coefficient d'accouplement (Ze - Zo)/(Ze + Zo), et le diaphonie proche saturée d'une ligne longue (la moitié de l'accouplement). Les deux modes tombent dans les 0,5 % de la stripline à bord couplé exacte de Cohn. Une différence entre les délais impair et pair est ce qui entraîne la diaphonie lointaine sur microstrip.