FR2990283A1 - Bibliotheque de cellules et procede de conception d'un circuit integre asynchrone - Google Patents

Bibliotheque de cellules et procede de conception d'un circuit integre asynchrone Download PDF

Info

Publication number
FR2990283A1
FR2990283A1 FR1254127A FR1254127A FR2990283A1 FR 2990283 A1 FR2990283 A1 FR 2990283A1 FR 1254127 A FR1254127 A FR 1254127A FR 1254127 A FR1254127 A FR 1254127A FR 2990283 A1 FR2990283 A1 FR 2990283A1
Authority
FR
France
Prior art keywords
terminal
signal
cell
asynchronous
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
FR1254127A
Other languages
English (en)
Inventor
Yvain Thonnart
Pascal Vivet
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Original Assignee
Commissariat a lEnergie Atomique CEA
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Commissariat a lEnergie Atomique CEA, Commissariat a lEnergie Atomique et aux Energies Alternatives CEA filed Critical Commissariat a lEnergie Atomique CEA
Priority to FR1254127A priority Critical patent/FR2990283A1/fr
Priority to EP13723839.0A priority patent/EP2845131A2/fr
Priority to PCT/FR2013/050875 priority patent/WO2013164528A2/fr
Priority to US14/395,344 priority patent/US9430600B2/en
Publication of FR2990283A1 publication Critical patent/FR2990283A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/396Clock trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/35Delay-insensitive circuit design, e.g. asynchronous or self-timed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/25Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/20Configuration CAD, e.g. designing by assembling or positioning modules selected from libraries of predesigned modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

L'invention concerne une bibliothèque de cellules destinée à être utilisée lors de la conception d'un circuit intégré asynchrone, comprenant au moins une cellule dont des paramètres de propagation de signal entre une première borne et une deuxième borne et entre la deuxième borne et une troisième borne sont fonction du paramètre de propagation de signal entre la première borne et la troisième borne. La bibliothèque comprend, pour ladite cellule, une indication que la deuxième borne est destinée à recevoir un signal fictif d'horloge au cours de la conception du circuit intégré asynchrone par un outil d'aide à la conception de circuits synchrones.

Description

