FR2867290A1 - Reseau logique programmable a traitement ordonnance par echeancier - Google Patents

Reseau logique programmable a traitement ordonnance par echeancier Download PDF

Info

Publication number
FR2867290A1
FR2867290A1 FR0402419A FR0402419A FR2867290A1 FR 2867290 A1 FR2867290 A1 FR 2867290A1 FR 0402419 A FR0402419 A FR 0402419A FR 0402419 A FR0402419 A FR 0402419A FR 2867290 A1 FR2867290 A1 FR 2867290A1
Authority
FR
France
Prior art keywords
logic
cells
electronic circuit
processing
circuit according
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
FR0402419A
Other languages
English (en)
Inventor
Jean Paul Petrolli
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to FR0402419A priority Critical patent/FR2867290A1/fr
Priority to PCT/FR2005/000529 priority patent/WO2005088839A1/fr
Priority to US10/585,696 priority patent/US20080262819A1/en
Publication of FR2867290A1 publication Critical patent/FR2867290A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17704Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)

Abstract

Le circuit électronique de traitement de données est destiné à émuler une fonction logique. II comporte :- une horloge unique fournissant des signaux représentatifs d'unités de temps,- un réseau logique synchrone programmable traitant des valeurs par unité de temps,- un moyen de détection de changement d'états, dits "évènements" de valeurs internes ou externes,- un moyen de programmation de signaux de changement d'état ou desdits évènements,- un moyen de traitement d'échéances successives fournissant, au réseau logique, des signaux représentatifs d'échéances en fonction des signaux fournis par le moyen de détection ou du moyen de programmation desdits évènements et des signaux fournis par ladite horloge, ledit moyen de traitement étant adapté à déterminer des échéances, à délais différés par programmation par le moyen de programmation, à venir fonctions des signaux fournis par ledit moyen de détection ou ledit moyen de programmation.Les traitements effectués par le réseau logique sont ainsi la conséquence d'échéances successives déclenchées par des changements d'états de valeurs internes ou externes, et par une des déterminations d'échéances successives.

Description

