agentee

Diseño

Impedancia controlada y pares

Anchos de pista resueltos con fórmula cerrada y campo en GPU, líneas RF coplanares, pares diferenciales, igualación de longitud e interfaces como USB 3.

Una línea de impedancia controlada es una promesa entre tres cosas: el apilamiento, el ancho de la pista y el cobre a su alrededor. agentee mantiene la promesa en un solo lugar, la clase de red, y verifica cada pista de la clase contra ella.

Pregunta primero

agentee calc impedance --layer F.Cu --target 50ohm
agentee calc impedance --layer F.Cu --target 90ohm --gap 0.15mm
agentee calc trace-width --current 2A

Estos leen la placa en el proyecto. El primero responde un ancho para una microcinta de 50 ohmios en la capa superior; el segundo para un par diferencial de 90 ohmios con una separación de 0,15 mm:

{
  "geometry": { "er": 4.4, "h_mm": 0.2104, "kind": "microstrip", "t_mm": 0.035 },
  "line": { "coplanar_gap_mm": null, "diff_gap_mm": 0.15 },
  "target_ohm": 90.0,
  "width_for_target_mm": 0.2682
}

Las formas cerradas son Hammerstad-Jensen para microcinta, Wheeler para cinta y mapeo conforme para coplanar con tierra, todas sin recubrimiento. Ignoran la máscara de soldadura y, en preprego fino, pueden estar desviadas en varios ohmios.

Resuelve el campo

agentee calc field --netclass RF
agentee calc field --netclass RF --sweep 10MHz,6GHz,21

El solver de campos ejecuta una resolución de Laplace por diferencias finitas de la sección transversal en la GPU, con espesor de cobre, máscara de soldadura, tierras coplanares y pares. Se sitúa dentro del 0,5% de la cinta exacta de Cohn y del 0,4% de la microcinta de Hammerstad-Jensen, en una fracción de segundo:

{
  "closed_form_uncoated_ohm": 51.12,
  "coplanar_gap_mm": 0.2,
  "field": {
    "backend": "gpu",
    "eeff": 3.094,
    "delay_ps_per_mm": 5.87,
    "z0": 49.88
  },
  "solder_mask": true,
  "width_mm": 0.3
}

--sweep añade una tabla de pérdidas por frecuencia: R, L, G, C, Z0 y dB por metro y por pulgada, divididas en pérdida de conductor y dieléctrica, con efecto de piel, rugosidad del cobre del apilamiento (roughness o huray) y un modelo dieléctrico causal. Sin GPU, el solver 2D vuelve a la CPU.

Pon el objetivo en la clase

[[netclasses]]
name = "RF"
impedance = "50ohm"
impedance_tolerance = "5%"
coplanar_gap = "0.2mm"
layers = ["F.Cu"]
solver = "field"

Con solver = "field", la verificación resuelve la clase en cada capa que puede usar y, cuando no está en el objetivo, dice cuánto se desvía y qué usar:

error: lna.board.toml: lna netclass RF on F.Cu: field solver gives 59.4 ohm with solder mask, outside 50ohm +/- 5%, use track_width = "0.2985mm" (50.2 ohm)

Deja track_width fuera y la verificación lo resuelve para la primera capa. Cuando un ancho no sirve para todas las capas, da widths = { "In2.Cu" = "0.16mm" }.

Manténlo en la placa

La clase es una promesa; el layout la cumple. La verificación mide cada pista de una clase de impedancia:

  • impedance-trace es un error cuando el ancho de una pista, sus estrechamientos, o el cobre a su lado en una capa exterior mueven su impedancia fuera de la tolerancia. Una línea coplanar con la zona demasiado lejos, o una que se estrecha demasiado, se detecta aquí.
  • impedance-width avisa de una pista de la clase a otro ancho.
  • neckdown anota una pista más estrecha que su clase para un tramo corto hacia un pad pequeño, lo cual se permite hasta la longitud de neckdown de la clase (0,5 mm por defecto).

agentee neck NAME estrecha los extremos de pistas existentes que entran en un pad más estrecho que la pista, y --taper aumenta el ancho de vuelta sobre una cadena corta.

Pares diferenciales

[[netclasses]]
name = "USB"
impedance = "90ohm"
diff_gap = "0.15mm"
layers = ["F.Cu"]
max_skew = "0.1mm"

diff_gap convierte una clase en un par y su impedancia diferencial. Las redes que terminan en _P y _N, _DP y _DN, + y -, o P y N se emparejan solas; de lo contrario, nómbralas en el layout:

[[pairs]]
p = "USB_DP"
n = "USB_DN"
max_skew = "0.1mm"

calc field --netclass USB añade un bloque pair: Zdiff, Zcommon, las impedancias y retardos de modo impar y par, el coeficiente de acoplamiento y el cruce de cercanía de una línea larga. La verificación informa del desfase de cada pareja en mm y ps, cualquier tramo con separación incorrecta por encima de max_uncoupled, y parejas que corren lado a lado menos del 80 % de su longitud. Una pareja a través de componentes en serie, como los condensadores AC en un canal USB, se mide de extremo a extremo. agentee route NAME --nets 'USB_*' --pairs enruta ambas mitades juntas.

Igualación de longitud

[[match_groups]]
name = "ddr-dq0"
nets = ["DQ?", "DQS0_*"]
tolerance = "0.5mm"
agentee tune NAME
agentee show pcb:NAME

tune meandrea la red corta de cada par sobre su skew y a cada miembro de grupo de igualación por debajo de su objetivo, en los segmentos rectos más largos donde los bultos no toquen a ninguna otra red, y escribe los puntos de vuelta en las pistas. En un par, bulta primero los tramos donde las patas ya se separan. Una red por encima de su objetivo se informa, no se acorta. agentee calc serpentine --from 10,5 --to 20,5 --add 2.5mm da los puntos de un meandro en un segmento que eliges. Las longitudes y retardos de red están en show.

Interfaces

Una interfaz declara lo que un enlace debe cumplir, y la verificación mide el cobre contra todo ello a la vez:

[[interfaces]]
name = "usb-ss"
preset = "usb3-gen1"
nets = ["SS_TX*", "SS_RX*"]
preajusteimpedanciaskewvíasotros
usb3-gen1, usb3-gen290 ohm +/-7% dif5 mil2stubs de 15 mil, 3500 / 3000 mil de largo, vía de retorno dentro de 200 mil
usb2-hs90 ohm +/-10% dif50 mil412000 mil de largo
lvds100 ohm +/-10% dif
rf-5050 ohm +/-10%0
cmos2 mm sin referencia

Los valores de USB son las directrices de layout de alta velocidad de TI. Además de los objetivos de la clase, una interfaz comprueba la longitud de extremo a extremo, las vías por pista, los stubs de vía, el tramo sin plano de referencia debajo, la vía de masa junto a cada vía de señal y, en el caso de buses, la dispersión de llegada y la ventana respecto al reloj. También puede leer una simulación terminada: pérdida de inserción y reflexión máximas y conversión de modo de una ejecución FDTD, y altura y anchura del ojo de una simulación de canal. Consulta Diagramas de ojo, PDN y parámetros S.

tune funciona en interfaces en tiempo además de en longitud: un par por encima de su skew en ps, y un bus fuera de su ventana de reloj, alargan el lado corto con el retardo por mm propio de cada red.

Mejorar esta guía · Markdown para agentes