B11577FR - DD13404 ST 1 BIBLIOTHÈQUE DE CELLULES ET PROCÉDÉ DE CONCEPTION D'UN CIRCUIT INTÉGRÉ ASYNCHRONE Domaine de l'invention La présente invention concerne une bibliothèque de cellules standards pour la réalisation d'un circuit asynchrone 5 et un procédé de conception d'un circuit synchrone mettant en oeuvre ces cellules. Exposé de l'art antérieur Un circuit intégré peut être synchrone ou asynchrone. Un circuit intégré synchrone est un circuit intégré dont le 10 fonctionnement est cadencé par un signal périodique distribué dans tout le circuit : le signal d'horloge. Un circuit intégré asynchrone est un circuit intégré dont le fonctionnement est assuré par un autre moyen que l'utilisation d'un signal d'horloge. Le contrôle d'un circuit intégré asynchrone se fait 15 généralement de manière locale par une synchronisation entre blocs fonctionnels. De nombreux outils d'aide à la conception de circuits intégrés synchrones sont disponibles dans le commerce. Ces outils assistent le concepteur à toutes les étapes de la 20 conception d'un circuit intégré synchrone jusqu'à la définition des masques qui seront utilisés pour la fabrication du circuit B11577FR - DD13404 ST 2 intégré. Les outils d'aide à la conception de circuits intégrés synchrones mettent en oeuvre des algorithmes d'optimisation qui ont été perfectionnés depuis de nombreuses années et se révèlent efficaces notamment pour réduire la surface occupée par le circuit, pour réduire la consommation du circuit, pour accroître la vitesse de fonctionnement du circuit, etc. Les outils d'aide utilisent généralement des bibliothèques de cellules standards. Chaque cellule correspond à un ensemble de composants élémentaires (par exemple des transistors MOS) remplissant une fonc- tion (par exemple une porte OU, ET, NON OU ou NON ET, un inverseur, un point mémoire, etc.). Une bibliothèque contient un ensemble de paramètres définissant le schéma de circuit et la topologie, ainsi que les bornes d'entrée et de sortie de chaque cellule. Chaque cellule est en outre définie par des paramètres tels qu'un temps de réponse, une puissance de sortie, etc. Pendant la conception d'un circuit intégré, des cellules de la bibliothèque sont sélectionnées, agencées, et interconnectées, pour fournir les fonctions requises du circuit. Les outils d'aide à la conception de circuits intégrés synchrones ne peuvent pas pour l'instant être utilisés directement pour l'optimisation de la conception de circuits intégrés asynchrones. En effet, les circuits intégrés asynchrones présentent des caractéristiques particulières qui ne sont généralement pas ou peu présentes dans les circuits synchrones et qui ne sont pas prises en charge par les outils d'aide à la conception des circuits intégrés synchrones. Il n'est alors généralement pas possible de bénéficier de toutes les capacités d'optimisation de ces outils. Toutefois, il serait souhaitable de ne pas devoir développer de nouveaux outils d'aide à la conception dédiés aux circuits asynchrones et de pouvoir utiliser, pour la conception de circuits intégrés asynchrones, directement les outils d'aide à la conception déjà disponibles pour la conception de circuits intégrés synchrones.
B11577FR - DD13404 ST 3 Résumé Ainsi, un objet de la présente invention est de prévoir une bibliothèque de cellules, permettant l'utilisation d'outils d'aide à la conception de circuits synchrones pour la 5 conception de circuits asynchrones. Un autre objet de la présente invention est de prévoir un procédé de conception d'un circuit intégré asynchrone mettant en oeuvre des outils d'aide à la conception de circuits intégrés synchrones. 10 Ainsi, un mode de réalisation de la présente invention prévoit une bibliothèque de cellules destinée à être utilisée lors de la conception d'un circuit intégré asynchrone, comprenant au moins une cellule dont des paramètres de propagation de signal entre une première borne et une deuxième 15 borne et entre la deuxième borne et une troisième borne sont fonction du paramètre de propagation de signal entre la première borne et la troisième borne. Selon un mode de réalisation de la présente invention, la bibliothèque comprend, pour ladite cellule, une indication 20 que la deuxième borne est destinée à recevoir un signal fictif d'horloge au cours de la conception du circuit intégré asynchrone par un outil d'aide à la conception de circuits synchrones. Selon un mode de réalisation de la présente invention, 25 la cellule est représentative d'une portion du circuit asynchrone, la deuxième borne étant destinée, en fonctionnement, à recevoir un signal de réinitialisation de la portion de circuit. Selon un mode de réalisation de la présente invention, 30 la cellule est représentative d'une portion du circuit asynchrone, la deuxième borne ne correspondant pas à une borne physique de la portion destinée, en fonctionnement, à fournir ou à recevoir des signaux. Selon un mode de réalisation de la présente invention, 35 la cellule comprend un premier paramètre de propagation de B11577FR - DD13404 ST 4 signal de la première borne à la deuxième borne et un deuxième paramètre de propagation de signal de la deuxième borne à la troisième borne, les premier et deuxième paramètres étant obtenus à partir d'un troisième paramètre de propagation de signal de la première borne à la troisième borne, le troisième paramètre correspondant à une matrice d'éléments Z) où i est un entier variant de 1 à P et j est un entier variant de 1 à Q, le deuxième paramètre correspondant à une matrice d'éléments r(R-> Z) obtenus selon la relation suivante : br(R Z) -nr(AZ) I étant un entier naturel choisi entre 1 et P, et le premier paramètre correspondant à une matrice d'éléments (A R) obtenus selon la relation suivante : R) Dr( -> Z) jr (A-> Z) J J étant un entier naturel choisi entre 1 et Q. Selon un mode de réalisation de la présente invention, la cellule comprend, en outre, une quatrième borne B, un quatrième paramètre de propagation de signal de la quatrième borne à la troisième borne correspondant à une matrice r(B-> d'éléments D. , la bibliothèque comprenant, en outre, un cinquième paramètre de propagation de signal de la quatrième borne à la deuxième borne, le cinquième paramètre correspondant ^ -> à une matrice d'éléments S. r (B R) obtenus selon la relation suivante : r(B-> R) r (B-> z) (R-> Z ) Si D j _ + M arg in où Margin est un nombre réel supérieur ou égal à zéro, qui est constant indépendamment de i ou qui dépend de la durée de transition du signal fictif d'horloge sur la deuxième borne. Selon un mode de réalisation de la présente invention, 30 la première borne est, en fonctionnement, une borne de réception d'un premier signal alternant entre deux états, la troisième borne étant, en fonctionnement, une borne de fourniture d'un second signal alternant entre deux états et le troisième B11577FR - DD13404 ST paramètre correspondant à la durée entre un changement d'état du premier signal et un changement d'état du second signal. Un mode de réalisation de la présente invention prévoit également un circuit intégré asynchrone comprenant des 5 cellules de la bibliothèque définie précédemment. Selon un mode de réalisation de la présente invention, le circuit intégré asynchrone comprend un circuit de type pipeline. Un mode de réalisation de la présente invention 10 prévoit également un procédé de conception d'un circuit intégré asynchrone à partir d'une bibliothèque de cellules définie précédemment, le procédé comprenant les étapes suivantes : synthétiser un circuit intégré synchrone correspondant au circuit intégré asynchrone en utilisant ladite cellule pour 15 représenter une portion du circuit asynchrone, ladite cellule étant cadencée par un signal d'horloge fictif ; et vérifier le circuit intégré synthétisé en utilisant le paramètre de propagation de signal entre la première borne et la troisième borne pour simuler le fonctionnement de ladite portion 20 du circuit asynchrone. Selon un mode de réalisation de la présente invention, la deuxième borne correspond à la borne de la portion du circuit asynchrone destinée, en fonctionnement, à recevoir un signal de réinitialisation de ladite portion du circuit asynchrone, le 25 procédé comprenant une étape de conception d'un arbre d'horloge pour transmettre le signal d'horloge fictif jusqu'à ladite portion du circuit asynchrone, l'arbre d'horloge étant utilisé en fonctionnement comme un réseau de distribution du signal de réinitialisation jusqu'à ladite portion du circuit asynchrone. 30 Brève description des dessins Ces objets, caractéristiques et avantages, ainsi que d'autres seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : B11577FR - DD13404 ST 6 la figure 1 illustre, de façon schématique, un exemple de circuit asynchrone ; la figure 2 représente, de façon schématique, un exemple de circuit de type pipeline asynchrone ; la figure 3 illustre, de façon schématique, un exemple de circuit asynchrone adapté à la mise en oeuvre d'un codage "1 parmi 2" ; d'un pipeline PCHB ; les figures 12 et 13 représentent des exemples de 25 réalisation d'une cellule fonctionnelle de l'étage RSPCHB de la figure 7 ; les figures 12 et 13 représentent des exemples de 25 réalisation d'une cellule fonctionnelle de l'étage RSPCHB de la figure 7 ; les figures 14 et 15 représentent des exemples de réalisation d'une cellule fonctionnelle de l'étage PCHB de la figure 8 ou de l'étage PCFB de la figure 9 ; 30 la figure 16 représente un exemple de réalisation d'une porte C ; la figure 17 représente un exemple de réalisation plus détaillé de l'étage WCHB de la figure 6 ; tique, un étage 20 d'un pipeline PCFB ; les figures 10 et 11 représentent des exemples de réalisation d'une cellule fonctionnelle de l'étage WCHB de la figure 6 ; les figures 14 et 15 représentent des exemples de réalisation d'une cellule fonctionnelle de l'étage PCHB de la figure 8 ou de l'étage PCFB de la figure 9 ; 30 la figure 16 représente un exemple de réalisation d'une porte C ; la figure 17 représente un exemple de réalisation plus détaillé de l'étage WCHB de la figure 6 ; B11577FR - DD13404 ST 7 la figure 18 est un chronogramme illustrant le protocole d'échange de données de l'étage du pipeline WCHB représenté en figure 17 ; la figure 19 représente un exemple de réalisation plus 5 détaillé de la cellule fonctionnelle pour pipeline PCHB de la figure 14 ; la figure 20 représente, de façon schématique, un exemple de chemin parcouru par un signal dans un pipeline asynchrone ; 10 la figure 21 représente un exemple d'une cellule de bibliothèque connue représentant un élément de rendez-vous protocolaire asynchrone ; la figure 22 représente un exemple d'une cellule de bibliothèque selon l'invention représentant l'élément de rendez-15 vous protocolaire asynchrone de la figure 21 ; la figure 23 représente, sous la forme d'un schéma par blocs, un exemple de réalisation d'un procédé de conception d'une cellule selon l'invention ; la figure 24 représente, de façon schématique, des 20 chemins parcourus par des signaux dans le pipeline de la figure 20 en mettant en oeuvre les cellules représentées en figure 22 ; la figure 25 représente, de façon schématique, d'autres chemins parcourus par des signaux dans le pipeline de la figure 20 pour illustrer une variante du procédé de 25 conception de cellule selon l'invention ; et la figure 26 représente, sous la forme d'un schéma par blocs, un exemple de réalisation d'un procédé de conception d'un circuit asynchrone selon l'invention. Par souci de clarté, de mêmes éléments ont été 30 désignés par de mêmes références aux différentes figures. Description détaillée Dans la suite de la description, un signal binaire et un signal qui alterne entre deux niveaux, un niveau haut ou et un niveau bas ou "0". Les niveaux haut et bas de signaux 35 binaires différents peuvent être différents. En outre, dans la B11577FR - DD13404 ST 8 suite de la description, l'inverse d'un signal binaire à correspond au signal binaire à "0" et l'inverse d'un signal binaire à "0" correspond au signal binaire à Les circuits asynchrones sont souvent décomposés en 5 blocs fonctionnels entre lesquels communiquent des données (appelées jetons) via des canaux de communication. La figure 1 représente un bloc fonctionnel émetteur 10 (Proc PO relié à un bloc fonctionnel récepteur 12 (Proc B) par un canal de communication 14. Le canal de communication 14 10 correspond aux fils utilisés pour la transmission de signaux, Rdata et Rack, entre l'émetteur 10 et le récepteur 12 et au protocole de communication mis en oeuvre pour réaliser la transmission des signaux. Les signaux transmis comprennent les signaux de contrôle dédiés à la communication entre les blocs 15 10, 12 et des signaux portant les autres données. L'ensemble des fils transportant les données autres que les signaux de contrôle est appelé bus de données. Dans la suite de la description, on considère des échanges de données entre les blocs 10 et 12 qui sont 20 directionnels, de l'émetteur 10 vers le récepteur 12. L'émetteur 10 est actif lorsqu'il initialise le transfert en indiquant que la donnée sur le canal 14 est valide, ce qui est détecté par le récepteur 12 au moyen du codage de données utilisé. Pour un émetteur passif 10, le récepteur 12 demande une nouvelle donnée 25 grâce au signal d'acquittement Rack. Dans la suite de la description, on considère des canaux de communication à émetteur actif et récepteur passif. Les blocs fonctionnels d'un circuit asynchrone peuvent être agencés en une succession de plusieurs étages, chaque étage 30 étant relié à un étage précédent de la succession et à un étage suivant de la succession. Un tel circuit est appelé "circuit de type pipeline" ou "pipeline". Des exemples de pipelines vont maintenant être décrits. La figure 2 représente de façon schématique un exemple 35 de pipeline 20. Le circuit 20 comprend une succession de blocs B11577FR - DD13404 ST 9 fonctionnels 22 (Etage). Chaque bloc fonctionnel 22 est relié au bloc suivant par un canal de communication 24. Chaque bloc fonctionnel 22 fournit le signal de données Rdata à plusieurs bits au bloc fonctionnel suivant dans la succession de blocs fonctionnels et reçoit le signal d'acquittement Rack à un bit du bloc fonctionnel suivant. Chaque bloc fonctionnel 22 fournit un signal d'acquittement Lack à un bit au bloc fonctionnel précédent dans la succession de blocs fonctionnels et reçoit un signal de données Ldata à plusieurs bits du bloc fonctionnel précédent. De ce fait, le signal Ldata d'un étage donné correspond au signal Rdata de l'étage précédent, le signal Lack d'un étage donné correspond au signal Rack de l'étage précédent, le signal Rdata d'un étage donné correspond au signal Ldata de l'étage suivant et le signal Rack d'un étage donné correspond au signal Lack de l'étage suivant. Plusieurs blocs fonctionnels 22 identiques ou différents peuvent être utilisés en parallèle pour constituer des canaux de données plus larges composés de signaux Rdata et Rack sur un plus grand nombre de bits. Le débit d'un pipeline est le nombre de jetons par seconde qui passe par un étage donné. La latence est la durée nécessaire pour qu'une donnée traverse les étages du pipeline. Le temps de cycle d'un étage est le temps minimum qui sépare la prise en compte de deux données successives dans cet étage. Le pipeline peut être un pipeline linéaire comme cela est représenté en figure 2. Dans ce cas, chaque étage 22 a un seul canal d'entrée (transmettant les signaux Lack et Ldata) et un seul canal de sortie (transmettant les signaux Rack et Rdata). Le pipeline peut être un pipeline non-linéaire. Il comprend alors au moins un étage qui peut avoir au moins deux canaux d'entrée reliés à deux étages précédents différents et/ou au moins deux canaux de sortie reliés à deux étages suivants différents. Un exemple de codage des données échangées entre deux étages consiste à ajouter un fil au bus de données afin de 35 spécifier que les données sont valides. Ce type de codage est B11577FR - DD13404 ST 10 appelé codage "données groupées". Un autre exemple de codage des données consiste à intégrer l'information de la validité dans les données transportées par le bus de données. On parle alors de codage "insensible aux délais". Un exemple de codage insen- sible aux délais est le codage 4 états. Dans ce codage, chaque bit de données est représenté par deux fils. Parmi les quatre combinaisons d'états possibles pour ces deux fils, la moitié (par exemple les combinaisons 00 et 10) est réservée à la valeur de bit "0", l'autre moitié (par exemple les combinaisons 11 et 01) est réservée à la valeur de bit "1". L'émission d'une nouvelle donnée se traduit par le changement de l'état d'un seul fil et la validité des données est assurée par le changement de parité du couple de fils. Un autre exemple de codage insensible aux délais est le codage 3 états. Dans ce codage, chaque bit de données est également représenté par deux fils. Une seule combinaison d'états des fils représente une valeur de bit (par exemple la combinaison 01 pour le bit "1" et la combinaison 10 pour le bit "0"), tandis que la troisième combinaison (par exemple la combinaison 00) indique l'état invalide et la quatrième combinaison (par exemple la combinaison 11) est inutilisée. Le codage 3 états est un cas particulier du codage "1 parmi N" dans lequel la transmission d'un chiffre en base N utilisé N fils. Chaque fil à l'état haut représente un chiffre en base N et l'état invalide est obtenu par la mise à zéro de tous les fils. Les combinaisons où deux fils sont simultanément à l'état haut sont interdites. Il existe de façon analogue un codage "M parmi N". La présente invention peut être mise en oeuvre pour la conception d'un circuit asynchrone mettant en oeuvre un codage "données groupées" ou un codage "insensible aux délais". Le protocole de communication correspond à l'ensemble des règles qui gouvernent l'échange de signaux au sein du canal de communication 14 entre les deux blocs fonctionnels 10 et 12. Pour un circuit asynchrone, un exemple de protocole de communi- cation entre blocs fonctionnels est le protocole de type B11577FR - DD13404 ST 11 "poignée de main". Le protocole de type "poignée de main" peut être un protocole à 4 phases ou à 2 phases. La figure 3 représente un exemple de réalisation de canal de communication 14 adapté à la mise en oeuvre d'un codage du type "1 parmi 2. Le canal de communication 14 comprend trois fils transportant des signaux de données CO, Cl et le signal d'acquittement Rack. La figure 4 illustre le principe d'un protocole de type "poignée de main" à quatre phases entre les blocs fonctionnels 10 et 12 de la figure 3 pour un codage de données "1 parmi 2. Dans la suite de la description, sauf indication contraire, la donnée transférée correspond à un bit à lorsque le signal CO est à "1" et le signal Cl est à "0" et la donnée transférée correspond à un bit à "1" lorsque le signal CO est à "0" et le signal Cl est à "1". Dans les autres cas, les données ne sont pas valides. Dans la suite de la description, le signal d'acquittement Rack est valide lorsqu'il est à "0". Les instants to à tg sont des instants successifs. A l'instant to, les signaux CO et Cl sont à "0" et le 20 signal d'acquittement Rack est à "1". Il n'y a pas de données valides à transférer. A l'instant tl, le signal CO passe à Le récepteur 12 détecte la nouvelle donnée (bit de donnée égal à effectue le traitement de cette donnée et active le signal d'acquittement Rack en le mettant à "0" à l'instant t2. 25 L'émetteur 10 détecte le signal d'acquittement Rack et invalide les données en mettant le signal CO à "0" à l'instant t3. Le récepteur 12 détecte l'état invalide des données et désactive le signal d'acquittement Rack en le mettant à "1" à l'instant t4. Les instants t5 à tg sont associés au transfert d'une autre 30 donnée (bit de donnée égal à "1"). Les circuits asynchrones peuvent être des circuits quasi-insensibles aux délais ou circuits QDI (acronyme anglais pour Quasi-Delay Insensitive). La définition des circuits QDI utilise la notion de fourche isochrone, c'est-à-dire une fourche 35 qui relie un émetteur unique à deux récepteurs et pour laquelle B11577FR - DD13404 ST 12 les délais de propagation d'un signal entre l'émetteur et les récepteurs sont identiques. Un circuit QDI est un circuit asynchrone pour lequel : le délai de propagation d'un signal dans un fil ou 5 dans un bloc fonctionnel peut prendre n'importe quelle valeur ; et pour les fourches isochrones, l'acquittement peut être réalisé seulement pour l'une des branches de la fourche. La présente invention est particulièrement adaptée aux 10 pipelines asynchrones QDI. Sauf indication contraire, dans la suite de la description, la présente invention est décrite pour la conception de pipelines asynchrones QDI. Il existe plusieurs types de pipelines dont la structure dépend du protocole de communication mis en oeuvre 15 pour l'échange de données entre les étages du pipeline. Des exemples de pipelines dont le protocole de communication entre étages respecte le protocole de type "poignée de main" décrit précédemment sont le pipeline WCHB (acronyme anglais pour WeakCondition Half-Buffer), le pipeline RSPCHB (acronyme anglais 20 pour Reduced-Stack Pre-Charge Half-Buffer), le pipeline PCHB (acronyme anglais pour Pre-Charge Half-Buffer) et le pipeline PCFB (acronyme anglais pour Pre-Charge Full-Buffer). La figure 5 représente, de façon schématique, un exemple de réalisation d'un étage 26 permettant la réalisation 25 d'un étage de pipeline WCHB, RSPCHB, PCHB ou PCFB. L'étage 26 comprend un bloc fonctionnel 28 recevant le signal Ldata (à N bits) et fournissant le signal Rdata (à M bits), N et M étant des nombres entiers qui peuvent être différents. Le bloc fonctionnel 28 est adapté à réaliser des 30 opérations sur les données Ldata qui dépendent notamment du type de pipeline. Le bloc fonctionnel 28 reçoit en outre, à une borne Ra, le signal d'acquittement Rack fourni par l'étage suivant du pipeline. Le bloc fonctionnel 28 peut, en outre, recevoir un signal de réinitialisation Reset à une borne Rst. Le bloc B11577FR - DD13404 ST 13 fonctionnel 28 peut, en outre, comprendre une borne EN de réception d'un signal d'activation Enable. Le bloc fonctionnel 28 comprend M cellules (Cell) 29. Les cellules 29 sont généralement identiques. Chaque cellule 29 reçoit le signal Ldata à N bits, réalise une opération sur les données Ldata et fournit, en fonction du résultat de l'opération, un signal à un bit. Les M signaux à 1 bit fournis par les M cellules 29 forment le signal Rdata. Chaque cellule 29 reçoit également le signal d'acquittement Ra, le signal d'activation Enable et le signal de réinitialisation Reset. Chaque cellule 29 comprend des bornes d'entrée, une borne de sortie et, comme le bloc fonctionnel 28, une borne Ra de réception du signal d'acquittement Rack et éventuellement une borne EN de réception du signal Enable et/ou une borne Rst de réception du signal de réinitialisation Reset. L'étage 26 peut comprendre un bloc de détection amont 30 qui reçoit les données Ldata et qui fournit un signal Ldetect à un bit. Le signal Ldetect est actif si des données Ldata valides sont présentes en entrée du bloc fonctionnel 28. L'étage 26 comprend un bloc de détection aval 32 qui reçoit les données Rdata et qui fournit un signal Rdetect à un bit. Le signal Rdetect est actif si le bloc fonctionnel 28 fournit de nouvelles données Rdata valides. L'étage 26 peut comprendre un bloc de synchronisation 34 qui reçoit les signaux Ldetect et Rdetect et qui fournit le signal d'acquittement Lack à l'étage précédent du pipeline. Le bloc de synchronisation 34 peut, en outre, fournir le signal d'activation Enable à la borne EN du bloc fonctionnel 28. L'étage 26 peut être réalisé en prévoyant que les signaux d'acquittement Rack ou Lack sont actifs au niveau bas ou au niveau haut. De même, les signaux Ldetect et Rdetect peuvent être actifs au niveau bas ou au niveau haut. Dans le cas où le niveau actif des signaux Ldetect et Rdetect est le niveau bas, les sorties des blocs de détection 30 et 32 sont représentées avec un inverseur.
B11577FR - DD13404 ST 14 La figure 6 représente un exemple de réalisation d'un étage 36 d'un pipeline WCHB qui correspond à un exemple particulier de l'étage 26 de la figure 5 dans lequel le bloc de détection amont 30 n'est pas présent. En outre, le signal Enable n'est pas présent. Le bloc de synchronisation 34 correspond à un fil recevant la sortie du bloc de détection aval 32 et fournissant le signal d'acquittement Lack. Le signal de réinitialisation Reset peut ne pas être présent. Plus précisément, le protocole de communication d'un 10 étage du pipeline WCHB comprend les étapes successives suivantes : attendre que les données en entrée soient valides et que le signal d'acquittement de l'étage suivant soit désactivé ; fournir de nouvelles données valides en sortie ; 15 activer le signal d'acquittement fourni à l'étage précédent ; attendre que les données en entrée soient invalides et que le signal d'acquittement de l'étage suivant soit activé ; invalider les données en sortie ; et 20 désactiver le signal d'acquittement fourni à l'étage précédent. La figure 7 représente un exemple de réalisation d'un étage 38 d'un pipeline RSPCHB qui correspond à un exemple particulier de l'étage 26 de la figure 5 dans lequel le bloc de 25 détection amont 30 n'est pas présent. En outre, le signal Enable n'est pas présent. Le bloc de synchronisation 34 comprend une porte C 40 et un inverseur 42. La porte C 40 comprend une première entrée recevant la sortie du bloc de détection aval 32 et une seconde entrée recevant un signal de requête Lreq à 1 bit 30 de l'étage précédent du pipeline. La porte C 40 fournit un signal de requête Rreq à 1 bit à l'étage suivant du pipeline. Le signal Rreq est également fourni à l'entrée de l'inverseur 42 qui fournit le signal d'acquittement Lack. Le signal de réinitialisation Reset peut ne pas être présent.
B11577FR - DD13404 ST 15 Une porte C (également appelée porte de Müller ou élément C) est une porte qui fournit en sortie la valeur présente aux entrées de la porte lorsque ces entrées sont identiques, et qui dans le cas contraire maintient en sortie la 5 dernière valeur fournie. Une porte C peut comprendre une entrée supplémentaire recevant un signal Reset de réinitialisation qui lorsqu'il est activé met le signal de sortie de la porte à et n'influe pas sur le signal de sortie de la porte lorsqu'il n'est pas activé. Une porte C peut avoir deux entrées ou plus de 10 deux entrées. Une porte C asymétrique est une variante de la porte C décrite précédemment selon laquelle des premiers signaux d'entrée font monter la sortie à "1" et des seconds signaux d'entrée, qui ne sont pas toujours les mêmes que les premiers 15 signaux d'entrée, font descendre la sortie à "0". Lorsque les premiers signaux d'entrée sont tous à "1", la sortie passe à Lorsque les seconds signaux d'entrée sont tous à "0", la sortie passe à "0". Si aucune de ces conditions n'est vraie, la sortie reste inchangée. 20 Une porte C symétrique ou asymétrique permet de réaliser dans un circuit asynchrone une fonction de rendez-vous (appelée également fonction de synchronisation) entre deux signaux ou plus de deux signaux. Un élément réalisant une fonction de rendez-vous, ou élément de rendez-vous, est un 25 élément recevant plusieurs signaux d'entrée et fournissant au moins un signal de sortie et modifiant le signal de sortie seulement lorsque les signaux d'entrée respectent une condition particulière et ne modifiant pas le signal de sortie lorsque les signaux d'entrée ne respectent pas la condition particulière. 30 La figure 8 représente un exemple de réalisation d'un étage 44 d'un pipeline PCHB qui correspond à un exemple particulier de l'étage 26 de la figure 5 dans lequel le bloc de synchronisation 34 comprend une porte C 46 qui reçoit les signaux Ldetect et Rdetect fournis par les blocs de détection 30 35 et 32. La porte C 46 fournit le signal d'acquittement Lack. Le B11577FR - DD13404 ST 16 signal Enable est égal au signal d'acquittement Lack. Le signal de réinitialisation Reset peut ne pas être présent. Contrairement au pipeline WCHB, le test de validité des données entrantes est effectué explicitement par le bloc 30.
La sortie est remise plus têt à zéro dès qu'elle est acquittée sans attendre l'invalidité du canal d'entrée. Le signal d'acquittement Lack est repositionné pour la donnée suivante une fois que le canal d'entrée est remis à zéro. Plus précisément, le protocole de communication d'un 10 étage du pipeline PCHB comprend les étapes successives suivantes : attendre que les données en entrée soient valides et que le signal d'acquittement de l'étage suivant soit désactivé ; fournir de nouvelles données valides en sortie ; 15 activer le signal d'acquittement fourni à l'étage précédent ; attendre que le signal d'acquittement de l'étage suivant soit activé ; invalider les données en sortie ; 20 attendre que les données en entrée soient invalides ; désactiver le signal d'acquittement fourni à l'étage précédent. La figure 9 représente un exemple de réalisation d'un étage 48 d'un pipeline PCFB qui correspond à un exemple 25 particulier de l'étage 26 de la figure 5 dans lequel le bloc de synchronisation 34 comprend une porte C 50 symétrique à deux entrées, une porte C 52 asymétrique et deux inverseurs 54 et 56. La porte C 50 reçoit le signal Rdetect et le signal d'acquittement Lack et fournit le signal Enable. L'inverseur 54 reçoit 30 le signal Ldetect et l'inverseur 56 reçoit le signal Rdetect. Les premiers signaux d'entrée de la porte C asymétrique 52 sont le signal fourni par l'inverseur 54, le signal fourni par l'inverseur 56 et le signal Enable. Les seconds signaux d'entrée de la porte C asymétrique 52 sont le signal fourni par 35 l'inverseur 54 et le signal Enable. L'inverse du signal fourni B11577FR - DD13404 ST 17 par la porte C asymétrique 52 correspond au signal d'acquittement Lack. Le protocole de communication d'un étage du pipeline PCFB comprend les étapes successives suivantes : attendre que les données en entrée soient valides et que le signal d'acquittement de l'étage suivant soit désactivé ; fournir de nouvelles données valides en sortie ; activer le signal d'acquittement fourni à l'étage précédent ; d'une part attendre que le signal d'acquittement de l'étage suivant soit activé puis invalider les données en sortie ; et parallèlement d'autre part attendre que les données en entrée soient invalides et désactiver le signal d'acquittement fourni à l'étage précédent. La figure 10 représente un exemple de réalisation d'une cellule 60 du bloc fonctionnel 28 de l'étage 36 du pipeline WCHB représenté en figure 6. La cellule 60 comprend un bloc 62 à base de transistors MOS à canal P. Le bloc 62 reçoit le signal Ldata. La cellule 60 comprend un bloc 64 à base de transistors MOS à canal N. Le bloc 64 reçoit le signal Ldata. Les blocs 62 et 64 sont reliés en un noeud E. Les blocs 62, 64 réalisent des fonctions de logique combinatoire sur le signal Ldata en fonction desquelles l'état du noeud E peut être modifié. La cellule 60 comprend un transistor MOS 66 à canal P dont la source est reliée à une source d'une tension de référence haute VDD, dont le drain est relié au bloc 62 et dont la grille reçoit le signal d'acquittement Rack. La cellule 60 comprend un transistor MOS 68 à canal N dont la source est reliée à une source d'une tension de référence basse GND, dont le drain est relié au bloc 64 et dont la grille reçoit le signal d'acquittement Rack. Le signal d'acquittement Rack fourni par l'étage suivant est utilisé pour autoriser le fonctionnement des blocs 62, 64 par l'intermédiaire des transistors 66 et 68. Dans cet exemple, le signal d'acquittement Rack, Lack est actif à B11577FR - DD13404 ST 18 Des circuits similaires peuvent être conçus avec un signal d'acquittement Rack actif à La cellule 60 comprend un inverseur 70 dont l'entrée est reliée au noeud E et dont la sortie fournit un signal Z à 1 bit. La cellule 60 comprend, en outre, un inverseur faible 72 dont l'entrée reçoit le signal Z et dont la sortie est reliée au noeud E. L'inverseur 72 est dit faible dans la mesure où sa sortie peut être forcée lorsque le potentiel au noeud E est imposé par les sources de tension VDD et GND, par l'inter- médiaire des blocs 62, 64 et des transistors 66, 68. A titre de variante, l'inverseur 72 peut être remplacé par un bloc réalisant une fonction de logique combinatoire et recevant le signal Z et un signal C à plusieurs bits qui dépend du signal Ldata et dont la sortie est connectée au noeud E. La cellule 60 ne reçoit pas de signal de réinitialisation Reset. La figure 11 représente un exemple de réalisation d'une cellule 74 du bloc fonctionnel 28 de l'étage 36 du pipeline WCHB représenté en figure 6 qui, par rapport à la cellule 60, comprend, à la place de l'inverseur 70, une porte NON OU 76 dont une entrée est reliée au noeud E, dont l'autre entrée reçoit le signal de réinitialisation Reset et dont la sortie fournit le signal Z. La figure 12 représente un exemple de réalisation d'une cellule 78 du bloc fonctionnel 28 de l'étage 38 de pipeline RSPCHB représenté en figure 7 qui, par cellule 60, ne comprend pas le bloc 62. Le drain 66 est directement connecté au noeud E. La figure 13 représente un autre réalisation d'une cellule 80 du bloc fonctionnel 30 38 de pipeline RSPCHB représenté en figure 7 qui, rapport à la du transistor exemple de 28 de l'étage par rapport à la cellule 78, comprend la porte NON OU 76 de la cellule 74 à la place de l'inverseur 70 de la cellule 78. La figure 14 représente un exemple de réalisation d'une cellule 82 du bloc fonctionnel 28 de l'étage 44 de 35 pipeline PCHB représenté en figure 8 ou de l'étage 48 de B11577FR - DD13404 ST 19 pipeline PCFB représenté en figure 9, qui, par rapport à la cellule 78 comprend, en outre, un transistor MOS 84 à canal P dont la source est reliée au drain du transistor 66, dont le drain est relié au noeud E et dont la grille reçoit le signal Enable. La cellule 82 comprend, en outre, un transistor MOS 86 à canal N dont la source est reliée au drain du transistor 68, dont le drain est relié au bloc 64 et dont la grille reçoit le signal Enable. La figure 15 représente un autre exemple de réalisation d'une cellule 88 du bloc fonctionnel 28 de l'étage 44 de pipeline PCHB représenté en figure 8 ou de l'étage 48 de pipeline PCFB représenté en figure 9, qui, par rapport à la cellule 82, comprend la porte NON OU 76 de la cellule 80 à la place de l'inverseur 70 de la cellule 82.
Les cellules 60, 78 et 82 ne reçoivent pas le signal de réinitialisation Reset alors que les cellules 74, 80 et 88 reçoivent le signal de réinitialisation Reset. Le signal Reset peut être actif au niveau haut ou actif au niveau bas. La réinitialisation du noeud interne E par le signal Reset dans les cellules 74, 80 et 88 peut être effectuée par différents moyens, l'utilisation de la porte NON OU 76 étant donnée à titre d'exemple. La figure 16 représente un exemple de réalisation d'une porte C 90 à deux entrées et avec réinitialisation qui correspond à un exemple particulier de la cellule 74 représentée en figure 11 dans lequel le bloc 62 comprend un unique transistor MOS 92 à canal P dont la source est reliée au drain du transistor 66 et dont le drain est relié au noeud E et dans lequel le bloc 64 comprend un unique transistor MOS 94 à canal N dont la source est reliée au drain du transistor 68 et dont le drain est relié au noeud E. La porte C 90 reçoit deux signaux binaires A et B. Le signal A est fourni aux grilles des transistors 92 et 94 et le signal B est fourni aux grilles des transistors 66 et 68.
B11577FR - DD13404 ST 20 La figure 17 représente un exemple de réalisation d'un étage 96 correspondant à un exemple particulier de l'étage 36 du pipeline WCHB de la figure 6 dans le cas où le bloc fonctionnel 28 joue seulement le rôle de mémorisation de données et dans le cas d'un codage du type "1 parmi 2" avec des signaux Lack et Rack qui sont actifs au niveau bas. L'étage 96 reçoit deux signaux d'entrée à un bit LO et Li et fournit deux signaux de sortie à un bit RO et Ri. Le bloc de détection aval 32 correspond à une porte NON OU 98 qui reçoit les signaux de sortie RO et R1 et qui fournit le signal d'acquittement Lack à l'étage précédent. Le bloc fonctionnel 28 comprend deux cellules correspondant chacune à une porte C pouvant être réinitialisée. Plus précisément, le bloc fonctionnel 28 comprend une porte C 100 recevant le signal LO et le signal d'acquittement Rack de l'étage suivant et fournissant le signal de sortie RO. Le bloc fonctionnel 28 comprend, en outre, une porte C 102 recevant le signal Li et le signal d'acquittement Rack de l'étage suivant et fournissant le signal de sortie Ri. A titre d'exemple, la porte C 100 peut être réalisée 20 comme cela est représenté en figure 16. Dans ce cas, les signaux A et B de la porte C 90 correspondent aux signaux LO et Rack et le signal Z de la porte C 90 correspond au signal RO. La figure 18 illustre le principe de transmission de données par l'étage 96. A l'instant t'0, les signaux LO et Li 25 sont à "0" et les signaux d'acquittement Lack et Rack sont à Il n'y a pas de données validées à transférer. A l'instant t'l, le signal LO passe à "1" (réception du bit "0" par l'étage 96). A l'instant t'2, seulement lorsque les deux signaux LO et Rack sont à "1", l'étage 96 met le signal RO à "1". Les instants 30 t'O à t'16 sont des instants successifs. A l'instant t'3, l'étage 96 active le signal d'acquittement Lack en mettant le signal d'acquittement Lack à "0". A l'instant t'4, l'étage suivant l'étage 96 dans le pipeline met le signal Rack à "0". A l'instant t'5, les données sont invalidées en mettant le signal 35 LO à "0". A l'instant t'6, seulement lorsque les deux signaux LO B11577FR - DD13404 ST 21 et Rack sont à "0", le signal RO passe à "0". A l'instant t'7, l'étage 96 désactive le signal d'acquittement Lack en le mettant à "1". A l'instant t'a, l'étage suivant l'étage 96 dans le pipeline désactive le signal d'acquittement Rack en le mettant à "1". Les instants t'9 à t'16 sont associés au transfert du bit par l'étage 96. La figure 19 représente un exemple de réalisation particulier 104 de la cellule 82 de pipeline PCHB représentée en figure 14 réalisant une fonction logique OU entre deux signaux binaires A et B et dans lequel le bloc 64 comprend deux transistors MOS 106 et 108 à canal N montés en parallèle, dont les sources sont connectées au drain du transistor 86 et dont les drains sont connectés au noeud E. La grille du transistor 106 reçoit le signal B et la grille du transistor 108 reçoit le signal A. La figure 20 représente, de façon schématique, un exemple de réalisation d'un pipeline 110, par exemple du type WCHB, RSPCHB, PCHB ou PCFB. Trois étages 26 successifs du pipeline 110 sont représentés.
Par la suite, on appelle élément de rendez-vous protocolaire une cellule qui réalise une fonction de rendez-vous ou de synchronisation entre le signal d'acquittement Rack et le signal d'entrée Ldata (et éventuellement, en outre, le signal Enable pour le pipeline PCHB ou PCFB). Les éléments de rendez- vous protocolaires peuvent être les cellules 29 du bloc fonctionnel 28 ou des ensembles de cellules 29 du bloc fonctionnel 28. Pour certains pipelines, l'élément de rendez-vous protocolaire peut, en outre, correspondre à certaines cellules du bloc de synchronisation 34. A titre d'exemple, pour les étages 38, 48 de pipelines PCFB et RSPCHB, les éléments de rendez-vous protocolaire peuvent, en outre, correspondre aux éléments 40, 50 et 52. Lorsque l'élément de rendez-vous protocolaire correspond à une cellule 29 du bloc fonctionnel 28 de l'étage 35 26, l'élément de rendez-vous protocolaire peut réaliser une B11577FR - DD13404 ST 22 fonction supplémentaire à celle de rendez-vous. Par exemple, la cellule 104 représentée en figure 19 pour un pipeline PCHB réalise une fonction logique OU tout en réalisant la fonction de synchronisation entre les signaux PL, B, Rack et Enable.
L'élément de rendez-vous protocolaire peut, en outre, recevoir un signal de réinitialisation. C'est le cas, par exemple, des cellules 74, 80, 88 représentées aux figures 11, 13 et 15. L'élément de rendez-vous protocolaire peut ne pas recevoir de signal de réinitialisation spécifique, comme c'est le cas des cellules 60, 78, 82 représentées aux figures 10, 12 et 14. Une étape d'optimisation mise en oeuvre de façon classique par les outils d'aide à la conception de circuits intégrés synchrones comprend la détermination de la durée de propagation de signaux entre des blocs fonctionnels du circuit intégré, notamment pour déterminer s'il n'y a pas d'incompatibilité avec la fréquence du signal d'horloge qui cadence le fonctionnement du circuit. Pour ce faire, des algorithmes délimitent des chemins parcourus par un signal entre deux éléments du circuit intégré cadencés par le signal d'horloge. Il s'agit généralement d'éléments de mémorisation, par exemple des bascules. Dans un circuit intégré synchrone, la répartition des éléments de mémorisation fait que les chemins ainsi délimités entre les éléments de mémorisation ne comprennent pas ou quasiment pas de boucles, c'est-à-dire qu'il n'y a pas ou quasiment pas de chemin pour lequel un signal passe plusieurs fois au même endroit. Il est alors vérifié que la durée de parcours d'un signal sur chaque chemin est compatible avec le cadencement des éléments de mémorisation par le signal d'horloge. Des algorithmes peuvent alors optimiser différents paramètres tels que la position et la structure des éléments de mémorisation et des blocs de logique combinatoire entre les éléments de mémorisation pour assurer qu'il n'y a pas d'incompatibilité, pour réduire la surface occupée par le circuit intégré, pour diminuer la consommation du circuit intégré, pour augmenter la vitesse de fonctionnement du circuit intégré, etc.
B11577FR - DD13404 ST 23 Les algorithmes de délimitation de chemins ne peuvent pas être appliqués directement lors de la conception de circuits intégrés asynchrones. La figure 20 illustre une difficulté rencontrée 5 lorsque les outils d'aide à la conception des circuits intégrés synchrones sont directement mis en oeuvre pour la conception de circuits intégrés asynchrones. Un circuit asynchrone ne comprend pas d'éléments de mémorisation dont le fonctionnement est cadencé par un signal 10 d'horloge. De ce fait, si l'on suit le parcours d'un signal dans un circuit asynchrone, celui-ci peut se propager selon des boucles, en passant plusieurs fois au même endroit. Un exemple d'un tel parcours 112 est représenté en traits pointillés en figure 20. Dans un circuit asynchrone, l'étape de délimitation 15 de chemins ne peut alors pas être réalisée comme pour les circuits intégrés synchrones. Le concepteur doit alors indiquer les points de départ et d'arrivée des chemins à l'outil d'aide à la conception. Une possibilité consiste à indiquer aux outils d'aide à la conception de ne pas considérer les portions de 20 chemin (appelés également par la suite arcs ou chemins internes) parcourus par les signaux dans certains éléments du circuit intégré asynchrone, par exemple les éléments de rendez-vous protocolaires, en particulier les cellules du bloc fonctionnel 28 de chaque étage 26, ce qui permet de délimiter des chemins, 25 chaque chemin s'étendant de la sortie d'un élément de rendez-vous protocolaire jusqu'à l'entrée d'un autre élément de rendez-vous protocolaire. Les boucles sont ainsi interrompues. Toutefois, l'outil d'aide à la conception ne peut pas alors faire d'optimisation globale du circuit intégré asynchrone mais 30 seulement des optimisations locales qui peuvent ne pas être les plus adaptées. En outre, les caractéristiques de fonctionnement réelles des éléments de rendez-vous protocolaires non considérés ne sont pas prises en compte par les algorithmes d'optimisation. Pour concevoir un circuit asynchrone en utilisant des 35 outils d'aide à la conception de circuits synchrones, la B11577FR - DD13404 ST 24 présente invention consiste à utiliser un modèle particulier d'élément de rendez-vous protocolaire qui est utilisé par les outils d'aide à la conception de circuits synchrones. Pour chaque cellule d'une bibliothèque utilisée pour 5 la conception de circuits synchrones ou asynchrones, il est défini des chemins internes à la cellule, et pour chaque chemin interne, il est défini des paramètres qui caractérisent la propagation de signaux sur ce chemin interne. Un chemin interne est un chemin de propagation d'un signal entre une borne 10 d'entrée de la cellule recevant en fonctionnement un signal et une borne de sortie de la cellule fournissant en fonctionnement un signal. La figure 21 représente de façon schématique une cellule 114 classique de bibliothèque d'un élément de rendez- 15 vous protocolaire comprenant à titre d'exemple deux bornes d'entrée A et B, une borne Rst de réception du signal de réinitialisation Reset, une borne Ra de réception du signal d'acquittement Rack, une borne EN de réception du signal Enable et une borne de sortie Z. Selon le type de pipeline auquel est 20 associée la cellule 114, les bornes EN et/ou Rst peuvent ne pas être présentes. Dans le présent exemple, la cellule 114 comprend deux bornes d'entrée A et B. Toutefois, il est clair que la cellule 114 peut comprendre un nombre d'entrées plus important. Un premier chemin interne 116 relie la borne d'entrée 25 A à la borne sortie Z et est noté A->Z. Un second chemin interne 118 relie la borne d'entrée B à la borne de sortie Z et est noté B->Z. Un troisième chemin interne 120 relie la borne Ra à la borne de sortie Z et est noté Ra->Z. Un quatrième chemin interne 122 relie la borne EN à la borne de sortie et est noté EN->Z. Un 30 cinquième chemin interne 124 relie la borne Rst à la borne de sortie Z et est noté Rst->Z. Lorsque les bornes Rst et/ou EN ne sont pas présentes, le quatrième chemin interne 122 et/ou le cinquième chemin interne 124 ne sont pas présents. Pour chaque chemin interne, le modèle associé à la 35 cellule indique des valeurs pour plusieurs paramètres de B11577FR - DD13404 ST 25 propagation de signaux dans différentes conditions de fonctionnement de la cellule. Quatre paramètres Dr, Df, Ir et If sont généralement définis pour chaque chemin interne : le paramètre Dr est égal au délai qui s'écoule pour 5 que le signal à la sortie du chemin interne passe de "0" à lorsque le signal à l'entrée du chemin interne passe de "0" à !!1 V/ ; le paramètre Df est égal au délai qui s'écoule pour que le signal à la sortie du chemin interne passe de "1" à 10 lorsque le signal à l'entrée du chemin interne passe de "1" à IYOYI le paramètre Tr est égal au rapport entre la durée de passage du signal à la sortie du chemin interne de "0" à "1" et la durée de passage du signal à l'entrée du chemin interne de 15 "0" à "1" lorsque le signal à l'entrée du chemin interne passe de "0" à "1" et que le signal à la sortie du chemin interne passe de "0" à "1" ; et le paramètre If est égal au rapport entre la durée de passage du signal à la sortie du chemin interne de "1" à "0" et 20 la durée de passage du signal à l'entrée du chemin interne de à "0" lorsque le signal à l'entrée du chemin interne passe de "1" à "0" et que le signal à la sortie du chemin interne passe de "1" à Les paramètres Dr, Df, Ir et If sont donnés à titre 25 d'exemple. D'autres paramètres peuvent être utilisés en plus des paramètres Dr, Df, Ir et If ou à la place des paramètres Dr, Df, Tr et If. Pour chacun de ces paramètres, le modèle de la cellule 114 comprend une matrice qui contient un nombre P*Q de valeurs 30 du paramètre déterminées pour un nombre P de durées Ai de transitions du signal à la borne d'entrée du chemin interne et un nombre Q de capacités Capj d'une charge connectée à la borne de sortie du chemin interne, i étant un nombre entier variant de 1 à P et j étant un nombre entier variant de 1 à Q. A titre 35 d'exemple, on appelle ii)Z) l'élément de la matrice du 1,j B11577FR - DD13404 ST 26 paramètre Dr pour le chemin A->Z aux indices i et j. Les matrices peuvent être déterminées par des simulations ou des essais. Un exemple de réalisation de la présente invention 5 comprend, pour au moins certains éléments de rendez-vous protocolaires du circuit asynchrone à synthétiser, de modifier les cellules de la bibliothèque associées à ces éléments de rendez-vous protocolaires en utilisant un nouveau modèle de paramètres de propagation de signaux internes de façon que ces 10 éléments de rendez-vous protocolaires soient considérés, par les outils d'aide à la conception, comme des éléments cadencés par un signal d'horloge. La figure 22 représente de façon schématique une cellule 125 de bibliothèque selon l'invention qui est utilisée à 15 la place de la cellule 114. La présente invention prévoit de créer une borne R et de remplacer les chemins A->Z, B->Z, Ra->Z, et EN->Z (respectivement les chemins 116, 118, 120 et 122 en figure 21) par les chemins A->R, B->R, Ra->R, EN->R, Ra->R et R->Z dans le modèle de la cellule 125 (respectivement les chemins 20 126, 128, 130, 132 et 134 en figure 22). La borne R peut être une borne qui n'existe pas sur la cellule 114. C'est le cas, par exemple, lorsque la cellule 114 ne comprend pas de borne RST. A titre de variante, lorsque la cellule 114 reçoit un signal de réinitialisation à la borne Rst, 25 la borne R peut correspondre à la borne Rst. Le chemin Rst->Z 124 est alors remplacé par le chemin R->Z 134. La borne R est indiquée dans le modèle de la cellule comme une borne destinée à recevoir un signal d'horloge. Des chemins entre les éléments de rendez-vous protocolaires ainsi 30 définis peuvent alors être déterminés automatiquement par l'outil d'aide à la conception dans la mesure où l'outil considère que les éléments de rendez-vous protocolaires sont des éléments cadencés par un signal d'horloge. Pour le chemin R->Z, on utilise les paramètres r(R Z) bf(R Z) Z) 'e(R-3Z) 35 et qui sont dé b finis comme les B11577FR - DD13404 ST 27 paramètres Dr, Df, Tr, If décrits précédemment. Les paramètres ^ f(R Z) ^ r(R Z) ^ f(R Z) Dr(R , D , T et T dépendent de la capacité de la charge connectée à la borne de sortie du chemin interne. Pour les chemins internes A->R, B->R, Ra->R et 5 éventuellement EN->R, on définit un paramètre 'Sr qui correspond au délai qui s'écoule pour qu'un signal fictif d'horloge à la sortie du chemin interne passe de "0" à "1" lorsque le signal à l'entrée du chemin interne passe de "0" à "1". On définit également un paramètre e qui correspond au délai qui s'écoule 10 pour qu'un signal fictif d'horloge à la sortie du chemin interne passe de "1" à "0" lorsque le signal à l'entrée du chemin passe - -f de "1" à "0". Les paramètres S r et S dépendent de la durée de transition du signal à l'entrée du chemin interne. La figure 23 représente, sous la forme d'un schéma par 15 blocs, un exemple de réalisation du procédé de détermination des R) matrices des paramètres, associés à la cellule 125, s ^ f(A R) ^ r(B R) ^ f(B R) ^ r(Ra -> R) ^ f(Ra -> R) ^ r(EN -> R) ^ f(EN-> R) ^r(R Z) ^ f(R Z) ^ r(R Z) D , D , T et r'tf(R-3Z) , A l'étape 140, l'un des chemins A->Z, B->Z, Ra->Z ou 20 EN->Z de la cellule 114 est sélectionné. A titre d'exemple, dans la suite de la description, le chemin interne A->Z est sélectionné. Lorsque la borne EN est présente, ce qui est notamment le cas des cellules des blocs fonctionnels 28 des pipelines PCFB et PCHB, le chemin interne EN->Z peut être 25 avantageusement sélectionné. A l'étape 142, une durée AI de transition du signal à l'entrée du chemin interne est sélectionnée parmi les P durées et une capacité Capj est sélectionnée parmi les Q capacités. Ceci revient à sélectionner la rangée I et la colonne J dans les 30 matrices des paramètres associés à la cellule 114. La sélection de la durée AI et de la capacité Capj peut être arbitraire ou dépendre de l'utilisation prévue de l'élément de rendez-vous protocolaire.
B11577FR - DD13404 ST 28 A l'étape 144, pour le chemin R->Z, les paramètres sont déterminés selon les relations suivantes pour j variant de 1 à Q : ^ r(R Z) -nr(AZ) Dj ^f(RZ) f(AZ) D = DI,j ^ r(R Z) = 1r(AZ) Tj ^f(RZ) = f(AZ) TI,j Dans le cas où la borne R correspond à la borne Rst, il n'est donc pas tenu compte des paramètres qui sont 10 normalement associés au chemin Rst->Z dans le modèle de la cellule 114. A l'étape 146, pour chaque chemin A->R, B->R, Ra->R et -f - éventuellement EN->R les paramètres S et S r sont déterminés selon les relations suivantes pour i variant de 1 à P : ^r(Ra-> R) Dir( jRa-> Z) jr(R-> Z) Si ^f(Ra-> R) Df (Rja-> Z) ^f(R-> Z) . Si - Dj §r ( EN -> R) Dir(EJN-> Z) fIrj(R-> Z) 20 §if(EN-> R) -,f(EN-> Z) flof(R-> Z) jJ §r (A -> R) -r (A-> Z) (A-> Z) Ji,j §f (A-> R) (A, Z) Z) L)j La figure 24 illustre des exemples de chemins 148, 150, 152, 154 qui peuvent être utilisés lors de la mise en 25 oeuvre d'un algorithme d'optimisation d'un outil d'aide à la conception du circuit intégré synchrone en remplacement du chemin 112 de la figure 20. Les chemins 148, 150, 152 et 154 R) Si R) ^ f (R-> Z) - Dj 15 B11577FR - DD13404 ST 29 peuvent être automatiquement délimités par un outil d'aide à la conception de circuit intégré synchrone qui considère pour chaque élément de rendez-vous protocolaire, dans cet exemple le bloc fonctionnel 28 de chaque étage 26, les chemins internes A->R, B->R, Ra->R et EN->R et R->Z tels que définis précédemment et qui considère que l'élément de rendez-vous protocolaire est cadencé par un signal d'horloge fictif qui serait reçu par la borne R. La figure 25 représente deux étages du pipeline 110 de la figure 24. Deux chemins 150 et 156 particuliers sont représentés. Le chemin 156 débute à la borne R d'une cellule du bloc fonctionnel 28 d'un étage 26 puis passe successivement par la borne Z de la cellule du bloc fonctionnel 28 de l'étage 26, par le bloc de détection amont 30 de l'étage 26 suivant, le bloc de synchronisation 34 de l'étage 26 suivant, la borne EN d'une cellule du bloc fonctionnel 28 de l'étage 26 suivant et se termine à la borne R de la cellule du bloc fonctionnel 28 de l'étage 26 suivant. Le chemin 150 débute à la borne R d'une autre cellule du bloc fonctionnel 28 de l'étage 26 puis passe successivement par la borne Z de la cellule du bloc fonctionnel 28 de l'étage 26, par la borne A d'une cellule du bloc fonctionnel 28 de l'étage 26 suivant et se termine à la borne R de la cellule du bloc fonctionnel 28 de l'étage 26 suivant. Le chemin 156 est présent lorsque la borne EN est présente. C'est notamment le cas des pipelines PCHB et PCFB décrits précédemment. Les chemins 150 et 156 forment une fourche isochrone. Etant donné le fonctionnement des pipelines, le signal empruntant le chemin 150 doit arriver à la borne A avant que le 30 signal empruntant le chemin 156 ne parvienne à la borne EN. Selon une variante de réalisation, pour réduire les risques que le signal empruntant le chemin 156 ne parvienne à la borne EN avant que le signal empruntant le chemin 150 n'arrive à -f - la borne A, les paramètres S et S r pour les chemins A->R et 35 B->R de la cellule 125 sont déterminés selon les relations B11577FR - DD13404 ST 30 décrites précédemment en ajoutant néanmoins une marge de sécurité strictement positive, la détermination des autres chemins EN->R et Ra->R n'étant pas modifiée. A titre d'exemple, en considérant que le chemin EN->R est le chemin de référence, l'expression des paramètres pour le chemin B->R est la suivante : §ir (B-> R) D j r (B-> Z) (R-> Z) + M arg in où Margin correspond à la marge de sécurité et est un nombre réel supérieur ou égal à zéro. La marge de sécurité Margin peut être une constante strictement positive égale pour les chemins A->R et B->R de toutes les cellules des blocs fonctionnels 28 du pipeline. La marge de sécurité peut être une valeur strictement positive qui dépend de la cellule considérée. A titre d'exemple, la marge de sécurité peut dépendre de la durée A de transition du niveau bas au niveau haut ou du niveau haut au niveau bas du signal d'horloge déclarée sur la borne R, qui n'est pas utilisée par ailleurs dans le calcul des autres paramètres. Pour toutes les cellules 125 pour lesquelles la borne R ne correspond pas à la borne Rst, la durée A peut correspondre à la durée pour le même type de transition (du niveau bas au niveau haut ou du niveau haut au niveau bas) pour toutes ces cellules. Pour toutes les cellules 125 pour lesquelles la borne R correspond à la borne Rst, qui en fonctionnement reçoit le signal de réinitialisation Reset, la réinitialisation peut être réalisée pour certaines cellules lorsque le signal de réinitialisation Reset passe du niveau haut au niveau bas (premier type de transition) et peut être réalisée pour d'autres cellules lorsque le signal de réinitialisation Reset passe du niveau bas au niveau haut (second type de transition). Dans ce cas, pour les cellules qui en fonctionnement sont réinitialisées par le premier type de transition du signal de réinitialisation Reset, la durée A peut correspondre à la durée pour un même type de transition du signal d'horloge (qui peut être du premier type ou du second type de transition). Pour les cellules qui en fonctionnement sont réinitialisées par le second type de B11577FR - DD13404 ST 31 transition du signal de réinitialisation Reset, la durée A peut correspondre à la durée pour le type opposé de transition du signal d'horloge. La figure 26 représente, sous la forme d'un schéma par 5 blocs, un exemple de réalisation d'un procédé de conception d'un circuit intégré asynchrone qui met en oeuvre un outil d'aide à la conception de circuits intégrés synchrones. L'outil d'aide à la conception de circuits intégrés synchrones peut être réalisé par la voie matérielle, c'est-à-dire par un circuit électronique 10 dédié. A titre de variante, l'outil d'aide à la conception de circuits intégrés synchrones peut être mis en oeuvre au moins en partie par l'exécution par un calculateur d'instructions d'un programme d'ordinateur par exemple stocké dans une mémoire. A l'étape 160 (Initial Design), le circuit asynchrone 15 est conçu dans un langage de haute définition, puis synthétisé, pour obtenir, de façon classique, des fichiers de listes d'interconnexion qui sont indépendants de la technologie utilisée. A l'étape 162 (Pseudo-Synchronous Elements), les 20 cellules 125 telles que définies précédemment sont sélectionnées pour certains éléments de rendez-vous protocolaires du circuit à réaliser. Un signal d'horloge factice est prévu comme étant reçu par la borne R des éléments de rendez-vous protocolaires sélectionnés. La sélection des éléments de rendez-vous 25 protocolaire dépend de la structure du pipeline. A titre d'exemple, dans le cas d'un pipeline asynchrone, les éléments de rendez-vous protocolaires peuvent comprendre les cellules 29 du bloc fonctionnel 28 de chaque étage du pipeline. Lorsque l'élément de rendez-vous protocolaire comprend 30 une borne Rst recevant un signal de réinitialisation, la borne R tel que définie précédemment peut correspondre à la borne Rst de l'élément de rendez-vous protocolaire. Lorsque l'élément de rendez-vous protocolaire ne comprend pas de borne recevant un signal de réinitialisation spécifique, la borne R est alors une 35 borne fictive qui n'a pas d'existence physique.
B11577FR - DD13404 ST 32 La période du signal d'horloge factice est fixée en fonction des performances visées pour le circuit asynchrone. Par exemple, elle peut être fixée au quart du temps de cycle visé pour le circuit asynchrone. A titre de variante, la période du 5 signal d'horloge peut être fixée à 0 seconde. La durée de transition A du signal d'horloge peut être fixée à une valeur correspondant à la marge de sécurité pour la fourche isochrone entre les chemins 150 et 156. A titre de variante, la durée de transition du signal d'horloge peut prendre une valeur 10 quelconque, lorsqu'il n'est pas souhaité de contrôler de marge de sécurité. A l'étape 164 (Technology Mapping), un procédé de mise en correspondance technologique est effectué en utilisant les cellules de la bibliothèque dont notamment les cellules de 15 l'invention. A l'étape 166 (Placement) et aux étapes 168 et 170 suivantes, un procédé de placement et de routage est mis en oeuvre. Les fichiers de liste d'interconnexion peuvent être modifiés de façon importante. A cette étape, les outils d'aide à 20 la conception répartissent les éléments de rendez-vous protocolaires et les dimensionnent en fonction des besoins de façon à minimiser les chemins temporels de progression des données et des acquittements. En outre, les portions de logiques combinatoires peuvent être optimisées jusqu'à ce que les durées 25 de propagation satisfassent les contraintes pseudo-synchrones. A l'étape 168 (Clock Tree Synthesis), un procédé de conception d'un arbre d'horloge factice est mis en oeuvre. Dans le cas où la borne R des éléments de rendez-vous protocolaires sélectionnés correspond à la borne Rst destinée à recevoir en 30 fonctionnement un signal de réinitialisation Reset, l'arbre d'horloge synthétisé correspond au réseau de transmission du signal de réinitialisation Reset des éléments de rendez-vous protocolaires. En effet, le signal Reset a été considéré comme un signal d'horloge factice et jusqu'à cette étape, un arbre 35 d'horloge idéal sans délai de propagation a été considéré. Le B11577FR - DD13404 ST 33 réseau de transmission du signal de réinitialisation Reset est déterminé en créant un arbre d'horloge avec des contraintes faibles quant à la durée de propagation du signal d'horloge depuis le circuit de génération d'horloge jusqu'aux éléments de 5 rendez-vous protocolaires et quant au décalage de l'arrivée du signal d'horloge entre différents éléments de rendez-vous protocolaires. Lorsque la borne R des éléments de rendez-vous protocolaires n'a pas d'existence physique, aucun arbre d'horloge n'est à synthétiser. Dans ce but, il suffit d'indiquer 10 que le signal d'horloge est produit directement au niveau de la borne R de chaque élément de rendez-vous protocolaire. A l'étape 170 (Routing), une fois que l'arbre d'horloge est conçu, le procédé peut continuer l'optimisation du circuit. Toutefois, les algorithmes d'optimisation mis en oeuvre 15 après l'étape de conception de l'arbre d'horloge continuent à considérer, de façon avantageuse, que le signal de réinitialisation est un signal d'horloge idéal, sans décalage. A l'étape 172 (Validation), toutes les étapes de vérification sont réalisées avec les véritables modèles 20 asynchrones (associés aux cellules 114) pour les éléments de rendez-vous protocolaires. Des modes de réalisation particuliers de la présente invention ont été décrits. Diverses variantes et modifications apparaîtront à l'homme de l'art. En particulier, des exemples de 25 réalisation de pipelines asynchrones linéaires ont été décrits. Toutefois, la présente invention peut également être mise en oeuvre pour la conception de pipelines asynchrones non linéaires. En outre, en figure 19, une cellule de bloc fonctionnel 28 réalisant une fonction logique OU a été décrite.
30 Toutefois, il est clair que la cellule peut réaliser une autre fonction logique, par exemple une fonction logique ET, NON ET, NON OU, etc. ou tout autre fonction de logique combinatoire. De plus, la présente invention a été décrite pour la conception d'un circuit intégré asynchrone. Elle peut bien-sûr être mise en 35 oeuvre pour la conception d'un circuit intégré comprenant des B11577FR - DD13404 ST 34 parties de circuit synchrones et des parties de circuit asynchrones. Divers modes de réalisation avec diverses variantes ont été décrits ci-dessus. On notera que l'homme de l'art pourra 5 combiner divers éléments de ces divers modes de réalisation et variantes sans faire preuve d'activité inventive.

