Projet Pi.MX8 - Disposition de la carte Partie 4

Lukas Henkel
|  Créé: Juillet 23, 2024  |  Mise à jour: Juillet 24, 2024
Projet PIMX8 - Chapitre VI

Chapitres

1
Introduction and Overview
| Created: January 18, 2024
2
Component placement and layout planning
| Created: February 06, 2024
3
Board Layout Part 1
| Created: February 22, 2024
4
Board Layout Part 2
| Created: March 21, 2024
5
Board Layout Part 3
| Created: June 24, 2024
6
Board Layout Part 4
| Created: July 23, 2024
7
PCB Assembly
| Coming Soon

Bienvenue dans un nouvel épisode du projet de module de calcul Pi.MX8 SoM ! Dans cette mise à jour, nous allons apporter les dernières touches à notre conception de PCB et préparer le design pour la production de prototypes.

Test of button

Dans le dernier article, nous avons terminé le routage des couches de signal. Cela a été la partie la plus chronophage de la mise en page du PCB pour le module Pi.MX8. Cependant, il nous reste encore deux tâches qui nécessitent autant d'attention : le routage des plans d'alimentation et l'ajustement du délai des signaux.

Plans d'alimentation

Commençons par les plans d'alimentation. J'aime généralement effectuer l'ajustement du délai en tant que dernières étapes, car les méandres nécessaires pour l'ajustement de la longueur remplissent souvent l'espace restant sur la carte. Par exemple, placer des VIAs supplémentaires (ce qui peut parfois être nécessaire lors du routage des réseaux d'alimentation) pourrait nous obliger à ajuster les primitives d'ajustement de longueur pour créer l'espace nécessaire. En remplissant l'espace restant avec des primitives d'ajustement de longueur en dernier, nous pouvons éviter des retravaux supplémentaires.

Available power plane layers

Couches de plans d'alimentation disponibles

En examinant le plan de couches, nous pouvons voir que nous disposons de deux couches dédiées aux plans d'alimentation. Ces couches sont séparées des couches de masse adjacentes par un prépreg mince. Ce superposition augmente la capacité du plan à faible inductance et peut aider à diminuer l'impédance du réseau de distribution d'alimentation (PDN) à haute fréquence.

Commençons d'abord par router les rails d'alimentation à fort courant. Dans notre cas, il s'agit des rails du cœur et de la mémoire pour le SoC i.MX8 et le contrôleur DRAM avec le CI LPDDR4.

PMIC core and memory supply for the SoC

Alimentation du cœur et de la mémoire par le PMIC pour le SoC

Les rails VCC_ARM et VCC_SOC utilisent une détection à distance, ce qui signifie que le nœud de retour des convertisseurs buck n'est pas routé vers les condensateurs de sortie près du MIC, mais vers les pads d'alimentation de l'i.MX8. Cela permet de compenser la chute de tension à travers le plan d'alimentation ou le polygone. Comme le courant dans ces rails peut être relativement élevé et que le PMIC doit réguler ces tensions avec précision, il est important de "mesurer" la tension directement à la charge. La figure suivante montre la chute de tension à travers un polygone d'alimentation :

Voltage drop across power polygon

Chute de tension à travers un polygone d'alimentation

Le polygone d'alimentation pour le rail VCC_ARM est routé sur la couche 6. La trace routée près du contour du polygone est le signal de détection à distance. Idéalement, nous aimerions mesurer la tension de manière différentielle pour compenser les effets parasites introduits par le courant du chemin de retour et pour rendre la rétroaction moins sensible au bruit, mais dans notre cas, cela ne sera pas nécessaire. Nous suivrons les recommandations du design de référence.

VCC_SOC polygon

Polygone VCC_SOC

La trace de rétroaction utilise un 'net-tie' près des broches du SoC pour connecter le réseau de rétroaction au réseau d'alimentation. Sans utiliser de net-tie, nous devrions manuellement assurer une isolation propre entre la trace de rétroaction et le polygone d'alimentation. Cette approche est sujette à l'erreur. Le net-tie est simplement un empreinte constituée d'un segment de trace court avec deux petits pads à chaque extrémité. En définissant le type de composant à net-tie, Altium Designer ne créera pas d'erreur de court-circuit pour ce composant.

Le polygone VCC_ARM et le rail d'alimentation DRAM sont routés de manière similaire sur la couche 5.

VCC_ARM highlighted and DRAM power rail in purple

