Brevet FR3003969A1 — publié le 20141003

Arrière-plan de l'invention La présente invention concerne le domaine des circuits intégrés et porte plus particulièrement sur l'architecture d'un dispositif d'interconnexion programmable et sur l'application d'un tel dispositif dans des circuits logiques programmables tels que des composants FPGA (« field-programmable gate array » en anglais). Un dispositif (ou système) d'interconnexion programmable comprend un circuit électronique permettant de réaliser des fonctions d'interconnexion de N sorties vers M entrées (N et M étant des entiers naturels). Un tel dispositif d'interconnexion programmable peut ainsi se connecter entre les N sorties d'un premier ensemble de circuits électroniques et les M entrées d'un second ensemble de circuits électroniques de façon à réaliser par programmation la connexion logique d'un sous-ensemble des M sorties du premier ensemble de circuits avec un sous-ensemble des N entrées du second ensemble de circuits. La fonction d'interconnexion attribue à chaque entrée du second ensemble une sortie unique du premier ensemble. Il n'y a pas de limitation en revanche sur le nombre d'entrées du second ensemble pouvant recevoir une même sortie du premier ensemble. De façon connue, un circuit FPGA est un circuit intégré logique comprenant des blocs logiques élémentaires librement assemblables. Ces blocs logiques sont interconnectés ensemble de manière définitive ou réversible par programmation, afin de réaliser la ou les fonctions voulues. Un même circuit FPGA peut ainsi être utilisé pour différentes applications électroniques. Après programmation, le circuit FPGA se comporte comme un circuit intégré spécialisé (« ASICS ») réalisant la ou les fonctions logiques établies par la programmation. Un bloc logique peut par exemple inclure une table de correspondance (LUT ou « Look-Up-Table ») et une bascule (« Flip-Flop »). Un circuit FPGA peut être organisé en un grand nombre de blocs fonctionnels, chaque bloc fonctionnel comprenant une pluralité de blocs logiques élémentaires de façon à pouvoir réaliser des fonctions particulières. Ces blocs fonctionnels sont, au même titre que les blocs logiques élémentaires, connectés entre eux par une matrice de routage configurable par programmation. Cette matrice permet la reconfiguration à volonté du composant FPGA. La figure 1 représente schématiquement une architecture classique dite « Manhattan » (ou 2D) d'un circuit d'interconnexion programmable 2 dans lequel des blocs logiques BL sont positionnés régulièrement en rangées et en colonnes. Les interconnexions programmables sont réalisées par des ensembles de pistes conductrices horizontales HR et verticales VR, et par des blocs d'aiguillage SW aptes à réaliser des connexions programmables entres lesdites pistes conductrices. Les blocs d'aiguillage SW sont disposés régulièrement en rangées et colonnes de façon à être entrelacés avec les rangées et colonnes des blocs logiques BL. Le type de réseau de la figure 1 nécessite cependant un grand nombre de conducteurs et impose donc un encombrement important pour assurer une efficacité suffisante. On entend par « efficacité », la faculté d'une structure à pouvoir reproduire par programmation et sans blocage les interconnexions d'une application donnée quelle que soit sa complexité. Un réseau « Manhattan » devient peu efficace et encombrant à mesure que le nombre de blocs logiques augmente. S'il est vrai que les temps de propagation dans ces réseaux sont en général convenables pour des blocs logiques spatialement proches, il faut toutefois noter que ces temps de propagation sont de moins en moins satisfaisants lorsque la distance entre les blocs logiques augmente, ceci s'expliquant en particulier par le nombre croissant de blocs d'aiguillage SW qu'il faut traverser pour transporter un signal. La figure 2 représente une architecture connue d'un autre circuit d'interconnexion programmable 4 dans lequel les blocs logiques BL sont regroupés en plusieurs ensembles EH1 de premier niveau hiérarchique. Chaque ensemble EH1 constitue par exemple un bloc fonctionnel. Les blocs logiques BL sont ici interconnectés par un réseau de matrices X1 dénommées « crossbars », ces derniers permettant la réalisation des interconnexions entre les blocs logiques BL et les entrées/sorties du premier niveau hiérarchique. Les ensembles EH1 du premier niveau hiérarchique sont regroupés en plusieurs ensembles EH2 de second niveau hiérarchique. Les ensembles EH1 sont interconnectés ensemble par un réseau de crossbars X2 permettant la réalisation des connexions entre les ensembles EH1 et les entrées/sorties du second niveau hiérarchique. Le circuit 4 peut comprendre autant de niveaux hiérarchiques que nécessaire. L'architecture du circuit 4 est plus efficace et présente un encombrement inférieur vis-à-vis de la structure « Manhattan » représentée en figure 1 lorsque le nombre de blocs logiques BL devient très important. Les caractéristiques de temps de propagation du circuit 4 sont par ailleurs satisfaisantes au sein d'un même niveau hiérarchique mais sont fortement pénalisées par le fait que les connexions entre deux ensembles distincts mais de même niveau hiérarchique doivent passer par le niveau hiérarchique supérieur. Ainsi, deux blocs logiques BL peuvent être spatialement proches sur la puce mais temporellement éloignés en termes de propagation de signal en raison de l'appartenance des deux blocs logiques à des ensembles hiérarchiques distincts. Il existe donc un besoin pour un dispositif d'interconnexion programmable présentant des performances satisfaisantes, notamment en termes d'efficacité, de temps de propagation de signal et d'encombrement sur la puce. Objet et résumé de l'invention A cet effet, la présente invention concerne un dispositif d'interconnexion programmable comprenant : au moins une première rangée de g blocs fonctionnels, chaque bloc fonctionnel comprenant une pluralité d'entrées, une pluralité de sorties et une pluralité de fonctions numériques ; - au moins une deuxième rangée de n cellules d'interconnexion programmables, la deuxième rangée étant adjacente à la première rangée ; - une pluralité de connexions dites horizontales, chaque connexion horizontale reliant une cellule d'interconnexion programmable respective de la deuxième rangée avec uniquement une autre cellule d'interconnexion programmables de la deuxième rangée, les cellules reliées ensemble par la connexion horizontale n'étant pas adjacentes l'une vis-à-vis de l'autre dans la deuxième rangée; et - une pluralité de faisceaux de connexions, chaque faisceau comportant au moins deux connexions dites transverses reliant une même cellule d'interconnexion programmable avec respectivement un ensemble de blocs fonctionnels de la première rangée adjacents entre eux dont l'un des blocs est situé en correspondance avec ladite cellule ; dans lequel l'ensemble des cellules d'interconnexion programmables sont aptes à interconnecter entre elles les entrées et les sorties de chaque bloc fonctionnel de la première rangée avec respectivement les sorties et les entrées de tous les autres blocs fonctionnels de la première rangée au moyen des connexions horizontales et transverses. Le dispositif d'interconnexion programmable de l'invention est avantageux en ce qu'il offre une efficacité optimale pour un encombrement limité et un temps de propagation faible même lorsque le nombre de blocs fonctionnels est important. Le dispositif permet d'interconnecter ensemble tous les blocs fonctionnels d'une même rangée via seulement les connexions horizontales et transverses (ou, le cas échéant, via seulement des connexions transverses) sans que les temps de propagation souffrent d'un effet de seuil indésirable comme décrit en référence à la figure 2. Deux blocs fonctionnels spatialement proches dans une même rangée peuvent être connectés ensemble via un minimum de connexions et un minimum de longueur de conducteur. L'architecture du dispositif selon l'invention offre un compromis optimal entre efficacité, encombrement et temps de propagation. Dans un mode de réalisation particulier, la condition n=g est satisfaite. Dans une variante de ce mode particulier : - les blocs fonctionnels dits F, de la première rangée sont tels que chaque F1 est disposé de façon à être adjacent à FF1 et F1+1, i étant un entier naturel allant de 1 à g, - les cellules d'interconnexion programmables dites Mi de la deuxième rangée sont telles que chaque Mi est disposée de façon à être adjacente à M;_1 et M;+1, j étant un entier allant de 1 à n, dans lequel Mi et F, sont positionnés en vis-à-vis l'un de l'autre lorsque i=j ; - chaque connexion horizontale relie une cellule d'interconnexion programmable M; respective de la deuxième rangée avec uniquement la cellule d'interconnexion programmable voisine Mj-Fdi de la deuxième rangée pour j allant de 1 à n-dl ; - chaque faisceau de connexions relie au moyen des connexions transverses une cellule d'interconnexion programmable M; respective de la deuxième rangée avec respectivement chacun des blocs fonctionnels Fi-d2 à Fj+d3 de la première rangée ou, le cas échéant, avec seulement ceux parmi ces blocs qui existent ; et dl, d2 et d3 sont des entiers tels que : d2 1, d3 1, 1 d2 + d3. On comprendra qu'il n'est pas obligatoire que d2=d3 bien que cela facilite la programmation du dispositif d'interconnexion programmable. Dans une variante particulière, la condition suivante est satisfaite : dl = 2, d2 = d3 = 1. Dans une variante particulière, le dispositif d'interconnexion programmable comprend une pluralité de connexions dite locales reliant une cellule d'interconnexion Mi respective de la deuxième rangée avec uniquement la cellules d'interconnexion Mj+d4 de la deuxième rangée pour j allant de 1 à n-d4, d4 étant tel que 1 d4 Ces connexions locales permettent avantageusement d'optimiser le parcours (i.e. le routage) nécessaire dans le réseau pour connecter ensemble deux blocs fonctionnels F, et donc de réduire encore davantage les temps de propagation dans le dispositif d'interconnexion programmable. L'ajout des connexions locales offrent en outre davantage de flexibilité au routage des interconnexions dans le dispositif puisque plusieurs options de routage sont ainsi possibles. Dans un exemple de mise en oeuvre particulier, d4=1 ce qui permet avantageusement de simplifier l'algorithme de programmation du réseau d'interconnexion du dispositif 6. Ce choix permet notamment d'éviter des allers retours indésirables dans la 15 ou les deuxièmes rangées de cellules qui pourraient s'avérer nécessaires pour interconnecter ensemble deux blocs fonctionnels lorsque d4>1 (avec toujours d4 Il est ainsi possible d'ajouter des connexions transverses supplémentaires à une ou plusieurs cellules M situées aux extrémités de chaque deuxième rangée afin de maintenir un nombre total constant de connexions transverses attribuées à chaque cellule M desdites deuxièmes rangées. On tire ainsi avantageusement partie de toutes les entrées et sorties des cellules M qui étaient initialement non utilisées du fait de l'absence de certains blocs fonctionnels aux extrémités de chaque première rangée. Dans un mode de réalisation particulier, les blocs fonctionnels comprennent chacun un réseau d'interconnexion programmable permettant de réaliser des connexions par programmation entre les entrées, les sorties et les fonctions numériques dudit bloc 10 fonctionnel. Dans un mode de réalisation particulier, chacune desdites connexions (i.e. horizontales, transverses et, le cas échéant, locales et/ou verticales) comprend deux fils de connexion permettant respectivement la communication d'une sortie d'une première cellule d'interconnexion programmable vers une entrée d'un bloc fonctionnel ou d'une 15 deuxième cellule d'interconnexion programmable, d'une part, et la communication d'une sortie dudit bloc fonctionnel ou de ladite deuxième cellule d'interconnexion programmable vers une entrée de ladite première cellule d'interconnexion programmable, d'autre part. La présente invention concerne également un composant FPGA comprenant un dispositif d'interconnexion programmable selon l'un des modes de réalisation ou variantes 20 définis ci-dessus. Brève description des dessins D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent un 25 exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures: la figure 1 déjà décrite représente, de manière schématique, l'architecture connue d'un premier circuit d'interconnexion programmable ; la figure 2 déjà décrite représente, de manière schématique, l'architecture connue d'un second circuit d'interconnexion programmable ; 30 la figure 3 représente, de manière schématique, l'architecture élémentaire d'un dispositif d'interconnexion programmable conforme à un premier mode de réalisation de l'invention ; la figure 4 représente, de manière schématique, un dispositif d'interconnexion programmable conforme au premier mode de réalisation de l'invention ; 35 les figures 5A et 5B représentent une première variante du premier mode de réalisation représentés en figures 3 et 4; la figure 6 représente schématiquement une seconde variante du premier mode de réalisation de l'invention ; la figure 7 représente un exemple de configuration des connexions réalisées à partir d'une cellule d'interconnexion programmable donnée ; et les figures 8A, 8B, 8C et 8D représentent des exemples de structure d'un bloc fonctionnel au sens de l'invention. Description détaillée de plusieurs modes de réalisation La présente invention concerne le domaine des circuits intégrés et porte plus particulièrement sur l'architecture d'un dispositif d'interconnexion programmable et sur l'application d'un tel dispositif dans des circuits logiques programmables tels que des composants FPGA. Un premier mode de réalisation de l'invention est à présent décrit en référence aux figures 3 à 4. Plus précisément, la figure 3 représente la structure élémentaire d'un dispositif d'interconnexion programmable 6 conforme à un premier mode de réalisation de l'invention. Le dispositif d'interconnexion programmable 6 comprend ici : une première rangée RF1 de g blocs fonctionnels notés respectivement Fi, le rang i étant un entier allant de 1 à g ; et une première rangée RM1 de n cellules d'interconnexion programmables notées respectivement Mi, le rang j étant un entier allant de 1 à n. Dans ce cas particulier, on considère que g 3 etrl 2. Dans ce document, les blocs fonctionnels et les cellules d'interconnexion programmables sont notés plus généralement F et M respectivement lorsque la référence au rang n'est pas nécessaire. Les rangées RF1 et RM1 sont disposées ici de façon adjacente l'une de l'autre. On notera que dans les exemples envisagés dans ce document, les cardinalités n et g des rangées RM1 et RF1 sont égales (n = g). On comprendra toutefois que l'égalité entre n et g n'est pas obligatoire pour mettre en oeuvre l'invention. On considère ici l'exemple où n = g = 14. D'autres valeurs de n et g peuvent naturellement être choisies. Chaque cellule Mi et chaque bloc F, possède un rang correspondant respectivement à la valeur de j et L La distance (ou écart) entre deux cellules d'interconnexion programmables Mi (respectivement entre deux blocs fonctionnels Fi) d'une même rangée est la différence entre le rang le plus élevé et le rang le moins élevé des deux cellules d'interconnexion programmables (respectivement des deux blocs fonctionnels). Seules une rangée de cellules d'interconnexion programmables M et une rangée de blocs fonctionnels F ont ici été représentées. On comprendra toutefois au vu notamment de la figure 4 qu'un dispositif d'interconnexion programmable au sens de l'invention peut comprendre une pluralité de rangées de cellules M et une pluralité de rangées de blocs fonctionnels F, chaque rangée de blocs F étant positionnée entre deux rangées de cellules M. Dans ce document, on notera que chaque bloc Fi est disposé de façon à être adjacent à Fit et F1+1 de la même rangée (i étant un entier naturel allant de 1 à g) ou, le cas échéant, de façon à être adjacent à celui parmi Fit et F1+1 qui existe. En effet, au niveau des extrémités de la rangée, F1 et Fg n'ont qu'un seul bloc fonctionnel voisin, à savoir F2 et F94 respectivement. De même, chaque cellule Mi est disposée de façon à être adjacente à Mit et Mi+1 de la même rangée (j étant un entier naturel allant de 1 à n) ou, le cas échéant, à être adjacente à celle parmi Mit et Mj+1 qui existe. En effet, au niveau des extrémités de la rangée, M1 et Mn n'ont qu'une seule cellule d'interconnexion programmable voisine, à savoir M2 et Mnt respectivement. Une cellule Mi et un bloc fonctionnel Fi sont positionnés en correspondance (i.e. en vis-à-vis) l'un par rapport à l'autre lorsque i=j. Chaque bloc fonctionnel F comprend des circuits électroniques permettant de réaliser des fonctions logiques. Un bloc F peut prendre la forme d'un bloc fonctionnel logique programmable ou toute autre forme plus adaptée à la réalisation de la ou des fonctions souhaitées (fonction mémoire, traitement de signal (DSP), traitement dédié à un usage spécifique...). Des exemples de structure de blocs fonctionnels au sens de l'invention seront décrits plus en détail ultérieurement en référence aux figures 8A à 8D. Chacun des blocs fonctionnels F peut comprendre : une pluralité d'entrées, une pluralité de sorties, une pluralité de fonctions électroniques numériques, et un réseau d'interconnexion programmable apte à interconnecter entre elles les entrées et les sorties desdites fonctions électroniques numériques. Un tel réseau peut comprendre par exemples des matrices de type crossbar ou des réseaux de Clos. Dans les exemples envisagés ici, chaque bloc fonctionnel F est apte à permuter ses entrées entre elles et à permuter ses sorties entre elles. Les cellules d'interconnexion programmables M de la rangée RM1 permettent d'assurer les interconnexions dans le dispositif 6 entre les entrées et les sorties des blocs fonctionnels F de la rangée RF1 voisine. Pour ce faire, les cellules M sont configurées pour assurer l'aiguillage des signaux via un ensemble de connexions électriques point à point, ces dernières étant fixes dans le dispositif d'interconnexion programmable. Autrement dit, chacune de ces connexions électriques forme une liaison (électriquement conductrice) réalisée physiquement de façon permanente dans le dispositif d'interconnexion programmable, ces connexions permettant l'échange de signaux de données dans au moins un sens. Chaque connexion peut comprendre une pluralité de fils (ou pistes) de connexion. Les cellules M relient ensemble les connexions électriques appropriées pour faire la liaison entre deux blocs fonctionnels donnés. Conformément à l'invention, le dispositif d'interconnexion programmable 6 comprend une pluralité de connexions H dites horizontales, chacune de ces connexions reliant une cellule d'interconnexion programmable M respective de la rangée RM1 avec uniquement une autre cellule d'interconnexion programmables M de la même rangé. Les cellules M connectées ensemble par ces connexions horizontales ne sont pas adjacentes les unes aux autres dans la rangée en question. Autrement dit, pour chaque couple de deux cellules M (non adjacentes) connectées ensemble par une connexion horizontale H, il existe au moins une cellule M intermédiaire positionnée entre les deux cellules ainsi connectées. La connexion horizontale ne connecte pas la ou les cellules M intermédiaires aux deux cellules M du couple en question. Dans l'exemple envisagé ici, la cellule Mg est connectées avec les cellules M3 et M13 via respectivement les connexions horizontales Hl et H2 (notées plus généralement H). Dans cet exemple, les connexions horizontales H sont telles qu'il existe un même nombre de cellules M intermédiaires entre chaque couple de cellules M connectées par les connexions horizontales H. Dans cet exemple, quatre cellules d'interconnexion programmable sont présentes entre chaque paire de cellules M connectées par une même connexion horizontale H. On considère ici que la distance dl entre les deux cellules M de chaque paire connectée par une connexion horizontale H est telle que d1=5. D'autres valeurs de dl peuvent naturellement être choisies. Chaque connexion horizontale H relie donc une cellule d'interconnexion programmable M, respective de la rangée RM1 avec uniquement la cellule d'interconnexion programmable voisine Mj+d1 de la même rangée RM1, pour j allant de 1 à n-dl. Par souci de clarté, seules les connexions horizontales H reliant la cellule M8 ont été représentées dans la figure 3. On comprendra que le dispositif 6 comprend dans la rangée RM1 toutes les connexions horizontales H pouvant connecter ensemble deux cellules M non adjacentes situées à la distance dl l'une de l'autre. Dans l'exemple de la figure 3, les cellules d'interconnexion programmables M6, M7, M8 et M9 sont chacune reliées via deux connexions horizontales H aux deux cellules M situées de part et d'autre à la distance dl dans la rangée RM1. En revanche, au niveau des extrémités de la rangée RM1, les cellules M1 à M5 d'un côté et M10 - M14 de l'autre ne sont reliées qu'à une seule cellule M non adjacente située à la distance dl. L'unique connexion horizontale reliant M3 correspond par exemple ici à l'une des connexions horizontales reliant M8. Conformément à l'invention, le dispositif d'interconnexion programmable 6 comprend également une pluralité de faisceaux de connexions B, chaque faisceau comportant au moins deux connexions transverses B reliant une même cellule d'interconnexion programmable M de la rangée RM1 avec respectivement un ensemble de blocs fonctionnels F (de la rangée RF1) adjacents entre eux, l'un de ces blocs F étant situé en correspondance avec ladite cellule M. Les connexions transverses B permettent ainsi de relier chaque cellule M d'une première rangée avec des blocs fonctionnels F d'une seconde rangée adjacente à ladite première rangée. Un faisceau respectif de connexions transverses B relie chaque cellule M de la rangée RM1 avec des blocs fonctionnels F de la rangée RF1. Dans ce premier mode de réalisation, la cellule d'interconnexion programmable M8 est connectée via les connexions transverses B8-1, B8-2, B8-3, B8-4 et B8-5 (nommées collectivement B8) avec respectivement les blocs fonctionnels F6, F7, F8, F9 et F10 de la rangée RF1. Par souci de clarté, seules les connexions transverses B reliant la cellule M8 ont été représentées dans la figure 3. On comprendra toutefois qu'un faisceau de connexions transverses B relie chaque cellule M de la rangée RM1 avec des blocs fonctionnels voisins de la rangée RF1. Dans une mise en oeuvre particulière de l'invention, chaque faisceau B relie au moyen de connexions transverses distinctes une cellule d'interconnexion programmable Mj respective de la rangée RM1 avec respectivement chacun des blocs fonctionnels Fj_d2 à Fj_Fd3 (j allant de 1 à n) de la rangée RF1 ou, le cas échéant, avec seulement ceux parmi ces blocs qui existent. En effet, en ce qui concerne les cellules M1 à Md2-1 et les cellules Mg_d3+1 à Mg, un ou plusieurs blocs fonctionnels parmi Fj-d2 à Fj+d3 n'existent pas. Ces cas particuliers mis à part, chaque faisceau de connexions transverses B permet de connecter une cellule Mi avec le bloc fonctionnel Fi situé en vis-à-vis (i.e. lorsque i=j) ainsi qu'avec les blocs fonctionnels Fi situés à une distance de Fi inférieure ou égale à d2 et d3 respectivement de part et d'autre dans la même rangée (d2 et d3 étant des entiers naturels). Conformément à l'invention, le dispositif 6 est configuré de sorte que l'ensemble des cellules d'interconnexion programmables M d'une rangée donnée (i.e. ici la rangée RM1) sont aptes par programmation à interconnecter entre elles les entrées et les sorties de chaque bloc fonctionnel F d'une rangée adjacente (i.e. ici la rangée RF1) avec respectivement les sorties et les entrées de tous les autres blocs fonctionnels F de ladite rangée adjacente (RF1) via des connexions horizontales H et transverses B. Dans le premier mode de réalisation envisagé ici, les conditions suivantes sont par exemple satisfaites : (a) d2 1; (b) d3 1; (c) 1 d2 + d3. Dans cet exemple, n = g donc la condition suivante est également satisfaite : n > d2 + d3. Le respect des conditions (a), (b), (c) et (d) permet par exemple d'interconnecter ensemble à volonté n'importe lesquels des blocs fonctionnels de la rangée RF1 via les connexions horizontales H et transverses B décrites ci-avant. La figure 3 représente le cas particulier où d1=5 et d2=d3=2. On comprendra qu'il n'est pas obligatoire que d2=d3 bien que cela facilite la programmation du dispositif d'interconnexion programmable 6. Le dispositif d'interconnexion programmable de l'invention est avantageux en ce qu'il offre une efficacité optimale pour un encombrement limité et un temps de propagation faible même lorsque le nombre de blocs fonctionnels est important. Le dispositif permet d'interconnecter ensemble tous les blocs fonctionnels d'une même rangée via seulement les connexions horizontales et transverses (ou, le cas échéant, via seulement des connexions transverses) sans que les temps de propagation souffrent d'un effet de seuil indésirable comme décrit en référence à la figure 2. Deux blocs fonctionnels F spatialement proches dans une même rangée peuvent être connectés ensemble via un minimum de connexions et un minimum de longueur de conducteur. L'architecture du dispositif selon l'invention offre un compromis optimal entre efficacité, encombrement et temps de propagation. Pour illustrer la manière dont le dispositif 6 peut être configuré, on considère à présent un exemple où l'on souhaite connecter électriquement une entrée du bloc fonctionnel F6 avec une sortie du bloc fonctionnel F12. L'utilisation du faisceau B8 à lui seul 3003 96 9 12 ne suffit pas pour connecter ensemble les blocs F6 et F12, dans le cas particulier de la figure 3 où d2=d3=2. Aussi, il est nécessaire d'établir la liaison électrique via la cellule M13 par exemple. Pour ce faire, la cellule Mg est configurée pour relier ensemble la connexion transverse B8-1 à la connexion horizontale H2. La cellule M13 est en outre configurée pour 5 relier cette connexion horizontale H2 avec la connexion transverse (notée B13-2) présente physiquement entre la cellule M13 et le bloc fonctionnel F12. Par ailleurs, bien que cela ne soit pas obligatoire, la structure 6 peut en outre comprendre un ensemble de connexions locales L reliant chaque cellule d'interconnexion Mi de la rangée RM1 avec uniquement la cellule d'interconnexion Mj+d4 de la même rangée 10 RM1, pour j allant de 1 à n-d4 (figure 3). La distance d4 est telle que 1 d4 1 (avec toujours d4 1). La figure 4 représente un exemple où le dispositif d'interconnexion programmable 6 comprend à présent une rangée additionnelle RF2 de blocs fonctionnels F et deux rangées additionnelles RM2 et RM3 de cellules d'interconnexion programmables M. Par souci de clarté, le dispositif d'interconnexion programmable est renommé 8. Les rangées RM1, RM2 et RM3 sont disposées en alternance de façon à ce que chaque rangée de blocs F soit placée entre deux rangées de cellules M. On pourrait toutefois imaginer qu'il y ait par exemple autant de rangées de blocs F que de rangées de cellules M. Chacune des rangées RM2 et RM3 comprend des connexions horizontales H et des connexions locales L identiques à celles décrites ci-avant en référence à la rangée RM1. Comme déjà expliqué précédemment, l'inclusion des connexions locales L n'est toutefois pas obligatoire. De plus, des faisceaux de connexions transverses B tels que décrits ci-avant en référence à la figure 3 sont présents entre chaque cellule M et la ou les rangées adjacentes de blocs fonctionnels F. Par souci de clarté, seules les connexions reliant des cellules d'interconnexion programmables et des blocs fonctionnels de rang 8 ont été représentées sur la figure. On constate par exemple que les cellules M de la rangée RM2 sont reliées via deux faisceaux de connexions transverses B à des blocs fonctionnels situés respectivement dans les deux rangées adjacentes RF1 et RF2. Par ailleurs, dans le cas particulier où il y a une pluralité de rangées de cellules d'interconnexion programmables (comme c'est le cas par exemple en figure 4), le dispositif 6 peut en outre comprendre une pluralité de connexions V dites verticales reliant chaque cellule d'interconnexion programmable Mj d'une rangée avec les cellules Mj correspondantes d'une rangée adjacente. Il est ainsi possible d'interconnecter entre elles deux à deux toutes les cellules Mj de même rang situées dans les différentes rangées de cellules d'interconnexion programmables. En figure 4 par exemple, la cellule Mg de la rangée RM2 est relié physiquement aux cellules de même rang des rangées RM1 et RM2 via respectivement les connexions verticales V1 et V2. Chaque cellule Mi de la rangée RM2 est ainsi reliée aux cellules correspondantes Mi des rangées adjacentes RM1 et RM2 via des connexions verticales analogues (non représentées sur la figure par souci de clarté). La structure de dispositif décrite ici peut ainsi s'appliquer pour un très grand nombre de rangées et pour un nombre très important de cellules M et de blocs fonctionnels F par rangée. Les valeurs des paramètres dl., d2, d3 (éventuellement d4), n et g ainsi que les nombres de rangées de cellules M et de blocs fonctionnels F peuvent être adaptés selon les besoins propres à chaque application. A titre d'exemple, les figures 5A et 5B représentent schématiquement l'ensemble des connexions transverses reliant physiquement les blocs fonctionnels F de la rangée RF2 et les cellules d'interconnexion programmables M de la rangée RM2 du dispositif 6. Comme indiqué précédemment, certaines connexions transverses B sont absentes aux deux extrémités de cette structure (notée 10). Plus précisément, dans la mise en oeuvre particulière envisagée ici, chaque faisceau de connexions B relie au moyen de connexions transverses B une cellule d'interconnexion programmable Mi respective de la rangée RM2 avec respectivement chacun des blocs fonctionnels Fi_d2 à Fj+d3 (j allant de 1 à n) de la rangée RF2 ou, le cas échéant, avec seulement ceux parmi ces blocs qui existent. En ce qui concerne les cellules M1 à Md2-1 et les cellules Mg_d3+1 à Mg, un ou plusieurs blocs fonctionnels parmi Fj-d2 à Fj_Fd3 n'existent pas. Dans le cas particulier où d2=d3=2 et n=g=14, les faisceaux de connexions B issues des cellules M1, M2, M13 et M14 sont partiellement tronquées en raison de l'absence de blocs fonctionnels à gauche de F1 et à droite de F14. La figure 5B représente par exemple en pointillés : - les blocs fonctionnels F_1 et Fo qui manquent à gauche du bloc F1; - les connexions transverses B1-1 et B1-2 qui devraient théoriquement relier M1 à F-1 et Fo respectivement ; - la connexion transverse B2-1 qui devrait théoriquement relier M2 à Fg. Dans une variante particulière où d2=d3, le dispositif peut comprendre en outre : une première connexion transverse additionnelle combinée à chacune des connexions transverses B reliant respectivement les cellules d'interconnexion programmables Mi et les blocs fonctionnels F,, pour chaque couple [i, j] avec i et j allant chacun de 1 à d2 sauf lorsque (d2 + 1 - i) Dans une mise en oeuvre particulière, les connexions transverses B1-3 et B1-4 reliées à la cellule M1 et la connexion transverse B2-1 reliée à la cellule M2 sont doublées. Autrement dit, une connexion transverse additionnelle est ajoutée à chacune des connexions transverses B1-3, B1-4 et B2-1. Un doublage analogue des connexions transverses peut être réalisé à l'autre extrémité de la structure 10. La figure 6 représente l'exemple d'une structure 12 comprenant 4 rangées (notées respectivement RM1, RM2, RM3 et RM4) de cellules d'interconnexion programmables M disposées en alternance avec 3 rangées de blocs fonctionnels F. Par souci de clarté, les rangées de blocs F et les connexions transverses B n'ont pas été représentées sur cette figure bien qu'elles existent en pratique. Dans le cas représenté en figure 6, les paramètres suivants ont été choisis : - d1=5 - d4=1 - n=g=14 La figure 6 représente l'ensemble des connexions horizontales H, des connexions locales L et des connexions verticales V reliant entre elles les cellules d'interconnexion programmables M de la structure 12 (bien que les connexions L et, le échéant les connexions V, ne soient pas obligatoires comme déjà indiqué précédemment). La structure 12 comprend en outre, pour chaque rangée de cellules M, des connexions horizontales additionnelles Ha et Hb reliant les cellules M situées aux extrémités de la rangée avec des blocs périphériques PO et P1. Dans une mise en oeuvre particulière, les cellules M1 - M -d1-1 sont chacune reliées par une connexion horizontale additionnelle respective Ha avec le bloc périphérique voisin PO. De même, les cellules M -n-di+i à Mn sont chacune reliées par une connexion horizontale additionnelle respective Hb avec le bloc périphérique voisin Pl. De plus, la structure 12 peut comprendre en outre deux connexions locales additionnelles La et Lb reliant respectivement les cellules M1 et Mr, de chaque rangée avec les blocs périphériques respectifs PO et Pl. La structure 12 peut également comprendre deux connexions verticales additionnelles Va et Vb reliant respectivement chaque cellule M de la rangée RM1 à un bloc périphérique voisin P2, et chaque cellule M de la rangée RM4 à un bloc périphérique voisin P3. Dans un mode de réalisation particulier, chacune des connexions transverses comprend deux fils de connexion permettant respectivement la communication d'une sortie d'une cellule d'interconnexion programmable vers une entrée d'un bloc fonctionnel, d'une part, et la communication d'une sortie dudit bloc fonctionnel vers une entrée de ladite cellule d'interconnexion programmable, d'autre part. La figure 7 représente un exemple de configuration des connexions d'une cellule d'interconnexion programmable M et d'un bloc fonctionnel F. Dans ce cas, les connexions H comportent chacune 48 fils de connexion montante et 48 fils de connexion descendante, c'est-à-dire : 48 fils de connexions reliant 48 entrées d'une cellule M à 48 sorties d'une autre cellule M située à une distance dl, et 48 fils de connexions reliant 48 sorties d'une cellule M à 48 entrées d'une autre cellule M située à une distance dl. De même, les connexions additionnelles L comportent chacune 16 fils de connexion montante et 16 fils de connexion descendante. Les connexions additionnelles V comportent chacune 160 fils de connexion montante et 160 fils de connexion descendante. Les connexions transverses B1 à B10 (dans le cas où (l+d2+d3)=5) possèdent chacune 16 fils de connexion montante et 16 fils de connexion descendante. Comme déjà indiqué précédemment, chaque bloc fonctionnel F du dispositif d'interconnexion programmable selon l'invention comprend des circuits électroniques permettant de réaliser des fonctions logiques. Un bloc F peut prendre la forme d'un bloc fonctionnel logique programmable ou toute autre forme plus adaptée à la réalisation de la ou des fonctions souhaitées. Des exemples de structure de blocs fonctionnels au sens de l'invention sont à présent brièvement décrits en référence aux figures 8A à 8D. Comme déjà expliqué, chaque bloc fonctionnel peut comprendre : une pluralité d'entrées, une pluralité de sorties, une pluralité de fonctions électroniques numériques, et un réseau d'interconnexion programmable apte à interconnecter entre elles les entrées et les sorties desdites fonctions électroniques numériques. Dans les exemples envisagés dans ce document, chaque bloc fonctionnel F est apte à permuter ses entrées entre elles et est également apte à permuter ses sorties entre elles. Dans un mode particulier, les blocs fonctionnels F du dispositif d'interconnexion 10 programmable de l'invention comprennent chacun un réseau d'interconnexion programmable permettant de réaliser des connexions par programmation entre les entrées, les sorties et les fonctions numériques dudit bloc fonctionnel. La figure 8A représente un premier exemple de structure (notée 14) d'un bloc fonctionnel, cette structure 14 comportant : 15 un ensemble de f blocs logiques BL repérés chacun par un rang allant de 1 à f, chaque bloc logique comportant m entrées I repérées chacune par un rang différent allant de 1 à m et o sorties 0 repérées chacune par un rang différent allant de 1 à o. Les f blocs logiques BL permettent de réaliser les fonctions combinatoires et/ou séquentielles d'un schéma donné. 20 un ensemble de e entrées E repérées chacune par un rang différent allant de 1 à e; un ensemble de s sorties S repérées chacune par un rang différent allant de 1 à s; et un réseau d'interconnexion programmable R permettant de réaliser les 25 connexions entre les f blocs logiques, les e entrées E et les s sorties S. La figure 8A représente le cas particulier où : e=s=160, f=384, m=4 et o=1. Dans cet exemple, les 4 entrées du bloc logique BL1 sont notées I1 à 14 et la sortie de BL1 est notée 01. La figure 8I3 représente un deuxième exemple de structure (notée 16) d'un bloc 30 fonctionnel, cette structure 16 comportant : un ensemble S de s sorties ; un ensemble E de e entrées ; un ensemble de n fonctions R de type mémoire statique (SRAM) notées de R1 à Rn, ces fonctions possédant un ou plusieurs ports de lecture et 35 d'écriture ; une fonction logique L comprenant des portes logiques et des registres ; un réseau de crossbars X; des interconnexions entres les fonctions SRAM R et la fonction logique L; des interconnexions entre les fonctions SRAM R et le réseau de crossbars X; des interconnexions entre la fonction logique L et le réseau de crossbars des interconnexions entres les entrées E et le réseau de crossbars X; et des interconnexions entre les sorties S et le réseau de crossbars X. Les entrées E et les sorties S sont connectées au réseau de cellules d'interconnexion programmables M. La figure 8C représente un troisième exemple de structure (notée 18) d'un bloc fonctionnel, cette structure 18 comportant : un ensemble S de s sorties ; un ensemble E de e entrées ; au moins une fonction MULT de type multiplieur ; au moins une fonction ALU de type arithmétique et logique pouvant réaliser des opérations nécessitant une propagation de retenue ou des opérations booléennes sur des opérandes de largeur supérieure à 1 ; éventuellement, des fonctions additionnelles telles qu'une fonction SHIFT de décalage arithmétique ou logique ; une fonction logique L comprenant des portes logiques et des registres ; un réseau de crossbars X; des interconnexions entres les fonctions MULT, ALU, SHIFT et la fonction logique L; des interconnexions entre les fonctions MULT, ALU, SHIFT et le réseau de crossbars X; des interconnexions entre la fonction logique L et le réseau de crossbars X, des interconnexions entres les entrées E et le réseau de crossbars X; et des interconnexions entre les sorties S et le réseau de crossbars X. Les entrées E et les sorties S sont connectées au réseau de cellules d'interconnexion programmables M. La figure 8D représente un quatrième exemple de structure (notée 20) d'un bloc fonctionnel, cette structure 18 comportant : un ensemble S de s sorties ; un ensemble E de e entrées ; éventuellement, un ensemble XE d'entrées dédiées (connexions différentes des connexions horizontales, verticales et locales décrites précédemment) ; éventuellement, un ensemble XS de sorties dédiées (connexions différentes des connexions horizontales, verticales et locales décrites précédemment) ; une fonction logique L comprenant des portes logiques et des registres réalisant un traitement numérique des signaux provenant des entrées E et XE, cette fonction logique L générant un résultat qu'elle envoie via des signaux sur les sorties S et XS ; un réseau de crossbars X; des interconnexions entre la fonction logique L et le réseau de crossbars X, des interconnexions entre la fonction logique L et les entrées dédiées XE; des interconnexions entre la fonction logique L et les sorties dédiées XS; des interconnexions entres les entrées E et le réseau de crossbars X; et des interconnexions entre les sorties S et le réseau de crossbars X. Les entrées E et les sorties S sont connectées au réseau de cellules d'interconnexion programmables M. Les entrées XE et les sorties XS sont connectées à toute autre partie du circuit intégré. Un homme du métier comprendra que les modes de réalisation et variantes décrits ci-avant ne constituent que des exemples non limitatifs de mise en oeuvre de l'invention. En particulier, l'homme du métier pourra envisager une quelconque combinaison des variantes et modes de réalisation décrits ci-avant afin de répondre à un besoin bien particulier. La présente invention concerne également un composant FPGA comprenant un dispositif d'interconnexion programmable au sens de l'invention, par exemple selon l'un des modes de réalisations ou variantes décrits ci-avant. REVENDICATIONS1. Dispositif d'interconnexion programmable (6; 8) comprenant : - au moins une première rangée (RF1, RF2) de g blocs fonctionnels (F1-F14), chaque bloc fonctionnel comprenant une pluralité d'entrées, une pluralité de sorties et une pluralité de fonctions numériques ; - au moins une deuxième rangée (RM1, RM2, RM3) de n cellules (M1-M14) d'interconnexion programmables, ladite deuxième rangée étant adjacente à ladite première rangée ; - une pluralité de connexions (H) dites horizontales, chaque connexion horizontale reliant une cellule (M8) d'interconnexion programmable respective de la deuxième rangée (RM1, RM2, RM3) avec uniquement une autre cellule (M3; M13) d'interconnexion programmables de ladite deuxième rangée, lesdites cellules reliées ensemble par ladite connexion horizontale (H) n'étant pas adjacentes l'une vis-à-vis de l'autre dans la deuxième rangée; et - une pluralité de faisceaux de connexions, chaque faisceau comportant au moins deux connexions (B) dites transverses reliant une même cellule (M8) d'interconnexion programmable avec respectivement un ensemble de blocs fonctionnels (F8-F10) de la première rangée (RF1, RF2) adjacents entre eux dont l'un des blocs est situé en correspondance avec ladite cellule ; dans lequel l'ensemble des cellules (M1-M14) d'interconnexion programmables sont aptes à interconnecter entre elles les entrées et les sorties de chaque bloc fonctionnel (F1-F14) de ladite première rangée (RF1, RF2) avec respectivement les sorties et les entrées de tous les autres blocs fonctionnels de ladite première rangée au moyen desdites connexions horizontales (H) et transverses (B). 2. Dispositif selon la revendication 1, dans lequel n = g. 3. Dispositif selon la revendication 2, dans lequel : - les blocs fonctionnels dits E de la première rangée sont tels que chaque h est disposé de façon à être adjacent à F1_1 et F1+1, i étant un entier naturel allant de 1 à g, - les cellules d'interconnexion programmables dites Mi de la deuxième rangée sont telles que chaque Mi est disposée de façon à être adjacente à Mi_1 et Mi+1, j étantun entier allant de 1 à n, dans lequel Mi et Fi sont positionnés en vis-à-vis l'un de l'autre lorsque i=j ; chaque connexion horizontale (H) relie une cellule d'interconnexion programmable Mi respective de la deuxième rangée avec uniquement la cellule d'interconnexion programmable voisine Mi±di de ladite deuxième rangée pour j allant de 1 à n-dl ; chaque faisceau relie au moyen des connexions transverses (B) une cellule d'interconnexion programmable Mi respective de ladite deuxième rangée avec respectivement chacun des blocs fonctionnels F3-d2 à F3-i-d3 de ladite première rangée ou, le cas échéant, avec seulement ceux parmi ces blocs qui existent ; et - dl, d2 et d3 sont des entiers tels que : d2 k 1,d3 1, 1 d2 + d3. 4. Dispositif selon la revendication 3, dans lequel dl = 2, d2 = d3 = 1. 5. Dispositif selon la revendication 3, comprenant une pluralité de connexions (L) dite locales reliant une cellule d'interconnexion Mi respective de ladite deuxième rangée avec uniquement la cellules d'interconnexion Mj_Fd4 de la deuxième rangée pour j allant de 1 à n-d4, d4 étant tel que 1 d4 6. Dispositif selon la revendication 5, dans lequel dl = 5, d2 = d3 = 2 et d4 = 1. 7. Dispositif selon la revendication 5, dans lequel dl = 7, d2 = d3 = 3 et d4 = 1. 8. Dispositif selon l'une quelconque des revendications 2 à 7, comprenant une pluralité de dites premières et deuxièmes rangées disposées en alternance, le dispositif comprenant en outre une pluralité de connexions (V) dites verticales reliant chaque cellule d'interconnexion programmable Mi d'une première rangée avec les cellules Mi correspondantes d'une première rangée adjacente. 9. Dispositif selon la revendication 8, dans lequel d2 = d3, le dispositif comprenant : - une première connexion transverse additionnelle combinée à chacune desdites connexions transverses reliant respectivement les cellules d'interconnexion programmables Mi et les blocs fonctionnels Fi, pour chaque couple [i, j] avec i et j allant chacun de 1 à d2 sauf lorsque (d2 + 1 - i) 10. Dispositif selon l'une quelconque des revendications 1 à 9, dans lequel les blocs fonctionnels comprennent chacun un réseau d'interconnexion programmable (R) permettant de réaliser des connexions par programmation entre les entrées, les sorties et 10 les fonctions numériques dudit bloc fonctionnel. 11. Dispositif selon l'une quelconque des revendications 1 à 10, dans lequel chacune desdites connexions comprend deux fils de connexion permettant respectivement la communication d'une sortie d'une première cellule d'interconnexion programmable vers 15 une entrée d'un bloc fonctionnel ou d'une deuxième cellule d'interconnexion programmable, d'une part, et la communication d'une sortie dudit bloc fonctionnel ou de ladite deuxième cellule d'interconnexion programmable vers une entrée de ladite première cellule d'interconnexion programmable, d'autre part. 20 12. Composant FPGA comprenant un dispositif d'interconnexion programmable selon l'une quelconque des revendications 1 à 11.