FR 2535087 A1 19840427 FR 8316833 A 19831021 La présente invention concerne un appareil de simu- lation logique, par exemple pour le contrôle à grande vi- tesse par simulation d'un projet de circuit ou d'un projet de composant LSI (circuit d'intégration poussée) et VLSI (circuit d'intégration très poussée) Le circuit peut être agencé pour fonctionner par l'intermédiaire d'un calcula- teur principal sur un réseau de télécommunications, à distance de l'appareil de simulation Des calculateurs universels simulent actuellement un projet en utilisant des programmes de calculateurs et l'invention concerne un appareil de simulation câblé pour simuler le fonction- nement d'un projet logique donné afin de le vérifier. R Barto et ses collaborateurs décrivent dans "A Computer Architecture for Digital Logic Simulation" Elec- tronic Engineering, Septembre 1980, page 35, un projet câblé orienté sur des cycles logiques commandés par câble et Angus R McKay dans "Comment on 'Computer-aided Design: Simulation of Digital Design Logic'" IEEE Transactions on Computers, Septembre 1969, page 862 décrit des résul- tats d'essais sur un ensemble câblé. L'industrie des semi-conducteurs continue à progres- ser en offrant la possibilité de placer des nombres de plus en plus grands de composants ou de portes logiques sur une pastille, avec une progression moyenne qui s'ap- proche du doublement par année De façon similaire, les technologies d'équipement des pastilles se développent avec une augmentation considérable de la densité des pas- tilles qui peuvent être équipées dans différents modules d'équipement physique Ces effets entrainentun courant permanent de possibilités améliorées de réalisations de systèmes qui sont si considérables qu'elles sont diffici- les à associer ou à comparer avec les conceptions et les méthodologies de conception antérieure. Malheureusement, ces nouvelles technologies imposent continuellement des techniques de conception perfectionnée et des outils de conception afin d'attaquer les différents problèmes complexes de gestion qu'elles entrainent Plus particulièrement, la vérification d'un projet, l'implan- tation physique, les interconnexions et les essais doi- vent se faire sur des pastilles ou autres modules physi- ques Il a été déterminé analytiquement et empiriquement que l'importance de ces taches croit à peu près en expo- nentielle avec le nombre des composants par pastille ou par module L'invention concerne donc la partie de véri- fication de projet de ce problème. Si l'on considère le problème de vérification du projet d'une simple pastille LSI ou VLSI, deux analogies peuvent être tirées La première est assez évidente et relie le problème de vérification d'une unité centrale de traitement complète (CPU) à celui de la vérification d'une pastille La vérification d'un nouveau projet dont la complexité est telle qu'il cohporte environ 100 000 portes logiques est une tache connue Les plus petites machines, CYBER 170 de Control Data Corporation sont de cette taille L'opération de vérification consiste à dérouler des milliers de lignes de logiciels de diagnos- tics suivi par un logiciel d'application réelle de traite- ment de fonctionnement de machine Le résultat de cette vérification est quoiment une liste de modifications de conception dont le nombre peut facilement atteindre des centaines. Des pastilles d'unité centrale de traitement à 32 bits sont actuellement en étude, en utilisant la techno- logie de traitement actuelle, atteignant moins de la reoi- tié de cette complexité La vérification de ces pastilles se fait en utilisant un programme de calculteur de simu- lation qui reproduit aussi étroitement que possible le fonctionnement dftaillé de ces pastilles dans le but de découvrir des problèmes de conception avant que les pas- tilles ne soient fabriquées Il semble que le nombre des cas d'essais nécessaires pour vérifier une seule pastille d'unité centrale de traitement doit s'approcher de celui correspondant à des projets de calculateurs complets de complexité presque semblable si un niveau équivalent de 25350 e 7 -3- vérification doit être obtenu. Un algorithme de calculateur est actuellement utilisé comme un simulateur de haute performance et qui donne des projets exempts d'erreur àune vitesse de 9 bons projets pour 10 pastilles A ce point, la seconde analogie peut être tirée, reliant le problème de vérification à celui de rendement physique du traitement des pastilles de si- licium Pour un procédé de fabrication donné, il existe une densité statistique donnée de fautes considérées com- me fautes par unité de surface Le rendement d'une pastil- le avec une surface donnée est une formule complexe mais un effet essentiel est que le rapport entre les pastilles défectueuses et le nombre total despastilles par plaquet- te de silicium augmente en exponentielle avec la surface des pastilles Le "procédé" de conception produit actuel- lement un "rendement" de 90 % d'une "surface" de 250 por- tes par pastille En utilisant le même "procédé" de con- ception et en augmentant la "surface" à 5 000 portes il résulte un "rendement" qui s'approche de zéro Cela im- plique que les procédés de conception qui reposent for- tement sur l'utilisation du simulateur ont besoin d'une amélioration considérable si l'on veut compter effective- ment avec des pastilles de cette complexité Les analo- gies sont rarement totalement exactes mais même si elles ne sont que partiellement correctesles effets prévisi- bles sont plutôt sévères. L'état actuel de la technique de simulation permet à une simulation logique de fonctionner a une vitesse de 90 000 événements logiques de commutation par seconde. A cette vitesse, il faudrait plusieurs jours de simula- tion continue pour simuler une seconde d'activité réelle d'une unité centrale de traitement de dimensions modestes. En outre, cette simulation nécessite un très gros calcu- lateur pour fonctionner à cette vitesse Un tel systme est coteux et assez mal commode à utiliser en raison de l'environnement d'exécution par lots du programme de simulation et du partage couramment nécessaire des res- -4- sources du calculateur Cet inconvénient est souvent sous- estimé car les techniciens ont appris à l'accepter, ne percevant aucune autre option Il semnble que cela a un effet notable sur les temps de conception et la créati- S vité des concepteurs dans le monde réel. La vitesse d'exécution d'un simulateur est un but technique essentiel en raison de la nécessité de passer par un très grand nombre de cas d'essais en vue de la vérification finale d'un circuit logique ou d'un projet de pastille, et pour permettre une vitesse de réponse in- teractive pour le même calculateur pour de plus petites taches, en même temps Une réponse réellement interactive devrait permettre à un simulateur d'être utiliser comme un outil d'optimisation de projet siil est cou Plé avec un système d'entrée logique graphique. Des problèmes se posent également lorsque l'on tente d'appliquer des simulateurs développés pour des technolo- gies de semi-conducteurs bipolaires aux nouvelles techno- logies MOS (métal-oxyde-semi-conducteur) Ces simulateurs tendent à être insuffisants pour les caractéristiques né- cessaires des circuits MOS Une liste des caractéristiques souhaitables pour la simulation MOS est donnée ci-après, avec la possibilité de les traiter par les systèmes actuels de simulation de Control Data Corporation: CARACTERISTIQUE SYSTEME ASSIST LSISIM AFS Retard de montée et descente oui non non Signaux bidirectionnels oui non non Simulation niveau composant limité non non Modèle fautes niveau composant non La simulation au niveau composant est la possibilité de représenter des transistors individuels (NMOS, PMOS, GAAS) et des résistances pour effectuer une vérification complète et finale d'un projet et des interconnexions et pour apporter la souplesse nécessaire à des technologies conçues entièrement pour l'utilisateur Des états supplé- mentaires de simulation sont nécessaires pour représenter -5- des transistors De même, chaque état doit apporter un fac- teur de rigidité relative pour permettre de représenter des effets de charge dynamique, de démarrage et de dimen- sions variables des composants. L'invention a pour objet de proposer un appareil de simulation logique avec des caractéristiques nécessaires pour s'adapter à la technologie des projets logique, avec des performances plusieurs fois supérieures à celles des systèmes existants L'appareil de simulation logique doit offrir une capacité de simulation interactive avec des temps de réponse de seulement quelques secondes ou minu- tes, vus par l'utilisateur. Il ne semble pas qu'une augmentation de cette valeur soit possible avec de meilleurs algorithmes logiciels, de meilleures techniques de codage pour des modèles ou des processeurs principaux plus rapides du type universel Des accélérations sont possibles en réduisant des caractéris- tiques de simulation encore plus qu'aux niveaux actuels ou en négligeant complètement les effets du temps de trai- tement, mais cela n'aboutit pas au résultat voulu. La seule solution à ce problème est un élément affec- té de machine de simulation à usage spécial qui exécute directement un modèle de simulation L'algorithme de simu- lation commandé par évènements standards avec des phases discrètes sur une base de temps continu est l'algorithme le plus stable, le mieux accepté et le plus souple en utilisation Il peut être étendu aux caractéristiques MOS voulues et semble bien se prêter à une augmentation cons- dérable par une augmentation machine directe L'appareil de simulation câblé peut être entièrement commandé par câbles et sa capacité étendue dans une très large plage. La communication entre un calculateur principal et un appareil de simulation doit se faire sur un canal de données avec un débit binaire d'au moins 7 millions de bits par seconde Un débit plus élevé serait souhaitable avec une limite probable de 10 millions de bits par secon- de résultant de la limitation par la largeur de bande d'entrée/sortie du simulateur La machine doit supporter une configuration de système dans laquelle le simulateur est relié à une machine principale qui traite la base des données centrales et le reste d'un système de modèle aidé par calculateur Les utilisateurs pourraient communiquer avec le simulateur par le calculateur principal. La machine de simulation pourrait également fonction- nerdans un système distribué ou en autonome conjointement avec un certain nombre de positions de travail d'enginee- rie Dans ce mode, le prix total et le potentiel de per- formances pourraient être réalisés. Une solution de réseau local est un choix logique pour la liaison de communication entre le simulateur et les autres éléments d'ensemble Le réseau couplé libre- ment de Control Data Corporation par exemple offre da- vantage de performances qui conviennent et apportent la souplesse voulue pour l'interface avec différentes confi- gurations de calculateurs principaux ou de postes de tra- vail pouvant être conçus maintenant ou dans le futur. Un appareil de simulation selon l'invention utilise des routines secondaires ou principales qui assurent l'in- terface avec l'utilisateur et font passer des données vers et depuis les structures de table de simulation Toutes les informations nécessaires pour effectuer la simulation résident dans des tables chargées par l'extrémité fronta- le et tous les résultats résident dans des tables qui sont transférées et affichées A l'extrémité arrière La commu- nication avec le simulateur câblé peut se faire au moyen du réseau local vers et depuis un troupe similaire de ta- bles Le traitement secondaire et principal doit encore se faire en logiciel à 'l'extérieur de l'appareil de simu- lation câblé Cela offre de la souplesse à l'interface d' utilisateur, Une solution souhaitable est de restructurer l'extrémité frontale de manière à compiler à nouveau les parties des tables de simulation qui sont affectées par un changement particulier de conception De cette manière, - 7- lorsqu'un projet a été introduit, les nombreuses adjonc- tions, suppressions et modifications peuvent se faire lorsqu'elles sont nécessaires et elles peuvent être con- trôlées rapidement sans une nouvelle compilation de l'en- semble total des tables à chaque fois, comme cela se fait actuellement dans les systèmes logiciels. Bien que l'invention soit principalement orientée sur tout nouvel ensemble ou nouvelle phase, ou combinai- son d'ensembles ou de phases, et telle que décrite et re- présentée sur les dessins annexés, selon un aspect parti- culier auquel elle n'est en aucune manière limitée, elle concerne un appareil de simulation logique destiné à vé- rifier le projet de dispositifs logiques, comprenant un calculateur principal pour introduire des données dans l'appareil et pour lire des données dans l'appareil; une mémoire de "liste nette" connectée au processeur princi- pal pour recevoir des données concernant les éléments de circuit de la pastille sous contrôle; une mémoire de ta- ble de modèle qui contient des informations décrivant la fonction logique de tous les éléments de circuit du projet logique à vérifier Un premier registre pour lire le con- tenu de la mémoire de "liste nette" et de la mémoire de table de modèle, le premier registre étant connecté à la mémoire de "liste nette" et a la mémoire de table de mo- dèle; un second registre connecté au premier registre; une mémoire dé table d'état connectée au second registre pour recevoir des informations concernant la "liste nette" et la table de modèle; une commande en anneaux de module pour produire et recevoir des informations de table d'é- tat extérieure sous le contrôle du processeur principal, le contrôle en anneaux de module étant connecté au second registre, le contrôle en anneaux de module commandant le second registre pour produire des changements d'informa- tions de table d'état pour la mémoire de table d'état à partir d'autres dispositifs logiques sous essais et à la commande du processeur principal; un évaluateur logi- que connecté à la mémoire de table d'état pour utiliser -8- les informations de "liste nette" et les informations de table de modèle afin de produire de nouvelles informa- tions de table d'état pour les êlements logiques du pro- jet logique à vérifier, l'évaluateur logique fournissant une entrée en retour à la mémoire de table d'état pour remplacer d'anciennes informations de table d'état par de nouvelles informations de table d'état dans la mémoire de table d'état à chaque instant de simulation; un re- gistre d'adresses de liste nette connecté à la mémoire de "liste nette" pour la commander; une commande de mé- moire et d'horloge pour commander le fonctionnement de l'appareil afin qu'il fonctionne dans un nombre prédéter- miné de temps d'echantillcnnagedans un cycle logique du projet de système logique à vérifier, la mémoire de "liste nette" contenant l'état actuel d'éléments logiques parti- culiers et dans laquelle la mémoire de table de modèle contient des informations concernant le fonctionnement d'éléments logiques particuliers, et la mémoire de table d'état et l'évaluateur logique évaluant l'état d'éléments logiques ayant une entrée changée à chaque instant d'é- chantillcnnageet n'évaluant pas le changement d'état d' éléments logiques qui ne reçoivent pas un changement d' entrée à l'instant d'échantill cnnaceparticulier, ladite commande de mémoire et d'horloge réagissant a la commande en anneaux de module en recevant une entrée ou en produi- sant une entrée pour la commande en anneaux de module pour des dispositifs extérieurs à des instants appropriés dans le cycle logique. Selon un autre aspect non limitatif, l'invention con- cerne un appareil logique pour simuler le projet logique de pastille ou de circuit logique cciprenant: une mémoire de table de facteur pyramidal connectfeà un processeur principal pour conserver des infor Tmations de "liste nette", des informations de modules logiques de portes, et des informations d'interconnexion des portes; un programme d'instants d'événements logiques connecté à ladite table de facteur pyramidal pour recevoir des informations d' -9- entrée concernant le projet logique et pour fournir des informations de sortie sur des changements d'état des éléments logiques dudit projet logique; un processeur d'évaluation logique pour remplir les fonctions logiques d'éléments logiques particuliers du projet logique à vé- rifier, ce processeur d'évaluation logique étant connecté au programme de temps d'évènement pour recevoir des in 'or- mations concernant l'état actuel d'éléments logiques par- ticuliers et pour fournir des informations concernant des changements d'états d'éléments logiques particuliers; une mémoire de table de sortie de portes connectée à la mémoi- re de table de facteur pyramidal pour recevoir des infor- mations concernant des éléments logiques à un instant d'échantillonnage particulier et des éléments logiques aux- quels les éléments logiques passent des changements d'é- tat à des instants d'échantillonnage futur; une mémoire de table d'état connectée à la mémoire de table de fac- teur pyramidal et à la mémoire de table de sortie de por- tes pour conserver des informations concernant l'état précédent d'un élément logique et le nouvel état d'un élé- ment logique qui remplace l'ancien état de cet élément logique, la mémoire de table d'état étant connectée au processeur d'évaluation logique qui fournit des informa- tions concernant les nouveaux états des éléments logiques; une mémoire de table de modèle logique connectée à la mé- noire de table de facteur pyramidal pour conserver des informations concernant la fonction logique remplie par des éléments logiques et pour recevoir des informations concernant l'élément logique considéré prov'enant de la mémoire de table de facteur pyramidale et connectee avec le processeur d'évaluation logique pour fournir des in formations concernant la fonction logique à remplir sur la porte en cours de contrôle à un instant d'échantillon- nage particulier; en fonctionnement, l'appareil effectuant des opérations sur des éléments logiques en contrôle à des instants particuliers et prédéterminés d'échantillon- nage et produisant des informations concernant les chan- gements d'état des éléments logiques connectés aux élé- ments en contrôle et, lorsque pour chaque cycle d'instant d'échantillonnage l'appareil n'effectue que des phases d'évaluation logique sur des éléments logiques recevant des changements d'état par suite de changement d'état diéléments logiques depuis un instant d'échantillonnage précédent et ne remplissant pas de fonction d'évaluation logique sur des éléments logiques qui ne reçoivent pas un changement d'état d'entr 5 e provenant d'un élément lcique depuis un instant d'échantillonnage précédent. Dans un mode de réalisation, le progrmnmateur d'ins- tants d'évènements logiques comnorte un registre d'état d'instant de simulation; une première mémoire de première liaison complète connectée au registre d'état d'instant de simulation; une seconde mémoire d'état de liste de pre- mière liaison connectée au registre d'état d'instant de simulation une troisième mémoire de liste de dernière liaison connectée au registre d'instant de simulation; un premier, un second et un troisième registre connectés à la premiere, la seconde et la troisirme mémoire; un comparateur connecté au second et au troisième registre produisant une sortie quand la seconde mémoire de liste de première liaison est adressée par la m 3 me adresse élue la troisième mémoire de liste de dernière liaison et une porte OU connectée à la sortie du ccmparateur et au pre- mier registre pour recevoir des informations concernait la première me cire de premiere liaison complete, Iorsque le comparateur se trouve à la derniare adresse d'un ins- tant de simulation, l'instant de:i mulation d'adrese est avancé sécuentiellement P l'instant suivant d'échan- tillonnage de simulation. L'appareil peut comporter une ligne omnibus inter- connectant la seconde et la troisième mrmoire; une mémoi- re de dernière liaison connectée à la ligne omnibus pour identifier l'adresse de liaison suivante pour l'instant suivant de simulation de l'appareil; une mémoire au pre- mier entré, premier sorti pour identifier une adresse de -11- liaison libre reliée à la ligne omnibus; et un dispositif de commande destiné à commander la mémoire de dernière liaison et la mémoire au premier entré, premier sorti. De préférence, l'appareil est agencé pour être inter- connecté avec un autre appareil similaire pour recevoir des changements d'informations d'état sur des entrées d' éléments logiques çue contient la mémoire de "liste nette" à différents cycles d'instant d'échantillonnage, et com- prenant en outre un dispositif d'entrée pour fournir une seconde entrée provenant d'une source extérieure au second registre et à la commande en anneaux de module pour com- mander le second registre et recevoir -une entrée de la source extérieure à des instants appropriés dans le cycle d'échantillonnage. D'autres caractéristiques et avantages de l'invention seront mieux compris à la lecture de la description qui va suivre d'un exemple de réalisation et en se référant aux dessins annexés sur lesquels: les figures 1 A et l B doivent être placées côte à côte pour former un schéma d'un appareil de simulation lo- gique non commandé par évènements selon l'invention, les figures 2 A et 2 B sont destinées à être placées l'une au dessus de l'autre respectivement et représentent un autre mode de réalisation d'un appareil de simulation logique non commandé par évènements selon l'invention, la figure 3 représente un projet d'un mode de réali- sation d'un appareil de simulation logique commandé par événements selon l'invention et, les figures 4 A et 4 B sont destinées à être placées l'une au dessus de l'autre respectivement et montrent certains éléments de l'appareil de simulation de la figu- re 3. Les figures IA et 1 B représentent donc un appareil de simulation logique 10 selon l'invention pour une simu- lation non commandée par événements d'un projet de compo- sants LSI ou logiques Les figures l A et l B sont organi- sées de la gauche vers la droite en séquences de temps 253508 ? -12- pour montrer la temporisation des évènements dans l'appa- reil de simulation La "liste nette" qui est une descrip- tion codée compréhensive du composant en pastilles ou du circuit logique à vérifier et qui est formée par les con- ditions de type de porte et d'interconnexion est fournie par une source d'entrée 12 comme un calculateur universel ou calculateur principal à un registre 14 d'écriture des données de "liste nette" Un registre 16 de liste d'adres- * ses de "liste nette" fonctionne simultanément avec le re- gistre 14 de données d'écriture de "liste nette" pour con- server la trace des adresses des articles de données d'é- criture de "liste-nette" particulière T-n circuit d'in- crémentation d'adresses 18 corrige l'adresse du registre 16 de liste d'adresses "liste nette" Les données d'écri- ture de "liste nette" sont fournies sur une ligne omnibus de données d'écriture qui est connectée à plusieurs mémoires dynamiques t accès directs 22, 24, 26, 28 de "liste nette" dont chacune par exemple consiste en une mémoire de 16 Kbits d'une longueur d'un bit La sortie du registre 16 d'adresses de "liste nette" est fournie à un circuit logique 30 de décodage à deux parmi quatre, dont la sortie est délivrée sur une ligne omnibus 32 d'autorisation d'écriture connectée aux mémoires dynami- ques 22, 24, 26, 28 Le circuit logique de décodage 30 commande l'adressage des données d'écriture de "liste nette" dans les mémoires de manière que celles-ci soient adressées séquentiellement dans une séquence tournante. Le circuit de décodage 30 comporte également une ligne omnibus 34 d'adresse de sortie qui est divisée en diffé- rents bis et répartie dans différentes partiesde l'appa- reil de simulation 10 Certains des bits sont divisés sur une ligne omnibus d'adresse 36 qui est connectée à une entrée d'adresse des mémoires 22, 24, 26, 28 de manière qu'une partie d'adresse soit toujours disponible pour cha- cune des mémoires C'est la ligne omnibus 32 d'autorisa- tion d'écriture qui commande le fonctionnement des mémoires, -13- Une autre partie de la ligne omnibus d'adresse 34 est divisée en une ligne omnibus de table d'état et d'adres- se de balayage 38, et reliée à un registre 40 de table de modèle de balayage qui sera expliquée plus en détails par la suite. Les sorties de mémoires sont connectées chacune à un registre de données de lecture de "liste nette" Ainsie la mémoire 22 est associée avec un registre 42, la mémoire 24 est associée avec un registre 44, la mémoire 26 est associée avec un registre 46 et la mémoire 28 est asso- ciée avec un registre 48 Les sorties des registres 42, 44, 46, 48, sont toutes connectées à une ligne omnibus de lecteur 50 qui est connectée au registre 40 de table de modèle de balayage et également au registre 52 d'adres- se de table de modèle Le registre 52 d'adresse de ta- ble de modèle de balayage est incrémenté par un circuit 54 d'incrémentation d'adresses pendant le fonctionnement. La sortie du registre 52 d'adresse de table de modè- le de balayage est connectée à une table de modèle 56 La table de modèle 56 contient des informations concernant la fonction à remplir par les portes logiques particuliè- res qui sont utilisées dans le projet de circuit parti- culier Autrement dit, quand le dispositif particulier qui doit être simulé est écrit dans le système, les diver- ses portes utilisées sont définies par les fonctions qu'elles doivent remplir et ces fonctions sont en corréla- tion dans la table de modèle 56 Ainsi, lorsqu'un nom de porte particulier ou un type de dispositif particulier est sollicité dans les mémoires 22, 24, 26, 28, la table de m odèle associe la fonction logique remplie par la por- te ou le dispositif avec la porte ou le dispositif par- ticulier et délivre une sortie appropriée à un registre 58 de données de lecture de table de modèle et une ligne omnibus 60 de sortie de table de modèles La ligne omnibus 60 de sortie de table de modèle est appliquée comme une entrée au registre 40 de table de mo- dèle de balayage Le fonctionnement de cet appareil de -14- simulation est de suivre une fonction 1 ocgique par un ré- seau logique particulier Ainsi, le registre 40 de table de modèle de balayage conserve en mmoire, pour des éié- ments modèle particuliers, la fonction logique remplie, l'adresse actuelle dans le dispositif à portes logiques à simuler et la porte logique particulière qui est con- trôlée Toutes ces informations sont combinées pour pro- duire un changement de code d'information d'état dans le registre 40 de table de modèle de halayage et cette in- formation de sortie est fournie à un registre 62 d'adres- ses de tablesd'état Les informations d'écriture prove- nant de la source 12 commandent l'appareil de simulation pour fournir des informations à un registre 64 de denrées d'écriture de table de modèle qui commandent l'adressage de la table de modèle 56. A ce moment, il convient d'expliquer que différents circuits 66, 68 générateurs de parité fonctionnent sur les données dans le système pour remplir une foncticn de contrôle de parité qui est introduite dans un registre 70 d'erreur de parité dans un but de contrôle La sortie du registre d'erreur de parité 70 est appliquée à un registre 72 d'état d'erreur de parité conjointement avec la sortie d'un autre circuit 74 générateur de parité Cs techni- ques de production de parité sont relativement courantes et n'ont pas à être expliquées davantage. La sortie du registre d'adresse de table d'ftat est connectée à une mémoire statique à accès direct 80 de ta- ble d'état La mémoire statique de table d 'état est une configuration de 16 K par 2 bits dans ce mode de réalisa- tion Ies informations d'adresse so Dt déivrées sur une ligne omnibus à 14 bits par le regis; 1 re 62 d'adresse de table d'état La sortie de données de la mémoire 80 est prévue sur une ligne omnibus 82 dans un dispositif d'é- valuation logique ou processeur 84, conrme représentâ en pointillés Le processeur 84 d'évaluation logique compor- te une unité 86 de fonction logique de terme de produit et une unité 88 de fonction logique de terme de somme. 253 sog? -15- La sortie de l'unité 86 de fonction logique de terme de produit est connectée è un registre 90 qui comporte une sortie sur une ligne omnibus 92 produisant une entrée à l'unité 88 de fonction logique de terme de somme La sortie de l'unité 88 de fonction logique de terme de somme est délivrée sur une ligne omnibus 94 comme entrée de données pour la mémoire de table d'état 80 La coimman- de d'adressage-de l'unité 86 de fonction logique de terme de produit et l'unité 88 de fonction logique de terne de somme est produit à la sortie du registre 58 de données de lecture de table de modèle, La commande du registre 90 est également assurée par une autre sortie du registre 58 de données de lecture de table de modèle. La fonction de la mémoire 80 est de prélever l'état actuel du dispositif ou du projet en cours de simulation et de fournir cet état à l'unité 86 de fonction logique de terme de produit Cette dernière reçoit des informa- tions concernant la fonction à remplir et effectue cette opération logiquement et détermine ensuite le nouvel état de la porte ou élément particulier et retourne cette in- formation d'état sous forme d'information corrigée à la mémoire 80. La fonction d'ensemble de l'appareil de simulation non commandé par évènement représenté sur les figures l A et 1 B est de prélever des données qui ont été traitées préalablement par la source 12 et de les amener à plu- sieurs entrées de l'appareil de simulation Le registre 14 fournit les données de "liste nette" Le registre 64 introduit les données de modèle et une ligne omnibus 67 introduit les données d'adresse de table d'état Ces trois entrées de données constitueitl'appareil de simulation logique 10 avec des conditions d'entrées telles qu'il peut maintenant effectuer son opération L'appareil de simulation 10 remplie sa fonction voulue sous le contrôle d'une mémoire et d'un circuit logique de commande d'hor- loge 96 qui est également connecté à la source 12 pour un but de commande L'opération de simulation est conmman- -16- dée fonctionnellement et principalement par le processeur d'évaluation logique 84. Dans cette configuration, les données sont traitées par l'unité 86 de fonction logique de terme de produit et l'unité 88 de fonction logique de terme de somme en effectuant des opération logiques sur le flux de données d'entrée et de manière à créer un nouvel état résultant de l'élément logique simulé L'unité 86 de fonction lo- gique de terme de produit est logiquement une configura- tion de portes ET et l'unité 88 de fonction logique de terme de sommes est une combinaison de portes OU de ma- nière que toute fonction logique puisse être remplie avec ce processeur 84 d'évaluation logique généralisée. L'ensemble du processus de simulation qui a été dé- crit jusqu'ici peut être séparé en des problèmes d'im- portances différentes La logique qui a été-disputée rem- plie une certaine quantité de simulation sur une quantité donnée de logique Pour étendre cette fonction à des pro- blèmes plus importants avec de plus grandes "listes nettes", la logique en anneaux de communication entre modules entre en jeu Cette logique permet des copies multiples du système machine de simulation pour réagir à la commande du processeur principal ou source 12 afin de remplir cette plus importante tache de simulation pour différents éléments logiques et en même temps L'entrée principale de la logique oui a été décrite est un registre d'état extérieur 98 qui doit fournir des données provenant d'- autres parties ou d'autres copies de cet appareil simu- lateur câblé dans le sous-ensemble qui agit actuellement sur les données. Un circuit logique en anneaux 100 de communication entre modules permet des copies multiples de l'appareil de simulation câblé pour communiquer entre eux et exécu- ter des tâches de simulation Le circuit 100 réagit avec une copie de l'appareil de simulation câblé en recevant des fonctions de sortie provenant de la table de modèle par la ligne omnibus 60 Le circuit 100 reçoit également -17- des données d'adresse de table d'état provenant de la ligne omnibus 67 et il reçoit des données d'état de bro- che provenant du processeur d'évaluation logique 84 par l'intermédiaire d'uneligne omnibus 102. Le circuit 100 délivre également des données pour chaque copie de l'appareil de simulateur câblé par une ligne omnibus en anneaux 104 et des données d'état de broche par une ligne omnibus 106 En outre, le circuit pendant le fonctionnement du simulateur doit rece- voir des adresses de table d'état actuelle par une ligne omnibus 108. Certainesparties du circuit sont contenues dans chaque copie de l'appareil de simulation câblé Ce cir- cuit est alors dupliqué et interconnecté par des lignes omnibus pour permettre que chaque copie de l'appareil de simulation câblé puisse communiquer avec d'autres copies de l'appareil de simulation câblé en effectuant les opérations sur un grand problème de simulation. Les figures 2 A et 2 B représentent un autre mode de réalisation d'un simulateur logique 200 selon l'invention. Ce mode de réalisation est adapté comme un simulateur d'orientation booléenne qui ne garde pas explicitement la trace des évènements temporels dans un projet logique à simuler et à vérifier mais garde simplement la trace des niveaux logiques du circuit c simuler Une table d'é- tat défini 210 reçoit plusieurs entrées sur des lignes 212 et représente un espace de mémoire pour garder trace des états logiques " O " ou " 1 " de huit entrées de portes prévues aux entrées 212 Ces entrées peuvent être fournies par le processeur principal ou la source 12 comme dans le mode de réalisation des figures l A et 1 B Une table d'état indéfini 220 constitue la base de mémoire pour garder la trace du moment ou une entrée de porte parti- culière se trouve dans une condition logique non définie sur la base des entrées des lignes d'entrée d'adresse 222. Une condition logique non définie peut se présenter au moment o une porte est sur le point de passer d'un état -18- a un autre ou est encore entrain de se stabiliser dans un état qui vient juste d'être changé Un autre exemple d'une condition non définie se présente lorsque les en- trees d'une porte particulière ne sont pas encore connues car elles se stabilisent depuis une opération par ailleurs dans le dispositif en cours de contrôle. Une unité de traitement de porte 230 comporte plu- sieurs tables individuelles de fonction de porte 232, 234, 236 et ainsi de suite pour former une table de fonc- tion de porte pour chaque bit d'une adresse a 8 bits, toutes ces tables de fonction de porte n'étant pas repré- sentées mais se terminant avec la table de fonction de porte 236 pour le bit 7 L'unité de traitement de porte consiste en huit unités de processeurs logiques à usage spécial qui déterminent des sorties de simple porte don- nées par des fonctions logiques de simples entrées des entrées appliquées Deux unités de traitement de fonction 240, 242 sont prévues comme des pastilles demicro-rreces- seurs qui, dans ce mode de réalisation, consistent en deux pastilles de micro-processeurs t quatre bits con- nectées pour former une pastille de processeur 3 8 bits remplissant la fonction d'unité de traitement Ces unités de traitement de fonction accomplissent une fonction de traitement de niveau supérieur pouvant simuler de plus grands blocs de fonction dans la pastille qui do ' être vérifiée, et elles déterminent des sorties de porte de fonctions logiquescomplexes données des entrées aprliquées. Ces foncticns de processeurs assurent: donc un traitement associé avec des portes plus complexes dans le système en cours d'essai tandis que les portes moins complexes sont traitées par les 8 unités de table de fonction dans l'uni- té de traitement de porte 230. Deux réseaux à barres croisées 250, 252 sont prévus et associés respectivement avec la table d'état non défi- ni 220 et la table d'état défini 210 Ces réseaux correspondants sont utilisés pour permettre que des uni- tés de simulation réagissent entre elles sur la base de plus grands réseaux qui reçoivent des signaux représen- -19- tant des niveaux de portes se croisant entre des modules de traitement Tout cela est fait en utilisant des lignes omnibus de données comprenant les quatre lignes omnibus de données 254, 256, 258, 260 Un dispositif de commande de liaison série/parallèle 270 est connecté entre les unités de traitement de fonction 240, 242 pour commander le fonctionnement de ces unités de traitement de fonction et pour aider au déroulement de la simulation de multi- ples séquences de cycles d'un dispositif en cours d'essai. En plus d'être connectés auxlignes omnibus de données 254, 256, 258, 260, les unités de traitement de fonction 240, 242 sont également prévues avec des interconnexions sur une ligne omnibus 272 associée avec l'unité de trai- tement de fonction 242 et une ligne omnibus 274 associée avec l'unité de traitement de fonction 240, vers des registres 276, 278 associés respectivement avec la table d'état défini 210 et la table d'état non défini 220 Ces registres forment des entrées de données pour les tables d'étatdéfini et non défini pour produire l'alternance selon les besoins entre les entrées d'unité de traitement de fonction vers ces tables depuis l'entrée de tables de fonction de porte ou d'unités de traitement de porte vers ces tables d'état. La figure 3 représente un autre mode de réalisation d'un simulateur logique 299 selon l'invention, et montre le schéma de circulation des données d'un simulateur d' évênements Dans le simulateur 299, les données logiques et les données de temps nécessaire pour vérifier le fonc- tionnement d'un circuit logique sont analysées Le trai- tement préalable des données doit se faire dans un proces- seur principal ou une source 301 pour fournir des entrées à une table 300 de facteur pyramidal qui distribue des informations d'une "liste nette" concernant des types de portes et des étiquettes de portes Ces informations sont mémorisées par exemple dans une mémoire de 32 K fois bits D'autres informations qui sont nécessaires pour la progression de la simulation sont les informations de -20- retard spécifique pour le fonctionnement de chaque type de porte ou dispositif simulé Ces informations sont mé- morisées dans une table de sortie de porte 302 qui dans ce mode de réalisation est une mémoire de 16 K fois 40 bits D'autres données qui sont nécessaires sont les données d'état logique de chaque porte et ces données sont placées dans une table d'état 304 Cette table est une mémoire â 48 K fois 20 bits dans ce mode de réalisa- tion La définition de l'opération des différents types de portes est mémorisée dans une table de modèle logique 306 qui, dans ce mode de réalisation, est une mémoire de 16 K fois 40 bits Lorsque la source 301 a chargé les tables déjà décrites, le processus de simulation passe à la commande d'un programmateur 308 de temps d'évène- ments Ce programmateur 308 dirige ensuite ltactivité des circuits dans la table de facteur pyramidal 300, la table de sortie de porte 302, la table d'état 304, la table de modèle logique 306 et le processeur d'évaluation logique 310 Ces mémoires et processeurs logiques peuvent être coordonnés de manière que les données se dérlacent entre eux à la commande du programmateur d'instant d'é- vènement afin de garder la trace des changements d'état logique et des évènements dans le temps pour montrer ce qui se produit à chaque sortie de porte pour un incrément temporel dcnné pendant le fonctionument logique. Le programmateur de temps d'évènement 308 est repré- senté en détails sur les figures 4 A et 4 B qui illustrent certains des circuits logiques des commandes et des mémoi- res nécessaires pour réaliser la programmation des évène- ments et la liaison de ces évènements dans le temps. La raison d'être de la solution de liste de liaison de programmateur de temps d'évènement représentée sur la figure 3 est de permettre une affectation aléatoire de la mémoire qui est nécessaire pour conserver la trace du nom- bre de changements d'états logiques pendant une période donnée La mémoire de liste de liaison peut mémoriser par exemple 5 changements d'état à un instant de simulation -21- et une liaison et en garder la trace A la période de si- mulation suivante, elle peut contrôler un nombre diff 6- rent de changements d'état, par exemple 100 et elle peut mémoriser ces changements d'état et liaisons dans les mémoires de liste de liaison Cela peut se répéter pour tout nombre de changement d'état et toute période de si- mulation, par une affectation dynamique de mémoire pour conserver tous les changements d'état à tous les instants considérés, pendant toute période de simulation donnée. Lorsqu'un diagramme logique donné a été simulé, les résultats des tables d'état non corrigée sont transmis à une fonction de post-processeur qui traduit les données sous forme lisible par un opérateur, par une sortie d'im- primante ou un terminal graphique afin de permettre au concepteur logique d'observer les résultats de l'essai par simulation. Pour en revenir a la figure 3, une table d'évènement 418 du programmateur de temps d'événement 306 est une mé- moire à 16 K fois 16 bits et elle est utilisée pour mé- moriser des événements qui doivent être traités Cet en- semble est construit autour de la table d'évënement dans laquelle les algorithmes extraient un événement de la mrné- moire, traitent l'événement et déterminent si de nouveaux événement doivent être produits La fonction du proqramna- teur 308 est d'extraire un événement La table de facteur pyramidal 300, la table de sortie de porte 302, la table d'état 304, la table de modèle logique 306 et le proces- seur d'évaluation logique 310 traitent les évènements et déterminent si des nouveaux événements sont à produire et sont mémorisés è nouveau dans la table d'événement 4 l 8 pour les traiter ultérieurement. L Iorsqu'un événement est extrait de la table d'évé- nement, les événements en cours sont évalués L'évènement en cours et l'état en cours sont traités Le processeur d'évaluation logique 310 est utilisé pour traiter d'abord l'événement afin d'obtenir l'état en cours et pour mémo- riser l'état d'entrée de la porte simulée L'état es;t mé- _ 2 24 _ morisé dans le mot qui est adressé pour une porte de table de modèle particulière La nouvelle sortie logique d'une porte est évaluée et le processeur d'évaluation logique 310 utilise la table de modèle logique 310 qui est une table de vérité pour obtenir des informations de modèle voulu pour un type de porte. Quand le nouvel état est mémrorisé pour une porte. les broches d'entrée de la porte sont utilisées pour a- dresser la table de vérité et pour déterminer un nouvel état de la porte Par exemple, dans le cas d'une porte ET à quatre entrées, quatre broches d'entrée existent pour la porte ET, l'évènement qui apparaît changeant l'état de l'une des entrées de la porte ET Une table de vérité peut être utilisée pour évaluer la nouvelle sortie de la porte et, pour ce type de porte elle produit une nouvelle sortie correspondant aux états des entrées de la porte. Ouand la sortie de porte est évaluée en utilisant le pro- cesseur d'évaluation logique 310 et la table de modèle logique 306, si il y a un changement d'état à la sortie de la porte, il est déterminé si la sortie de la porte est émise de sorte que l'état ou l'évènement peut se pro- pager vers d'autres portes ou de nouvelles charges sur cette sortie La table de modèle logique 3 6 détermine si il existe un changement d'état de sortie Si il existe un changement d'état de sortie, l'état se propage vers les autres portes La table de facteur pyramidal 300 adap- te les types de portes de destination et les numéros de portes Cela égquivaut à la liste d'interconnexions pour la table de sortie de porte 302 qui contient les retards. Lorsqu'un événemnent se produit,il nécessite que l'état soit mémorisé de sorte que la table d'état est maintenue dans la table d'état 304 La table d'état 304 est celle dans laquelle les états d'entrée et de sortie de toutes les broches d'une porte sont conservés Lorscu'un nouvel événement change la broche d'entrée d'une porte, changeant ainsi l'état de la broche d'entrée, cet état est conservé dans la table d'état 304 Pour un nouvel évènement, le -23- nouvel état de broche est mémorisé dans la table d'état 304 Les états des broches dans la table d'état 304 sont comparés avec le type de porte pour déterminer la réfé- rence de la table de vérité dans la table de modèle 306 pour déterminer si il existe un nouvel état de sortie de la porte L'ancien état mémorisé dans la table 304 et le nouvel état déterminé à partir de la table de vérité dans la table de modèle 306 sont utilisés pour déterminer si la sortie de la porte a changé Si l'état de sortie de la porte est changé, la table de facteur pyramidal 300 qui est la liste d'interconnexion et la table de sortie de porte 302 qui est la table des retards de sortie sont utilisées pour déterminer les nouveaux évènements sur les charges de la porte Ces nouveaux événements attaquent les broches d'entrée des charges auxquelles la porte est connectée. Les figures 4 A, 4 B représentent un dispositif 400 de sommation de temps de simulation qui reçoit des infor- mations concernant l'instant de simulation actuellement considéré Le dispositif de sommation de temps de simula- tion 400 est connecté à un registre 402 Le registre 402 délivre une sortie à une mémoire de première liste de liari- son 404, une mémoire de première liste de liaison 406 et une mémoire de dernière liste de liaison 408 La mémoire de première liste de liaison 404 est connectée à un re- gistre 412 avec une ligne omnibus de sortie 452 connectée à une porte OU 424 La ligne omnibus de sortie 452 est également connectée à une entrée d'une porte OU connectée c la commande d'autorisation d'écriture de la mémoire 406 de liste de première liaison La mémoire 406 de liste de première liaison et la mémoire 408 de liste de dernière liaison sont connectées à une ligne omnibus de données 410, comme cela sera décrit par la suite, connectées a d'autres éléments dans l'ensemble Un registre 414 fonctionne comme un registre de première liaison et il est connecté à la ligne omnibus 410 Le registre 414 comporte une sortie con- nectée à une ligne omnibus 450 comme entrée d'un compara- -24- teur 422 et comme entrée d'un compteur 440 Un registre de dernière liaison 416 est connecté à la mémoire de liste de dernière liaison 408 et fourni une seconde entrée au comparateur 422 Le comparateur 422 effectue une compa- raison pour déterminer si les registres de liste de liai- son 414, 416 contiennent la même adresse de liste de liai- son,et il délivre une sortie à la porte OU 424 Quand la porte OU 424 est ouverte, l'adresse de liste de liaison passe à un registre 426 qui délivre une sortie pour avan- cer l'instant de simulation d'un incrément pour le trai- tement ultérieur La table d'évènement ou la mémoire de liste de liaison 418 est connectée à une entrée de don- nées 456 et une sortie de données 458 vers la ligne om- nibus 410 La mémoire de liste de liaison 418 est comman- dée par une entrée provenant de la ligne omnibus 450. Une mémoire 430 au premier entré, premier sorti est con- necté à la ligne omnibus 410 pour préserver les informa tions de liaison libre Un registre 432 est connecté entre la mémoire 434 de liste de liaison pleine et la mémoire 430 Un générateur de parité 438 traite des don- nées provenant de la mémoire 434 de liste de liaison plei- ne vers la mémoire 430 Une porte OU 436 commande le fonc- tionnement de la mémoire de liste de liaison 434 Le compteur 440 commande ure entrée de données de la mémoire * 430 tandis que sa sortie est l'adresse de sortie de liai- son libre connectée C la ligne omnibus de données 410. La ligne omnibus 410 est connectée C un registre 420 qui délivre une sortie d'adresse d'évènement de lecture- mémorisation et c un contrôle de parité 421 qui produit une sortie d'erreur de parité. La mémoire de liste de liaiscn 418 peut être une mé- moire A 16 K fois 16 bits qui est utiliséepour mémoriser des évenemrents Les évènements communs C un instant d'é- chantillonnage donné sont mémorisés en 6 blocs de 16 mots de sorte que la mémoire qui est une mémoire à 16 K fois 16 bits est séparée logiquement en blocs de 16 mots Les mémoires de liste de liaison 404, 406, 408 sont des -25- mémoires qui sont utilisées pour commander l'adressage de la mémoire de liste de liaison 418, La mémoire 404 de liste de première liaison pleine est une mémoire à 4 K fois 1 bit et elle est utilisée pour déterminer si il existe un instant d'échantillonnage actif Un cycle d'horloge peut être séparé en un maximum de 4 096 instants d'échantillonnage et l'état de l'instant d'échantillonna- ge est mémorisé dans la mémoire à 4 K fois 1 bit. Le registre 402 est utilisé pour introduire l'ins- tant d'échantillonnage en cours et une adresse dans la mémoire 404 de liste de première liaison pleine qui est la mémoire qui indique si cet instant d'échantillonnage est actif ou non Si l'instant d'échantillonnage est actif, des évènements sont lus dans le programmateur de temps d'événement Pour chaque instant d'échantillonnage, une adresse passe par le dispositif de sommation 400 et le registre 402 pour remplir la mémoire 404 de liste de pre- mière liaison pleine si le bit dans la mémoire 404 pour cette adresse est à " 1 " et si l'instant d'échantillonnage est actif Si l'instant d'échantillonnage est actif, l'a- dresse est émise vers les mémoires de liste de liaison 406, 408 La mémoire de première liste de liaison 406 contient un indicateur dans le premier bloc de 16 mots de la mémoire contenant des événements, La mémoire de liste de dernière liaison 408 contient un indicateur dans le dernier bloc de 16 mots de la mémoire contenant des évé- nements Les dispositifs 404, 406, 410, 414, 416, 422, 424, 426 conservent la trace des blocs d'événements dans lesquels le bloc qui contient 16 évènements et les dispo- sitifs 432, 434, 436 sont utilisés pour accéder è des évènements individuels mémorisés dans un bloc Le schéma de la figure 4 A est utilisé principalement pour conserver la trace de l'adressage des blocs individuels La mémoire de liste de liaison 418 est utilisée pour mémoriser des événements Les événements sont mémorisés dans des blocs de 16 mots de sorte qu'il y a 1 024 blocs mémorisés dans la mémoire de liste de liaison 418 dans le présente mode -26- de réalisation Chaque bloc contient 16 mots Les blocs peuvent avoir une dimension variable Ils peuvent conte- nir de un mot jucu'à 16 mots, de sorte qu'une mémoire peut être cloisonnée en 1 024 blocs de 16 mots ou jus- qu'à 16 384 blocs de 1 mot suivant le type de simulation. La dimension de bloc peut être changée pour améliorer les performances Le plus grand bloc peut donner des performances améliorées, Chaque fois qu'un bloc est vidé, l'indicateur de première liaison est incrémenté L'indi- cateur de première liaison est incrémenté et des blocs sont lus jusqu'à ce que l'indicateur de première liaison soit égal à l'indicateur de dernière liaison Le compa- rateur 422 est utilisé pour comparer les indicateurs de première liaison et de dernière liaison Quand la com- paraison est faite, tous les blocs ont été lus. La mémoire est partagée en blocs et l'indicateur de première liaison dans la mémoire de liste de première liaison 406 désigne le premier bloc qui doit être lu L'in- dicateur de dernière liaison se trouve dans la mémoire de liste de dernière liaison 408 qui indique le dernier bloc à lire Quand les blocs sont lus, l'indicateur de première liaison est incrémenté et comparé dans le compa- rateur 422 ayec l'indicateur de dernière liaison Quand la comparaison dans la porte OU 424 indique que les indi- cateur sont égaux, la simulation progresse à un instant qui est la sortie du registre 426. Il est bien entendu que dans chaque cas ou les con- ditions d'état de sortie pour une première porte doivent être fournies comme des entrées à une seconde porte ne sont pas changées, de sorte que la seconde porte ne voit aucun changement d'entrée,le système n'adresse pas la seconde porte dans la phase suivante de simulation pour déterminer si cette porte a changé d'état Autrement dit, le simulateur selon l'invention est hautement efficace en exécutant seulement les phases de simulation sur des portes ou des éléments de circuits dont les conditions d'entrée sont changées d'une manière ou une autre Ainsi, -27- le grand nombre de cycles en lesquels chaque phase du cir- cuit à simuler est divisé permet de ne changer l'état que de quelques portes à chaque phase et par conséquent, une pastille comportant des milliers de portes peut être ana- lysée de façon beaucoup plus efficace que si chacune de ces portes devait être adressée à chaque cycle de fonc- tionnement Une caractéristique essentielle du simulateur est donc que pendant chaque cycle de fonctionnement repré- sentant un instant d'échantillonnage pour la pastille en cours d'essai, seules les portes pour lesquelles un indi- cateur indique un changement d'état d'entrée doivent être évaluées en ce qui concerne leur changement d'état Cela permet de n'adresser qu'un nombre comparativement réduit de toutes les portes dans le dispositif à simuler. Ainsi, le simulateur assure que des événements com- muns à l'instant d'échantillonnage en cours sont éliminés de la mémoire appropriée et sont ensuite traités par des unités logiques dans le simulateur Des nouveaux événe- ments qui sont produits par la suite du traitement sont ramenés dans la mémoire après l'opération de traitement. Ce système de mémorisation d'évènements est important. Des ëvènements sont mémorisés dans des listes liées ayant des instants d'échantillonnage communs Autrement dit, les listes d'événements sont liées par l'instant d'tchan- tillonnage commun Dans le traitement d'un programme de simulation sur un calculateur universel, un temps notable de calculateur est nécessaire pour rechercher,lier et agencer des évènements en des instants d'échantillonnage commun Le simulateur décrit ci-dessus mémorise des évé- nements dans des blocs ou des listes liées de manière cue les listes puissent être adressées dans un ordre séiuen- tiel comme décrit en regard des figures 4 A, 4 B pour l'ins- tant particulier d'échantillonnage en fonctionnement, Dans le but de traiter des évènements de portes, le nouvel état d'une broche d'entrée de la porte est reçu de la mé- moire et échantillonné de manière que le nouvel état de broche de sortie puisse être évalué par traitement Tout -28- nouvel état de broche de sortie est mémorisé à nouveau dans la mémoire, Des portes sans changement d'état de sortie sont éliminées de l'échantillonnage car elles ne présentent aucun nouvel état de broche d'entrée pour la porte suivante dans la séquence Ainsi, la porte suivante dont la séquence N 'a pas à être évaluéedans la séquence de temps suivante de la simulation Les nouveaux évène- ments qui sont produits par le simulateur peuvent être répartis en de nombreux instants d'échantillonnage dans le futur sur la base des temps de retard des portes impli- quées Ainsi, pour la mémorisation d'évènements, les évé- nements résultant de la nouvelle détermination d'événement doivent être mémorisés dans diverses positions de mémoire correspondant au retard de porte pour la porte affectée en séquence selon la "liste nette". Par conséquent, l'un des avantages du simulateur selon l'invention décrit ci-dessus est que les circuits sont capables de s'adapter à chaque instant d'échantil- lonnage du traitement pour recevoir un nombre différents de changement d'état par cycle d'instant d'échantillon- nage plutôt qu'un nombre fixe de changement d'état par instant d'échantillonnage L'affectation dynamique de la mémoire à des nombres différents de changement d'état par série de simulation est une caractéristique importante de l'invention, conjointement avec la commande par mémoi- re En outre, étant donné due la conception du simulateur des modes de réalisation des figures l A, l B ou 3, 4 A, 4 B permet que des informations de coirnande d'état extérieur change pendant le fonctionnement à chacue instant d'é- chantillonnage la commande d'état ou la fonction d'état de portes particulières dans l'échantillon de simulation. Ainsi, pour simuler une pastille d'une dimension donnée, plusieurs simulateurs d'une dimension standard prédéter- minée peuvent être groupés à la commande d'un calculateur principal, les résultats d'un ou plusieurs simulateurs étant fournis à un autre simulateur pour contrôler l'état de diverses portes qui sont présentes dans la "liste nette" -29- du simulateur La possibilité dynamique de modifier l'état de portes particulières à des instants particuliers d?é- chantillonnnage par des informations extérieures est une caractéristique importante. -30- PEVENDICATIONS 1 Appareil de simulation logique destiné à vérifier le projet de dispositif logique, caractérisé en ce qu'il comporte un calculateur principal ( 12) destiné à intro- duire des données dans l'appareil et à extraire des don- nées de l'appareil, une mémoire de liste nette ( 22, 24, 26, 28) connectée audit calculateur principal pour re- cevoir des données concernant les éléments de circuit de la pastille sous contrôle, une mémoire de table de modèle ( 56) pour contenir des informations décrivant la fonction logique de tous les éléments de circuits dans le projet logique à vérifier, un premier registre ( 40) pour lire le contenu de ladite mémoire de liste nette et de ladite mémoire de table de modèle, ledit premier registre étant connecté à ladite mémoire de liste nette et à ladite mé- moire de table de modèle, un second registre ( 62) connec- té auditpremier registre ( 40), une mémoire de table d'état ( 80) connectée audit second registre ( 62) pour re- cevoir des informations concernant ladite table de liste nette et de modèle, une commande en anneaux de module ( 100) pour produire et recevoir des informations de table d'état extérieure à la commande dudit calculateur prin- cipal ( 12), ladite commande en anneaux de module étant connecté audit second registre ( 62), ladite commande en anneaux de module commandant ledit second registre pour produire un changement d'information de table d'état dans ladite mémoire de table d'état ( 80) à partir d'autres dispositifs logiques sous contrôle et à la commande dudit processeur principal, un évaluateur logique ( 84) connec- té à ladite mémoire de table d'état ( 80) pour utiliser les informations de liste nette et les informations dé table de modèle pour produire de nouvelles informations de table d'état pour des éléments logiques du projet lo- gic-ue à vérifier, ledit évaluateur logique produisant une entrée en retour à ladite mémoire de table d'état pour remplacer d'anciennes informations de table d'état par de nouvelles informations de table d'état dans ladite -31 mémoire de table d'état S chaque instant de simulation, un registre d'adresse de liste nette ( 16) connecté et commandant ladite mémoire de liste nette, une commande de mémoire et d'horloge ( 96) pour commander le fonction- nement dudit appareil pour qu'il fonctionne à un nombre prédéterminé d'instants d'échantillonnage dans un cycle logique dudit projet de système logique à vérifier dans ladite mémoire de liste nette ( 22, 24, 26, 28) qui con- tient l'état actuel d'éléments logiques particuliers et 1 o dans lequel ladite mémoire de table de modèle ( 56) con- tient des informations concernant le fonctionnement d'éléments logiques particuliers et dans lequel ladite mémoire de table d'état ( 80) et ledit évaluation logique ( 84) évaluent l'état d'éléments logiques ayant une entrée changée d chaque instant d'échantillonnage et n'évaluant pas un changement d'état d'éléments logiques qui ne re- coivent pas un changement d'état à un instant d'Ochantil- lonnage particulier, et dans lequel ladite commande de mémoire et d'horloge ( 96) réagit à ladite commande en anneaux de module en recevant une entrée ou en produi- sant une entrée à ladite commande en anneaux de module pour des dispositifs extérieurs à des instants appro- priés dans ledit cycle logique. 2 Appareil de simulation d'un projet logique de pas- tilles logiques ou de réseaux logiques,caractérisé en ce qu'il comporte une table de facteur pyramidal ( 300) connectée à un processeur principal ( 301) pour conserver des informations de liste nette, des informations de projet logique de porte et des informations d'intercon- nexion de porte, un programmateur d'instant d'évènement logique ( 308) connecté avec ladite table de facteur py- ramidal pour recevoir des informations d'entrée concer- nant ledit projet logique et pour fournir des informa- tions de sortie concernant des changements d'état des éléments logiques dudit projet logique, un processeur d' évaluation logique ( 310) pour remplir les fonctions lo- giques d'éléments logiques particuliers dans le projet -32- logique à vérifier, ledit processeur d'évaluation logique étant connecté audit programmateur d'instant d'évènemlent ( 308) pour recevoir des informations concernant l'état actuel d'éléments logiques particuliers et fournissant des informations concernant des chancemrents d'état dans des Cléments logiques particuliers, une mémoire de table de sortie de porte ( 302) connectée à ladite table de fac- teur pyramidal ( 300) pour recevoir des informations con- cernant des éléments logiques à un instant d'échantillon- nage particulier et des éléments logiques auxquels les- dits éléments passent en changement d'état a des instants d'échantillonnage futur, une mémoire de table d'état ( 304) connectée r ladite mémoire de table de facteur:y- ramidal ( 300) et a ladite mémoire de sortie de porte '302) pour ccnserver des informations concernant l'état pr - cèdent d'un élément logique et le nou'zel 6 tat d'un É 1- ment logique qui remplace l'état précèdent de l'élment logique, ladite m émoire de table d'état ( 304) étant con- nectée audit processeur d'évaluation logique ( 310) qui fourni des informations concernant lesdits nouveaux états d'éléments logiques, une mémoire de table de modèle lo- gique ( 306) connectée à ladite mémoire de table de f Ja- teur pyramidal ( 300) pour conserver des infezaations con- cernant la fonction logique remplie pa: de M élemerts lo- gigues et pour recevoir des inforlations concernant l'é lément logique ccnsidéré provenant de ladite mérmoire de table de facteur pyramidal ( 300) et ccnnectne audit pro- cesseur d'évaluation logique ( 310) pour foirnir des in- formations concernant la fonction logkique à remplir sur la porte en cours de contrôle Z un instant d'échant$- lonnage par:icuiier, dans lequel en Ponctionnement, l'ap- pareil effecfte des opérations sur des éléenis ogic;ues des instants d'Échantillonnage preédeterminés et parti- cu.liers en cours de contrôle et fournissant des informa- tions concernant des changements d'état à des élm ents Jogiques connectés aux éléments en cours de contrôle et dans lequel à chaque crcle d'instant d'échantillonnage, -33- l'appareil n'effectue que des phases d'évaluation logique sur des éléments logiques qui reçoivent des changements d'entrée résultant du changement d'état d'éléments logi- ques depuis un instant d'échantillonnage précédent et n'effectuant aucune fonction d'évaluation logique sur des éléments logiques qui ne reçoivent aucun changement d' état d'entrée d'un élément logique depuis un instant d' échantillonnage précédent. 3 Appareil selon la revendication 2, caractérisé en ce que ledit programmateur d'instant d'évènement logique comporte un registre d'état d'instant de simulation ( 402), une première mémoire de première liaison pleine ( 404) connectée audit registre d'état d'instant de simulation, une seconde mémoire d'état de liste de première liaison lation, une troisième mémoire de liste de dernière liai- son ( 408) connectée audit registre d'instant de simulation, un premier, un second et un troisième registre ( 412, 414, 416) connectés à ladite première, ladite seconde et la- dite troisième mémoire, un comparateur ( 422) connecté audit second et audit troisième registre ( 414, 416) pro- duisant une sortie quand ladite seconde mémoire de liste de première liaison ( 406) est adressée par la même adres- se que ladite troisième mémoire de liste de dernière liai- son ( 408) et une porte OU ( 424) connectée à la sortie dudit comparateur ( 422) et audit premier registre ( 412) pour recevoir des informations concernant ladite première mémoire de première liaison pleine ( 404), ledit compara- teur ( 422 > étant à la dernière adresse d'un instant de simulation dont l'instant de simulation d'adresse est avancé en séquence à l'instant suivant d'échantillonnage de simulation. 4 Appareil selon la revendication 3, caractérisé en ce qu'il comporte une ligne omnibus ( 410) interconnectant ladite seconde et ladite troisième mémoire ( 406, 408) une mémoire de dernière liaison ( 418) connectée à ladite ligne omnibus ( 410) pour identifier l'adresse de liaison -34suivante pour l'instant suivant de simulation dudit appareil, une mémoire ( 430) au premier entré, premier sorti pour identifier une adresse de liaison libre con- nectée è ladite ligne omnibus ( 410), et un dispositif de commande ( 440) destiné & commander ladite mémoire de dernière liaison ( 418) et ladite mémoire ( 430) au pre- mier entré, premier sorti. Appareil selon l'une quelconque des revendications 2 à 4, caractérisé en ce que ledit appareil est destiné à être interconnecté avec un autre appareil similaire pour recevoir un changement d'information d'état sur des entrées d'éléments logiques contenus dans ladite mémoire de liste nette è des cycles différents d'instant d'échantillonnage et comprenant en outre un dispositif d'entrée pour fournir une seconde entrée provenant d'une source extérieure audit second registre et Ä ladite com- mande en anneaux de module pour cozmander ledit second registre pour qu'il recoit une entrée de la source ex- térieure à des instants appropriés dans le cycle d'é- chantillonnage.