• Aucun résultat trouvé

proposées pour une plateforme de prototypage multi-FPGA

5.2 Multiplexage des signaux

Nous avons montré dans le chapitre2que le prototypage matériel présente la meilleure solution au concepteur pour valider son design dans un stade avancé du cycle de concep-tion. Parmi les clés de succès du prototypage matériel, est sa fréquence de fonctionnement relativement grande par rapport à l'émulation et plus considérablement la simulation. Le multiplexage des signaux inter-FPGA, étant une solution inévitable pour remédier à la limitation du nombre de pins, a un coût considérable sur la fréquence de prototypage. En eet, la communication multiplexée entre les FPGAs, assurée par les pistes gravées sur la carte, est très coûteuse par rapport à une communication intra-FPGA. Par conséquent, il est important d'optimiser les paramètres de multiplexage pour réduire l'eet sur la perfor-mance et le comportement du système de prototypage.

La transmission des signaux est cadencée par une horloge de multiplexage multiplie de celle du système prototypé. La valeur de la période de prototypage dépend du taux de multiplexage (nombre de signaux transmis à travers le même l physique) mais aussi, elle dépend du nombre de hops combinatoires (nombre de fois un chemin est coupé entre deux registres). En eet, le délai de transmission d'un signal est le temps nécessaire pour récupé-rer en O (Output) la bonne information envoyée par I (Input). Dans la gure5.1, 4 signaux logiques (1,2,3,4) se partagent un même l physique : ce nombre de signaux représente le taux de multiplexage. Le chemin de l'information envoyée par I et récupérée en O est coupé deux fois : une fois du F P GA1 → F P GA2 et une deuxième fois du F P GA2 → F P GA1. Le nombre de fois que ce chemin est coupé représente le nombre de hops combinatoires (autant de stages que de hops). Le délai de transmission est alors représenté par l'équation simpliée 5.1:

TSY S_CLK = mux_ratio ∗ NB_combi − hop ∗ TI/O_CLK (5.1) Le but recherché consiste à optimiser les paramètres de multiplexage, notamment le taux de multiplexage et le nombre de hops combinatoire an d'améliorer la fréquence de fonc-tionnement.

5.2.1 Signaux non qualiés pour le multiplexage

An d'augmenter la robustesse du circuit prototypé, l'idée est de sélectionner les signaux non qualiés pour le multiplexage et de les router chacun seul à travers un l physique.

5.2 Multiplexage des signaux 73

Figure 5.1  Exemple de hops combinatoires 5.2.1.1 Signaux appartenant à des hops combinatoires

La présence des hops combinatoires dépend du design et de la qualité de partition-nement. Nous revenons plus tard avec plus de détails sur les contraintes qui doivent être prises en considération par l'outil de partitionnement. Une de ces contraintes consiste à réduire la longueur des chemins combinatoires an de réduire le nombre de hops. La détermination de ces chemins nécessite l'implémentation d'un outil d'analyse de timing qui, à partir des caractéristiques des cellules et des connexions (délais intrinsèques), évalue les délais sur les diérents chemins combinatoires. Certains de ces chemins ne sont pas fonctionnels (impossibles logiquement, chemins de test etc.) et l'outil d'analyse doit les identier et les ignorer en suivant les consignes de l'utilisateur. En général les gros systèmes représentés par les netlists comportent plusieurs modules qui peuvent avoir diérents domaines d'horloge (diérentes fréquences de fonctionnement). La criticité pourrait être diérente d'un domaine à un autre ce qui nécessite des traitements spéciques pour les chemins combinatoires suivant leur appartenance. Ceci impose à l'outil de partitionnement de pouvoir attribuer des priorités diérentes à ces chemins en favorisant certains (ne pas les couper) par rapport aux autres. L'élimination de tous les hops combinatoires est dicile, voire impossible. Ainsi, pour ne pas pénaliser la fréquence du système, notre idée consiste à xer le nombre de stage à 1. Autrement dit, les signaux appartenant à un chemin combinatoire avec un nombre de hop ≥ 2 ne seront pas multiplexés.

Dans la gure 5.2, 4 signaux doivent être routés. D'après l'hypothèse que nous avons considérée, seuls les signaux S1 et S2 peuvent être multiplexés. Les signaux S3 et S4 ne sont pas qualiés pour le multiplexage du fait que le premier ne nit pas dans un registre et le deuxième ne sort pas d'un registre. Par conséquent, le routage des signaux présents