RESEAU LOGIQUE PROGRAMMABLE A TRAITEMENT ORDONNANCE PAR
ECHEANCIER
La présente invention concerne un réseau logique programmable à traitement ordonnancé par échéancier. Elle s'applique, en particulier, à un circuit d'émulation de fonctions logiques complexes à base de traitement logique sur événements internes ou externes à cette fonction.
Dans les réseaux programmables existant, la fonction logique à émuler est subdivisée en fonctions logiques élémentaires. Chacune d'elles se trouve dans une cellule de base configurable. Un réseau d'interconnexion fait de liaisons programmables, relie l'ensemble des cellules de telle sorte que tout changement d'état logique se propage vers les fonctions destinataires.
La programmation de ce type de réseau est statique (réseau statique). Elle persiste durant le fonctionnement de la fonction complexe après que la programmation ai configuré le réseau.
La programmation est généralement issue de programmes de placement routage, avec l'aide d'un programme de synthèse logique pour faciliter la programmation utilisateur à la source.
Ce type de réseau programmable logique présente les inconvénients: de ne pas faire la distinction entre les parties fréquemment sollicitées dans le temps et les parties dont l'activation est plus épisodique, - d'avoir une maîtrise du temps de changement d'état des noeuds de la fonction à émuler, complexe et difficilement prédictif, - de mettre en oeuvre une chaîne complexe d'outils de synthèse logique, partitionneur, placeur et routeur coûteux en développement, - de rendre difficile l'accès au noeuds internes (consultation et modification) autrement que par re-programmation du circuit, - de produire des problèmes de charge de ligne, - de produire des problèmes de fonctionnement en présence de plusieurs horloges. La présente invention vise à remédier à ces inconvénients.
A cet effet, la présente invention vise, selon un premier aspect, un circuit électronique de traitement de données destiné à émuler une fonction logique, caractérisé en ce qu'il comporte: - une horloge unique fournissant des signaux représentatifs d'unités de temps, - un réseau logique synchrone programmable traitant des valeurs par unité de temps, un moyen de détection de changement d'états, dits "évènements" de valeurs internes ou externes, - un moyen de programmation de signaux de changement d'état ou desdits évènements, - un moyen de traitement d'échéances successives fournissant, au réseau logique, des signaux représentatifs d'échéances en fonction des signaux fournis par le moyen de détection ou du moyen de programmation desdits évènements et des signaux fournis par ladite horloge, ledit moyen de traitement étant adapté à déterminer des échéances, à délais différés par programmation par le moyen de programmation, à venir fonctions des signaux fournis par ledit moyen de détection ou ledit moyen de programmation, les traitements effectués par le réseau logique étant ainsi la conséquence d'échéances successives déclenchées par des changements d'états de valeurs internes ou externes, et par une des déterminations d'échéances successives.
Le circuit électronique objet de la présente invention résout un certain nombre de problèmes que ne peuvent résoudre correctement les réseaux logiques programmables actuellement connus: - le circuit attribue d'autant plus de ressources aux fonctions logiques du circuit à émuler qu'elles sont moins sollicitées dans le temps: il existe une relation ressource / temps par fonction logique, - le contrôle du temps de ré-évaluation des noeuds de la fonction à émuler est soumis à un contrôle précis par échéancier, facilement programmable par l'utilisateur, dans certains cas, le réseau peut émuler avec des performances supérieures aux réseaux classiques, des fonctions rapides, - la base du fonctionnement du circuit est synchrone d'une seule horloge et permet l'émulation d'une fonction à plusieurs horloges sans problème de re-synchronisation, Le circuit électronique fournit ainsi des commandes qui font suite: - à des évènements combinés entre eux, - une planification décidée par l'utilisateur.
Selon des caractéristiques particulières, le réseau logique reproduit le fonctionnement d'un simulateur de circuit logique apte à être implémenté dans un circuit électronique, l'horloge définissant des unités de temps mises en oeuvre pour la reproduction de fonctionnement dudit simulateur.
Grâce à ces dispositions: - le contrôle du temps par unité évite l'émulation de fonction de retard ou d'horloge supplémentaire et simplifie d'autant la conception de ladite fonction en émulation, - le contrôle du temps par unité offre au concepteur un modèle temporel exact, à l'unité de temps près, de ladite fonction en émulation, l'aspect synchrone évite l'émulation de fonctions de re-synchronisation entre horloges asynchrones dans le cas d'un réseau classique.
Selon des caractéristiques particulières, le réseau logique est adapté à émuler une fonction logique sans configuration d'éléments logiques.
Grâce à ces dispositions: - l'accès de base, lorsque le circuit est en opération, aux noeuds pour consultation et modification extérieure est facile et sans reprise de programmation, - la chaîne informatique de programmation, privée des contraintes de placement et routage, est plus simple à concevoir et à mettre en oeuvre.
Selon des caractéristiques particulières, le réseau logique comporte des cellules internes de traitement logique et des cellules périphériques de communication avec l'extérieur du circuit électronique, les signaux fournis par le moyen de traitement d'échéances contrôlant le fonctionnement d'au moins une dite cellule interne et d'une dite cellule périphérique.
Grâce à ces dispositions les problèmes de charge de ligne sont ignorés.
Selon des caractéristiques particulières, lesdites cellules communiquent des données par l'intermédiaire d'un groupe unique de lignes sur lequel s'établit un échange par unité de temps, lesdites cellules étant adaptées à générer des signaux, événements aléatoires ou programmés, vers le moyen de traitement d'échéance, ledit moyen de traitement d'échéance fournissant à chaque cellule un groupe de commande.
Grâce à ces dispositions la consultation ou modification des échéances à venir est possible lorsque le circuit est en opération.
Selon des caractéristiques particulières, les cellules de traitement internes sont adaptées à traiter un mot logique par unité de temps.
Grâce à ces dispositions le circuit réduit le temps de traitement d'un mot à une unité de temps.
Selon des caractéristiques particulières, les cellules logiques internes sont adaptées à concaténer plusieurs groupes de données provenant de plusieurs identités respectives et à mémoriser chaque mot logique concaténé.
Grâce à ces dispositions la relation de temps qui existe entre les traitements de données est plus simple à concevoir et à gérer.
Selon des caractéristiques particulières, les cellules périphériques sont adaptées à échantillonner les mots logiques reçus de l'extérieur du circuit et à générer des mots logiques concaténés en fonction du sens de communication.
Selon des caractéristiques particulières, le réseau logique comporte un moyen spécifique de communication avec l'extérieur du circuit, le réseau logique mettant en oeuvre des mots logiques mémorisés adaptés à être consultés et modifiés par ledit moyen spécifique de communication.
Grâce à ces dispositions l'accès aux mémoires permet la génération de chronogrammes, sur les changements d'état des noeuds, vers l'extérieur afin donner une visibilité interne de l'activité de ladite fonction en émulation, pendant ou après opération, difficilement réalisable avec les réseaux classiques, Selon un deuxième aspect, la présente invention vise un simulateur qui comporte un circuit électronique tel que succinctement exposé ci-dessus.
Selon un deuxième aspect, la présente invention vise un émulateur qui comporte un circuit électronique tel que succinctement exposé ci-dessus.
Les avantages, buts et caractéristiques particulières de ce simulateur et de cet émulateur étant similaires à ceux du circuit électronique tel que succinctement exposé ci-dessus, ils ne sont pas rappelés ici.
D'autres avantages, buts et caractéristiques de la présente invention ressortiront de la description d'un mode particulier de réalisation, qui va suivre, faite, dans un but explicatif et nullement limitatif en regard des dessins annexés dans lesquels: - la figure 1 représente, schématiquement, une architecture simplifiée du circuit électronique objet de la présente invention, - la figure 2 représente, schématiquement, un échéancier de l'architecture illustrée en figure 1, - la figure 3 représente, schématiquement, une partie de l'échéancier illustré en figure 2, - la figure 4 représente, schématiquement, une partie de l'échéancier illustré en figure 2, - la figure 5 représente, schématiquement, une partie de l'échéancier illustré en figure 2, - la figure 6 représente, schématiquement, une partie de l'échéancier illustré en figure 2, - la figure 7 représente, schématiquement, une cellule interne de mémorisation et de traitement logique (CIMTL) illustrée en figure 1, - la figure 8 représente, schématiquement, une cellule de connexion d'entrée illustrée en figure 7, - la figure 9 représente, schématiquement, une cellule de connexion de sortie illustrée en figure 7, - la figure 10 représente, schématiquement, une cellule de connexion de traitement illustrée en figure 7, - la figure 11 représente, schématiquement, une mémoire d'instructions illustrée en figure 10, - la figure 12 représente, schématiquement, une cellule de traitement illustrée en figure 10, - la figure 13 représente, schématiquement, une cellule logique de test illustrée en figure 10, - la figure 14 représente, schématiquement, une l'architecture d'une cellule périphérique de communication avec Extérieur (CPCE), - la figure 15 représente, schématiquement, une cellule d'entrée-sortie CES illustrée en figure 14, - la figure 16 représente, schématiquement, un réseau d'interconnexion donnée, - la figure 17 schématise la boucle de fonctionnement, - la figure 18 représente, schématiquement, une connexion évènements et commandes.
Avant de décrire les figures, on donne ci-dessous, une description générale du circuit électronique objet de la présente invention, qui est architecturée sur plusieurs parties: un échéancier qui est au coeur, un réseau de N_CIMT: Cellules Internes de Mémorisation et de Traitement Logique: CIMTL, - un réseau de N_CPCE: Cellules Périphériques de Communication avec l'Extérieur: CPCE, - un réseau d'interconnexion de valeurs entre cellules, - une partie consacrée au chargement des cellules lors de la programmation appelée Ressource Centrale de Programmation RCP, - une partie consacrée à la consultation et modification des données mémorisées dans les CIMTL et CPCE est appelée Ressource Centrale de Mise Au Point: RCMAP.
La figure 1 décrit une architecture simplifiée d'un circuit électronique conforme à la présente invention. Dans cette architecture, un échéancier 100 a pour fonction: d'accepter en entrée des informations primaires de changement d'état logique produites par les cellules CIMTL 120 à 132 et CPCE 101 à 108, - de combiner ces informations en requêtes selon la programmation utilisateur, - de planifier des échéances en fonction des retards programmés par l'utilisateur, - de gérer la compatibilité entre ces échéances et de re-planifier certaines d'entre elles, - de générer des commandes élémentaires à chaque échéance compatible.
Dans cette architecture les Cellules Internes de Mémorisation et Traitement Logique (CIMTL) 110 à 132 ont pour rôle: - de mémoriser les noeuds qui émulent les signaux et variables de la fonction en émulation, d'effectuer un traitement logique sur ces noeuds, de générer lesdits évènements produits soit des traitements logique soit d'une instruction.
Dans cette architecture les Cellules Périphériques de Communication avec l'Extérieur CPCE 101 à 108 ont pour rôle: d'échantillonner les signaux extérieurs, - de mémoriser des valeurs qui sont transformées en signaux extérieurs, - de générer lesdits évènements produits des changements d'état des signaux extérieurs.
Dans cette architecture la Ressource Centrale de Mise au Point RCMAP 140, en relation avec un moyen extérieur approprié, a pour rôle: - de scruter les noeuds, instructions et échéances, - de modifier les noeuds, instructions et échéances.
Dans cette architecture la Ressource Centrale de Programmation RCP 150 a pour rôle de positionner l'ensemble des cellules programmées avant la mise en opération du réseau.
L'échéancier 100 est décrit en figure 2. La partie 201 (combinaisons) de l'échéancier 100 reçoit un groupe de signaux nommés "événements". Chaque ligne de ce groupe est affectée au type d'événement précis issu d'une CIMTL ou d'une CPCE.
La partie 201 est illustrée en figure 3. Les cellules programmées (CP) configurent l'équation logique en requêtes à base d'opérateurs OU. Une requête est donc activée sitôt qu'un événement sélectionné est actif à 1. La partie 202 (retards) de l'échéancier 100 est illustré en figure 4. Elle reçoit l'ensemble des requêtes et génère un groupe d'échéances dont chacune d'elle est une propagation sur un délai programmé, soit d'une requête propre de la partie 201 ou soit d'une échéance refoulée par la partie 203,.
Les cellules délai 401 à 404 convertissent chaque requête en échéance élémentaire après un délai de 0 à plusieurs cycles d'horloge de base.
Des requêtes supplémentaires peuvent venir de la ressource de mise au point optionnelle.
La figure 4 décrit la partie 202 sous forme de cellules délais. A la sortie des cellules délais, un ensemble d'échéances est généré par unité de temps. Les cellules délais peuvent être consultées ou programmées par la ressource de mise au point en partie 204 en liaison avec la ressource centrale de mise au point RCMAP 130.
La figure 5 décrit chacune des parties retards 202. Chacune des requêtes positionnent immédiatement à "1" la bascule 530 selon la programmation des cellules associées (CP541) avec la commande set asynchrone de la bascule.
La requête va ensuite se transmettre d'une bascule à l'autre au rythme de l'horloge de sorte qu'il faut un nombre voulu par l'utilisateur de cycles d'horloge de base pour qu'il y ait échéance.
La matrice 550 est dimensionnée en profondeur pour un retard qui varie de 0 à autant de cycles de base que de cellules.
Chaque cellule peut aussi recevoir une échéance renvoyée par la partie 203 selon la programmation de la cellule programmée CP542.
De plus elle peut être mise à un par la ressource de mise au point en partie 204. La partie 203 (compatibilité) sert à gérer les priorités en cas de conflit d'accès au ressources en générant de nouveaux évènements par re-bouclage.
Cette partie est constituée d'un réseau cellulaire programmé par CP qui: autorise ou non chaque action afin qu'il n'y ait pas de conflit, - renvoie une ou plusieurs échéance pour réitérer des actions impossibles dans l'unité de temps en cours.
Les conflits en question concernent les commandes qui vont utiliser les mêmes ressources lors du même cycle de base.
La figure 6 décrit la partie 203.
Le réseau 600 est fait d'une matrice de cellules 601 à 612. Chacune d'elles sélectionne (CP620) une échéance pour la ligne horizontale qui constitue un ET câblé. Le résultat représente une incompatibilité entre échéances dans la même unité de temps (ou cycle de base).
La cellule renvoie, si programmée (CP622), le résultat dans l'échéancier pour générer une nouvelle échéance retardée et supprime l'échéance en cours.
Le recyclage des échéances doit être parfaitement contrôlé par la chaîne de programmation et accepté par le programmateur.
La partie 203 peut traiter autant d'incompatibilités que de lignes de cellules dans le réseau 600.
La partie 204 (mise au point) optionnelle est capable de consulter ou prépositionner chacune des bascules de l'échéancier, en liaison avec la RCMAP. Elle est constituée d'un décodeur qui sélectionne le groupes de bascules selon le bus de la RCMAP, qui mets à 1 ou non chaque bascule du groupe ou qui les lit. Ainsi l'utilisateur est capable d'activer ou de prévoir les requêtes en cours de mise au point par le biais de la RCMAP.
L'échéancier fonctionne sur une fréquence issue d'un signal interne ou externe. Le temps de cycle (valeur inverse de la fréquence en question) représente le temps élémentaire auquel l'utilisateur devra se référencer pour programmer le circuit.
La figure 7 décrit une cellule interne de mémorisation et de traitement logique (CIMTL).
La cellule CIMTL 700 est divisée en trois parties: - une cellule de connexion d'entrée pour transmettre les données du réseau général vers le traitement 701, - une cellule de connexion de sortie pour transmettre vers le réseau général, les données de sortie 702, - une cellule de traitement pour mémoriser, modifier les données et informer des changements d'état 703.
La figure 8 décrit la cellule de connexion d'entrée. Cette cellule sélectionne par liaison une ligne parmi toute les lignes d'entrée suivant l'instruction fournie par MI 804. Les éléments MX 801 à 804 sont de simples multiplexeurs. L'élément MI 804 est décrit ultérieurement. II transforme un groupe de commandes issues de l'échéancier en une instruction.
Globalement, la cellule est capable de prélever aléatoirement chaque ligne d'entrée et de les reporter en sortie selon l'instruction sélectionnée par les commandes.
La figure 9 décrit la cellule de connexion de sortie. Le réseau 900 active, à partir de chacune des ligne d'entrées, une porte de type collecteur ouvert sur autant de sorties que d'entrées.
La ligne du réseau général de données 905 qui se trouve connectée, forme un OU câblé avec les autres cellules.
Le mode de fonctionnement est identique à la cellule de connexion d'entrée.
Globalement, la cellule est capable d'imposer aléatoirement chaque ligne d'entrée sur les sorties collecteurs ouverts selon l'instruction sélectionnée par les commandes.
La figure 10 décrit la cellule de traitement, qui a pour rôle: - de conserver des mots logiques, - d'exécuter les équations logiques entre des valeurs mémorisées en interne et des valeurs externes, - de fournir à l'extérieur des mots logiques mémorisés, - de rendre compte à l'extérieur des changements de valeurs.
La cellule de traitement est divisée en quatre parties: - une cellule instruction MI 1005 qui génère une instruction à partir de commandes de l'échéancier, - une cellule logique de traitement logique LTL 1002 qui effectue les opérations logiques, choisies par l'instruction, sur des données issues de la cellule de connexion d'entrée et des données mémorisées dans la mémoire MEMD 1003, - une logique de test LT 1001 qui doit détecter des changements d'état sous plusieurs formes et générer des évènements vers I échéancier 100, - une mémoire à accès multiple MEMD 1003: o accès en écriture et lecture: adresse ALE, donnée écrite DE et lue DL, autorisation d'écriture CE, o accès en lecture seule: adresse ALS, donnée DLS, o accès optionnel en lecture et écriture: adresse AMAP, donnée DMAP.
La cellule reçoit une partie des actions en provenance directe de l'échéancier. Celles ci sont combinées entre elles, à l'intérieur de la Mémoire Instruction MI 1005, par des opérateurs ET pour former un groupe de sélection. Chaque sélection est activée par la présence simultanée d'une ou plusieurs commandes.
La figure 11 décrit la mémoire instruction. L'intérêt de sélectionner une combinaison 10 de commandes est d'activer une sélection: soit par la présence obligatoire de plusieurs échéances, - soit par une combinaison particulière de commandes qui forment alors un mot.
Chaque sélection active une instruction programmée dans les cellules programmées des MIE 1101 à 1109. L'instruction résultante est un OU entre les instructions programmées.
La Mémoire Instruction MI 1005 est programmée par le biais de la Ressource Centrale de Programmation RCP.
La figure 12 décrit la cellule de traitement logique LTL 1002. Les opérateurs ETP 1201 à 1203 sont des ET programmables qui font le ET avec les entrées El et E2 avec ou sans inversion. Les opérateurs OUP 1204 à 1206 sont des OU programmables qui font le OU avec toutes les sorties des ETP pour une seule sortie par opérateur. Les OUP ont une commande directe pour mettre à un la sortie. Le nombre d'opérateurs ETP et OUP définit la flexibilité et la variété des opérations applicables en une seule fois.
La cellule logique de traitement LT fournit: - l'adresse prédéfinie ou calculée de la nouvelle donnée à mémoriser et de la donnée 25 s'y trouvant, - la donnée calculée ou prédéfinie à mémoriser, - les commandes d'autorisation d'écriture par élément binaire des données à mémoriser, l'adresse prédéfinie ou calculée de la donnée à lire au profit des autres cellules de 30 traitement via la cellule de connexion de sortie.
La figure 13 décrit la cellule logique de test formée d'un groupe de LTU 1303 à 1304 par sortie événement. Chaque LTU est un OU entre les sorties, validée ou non par l'instruction: des ET 1310 à 1312 entre les entrées et les sorties inversées validées par 35 l'instruction ImO à Imn: détection changement valeur 0 à 1, - des ET 1320 à 1322 entre les entrées inversées et les sorties validées par l'instruction IdO à Idn: détection changement valeur 1 à 0.
Chaque LTU a une entrée instruction Id qui active directement la sortie événement.
Ainsi chaque LTU peut activer un événement lors d'un changement positif, négatif ou quelconque pour chaque élément binaire d'un groupe de donnée mémorisée dans la MEMD ou directement par instruction.
Les Cellules Périphériques de Communication avec l'Extérieur CPCE prennent en charge un groupe d'entrées-sorties.
Les cellules CPCE doivent: - recevoir les signaux extérieurs et générer les évènements sur changement d'état à destination de l'échéancier.
- stocker temporairement ces signaux afin de permettre la lecture de ceux ci par d'autres Cellules de Mémorisation et de Traitement Logique CIMTL ou CPCE: 2 cycles minimum, - mémoriser des signaux à sortir avec ou sans mise haute impédance.
La figure 14 montre l'architecture d'une CPCE, divisée en trois cellules: cellule de connexion 1401 des données d'entrée identique à celle de CIMTL, - la cellule de connexion 1402 de sortie identique à celle de la CIMTL, la cellule d'Entrée Sortie CES propre 1403.
La figure 15 décrit la cellule d'entrée-sortie CES.
La cellule CES 1403 est un groupe de Cellules d'Entrée-Sortie Elémentaires CESE 1502,1503 commandées par une cellule Mémoire Instruction MI identique à celle de la Cellule de Mémorisation et de Traitement Logique CIMTL.
La partie signaux d'entrée est composée: - d'un premier Registre de Synchronisation RS 1507 qui synchronise par rapport au cycle de base, d'un deuxième Registre de Retard 1508 qui retarde l'entrée pour la détection de changement d'état, - de plusieurs Registres de Mémorisation RM 1509 qui retardent le groupe d'entrée pour la lecture différée des données d'entrée, - une Logique de Test Programmable LTP 1510 programmée en statique qui détecte les changements d'état entre les entrées et les sorties de RR, d'un Registre de Sortie Donnée 1504 qui mémorise les signaux de sortie, - d'un Registre de Commande Haute Impédance RCHI 1506 de mise à haute impédance de la sortie par le tampon Haute Impédance HI 1505.
Pour les signaux d'entrée le fonctionnement est le suivant: - chaque signal d'entrée est retardé par le RS 1507.
- une logique de test 1520 active une sortie sur le passage de la sortie de RS 1507: o "0" à "1" si la Cellule Programmée CP 1521 est à 1, o "1" à "0" si la Cellule Programmée CP 1522 est à 1.
- une logique de test secondaire 1530 prend en compte certaines de ces sorties par un OU et génère séparément plusieurs évènements à destination de l'échéancier 100 suivant la programmation des CP: CP1521 pour le front montant et CP1522 pour le front descendant: ainsi l'échéancier 100 peut recevoir des évènements de changement d'état sur les entrées du circuit programmable comme dans le cas de la Cl MTL, - ces entrées sont ensuite retardées dans les Registres de Mémorisation RM 1509 afin qu'elle puissent être lues par d'autres cellules CIMTL ou CPCE, - les registres de sortie et mise haute impédance sont mis à jour sous l'action de la Mémoire d'Instruction MI 1501.
La figure 16 décrit le réseau d'interconnexion donnée qui consiste à relier toutes les cellules d'interconnexion donnée des Cellules Internes de Mémorisation et de Traitement Logique CIMTL 1604 à 1606 et des Cellules Périphériques de Communication avec l'Extérieur CPCE 1601 à 1603 de sorte qu'à chaque unité de temps il y ait échange des données entre cellules.
L'ensemble des instructions des Mémoires d'instruction MI des cellules d'interconnexion doivent rendre ces échanges compatibles en utilisant qu'une seule fois chaque ressource par unité de temps.
Le moyen de programmation doit avoir cette obligation avant de configurer chaque échange. La Ressource Centrale de Mise au Point RCMAP 1607 optionnelle consulte ou impose des données par l'extérieur alors que le circuit est en opération.
La figure 17 schématise la boucle de fonctionnement qui symbolise les liens entre les évènements dus aux changements d'états internes (CIMTL) ou externes (CPCE), ou 25 programmés et les commandes.
La figure 18 décrit la connexion évènements et commandes. Les cellules CPCE d'entrée sortie et les cellules CIMTL de traitement génèrent des évènements à destination de l'échéancier. Celui ci transforme ces évènements en échéances puis en commandes à destination des CIMTL ou CPCE. La partie ordonnancement des opérations fonctionnent sur ce principe en boucle.
La génération des évènements est soit: - déterminée par les instructions et donc par programmation, - soit provoquée par des changements d'état des données traitées pour les CIMTL et reçues pour les CPCE.
La génération des commandes et la programmation des instructions respecte la répartition des ressources sans induire de recouvrement.
On décrit, ci-dessous, le fonctionnement du circuit illustré aux figures 1 à 18. Le réseau logique est en principe relié à d'autres circuit numériques qui activent les entrées des CPCE et qui reçoivent les sorties des CPCE.
A la mise sous tension, le circuit lit les données de configuration afin de positionner 5 l'ensemble des CP.
Le mode de chargement reprend les techniques actuelles et ne fait pas l'objet d'une quelconque revendication dans la présente invention.
Le réseau logique va donc fonctionner avec deux formes d'évènements: - les évènements programmés dans le temps dans la fonction à émuler (signaux 10 d'horloges par exemple), les évènements aléatoires induis par l'extérieur ou l'intérieur du réseau logique. Sitôt qu'une entrée change d'état, la logique de test LTP du CPCE concernée transmet ce changement sous forme d'événement vers l'échéancier. L'échéancier déclenche une série d'actions qui vont à leur tour induirent
des 15 changements d'état internes dans les CIMTL ou externes dans les CPCE.
De plus, l'échéancier déclenchera d'une manière autonome des actions périodiques ou non qui auront les effets identiques aux évènements aléatoires.
L'ensemble du réseau est cadencé par une horloge unique qui représente le temps élémentaire de simulation de la fonction à émuler.
On décrit, ci-dessous, l'élaboration des données de programmation.
L'élaboration se fait en étroite relation avec un simulateur de circuit numérique.
La chaîne de production peut se réduire à un compilateur d'un fichier source unique ou d'un assemblage de fichiers sources.
Ce compilateur génère à la fois les données de programmation pour le réseau et la version du fichier source modifié pour tenir compte des possibilités du réseau logique.
Si le fichier source est remplacé par la version modifiée par le compilateur, celui: - conserve cette version sans intervention du programmateur, - reprend la version modifiée par le programmateur.
Le programmateur connaît exactement le fonctionnement de la fonction à émuler puisque le 30 réseau logique reproduit le fonctionnement du simulateur qui a servi à la validation, à l'unité de temps élémentaire près.
Le programme source dresse un ensemble d'actions conditionnés ou non mais activées par des évènements extérieurs ou intérieurs avec spécification des temps de retard. Les temps de retard sont reproduits par l'échéancier.
La présence d'actions simultanées et incompatibles sont traitées par le module de gestion des compatibilités de l'échéancier qui donne la priorité de certaines actions sur d'autres.
Les actions qui n'ont pu se produire pour cause d'incompatibilité, sont reportées ou éventuellement annulées sous contrôle de la programmation.
Le compilateur doit intégrer ces reports ou annulations d'action.
On décrit, ci-dessous, le chargement initial.
Le chargement initial consiste à décoder les données de programmation issues d'un moyen classique ( mémoire ou moyen extérieur de téléchargement) et à charger toutes les cellules programmées CP.
On décrit, ci-dessous, le fonctionnement dynamique.
Le réseau logique se trouve cadencé par une horloge unique interne ou externe, dont 10 le temps de cycle définit l'unité de base de la fonction logique à simuler.
En l'absence d'événement extérieur, l'échéancier génère des actions à partir de sa partie 3 (voir figures 2 et 6).
Ces actions activent des instructions dans les cellules CPCE et CIMTL.
La présence d'évènements extérieurs génère aussi des évènements au travers des 15 CPCE.
Les fonctions de mise au points optionnelles en liaison avec une ressource classique JTAG (Join Test Action Group) ou bus spécifique ont la possibilité : - de consulter une variable interne et de publier son état vers l'extérieur en statique, - de rendre compte de l'évolution dans le temps d'une variable interne, - d'agir sur variable interne, - de consulter l'état de l'échéancier: programme d'actions, - d'ajouter une instruction de traitement.

