J'essaierai d'y répondre brièvement, mais une excellente ressource pour ce type de question est le signal et l'intégrité du pouvoir d' Eric Bogatin - Simpified .
Vous avez énuméré et décrit plusieurs protocoles à très grande vitesse qui ont des débits de signal dans la plage de centaines de picosecondes. Cela signifie que même des traces de seulement quelques pouces peuvent être considérées comme électriquement longues et que ces canaux de transmission doivent être acheminés en tant que lignes de transmission .
En termes très, très brefs, la présentation d'une ligne de transmission avec une impédance connue à un pilote à grande vitesse (émetteur-récepteur série sur l'entrée / sortie d'un SerDes) permet la transmission de données traversant cette ligne sans reflets de signaux délétères qui peuvent interférer avec une communication réussie. Cela peut se manifester par une interférence intersymbole (ISI), une diaphonie, une gigue supplémentaire rendant une interface utilisateur (intervalle d'unité) inutilisable et de nombreux autres effets. Rappelons que certains de ces protocoles (comme PCIe) poussent au-delà de 8GT / s par rapport au cuivre conventionnel sur FR-4 à faible coût; pour ce faire, les concepteurs doivent faire tout leur possible pour fournir un canal de haute qualité pour la transmission de données.
Un protocole (ou spécification) donné répertorie généralement une impédance caractéristique souhaitée . Par exemple, Intel peut demander que les traces PCI Express pour leurs plates-formes Xeon soient acheminées sous forme de «paires différentielles de 100 ohms». Cela signifie qu'ils ont qualifié et conçu leurs émetteurs-récepteurs PCI Express pour s'attendre à une ligne de transmission d'impédance caractéristique de 100 ohms pour le transfert de données. USB nécessite généralement 90 ohms, RS-422 peut être de 120 ohms et Ethernet est de 100 ohms. Je ne vais pas entrer dans les structures de lignes de transmission asymétriques dans ce post, mais comme mentionné ci-dessous dans les commentaires, à un premier ordre approximatif, vous pouvez considérer chaque `` moitié '' des structures ci-dessous comme la moitié de l'impédance de la paire.
Maintenant, pour créer la structure de la ligne de transmission sur un PCB FR-4 conventionnel (afin de garder ces choses abordables!), Nous avons plusieurs options. Pour les traces différentielles, nous avons plusieurs options. Supposons que vos traces se trouvent sur la couche supérieure ou inférieure - la première option est une microruban à couplage de bord (l'image que j'ai est «enduite», où le masque de soudure est au-dessus. Techniquement , il y a un revêtement à couplage de bord et un couplage de bord surface pour les options de couche supérieure / inférieure - pour les travaux RF à très haute fréquence, même la présence de masque de soudure peut être un problème).
En fonction de la distance au plan de retour en dessous, de l'espacement entre les deux lignes et de la largeur de chaque ligne, votre PCB fab peut vous fournir une structure qui présente l'impédance cible.
Maintenant, disons que vous êtes sur une couche intérieure. La structure utilisée ici est généralement un microruban intégré à couplage de bord :
Semblable au premier, celui-ci tient également compte de la distance au plan de référence le plus proche. De nombreux concepteurs préfèrent enfouir leurs paires à grande vitesse sur des couches internes pour bénéficier du blindage «gratuit» des avions en cuivre afin de réduire les émissions rayonnées. La stripline offset à couplage d'arête est utilisée lorsque vous avez une couche de signal prise en sandwich entre deux couches planes:
Pour obtenir ces structures différentielles , vous contactez votre maison de fabrication de PCB et leur dites les impédances différentielles que vous recherchez - cela fait partie du processus de conception d' empilement de PCB . La maison de fabrication gère les matériaux réels qu'ils utilisent (qui ont des valeurs Er différentes) pour les noyaux et les matériaux pré-imprégnés, et vous reviennent avec un ensemble de géométries à suivre dans votre outil de conception, par exemple ( pas des nombres réels) "0,2 mm traces épaisses avec un espacement de 0,15 mm sur les couches 1 et 8 pour une impédance de 100 Ohms +/- 10% ". Vous entrez ensuite ces valeurs dans Altium, et il s'assurera intelligemment que lorsque vous routez des paires que vous avez appelées différentielles, elles suivent ces géométries.
De par leur conception, lorsque vous fabriquez votre PCB avec votre magasin et que vous leur envoyez l'empilement qui a été conçu, ces traces se traduiront par l'impédance caractéristique souhaitée. Vous devez demander un coupon d'impédance , qui est généralement un morceau de votre PCB de la partie externe du réseau où une structure en double de la ligne de transmission a été créée, et un TDR (réflectomètre de domaine temporel) est utilisé pour vous fournir le impédance construite. La tolérance typique est d'environ 10% .
L'adaptation en longueur n'affecte pas l'impédance différentielle et diffère d'un protocole à l'autre. Il existe une asymétrie intra-paire (P à N) et une asymétrie inter-paires / inter-voies (c'est-à-dire de PCIe Tx Lane 0 à 1), où cette dernière est généralement plus tolérante à l'inadéquation que la première. C'est quelque chose que vous analysez généralement vers la fin pour ajouter un routage sinueux ou serpentin pour que les membres de la paire répondent aux spécifications du fabricant. J'utilise un script qui transfère les longueurs nettes brutes vers Excel, puis une mise en forme conditionnelle pour me faire savoir comment je fais dans le respect des spécifications (expurgé quelque peu - il s'agit d'une carte avec un module qui a une mauvaise correspondance, et un PCB de transporteur qui ne correspond pas):
Et voici un exemple de configuration Altium pour des paires différentielles de 100 ohms en fonction des recommandations de mon fournisseur:
Voici quelques autres conseils que j'ai choisis en cours de route et qui peuvent vous aider sans ordre particulier:
- Étant donné une tolérance pour les erreurs de correspondance d'un fabricant, commencez par la diviser par deux si possible. Dans un cas comme PCI Express où vous avez un PCB hôte et un PCB porteur, cela (en quelque sorte) divise la tolérance entre les deux.
- Lors de la fabrication d'une carte avec des impédances différentielles, utilisez des "codes D". Utilisez les centièmes ou les millièmes dans les largeurs de trace pour différencier les différentes impédances. Par exemple, si 0,20 mm a été appelé comme largeur pour 90 ohms et 100 ohms, je ferais 90 ohms 0,201 mm et 100 ohms 0,202 mm, et ajouter une note de fabrication expliquant ce que j'ai fait. L'ingénieur CAM peut alors facilement sélectionner les paires à l'aide de son logiciel et faire ce dont il a besoin.
Donc, avant de démarrer votre prochain projet PCB avec des protocoles / exigences qui impliquent un routage de trace différentiel:
- Identifiez toutes les différentes impédances à contrôler et les couches sur lesquelles elles se trouveront (c'est-à-dire quelles sont vos couches de signal).
- Contactez votre maison de fabrication avec les informations ci-dessus et travaillez avec eux pour définir un empilement pour votre projet et obtenir les géométries requises. Alternativement, comme indiqué dans les commentaires ci-dessous, avec le matériel approprié et d'autres informations, vos outils EDA pourraient être en mesure de vous fournir les géométries requises.
- Configurez votre outil de CAO avec les règles appropriées en fonction des chiffres de l'étape 2.
- Définissez les classes de filet pour les paires et éloignez-vous!
- Utilisez un script ou similaire pour générer un rapport qui montre les incompatibilités intra-paire / paire interne et si elles sont conformes aux spécifications ou non.