Claims (8)

  1. REVENDICATIONS1. Procédé de conception d'un circuit intégré asynchrone (20), mis en oeuvre par l'exécution par un calculateur d'instructions d'un programme d'ordinateur, à partir d'une bibliothèque de cellules comprenant au moins une cellule (125) dont des paramètres de propagation de signal entre une première borne (A) et une deuxième borne (R) et entre la deuxième borne (R) et une troisième borne (Z) sont fonction du paramètre de propagation de signal entre la première borne et la troisième borne, le procédé comprenant les étapes suivantes : synthétiser un circuit intégré synchrone correspondant au circuit intégré asynchrone en utilisant ladite cellule (125) pour représenter une portion (29 ; 40, 50, 52) du circuit asynchrone et dans lequel ladite cellule est cadencée par un signal d'horloge fictif ; et vérifier le circuit intégré synthétisé en utilisant le paramètre de propagation de signal entre la première borne et la troisième borne pour simuler le fonctionnement de ladite portion du circuit asynchrone.
  2. 2. Procédé selon la revendication 1, dans lequel la bibliothèque de cellules comprend, pour ladite cellule (125), une indication que la deuxième borne (R) est destinée à recevoir un signal fictif d'horloge au cours de la conception du circuit intégré asynchrone par un outil d'aide à la conception de circuits synchrones.
  3. 3. Procédé selon la revendication 1 ou 2, dans lequel la cellule (125) est représentative d'une portion du circuit asynchrone (28), la deuxième borne (R) étant destinée, en fonctionnement, à recevoir un signal de réinitialisation (Reset) de la portion de circuit (37, 38 ; 51, 52 ; 68, 70).
  4. 4. Procédé selon la revendication 1 ou 2, dans lequel la cellule (125) est représentative d'une portion (28) du circuit asynchrone, la deuxième borne (R) ne correspondant pas à une borne physique de la portion destinée, en fonctionnement, à fournir ou à recevoir des signaux.B11577FR - DD13404 ST 36
  5. 5. Procédé selon l'une quelconque des revendi- cations 1 à 4, dans lequel la cellule (102) comprend un premier paramètre de propagation de signal de la première borne (A) à la deuxième borne (12) et un deuxième paramètre de propagation de 5 signai de la deuxième borne à la troisième borne (Z), les premier et deuxième paramètres étant obtenus à partir d'un troisième paramètre de propagation de signal de la première borne à la troisième borne, dans laquelle le troisième paramètre correspond à une matrice d'éléments Dirl-+Z) où i est un entier 10 variant de 1 à P et j est un entier variant de 1 à Q, dans laquelle le deuxième paramètre correspond à une matrice d'éléments 15r(R- Z) obtenus selon la relation suivante : D R^r.( ->Z) = Dr(A--->Z) I étant un entier naturel choisi entre 1 et P, et dans laquelle 15 le premier paramètre correspond à une matrice d'éléments S^r(A->R) obtenus selon la relation suivante : R) = Dr( Z) A'r(A->Z) Si uj J étant un entier naturel choisi entre 1 et Q.
  6. 6. Procédé selon les revendications 2 et 5, dans 20 lequel la cellule (102) comprend, en outre, une quatrième borne (B), un quatrième paramètre de propagation de signal de la quatrième borne à la troisième borne (Z) correspondant à une matrice d'éléments Dri(B- Z), la bibliothèque comprenant, en rj outre, un cinquième paramètre de propagation de signal de la 25 quatrième borne à la deuxième borne (R), le cinquième paramètre correspondant à une matrice d'éléments Si obtenus selon la relation suivante : (B-> R) Dri,(Bj-> Z) Z) M arg in où Margin est un nombre réel supérieur ou égal à zéro, qui est 30 constant indépendamment de i ou qui dépend de la durée de transition du signal fictif d'horloge sur la deuxième borne.
  7. 7. Procédé selon la revendication 5, dans lequel la première borne (Pi) est, en fonctionnement, une borne de.B11577FR - DD13404 ST 37 réception d'un premier signal alternant entre deux états, dans laquelle la troisième borne (Z) est, en fonctionnement, une borne de fourniture d'un second signal alternant entre deux états et dans laquelle le troisième paramètre correspond à la durée entre un changement d'état du premier signal et un changement d'état du second signal.
  8. 8. Procédé selon la revendication 1, dans lequel la deuxième borne (R) correspond à la borne de la portion (29 ; 40, 50, 52) du circuit asynchrone (20) destinée, en fonctionnement, à recevoir un signal de réinitialisation (Reset) de ladite portion du circuit asynchrone, le procédé comprenant une étape de conception d'un arbre d'horloge pour transmettre le signal d'horloge fictif jusqu'à ladite portion du circuit asynchrone, l'arbre d'horloge étant utilisé en fonctionnement conne un réseau de distribution du signal de réinitialisation jusqu'à ladite portion du circuit asynchrone.