Claims (11)

REVENDICATIONS
1 - Circuit électronique de traitement de données destiné à émuler une fonction logique, caractérisé en ce qu'il comporte: - une horloge unique fournissant des signaux représentatifs d'unités de temps, - un réseau logique synchrone programmable traitant des valeurs par unité de temps, un moyen de détection de changement d'états, dits "évènements" de valeurs internes ou externes, - un moyen de programmation de signaux de changement d'état ou desdits évènements, - un moyen de traitement d'échéances successives fournissant, au réseau logique, des signaux représentatifs d'échéances en fonction des signaux fournis par le moyen de détection ou du moyen de programmation desdits évènements et des signaux fournis par ladite horloge, ledit moyen de traitement étant adapté à déterminer des échéances, à délais différés par programmation par le moyen de programmation, à venir fonctions des signaux fournis par ledit moyen de détection ou ledit moyen de programmation, les traitements effectués par le réseau logique étant ainsi la conséquence d'échéances successives déclenchées par des changements d'états de valeurs internes ou externes, et par une des déterminations d'échéances successives.
2 - Circuit électronique selon la revendication 1, caractérisé en ce que le réseau logique reproduit le fonctionnement d'un simulateur de circuits logiques apte à être implémenté dans un circuit électronique, l'horloge définissant des unités de temps mises en oeuvre pour la reproduction de fonctionnement dudit simulateur.
3 - Circuit électronique selon la revendication 1, caractérisé en ce que le réseau logique est adapté à émuler une fonction logique sans configuration d'éléments logiques.
4 - Circuit électronique selon l'une quelconque des revendications 1 à 3, caractérisé en ce que le réseau logique comporte des cellules internes de traitement logique et des cellules périphériques de communication avec l'extérieur du circuit électronique, les signaux fournis par le moyen de traitement d'échéances contrôlant le fonctionnement d'au moins une dite cellule interne et d'une dite cellule périphérique.
5 - Circuit électronique selon la revendication 4, caractérisé en ce que lesdites cellules communiquent des données par l'intermédiaire d'un groupe unique de lignes sur lequel s'établit un échange par unité de temps, lesdites cellules étant adaptées à générer des signaux, événements aléatoire ou programmés, vers le moyen de traitement d'échéances, ledit moyen de traitement d'échéances fournissant à chaque cellule un groupe de commande.
6 - Circuit électronique selon l'une quelconque des revendications 1, 4 ou 5, caractérisé en ce que les cellules de traitement internes sont adaptées à traiter un mot logique par unité de temps.
7 - Circuit électronique selon la revendication 6, caractérisé en ce que les cellules logiques 5 internes sont adaptées à concaténer plusieurs groupes de données provenant de plusieurs identités respectives et à mémoriser chaque mot logique concaténé.
8 - Circuit électronique selon l'une quelconque des revendications 4 à 7, caractérisé en ce que les cellules périphériques sont adaptées à échantillonner les mots logiques reçus de l'extérieur du circuit et à générer des mots logiques concaténés en fonction du sens de communication.
9 - Circuit électronique selon la revendication 5, caractérisé en ce que le réseau logique comporte un moyen spécifique de communication avec l'extérieur du circuit, le réseau logique mettant en oeuvre des mots logiques mémorisés adaptés à être consultés et modifiés par ledit moyen spécifique de communication.
10 - Simulateur, caractérisé en ce qu'il comporte un circuit électronique selon l'une quelconque des revendications 1 à 9.
11 - Emulateur, caractérisé en ce qu'il comporte un circuit électronique selon l'une quelconque des revendications 1 à 9.
FR0402419A 2004-03-08 2004-03-08 Reseau logique programmable a traitement ordonnance par echeancier Withdrawn FR2867290A1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR0402419A FR2867290A1 (fr) 2004-03-08 2004-03-08 Reseau logique programmable a traitement ordonnance par echeancier
PCT/FR2005/000529 WO2005088839A1 (fr) 2004-03-08 2005-03-07 Reseau logique programmable a traitement ordonance par echeancier
US10/585,696 US20080262819A1 (en) 2004-03-08 2005-03-07 Programmable Logic Array for Schedule-Controlled Processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0402419A FR2867290A1 (fr) 2004-03-08 2004-03-08 Reseau logique programmable a traitement ordonnance par echeancier