VCC_ARM mis en évidence et rail d'alimentation DRAM en violet

Les rails d'alimentation restants sont répartis sur les couches 5 et 6. Les polygones d'alimentation système de 1,8V et 3,3V couvrent toute la carte puisque de nombreux composants connectés à ces rails sont répartis sur toute la carte.

La dernière étape du routage des plans d'alimentation consiste à mettre en place une analyse PDN AC et DC et à vérifier si les résultats sont dans les limites des valeurs d'impédance définies par le guide de conception matérielle du SoC.

L'analyse AC doit inclure les condensateurs de découplage avec un modèle équivalent précis, les caractéristiques de sortie du régulateur buck et la géométrie de l'agencement. Nous ne passerons pas en revue la configuration de la simulation dans cet article, mais il est important de garder à l'esprit qu'il s'agit d'une étape de vérification obligatoire.

Power rails target impedance

Impédance cible des rails d'alimentation

L'analyse DC nécessite uniquement la géométrie de l'agencement et les caractéristiques de charge du SoC comme entrées pour calculer la chute de tension à travers les polygones d'alimentation et mettre en évidence les zones de densité de courant excessive.

Ajustement des délais

Avec l'agencement du réseau d'alimentation terminé, nous pouvons maintenant passer au dernier point de notre liste de tâches - l'ajustement des délais.

Il existe de nombreuses interfaces sur le module Pi.MX8 qui ont des exigences de temporisation strictes et nécessitent un réglage du délai. Nous examinerons les interfaces les plus critiques et verrons comment nous pouvons utiliser X-Signals pour ajuster les délais même à travers plusieurs composants.

Commençons par l'interface DRAM. Le guide de conception matériel i.MX8 fournit toutes les informations dont nous avons besoin pour le réglage du délai. Avant de pouvoir ajuster les pistes, nous devons d'abord vérifier si le délai du boîtier est inclus dans le symbole de la bibliothèque schématique.

NXP fournit les temps de délai du boîtier, qui est le temps qu'un signal met pour voyager de la bille BGA de l'i.MX8 jusqu'au chip de silicium. Les différentes longueurs sur l'interposeur affectent le temps de délai total, il est donc important de les prendre en compte.

Pin package delay in the schematic symbol

Délai du boîtier des broches dans le symbole schématique

Nous pouvons utiliser l'éditeur de liste de bibliothèque schématique pour coller tous les délais des broches du boîtier à partir du document du guide de conception matériel i.MX8 en une fois en utilisant la boîte de dialogue de collage intelligent de la grille.

Pin delays in table format through the SCHLIB List toolbar

Délais des broches sous forme de tableau via la barre d'outils SCHLIB List

Les exigences de réglage du retard pour l'interface LPDDR4 sont décrites dans le guide de conception matérielle i.MX8. Le guide regroupe les dépendances de retard en groupes d'horloge, de commande/contrôle et de byte. Les fenêtres de temporisation pour chaque groupe sont référencées aux signaux d'horloge et de strobe. Tous les signaux différentiels doivent être appariés à 1ps entre les signaux complémentaires de la paire.

LPDDR4-4000 PCB delay tuning requirements

Exigences de réglage du retard pour PCB LPDDR4-4000

Les signaux dans le groupe adresse/commande/contrôle doivent répondre à deux exigences de temporisation. Une exigence définit le retard maximum entre chaque signal au sein du groupe, tandis que la seconde exigence définit la fenêtre de retard maximum de tout le groupe référencée au signal d'horloge.

C'est pourquoi nous utilisons plusieurs groupes de signaux X pour garantir que les bons signaux sont ciblés dans les règles de conception.

X-signal classes for the LPDDR4 tuning

Classes de signaux X pour le réglage du LPDDR4

Lorsque j'utilise des règles de réglage de retard entrelacées, j'aime également garder une trace des valeurs de retard totales dans une feuille Excel à des fins de documentation. Cette étape est cependant facultative et dépend des préférences personnelles puisque les exigences de temporisation peuvent toutes être définies dans la configuration des règles d'Altium Designer.

Delay tuning documentation in Excel

Documentation du réglage du retard dans Excel

Une fois que les classes de signaux X ont été définies et que les règles de conception sont en place, nous pouvons commencer à ajuster le retard dans la mise en page. Mis à part l'ajustement du retard intra-paire, la plupart des ajustements doivent être effectués sur les lignes d'adresse/commande/contrôle :