FR1254127A 2012-05-04 2012-05-04 Bibliotheque de cellules et procede de conception d'un circuit integre asynchrone Withdrawn FR2990283A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR1254127A FR2990283A1 (fr) 2012-05-04 2012-05-04 Bibliotheque de cellules et procede de conception d'un circuit integre asynchrone
EP13723839.0A EP2845131A2 (fr) 2012-05-04 2013-04-22 Bibliothèque de cellules et procédé de conception d'un circuit intégré asynchrone
PCT/FR2013/050875 WO2013164528A2 (fr) 2012-05-04 2013-04-22 Bibliothèque de cellules et procédé de conception d'un circuit intégré asynchrone
US14/395,344 US9430600B2 (en) 2012-05-04 2013-04-22 Cell library and method for designing an asynchronous integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1254127A FR2990283A1 (fr) 2012-05-04 2012-05-04 Bibliotheque de cellules et procede de conception d'un circuit integre asynchrone

Publications (1)

Publication Number Publication Date
FR2990283A1 true FR2990283A1 (fr) 2013-11-08

Family

ID=46826648

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1254127A Withdrawn FR2990283A1 (fr) 2012-05-04 2012-05-04 Bibliotheque de cellules et procede de conception d'un circuit integre asynchrone

Country Status (4)

