FR2717923A1 - Procédé de simulation d'un circuit de mémoire à accès multiples. - Google Patents

Procédé de simulation d'un circuit de mémoire à accès multiples. Download PDF

Info

Publication number
FR2717923A1
FR2717923A1 FR9503507A FR9503507A FR2717923A1 FR 2717923 A1 FR2717923 A1 FR 2717923A1 FR 9503507 A FR9503507 A FR 9503507A FR 9503507 A FR9503507 A FR 9503507A FR 2717923 A1 FR2717923 A1 FR 2717923A1
Authority
FR
France
Prior art keywords
memory
access memory
network
write
read
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.)
Granted
Application number
FR9503507A
Other languages
English (en)
Other versions
FR2717923B1 (fr
Inventor
Thomas B Huang
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.)
Quickturn Design Systems Inc
Original Assignee
Quickturn Design Systems Inc
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 Quickturn Design Systems Inc filed Critical Quickturn Design Systems Inc
Publication of FR2717923A1 publication Critical patent/FR2717923A1/fr
Application granted granted Critical
Publication of FR2717923B1 publication Critical patent/FR2717923B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/16Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Static Random-Access Memory (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Dram (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

L'invention concerne la simulation d'un circuit de mémoire à l'aide des ressources de mémoire de dispositifs logiques programmables. Le circuit de mémoire à accès multiples (50) à réaliser comprend un réseau de mémoire ayant des positions d'enregistrement de données, des accès de lecture et des accès d'écriture. On crée de multiples réseaux de mémoire dupliqués (52a,..., 54a,...) pour établir autant d'accès de lecture et d'accès d'écriture que dans le circuit de mémoire à accès multiples. On marque les positions de mémoire dans les réseaux de mémoire dupliqués, pour indiquer la position de mémoire dans laquelle des données ont été écrites en dernier, pour que seules ces données soient lues par les divers accès de lecture. Application à la conception des circuits intégrés.

Description

La présente invention concerne de façon générale la simulation du matériel
électronique, et elle concerne plus particulièrement la simulation d'une mémoire à accès multiples. On utilise divers outils pendant la conception de circuits intégrés. L'un de ces outils est un système de simulation de matériel. Des exemples de tels systèmes de simulation sont décrits dans les brevets des E.U.A. ne 109 353 délivré à Sample et al. et n 5 036 473 délivré à Butts et al. Dans la conception de circuits intégrés, on
génère une description du circuit intégré sous la forme de
ce que l'on appelle une "liste de réseau". La liste de
réseau est une description des composants et des inter-
connexions électriques du circuit intégré. On peut l'utiliser pour créer tous les masques nécessaires pour la
fabrication réelle du circuit intégré.
Comme décrit dans les brevets de Sample et al.
et de Butts et al. précités, on peut utiliser la technolo-
gie de simulation pour garantir que le circuit intégré en cours de conception fonctionnera réellement dans le système dans lequel il sera installé. Des systèmes de
simulation reconfigurables comprennent de façon caracté-
ristique de multiples dispositifs logiques reconfigurables
interconnectés, tels que des réseaux de portes programma-
bles au moment de l'utilisation. Des dispositifs logiques
reconfigurables conviennent parfaitement pour la simula-
tion des circuits logiques d'une structure de circuit intégré donnée. Cependant, des circuits intégrés modernes tels que des microprocesseurs comportent également des circuits de mémoire qui peuvent être difficiles à simuler correctement. En outre, les circuits de mémoire sont souvent d'une conception à accès multiples, qui est encore
plus difficile à simuler correctement.
Des circuits de mémoire caractéristiques sont conçus de façon à avoir un ensemble de positions de mémoire. Chaque position de mémoire peut enregistrer un certain nombre de bits. Les circuits de mémoire sont classés de façon caractéristique par le nombre de positions de mémoire qu'ils comportent (on appelle souvent ce nombre la "profondeur" du cicuit de mémoire) et par le nombre de bits que l'on peut enregistrer dans chaque position (on appelle souvent ce nombre la "largeur" du circuit de mémoire). Ainsi, un circuit de mémoire ayant trente-deux positions, avec une configuration dans laquelle chaque position contient huit bits, serait appelé un circuit de mémoire de "trente-deux par huit". Lorsque le circuit de mémoire a des accès multiples, il est en outre défini par le nombre d'accès d'écriture et le nombre
d'accès de lecture.
Dans une mémoire à accès multiples classique, on peut écrire des données dans des positions de mémoire par l'intermédiaire de différents accès. Chaque accès d'écriture permet d'accéder à chaque position de mémoire,
et chaque accès d'écriture permet d'écrire en même temps.
Cependant, différents accès n'ont pas la possibilité d'écrire des données en même temps dans la même position de mémoire. De façon similaire, chaque accès de lecture peut accéder à chaque position de mémoire et chaque accès de lecture peut lire des données en même temps. Cependant, contrairement aux accès d'écriture, différents accès de lecture peuvent lire des données à la même adresse en même temps. De nouvelles générations de dispositifs logiques
reconfigurables ont la possibilité de définir la configu-
ration de circuits de mémoire dans leurs blocs logiques reconfigurables, ou CLB. La famille XC4000 de Xilinx, Inc., San Jose, Californie, constitue un tel dispositif logique reconfigurable. Dans la famille XC4000, chaque CLB peut réaliser une mémoire vive (RAM) statique de seize par deux ou trente-deux par un. Il n'y a cependant pas de
possibilité de définir une mémoire à accès multiples.
Un exemple d'un procédé pour réaliser des circuits de mémoire à accès multiples dans un système de simulation est décrit dans la demande de brevet des E.U.A. en instance n 08/067571, intitulée Multi-Port Memory Emulation. Ce procédé convertit en définitions logiques les définitions de mémoire au niveau du transistor dans la liste de réseau, de façon à réaliser la mémoire dans un réseau de portes programmable au moment de l'utilisation,
de la marque Xilinx.
Cependant, ce procédé exige une capacité élevée
de blocs logiques reconfigurables du système de simula-
tion. Il serait donc souhaitable d'avoir un procédé pour simuler des circuits de mémoire à accès multiples qui
n'exige pas un grand nombre de blocs logiques reconfigu-
rables (ou CLB).
La présente invention élimine les problèmes et les inconvénients de l'art antérieur par un procédé original de duplication du réseau de mémoire du circuit de mémoire à accès multiples qui est simulé et de marquage des positions de mémoire dans les réseaux de mémoire dupliqués dans lesquels des données ont été écrites, après que des données ont été écrites dans la même position de mémoire dans une duplication différente du réseau de mémoire. On va maintenant décrire plus particulièrement les caractéristiques de l'invention mentionnées ci- dessus, ainsi que d'autres caractéristiques préférées, avec divers
détails originaux de réalisation et de combinaison d'élé-
ments, et en se référant aux dessins annexés.On notera que les procédés et les circuits particuliers qui mettent en oeuvre l'invention sont représentés uniquement à titre
d'illustration et non à titre de limitations de l'inven-
tion. L'homme de l'art comprendra que les principes et les caractéristiques de l'invention peuvent être employés dans de nombreux modes de réalisation divers, sans sortir du
cadre de l'invention.
On va maintenant se référer aux dessins annexés qui montrent des modes de réalisation illustratifs
d'aspects de l'invention, faisant ressortir des caracté-
ristiques et des avantages originaux.
La figure 1 est un schéma synoptique d'un
circuit de mémoire vive à accès multiples.
La figure 2 est un schéma d'un bloc logique de configuration d'un réseau de portes programmables au
moment de l'utilisation, du type Xilinx.
La figure 3 est un organigramme d'un mode de réalisation de la présente invention qui est utilisé pour
simuler des circuits de mémoire à accès multiples.
La figure 4a est un schéma synoptique d'un circuit de mémoire vive à accès multiples qui est réalisé dans des réseaux de mémoire à accès d'écriture et des réseaux de mémoire à accès de lecture conformes à la
présente invention.
La figure 4b est un schéma synoptique d'une partie des registres de marqueurs qui sont utilisés au moment de la simulation du circuit de mémoire vive à accès
multiples qui est représenté sur la figure 4a.
La figure 4c est un schéma synoptique d'une partie des registres de marqueurs qui sont utilisés au moment de la simulation du circuit de mémoire vive à accès
multiples qui est représenté sur la figure 4a.
La figure 4d est un schéma synoptique d'une partie des registres de marqueurs qui sont utilisés au moment de la simulation du circuit de mémoire vive à accès
multiples qui est représenté sur la figure 4a.
La figure 5 est un schéma montrant pourquoi il est important de suivre les dernières données écrites pour
une position de mémoire particulière.
Les figures 6a et 6b sont un schéma synoptique d'un exemple d'une forme de réalisation d'un circuit de mémoire à accès multiples utilisant les principes de la
présente invention.
On va maintenant décrire le procédé conforme à la présente invention qui est actuellement préféré, en se
référant aux figures.
La figure 1 montre un circuit de mémoire à accès multiples 10 de l'art antérieur. Le circuit 10 de la figure 1 comprend deux accès d'écriture 12 et 14 et trois accès de lecture 16, 18 et 20. Les accès d'écriture 12 et 14 permettent d'écrire dans n'importe quelle position de mémoire dans le réseau de mémoire 22 du circuit de mémoire , et les accès de lecture 16, 18 et 20 permettent de lire dans n'importe quelle position de mémoire dans le réseau de mémoire 22 du circuit de mémoire 10. Le nombre d'accès d'écriture et le nombre d'accès de lecture sur la figure 1 ne constituent que des exemples. Un circuit de mémoire à accès multiples peut avoir moins d'accès d'écriture et de lecture que ce qui est représenté, ou plus d'accès d'écriture et d'accès de lecture que ce qui
est représenté.
La figure 2 montre un schéma d'un CLB 30 d'un dispositif logique reconfigurable de la famille XC4000. Le CLB 30 est formé par des générateurs de fonctions 32 et 34. Ces générateurs de fonctions 32 et 34 contiennent des tables qui sont utilisées au moment de la réalisation de fonctions logiques. Lorsque des circuits de mémoire sont réalisés dans les CLB 30, les tables qu'ils contiennent fonctionnent en mémoires vives statiques. Cependant, lorsque les générateurs de fonctions dans chaque CLB 30 fonctionnent en mémoires vives statiques, ils ne sont pas capables de réaliser des circuits de mémoire à accès multiples. Pour réaliser des circuits de mémoire à accès multiples dans un système de simulation, les CLB sont
utilisés en circuits de mémoire à un seul accès. Cepen-
dant, les circuits de mémoire à un seul accès sont utili-
sés de façon à simuler un circuit de mémoire à accès multiples. La figure 3 montre un organigramme d'un mode de réalisation de la présente invention. La figure 3 montre qu'une étape 1000 dans un mode de réalisation de la
présente invention consiste à charger la description de
liste de réseau de la structure à simuler. A l'étape 1100, le système détermine qu'une instance de mémoire apparaît dans une liste de réseau qui doit être définie. Ceci vient
du fait que les circuits de mémoire à simuler sont généra-
lement définis avec des transistors, avec lesquels des circuits de simulation ne peuvent généralement pas travailler. La définition d'instance représentée sur la
figure 3 concerne un circuit de mémoire à accès multiples.
Des définitions d'instance multiples peuvent apparaître
pour chaque liste de réseau qui fait l'objet d'une simula-
tion. Après la définition d'instance 1100, le réseau 22 du circuit de mémoire à accès multiples est généré à l'étape 1300. En plus de la génération du réseau 22 à l'étape 1300, le réseau MARQUEURS est généré à l'étape 1200. Comme on l'envisagera, le réseau MARQUEURS comprend un ensemble de registres de marqueurs et d'éléments logiques associés à ces registres. Le nombre de registres de marqueurs est déterminé par le nombre d'accès d'écriture du circuit de mémoire à accès multiples qui est simulé, multiplié par la profondeur du circuit de mémoire qui est simulé. Après que le réseau de mémoire a été généré à l'étape 1300, des réseaux de mémoire à accès de lecture sont générés à l'étape 1400. Ensuite, les réseaux de mémoire à accès d'écriture sont créés à l'étape 1500. Il existe un réseau de mémoire à accès d'écriture pour chaque accès d'écriture
du circuit de mémoire à accès multiples qui est simulé.
Chaque accès d'écriture est formé par l'un respectif des réseaux de mémoire à accès de lecture qui sont générés à
l'étape 1400.
Après que les réseaux de mémoire à accès d'écri-
ture ont été créés à l'étape 1500, ils sont fusionnés avec le réseau MARQUEURS et la liste de réseau, pour générer à l'étape 1600 l'instance de mémoire qui est définie à l'étape 1100. A l'étape 1700, une compilation de mémoire à un seul accès a lieu. Cette étape 1700 peut utiliser le logiciel de compilation de mémoire qui est fourni par un fournisseur de circuits logiques programmables, tel que Xilinx. A l'étape 1800, la liste de réseau de mémoire aplatie est générée. A l'étape 1900, d'autres listes de réseau sont compilées. Finalement, à l'étape 2000, le circuit de mémoire à accès multiples peut être simulé dans
le système de destination du circuit qui est simulé.
Dans la présente invention, on commence par dupliquer le réseau de mémoire 22 du circuit de mémoire à accès multiples à simuler. Le nombre de fois que le réseau de mémoire 22 est dupliqué est déterminé par le nombre d'accès de lecture que comporte le circuit de mémoire à accès multiples à simuler. Pour chaque accès de lecture que comporte le circuit de mémoire à accès multiples à simuler, un réseau de mémoire à accès de lecture sera créé. Chaque réseau de mémoire à accès de lecture est constitué par une copie du réseau de mémoire 22, et il contient donc chacune des positions de mémoire du réseau de mémoire 22. Des réseaux de mémoire à accès de lecture sont créés par la duplication des parties de la liste de
réseau qui décrivent le réseau de mémoire 22.
Après que les réseaux de mémoire à accès de lecture ont été créés, des réseaux de mémoire à accès d'écriture sont créés. Des réseaux de mémoire à accès d'écriture sont créés pour chaque accès d'écriture du circuit de mémoire à accès multiples qui est simulé. Les réseaux de mémoire à accès d'écriture comprennent une copie de chaque réseau de mémoire à accès de lecture qui a été dupliqué pour chaque accès de lecture. Par conséquent, chaque réseau de mémoire à accès d'écriture contient un réseau de mémoire à accès de lecture pour chaque accès de lecture du circuit de mémoire à accès multiples qui est simulé. La figure 4a représente un schéma synoptique de ceci. La figure 4a montre une mémoire à accès multiples 50 avec n accès de lecture et m accès d'écriture. Des réseaux de mémoire à accès de lecture dupliqués 52a, 52b.
52n du réseau de mémoire réel 22 du circuit de mémoire à accès multiples qui est simulé, sont créés pour chaque accès de lecture. Ensuite, chaque réseau de mémoire à accès de lecture 52a, 52b... 52n est dupliqué pour chaque accès d'écriture, pour créer ainsi des réseaux de mémoire à accès d'écriture 54a, 54b... 54m. Plus précisément, le réseau de mémoire à accès d'écriture 54a est formé par des réseaux de mémoire à accès de lecture 52a, 52b... 52n. Le réseau de mémoire à accès d'écriture 54b est constitué par..DTD: des réseaux de mémoire à accès de lecture 52a, 52b...
52n. Le réseau de mémoire à accès d'écriture 54m est constitué par des réseaux de mémoire à accès de lecture 52am, 52bm... 52nm. Cette architecture permet d'écrire des données à partir d'accès d'écriture multiples et de lire des données à partir d'accès de lecture multiples,
comme on l'envisagera ci-dessous.
Lorsque des données sont écrites dans une position de mémoire dans un circuit de mémoire à accès multiples tel que celui qui est représenté sur la figure 1, ces données à écrire remplacent les données qui se trouvent à cette position. Cependant, dans le circuit de mémoire à accès multiples de la présente invention, il n'est pas possible de remplacer les données dans cette position de mémoire, du fait que cette position de mémoire a été dupliquée dans de nombreux réseaux de mémoire à accès de lecture. Si les données à écrire dans une position de mémoire particulière étaient remplacées à tous les endroits auxquels cette position a été dupliquée, le système serait trop lent pour pouvoir être utilisé en pratique. Par conséquent, lorsque des données doivent être écrites dans une position de mémoire par l'intermédiaire d'un accès d'écriture particulier, elles sont écrites dans cette position de mémoire dans chacun des réseaux de mémoire à accès de lecture dupliqués qui constituent le réseau de mémoire à accès d'écriture associé à l'accès
d'écriture réel accomplissant l'opération d'écriture.
Cependant, les données ne sont pas écrites dans les autres réseaux de mémoire à accès de lecture qui constituent les réseaux de mémoire à accès d'écriture n'effectuant pas
l'opération d'écriture.
Cette configuration permet une simulation complète de circuits de mémoire à accès multiples dans des circuits logiques programmables qui ne procurent que des circuits de mémoire à un seul accès. Cependant, du fait que les données sont écrites seulement dans les réseaux de S2mSbm nm mémoire à accès de lecture 52am, 52bm... 52n se trouvant à l'intérieur du réseau de mémoire à accès d'écriture 54m qui a écrit les données, il est possible qu'une position de mémoire particulière dans l'un des réseaux de mémoire à accès de lecture 52nm dans un réseau de mémoire à accès
d'écriture 54m particulier, contienne des données diffé-
rentes de celles qui se trouvent à la même position de mémoire dans un réseau de mémoire à accès de lecture i dupliqué, par exemple le réseau 52a,qui fait partie d'un réseau de mémoire à accès d'écriture différent, par
exemple le réseau 54b. Il est donc primordial que l'archi-
tecture du système soit telle que les accès de lecture 56a, 56b... 56n lisent les données pour une position de mémoire particulière dans laquelle l'écriture a eu lieu le
plus récemment.
L'accès de mémoire n 1, 56a, comporte des entrées qui sont connectées aux premiers réseaux de mémoire à accès de lecture 52a, 52a1... 52am dans chacun mémoire àaccès delecture 2a, 52a.. 52am dns chacu des réseaux de mémoire à accès d'écriture 54a, 54b... 54m. Chacune des entrées provenant des réseaux de mémoire à accès de lecture 52a, 52a... 52am est connectée à un circuit d'attaque 60WmRn. L'accès de lecture n 2, 56b, comporte des entrées connectées aux seconds réseaux de 1 m mémoire à accès de lecture 52b, 52b... 52b dans chacun
des réseaux de mémoire à accès d'écriture 54a, 54b...
54m. L'accès de lecture n n. 56n, comporte des entrées connectées aux nièmes réseaux de mémoire à accès de 1 m lecture 52n, 52n... 52n dans chacun des réseaux de
mémoire à accès d'écriture 54a, 54b... 54m.
On va maintenant se référer à la figure 5 pour montrer un exemple de la raison pour laquelle il est primordial que les accès de lecture lisent les données
écrites en dernier pour une position de mémoire particu-
lière. Si des données pour une position de mémoire parti-
culière sont écrites par l'intermédiaire de l'accès d'écriture n 1, elles sont écrites dans la position de mémoire dans chaque réseau de mémoire à accès de lecture pour ce réseau de mémoire à accès d'écriture particulier,
qui est représentée dans cet exemple par un symbole *.
Ensuite, si des données sont écrites à cette même position par l'intermédiaire de l'accès d'écriture n 2, elles seront écrites seulement dans la position de mémoire dans chaque réseau de mémoire à accès de lecture pour ce réseau
de mémoire à accès d'écriture particulier, qui est repré-
sentée par un X dans cet exemple. Ainsi, la même position
de mémoire dans chaque réseau de mémoire à accès d'écri-
ture contient des données enregistrées différentes. Pour que la simulation du circuit de mémoire à accès multiples soit exacte, les dernières données écrites dans cette 1l position de mémoire doivent être lues par l'accès de lecture sélectionné, tandis que les données plus anciennes
doivent être négligées.
Pour garantir que l'accès de lecture sélectionné lise des données dans la position de mémoire se trouvant dans le réseau de mémoire à accès de lecture correct, on utilise une série de registres de marqueurs. On utilise des registres de marqueurs pour faire en sorte que seules les dernières données écrites pour une position de mémoire particulière soient lues dans le circuit de mémoire simulé. Le nombre de registres de marqueurs qui sont nécessaires est déterminé par la profondeur et par le nombre d'accès d'écriture du circuit de mémoire à accès
multiples à simuler.
On décrira l'architecture des registres de marqueurs en se référant aux figures 4a-4d. Comme on l'a
envisagé, le nombre de registres de marqueurs est déter-
miné en multipliant le nombre d'accès d'écriture par le nombre de positions de mémoire. Dans la mémoire à accès multiples qui est représentée sur la figure 4a, il y a m
accès d'écriture et x positions de mémoire. Par consé-
quent, il y aurait m*x registres de marqueurs. Les figures
4b-4d montrent l'architecture des registres de marqueurs.
Les registres de marqueurs sont disposés de façon que les registres de marqueurs particuliers associés à un réseau de mémoire à accès d'écriture particulier soient groupés ensemble. Comme on le montrera, chaque registre de
marqueur peut être une bascule de type RS (ou restaura-
tion-instauration). La figure 4b montre les registres de marqueurs qui sont associés au réseau de mémoire à accès d'écriture 54a. La figure 4c montre les registres de marqueurs qui
sont associés au réseau de mémoire à accès d'écriture 54b.
La figure 4d montre les registres de marqueurs qui sont associés au réseau de mémoire à accès d'écriture 54m. Il y aura un registre de marqueur pour chaque position de mémoire dans un réseau de mémoire à accès d'écriture. Par conséquent, sur la figure 4b, un registre de marqueur lOOa1 est utilisé pour marquer les données écrites dans la position de mémoire n 1 dans le réseau de mémoire à accès d'écriture n 1, 54a, si ce sont les dernières données écrites dans cette position. Du fait qu'un registre de marqueur est créé pour chaque position de mémoire dans le réseau de mémoire à accès d'écriture, on peut créer un nombre quelconque de registres de marqueurs, avec un maximum de lOOx1 registres de marqueurs. En se référant aux figures 4b, 4d, on note que les registres de marqueurs i 2m lO0a, 10Oa2 et 100am garantissent que les dernières données écrites dans la position de mémoire n0 1 sont lues
par l'intermédiaire de chaque accès de lecture. Les regis-
i 2 m tres de marqueurs 10Ox1, 10Ox2 et 10Oxm garantissent que les dernières données écrites dans la position de mémoire x sont lues par l'intermédiaire de chaque accès de lecture. La logique d'entrée pour chaque registre de i i 2 2m
marqueur 100a... lOOx, 100a2... 10Ox2 et 100am...
Oxm est la suivante. Un signal de sortie d'une première i i 2 2m
porte ET 105a... 105x, 105a... 105x2 et 105am...
xm ayant des entrées pour chaque ligne de validation d'écriture, c'est-à-dire la ligne de validation d'écriture
n 1 (W1), la ligne de validation d'écriture n0 2 (W2)...
la ligne de validation d'écriture n m (Wm), est respec-
tivement appliqué à une seconde porte ET 110a... lOx1 2 2 m m 0llOa... lOx et 110am... 11Oxm. Les premières portes i 1 ET 105a... 105x, associées aux registres de marqueurs a... lOOx1 pour les première,... x-ième positions de
mémoire dans le premier réseau de mémoire à accès d'écri-
ture, ont leur entrée W1 fixée à l'état "vrai", tandis que les entrées W2... W sont fixées à l'état "faux". Les secondes portes ET 2 105x2 secondes portes ET 105a... 105x associées aux registres 2 2 -im de marqueurs 100a... 0lx pour les premiere... x-ième positions de mémoire dans le second réseau de mémoire à accès d'écriture, ont leur entrée W2 fixée à l'état "vrai", tandis que les entrées W1... Wm sont fixées à l'état "faux". Enfin, les m-ièmes portes ET 105am... xm associées aux registres de marqueurs 10Oam... 10Oxm pour les première... x-ième positions de mémoire dans le m-ième réseau de mémoire à accès d'écriture ont leur entrée W fixée à l'état "vrai", tandis que leurs entrées m
W1.. Wm_1 sont fixées à l'état 'faux".
La seconde entrée de la seconde porte ET 10la1 i 2 2 mm 11Ox, lia... 11Ox2 et 11Oam... 110xm est l'entrée de validation d'écriture pour la position particulière dans le réseau de mémoire à accès d'écriture, par exemple W1Ll, qui est l'entrée de validation pour la première position de mémoire. Le signal de sortie de la seconde i 1. 2 m
porte ET 110a... 1Ox, 1a.... 110x2 et 10a...
liOx est le signal INSTAURATION pour cette position de
mémoire particulière, que l'on désignera conventionnelle-
ment par SmLx, en désignant par m l'accès d'écriture
particulier et par x la position de mémoire particulière.
Ce signal S L est appliqué à l'entrée INSTAURATION des mx i1 2 2 registres de marqueurs 100a... lOOx, 100la... 10Ox2 et m m
am... 10Oxm.
Le signal de sortie d'une première porte OU
respective 115a.. 115, 115a... 115x et 115am...
x est appliqué à l'entrée RESTAURATION des registres i i 22 de marqueurs respectifs 100la... lOOx, 100a2... 100x2 et 100am... lOO1xm Les signaux d'entrée de la première porte OU 115a1.. 115x, 115a... 115x et 115am
xm sont les signaux INSTAURATION SmL qui sont appli-
m x qués aux registres de marqueurs associés à la même
position de mémoire pour les autres accès.
Le signal de sortie de chaque registre de 1. 2 2 m marqueur 100a... 10Ox, 100a... 10Ox et 100am
Oxm est associé à un accès d'écriture, un accès de lec-
ture et une position de mémoire, et il indique si une position de mémoire particulière d'un réseau de mémoire à accès de lecture dans une mémoire à accès d'écriture contient les dernières données écrites pour une position de mémoire particulière qui a fait l'objet d'une opération
d'écriture dans cette mémoire. Par conséquent, les regis-
tres de marqueurs forment un réseau tridimensionnel, comprenant une dimension d'accès d'écriture, une dimension d'accès de lecture et une dimension de position de mémoire. La convention que l'on utilise dans cette demande pour les signaux de sortie des registres de marqueurs est MARQUEURWm Rn Lx' Du fait que les données écrites par l'intermédiaire d'un accès d'écriture particulier sont écrites à la même position de mémoire dans chaque réseau de mémoire à accès de lecture de ce réseau de mémoire à accès d'écriture, le signal de sortie de chaque registre de marqueur sera divisé de façon à créer un signal MARQUEURWm Rn Lx pour chaque réseau de mémoire à accès de lecture. Par exemple, sur la figure 4b, le signal de sortie du registre de marqueur 100a crée MARQUEURW1 R1 Li' MARQUEURWl R2 Ll ' MARQUEURw1 Rn Li
Les sorties des registres de marqueurs 100a...
1000 iOOa 1x2 mm ox,100a... 10ox et 10am... lOOx, M EU Rn _Lx sont connectées à une entrée d'une troisième porte ET Wm Rn Lx L'autre entrée de la troisième porte ET Wm Rn Lx est l'entrée de validation de lecture pour la position de mémoire qui est associée à MARQUEURWm Rn Lx' Par exemple, les signaux de sortie d'un registre de marqueur 100a, que l'on désigne par MARQUEURW1 Rl Ll' MARQUEURWI R2 L1... MARQUEURW1 Rn Ll du fait qu'ils marquent la première position de mémoire dans les premier, second,... n-ième réseaux de mémoire à accès de lecture dans le premier réseau de mémoire à accès d'écriture 54a, sont appliqués aux troisièmes portes ET respectives Wl RiLi' 120Wl R2 L1. ' 120Wl Rn Li' Les entrées de validation de lecture pour la première position de mémoire RiLl R2L1... RnL1 sont respectivement les autres entrées des troisièmes portes ET W R L ' 120Wl R2 L1 ' 120Wl Rn LI' Les troisièmes portes ET 120Wm Rn Lx sont dispo-
sées de façon que celles qui sont associées à un réseau de mémoire à accès de lecture particulier d'un réseau de mémoire à accès d'écriture particulier aient leurs signaux de sortie émis vers une seconde porte OU spécifique Wn Rn' Par exemple, le signal de sortie de la troisième porte ET 120Wl R L1 est appliqué à une entrée de la seconde porte OU 125Wl R1i' De plus, le signal de sortie de W la troisième porte ET 120W1 R1 Lx est appliqué à une entrée de la même seconde porte OU 125WR1 R' Les signaux de sortie des diverses secondes portes OU 125Wm Rn créent un signal de marqueur final, MarqueUimRn, qui indique si le réseau de mémoire à accès
de lecture pour cette mémoire à accès d'écriture particu-
lière contient les dernières données écrites pour une position de mémoire. Ces signaux de sortie MarqueurWmRn des secondes portes OU 125Wm Rn sont appliqués aux divers circuits d'attaque 60WmRn des accès de lecture 56a, 56b 25... 56n, et ils valident ce circuit d'attaque si le réseau de mémoire à accès de lecture auquel le circuit considéré est connecté contient les dernières données écrites pour
une position de mémoire particulière, ou bien ils invali-
dent ce circuit d'attaque si le réseau de mémoire à accès de lecture pour cette position particulière ne contient pas les dernières données écrites pour une position particulière. 1 r Les registres de marqueurs 100a... 10Ox lOOa2... 10Ox2 et 100am... 10Oxm garantissent que seules les dernières données écrites pour une position de mémoire particulière sont lues à partir de l'accès de lecture sélectionné. Par exemple, si un signal de validation d'écriture apparaît sur l'accès d'écriture n 1 54a (W1), pour écrire un "un" logique à la position de mémoire n 1 (L1), le système de simulation de la présente invention écrit un "un" logique dans chaque position L1 dans chaque
réseau de mémoire à accès de lecture 52a, 52b... 52n.
Pendant le temps au cours duquel l'opération d'écriture a lieu, les signaux de sortie de lecture sont mémorisés par un circuit de bascules (voir l'exemple des figures 6a-6b), pour garantir que les données lues ne sont pas écrites dans le cas o un signal de validation de lecture et un signal de validation d'écriture apparaissent en même temps. Pendant que les données sont écrites dans les réseaux de mémoire à accès de lecure 52a, 52b... 52n, le
signal de validation d'écriture est émis vers les regis-
tres de marqueurs pour la position de mémoire particu-
lière. Ce signal de validation d'écriture W1 sera appliqué par l'intermédiaire de chacune des premières portes ET i i 2 2 m m a... 105x, 105a... 105x et 105a... 105xm. Du fait que W1 sera à l'état "vrai" et que W2 et W3 seront inversés de "faux" à "vrai", le signal de sortie des premières portes ET 105al... 105x associées au premier réseau de mémoire à accès d'écriture 54a sera un signal à l'état "vrai" (on notera que le signal W1 sera également
appliqué à toutes les autres premières portes ET 105a...
2 mm 105x 105am... 105xm, mais du fait que le signal W1 à l'état "vrai" sera appliqué sous la forme d'un signal à 2 2 m
l'état "faux" à ces portes ET 105a... 105x, 105a...
m 2 x, le signal de sortie de ces autres portes ET 105a 2 m m x, 105a... 105x devra être à l'état "faux"). Du fait que WlL1 sera à l'état "vrai", tandis que W1Lx sera à l'état "faux" (un signal de validation d'écriture n'est apparu que pour L1), seul le signal de sortie de la seconde porte ET 110a associé à la première position de mémoire sera à l'état "vrai". Ainsi, le signal S1L1 sera à l'état "vrai", ce qui présentera un signal à l'état "vrai" i
sur l'entrée "INSTAURATION" du registre de marqueur 100a.
Simultanément, du fait que les signaux S2L et SmL1 seront à l'état "faux", la première porte OU 115a présentera un état "faux" sur l'entrée RESTAURATION du registre de
marqueur 100a.
Par conséquent, les signaux d'entrée respectifs MARQUEU RW1- Ri-Li' MARQUEURw1 R2 L1... MARQUEURw1_RnL1 qui sont appliqués aux troisièmes portes ET respectives Wl R1 Li 120Wl R2 L1 '' 120Wl Rn Ll seront à l'état "vrai". S'il apparaît un signal de validation de lecture pour la position de mémoire n 1 (R1L1, R2L1... RnL1), ce signal sera également appliqué, au moment o il apparaît, aux troisièmes portes ET 120Wl Ri Li' W1 R2 L1 ' 120Wl Rn Li' qui présenteront alors un état "vrai" aux secondes portes OU 125W1 Ri' 125W1 R2 Wl Rn' qui produiront un signal de sortie à l'état "vrai". Ces signaux de sortie, portant les désignations MarqueurW1 R Marqueur WlR2... Marqueur WlRnseront appliqués à des circuits d'attaque 60Wl R1' 60W l R2 60Wl Rn pour émettre le "un" logique à partir de la position de mémoire no 1 dans le premier réseau de mémoire
à accès d'écriture.
Si maintenant, après que les données ont été
écrites à la position de mémoire n 1 (L1) par l'intermé-
diaire de l'accès d'écriture n 1 54a, de nouvelles données, par exemple un "zéro" logique, sont écrites à la position de mémoire no 1 (L1), par l'intermédiaire de l'accès d'écriture n 2 54b, les actions suivantes se produiront pour garantir que les données qui sont lues sont seulement les dernières données écrites pour Li
c'est-à-dire un "zéro", et non les données écrites précé-
demment à l'accès d'écriture n 1 54a, c'est-à-dire un "un". Lorsque le signal de validation d'écriture apparaît sur l'accès d'écriture n 2 54b (W2), pour écrire un "zéro" logique, le système de simulation de la présente invention écrira un "zéro" logique dans chaque position de mémoire n 1 L1 se trouvant dans les réseaux de mémoire à accès de lecture 52a1 52b... 52n. Pendant le temps au cours duquel l'opération d'écriture a lieu, les signaux de
sortie de lecture sont mémorisés par un circuit de bascu-
les (voir l'exemple des figures 6a-6b), pour garantir que les données lues ne sont pas écrites dans le cas o un signal de validation de lecture et un signal de validation
d'écriture apparaissent en même temps.
Au moment o les données sont écrites dans les réseaux de mémoire à accès de lecture 52a, 52b... 52n le signal de validation d'écriture W2 est émis vers la logique de registres de marqueurs. Ce signal de validation d'écriture W2 sera appliqué aux premières portes ET 105a1 i 2 2 mm x, 105a... 105x et 105a... 105x. Du fait que W2 sera à l'état "vrai" et que W1 et W3 seront inversés pour passer de l'état "faux" à l'état "vrai", le signal de sortie des premières portes ET 105a... 105x associées au second réseau de mémoire à accès d'écriture 54b sera à l'état "vrai" (on notera que le signal W2 à l'état "vrai" sera également appliqué à toutes les autres premières i i m portes ET 10a1... 105x et 105a... 105x, mais du fait que l'inverse de W2 sera appliqué à ces autres premières portes ET 105a... 105x et 105a... 105x, le signal de i i m sortie de ces autres portes ET 105a... 105x et 105a xm devra être à l'état "faux"). Du fait que W2L1 sera à l'état "vrai", tandis que W2Lx sera à l'état "faux" (un signal de validation d'écriture est apparu seulement pour L1), seul le signal de sortie de la seconde porte ET a2 associéeà la première position de mémoire sera à l'état "vrai". Par conséquent, le signal S2L1 sera à l'état "vrai", ce qui présentera un état "vrai' à l'entrée INSTAURATION du registre de marqueur 100a. Simultanément, du fait que les signaux SlL1 et S L1 seront à l'état "faux", la première porte OU 105a présentera un état "faux" à l'entrée RESTAURATION du registre de marqueur a2 Ainsi, les signaux MARQUEURW2 R1 LI'
MARQUEURW2_R2 Li... MARQUEURW2 Rn Li qui sont respecti-
velment appliqués aux troisièmes portes ET 120W2 R1 Li' 12W2 R2 Li '' 120W2 Rn Li' seront respectivement à l'état "vrai". Si un signal de validation de lecture pour
la position de mémoire n 1 (R1L1, R2L1... RnL1) appa-
raît, ce signal, au moment de son apparition, sera appli-
qué à la troisième porte ET 120W2 R 1 LI' 120W2 R2 L1 W2 Rn L1 associée aux signaux d'entrée MARQUEURW2 R1 Li' MARQUEUR2 R2 L1... MARQUEUR W2 Rn Li' et cette porte présentera alors un état "vrai" à la seconde porte OU W2 R' 125W2 R2...' 125W2 Rn qui produira des signaux de sortie à l'état "vrai". Ces signaux de sortie, que l'on désigne par Marqueurw2R1, Marqueurw2 2... MarqueurW2 Rn seront appliqués à des circuits d'attaque 60w2 Ri' 60W2 R2 25.. 60W2 Rn pour émettre l'état logique "un" à partir de la position de mémoire n 1 dans le second réseau de mémoire à accès d'écriture 54b. Du fait que les circuits d'attaque 60WlRI et 60Wm R1 dans l'accès de lecture no 1 56a, les circuits d'attaque 601 R2 et 60Wm R2 et les Wl1R2 Wm-R2 circuits d'attaque 60Wl Rn et 60Wm Rn seront invalidés par
les registres de marqueurs, seules les données enregis-
trées dans les réseaux de mémoire à accès de lecture 52a, 52b1 52n1 qui sont les donnes crites en dernier 52b... 52n, qui sont les données écrites en dernier, seront lus par l'intermédiaire des accès de lecture 56a,
56b... 56n.
Du fait que la première position de mémoire L dans le second réseau de mémoire à accès d'écriture 54b a été marquée à l'état "vrai", il est important que les signaux Marqueurwl R, Marqueurw R2 Marqueur1Rn qui ont été instaurés à l'état "vrai", soient restaurés à un état "faux". Ceci se produit en fait parce que le signal de validation d'écriture W1 qui est appliqué aux premières portes ET 105a associées à la première position de mémoire L1 du premier réseau de mémoire à accès d'écriture 54a, est passé à l'état "faux" lorsque le signal de validation d'écriture W2 est passé à l'état "vrai". Par conséquent, un état "faux" est présenté à la seconde porte i ET 110a qui présente ensuite un état "faux" à l'entrée i INSTAURATION du registre de marqueur 100a. En outre, du fait que S2L1 est maintenant à l'état "vrai", la première porte OU 115a présentera un état "vrai" à l'entrée
RESTAURATION du registre de marqueur 100a. Par consé-
quent, les signaux MARQUEURW1 RLi' MARQUEURW1 1_R2 L1 MARQUEURW_ RnL1 seront à l'état "faux". Un état "faux" sera donc présenté aux troisièmes portes ET 120W1 R1 Li' Wl _R2 L1 ' 120Wl Rn Li' qui présenteront un état "faux" aux secondes portes OU 125Wl Ri' 125Wl _R2 ' 125W1 Rn. Ceci donnera l'état faux aux signaux Marqueuiw1 R' Marqueurwl R 2... Marqueurw1 Rn qui invalideront les circuits d'attaque 60Wl R' 60W R2 6 Wl Rn' Il en résulte que les données enregistrées dans la première position de mémoire dans les réseaux de mémoire à accès de lecture 52a, 52b... 52n du premier réseau de mémoire à accès d'écriture 54a ne seront pas lues. On peut comprendre l'utilisation de registres de marqueurs en se référant à un exemple. Les figures 6a et 6b montrent une mémoire vive de deux par un, avec trois accès d'écriture et un accès de lecture. Pour simuler ce circuit de mémoire, on forme des réseaux de mémoire à i 2 accès de lecture dupliqués 205a, 205a,205a. Chacun de ces réseaux de mémoire à accès de lecture 205a, 205a, 205a est un circuit de mémoire de deux par un. Le réseau de mémoire à accès de lecture 205a se trouve dans le premier réseau de mémoire à accès d'écriture 200a. Le réseau de mémoire à accès de lecture 205a1 se trouve dans
le second réseau de mémoire à accès d'écriture 200b.
Enfin, le réseau de mémoire à accès de lecture 205a se trouve dans le troisième réseau de mémoire à accès
d'écriture 200c.
Pour chaque réseau de mémoire à accès d'écriture 200a, 200b, 200c, il existe un multiplexeur 210, avec des entrées d'adresse d'accès d'écriture et d'adresse d'accès de lecture, qui est connecté à l'entrée de son réseau de i 2 mémoire à accès de lecture respectif 205a, 205a, 205a Ainsi, un réseau de mémoire à accès de lecture 205a dans le réseau de mémoire à accès d'écriture 200a comporte un multiplexeur 210 avec des entrées d'adresse d'accès
d'écriture1 et d'adresse d'accès de lecture, en communi-
cation électrique avec lui. Les données d'accès d'écri-
ture1 sont directement appliquées à la position de mémoire appropriée dans le réseau de mémoire à accès de lecture 205a. Le réseau de mémoire à accès de lecture 205a1 dans le réseau de mémoire à accès d'écriture 200b comporte un multiplexeur 210 avec des entrées d'adresse d'accès
d'écriture2 et d'adresse d'accès de lecture, en communi-
cation électrique avec lui. Les données d'accès d'écri-
ture2 sont directement appliquées à la position de mémoire appropriée dans le réseau de mémoire à accès de lecture i 2 205a. Le réseau de mémoire à accès de lecture 205a dans le réseau de mémoire à accès d'écriture 200c comporte un multiplexeur 210 avec des entrées d'adresse d'accès
d'écriture3 et d'adresse d'accès de lecture en communica-
tion électrique avec lui. Les données d'accès d'écriture3 sont directement appliquées à la position de mémoire appropriée dans le réseau de mémoire à accès de lecture 205a2. Le réseau de mémoire à accès de lecture 205a est connecté à un circuit de bascules 215, qui est connecté à son tour au circuit d'attaque 220a, le réseau de mémoire à accès de lecture 205a est connecté à un circuit de bascules 215 qui est connecté à son tour au circuit d'attaque 220b, et le réseau de mémoire à accès de lecture 205a2 est connecté à un circuit de bascules 215, qui est
connecté à son tour au circuit d'attaque 220c.
Comme on l'a envisagé ci-dessus, le nombre de
registres de marqueurs qui est nécessaire pour une struc-
ture particulière est déterminé par le nombre d'accès d'écriture multiplié par le nombre de positions de mémoire. Dans l'exemple des figures 6a et 6b, du fait qu'il y a trois accès d'écriture et deux positions de mémoire, six registres de marqueurs 225a, 2255b, 227a, 227b, 229a et 229b sont nécessaires. Les registres de marqueurs 225a, 227a et 229a garantissent que les données écrites en dernier dans la position de mémoire no 1 (L1)
sont lues par l'intermédiaire de chaque accès de lecture.
Les registres de marqueurs 225b, 227b et 229b garantissent que les données écrites en dernier dans la position de mémoire no 2 (L2) sont lues par l'intermédiaire de chaque accès de lecture. Dans cet exemple, chaque registre de marqueur 225a, 225b, 227a, 227b, 229a et 229b est une
bascule du type R-S, ou instauration-restauration.
La logique d'entrée de chaque registre de marqueur 225a, 225b, 227a, 227b, 229a et 229b est la suivante. Un signal de sortie d'une première porte ET 235
ayant des entrées pour chaque signal de validation d'écri-
ture, comprenant dans cet exemple le signal de validation d'écriture n 1 (Wl), le signal de validation d'écriture n 2 (W2) et le signal de validation d'écriture n 3 (W3), est appliqué à une seconde porte ET 240. Le second signal d'entrée de la porte ET 240 est le signal de validation d'écriture pour la position particulière dans ce réseau de mémoire à accès d'écriture, par exemple W1L1, qui est le signal de validation d'écriture pour la première position de mémoire. Le signal de sortie de la seconde porte ET 240 est le signal INSTAURATION pour cette position de mémoire particulière qui, comme on l'a envisagé ci- dessus, est désigné conventionnellement par SmLx, en désignant par m l'accès d'écriture particulier et x la position de mémoire particulière. Ce signal S L est appliqué à l'entrée m x INSTAURATION des registres de marqueurs 225a, 225b, 227a,
227b, 229a et 229b.
Les registres de marqueurs sont établis par le réseau de mémoire à accès d'écriture particulier avec lequel ils sont associés. Les signaux d'entrée W1, W2 et W3 de la première porte ET 235 sont tels que seul le signal d'entrée pour l'accès d'écriture particulier auquel
ce registre de marqueur est associé, soit à l'état "vrai".
Dans cet exemple, seul le signal d'entrée W1 pour les registres de marqueurs 225a et 225b associés au premier réseau de mémoire à accès d'écriture 200a sera à l'état "vrai". Seul le signal d'entrée W1 pour les registres de marqueurs 227a, 227b associés au second réseau de mémoire à accès d'écriture 200b sera à l'état "vrai". Enfin, seul le signal d'entrée W3 pour les registres de marqueurs 229a, 229b associés au troisième réseau de mémoire à accès
d'écriture 200c sera à l'état "vrai".
Le signal de sortie de la première porte OU 245 est appliqué à l'entrée RESTAURATION des registres de marqueurs 225a, 225b, 227a, 227b, 229a et 229b. Les signaux d'entrée qui sont appliqués à la première porte OU 245 sont les signaux INSTAURATION SmL qui sont appliqués mx aux registres de marqueurs associés à la même position de
mémoire pour les autres entrées.
Les signaux de sortie des registres 225a, 225b, 227a, 227b, 229a et 229b, MARQUEURWn Rm Lxsont appliqués à une entrée d'une troisième porte ET 250. Du fait qu'il n'y a qu'un seul accès de lecture dans cet exemple, il n'y aura qu'un seul signal de sortie des registres de marqueurs. L'autre signal d'entrée de la troisième porte ET est le signal de validation de lecture pour la position de mémoire qui est associée au signal MARQUEURWn Rm Lx Dans cet exemple, le signal de sortie du registre de marqueur 225a est désigné par MARQUEURW1 R1 Li' du fait qu'il marquera la première position de mémoire dans le premier réseau de mémoire à accès de lecture dans le premier réseau de mémoire à accès d'écriture. Le signal
MARQUEURWl R1 L1 est appliqué à la troisième porte ET 250.
De plus, le signal de validation de lecture pour la première position de mémoire est appliqué à la troisième
porte ET 250.
I1 y aura une troisième porte ET 250 pour chaque
registre de marqueur 225a, 225b, 227a, 227b, 229a et 229b.
Les signaux de sortie de chacune des troisièmes portes ET 250 associées à un réseau de mémoire à accès d'écriture particulier sont appliqués à une seconde porte OU 255 particulière. Le signal de sortie des secondes portes OU sera le signal appliqué aux divers circuits d'attaque
220a, 220b, 220c.
Les registres de marqueurs 225a, 225b, 227a, 227b, 229a et 229b garantissent que seules les dernières données écrites pour une position particulière sont lues à partir de l'accès de lecture sélectionné. Par exemple, si un signal de validation d'écriture apparaît sur l'accès d'écriture n 1 220a (W1), pour écrire un "un" logique à la position de mémoire n 2 (L2), le système de simulation de la présente invention écrit un "un" logique dans chaque position L2 qui est associée à chaque réseau de mémoire à accès de lecture 205a, 205b et 205c. Pendant le temps au cours duquel l'opération d'écriture a lieu, les signaux de sortie de lecture sont mémorisés par le circuit de bascules 215, pour garantir que les données lues ne sont pas écrites, dans le cas o un signal de validation de lecture et un signal de validation d'écriture apparaissent
en même temps.
* En même temps que les données sont écrites dans les réseaux de mémoire à accès de lecture, le signal de validation d'écriture est émis vers les registres de marqueurs pour la position de mémoire particulière. Ce signal de validation d'écriture W1 sera appliqué par l'intermédiaire de la première porte ET 235 associée aux registres de marqueurs 225a et 225b pour les première et seconde positions de mémoire dans le premier réseau de mémoire à accès d'écriture. Du fait que le signal W1 sera à l'état "vrai" et que W2 et W3 seront inversés pour passer de l'état "faux" à l'état "vrai", le signal de sortie des premières portes ET associées au premier réseau de mémoire à accès d'écriture 200a sera un signal à l'état "vrai" (on notera que le signal W1 sera également appliqué à toutes les autres premières portes ET 235, mais du fait que l'inverse du signal sera appliqué à ces premières portes ET 235, le signal de sortie des autres portes ET devra être à l'état "faux").Cependant, du fait que W1L1 sera à l'état "faux" tandis que W1L2 sera à l'état "vrai", seul le signal de sortie de la seconde porte ET 240 associée à la seconde position de mémoire sera à l'état "vrai". Par conséquent, le signal S1L2 sera à l'état "vrai", ce qui présentera un signal à l'état "vrai" sur
l'entrée INSTAURATION du registre de marqueur 225b. Simul-
tanément, du fait que les signaux S2L2 et S3L2 seront à l'état "faux", la première porte OU présentera un état "faux" à l'entrée RESTAURATION sur le registre de marqueur 225b. Par conséquent, le signal MARQUEURW1 R1 L2 qui est appliqué à la troisième porte ET 250 sera à l'état "vrai". Si un signal de validation de lecture provenant de la position de mémoire n 2 (R1L2) apparaît, au moment de son apparition, ce signal sera appliqué à la troisième porte ET 250 associée au signal d'entrée MARQUEURWl R1 L2' qui présentera alors un état "vrai" à la seconde porte OU 255, qui produira un signal de sortie à l'état "vrai". Ce signal de sortie, que l'on désigne par Marqueurwl Ri' sera appliqué au circuit d'attaque 220a, pour émettre le "un" logique à partir de la position de mémoire n 2 dans le
premier réseau de mémoire à accès d'écriture.
Si maintenant, après que les données ont été
écrites à la position de mémoire n0 2 (L2), par l'intermé-
diaire de l'accès d'écriture n 1 200a, de nouvelles données, par exemple un "zéro" logique, sont écrites à la position de mémoire no 2 (L2), par l'intermédiaire de l'accès d'écriture n 2 200b, les actions suivantes se produiront pour garantir que seules seront lues les dernières données écrites pour L2, c'est-à-dire un "zéro", 2 #
et non les données écrites précédemment à l'accès d'écri-
ture n 1, c'est-à-dire un "un".
Lorsque le signal de validation d'écriture apparaît à l'accès d'écriture n0 2 200b (W2), pour écrire un "zéro" logique, le système de simulation de la présente invention écrit un "zéro" logique dans chaque position de mémoire n 2 L2 se trouvant dans le réseau de mémoire à i accès de lecture 205a. Pendant le temps au cours duquel l'opération d'écriture a lieu, les signaux de sortie de lecture sont mémorisés par le circuit de bascules 215, pour garantir que les données de lecture ne sont pas écrites dans le cas o un signal de validation de lecture et un signal de validation d'écriture apparaissent en même temps. En même temps que les données sont écrites dans le réseau de mémoire à accès de lecture 205a, le signal de validation d'écriture W2 est émis vers les registres de marqueurs pour la position de mémoire particulière. Ce signal de validation d'écriture W2 sera appliqué par l'intermédiaire de la première porte ET 235 associée aux registres de marqueurs 227a et 227b pour les première et seconde positions de mémoire dans le second réseau de mémoire à accès d'écriture. Du fait que W2 sera à l'état "vrai" et que W1 et W3 seront inversés pour passer de l'état "faux" à l'état "vrai", le signal de sortie des premières portes ET associées au second réseau de mémoire à accès d'écriture 200b sera un signal à l'état "vrai" (on notera que le signal W2 à l'état "vrai" sera également appliqué à toutes les autres premières portes ET 235, mais du fait que l'inverse sera appliqué à ces portes ET 235, le signal de sortie des autres portes ET devra avoir l'état "faux"). Cependant, du fait que W2L1 sera à l'état "faux", tandis que W2L2 sera à l'état "vrai", seul le signal de sortie de la seconde porte ET 240 qui est associée à la seconde position de mémoire sera à l'état "vrai". Par conséquent, le signal S2L2 sera à l'état 2 2 vrai", ce qui présentera un état "vrai" à l'entrée
INSTAURATION du registre de marqueur 227b. Simulta-
nément, du fait que les signaux S1L2 et
S3L2 seront à l'état "faux", la première porte OU présen-
tera un état "faux" à l'entrée RESTAURATION du registre de
marqueur 225b.
Par conséquent, le signal MARQUEURW2 R1 L2 qui est appliqué à la troisième porte ET 250 sera à l'état "vrai". Si un signal de validation de lecture pour la position de mémoire n 2 (R1L2) apparaît, ce signal sera appliqué au moment de son apparition à la troisième porte ET 250 associée au signal d'entrée MARQUEURW2 R1 L2' ce qui présentera alors un état 'vrai" à la seconde porte OU 255, qui produira alors un signal de sortie à l'état "vrai". Ce signal de sortie, que l'on désigne par MarqueurW2 Ri' sera appliqué au circuit d'attaque 220b, pour émettre le "un" logique à partir de la position de mémoire n 2 dans le premier réseau de mémoire à accès d'écriture. Du fait que la seconde position de mémoire L2 dans le second réseau de mémoire à accès d'écriture 205b a été marquée à l'état "vrai", il est important que le signal Marqueurwl R1 qui a été instauré à l'état "vrai" soit restauré à un état "faux". Ceci se produit en fait parce que le signal de validation d'écriture W1 qui est appliqué à la première porte ET associée au premier réseau de mémoire à accès d'écriture 205a, est passé à l'état "faux" au moment o le signal de validation d'écriture W2 est passé à l'état "vrai". Par conséquent, un état "faux" est présenté à la seconde porte ET 240, qui présente alors un état "faux" à l'entrée INSTAURATION du registre de marqueur 225a. En outre, du fait que S2L2 est maintenant à l'état "vrai", la première porte OU 245 présentera un état "vrai" à l'entrée RESTAURATION du registre de marqueur 225b. Par conséquent, MARQUEURW1 R1_L2 aura un état "faux". Il en résulte qu'un état "faux" sera présenté à la troisième porte ET 250, qui présentera un état "faux" à la seconde porte OU 255. Ceci donnera un état "faux" à Marqueurw1Rl. Il en résulte que la seconde position de
mémoire dans le premier réseau de mémoire à accès d'écri-
ture 205a ne sera pas lue.
On a donc décrit un procédé et un dispositif
préférés pour la simulation de mémoires à accès multiples.
Il va de soi que de nombreuses modifications pourront être apportées par l'homme de l'art au procédé et au dispositif
décrits et représentés, sans sortir du cadre de l'inven-
tion.

Claims (5)

REVENDICATIONS
1. Procédé de simulation d'un circuit de mémoire à accès multiples (50), utilisant les ressources de mémoire présentes dans un groupe de dispositifs logiques programmables, le circuit de mémoire à accès multiples
(50) comprenant X positions de mémoire pour l'enregistre-
ment de données, Y accès de lecture pour lire des données dans les X positions de mémoire et Z accès d'écriture pour écrire des données dans les X positions de mémoire, caractérisé en ce qu'il comprend les étapes suivantes: on génère une définition de liste de réseau (22) pour un réseau de mémoire à accès de lecture avec X positions de mémoire, pouvant être réalisé dans les ressources de mémoire des dispositifs logiques programmables; on duplique Y fois cette définition de liste de réseau (22) concernant le réseau de mémoire à accès de lecture, pour générer une définition de liste de réseau d'un réseau de mémoire à accès d'écriture (54a,...); on duplique Z fois la définition de liste de réseau du réseau de mémoire à accès d'écriture (54a,...); on programme les ressources de mémoire des dispositifs logiques programmables pour réaliser les Z réseaux de mémoire à accès d'écriture (54a, ), chacun des Z réseaux de mémoire à accès d'écriture (54a,...) ayant Y réseaux de mémoire à accès de lecture (52a,...), et chacun des Y réseaux de mémoire à accès de lecture ayant X positions de mémoire; on écrit dans l'une sélectionnée des X positions de mémoire dans chacun des Y réseaux de mémoire à accès de lecture (52a,...) se trouvant dans l'un sélectionné des Z réseaux de mémoire à accès d'écriture (54a,... ); et on marque comme étant la "dernière écrite" la position sélectionnée parmi les X positions de mémoire dans chacun des Y réseaux de mémoire à accès de lecture (52a,...) se trouvant dans le réseau
sélectionné parmi les Z réseaux de mémoire à accès d'écri-
ture (54a,...).
2. Procédé de simulation d'un circuit de mémoire
à accès multiples (50) selon la revendication 1, caracté-
risé en ce qu'il comprend en outre les étapes suivantes: on place la sortie de chacun des réseaux de mémoire à accès de lecture (52a,...) en communication électrique avec un multiplexeur correspondant respectif; et on marque comme étant la "dernière écrite" la position de mémoire de chacun des réseaux de mémoire à accès de lecture (52a, ) se trouvant dans l'un des réseaux de mémoire à accès d'écriture (54a,...), lorsque des données sont écrites
dans cette position de mémoire.
3. Procédé selon la revendication 2, dans lequel les dispositifs logiques programmables comprennent des blocs logiques reconfigurables (30), et caractérisé en ce que l'étape de marquage comprend en outre les étapes i suivantes: on établit un registre de marqueur (10a, ) pour chaque position de mémoire dupliquée se trouvant dans chaque réseau de mémoire à accès d'écriture (54a, ), les registres de marqueurs étant réalisés dans les blocs logiques reconfigurables des dispositifs logiques programmables, ces registres de marqueurs (100a1,...)
ayant une entrée d'instauration, une entrée de restaura-
tion et une sortie; et on place la sortie de chacun des registres de marqueurs (1Oal,...) en communication électrique avec une entrée de sélection de chacun des multiplexeurs, de façon que le multiplexeur considéré puisse connecter la position de mémoire qui est la "dernière écrite" à l'accès de lecture du circuit de
mémoire à accès multiples (50).
4. Procédé de réalisation d'un circuit de mémoire à accès multiples (50) dans des dispositifs logiques programmables ayant des ressources de mémoire et des ressources logiques, le circuit de mémoire à accès multiples (50) comprenant des positions de mémoire pour enregistrer des données, des accès de lecture pour lire des données dans les positions de mémoire et des accès d'écriture pour écrire des données dans les positions de mémoire, caractérisé en ce qu'il comprend les étapes suivantes: on établit les positions de mémoire dans les ressources de mémoire des dispositifs logiques programma- bles, pour définir un réseau de mémoire à accès de lecture; on duplique ce réseau de mémoire à accès de lecture dans les ressources de mémoire des dispositifs logiques programmables, pour chacun des accès de lecture du circuit de mémoire à accès multiples (50), pour définir ainsi un réseau de mémoire à accès d'écriture (54a,...), le réseau de mémoire à accès d'écriture comprenant un nombre de réseaux de mémoire à accès de lecture (52a,...) qui est égal au nombre d'accès de lecture du circuit de mémoire à accès multiples (50); on duplique le réseau de mémoire à accès d'écriture (54a, ) dans les ressources de mémoire des dispositifs logiques programmables, pour chacun des accès d'écriture du circuit de mémoire à accès multiples (50); et on établit un réseau de marqueurs dans les ressources logiques des dispositifs logiques programmables, le réseau de marqueurs comprenant un registre (100al,...) pour chacune des positions de mémoire se trouvant dans chaque réseau de mémoire à accès d'écriture (54a,...), ce registre contenant des données qui indiquent si la position de mémoire correspondant à ce registre contient
des données qui sont les "dernières écrites".
5. Procédé de simulation d'un circuit intégré dans un ensemble de circuits logiques reprogrammables, les
circuits logiques reprogrammables comprenent des ressour-
ces de mémoire, et le circuit intégré comprenant un circuit de mémoire ayant X positions de mémoire pour enregistrer des données, Y accès de lecture pour lire des
données dans les X positions de mémoire et Z accès d'écri-
ture pour écrire des données dans les X positions de mémoire, caractérisé en ce qu'il comprend les étapes
suivantes: on génère une description sous forme de liste
de réseau (22) concernant un réseau de mémoire à accès de lecture avec X positions de mémoire, pouvant être réalisé dans les ressources de mémoire des disposi- tifs logiques programmables; on duplique Y fois ce réseau
de mémoire à accès de lecture (52a,...) dans la descrip-
tion de liste de réseau, pour définir un réseau de mémoire à accès d'écriture (54a,...); on duplique Z fois le réseau de mémoire à accès d'écriture (54a,...) dans la
description de liste de réseau; et on définit un réseau de
marqueurs pour enregistrer une information indiquant lequel des Z réseaux de mémoire à accès d'écriture (54a, ) contient des données qui sontles"dernières écrites", ce réseau de marqueurs comprenant XxZ registres de marqueurs ( 1 (100a).
FR9503507A 1994-03-24 1995-03-24 Procédé de simulation d'un circuit de mémoire à accès multiples. Expired - Fee Related FR2717923B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/217,049 US5448522A (en) 1994-03-24 1994-03-24 Multi-port memory emulation using tag registers

Publications (2)

Publication Number Publication Date
FR2717923A1 true FR2717923A1 (fr) 1995-09-29
FR2717923B1 FR2717923B1 (fr) 1997-01-31

Family

ID=22809481

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9503507A Expired - Fee Related FR2717923B1 (fr) 1994-03-24 1995-03-24 Procédé de simulation d'un circuit de mémoire à accès multiples.

Country Status (5)

Country Link
US (2) US5448522A (fr)
JP (1) JPH0844787A (fr)
DE (1) DE19510902A1 (fr)
FR (1) FR2717923B1 (fr)
GB (1) GB2287810B (fr)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5550782A (en) * 1991-09-03 1996-08-27 Altera Corporation Programmable logic array integrated circuits
IL109921A (en) * 1993-06-24 1997-09-30 Quickturn Design Systems Method and apparatus for configuring memory circuits
US5680583A (en) * 1994-02-16 1997-10-21 Arkos Design, Inc. Method and apparatus for a trace buffer in an emulation system
US5920712A (en) * 1994-05-13 1999-07-06 Quickturn Design Systems, Inc. Emulation system having multiple emulator clock cycles per emulated clock cycle
US5566123A (en) * 1995-02-10 1996-10-15 Xilinx, Inc. Synchronous dual port ram
US5819065A (en) * 1995-06-28 1998-10-06 Quickturn Design Systems, Inc. System and method for emulating memory
US5923865A (en) * 1995-06-28 1999-07-13 Quickturn Design Systems, Inc. Emulation system having multiple emulated clock cycles per emulator clock cycle and improved signal routing
US5822564A (en) * 1996-06-03 1998-10-13 Quickturn Design Systems, Inc. Checkpointing in an emulation system
US5841967A (en) 1996-10-17 1998-11-24 Quickturn Design Systems, Inc. Method and apparatus for design verification using emulation and simulation
US6389379B1 (en) 1997-05-02 2002-05-14 Axis Systems, Inc. Converification system and method
US6026230A (en) * 1997-05-02 2000-02-15 Axis Systems, Inc. Memory simulation system and method
US6134516A (en) 1997-05-02 2000-10-17 Axis Systems, Inc. Simulation server system and method
US6421251B1 (en) 1997-05-02 2002-07-16 Axis Systems Inc Array board interconnect system and method
US6321366B1 (en) 1997-05-02 2001-11-20 Axis Systems, Inc. Timing-insensitive glitch-free logic system and method
US6009256A (en) * 1997-05-02 1999-12-28 Axis Systems, Inc. Simulation/emulation system and method
US5960191A (en) 1997-05-30 1999-09-28 Quickturn Design Systems, Inc. Emulation system with time-multiplexed interconnect
US5970240A (en) 1997-06-25 1999-10-19 Quickturn Design Systems, Inc. Method and apparatus for configurable memory emulation
US6263484B1 (en) 1997-10-01 2001-07-17 Yang-Sei Yang Prototyping system and a method of operating the same
US6191998B1 (en) * 1997-10-16 2001-02-20 Altera Corporation Programmable logic device memory array circuit having combinable single-port memory arrays
US5883852A (en) * 1998-02-23 1999-03-16 Dynachip Corporation Configurable SRAM for field programmable gate array
US6467017B1 (en) 1998-06-23 2002-10-15 Altera Corporation Programmable logic device having embedded dual-port random access memory configurable as single-port memory
US6279146B1 (en) 1999-01-06 2001-08-21 Simutech Corporation Apparatus and method for verifying a multi-component electronic design
US6701491B1 (en) * 1999-06-26 2004-03-02 Sei-Yang Yang Input/output probing apparatus and input/output probing method using the same, and mixed emulation/simulation method based on it
US6272451B1 (en) * 1999-07-16 2001-08-07 Atmel Corporation Software tool to allow field programmable system level devices
US6556579B1 (en) * 1999-09-21 2003-04-29 3Com Corporation Method and apparatus for detecting duplicate buffers in a descriptor based multi-port queue
US7111110B1 (en) 2002-12-10 2006-09-19 Altera Corporation Versatile RAM for programmable logic device
US6654308B1 (en) 2002-12-23 2003-11-25 Hewlett-Packard Development Company, Lp. Memory having multiple write ports and multiple control memory units, and method of operation
US6813215B2 (en) * 2002-12-23 2004-11-02 Hewlett-Packard Development Company, L.P. Memory having multiple write ports and method of operation
US6754130B1 (en) 2002-12-23 2004-06-22 Hewlett-Packard Development Company, Lp. Memory having multiple write ports and write insert unit, and method of operation
US7924845B2 (en) * 2003-09-30 2011-04-12 Mentor Graphics Corporation Message-based low latency circuit emulation signal transfer
US20060089829A1 (en) * 2004-10-21 2006-04-27 International Business Machines Corporation Method and apparatus to efficiently access modeled memory in a logic simulation hardware emulator
US8959010B1 (en) 2011-12-08 2015-02-17 Cadence Design Systems, Inc. Emulation system with improved reliability of interconnect and a method for programming such interconnect
US8743735B1 (en) 2012-01-18 2014-06-03 Cadence Design Systems, Inc. Emulation system for verifying a network device
US8595683B1 (en) 2012-04-12 2013-11-26 Cadence Design Systems, Inc. Generating user clocks for a prototyping environment

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0787032B2 (ja) * 1985-07-08 1995-09-20 日本電気アイシ−マイコンシステム株式会社 半導体記憶装置
US4862347A (en) * 1986-04-22 1989-08-29 International Business Machine Corporation System for simulating memory arrays in a logic simulation machine
US5148397A (en) * 1989-03-16 1992-09-15 Oki Electric Industry Co. Ltd. Semiconductor memory with externally controlled dummy comparator

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MALINIAK: "logic emulation meets the demands of cpu designers", ELECTRONIC DESIGN, vol. 41, no. 7, 1 April 1993 (1993-04-01), CLEVELAND OH US, pages 36 - 40 *

Also Published As

Publication number Publication date
FR2717923B1 (fr) 1997-01-31
GB2287810A (en) 1995-09-27
US5448522A (en) 1995-09-05
DE19510902A1 (de) 1995-09-28
US5563829A (en) 1996-10-08
GB9505638D0 (en) 1995-05-10
JPH0844787A (ja) 1996-02-16
GB2287810B (en) 1998-07-29

Similar Documents

Publication Publication Date Title
FR2717923A1 (fr) Procédé de simulation d'un circuit de mémoire à accès multiples.
Meyer Object-oriented software construction
US6642744B2 (en) Customizable and programmable cell array
Chazelle Computational geometry and convexity
US6819136B2 (en) Customizable and programmable cell array
US7739080B1 (en) Consolidation of product data models
EP0151653A1 (fr) Dispositif de sérialisation/désérialisation de configuration de bits de longueur variable
Vernadat et al. Covering step graph
van Glabbeek et al. Equivalences and refinement
George Mascot 3: an informal introductory tutorial
US6493864B1 (en) Integrated circuit block model representation hierarchical handling of timing exceptions
JPH09231261A (ja) Fetモデル回路からゲートモデル回路を抽出する方法
JP4405599B2 (ja) 集積回路設計用の設計シェルの生成及び使用方法
FR2665593A1 (fr) Circuit integre comprenant une cellule standard, une cellule d'application et une cellule de test.
EP0407296A1 (fr) Procédé d'assistance pour l'utilisateur d'un système informatique et dispositif pour la mise en oeuvre dudit procédé
FR2637996A1 (fr) Circuit pour executer a grande vitesse certaines operations booleennes de traitement de trame pour affichage sur l'ecran d'une station de travail
JP2001076020A (ja) 活性化パスシミュレーション装置及び活性化パスシミュレーション方法
Wohl et al. Testing" untestable" faults in three-state circuits
FR2748595A1 (fr) Memoire a acces parallele
Zarzosa The Case and its Modes: instance, allusion, example, illustration, and exception
Mulder Evolving the DEMO Specification
Ausiello EATCS Golden Jubilee: How EATCS was born 50 years ago and why it is still alive and well
Sangaunmu Cellular Computer on the Multihead Turing Machine Basis
Coyle The Æsthetics of the Machine
Rajopadhye et al. Formal semantics for a symbolic IC design technique: Examples and applications

Legal Events

Date Code Title Description
ST Notification of lapse