Delay tuning address/command/control lines

Ajustement du retard des lignes d'adresse/commande/contrôle

Les lignes de données elles-mêmes nécessitent très peu, voire pas du tout, d'ajustement. Autour des paires de signaux d'horloge routées sur la couche supérieure, nous disposons de beaucoup d'espace que nous pouvons utiliser pour l'ajustement du retard :

Clock delay tuning top layer

Ajustement du retard de l'horloge couche supérieure

Comme pour le réseau de distribution d'énergie, nous devons effectuer des simulations de vérification pour l'interface DRAM. Nous sommes particulièrement intéressés de voir si nous pouvons observer des effets de diaphonie, car certaines parties des routages sont relativement proches les unes des autres. La règle générale est de maintenir une distance de 3 fois l'épaisseur diélectrique par rapport aux traces voisines. Cependant, nous n'aborderons pas la configuration et les détails de la simulation dans cet article.

Une fois l'ajustement du retard de l'interface DRAM terminé, examinons une autre application pour les signaux X. La carte PiMX8 dispose de deux interfaces pouvant piloter un affichage externe - LVDS et MIPI-DSI.

MIPI-DSI utilise également la signalisation différentielle à basse tension (LVDS), nous pouvons donc utiliser un multiplexeur pour sélectionner l'une ou l'autre de ces interfaces puisqu'elles partagent les mêmes spécifications matérielles. Lors de l'utilisation d'un multiplexeur pour basculer entre les interfaces, nous devons également être conscients que tout routage effectué après le multiplexeur (du côté commun) affectera le délai des interfaces MIPI-DSI et LVDS en aval. Cela peut être pris en compte en créant une classe de signaux X séparée pour l'interface MIPI-DSI et l'interface LVDS, permettant plus de liberté dans l'ajustement des délais sur le PCB.

Dans cet exemple, il aurait peut-être été possible d'éviter le besoin de cette approche si tout le routage du côté commun avait été ajusté à une fenêtre de délai serrée, à la fois entre les paires et de paire à paire. En utilisant deux classes de signaux X séparées, nous avons cependant un meilleur contrôle sur le budget de temps de chaque interface.

Les signaux X nous permettent de combler le fossé sur le multiplexeur et d'effectuer l'ajustement de longueur sur chaque interface sur toute la longueur du signal avant et après le multiplexeur.

La même approche est utilisée sur l'interface PCIe pour combler le fossé à travers les condensateurs de couplage AC en série.

LVDS routed to the multiplexer

LVDS routé vers le multiplexeur

MIPI-DSI routed to the multiplexer

MIPI-DSI routé vers le multiplexeur

Toutes les interfaces à haute vitesse sur la carte Pi.MX8 sont ajustées en délai en utilisant des signaux X car ils fournissent une longueur de chemin plus précise de l'ensemble du signal. Nous n'examinerons pas chaque interface séparément car la configuration de la règle d'ajustement de délai et l'ajustement du routage est une tâche répétitive qui ne diffère pas beaucoup dans son approche générale entre les interfaces.

C'était l'étape finale pour compléter le routage sur la carte Pi.MX8. L'étape suivante consiste à effectuer une vérification approfondie des règles de conception et à exporter le jeu de données de fabrication.

Dans la prochaine mise à jour, nous examinerons les cartes et commencerons à assembler quelques prototypes. Ce sera l'étape finale pour alimenter le module Pi.MX8 pour la première fois, alors restez à l'écoute !

A propos de l'auteur

A propos de l'auteur

Lukas is a passionate hardware designer with more than 10 years of experience in the electronics industry. As a co-founder of his own engineering services company, he has had the privilege of working on many exciting projects, taking on challenges ranging from precision analogue design to high-speed PCB layout and power electronics.

As a strong supporter of the open-source philosophy, Lukas has made it his goal to give anyone interested an insight into the construction and functioning of modern electronic devices. Driven by that goal, he has founded the company Open Visions Technology (OV Tech GmbH), which aims to bring highly repairable, fully documented state-of-the-art consumer hardware to the market.

Lukas firmly believes that with today's online access to know-how and tools, anyone with an idea, drive, and passion can create extraordinary things. He is looking forward to being part of an enthusiastic community and is excited to see how people bring their ideas to life.

Ressources associées

Documentation technique liée

Retournez à la Page d'Accueil
Thank you, you are now subscribed to updates.