Publications (1)

Publication Number Publication Date
FR2867290A1 true FR2867290A1 (fr) 2005-09-09

Family

ID=34855140

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0402419A Withdrawn FR2867290A1 (fr) 2004-03-08 2004-03-08 Reseau logique programmable a traitement ordonnance par echeancier

Country Status (3)

Country Link
US (1) US20080262819A1 (fr)
FR (1) FR2867290A1 (fr)
WO (1) WO2005088839A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2932040A1 (fr) * 2008-05-30 2009-12-04 Jean Paul Petrolli Dispositif electronique d'aiguillage automatique de donnees pour le circuit simulateur.

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6058492A (en) * 1996-10-17 2000-05-02 Quickturn Design Systems, Inc. Method and apparatus for design verification using emulation and simulation
US20020133325A1 (en) * 2001-02-09 2002-09-19 Hoare Raymond R. Discrete event simulator
US6507211B1 (en) * 1999-07-29 2003-01-14 Xilinx, Inc. Programmable logic device capable of preserving user data during partial or complete reconfiguration

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6058492A (en) * 1996-10-17 2000-05-02 Quickturn Design Systems, Inc. Method and apparatus for design verification using emulation and simulation
US6507211B1 (en) * 1999-07-29 2003-01-14 Xilinx, Inc. Programmable logic device capable of preserving user data during partial or complete reconfiguration
US20020133325A1 (en) * 2001-02-09 2002-09-19 Hoare Raymond R. Discrete event simulator

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2932040A1 (fr) * 2008-05-30 2009-12-04 Jean Paul Petrolli Dispositif electronique d'aiguillage automatique de donnees pour le circuit simulateur.