Country Link
US (1) US9430600B2 (fr)
EP (1) EP2845131A2 (fr)
FR (1) FR2990283A1 (fr)
WO (1) WO2013164528A2 (fr)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9520180B1 (en) 2014-03-11 2016-12-13 Hypres, Inc. System and method for cryogenic hybrid technology computing and memory
US9576094B2 (en) * 2014-08-20 2017-02-21 Taiwan Semiconductor Manufacturing Company, Ltd. Logic circuit and system and computer program product for logic synthesis
US11550982B2 (en) * 2015-11-04 2023-01-10 Chronos Tech Llc Application specific integrated circuit interconnect
US9977853B2 (en) 2015-11-04 2018-05-22 Chronos Tech Llc Application specific integrated circuit link
US10073939B2 (en) 2015-11-04 2018-09-11 Chronos Tech Llc System and method for application specific integrated circuit design
US10181939B2 (en) 2016-07-08 2019-01-15 Chronos Tech Llc Systems and methods for the design and implementation of an input and output ports for circuit design
US10797706B2 (en) * 2016-12-27 2020-10-06 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
US10637592B2 (en) 2017-08-04 2020-04-28 Chronos Tech Llc System and methods for measuring performance of an application specific integrated circuit interconnect
US11087057B1 (en) 2019-03-22 2021-08-10 Chronos Tech Llc System and method for application specific integrated circuit design related application information including a double nature arc abstraction

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6130475A (en) * 1993-12-07 2000-10-10 International Business Machines Corporation Clock distribution system for synchronous circuit assemblies
US6166963A (en) * 1998-09-17 2000-12-26 National Semiconductor Corporation Dual port memory with synchronized read and write pointers
JP2003503791A (ja) * 1999-06-26 2003-01-28 セイ−ヤン ヤン、 入出力探針装置及びこれを用いた入出力探針方法と、これを基盤とする混合エミュレーション/シミュレーション方法
AU6792000A (en) * 1999-08-19 2001-03-13 Massachusetts Institute Of Technology Synchronous circuit synthesis using an asynchronous specification
US6597664B1 (en) * 1999-08-19 2003-07-22 Massachusetts Institute Of Technology Digital circuit synthesis system
FR2815197B1 (fr) * 2000-10-06 2003-01-03 St Microelectronics Sa Circuit asynchrone pour la detection et la correction de l'erreur induite et procede de mise en oeuvre
US7418676B2 (en) * 2005-01-19 2008-08-26 Seiko Epson Corporation Asynchronous circuit design tool and computer program product
US7647567B1 (en) * 2005-01-31 2010-01-12 Bluespec, Inc. System and method for scheduling TRS rules
US7610567B2 (en) * 2006-04-27 2009-10-27 Achronix Semiconductor Corporation Systems and methods for performing automated conversion of representations of synchronous circuit designs to and from representations of asynchronous circuit designs
FR2901437B1 (fr) * 2006-05-16 2008-08-08 Arteris Sa Procede de realisation d'un circuit de synchronisation de donnees echangees de maniere asynchrone entre deux blocs synchrones, et circuit de synchronisation elabore a partir d'un tel procede
US8065647B2 (en) * 2007-10-19 2011-11-22 The University Of Utah Research Foundation Method and system for asynchronous chip design
WO2009126880A2 (fr) * 2008-04-10 2009-10-15 University Of Southern California Circuits asynchrones sensibles à une puissance
WO2009132282A1 (fr) * 2008-04-24 2009-10-29 University Of Southern California Optimisation de groupage et de sortance de circuits asynchrones
JP5409231B2 (ja) * 2008-09-26 2014-02-05 株式会社半導体エネルギー研究所 設計システム
US8161435B2 (en) * 2009-07-20 2012-04-17 Achronix Semiconductor Corporation Reset mechanism conversion
US8301933B2 (en) * 2009-09-14 2012-10-30 Achronix Semiconductor Corporation Multi-clock asynchronous logic circuits
US8661378B2 (en) * 2009-09-30 2014-02-25 Achronix Semiconductor Corporation Asychronous system analysis

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
No Search *