Figure 5.2  Sélection des signaux non qualiés pour le multiplexage

dans la gure 5.2 peut se faire dans un seul stage. Les signaux non qualiés pour le multiplexage inclus aussi les signaux du top-level et les signaux critiques tel que le signal reset, les signaux d'horloge...

5.2.1.2 Les signaux appartenant à un chemin demi-cycle

Certains signaux appartiennent à ce qu'on appelle chemin demi-cycle ou (half cycle path). Autrement dit, ces signaux sont déclenchés puis détectés à des fronts d'horloge inversés. Dans la gure 5.3, le signal S1 n'est pas qualié pour multiplexage.

Figure 5.3  Signal appartenant à un chemin demi-cycle

5.2.1.3 Les signaux d'horloge

Dans certains cas, les signaux d'horloge traversent une partie logique avant d'atteindre les ip op qu'ils cadencent. Le multiplexage de ces signaux peut créer des problèmes de skew qui pouvant infecter le fonctionnement du circuit teste. Ce type de signaux ne doit pas être multiplexé. Dans les meilleurs cas, la partie logique traversée par les signaux d'horloge peut être répliquée évitant ainsi l'apparition d'un signal d'horloge coupé. Dans la gure

5.2 Multiplexage des signaux 75 répliquée dans le FPGA destination, le signal S1 n'est plus coupé et les problèmes de skew sont éliminés.

Figure 5.4  Signal d'horloge traversant une partie logique

5.2.2 Routage des signaux multiplexés

En considérant l'hypothèse posée dans la section précédente, la gure 5.5présente une période de prototypage ainsi que ces diérentes composantes. L'expression de cette période

Figure 5.5  Domaine d'horloge du système prototypé est donnée par l'équation5.2:

TSY S_CLK = settle_start + comm_delay + settle_end (5.2) Settle_start and settle_end correspondent respectivement aux délais de propagation in-terne du FPGA source et destination. Comm_delay correspond au délai de communication inter-FPGA. Elle dépend du taux de multiplexage qui n'est autre que le nombre de signaux transmis à travers le même l physique. Pour réduire ce taux, nous proposons une approche itérative comme le montre la gure 5.6. Le routeur prend en entrée la description de la

Figure 5.6  Approche itérative pour la réduction du taux de multiplexage carte multi-FPGA ainsi que la liste des signaux à router. Chaque signal est identié par son nom et par sa source et ses destinations. Un autre paramètre qui doit être connu par le routeur qui est le taux de multiplexage initial (mux_ratio initial). Ce paramètre est calculé comme étant le plus grand ratio entre le nombre de signaux à multiplexer par rapport au nombre de traces physiques disponibles de toutes des paires FPGAs.

le routeur essaie de trouver une solution de routage avec un taux de multiplexage égal à mux_ratio initial. Cette solution existe puisque ce paramètre n'est que le pire cas de tous les taux de multiplexage entre toutes les paires de FPGA. Par la suite, tous les signaux sont déroutés, le taux de multiplexage est décrémenté, et le routeur va tenter à nouveau de trouver des chemins de routages non chevauchant avec le nouveau mux_ratio. Le routeur s'autorise de traverser des FPGA pour atteindre le FPGA destination (création de hop de routage). S'il arrive à router tous les signaux alors le taux de multiplexage va être décré-menté de nouveau, sinon le routeur gardera la valeur précédente de mux_ratio.

La gure 5.7 illustre l'utilité de notre approche. En eet, la valeur du mux_ratio initiale est égale à 4. Elle est donnée par le rapport entre le nombre de signaux de F 1 → F 3 (égale à 4) et le nombre de traces physiques entre la même paire (égale à 1). La première itération représente la solution de routage avec un mux_ratio égale à 4. Autrement dit, chaque l physique est partagé au plus par 4 signaux. Par la suite, la valeur de mux_ratio passe à 3. La solution de routage est donnée par la deuxième itération : des signaux entre F 1 → F 3 sont routés en passant par F4. De même pour la troisième itération là ou un l physique est partagé par au plus 2 signaux. Une dernière tentative de routage avec une valeur de mux_ratio égale à 1. Avec cette valeur, aucune solution n'existe, et par conséquent, le routeur retient la dernière valeur ayant une solution de routage acceptable qui est égale à 2.