Also Published As

Publication number Publication date
US20080262819A1 (en) 2008-10-23
WO2005088839A1 (fr) 2005-09-22
WO2005088839A8 (fr) 2007-01-25

Similar Documents

Publication Publication Date Title
EP1376417B1 (fr) Procédé et système d'émulation d'un circuit sous test associé à un environnement de test
US20210081258A1 (en) Synthesis Path For Transforming Concurrent Programs Into Hardware Deployable on FPGA-Based Cloud Infrastructures
CN103324512B (zh) 准备可编程设备的方法、布线开关以及机器可读存储介质
US20100100704A1 (en) Integrated circuit incorporating an array of interconnected processors executing a cycle-based program
CN103324511B (zh) 配置可编程设备的方法、可编程设备及机器可读存储介质
CA2218458C (fr) Methode et appareil utilisant des operations d'emulation et de simulation pour verifier des structures
TW201729542A (zh) 測試及配置fpga的系統與方法
GB2318664A (en) Embedded logic analyzer for a programmable logic device
US20130024178A1 (en) Playback methodology for verification components
US8027828B2 (en) Method and apparatus for synchronizing processors in a hardware emulation system
WO2005083454A1 (fr) Procede d'elaboration de fichiers de description hdl de systemes digitaux et systemes obtenus
EP1803061B1 (fr) Systeme de processeur parallele reconfigurable, modulaire et hierarchique
US10430215B1 (en) Method and system to transfer data between hardware emulator and host workstation
US7523441B2 (en) Implementing a synchronous reactive system in a graphical program
EP2956874B1 (fr) Dispositif et procédé pour accélérer la phase de mise à jour d'un noyau de simulation
FR2867290A1 (fr) Reseau logique programmable a traitement ordonnance par echeancier
FR2759178A1 (fr) Circuit de gestion de memoire dans un environnement multi-utilisateurs avec requete et priorite d'acces
TW201725862A (zh) 用於具有閂鎖器及正反器之電路設計之掃描邏輯
Ragheb et al. High-level synthesis of fpga circuits with multiple clock domains
US10423747B2 (en) Method and apparatus for supporting temporal virtualization on a target device
Wolf et al. UltraSynth: insights of a CGRA integration into a control engineering environment
EP0469507A1 (fr) Circuit intégré comprenant une cellule standard, une cellule d'application et une cellule de test
US9876729B1 (en) Method and system for efficient data streaming in an emulation system
US7908465B1 (en) Hardware emulator having a selectable write-back processor unit
US8634440B2 (en) Time-division multiplexing processing circuitry

Legal Events

Date Code Title Description
CA Change of address
ST Notification of lapse

Effective date: 20151130