Also Published As

Publication number Publication date
EP2845131A2 (fr) 2015-03-11
US20150121324A1 (en) 2015-04-30
US9430600B2 (en) 2016-08-30
WO2013164528A2 (fr) 2013-11-07

Similar Documents

Publication Publication Date Title
FR2990283A1 (fr) Bibliotheque de cellules et procede de conception d'un circuit integre asynchrone
CN103324774B (zh) 一种基于时钟规划偏差算法的处理器性能优化方法
US7061823B2 (en) Limited output address register technique providing selectively variable write latency in DDR2 (double data rate two) integrated circuit memory devices
US10551869B2 (en) Clock skewing strategy to reduce dynamic power and eliminate hold-time violations in synchronous digital VLSI designs
FR2978289A1 (fr) Dispositif ayant un mode de retention de donnees et un mode de traitement de donnees
WO2011150172A1 (fr) Procédé et appareil de conversion parallèle-série de valeurs d'entrée de données parallèles
WO2012123243A1 (fr) Systeme mono-puce comprenant un coeur programmable synthetisable et un procede de fabrication d'un tel systeme
EP1869545B1 (fr) Dispositif implementant la multiplication modulaire de montgomery
EP0437876B1 (fr) Multiplieur série programmable
CN112906338B (zh) 对物理分区结构进行时钟设计的方法、系统和介质
Albrecht et al. Maximum mean weight cycle in a digraph and minimizing cycle time of a logic chip
EP3025161B1 (fr) Procede automatise d'analyse d'une carte portant plusieurs composants de type fpga
Ferretti Single-track asynchronous pipeline template
EP0927928B1 (fr) Procédé de production amélioré d'un paramètre JO associé à la mise en oeuvre d'opérations modulaires selon la méthode de Montgomery
FR2914525A1 (fr) Procede de simulation transactionnelle d'un modele generique de noeud de communication, produit programme d'ordinateur et moyen de stockage correspondants
JP2006253242A (ja) 半導体集積回路装置及びその設計法
FR2919941A1 (fr) Dispositif de test de circuit analogique
TWI273366B (en) Signal balancing between voltage domains
Chakrabarti Clock tree skew minimization with structured routing
FR3107127A1 (fr) Procédé et dispositif de conception d’un circuit mémoire calculatoire
FR2855627A1 (fr) Circuit integre et procede pour le faire fonctionner
US20150032931A1 (en) Synchronous Bus Width Adaptation
FR2996968A1 (fr) Circuit de protection de rapport cyclique
KR20190125099A (ko) 클락 네트워크를 포함하는 집적 회로를 제조하기 위한 장치 및 방법
Calazans et al. Asynchronous Circuit Principles and a Survey of Associated Design Tools

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20150130