WO2006090089A1 - Emulating/simulating a logic circuit - Google Patents

Emulating/simulating a logic circuit Download PDF

Info

Publication number
WO2006090089A1
WO2006090089A1 PCT/FR2006/050164 FR2006050164W WO2006090089A1 WO 2006090089 A1 WO2006090089 A1 WO 2006090089A1 FR 2006050164 W FR2006050164 W FR 2006050164W WO 2006090089 A1 WO2006090089 A1 WO 2006090089A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
circuit
address
word
cam
Prior art date
Application number
PCT/FR2006/050164
Other languages
French (fr)
Inventor
Michaël NICOLAIDIS
Original Assignee
Iroc Technologies
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 Iroc Technologies filed Critical Iroc Technologies
Publication of WO2006090089A1 publication Critical patent/WO2006090089A1/en

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318342Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation

Definitions

  • the present invention relates to the emulation and the simulation of the operation of an integrated circuit in the presence of disturbances likely to modify the state of the circuit.
  • the present invention relates more particularly to integrated circuits comprising logic elements, for example combinatorial logic gates OR, AND, and synchronous storage elements such as flip-flop registers, static memories (SRAM), dynamic memories (DRAM), not volatile (OTP, FLASH or others).
  • logic elements for example combinatorial logic gates OR, AND, and synchronous storage elements such as flip-flop registers, static memories (SRAM), dynamic memories (DRAM), not volatile (OTP, FLASH or others.
  • Integrated circuits generally execute a sequence of commands that can be stored in a memory, or provided by an external device through the input / output terminals of the circuit.
  • a disturbance arrives, values contained in one or more storage elements may be rendered incorrect.
  • the circuit can return to a normal state corresponding to a state that it would have had in the absence of disturbances.
  • the number of cycles necessary for the circuit to return to a normal state is very variable.
  • Figure 1 is a diagram of a known emulation device using a programmable logic array (FPGA, Field Programmable Gate Array).
  • the emulated circuit comprises two synchronous logic circuits 1 and 2 connected to two memories Mem1 and Mem2 by a bus 3.
  • the two synchronous logic circuits 1 and 2 are shown schematically in the form of combinational logic blocks 10, 11 and 20 respectively connected to the inputs register data 12, 13 and 21.
  • the logic block 10 receives external signals.
  • the logic blocks 11 and 20 respectively receive the data provided by the registers 12 and 13.
  • the register 21 provides output signals.
  • the circuits 1 and 2 comprise multiplexers 14, 15 and 22 and shift registers 16, 17 and 23 respectively connected to the registers 12, 13 and 21.
  • Each multiplexer receives on first inputs data from a logic block and on second inputs the outputs of a shift register and connects the first or second inputs to the data inputs of a register whose outputs are connected to a shift register.
  • Each shift register 16, 17 and 23 receives or provides serial data on an access terminal respectively 18, 19 and 24. The data in memory can be read or written via an access terminal 4 connected to the bus 3.
  • the circuit storage elements are put in an initial state adapted to a sequence of commands to be executed.
  • the circuit in a modified initial state introduces one or more errors with respect to the normal initial state.
  • the values that the registers 12, 13, 21 must contain in the modified initial state are introduced in series in the shift registers 16, 17, 23, at the rate of a clock, then written in the registers 12, 13, 21 in parallel on a clock stroke. Similarly, we write one after the other, the values that must contain each of the memories.
  • the circuit then executes the command sequence. At the end of the execution, the data stored in the registers 12, 13, 21 are written in parallel in the shift registers 16, 17, 23 and provided in series for analysis.
  • the values contained in the memories Mem1 and Mem2 are likewise read.
  • a disadvantage of this conventional emulation circuit is that, each time we want to perform a test, we run a complete sequence of commands and it is only at the end of the execution of this sequence of commands that it is possible to know, by reading serially the contents of registers 16, 17 and 23, and memories Mem1 and Mem2 if errors remain or if the circuit has found a normal state.
  • the present invention aims to allow simply to interrupt a test as soon as one realizes that there are no more errors in the circuit after the execution of a command of the current command sequence.
  • the present invention provides for comparing in parallel and during the execution of the command sequence, the contents of the registers of a circuit in which an error has been injected to the contents of registers containing the result that would be provided. by an error-free circuit running in parallel the same sequence of commands.
  • the present invention provides a method of emulation or simulation of the function ⁇ compassion in the presence of disturbances of a circuit capable of executing a sequence of commands, the circuit having logic elements and first storage elements the method comprising the steps of: putting the circuit in an incorrect state, wherein the value of at least one storage element is changed with respect to a correct state of the circuit; start execution of a command sequence; providing in second storage elements the normal values that the first memory elements would contain after the execution of each command if the circuit had been put in the correct state; comparing, after each command executed and by means of comparators activated simultaneously, all the values contained in the first and second storage elements; and stop the execution of commands if the values contained in the first and second storage elements become identical.
  • the present invention further provides a device for emulating operation in the presence of disturbances of a circuit capable of executing a sequence of commands, the device comprising: a test circuit identical to said circuit and comprising logic elements and first elements of memorization; means for putting the circuit in an incorrect state in which the value of at least a first storage element is changed with respect to a correct state of the circuit; means for initiating execution of a command sequence; second storage elements loaded by the normal values that would contain the first storage elements after each command if the circuit had been in the correct state before the execution of the commands; compara ⁇ tors to establish after each command executed if the values contained in the first and second storage elements differ; and interrupt means controlled by said comparators.
  • the device comprises a second identical circuit to said test circuit, the second storage elements being the storage elements of the second circuit, and comprises means for putting the second circuit in a correct state, said means for start the execution of a sequence of commands acting on both circuits.
  • the first storage elements comprise registers placed between the logic elements.
  • the first storage elements of said test circuit comprise at least one memory storing data words each consisting of at least one bit.
  • some or all of the comparators compare the contents of the registers of each of the circuits.
  • the device comprises for each memory of said test circuit, an additional storage means comprising an error bit for each address of the memory, one or more comparators analyzing the signals addressed to a given memory of said circuit. test and the signals addressed to the memory of the second identical circuit to the given memory, in order to activate or deactivate an error bit at a given address when a difference between the data words stored in the two memories at this address determined appears or disappears, an error detection circuit indicating the means of interruption if at least one error bit is activated.
  • the device comprises for each memory of said test circuit, a content addressing memory consisting of words intended to each store at least one address and an error bit, one or more comparators analyzing the signals. addressed to a given test said memory circuit and the signals sent to the memory of the second identical circuit to the data memory in order to detect the appearance or disappearance of a consis error ⁇ both a difference between the data words stored in the two memories at a given address, the occurrence of an error resulting in a statement of the address determined in a word of the address memory by the content associated with the memory in question, and an activation of the error bit of this word , the disappearance of an error resulting in the deactivation of the error bit of the word storing the determined address, an earth detection circuit ur indicating the means of interruption if at least one error bit is activated.
  • a memory of said test circuit is a virtual memory replaced by the association of a memory addressed by the content CAM and a pilot device connected to said test circuit and to the "associated" memory of the second circuit corresponding to the virtual memory, a word of the memory CAM being provided for storing at least one data word, an address and an error bit , only the words of the virtual memory which differ from the words of the associated memory being stored with their addresses in a word of the memory CAM by activating its error bit, the reading of a data word in the virtual memory to a consistent data address for the pilot device to look at whether an erroneous data word corresponding to the given address is stored in a word of the CAM memory whose error bit is activated and otherwise to request a reading at this address in the associated memory, the writing of a word in the virtual memory to a given address consisting for the pilot device to compare this word with the word written at the given address in the associated memory , and if there is a difference in storing this word in
  • the device comprises for each memory of said test circuit, an identical memory called initialization comprising the correct values of the memories of the test circuit corresponding to the initial state of the test circuit before the execution of a sequence of commands, and comprising for each memory of the test circuit and the second circuit, an additional storage means comprising a validation bit for each address of the corresponding memory, and in which a word read by the test circuit or the second circuit to a given address of a memory either from the initialization memory when the validation bit corresponding to this address is not activated, or from this memory when the validation bit corresponding to this address is activated following a previous write to this address when executing the sequence of commands.
  • the memories of the test circuit and their associated memories of the second circuit are virtual memories each replaced by the association of a memory addressed by the content CAM and a pilot device connected to the memory of initialization, to the test circuit and to the second circuit, the words of the memories CAM being provided for each memorizing a data word, an address, a validation bit and in the case of the CAM memories replacing the memories of the test circuit, a bit of error, a data word and its write address in a virtual memory being stored in a word of the memory CAM replacing this virtual memory by activating its validation bit, a data word provided during a reading of a virtual memory at a given address, coming from the memory CAM replacing this virtual memory or the initialization memory according to whether the given address is or not m morge in a word in the CAM having a valid bit set, the erroneous data words in a memory of the test circuit are stored in words of the CAM replacing the memory by activating their enable bits and error.
  • the test circuit, the second circuit and the comparators are physical elements that can be realized in a programmable logic array.
  • the present invention further provides a computer file comprising a description of a device previously described, and intended to be simulated by a circuit computer simulator to execute said sequence of commands.
  • Fig. 4 is a storage / error detection scheme according to an embodiment of the present invention
  • Fig. 5 is a diagram of a CAM memory used in an embodiment of the present invention
  • Fig. 6 is a diagram of an alternative embodiment of the emulation device of the present invention.
  • the emulation device comprises a test platform 101 and software control and analysis elements.
  • the test platform 101 comprises a set of logic circuits and memories made in a programmable logic network 101 (FPGA, Field Programmable Gate Array). More specifically, the test platform 101 comprises two identical logic circuits EC and CC each connected to a memory EMem and CMem respectively.
  • the circuits EC and CC are made from a functional description, for example of the type RTL (English Register Transfer Level), a circuit whose operation one wishes to know when it is subjected to a disturbance.
  • Each logic circuit EC and CC is shown schematically, as in FIG. 1, in the form of combinational logic blocks interposed between registers.
  • Each register is associated with an offset register and a multiplexer for loading and possibly discharging the register in series.
  • the circuits EC and CC each comprise three logic blocks respectively L E] _, L E 2, L E 3 and LQ] _, Lc2 'Lc3' connected to three registers respectively R E ] _, R E2 ' R E3 and Rcir RC2' R C3 controlled by a clock CLK.
  • the data outputs of a register R E j_ or RQI ? i being between 1 and 3, are connected to the data inputs of a shift register RD E j_ or RDQJ_.
  • Data from a logic block L E j_ or LQJ_ arrive on first inputs of a multiplexer M E j_ or Mçj_.
  • Each multiplexer M E j_ or MQJ_ receives on second inputs, the data outputs of the shift register RD E j_ or RDQJ_.
  • the outputs of each multiplexer M E j_ or Mj_ are connected to the data inputs of the register R E j_ or Rj_.
  • the logic circuit EC is connected to a writing device 102, and the logic circuit CC is connected to a writing device 103.
  • the devices 102 and 103 are part of the software of the emulation device and are optionally implemented in software form. .
  • the writing device 102 is connected to the shift registers RD E] _, RD E 2, P ar RDE3 the interme diary ⁇ three terminals respectively access B E] _, B E B E 2 and 3.
  • the series write circuit 103 is connected to the shift registers RDQ] _, RDQ2? R 0 CS P ar three access terminals BQ] _, BQ2 and B Q3.
  • the memory EMem is connected to the writing device 102 via an access terminal B E 5.
  • the memory CMem is connected to the writing device 103 via a terminal of BQ5 access.
  • the circuit 101 includes comparators C] _, C2 and C3. Each comparator Cj_ receives and compares in pairs the set of data outputs of the registers R E j_ and RQI-
  • An OR gate 106 receives each of the outputs of comparators C ] _, C2 and C3 and indicates whether at least one of the bits of the set of registers of the circuits CC and EC differs.
  • the output of the OR gate 106 is connected to a detection device 107 via an access terminal Bg.
  • a comparison circuit (COMP) 110 compares the address, data and control signals sent by the circuits CC and EC respectively to the memories CMem and EMem.
  • the memory EMem contains additional memory bits relative to the memory CMem. At each address of the memory EMem is associated an error bit E.
  • the comparison circuit 110 is connected to a counter (COUNT) 111 whose output is connected to the detection device 107 via a terminal of access B7.
  • the detection device is preferably an element of the software of the emulation device.
  • a control device 104 forming part of the software of the emulation device is connected to the inputs of the logic blocks L E] _ and LQ] _ via two access terminals respectively B E 4 and BQ4.
  • the circuit CC called "correct circuit", and its memory CMem are positioned in an initial state said normal prior to the execution of a sequence of commands.
  • the values which the registers RQ] _ to RQ3 in the normal initial state must contain are supplied in series by the writing device 103 to the shift registers RDQ] _ to RDQ3 at the rate of a clock CLKg.
  • MC multiplexers] _ to MQ3 are then positioned to load into the RQ records] _ to Rc3?
  • the circuit EC said "error circuit" is put in a modified initial state for which one or more values stored in the registers R El to R-E3 and in the EMem memory are modified compared to the values in the state initial initial of the registers RQ] _ to RQ3 and the memory CMem.
  • each DC and EC circuit receives similar commands from the controller 104.
  • the control device 104 may, for example, activate an initialization signal of an instruction sequence stored in each of the memories CMem and EMem. This will be the case, for example, when the emulated circuit is a microprocessor, a microcontroller or any other device intended to execute a stored instruction sequence.
  • the controller 104 may also directly provide a succession of commands that the DC and EC circuits execute at the rate of the CLK clock.
  • the emulated circuit may for example be a circuit an interface, an adder or any circuit performing a given function on command of external signals.
  • the comparison circuit 110 sets the error E bit associated with this page to a given value, for example "1" . Each time a new error bit E is set to 1, the comparison circuit increments the counter 111. In the case where an error is initially introduced into the memory EMem, the error bit E corresponding to the address erroneous values are set to 1. When executing the command sequence, it is possible for a write to modify the values contained in an address whose error bit is at 1. In the case only where the written values are correct, the comparison circuit 110 resets the error bit E corresponding to 0 and decrements the counter 111.
  • the function of the detection device 107 is to monitor the comparators C1 to C3 and the counter 111.
  • the detection device 107 requests the stop execution of the commands and the emulation device is available for a new test.
  • the number of clock cycles CLK executed prior to stopping the command sequence is recorded. It will also be possible to stop the execution of commands when errors remain after a predetermined number of CLK clock cycles executed.
  • the circuit CC is set in a selected initial state, and the circuit EC is positioned in a modified initial state with respect to the chosen initial state.
  • the choice of the initial state and the command sequence executed depends on the analyzed circuit. In the case where the analyzed circuit is a circuit performing a sequence of commands determined, it will obviously be chosen to perform this sequence of commands. In the case where the analyzed circuit is a generic circuit that can execute all kinds of programs, it will be possible to use random command sequences.
  • FIG. 3 is a more detailed diagram of an example of the signals exchanged between the logic circuits CC and EC, the memories CMem and EMem and the comparison circuit 110.
  • the circuits CC and EC provide write / read control signals respectively WRQ and WR E , address signals respectively @Q and @g and memory select signals CSQ and CS ⁇ .
  • the circuits CC and EC to provide or receive data signals Q and ⁇ that are written or read in the EMMC and emem memories.
  • the comparison circuit 110 receives the write / read control signals WR E , WRQ, the address signals @g and @Q, the selection signals CSQ and
  • the memory EMem (CMem) When the signal CS ⁇ (CSQ) is active, the memory EMem (CMem) provides data on the data signal d ⁇ (d Q ) when the signal WR E (WRQ) controls a reading at an address indicated by the signal d @g address. No data is written on the signal E (dc) when the signal CS E (CSQ) is inactive.
  • the signal WR E (WRQ) commands a write to an address @ E (@Q)
  • the memory EMem (CMem) does so only if the signal CS E (CS C ) is active.
  • the comparison circuit 110 When the comparison circuit 110 wishes to read or write data to a given address of the EMem memory, it controls the switches 120, 121 and 125 in order to be able to control the signals @ E , WR E and CS E. Similarly, when the comparison circuit 110 wishes to read data at a given address of the memory CMem, it controls the switches 122, 123 and 124 in order to be able to control the signals @Q, WRQ and
  • the comparison circuit 110 switches the driver 120, 121 and 125 so as to access the E @ signals, WR and CS E E when it wishes to read or write a bit error E.
  • the dif ⁇ ence between the read / write an error bit E and a data item is optionally indicated by means of a signal not shown.
  • the comparison circuit 110 Prior to the execution of a command by the circuits EC and CC, the comparison circuit 110 controls the switches 120 to 125 so that they connect the memories CMem and EMem to the circuits CC and EC. During the execution of the command, the comparison circuit 110 analyzes the signals emitted by the circuits CC and EC and performs various actions described hereinafter.
  • the comparison circuit 110 interrupts the sequence of commands executed by the circuits CC and EC.
  • the comparison circuit 110 controls the switches 120 and 121 to read the error bit E corresponding to the address @ E- If the error bit is equal to 0, it sets it to "1" and it increments the counter 111.
  • the comparison circuit 110 drives the commu ⁇ torters 122 and 123 to perform a reading of the CMem memory at the address @g. In the case where the addresses @g and @Q are identical, this reading may not be performed.
  • the read data is compared to the data written in the EMem memory at the address @g.
  • the comparison circuit 110 reads the bit E corresponding to the address @g by controlling the switches 120 and 121 in order to be able to read in the memory EMem.
  • the action then performed by the comparison circuit is a function of the difference or not the data and the value of the bit E read at the address @g.
  • the new error is raised by setting the bit E to the address @g at "1" and incrementing the counter 111.
  • the bit E is then set to "0" and the counter 111 is decremented.
  • the comparison circuit 110 does not modify the bit E or increment or decrement the counter 111.
  • the comparison circuit 110 interrupts the sequence of commands executed by the circuits CC and EC.
  • the comparison circuit 110 drives the switches 120 and 121 to read the error bit E corresponding to the address
  • the comparison circuit 110 controls the switches 120 and 121 in order to read the EMem memory at the address @Q. In the case where the addresses @E and @c are identical, this reading may not be performed.
  • the read data is compared to the data written in the CMem at @Q.
  • the comparison circuit 110 performs a reading of the bit E corresponding to the @Q address.
  • Table (2) The Possible actions of the comparison circuit are summarized in the following table (2).
  • the comparison circuit 110 interrupts the command sequence executed and, if necessary, controls the switches 120 to 123.
  • the comparison circuit 110 sets the error bit E corresponding to the address @E if the data are different to "1" and it increments the counter 111.
  • the circuit the comparison of the bit E corresponding to the address @ E- In the case where the data differ and the bit E read at the address @E is zero, the new error is raised by setting to "1" the bit E and incrementing the counter 111. In the case where the data are identical and the bit E read at address @E is set to "1", there are no more errors at the address @ E- The bit E is then set to "0" and the counter 111 is decremented. In other cases, the comparison circuit 110 does not perform any modification of the bit E, nor of incrementation or decrementation of the counter 111.
  • the comparison circuit 110 In the case where the addresses differ, it is unlikely that the data written to the @Q address in the CMem memory will be identical to the data present in the EMem memory at the @Q address. Similarly, it is unlikely that the dg data written at the @g address in the EMem memory will be identical to the data present in the CMem at @g.
  • the error bits E corresponding to the addresses @E and @Q are set to 1.
  • the comparison circuit 110 reads the data present at the address @Q in the EMem memory. The comparison circuit reads the bit E corresponding to the @Q address.
  • the possible actions of the comparison circuit 110 are summarized in the table (2) above. Similarly, the comparison circuit 110 reads the data present at the address @E in the memory CMem and reads the bit E corresponding to the address @g. The possible actions of the comparison circuit 110 are summarized in Table (1).
  • At least one selection signal CSg and CSg is inactive
  • the two memories CMem and EMem are inactive. No writing or reading can be done.
  • the comparison circuit 110 is inactive. In case the CSQ signal is active and the signal
  • the CMem memory can be written or read.
  • the EMem memory is inactive.
  • a difference between the two memories can be introduced or possibly deleted when the circuit CC makes a write in the memory CMem at the address @Q.
  • the comparison circuit 110 stops the execution of the command sequence and controls the switches 120, 121 and 125 to access the EMem memory.
  • the comparison circuit 110 modifies the state of the selection signal CS ⁇ so as to activate the memory EMem.
  • the error bit E corresponding to the address @ Q is set to 1.
  • the comparison circuit 110 reads the data present at the address @ Q in the EMem memory. The read data is compared to the data written in the CMem at @ Q.
  • the comparison circuit reads the bit E corresponding to the address @ Q.
  • Table (2) The possi ⁇ ble actions of the comparison circuit 110 are summarized in Table (2).
  • the counter 111 is deleted.
  • a simple OR gate receiving each of the error bits E is connected to the detection device 107.
  • OR gate simplifies works ⁇ the comparison circuit 110 previously described because it is no longer necessary to provide an increment control or decrementation of the counter 111.
  • the comparator 110 performs circuit against by all the other operations described above for each case.
  • a write is made in one or more memories, a comparison is made between the data written in a memory at a given address and the data present in the other memory at the same address. If the data is different, the bit E is set to one if not zero.
  • the OR gate gives the minimum information to know, whether or not there are errors in memory. 2.2 Memory dedicated to memorizing errors
  • the storage of the error bits E can be performed in a specific memory, independent of the EMem memory.
  • FIG. 4 is an example of a memory dedicated to the storage of errors comprising a DECODER address decoder 130 making it possible to select a particular error bit E in an error bit memory 131.
  • the memory 131 can be manufactured specifically or be performed in a programmable logic network.
  • Each of the error bits of the memory 131 is connected to an input of an OR gate 132.
  • the output of the OR gate 132 is connected to the detection circuit 107.
  • the comparison circuit 110 makes writes and reads in the memory 131.
  • the "0" or "1" positioning of the error bits is performed according to the same criteria as those described previously in relation to FIG. the figure
  • FIG. 5 is another example of memory specific to error storage.
  • the memory is of the content addressing type (CAM).
  • the memory comprises a set of words W1 to Wn, where n is a positive integer. Each word Wi, i being between 0 and n, consists of an error bit Ei and an address value @i.
  • Each address of the EMem memory containing erroneous data is stored in a "pointer" word of the CAM memory whose error bit is set to "1".
  • the other words of the CAM memory are said to be "free", their error bit being set to "0".
  • the INTERFACE interface block receives Ctrl commands from the comparison circuit 110 and exchanges error bit values E and address @ with it.
  • the comparison circuit 110 When the comparison circuit 110 wishes to know if a datum of the memory EMem stored at a given address is erroneous, it indicates this address to the memory CAM.
  • the address search module (@?) 136 then compares all the addresses of the pointer words to the indicated address.
  • the memory CAM then specifies the comparison circuit whether or not there is a pointer word which contains the indicated address.
  • the comparison circuit when it wishes to store the address of an erroneous data item of the memory EMem, it indicates this address to the memory CAM.
  • the error tracking module 137 determines whether there remains a free word. If this is the case, the address of the erroneous data is stored in this word and its error bit is set to "1". This word then becomes a pointer word.
  • the error tracking module 137 can be realized in various ways. This is, for example, a counter which is incremented each time a free word becomes a pointer word, the erroneous addresses then being recorded in the CAM memory of the word W1 at the word Wn. It can also be a module capable of analyzing all the error bits E in order to find a possible free word.
  • the general operation of the emulation device comprising such a CAM memory is as follows.
  • RQ] _ to RQ3 of the circuit CC and the memory CMem are set in a "normal" initial state and the registers R ⁇ i to R ⁇ 3 of the circuit EC and / or EMem are set in a modified initial state with respect to the normal initial state.
  • Error bits El to En of the CAM memory are all reset to "0".
  • the addresses of these errors are written in words of the CAM memory and the error bits of these words are set to "1". .
  • the comparison circuit 110 performs, as previously, a comparison between the signals exchanged between the circuit CC and the memory CMem and the signals exchanged between the circuit EC and the memory EMem.
  • the comparison circuit has to carry out verifi ⁇ tions each time a write is performed in EMEM memory and / or in the memory CMEM, interrupting, if necessary, the sequence of commands executed by the DC and EC circuits.
  • the comparison circuit 10 interrupts the sequence of commands and performs a reading of the memory CMem to the @g address.
  • the data read in the CMem memory is compared with the data d ⁇ .
  • the 110 performs respective comparison circuit ⁇ tively validation or invalidation of the address @g, the concepts of validation or invalidation address being defined below. We then resume the sequence of commands.
  • the validation of a given address consists in querying the search module @? 136 of the CAM memory to know if a pointer word references this address and otherwise to query the error tracking module 137 to obtain a word in which to record the given address and set to "1" its bit error.
  • the inva ⁇ lidation of a given address consists of interrogating the search module 136 to know if a pointer word references this address and, if necessary, to reset the error bit E of this word to "0" which then becomes a word "free”.
  • the counter is incremented when a new address is stored ⁇ tred during an address validation, and the counter is decremented when an error bit E of a word pointer is reset to "0" during an address invalidation.
  • the comparison circuit 110 interrupts the sequence of commands and performs a reading of the memory EMem to the @Q address.
  • the data read in the EMem memory is compared with the data ⁇ ! Q.
  • the comparison circuit 110 performs respec tively ⁇ validation or invalidation of the address @Q. We then resume the sequence of commands.
  • the circuits CC and EC both control a write and the addresses @Q and @g differ, then two sets of operations are performed after the interruption of the command sequence.
  • the first is to read the EMem memory at the @Q address and to compare the data read with the data ⁇ Q. Depending on whether the data is different or different, the comparison circuit 110 respectively performs a validation or invalidation of the @Q address.
  • the second is to read the CMem memory at the address @g and compare the data read to the data d ⁇ . Depending on whether the data is different or different, the comparison circuit 110 respectively performs a validation or invalidation of the @g address. We then resume the sequence of commands.
  • the address @ E- is respectively validated or invalidated. This validation or invalidation can be performed without interrupting the sequence of commands.
  • the first step of the validation or the address invalidation namely the search for a pointer word containing this address
  • the possible second step of the validation or invalidation consisting in setting to "1" or "0" an error bit and in the case of the validation to record an address, can be performed simultaneously.
  • a write / read step in the memories CMem and EMem can be controlled during the resumption of the command sequence.
  • the error bits El to En are connected to an OR gate 135 whose output is connected to the detection circuit 107.
  • the memory CAM can contain a restricted number of words W1 to Wn, much lower than the number of words of the memory EMem.
  • the number of words in the memory CAM corresponds for example to the maximum number of "acceptable" faults when executing a sequence of commands.
  • the CAM memory includes pointer words referencing erroneous data in the EMem memory, it may be useful to know these erroneous data for example to compare them to the correct data stored in the CMem memory. To do this, we can read the addresses of the pointer words of the CAM memory then read the EMem memory and possibly the CMem memory for each of these addresses. It is also possible to add an additional field of data to each word of the CAM memory.
  • the EMem memory is deleted.
  • the signals @g, WR E and CS ⁇ supplied by the circuit EC are only transmitted to the comparison circuit 110.
  • the function of the comparison circuit 110 is firstly to compare the signals supplied by the circuit EC with the signals supplied. by the DC circuit, and secondly to supply and process the data of E when the EC circuit controls respectively a reading and a writing.
  • the comparison circuit 110 is connected to a memory CAM which comprises all the elements described above in relation to FIG. 5 and which furthermore comprises for each word Wi a datum di as represented in FIG. dotted in FIG. 5.
  • the association of the CAM memory and the new functionality of the comparison circuit 110 constitutes a virtual EMem memory.
  • the EC circuit reads and writes in virtual EMem memory in the same way than with real EMem memory.
  • the memory CAM stores only the erroneous data of the memory EMem, that is to say the data of the memory EMem which differs from the data of the memory CMem. Each erroneous data is stored with its address in a word of the CAM memory. The correct or non-erroneous data of the EMem memory are read from the CMem memory.
  • the error bits E of the words of the memory CAM are reset to "0".
  • each error is stored in the CAM memory.
  • the erroneous data and their addresses are written in a set of words and the error bits of these words are set to "1".
  • the comparison circuit 110 When the EC circuit reads, the comparison circuit 110 performs a series of operations described below.
  • the comparison circuit interrogates the search module (@?) 136 of the memory CAM in order to know if a pointer word stores the read address @g. If this is the case, the data stored in this pointer word is read. Otherwise, the comparison circuit looks at whether the DC circuit reads at an @ Q address identical to the @g address. If this is the case, the data read from the memory CMem is copied back to the data signal d1. In other cases, the command sequence is interrupted and the comparison circuit 110 controls a reading in the CMem memory at the address @g. The read data is provided on the data signal d1.
  • the search module (@?) 136 of the memory CAM is interrogated in order to know if a pointer word stores the address @Q. If this is the case, the data stored in this pointer word is compared with the data d that the circuit CC wishes to write to the memory CMem and if the data are identical, it is reset to "0" the error bit E of that memory. pointer word and if the counter 111 is used it is decremented.
  • a reading is read in the CMem memory at the @Q address and the data read is compared to the data as soon as the we want to write in the memory CMem. If the data is identical, then this writing is inconsequential. If the data differs, the error tracking module 137 of the CAM memory is interrogated in order to know if there remains a free word. If this is the case, the @Q address and the data read in the CMem memory are stored at this address. The data d is then written in the memory CMem.
  • the EC circuit performs a write
  • the comparison circuit When the EC circuit makes a write, the comparison circuit also performs a series of operations described below. In the case where the circuit CC controls a reading, or inactivity of the memory CMem, the control circuit 110 performs the following operations. It looks for the @Q and @E addresses to differ, and if so it interrupts the command sequence and commands a read in the CMem at @g. The comparison circuit then see if the data in the memory at EMMC @g are dif ⁇ ferent data from ⁇ that the EC system wants to write in EMEM virtual memory. Depending on whether the data differs or not, the address is validated or invalidated @ E- The reading of the memory CMem is then carried out and the execution of the sequence of commands is resumed.
  • the validation of the @g address consists in inter ⁇ rogating the search module @? 136 of the CAM memory to know if a pointer word references this address and if so, to write the data d ⁇ in this pointer word, and otherwise to query the error tracking module 137 in order to obtain a word in which to record the given address, the data item and set to "1" its error bit E.
  • the invalidation of the @g address consists of interrogating the search module 136 to find out if a pointer word references the @E address and if necessary, to reset the error bit E of this word to "0", which then becomes a "free" word.
  • the comparison circuit 110 performs the following operations. It looks first if the @g and @Q write addresses are identical. If so, it looks at whether the data d ⁇ and d ⁇ differ. Depending on whether the data differs or not, it performs a validation or invalidation of the @g address according to the method described above. In the case of a validation of the address @g, the data d ⁇ are stored in the memory CAM. In the case where the write addresses @g and @Q differ, the comparison circuit 110 interrupts the execution of the commands. It then reads in the CMem memory at the address @g and compares the read data with the data dg.
  • the data of ⁇ are stored in the CAM memory. It then reads in the CMem memory at the @Q address and then compares the read data with the data that the DC circuit wishes to write to the DC memory. Depending on whether the data differs or not, it performs a validation or invalidation of the @Q address. In the case of a validation of the @Q address, the data read from the memory CMem are stored in the memory CAM. We then performs the writing of the data d ⁇ in the memory CMem and resumes the execution of the sequence of commands. 4. Restoring errors in memory
  • the emulation circuit of the present invention comprises a memory CAM, as described above in relation to FIG. 5, used for storing errors, it is possible to know the errors present more quickly.
  • the command sequence is interrupted.
  • one or more error bits are set to one.
  • the scanning circuit successively selects the corresponding words. With each selected word, the address written in this word and possibly the data are emitted by the memory CAM.
  • An advantage of such a CAM memory is that it makes it possible to identify very quickly what are the errors present in the EMem memory, virtual or real. 5. Deleting part of the initialization phase
  • a disturbance is likely to arrive on any other unknown logic element or n 'any storage element (register or memory).
  • n any storage element
  • the electrical pulse produced at the output of the logic element can propagate and affect several storage elements.
  • the synchronous integrated circuits are provided for executing at least one determined command sequence at the rate of a clock signal and an external disturbance may occur when executing any command, on any clock cycle of the command sequence.
  • an external disturbance may occur when executing any command, on any clock cycle of the command sequence.
  • the values set in the registers can be erroneous. The circuit is then in an incorrect state. Certain values of the registers or memories differ from the values normally present in the circuit when it is in a "correct" state.
  • the emulation device of the present invention provides for positioning the DC circuit and the CMem memory in a "correct" state corresponding to the normal state of the circuit during a given cycle of the command sequence and to position the EC circuit and the CMem in an "incorrect” state having one or more errors with respect to this correct state.
  • the emulation device then performs the remaining cycles of the command sequence after the given cycle of the command sequence.
  • the emulation is stopped when the errors have disappeared or when a predetermined number of cycles has been executed.
  • Each cycle of the command sequence corresponds to a correct state of the circuit.
  • Positioning the EC and DC circuits as well as the EMem and CMem memories in a correct or incorrect state requires a large number of serial writes and therefore takes time.
  • the device emulates ⁇ of the present invention provides to add items to the device as described in relation to Figure 2.
  • Fig. 6 is a diagram of an emulation device comprising the elements of the emulation device described above as well as new elements.
  • the logic circuit CC supplies the read / write control signal WRc and the address signal @Q to the memory CMem.
  • the circuit CC supplies and receives data from / to the memory CMem.
  • the circuit EC supplies the write / read control signal WR E and the address signal @g to the memory EMem.
  • the circuit EC supplies or receives data dg to / from the memory EMem.
  • the selection signals CS 1 and CS 2 are not provided in this circuit, however those skilled in the art will be able to adapt the circuit to the presence of such signals.
  • Each memory includes for each address a validation bit V initially set to 0 in this example.
  • a Control circuit (CNT) 140 receives the address signals @g and @Q as well as write / read signals WR E and WRQ.
  • the control circuit (CNT) 140 can read or write the validation bits V associated with each of the memories CMem and EMem through devices not shown.
  • Two commuta ⁇ tors 141 and 142 allow the data E and ⁇ are provided by the memory IMEM CBS and DC circuits respectively.
  • the circuit When the circuit is positioned for the first time in a correct "pseudo-initial" state, corresponding to a correct state of the circuit obtained during a given cycle of the command sequence, instead of writing the correct values in the CMem memory, the correct values are written in the IMem memory.
  • the selected incorrect state includes errors in the EMem memory
  • the erroneous data are written in the EMem memory and the validation V and error E bits corresponding to the addresses of these data are set to "1".
  • the CNT control circuit 140 looks in the memories CMem or EMem what is the value of the validation bit V corresponding to the read address. If the validation bit V is equal to 1, the read data are those present in the CMem or EMem memory at this address. If the validation bit V of the memory CMem or EMem is at 0, the control circuit 140 controls the switches 141 or 142 in order to supply data to the circuit
  • An advantage of an emulation device comprising a specific memory for maintaining the pseudo-initial state of the memories EMem and CMem, is that it makes it possible to save time. Indeed, it is no longer necessary, before making a new emulation of the circuit, to rewrite the set of memories CMem and EMem in order to put the memory CMem in the correct pseudo-initial state and the memory EMem in a state possibly incorrect compared to the pseudo-initial state of the memory CMem.
  • the emulation device comprises an IMem memory memory of a pseudo-initial correct state memories associated with the circuits CC and EC
  • the words of the CAM memories each include an address field and a data field.
  • the words of the memory CAM-E further comprise an error bit E.
  • the words of the memory CAM-C further comprise a validation bit V.
  • the memory CAM-C stores "write" data corresponding to the data written by the circuit CC in the virtual memory CMem during the execution of the sequence of commands.
  • the memory CAM-C includes a search module whose function is to search, among the set of words having a validation bit V to "1", a word storing a given address, and a tracking module listing the words free and indicating on request a free word CAM-C memory, that is to say a word whose validation bit V is "0".
  • the validation bits V are reset to "0" before each emulation.
  • the CNT control circuit interrogates the search module of the CAM-C memory in order to know if the @ Q address is stored in a word having a validation bit V to "1". If this is the case, the data memorized in this word is supplied to the circuit CC. Otherwise the data is read in the IMem memory.
  • the CNT circuit When the DC circuit commands a write to an @ Q address, the CNT circuit asks the search module if the @ Q address is stored in a word of the CAM-C having a validation bit V at "1". If this is the case, the d data are written in this word. Otherwise, the circuit CNT asks the tracking module of the memory CAM-C to find a free word in order to memorize in this word the address @ Q and the data d ⁇ and to set to 1 its validation bit V.
  • the comparison circuit When the EC circuit controls a read or a write, the comparison circuit performs the operations described in chapter 3 by ordering if necessary readings in the virtual CMem memory.
  • the words of the CAM-E memory further comprise a validation bit V.
  • the E-CAM memory is used for storing two types of data: data "write "corresponding to the data written by the EC circuit, in the virtual EMem memory, during the execution of the command sequence, and the" erroneous "data corresponding to the data of the virtual EMem memory which differs from those of the virtual CMem memory .
  • the validation bits V of the words containing write data are set to "1".
  • the present invention is susceptible of various variations and modifications which will be apparent to those skilled in the art.
  • the analyzed circuit described above comprises a single memory but the emulation device applies similarly to a circuit comprising one or more memories, possibly of different types.
  • composition of the test platform 101 comprising all the logic circuits and memories previously described is particularly suitable to be performed in a programmable logic array.
  • a test platform can also be performed in a software, the set of logic circuits and memories then being described in a computer file. The execution of a command sequence by such a software test platform is then performed by means of a circuit computer simulator.

Abstract

The invention concerns a method for emulating or simulating the operation in the presence of disturbances of a circuit capable of executing a sequence of instructions, the circuit comprising logic elements and first storage elements, including the following steps: placing the circuit in an incorrect state, wherein the value of at least one storage element is modified relative to a correct state of the circuit; initiating execution of a sequence of instructions; providing in second storage elements, the normal values that the first storage elements would contain after executing each instruction if the circuit had been placed in the correct state; comparing after each executed instruction and by means of simultaneously activated comparators, all the values contained in the first and second storage elements; and stopping execution of instructions if the values contained in the first and second storage elements have become identical.

Description

EMULATION/SIMULATION D'UN CIRCUIT LOGIQUE EMULATION / SIMULATION OF A LOGIC CIRCUIT
La présente invention concerne l'émulation et la simulation du fonctionnement d'un circuit intégré en présence de perturbations susceptibles de modifier l'état du circuit.The present invention relates to the emulation and the simulation of the operation of an integrated circuit in the presence of disturbances likely to modify the state of the circuit.
La présente invention concerne plus particulièrement les circuits intégrés comprenant des éléments logiques, par exemple des portes logiques combinatoires OU, ET, et des éléments de mémorisation synchrones tels que des registres de bascules, des mémoires statiques (SRAM) , dynamiques (DRAM) , non volatiles (OTP, FLASH ou autres) . Quand un circuit intégré reçoit une perturbation externe, par exemple des radiations naturelles, une impulsion électrique est susceptible de se créer dans l'élément touché. Si l'élément touché est un élément logique, l'impulsion se propage ensuite à travers les éléments logiques suivants jusqu'à un ou plusieurs registres. Sur le coup d'horloge suivant la perturbation, les valeurs mémorisées dans ces registres peuvent présenter des erreurs. Si l'élément touché est un élément de mémorisation, la valeur qu'il contient peut être modifiée.The present invention relates more particularly to integrated circuits comprising logic elements, for example combinatorial logic gates OR, AND, and synchronous storage elements such as flip-flop registers, static memories (SRAM), dynamic memories (DRAM), not volatile (OTP, FLASH or others). When an integrated circuit receives an external disturbance, for example natural radiation, an electric pulse is likely to be created in the affected element. If the affected element is a logic element, then the pulse propagates through the following logical elements to one or more registers. On the clock stroke following the disturbance, the values stored in these registers may have errors. If the touched item is a storage item, the value it contains can be changed.
Les circuits intégrés exécutent de façon générale une séquence de commandes pouvant être stockée dans une mémoire, ou fournie par un dispositif externe par l'intermédiaire des bornes d'entrée/sortie du circuit. Quand une perturbation arrive, les valeurs contenues dans un ou plusieurs éléments de mémorisation peuvent être rendues incorrectes. Lors de l'exécution de commandes suivant l'incidence de la perturbation, le circuit peut retrouver un état normal correspondant à un état qu'il aurait eu en l'absence de perturbations. Toutefois, dans ce cas, le nombre de cycles nécessaires pour que le circuit retrouve un état normal est très variable.Integrated circuits generally execute a sequence of commands that can be stored in a memory, or provided by an external device through the input / output terminals of the circuit. When a disturbance arrives, values contained in one or more storage elements may be rendered incorrect. When executing commands according to the incidence of the disturbance, the circuit can return to a normal state corresponding to a state that it would have had in the absence of disturbances. However, in this case, the number of cycles necessary for the circuit to return to a normal state is very variable.
La figure 1 est un schéma d'un dispositif d'émulation connu utilisant un réseau logique programmable (de l'anglais FPGA, Field Programmable Gâte Array) . Le circuit émulé comprend deux circuits logiques synchrones 1 et 2 reliés à deux mémoires Meml et Mem2 par un bus 3. Les deux circuits logiques synchrones 1 et 2 sont représentés schématiquement sous la forme de blocs logiques combinatoires 10, 11 et 20 respectivement reliés aux entrées de données de registres 12, 13 et 21. Le bloc logique 10 reçoit des signaux externes. Les blocs logiques 11 et 20 reçoivent respectivement les données fournies par les registres 12 et 13. Le registre 21 fournit des signaux de sortie.Figure 1 is a diagram of a known emulation device using a programmable logic array (FPGA, Field Programmable Gate Array). The emulated circuit comprises two synchronous logic circuits 1 and 2 connected to two memories Mem1 and Mem2 by a bus 3. The two synchronous logic circuits 1 and 2 are shown schematically in the form of combinational logic blocks 10, 11 and 20 respectively connected to the inputs register data 12, 13 and 21. The logic block 10 receives external signals. The logic blocks 11 and 20 respectively receive the data provided by the registers 12 and 13. The register 21 provides output signals.
Afin de pouvoir positionner les registres dans un état prédéterminé, les circuits 1 et 2 comprennent des multiplexeurs 14, 15 et 22 et des registres à décalage 16, 17 et 23 connectés respectivement aux registres 12, 13 et 21. Chaque multiplexeur reçoit sur des premières entrées les données issues d'un bloc logique et sur des secondes entrées les sorties d'un registre à décalage et relie les premières ou secondes entrées aux entrées de données d'un registre dont les sorties sont connectées à un registre à décalage. Chaque registre à décalage 16, 17 et 23 reçoit ou fournit des données série sur une borne d'accès respectivement 18, 19 et 24. Les données en mémoire peuvent être lues ou écrites par l'intermédiaire d'une borne d'accès 4 reliée au bus 3.In order to be able to position the registers in a predetermined state, the circuits 1 and 2 comprise multiplexers 14, 15 and 22 and shift registers 16, 17 and 23 respectively connected to the registers 12, 13 and 21. Each multiplexer receives on first inputs data from a logic block and on second inputs the outputs of a shift register and connects the first or second inputs to the data inputs of a register whose outputs are connected to a shift register. Each shift register 16, 17 and 23 receives or provides serial data on an access terminal respectively 18, 19 and 24. The data in memory can be read or written via an access terminal 4 connected to the bus 3.
En fonctionnement normal, les éléments de mémorisation du circuit sont mis dans un état initial adapté à une séquence de commandes devant être exécutée. Afin d'émuler le fonction- nement du circuit ayant reçu une perturbation, on met, préala- blement à l'exécution de la séquence de commandes, le circuit dans un état initial modifié en introduisant une ou plusieurs erreurs par rapport à l'état initial normal.In normal operation, the circuit storage elements are put in an initial state adapted to a sequence of commands to be executed. In order to emulate the operation of the circuit having received a disturbance, it is necessary to In the execution of the command sequence, the circuit in a modified initial state introduces one or more errors with respect to the normal initial state.
Les valeurs que les registres 12, 13, 21 doivent contenir dans l'état initial modifié, sont introduites en série dans les registres à décalage 16, 17, 23, au rythme d'une horloge, puis écrites dans les registres 12, 13, 21 en parallèle sur un coup d'horloge. De même, on écrit les unes après les autres, les valeurs que doivent contenir chacune des mémoires. Le circuit exécute ensuite la séquence de commandes. A la fin de l'exécution, les données mémorisées dans les registres 12, 13, 21 sont écrites en parallèle dans les registres à décalage 16, 17, 23 et fournies en série pour analyse. On réalise de même une lecture des valeurs contenues dans les mémoires Meml et Mem2. Un inconvénient de ce circuit d'émulation classique est que, chaque fois que l'on veut effectuer un test, on déroule une séquence complète de commandes et ce n'est qu'à la fin de l'exécution de cette séquence de commandes que l'on peut savoir, en lisant de façon série le contenu des registres 16, 17 et 23, et des mémoires Meml et Mem2 si des erreurs subsistent ou si le circuit a retrouvé un état normal.The values that the registers 12, 13, 21 must contain in the modified initial state, are introduced in series in the shift registers 16, 17, 23, at the rate of a clock, then written in the registers 12, 13, 21 in parallel on a clock stroke. Similarly, we write one after the other, the values that must contain each of the memories. The circuit then executes the command sequence. At the end of the execution, the data stored in the registers 12, 13, 21 are written in parallel in the shift registers 16, 17, 23 and provided in series for analysis. The values contained in the memories Mem1 and Mem2 are likewise read. A disadvantage of this conventional emulation circuit is that, each time we want to perform a test, we run a complete sequence of commands and it is only at the end of the execution of this sequence of commands that it is possible to know, by reading serially the contents of registers 16, 17 and 23, and memories Mem1 and Mem2 if errors remain or if the circuit has found a normal state.
La présente invention vise à permettre simplement d'interrompre un test dès que l'on s'aperçoit qu'il n'existe plus d'erreurs dans le circuit après l'exécution d'une commande de la séquence de commandes en cours.The present invention aims to allow simply to interrupt a test as soon as one realizes that there are no more errors in the circuit after the execution of a command of the current command sequence.
Pour atteindre cet objet, la présente invention prévoit de comparer de façon parallèle et durant l'exécution de la séquence de commandes, le contenu des registres d'un circuit dans lequel on a injecté une erreur au contenu de registres contenant le résultat qui serait fourni par un circuit exempt d'erreurs exécutant en parallèle la même séquence de commandes.To achieve this object, the present invention provides for comparing in parallel and during the execution of the command sequence, the contents of the registers of a circuit in which an error has been injected to the contents of registers containing the result that would be provided. by an error-free circuit running in parallel the same sequence of commands.
On notera que ceci ne serait pas possible avec les circuits émulés de l'art antérieur étant donné que, si l'on voulait, après chaque commande déterminer si les registres contiennent ou non une erreur, il faudrait lire ces registres après chaque commande sous forme série. En fait, le nombre de borne d'accès au circuit émulé étant limité, les registres à décalage doivent contenir couramment entre une centaine et un millier de registres élémentaires d'un bit. Le temps de lecture en série des registres à décalage étant proportionnel au nombre de registres élémentaires à lire, et le temps de lecture des mémoires étant sensiblement proportionnel à leur taille, la durée de lecture peut devenir très longue. Si on réalisait une lecture après chaque commande, dans la majorité des cas, on arriverait à un temps d'exécution extrêmement long et prohibi¬ tif.Note that this would not be possible with the emulated circuits of the prior art since, if one wanted, after each command to determine whether or not the registers contain an error, it would be necessary to read these registers. after each order in serial form. In fact, since the number of access terminals to the emulated circuit is limited, the shift registers must currently contain between one hundred and one thousand elementary registers of a bit. Since the serial read time of the shift registers is proportional to the number of elementary registers to be read, and the read time of the memories being substantially proportional to their size, the playing time can become very long. If we realized a reading after each command, in most cases, one would arrive at an extremely long run time and prohibi ¬ tive.
Lors de la simulation d'un circuit, il est possible de demander au simulateur d'indiquer après chaque cycle quelles sont les valeurs contenues dans les registres et les mémoires et de les comparer aux valeurs normales qu'ils devraient contenir si le circuit n'était pas perturbé. Cependant, le fait de "sortir" les valeurs après chaque cycle ralentit énormément la simulation du circuit .During the simulation of a circuit, it is possible to ask the simulator to indicate after each cycle what are the values contained in the registers and the memories and to compare them with the normal values which they should contain if the circuit does not was not disturbed. However, "dropping" the values after each cycle greatly slows the simulation of the circuit.
De façon plus particulière, la présente invention prévoit un procédé d'émulation ou de simulation du fonction¬ nement en présence de perturbations d'un circuit susceptible d'exécuter une séquence de commandes, le circuit comportant des éléments logiques et des premiers éléments de mémorisation, le procédé comprenant les étapes suivantes : mettre le circuit dans un état incorrect, dans lequel la valeur d'au moins un élément de mémorisation est modifiée par rapport à un état correct du circuit ; lancer l'exécution d'une séquence de commandes ; fournir dans des seconds éléments de mémorisation, les valeurs normales que contiendraient les premiers éléments de mémorisa- tion après l'exécution de chaque commande si le circuit avait été mis dans l'état correct ; comparer après chaque commande exécutée et au moyen de comparateurs activés simultanément, toutes les valeurs contenues dans les premiers et seconds éléments de mémorisation ; et arrêter l'exécution des commandes si les valeurs contenues dans les premiers et seconds éléments de mémorisation deviennent identiques .More particularly, the present invention provides a method of emulation or simulation of the function ¬ nement in the presence of disturbances of a circuit capable of executing a sequence of commands, the circuit having logic elements and first storage elements the method comprising the steps of: putting the circuit in an incorrect state, wherein the value of at least one storage element is changed with respect to a correct state of the circuit; start execution of a command sequence; providing in second storage elements the normal values that the first memory elements would contain after the execution of each command if the circuit had been put in the correct state; comparing, after each command executed and by means of comparators activated simultaneously, all the values contained in the first and second storage elements; and stop the execution of commands if the values contained in the first and second storage elements become identical.
La présente invention prévoit en outre un dispositif d'émulation du fonctionnement en présence de perturbations d'un circuit susceptible d'exécuter une séquence de commandes, le dispositif comprenant : un circuit test identique audit circuit et comportant des éléments logiques et des premiers éléments de mémorisation ; des moyens pour mettre le circuit dans un état incorrect dans lequel la valeur d'au moins un premier élément de mémorisation est modifiée par rapport à un état correct du circuit ; des moyens pour lancer l'exécution d'une séquence de commandes ; des seconds éléments de mémorisation chargés par les valeurs normales que contiendraient les premiers éléments de mémorisation après chaque commande si le circuit avait été dans l'état correct avant l'exécution des commandes ; des compara¬ teurs pour établir après chaque commande exécutée si les valeurs contenues dans les premiers et seconds éléments de mémorisation diffèrent ; et des moyens d'interruption commandés par lesdits comparateurs . Selon une variante du dispositif précédemment décrit, le dispositif comprend un second circuit identique audit circuit test, les seconds éléments de mémorisation étant les éléments de mémorisation du second circuit, et comprend des moyens pour mettre le second circuit dans un état correct, lesdits moyens pour lancer l'exécution d'une séquence de commandes agissant sur les deux circuits .The present invention further provides a device for emulating operation in the presence of disturbances of a circuit capable of executing a sequence of commands, the device comprising: a test circuit identical to said circuit and comprising logic elements and first elements of memorization; means for putting the circuit in an incorrect state in which the value of at least a first storage element is changed with respect to a correct state of the circuit; means for initiating execution of a command sequence; second storage elements loaded by the normal values that would contain the first storage elements after each command if the circuit had been in the correct state before the execution of the commands; compara ¬ tors to establish after each command executed if the values contained in the first and second storage elements differ; and interrupt means controlled by said comparators. According to a variant of the device previously described, the device comprises a second identical circuit to said test circuit, the second storage elements being the storage elements of the second circuit, and comprises means for putting the second circuit in a correct state, said means for start the execution of a sequence of commands acting on both circuits.
Selon une variante du dispositif précédemment décrit, les premiers éléments de mémorisation comprennent des registres placés entre les éléments logiques. Selon une variante du dispositif précédemment décrit, les premiers éléments de mémorisation dudit circuit test comprennent au moins une mémoire mémorisant des mots de données constitués chacun d'au moins un bit. Selon une variante du dispositif précédemment décrit, certains ou tous les comparateurs comparent le contenu des registres de chacun des circuits.According to a variant of the device previously described, the first storage elements comprise registers placed between the logic elements. According to a variant of the device described above, the first storage elements of said test circuit comprise at least one memory storing data words each consisting of at least one bit. According to a variant of the device described above, some or all of the comparators compare the contents of the registers of each of the circuits.
Selon une variante du dispositif précédemment décrit, le dispositif comprend pour chaque mémoire dudit circuit test, un moyen de mémorisation supplémentaire comportant un bit d'erreur pour chaque adresse de la mémoire, un ou plusieurs comparateurs analysant les signaux adressés à une mémoire donnée dudit circuit test et les signaux adressés à la mémoire du second circuit identique à la mémoire donnée, afin d'activer ou de désactiver un bit d'erreur à une adresse déterminée lorsqu'une différence entre les mots de données mémorisés dans les deux mémoires à cette adresse déterminée apparaît ou disparaît, un circuit de détection d'erreur indiquant aux moyens d'interruption si au moins un bit d'erreur est activé.According to a variant of the device previously described, the device comprises for each memory of said test circuit, an additional storage means comprising an error bit for each address of the memory, one or more comparators analyzing the signals addressed to a given memory of said circuit. test and the signals addressed to the memory of the second identical circuit to the given memory, in order to activate or deactivate an error bit at a given address when a difference between the data words stored in the two memories at this address determined appears or disappears, an error detection circuit indicating the means of interruption if at least one error bit is activated.
Selon une variante du dispositif précédemment décrit, le dispositif comprend pour chaque mémoire dudit circuit test, une mémoire à adressage par le contenu constituée de mots prévus pour mémoriser chacun au moins une adresse et un bit d'erreur, un ou plusieurs comparateurs analysant les signaux adressés à une mémoire donnée dudit circuit test et les signaux adressés à la mémoire du second circuit identique à la mémoire donnée afin de détecter l'apparition ou la disparition d'une erreur consis¬ tant en une différence entre les mots de données mémorisés dans les deux mémoires à une adresse déterminée, l'apparition d'une erreur entraînant un relevé de l'adresse déterminée dans un mot de la mémoire à adressage par le contenu associée à la mémoire considérée, et une activation du bit d'erreur de ce mot, la disparition d'une erreur entraînant la désactivâtion du bit d'erreur du mot mémorisant l'adresse déterminée, un circuit de détection d'erreur indiquant aux moyens d'interruption si au moins un bit d'erreur est activé.According to a variant of the device previously described, the device comprises for each memory of said test circuit, a content addressing memory consisting of words intended to each store at least one address and an error bit, one or more comparators analyzing the signals. addressed to a given test said memory circuit and the signals sent to the memory of the second identical circuit to the data memory in order to detect the appearance or disappearance of a consis error ¬ both a difference between the data words stored in the two memories at a given address, the occurrence of an error resulting in a statement of the address determined in a word of the address memory by the content associated with the memory in question, and an activation of the error bit of this word , the disappearance of an error resulting in the deactivation of the error bit of the word storing the determined address, an earth detection circuit ur indicating the means of interruption if at least one error bit is activated.
Selon une variante du dispositif précédemment décrit, une mémoire dudit circuit test est une mémoire virtuelle remplacée par l'association d'une mémoire à adressage par le contenu CAM et d'un dispositif pilote relié audit circuit test et à la mémoire "associée" du second circuit correspondant à la mémoire virtuelle, un mot de la mémoire CAM étant prévu pour mémoriser au moins un mot de données, une adresse et un bit d'erreur, seuls les mots de la mémoire virtuelle qui diffèrent des mots de la mémoire associée étant mémorisés avec leurs adresses dans un mot de la mémoire CAM en activant son bit d'erreur, la lecture d'un mot de données dans la mémoire virtuelle à une adresse donnée consistant pour le dispositif pilote à regarder si un mot de données erroné correspondant à l'adresse donnée est mémorisé dans un mot de la mémoire CAM dont le bit d'erreur est activé et dans le cas contraire à demander une lecture à cette adresse dans la mémoire associée, l'écriture d'un mot dans la mémoire virtuelle à une adresse donnée consistant pour le dispositif pilote à comparer ce mot au mot écrit à l'adresse donnée dans la mémoire associée, et en cas de différence à mémoriser ce mot dans un mot de la mémoire CAM en activant son bit d'erreur, le dispositif pilote détectant les différences entre les signaux échangés entre la mémoire associée et le second circuit et les signaux échangés entre la mémoire virtuelle et le circuit test afin de relever les situations qui conduisent à des différences entre les mots de données mémorisés dans la mémoire virtuelle et ceux mémorisés dans la mémoire associée, les mots de données erronés de la mémoire virtuelle étant mémorisés dans des mots de la mémoire CAM en activant leurs bits d'erreur.According to a variant of the device previously described, a memory of said test circuit is a virtual memory replaced by the association of a memory addressed by the content CAM and a pilot device connected to said test circuit and to the "associated" memory of the second circuit corresponding to the virtual memory, a word of the memory CAM being provided for storing at least one data word, an address and an error bit , only the words of the virtual memory which differ from the words of the associated memory being stored with their addresses in a word of the memory CAM by activating its error bit, the reading of a data word in the virtual memory to a consistent data address for the pilot device to look at whether an erroneous data word corresponding to the given address is stored in a word of the CAM memory whose error bit is activated and otherwise to request a reading at this address in the associated memory, the writing of a word in the virtual memory to a given address consisting for the pilot device to compare this word with the word written at the given address in the associated memory , and if there is a difference in storing this word in a word of the memory CAM by activating its error bit, the pilot device detecting the differences between the signals exchanged between the associated memory and the second circuit and the signals exchanged between the memory virtual and the test circuit to identify situations that lead to differences between the data words stored in the virtual memory and those stored in the associated memory, the erroneous data words of the virtual memory being stored in words of the memory CAM by activating their error bits.
Selon une variante du dispositif précédemment décrit, le dispositif comprend pour chaque mémoire dudit circuit test, une mémoire identique dite d'initialisation comprenant les valeurs correctes des mémoires du circuit test correspondant à l'état initial du circuit test avant l'exécution d'une séquence de commandes, et comprenant pour chaque mémoire du circuit test et du second circuit, un moyen de mémorisation supplémentaire comportant un bit de validation pour chaque adresse de la mémoire correspondante, et dans lequel un mot lu par le circuit test ou le second circuit à une adresse donnée d'une mémoire provient soit de la mémoire d'initialisation quand le bit de validation correspondant à cette adresse est non activé, soit de cette mémoire quand le bit de validation correspondant à cette adresse est activé suite à une écriture précédente à cette adresse lors de l'exécution de la séquence de commandes.According to a variant of the device previously described, the device comprises for each memory of said test circuit, an identical memory called initialization comprising the correct values of the memories of the test circuit corresponding to the initial state of the test circuit before the execution of a sequence of commands, and comprising for each memory of the test circuit and the second circuit, an additional storage means comprising a validation bit for each address of the corresponding memory, and in which a word read by the test circuit or the second circuit to a given address of a memory either from the initialization memory when the validation bit corresponding to this address is not activated, or from this memory when the validation bit corresponding to this address is activated following a previous write to this address when executing the sequence of commands.
Selon une variante du dispositif précédemment décrit, les mémoires du circuit test et leurs mémoires associées du second circuit sont des mémoires virtuelles remplacées chacune par l'association d'une mémoire à adressage par le contenu CAM et d'un dispositif pilote relié à la mémoire d'initialisation, au circuit test et au second circuit, les mots des mémoires CAM étant prévus pour mémoriser chacun un mot de données, une adresse, un bit de validation et dans le cas des mémoires CAM remplaçant les mémoires du circuit test, un bit d'erreur, un mot de données et son adresse d'écriture dans une mémoire virtuelle étant mémorisés dans un mot de la mémoire CAM remplaçant cette mémoire virtuelle en activant son bit de validation, un mot de données fourni lors d'une lecture d'une mémoire virtuelle à une adresse donnée, provenant de la mémoire CAM remplaçant cette mémoire virtuelle ou de la mémoire d'initialisation selon que 1 ' adresse donnée est ou non mémorisée dans un mot de la mémoire CAM ayant un bit de validation activé, les mots de données erronés d'une mémoire du circuit test étant mémorisés dans des mots de la mémoire CAM remplaçant cette mémoire en activant leurs bits de validation et d'erreur.According to a variant of the device previously described, the memories of the test circuit and their associated memories of the second circuit are virtual memories each replaced by the association of a memory addressed by the content CAM and a pilot device connected to the memory of initialization, to the test circuit and to the second circuit, the words of the memories CAM being provided for each memorizing a data word, an address, a validation bit and in the case of the CAM memories replacing the memories of the test circuit, a bit of error, a data word and its write address in a virtual memory being stored in a word of the memory CAM replacing this virtual memory by activating its validation bit, a data word provided during a reading of a virtual memory at a given address, coming from the memory CAM replacing this virtual memory or the initialization memory according to whether the given address is or not m morisée in a word in the CAM having a valid bit set, the erroneous data words in a memory of the test circuit are stored in words of the CAM replacing the memory by activating their enable bits and error.
Selon une variante du dispositif précédemment décrit, le circuit test, le second circuit et les comparateurs sont des éléments physiques pouvant être réalisés dans un réseau logique programmable . La présente invention prévoit en outre un fichier informatique comprenant une description d'un dispositif précédemment décrit, et destiné à être simulé par un simulateur informatique de circuit afin d'exécuter ladite séquence de commandes . Ces objets, caractéristiques et avantages, ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non-limitatif en relation avec les figures jointes parmi lesquelles : la figure 1 est un schéma, précédemment décrit, d'un circuit logique émulé selon l ' art antérieur ; la figure 2 est un schéma d'un dispositif d'émulation selon la présente invention ; la figure 3 est un schéma plus détaillé du circuit comparateur du dispositif de la figure 2 ; la figure 4 est un schéma de mémorisation/détection des erreurs selon un mode de réalisation de la présente invention ; la figure 5 est un schéma d'une mémoire CAM utilisée dans un mode de réalisation de la présente invention ; et la figure 6 est un schéma d'une variante de réalisation du dispositif d'émulation de la présente invention.According to a variant of the device described above, the test circuit, the second circuit and the comparators are physical elements that can be realized in a programmable logic array. The present invention further provides a computer file comprising a description of a device previously described, and intended to be simulated by a circuit computer simulator to execute said sequence of commands. These and other objects, features, and advantages of the present invention will be set forth in detail in the following description of particular embodiments given in a non-limiting manner with reference to the accompanying drawings in which: FIG. , previously described, of a logic circuit emulated according to the prior art; Fig. 2 is a diagram of an emulation device according to the present invention; Figure 3 is a more detailed diagram of the comparator circuit of the device of Figure 2; Fig. 4 is a storage / error detection scheme according to an embodiment of the present invention; Fig. 5 is a diagram of a CAM memory used in an embodiment of the present invention; and Fig. 6 is a diagram of an alternative embodiment of the emulation device of the present invention.
Dans une première partie, on décrira la structure et le fonctionnement des éléments de base du dispositif d'émulation de la présente invention.In a first part, the structure and operation of the basic elements of the emulation device of the present invention will be described.
Dans une deuxième partie, on décrira des variantes de mémorisation et de détection des erreurs en mémoire.In a second part, memory variants and detection of errors in memory will be described.
Dans une troisième partie, on décrira un moyen de réduire la taille du dispositif d'émulation.In a third part, we will describe a way to reduce the size of the emulation device.
Dans une quatrième partie, on décrira un moyen de restitution rapide des erreurs présentes dans une mémoire du circuit testé.In a fourth part, there will be described a means for rapidly restoring the errors present in a memory of the circuit under test.
Dans une cinquième partie, on décrira des moyens permettant d'accélérer la phase d'initialisation des mémoires du circuit testé préalablement à l'exécution d'une nouvelle séquence de commandes .In a fifth part, means will be described for accelerating the initialization phase of the memories of the tested circuit prior to the execution of a new command sequence.
Dans une sixième partie, on décrira un moyen de réduire la taille du dispositif d'émulation et d'accélérer la phase d'initialisation du circuit préalablement à l'exécution d'une nouvelle séquence de commandes. 1. Eléments de base du dispositif d'émulation 1.1 Structure générale La figure 2 est un schéma d'un dispositif d'émulationIn a sixth part, we will describe a way to reduce the size of the emulation device and accelerate the phase of initialization of the circuit before the execution of a new sequence of commands. 1. Basic Elements of the Emulation Device 1.1 General Structure Figure 2 is a diagram of an emulation device
100 selon la présente invention. Le dispositif d'émulation comprend une plateforme de test 101 et des éléments de commande et d'analyse logiciels. La plateforme de test 101 comprend un ensemble de circuits logiques et des mémoires réalisés dans un réseau logique programmable 101 (de l'anglais FPGA, Field Programmable Gâte Array) . Plus précisément, la plateforme de test 101 comprend deux circuits logiques EC et CC identiques reliés chacun à une mémoire respectivement EMem et CMem. Les circuits EC et CC sont réalisés à partir d'une description fonctionnelle, par exemple de type RTL (de l'anglais Register Transfert Level) , d'un circuit dont on souhaite connaître le fonctionnement quand il est soumis à une perturbation. Chaque circuit logique EC et CC est représenté schématiquement, comme en figure 1, sous la forme de blocs logiques combinatoires intercalés entre des registres. A chaque registre est associé un registre à décalage et un multiplexeur permettant de charger et éventuellement de décharger en série le registre.100 according to the present invention. The emulation device comprises a test platform 101 and software control and analysis elements. The test platform 101 comprises a set of logic circuits and memories made in a programmable logic network 101 (FPGA, Field Programmable Gate Array). More specifically, the test platform 101 comprises two identical logic circuits EC and CC each connected to a memory EMem and CMem respectively. The circuits EC and CC are made from a functional description, for example of the type RTL (English Register Transfer Level), a circuit whose operation one wishes to know when it is subjected to a disturbance. Each logic circuit EC and CC is shown schematically, as in FIG. 1, in the form of combinational logic blocks interposed between registers. Each register is associated with an offset register and a multiplexer for loading and possibly discharging the register in series.
A titre d'exemple, les circuits EC et CC comprennent chacun trois blocs logiques respectivement LE]_, LE2, LE3 et LQ]_, Lc2' Lc3' reliés à trois registres respectivement RE]_, RE2' RE3 et Rcir RC2' RC3 commandés par une horloge CLK. Les sorties de données d'un registre REj_ ou RQI? i étant compris entre 1 et 3, sont reliées aux entrées de données d'un registre à décalage RDEj_ ou RDQJ_. Les données issues d'un bloc logique LEj_ ou LQJ_ arrivent sur des premières entrées d'un multiplexeur MEj_ ou Mçj_.For example, the circuits EC and CC each comprise three logic blocks respectively L E] _, L E 2, L E 3 and LQ] _, Lc2 'Lc3' connected to three registers respectively R E ] _, R E2 ' R E3 and Rcir RC2' R C3 controlled by a clock CLK. The data outputs of a register R E j_ or RQI ? i being between 1 and 3, are connected to the data inputs of a shift register RD E j_ or RDQJ_. Data from a logic block L E j_ or LQJ_ arrive on first inputs of a multiplexer M E j_ or Mçj_.
Chaque multiplexeur MEj_ ou MQJ_ reçoit sur des secondes entrées, les sorties de données du registre à décalage RDEj_ ou RDQJ_. Les sorties de chaque multiplexeur MEj_ ou Mçj_ sont reliées aux entrées de données du registre REj_ ou Rçj_. Le circuit logique EC est relié à un dispositif d'écriture 102, et le circuit logique CC est relié à un dispositif d'écriture 103. Les dispositifs 102 et 103 font partie du logiciel du dispositif d'émulation et sont éventuellement réalisés sous forme logicielle. Le dispositif d'écriture 102 est relié aux registres à décalage RDE]_, RDE2, RDE3 Par l'intermé¬ diaire respectivement de trois bornes d'accès BE]_, BE2 et BE3. Le circuit d'écriture série 103 est relié aux registres à décalage RDQ]_, RDQ2? R0CS Par trois bornes d'accès BQ]_, BQ2 et BQ3. De même, la mémoire EMem est reliée au dispositif d'écriture 102 par l'intermédiaire d'une borne d'accès BE5. La mémoire CMem est reliée au dispositif d'écriture 103 par l'intermédiaire d'une borne d'accès BQ5.Each multiplexer M E j_ or MQJ_ receives on second inputs, the data outputs of the shift register RD E j_ or RDQJ_. The outputs of each multiplexer M E j_ or Mj_ are connected to the data inputs of the register R E j_ or Rj_. The logic circuit EC is connected to a writing device 102, and the logic circuit CC is connected to a writing device 103. The devices 102 and 103 are part of the software of the emulation device and are optionally implemented in software form. . The writing device 102 is connected to the shift registers RD E] _, RD E 2, P ar RDE3 the interme diary ¬ three terminals respectively access B E] _, B E B E 2 and 3. The series write circuit 103 is connected to the shift registers RDQ] _, RDQ2? R 0 CS P ar three access terminals BQ] _, BQ2 and B Q3. Similarly, the memory EMem is connected to the writing device 102 via an access terminal B E 5. The memory CMem is connected to the writing device 103 via a terminal of BQ5 access.
De plus, selon l'invention, le circuit 101 comprend des comparateurs C]_, C2 et C3. Chaque comparateur Cj_ reçoit et compare deux à deux l'ensemble des sorties de données des registres REj_ et RQI- Une porte OU 106 reçoit chacune des sorties des comparateurs C]_, C2 et C3 et indique si au moins un des bits de l'ensemble des registres des circuits CC et EC diffère. La sortie de la porte OU 106 est reliée à un dispositif de détection 107 par l'intermédiaire d'une borne d'accès Bg. De plus, un circuit de comparaison (COMP) 110 compare les signaux d'adresse, de données et de commande envoyés par les circuits CC et EC respectivement aux mémoires CMem et EMem. La mémoire EMem contient des bits de mémorisation supplémentaires par rapport à la mémoire CMem. A chaque adresse de la mémoire EMem est associé un bit d'erreur E. Le circuit de comparaison 110 est relié à un compteur (COUNT) 111 dont la sortie est reliée au dispositif de détection 107 par l'intermédiaire d'une borne d'accès B7. Le dispositif de détection est de préférence un élément du logiciel du dispositif d'émulation.Furthermore, according to the invention, the circuit 101 includes comparators C] _, C2 and C3. Each comparator Cj_ receives and compares in pairs the set of data outputs of the registers R E j_ and RQI- An OR gate 106 receives each of the outputs of comparators C ] _, C2 and C3 and indicates whether at least one of the bits of the set of registers of the circuits CC and EC differs. The output of the OR gate 106 is connected to a detection device 107 via an access terminal Bg. In addition, a comparison circuit (COMP) 110 compares the address, data and control signals sent by the circuits CC and EC respectively to the memories CMem and EMem. The memory EMem contains additional memory bits relative to the memory CMem. At each address of the memory EMem is associated an error bit E. The comparison circuit 110 is connected to a counter (COUNT) 111 whose output is connected to the detection device 107 via a terminal of access B7. The detection device is preferably an element of the software of the emulation device.
Un dispositif de commande 104 faisant partie du logiciel du dispositif d'émulation, est relié aux entrées des blocs logiques LE]_ et LQ]_ par l'intermédiaire de deux bornes d'accès respectivement BE4 et BQ4. Durant une phase d'initialisation, le circuit CC, dit "circuit correct", et sa mémoire CMem sont positionnés dans un état initial dit normal préalablement à l'exécution d'une séquence de commandes. Les valeurs que doivent contenir les registres RQ]_ à RQ3 dans l'état initial normal, sont fournies en série par le dispositif d'écriture 103 aux registres à décalage RDQ]_ à RDQ3 au rythme d'une horloge CLKg. Les multiplexeurs Mç]_ à MQ3 sont ensuite positionnés de façon à charger dans les registres RQ]_ à Rc3? les valeurs écrites dans les registres RDQ]_ à RDQ3, en un coup d'horloge CLK. De même, les valeurs initiales normales que doit contenir la mémoire CMem sont fournies les unes après les autres par le dispositif d'écriture 103 et écrites dans la mémoire CMem. Simultanément, le circuit EC dit "circuit d'erreur" est mis dans un état initial modifié pour lequel une ou plusieurs valeurs mémorisées dans les registres REl à R-E3 et dans la mémoire EMem sont modifiées par rapport aux valeurs à l'état initial normal des registres RQ]_ à RQ3 et de la mémoire CMem.A control device 104 forming part of the software of the emulation device, is connected to the inputs of the logic blocks L E] _ and LQ] _ via two access terminals respectively B E 4 and BQ4. During an initialization phase, the circuit CC, called "correct circuit", and its memory CMem are positioned in an initial state said normal prior to the execution of a sequence of commands. The values which the registers RQ] _ to RQ3 in the normal initial state must contain are supplied in series by the writing device 103 to the shift registers RDQ] _ to RDQ3 at the rate of a clock CLKg. MC multiplexers] _ to MQ3 are then positioned to load into the RQ records] _ to Rc3? the values written in the registers RDQ] _ to RDQ3, in a clock stroke CLK. Likewise, the normal initial values which the memory CMem must contain are supplied one after the other by the writing device 103 and written in the memory CMem. Simultaneously, the circuit EC said "error circuit" is put in a modified initial state for which one or more values stored in the registers R El to R-E3 and in the EMem memory are modified compared to the values in the state initial initial of the registers RQ] _ to RQ3 and the memory CMem.
On notera que dans le cas où l'on peut disposer d'un grand nombre de bornes d'accès entre la plateforme de test 101 et les éléments de commande et d'analyse logiciels, on peut prévoir de charger directement les registres Rg]_ à RE3 et RQ]_ à RQ3 sans utiliser de registres à décalage RDE]_ à RDE3 et RDQ]_ àNote that in the case where one can have a large number of base stations between the test platform 101 and the control elements and analysis software may be provided to directly load the registers R] _ to R E 3 and RQ] _ to RQ3 without using shift registers RD E] _ to RD E 3 and RDQ] _ to
RDC3- Pendant la phase d'émulation, chaque circuit CC et EC reçoit de la part du dispositif de commande 104 des commandes similaires. Le dispositif de commande 104 peut par exemple activer un signal d'initialisation d'une séquence d'instructions mémorisée dans chacune des mémoires CMem et EMem. Ce sera par exemple le cas quand le circuit émulé est un microprocesseur, un microcontrôleur ou tout autre dispositif prévu pour exécuter une séquence d'instructions mémorisée. Le dispositif de commande 104 peut aussi fournir directement une succession de commandes que les circuits CC et EC exécutent au rythme de l'horloge CLK. Dans ce cas, le circuit émulé peut par exemple être un circuit d'interface, un additionneur ou n'importe quel circuit réalisant une fonction donnée sur commande de signaux externes.RDC3- During the emulation phase, each DC and EC circuit receives similar commands from the controller 104. The control device 104 may, for example, activate an initialization signal of an instruction sequence stored in each of the memories CMem and EMem. This will be the case, for example, when the emulated circuit is a microprocessor, a microcontroller or any other device intended to execute a stored instruction sequence. The controller 104 may also directly provide a succession of commands that the DC and EC circuits execute at the rate of the CLK clock. In this case, the emulated circuit may for example be a circuit an interface, an adder or any circuit performing a given function on command of external signals.
Durant la phase d'émulation, quand une donnée incor¬ recte a été écrite à une adresse de la mémoire EMem, le circuit de comparaison 110 positionne le bit d'erreur E associé à cette adresse à une valeur donnée, par exemple "1". Chaque fois qu'un nouveau bit d'erreur E est positionné à 1, le circuit de comparaison incrémente le compteur 111. Dans le cas où une erreur est initialement introduite dans la mémoire EMem, le bit d'erreur E correspondant à l'adresse des valeurs erronées est positionné à 1. Lors de l'exécution de la séquence de commandes, il est possible qu'une écriture vienne modifier les valeurs contenues à une adresse dont le bit d'erreur est à 1. Dans le cas uniquement où les valeurs écrites sont correctes, le circuit de comparaison 110 remet le bit d'erreur E correspondant à 0 et décrémente le compteur 111.During the emulation phase when a given incor rect ¬ was written at an address of the memory EMEM, the comparison circuit 110 sets the error E bit associated with this page to a given value, for example "1" . Each time a new error bit E is set to 1, the comparison circuit increments the counter 111. In the case where an error is initially introduced into the memory EMem, the error bit E corresponding to the address erroneous values are set to 1. When executing the command sequence, it is possible for a write to modify the values contained in an address whose error bit is at 1. In the case only where the written values are correct, the comparison circuit 110 resets the error bit E corresponding to 0 and decrements the counter 111.
Le dispositif de détection 107 a pour fonction de surveiller les comparateurs Cl à C3 et le compteur 111. Quand le compteur 111 et les comparateurs Cl à C3 sont tous à 0, ce qui signifie que l'erreur introduite a disparu après l'exécution d'un certain nombre de commandes, le dispositif de détection 107 demande l'arrêt de l'exécution des commandes et le dispositif d'émulation est disponible pour un nouveau test. Eventuellement, on relève le nombre de cycles d'horloge CLK exécutés préalable- ment à l'arrêt de la séquence de commandes. On pourra aussi prévoir d'arrêter l'exécution des commandes lorsque des erreurs subsistent après un nombre prédéterminé de cycles d'horloge CLK exécutés .The function of the detection device 107 is to monitor the comparators C1 to C3 and the counter 111. When the counter 111 and the comparators C1 to C3 are all at 0, which means that the error introduced has disappeared after the execution of a number of commands, the detection device 107 requests the stop execution of the commands and the emulation device is available for a new test. Optionally, the number of clock cycles CLK executed prior to stopping the command sequence is recorded. It will also be possible to stop the execution of commands when errors remain after a predetermined number of CLK clock cycles executed.
Lors de chaque test, le circuit CC est positionné dans un état initial choisi, et le circuit EC est positionné dans un état initial modifié par rapport à l'état initial choisi. Le choix de l'état initial et de la séquence de commande exécutée dépend du circuit analysé. Dans le cas où le circuit analysé est un circuit effectuant une séquence de commandes déterminée, on choisira bien évidemment d'effectuer cette séquence de commandes. Dans le cas où le circuit analysé est un circuit générique pouvant exécuter toutes sortes de programmes, on pourra utiliser des séquences de commandes aléatoires.During each test, the circuit CC is set in a selected initial state, and the circuit EC is positioned in a modified initial state with respect to the chosen initial state. The choice of the initial state and the command sequence executed depends on the analyzed circuit. In the case where the analyzed circuit is a circuit performing a sequence of commands determined, it will obviously be chosen to perform this sequence of commands. In the case where the analyzed circuit is a generic circuit that can execute all kinds of programs, it will be possible to use random command sequences.
De plus, on pourra prévoir d'analyser pendant l'exécu- tion de la séquence de commandes certains signaux de sortie ayant une fonction importante afin de savoir si le circuit peut quand il est soumis à une perturbation avoir des signaux de sortie qui présentent un comportement dangereux.In addition, it will be possible to analyze during the execution of the control sequence certain output signals having an important function in order to know if the circuit can, when it is subjected to a disturbance, have output signals which exhibit dangerous behavior.
Un avantage du dispositif d'émulation de la présente invention est qu'il permet par rapport au dispositif d'émulation connu de réaliser en un temps donné, davantage de simulations différentes. En effet, chaque test est arrêté dès que l'on constate que les erreurs introduites ont disparu. 1.2 Exemple de réalisation du circuit de comparaison La figure 3 est un schéma plus détaillé d'un exemple des signaux échangés entre les circuits logiques CC et EC, les mémoires CMem et EMem et le circuit de comparaison 110. Les circuits CC et EC fournissent des signaux de commande d'écriture/lecture respectivement WRQ et WRE, des signaux d'adresse respectivement @Q et @g et des signaux de sélection de la mémoire CSQ et CS^. Les circuits CC et EC fournissent ou reçoivent des signaux de données dQ et d^ qui sont écrites, ou lues dans les mémoires CMem et EMem. Le circuit de comparaison 110 reçoit les signaux de commande d'écriture/lecture WRE, WRQ, les signaux d'adresses @g et @Q, les signaux de sélection CSQ etAn advantage of the emulation device of the present invention is that it allows compared to the known emulation device to achieve in a given time, more different simulations. Indeed, each test is stopped as soon as it is found that the errors introduced have disappeared. 1.2 Example of Implementation of the Comparison Circuit FIG. 3 is a more detailed diagram of an example of the signals exchanged between the logic circuits CC and EC, the memories CMem and EMem and the comparison circuit 110. The circuits CC and EC provide write / read control signals respectively WRQ and WR E , address signals respectively @Q and @g and memory select signals CSQ and CS ^. The circuits CC and EC to provide or receive data signals Q and ^ that are written or read in the EMMC and emem memories. The comparison circuit 110 receives the write / read control signals WR E , WRQ, the address signals @g and @Q, the selection signals CSQ and
CS^ et les signaux de données dg et dQ. Six commutateurs 120, 121, 122, 123, 124 et 125 permettent que les signaux d'adresse @E, @Q, les signaux de commande WRE et WRQ et les signaux de sélection CSQ et CSg fournis aux mémoires CMem et EMem soient commandés par le circuit de comparaison 110 et non par les circuits logiques CC et EC.CS ^ and the data signals dg and d Q. Six switches 120, 121, 122, 123, 124 and 125 allow the address signals @E, @Q, the control signals WR E and WRQ and the selection signals CSQ and CSg supplied to the memories CMem and EMem to be controlled by the comparison circuit 110 and not by the logic circuits CC and EC.
Lorsque le signal CS^ (CSQ) est actif, la mémoire EMem (CMem) fournit des données sur le signal de données d^ (dQ) quand le signal WRE (WRQ) commande une lecture à une adresse indiquée par le signal d'adresse @g. Aucune donnée n'est écrite sur le signal dE (dç) quand le signal CSE (CSQ) est inactif. Quand le signal WRE (WRQ) commande une écriture à une adresse @E (@Q) , la mémoire EMem (CMem) l'effectue uniquement si le signal CSE (CSC) est actif. Quand le circuit de comparaison 110 souhaite lire ou écrire une donnée à une adresse donnée de la mémoire EMem, il pilote les commutateurs 120, 121 et 125 afin de pouvoir commander les signaux @E, WRE et CSE. De même, lorsque le circuit de comparaison 110 souhaite lire une donnée à une adresse donnée de la mémoire CMem, il pilote les commutateurs 122, 123 et 124 afin de pouvoir commander les signaux @Q, WRQ etWhen the signal CS ^ (CSQ) is active, the memory EMem (CMem) provides data on the data signal d ^ (d Q ) when the signal WR E (WRQ) controls a reading at an address indicated by the signal d @g address. No data is written on the signal E (dc) when the signal CS E (CSQ) is inactive. When the signal WR E (WRQ) commands a write to an address @ E (@Q), the memory EMem (CMem) does so only if the signal CS E (CS C ) is active. When the comparison circuit 110 wishes to read or write data to a given address of the EMem memory, it controls the switches 120, 121 and 125 in order to be able to control the signals @ E , WR E and CS E. Similarly, when the comparison circuit 110 wishes to read data at a given address of the memory CMem, it controls the switches 122, 123 and 124 in order to be able to control the signals @Q, WRQ and
CSQ.CSQ.
Le circuit de comparaison 110 pilote les commutateurs 120, 121 et 125 de façon à accéder aux signaux @E, WRE et CSE lorsqu'il souhaite lire ou écrire un bit d'erreur E. La diffé¬ rence entre la lecture/écriture d'un bit d'erreur E et une donnée est éventuellement indiquée au moyen d'un signal non représenté .The comparison circuit 110 switches the driver 120, 121 and 125 so as to access the E @ signals, WR and CS E E when it wishes to read or write a bit error E. The dif ¬ ence between the read / write an error bit E and a data item is optionally indicated by means of a signal not shown.
Préalablement à l'exécution d'une commande par les circuits EC et CC, le circuit de comparaison 110 commande les commutateurs 120 à 125 afin qu'ils relient les mémoires CMem et EMem aux circuits CC et EC. Pendant l'exécution de la commande, le circuit de comparaison 110 analyse les signaux émis par les circuits CC et EC et effectue différentes actions décrites ci- après.Prior to the execution of a command by the circuits EC and CC, the comparison circuit 110 controls the switches 120 to 125 so that they connect the memories CMem and EMem to the circuits CC and EC. During the execution of the command, the comparison circuit 110 analyzes the signals emitted by the circuits CC and EC and performs various actions described hereinafter.
1.2.1 Signaux de sélection CSQ et CSE actifs1.2.1 Active CSQ and CS E selection signals
Quand le circuit EC commande une écriture et le circuit CC commande une lecture par le biais des signaux de commande d'écriture/lecture WRE et WRQ, il est peu probable que les données écrites dans la mémoire EMem à l'adresse @E soient identiques aux données actuellement mémorisées dans la mémoire CMem à l'adresse @E. Le circuit de comparaison 110 interrompt la séquence de commandes exécutée par les circuits CC et EC.When the EC circuit controls a write and the DC circuit controls a read through write / read control signals WR E and WRQ, it is unlikely that the data written in the EMem at @ E will be identical to the data currently stored in the CMem at @ E. The comparison circuit 110 interrupts the sequence of commands executed by the circuits CC and EC.
Selon une version simplifiée du circuit de comparaison 110, le circuit de comparaison 110 pilote les commutateurs 120 et 121 afin de lire le bit d'erreur E correspondant à l'adresse @E- Si le bit d'erreur est égal à 0, il le positionne à "1" et il incrémente le compteur 111.According to a simplified version of the comparison circuit 110, the comparison circuit 110 controls the switches 120 and 121 to read the error bit E corresponding to the address @ E- If the error bit is equal to 0, it sets it to "1" and it increments the counter 111.
Selon une version plus perfectionnée du circuit de comparaison 110, le circuit de comparaison 110 pilote les commu¬ tateurs 122 et 123 afin d'effectuer une lecture de la mémoire CMem à l'adresse @g. Dans le cas où les adresses @g et @Q sont identiques, cette lecture peut ne pas être effectuée. Les données lues sont comparées aux données écrites dans la mémoire EMem à l'adresse @g. En parallèle ou à la suite, le circuit de comparaison 110 effectue une lecture du bit E correspondant à l'adresse @g en pilotant les commutateurs 120 et 121 afin de pouvoir lire dans la mémoire EMem. L'action effectuée ensuite par le circuit de comparaison est fonction de la différence ou non des données et de la valeur du bit E lu à l'adresse @g. Dans le cas où les données diffèrent et où le bit E lu à l'adresse @g est nul, la nouvelle erreur est relevée en positionnant à "1" le bit E à l'adresse @g et en incrémentant le compteur 111. Dans le cas où les données sont identiques et où le bit E lu à d'adresse @E est positionné à "1", il n'y a plus d'erreurs à l'adresse @g. Le bit E est alors positionné à "0" et le compteur 111 est décrémenté. Dans les autres cas, le circuit de comparaison 110 n'effectue pas de modification du bit E ni d'incrémentation ou de décrémentation du compteur 111. Les actions possibles sont résumées dans le tableau (1) suivant. According to a more sophisticated version of the comparison circuit 110, the comparison circuit 110 drives the commu ¬ torters 122 and 123 to perform a reading of the CMem memory at the address @g. In the case where the addresses @g and @Q are identical, this reading may not be performed. The read data is compared to the data written in the EMem memory at the address @g. In parallel or subsequently, the comparison circuit 110 reads the bit E corresponding to the address @g by controlling the switches 120 and 121 in order to be able to read in the memory EMem. The action then performed by the comparison circuit is a function of the difference or not the data and the value of the bit E read at the address @g. In the case where the data differs and the bit E read at the address @g is zero, the new error is raised by setting the bit E to the address @g at "1" and incrementing the counter 111. In the case where the data are identical and the bit E read at address @E is set to "1", there are no more errors at the address @g. The bit E is then set to "0" and the counter 111 is decremented. In other cases, the comparison circuit 110 does not modify the bit E or increment or decrement the counter 111. The possible actions are summarized in the following table (1).
Figure imgf000019_0001
Figure imgf000019_0001
Une fois que le circuit de comparaison 110 a effectué l'ensemble de ces opérations, l'exécution de la séquence de commandes reprend.Once the comparison circuit 110 has performed all of these operations, the execution of the command sequence resumes.
Quand le circuit EC commande une lecture et le circuit CC commande une écriture par le biais des signaux d'écriture/ lecture WRg et WRQ, il est là aussi peu probable que les données écrites dans la mémoire CMem à l'adresse @Q soient identiques à celles actuellement mémorisées dans la mémoire EMem à l'adresseWhen the EC circuit controls a read and the DC circuit controls a write through the write / read signals WRg and WRQ, it is there also unlikely that the data written in the CMem memory at the address @Q are identical to those currently stored in the EMem memory at the address
@Q. Le circuit de comparaison 110 interrompt la séquence de commandes exécutée par les circuits CC et EC.@Q. The comparison circuit 110 interrupts the sequence of commands executed by the circuits CC and EC.
Selon une version simplifiée du circuit de comparaisonAccording to a simplified version of the comparison circuit
110, le circuit de comparaison 110 pilote les commutateurs 120 et 121 afin de lire le bit d'erreur E correspondant à l'adresse110, the comparison circuit 110 drives the switches 120 and 121 to read the error bit E corresponding to the address
@Q. Si ce bit est égal à 0, il le positionne à "1" et il incrémente le compteur 111.@Q. If this bit is equal to 0, it sets it to "1" and increments counter 111.
Selon une version plus perfectionnée du circuit de comparaison 110, le circuit de comparaison 110 pilote les commutateurs 120 et 121 afin d'effectuer une lecture de la mémoire EMem à l'adresse @Q. Dans le cas où les adresses @E et @c sont identiques, cette lecture peut ne pas être effectuée. Les données lues sont comparées aux données écrites dans la mémoire CMem à l'adresse @Q. Le circuit de comparaison 110 effectue une lecture du bit E correspondant à l'adresse @Q. Les actions possibles du circuit de comparaison sont résumées dans le tableau (2) suivant.According to a more sophisticated version of the comparison circuit 110, the comparison circuit 110 controls the switches 120 and 121 in order to read the EMem memory at the address @Q. In the case where the addresses @E and @c are identical, this reading may not be performed. The read data is compared to the data written in the CMem at @Q. The comparison circuit 110 performs a reading of the bit E corresponding to the @Q address. The Possible actions of the comparison circuit are summarized in the following table (2).
Figure imgf000020_0001
Figure imgf000020_0001
Quand les circuits EC et CC commandent tous les deux une écriture, il est nécessaire de comparer les adresses @E etWhen the EC and CC circuits both control a write, it is necessary to compare the addresses @E and
@C ainsi que les données dg et ÔQ. Comme précédemment, le circuit de comparaison 110 interrompt la séquence de commandes exécutée et pilote si nécessaire les commutateurs 120 à 123.@C as well as the data dg and ÔQ. As before, the comparison circuit 110 interrupts the command sequence executed and, if necessary, controls the switches 120 to 123.
Dans le cas où les adresses sont identiques, les opérations effectuées par le circuit de comparaison sont plus simples et moins nombreuses. Dans une version simplifiée, le circuit de comparaison 110 positionne à "1" le bit d'erreur E correspondant à l'adresse @E si les données sont différentes et il incrémente le compteur 111. Dans une version plus perfec- tionnée, le circuit de comparaison effectue une lecture du bit E correspondant à l'adresse @E- Dans le cas où les données diffèrent et où le bit E lu à l'adresse @E est nul, la nouvelle erreur est relevée en positionnant à "1" le bit E et en incrémentant le compteur 111. Dans le cas où les données sont identiques et où le bit E lu à d'adresse @E est positionné à "1", il n'y a plus d'erreurs à l'adresse @E- Le bit E est alors positionné à "0" et le compteur 111 est décrémenté. Dans les autres cas, le circuit de comparaison 110 n'effectue pas de modification du bit E, ni d'incrémentation ou de décrémentation du compteur 111.In the case where the addresses are identical, the operations performed by the comparison circuit are simpler and fewer. In a simplified version, the comparison circuit 110 sets the error bit E corresponding to the address @E if the data are different to "1" and it increments the counter 111. In a more refined version, the circuit the comparison of the bit E corresponding to the address @ E- In the case where the data differ and the bit E read at the address @E is zero, the new error is raised by setting to "1" the bit E and incrementing the counter 111. In the case where the data are identical and the bit E read at address @E is set to "1", there are no more errors at the address @ E- The bit E is then set to "0" and the counter 111 is decremented. In other cases, the comparison circuit 110 does not perform any modification of the bit E, nor of incrementation or decrementation of the counter 111.
Dans le cas où les adresses diffèrent, il est peu probable que les données d^ écrites à l'adresse @Q dans la mémoire CMem soient identiques aux données présentes dans la mémoire EMem à l'adresse @Q. De même, il est peu probable que les données dg écrites à l'adresse @g dans la mémoire EMem soient identiques aux données présentes dans la mémoire CMem à l'adresse @g. Dans une version simplifiée du circuit de comparaison 110, les bits d'erreur E correspondant aux adresses @E et @Q sont positionnés à 1. Dans une version plus perfec¬ tionnée du circuit de comparaison 110, le circuit de comparaison 110 lit les données présentes à l'adresse @Q dans la mémoire EMem. Le circuit de comparaison lit le bit E correspondant à l'adresse @Q. Les actions possibles du circuit de comparaison 110 sont résumées dans le tableau (2) susmentionné. De façon similaire, le circuit de comparaison 110 lit les données présentes à l'adresse @E dans la mémoire CMem et effectue une lecture du bit E correspondant à l'adresse @g. Les actions possibles du circuit de comparaison 110 sont résumées dans le tableau (1) .In the case where the addresses differ, it is unlikely that the data written to the @Q address in the CMem memory will be identical to the data present in the EMem memory at the @Q address. Similarly, it is unlikely that the dg data written at the @g address in the EMem memory will be identical to the data present in the CMem at @g. In a simplified version of the comparison circuit 110, the error bits E corresponding to the addresses @E and @Q are set to 1. In a more perfec ¬ ed version of the comparison circuit 110, the comparison circuit 110 reads the data present at the address @Q in the EMem memory. The comparison circuit reads the bit E corresponding to the @Q address. The possible actions of the comparison circuit 110 are summarized in the table (2) above. Similarly, the comparison circuit 110 reads the data present at the address @E in the memory CMem and reads the bit E corresponding to the address @g. The possible actions of the comparison circuit 110 are summarized in Table (1).
Quand les circuits EC et CC commandent tous les deux une lecture, le circuit de comparaison n'intervient pas et la séquence de commandes exécutée n'est pas interrompue. 1.2.2 Au moins un signal de sélection CSg et CSg est inactifWhen the EC and CC circuits both control a read, the comparison circuit does not intervene and the command sequence executed is not interrupted. 1.2.2 At least one selection signal CSg and CSg is inactive
Dans le cas où les deux signaux CSQ et CS^ sont inactifs, les deux mémoires CMem et EMem sont inactives. Aucune écriture ni lecture ne peut être effectuée. Le circuit de comparaison 110 est inactif. Dans le cas où le signal CSQ est actif et le signalIn the case where the two signals CSQ and CS ^ are inactive, the two memories CMem and EMem are inactive. No writing or reading can be done. The comparison circuit 110 is inactive. In case the CSQ signal is active and the signal
CS^ inactif, la mémoire CMem peut être écrite ou lue. La mémoire EMem est inactive. Une différence entre les deux mémoires peut être introduite ou éventuellement supprimée lorsque le circuit CC effectue une écriture dans la mémoire CMem à l'adresse @Q. Dans ce cas, le circuit de comparaison 110 arrête l'exécution de la séquence de commandes et pilote les commutateurs 120, 121 et 125 afin d'accéder à la mémoire EMem. Le circuit de comparaison 110 modifie l'état du signal de sélection CS^ de façon à rendre active la mémoire EMem. Dans une version simplifiée du circuit de comparaison, le bit d'erreur E correspondant à l'adresse @Q est positionné à 1. Dans une version plus perfectionnée du circuit de comparaison 110, le circuit de comparaison 110 lit les données présentes à l'adresse @Q dans la mémoire EMem. Les données lues sont comparées aux données écrites dans la mémoire CMem à l'adresse @Q. Le circuit de comparaison effectue une lecture du bit E correspondant à l'adresse @Q. Les actions possi¬ bles du circuit de comparaison 110 sont résumées dans le tableau (2).CS ^ inactive, the CMem memory can be written or read. The EMem memory is inactive. A difference between the two memories can be introduced or possibly deleted when the circuit CC makes a write in the memory CMem at the address @Q. In this case, the comparison circuit 110 stops the execution of the command sequence and controls the switches 120, 121 and 125 to access the EMem memory. The comparison circuit 110 modifies the state of the selection signal CS ^ so as to activate the memory EMem. In a simplified version of the comparison circuit, the error bit E corresponding to the address @ Q is set to 1. In a more sophisticated version of the comparison circuit 110, the comparison circuit 110 reads the data present at the address @ Q in the EMem memory. The read data is compared to the data written in the CMem at @ Q. The comparison circuit reads the bit E corresponding to the address @ Q. The possi ¬ ble actions of the comparison circuit 110 are summarized in Table (2).
Dans le cas où le signal CS^ est actif et le signal CSQ inactif, une suite d'étapes similaire à celle décrite ci-dessus est mise en oeuvre lorsque le circuit effectue une écriture dans la mémoire EMem, le rôle des mémoires étant inversé . Les actions possibles du circuit de comparaison 110 sont résumées dans le tableau (1) . Dans la suite de la description, on considérera uniquement les cas où les signaux de sélection CS^ et CSQ sont actifs. L'homme de l'art saura aisément définir le fonction¬ nement des divers éléments du dispositif d'émulation en fonction de l'activation ou non des signaux de sélection CS^ et CSQ. 2. Variantes de mémorisation/détection des erreurs en mémoireIn the case where the signal CS ^ is active and the signal CS Q inactive, a sequence of steps similar to that described above is implemented when the circuit performs a write in the EMem memory, the role of the memories being reversed. . The possible actions of the comparison circuit 110 are summarized in Table (1). In the remainder of the description, only the cases where the selection signals CS 1 and CS Q are active are considered. Those skilled in the art will easily define the function ¬ ment of the various components of the emulation device depending on whether or not the selection signals CS and CS ^ Q. 2. Variations of memory / error detection in memory
2.1 Variante de détection2.1 Detection variant
Dans un mode de réalisation du dispositif d'émulation de la présente invention, le compteur 111 est supprimé. Une simple porte OU recevant chacun des bits d'erreur E est reliée au dispositif de détection 107.In one embodiment of the emulation device of the present invention, the counter 111 is deleted. A simple OR gate receiving each of the error bits E is connected to the detection device 107.
L'utilisation d'une porte OU simplifie le fonctionne¬ ment du circuit de comparaison 110 précédemment décrit car il n'est plus nécessaire de fournir une commande d'incrémentation ou de décrémentation du compteur 111. Le circuit de comparaison 110 effectue par contre toutes les autres opérations décrites ci-dessus pour chacun des cas. Lorsqu'une écriture est réalisée dans une ou plusieurs mémoires, on effectue une comparaison entre les données écrites dans une mémoire à une adresse donnée et les données présentes dans l'autre mémoire à cette même adresse. Si les données sont différentes, on positionne le bit E à un sinon à zéro. La porte OU donne les informations minimales à savoir, s'il reste ou non des erreurs en mémoire. 2.2 Mémoire dédiée à la mémorisation des erreursThe use of an OR gate simplifies works ¬ the comparison circuit 110 previously described because it is no longer necessary to provide an increment control or decrementation of the counter 111. The comparator 110 performs circuit against by all the other operations described above for each case. When a write is made in one or more memories, a comparison is made between the data written in a memory at a given address and the data present in the other memory at the same address. If the data is different, the bit E is set to one if not zero. The OR gate gives the minimum information to know, whether or not there are errors in memory. 2.2 Memory dedicated to memorizing errors
La mémorisation des bits d'erreur E peut être effectuée dans une mémoire spécifique, indépendante de la mémoire EMem.The storage of the error bits E can be performed in a specific memory, independent of the EMem memory.
2.2.1 Mémoire standard adaptée2.2.1 Adapted standard memory
La figure 4 est un exemple de mémoire dédiée à la mémorisation des erreurs comprenant un décodeur d'adresse DECODER 130 permettant de sélectionner un bit d'erreur E particulier dans une mémoire de bits d'erreur 131. La mémoire 131 peut être fabriquée spécifiquement ou être réalisée dans un réseau logique programmable. Chacun des bits d'erreur de la mémoire 131 est connecté à une entrée d'une porte OU 132. La sortie de la porte OU 132 est reliée au circuit de détection 107. Au lieu d'écrire et de lire des bits d'erreur dans la mémoire EMem, le circuit de comparaison 110 effectue des écritures et des lectures dans la mémoire 131. Le positionnement à "0" ou à "1" des bits d'erreur est effectué selon les mêmes critères que ceux décrits précédemment en relation à la figureFIG. 4 is an example of a memory dedicated to the storage of errors comprising a DECODER address decoder 130 making it possible to select a particular error bit E in an error bit memory 131. The memory 131 can be manufactured specifically or be performed in a programmable logic network. Each of the error bits of the memory 131 is connected to an input of an OR gate 132. The output of the OR gate 132 is connected to the detection circuit 107. Instead of writing and reading error bits in the EMem memory, the comparison circuit 110 makes writes and reads in the memory 131. The "0" or "1" positioning of the error bits is performed according to the same criteria as those described previously in relation to FIG. the figure
3.3.
2.2.2 Mémoire CAM2.2.2 CAM Memory
La figure 5 est un autre exemple de mémoire spécifique à la mémorisation des erreurs . La mémoire est du type à adressage par le contenu (CAM) . La mémoire comprend un ensemble de mots Wl à Wn, où n est un entier positif. Chaque mot Wi, i étant compris entre 0 et n, est constitué d'un bit d'erreur Ei et d'une valeur d'adresse @i. La mémoire comprend en outre un bloc d'interface INTERFACE, un module de recherche d'adresse (@?) 136 et un module de suivi d'erreur (E=O?) 137. Chaque adresse de la mémoire EMem contenant une donnée erronée est mémorisée dans un mot "pointeur" de la mémoire CAM dont le bit d'erreur est positionné à "1". Les autres mots de la mémoire CAM sont dits "libres", leur bit d'erreur étant positionné à "0".Figure 5 is another example of memory specific to error storage. The memory is of the content addressing type (CAM). The memory comprises a set of words W1 to Wn, where n is a positive integer. Each word Wi, i being between 0 and n, consists of an error bit Ei and an address value @i. The memory further includes an INTERFACE interface block, an address lookup module (@?) 136 and an error tracking module (E = O?) 137. Each address of the EMem memory containing erroneous data is stored in a "pointer" word of the CAM memory whose error bit is set to "1". The other words of the CAM memory are said to be "free", their error bit being set to "0".
Le bloc d'interface INTERFACE reçoit des commandes Ctrl du circuit de comparaison 110 et échange des valeurs de bit d'erreur E et d'adresse @ avec celui-ci.The INTERFACE interface block receives Ctrl commands from the comparison circuit 110 and exchanges error bit values E and address @ with it.
Lorsque le circuit de comparaison 110 souhaite savoir si une donnée de la mémoire EMem mémorisée à une adresse donnée est erronée, il indique cette adresse à la mémoire CAM. Le module de recherche d'adresse (@?) 136 compare alors toutes les adresses des mots pointeurs à l'adresse indiquée. La mémoire CAM précise alors au circuit de comparaison s'il existe ou non un mot pointeur qui contient l'adresse indiquée.When the comparison circuit 110 wishes to know if a datum of the memory EMem stored at a given address is erroneous, it indicates this address to the memory CAM. The address search module (@?) 136 then compares all the addresses of the pointer words to the indicated address. The memory CAM then specifies the comparison circuit whether or not there is a pointer word which contains the indicated address.
Par ailleurs, lorsque le circuit de comparaison souhaite mémoriser l'adresse d'une donnée erronée de la mémoire EMem, il indique cette adresse à la mémoire CAM. Le module de suivi d'erreurs 137 détermine s'il reste un mot libre. Si tel est le cas, l'adresse de la donnée erronée est mémorisée dans ce mot et son bit d'erreur est positionné à "1". Ce mot devient alors un mot pointeur.Moreover, when the comparison circuit wishes to store the address of an erroneous data item of the memory EMem, it indicates this address to the memory CAM. The error tracking module 137 determines whether there remains a free word. If this is the case, the address of the erroneous data is stored in this word and its error bit is set to "1". This word then becomes a pointer word.
Le module de suivi d'erreurs 137 peut être réalisé de diverses manières. C'est par exemple un compteur qui est incrémenté chaque fois qu'un mot libre devient un mot pointeur, les adresses erronées étant alors enregistrées dans la mémoire CAM du mot Wl au mot Wn. Ce peut être aussi un module capable d'analyser l'ensemble des bits d'erreur E afin de trouver un éventuel mot libre . Le fonctionnement général du dispositif d'émulation comprenant une telle mémoire CAM est le suivant .The error tracking module 137 can be realized in various ways. This is, for example, a counter which is incremented each time a free word becomes a pointer word, the erroneous addresses then being recorded in the CAM memory of the word W1 at the word Wn. It can also be a module capable of analyzing all the error bits E in order to find a possible free word. The general operation of the emulation device comprising such a CAM memory is as follows.
Pendant la phase d'initialisation du dispositif d'émulation, comme cela a été décrit précédemment, les registresDuring the initialization phase of the emulation device, as previously described, the registers
RQ]_ à RQ3 du circuit CC et la mémoire CMem sont positionnés dans un état initial "normal" et les registres R^i à R^3 du circuit EC et/ou la mémoire EMem sont positionnés dans un état initial modifié par rapport à l'état initial normal. Les bits d'erreur El à En de la mémoire CAM sont tous réinitialisés à "0". Dans le cas où des erreurs ont été introduites dans la mémoire EMem lors de la phase d'initialisation, les adresses de ces erreurs sont écrites dans des mots de la mémoire CAM et les bits d'erreur de ces mots sont positionnés à "1".RQ] _ to RQ3 of the circuit CC and the memory CMem are set in a "normal" initial state and the registers R ^ i to R ^ 3 of the circuit EC and / or EMem are set in a modified initial state with respect to the normal initial state. Error bits El to En of the CAM memory are all reset to "0". In the case where errors have been introduced into the EMem memory during the initialization phase, the addresses of these errors are written in words of the CAM memory and the error bits of these words are set to "1". .
Pendant la phase d'émulation, le circuit de comparaison 110 effectue comme précédemment une comparaison entre les signaux échangés entre le circuit CC et la mémoire CMem et les signaux échangés entre le circuit EC et la mémoire EMem. Le circuit de comparaison doit procéder à des vérifica¬ tions chaque fois qu'une écriture est effectuée dans la mémoire EMem et/ou dans la mémoire CMem, en interrompant, si nécessaire, la séquence de commandes exécutée par les circuits CC et EC.During the emulation phase, the comparison circuit 110 performs, as previously, a comparison between the signals exchanged between the circuit CC and the memory CMem and the signals exchanged between the circuit EC and the memory EMem. The comparison circuit has to carry out verifi ¬ tions each time a write is performed in EMEM memory and / or in the memory CMEM, interrupting, if necessary, the sequence of commands executed by the DC and EC circuits.
Dans le cas où le circuit EC commande une écriture de la mémoire EMem et que le circuit CC commande une lecture ou une inactivité de la mémoire CMem, le circuit de comparaison 10 interrompt la séquence de commandes et effectue une lecture de la mémoire CMem à l'adresse @g. Les données lues dans la mémoire CMem sont comparées aux données d^. Selon que les données diffèrent ou non, le circuit de comparaison 110 effectue respec¬ tivement une validation ou une invalidation de l'adresse @g, les notions de validation ou d'invalidation d'adresse étant définies ci-après. On reprend ensuite la séquence de commandes.In the case where the circuit EC controls a writing of the memory EMem and the circuit CC controls a reading or an inactivity of the memory CMem, the comparison circuit 10 interrupts the sequence of commands and performs a reading of the memory CMem to the @g address. The data read in the CMem memory is compared with the data d ^. Depending on whether the data are different or not, the 110 performs respective comparison circuit ¬ tively validation or invalidation of the address @g, the concepts of validation or invalidation address being defined below. We then resume the sequence of commands.
De façon générale, la validation d'une adresse donnée consiste à interroger le module de recherche @? 136 de la mémoire CAM pour savoir si un mot pointeur référence cette adresse et dans le cas contraire à interroger le module de suivi d'erreurs 137 afin d'obtenir un mot dans lequel enregistrer l'adresse donnée et positionner à "1" son bit d'erreur. L'inva¬ lidation d'une adresse donnée consiste à interroger le module de recherche 136 pour savoir si un mot pointeur référence cette adresse et le cas échéant, à remettre à "0" le bit d'erreur E de ce mot qui redevient alors un mot "libre". Dans le cas où un compteur 111 est utilisé, le compteur est incrémenté lorsqu'une nouvelle adresse est enregis¬ trée lors d'une validation d'adresse, et le compteur est décrémenté lorsqu'un bit d'erreur E d'un mot pointeur est remis à "0" lors d'une invalidation d'adresse.In general, the validation of a given address consists in querying the search module @? 136 of the CAM memory to know if a pointer word references this address and otherwise to query the error tracking module 137 to obtain a word in which to record the given address and set to "1" its bit error. The inva ¬ lidation of a given address consists of interrogating the search module 136 to know if a pointer word references this address and, if necessary, to reset the error bit E of this word to "0" which then becomes a word "free". In the case where a counter 111 is used, the counter is incremented when a new address is stored ¬ tred during an address validation, and the counter is decremented when an error bit E of a word pointer is reset to "0" during an address invalidation.
Dans le cas où le circuit CC commande une écriture de la mémoire CMem et que le circuit EC commande une lecture ou une inactivité de la mémoire EMem, le circuit de comparaison 110 interrompt la séquence de commandes et effectue une lecture de la mémoire EMem à l'adresse @Q. Les données lues dans la mémoire EMem sont comparées aux données <!Q. Selon que les données différent ou non, le circuit de comparaison 110 effectue respec¬ tivement une validation ou une invalidation de l'adresse @Q. On reprend ensuite la séquence de commandes . Dans le cas où les circuits CC et EC commandent tous les deux une écriture et que les adresses @Q et @g diffèrent, on effectue alors deux séries d'opérations après l'interruption de la séquence de commandes . La première consiste à lire la mémoire EMem à l'adresse @Q et à comparer les données lues aux données ÔQ. Selon que les données différent ou non, le circuit de comparaison 110 effectue respectivement une validation ou une invalidation de l'adresse @Q. La seconde consiste à lire la mémoire CMem à l'adresse @g et à comparer les données lues aux données d^. Selon que les données différent ou non, le circuit de comparaison 110 effectue respectivement une validation ou une invalidation de l'adresse @g. On reprend ensuite la séquence de commandes .In the case where the circuit CC controls a writing of the memory CMem and the circuit EC controls a reading or an inactivity of the memory EMem, the comparison circuit 110 interrupts the sequence of commands and performs a reading of the memory EMem to the @Q address. The data read in the EMem memory is compared with the data <! Q. Depending on whether data different or not, the comparison circuit 110 performs respec tively ¬ validation or invalidation of the address @Q. We then resume the sequence of commands. In the case where the circuits CC and EC both control a write and the addresses @Q and @g differ, then two sets of operations are performed after the interruption of the command sequence. The first is to read the EMem memory at the @Q address and to compare the data read with the data Ô Q. Depending on whether the data is different or different, the comparison circuit 110 respectively performs a validation or invalidation of the @Q address. The second is to read the CMem memory at the address @g and compare the data read to the data d ^. Depending on whether the data is different or different, the comparison circuit 110 respectively performs a validation or invalidation of the @g address. We then resume the sequence of commands.
Dans le cas où les circuits CC et EC commandent tous les deux une écriture et que les adresses @Q et @g sont identiques, selon que les données diffèrent ou non, on effectue respectivement une validation ou une invalidation de l'adresse @E- Cette validation ou cette invalidation peut être effectuée sans interruption de la séquence de commandes.In the case where the circuits CC and EC both control a write and the addresses @Q and @g are identical, depending on whether the data differ or not, the address @ E- is respectively validated or invalidated. This validation or invalidation can be performed without interrupting the sequence of commands.
Afin de limiter la durée d'interruption de la séquence de commandes, la première étape de la validation ou de l'invalidation d'adresse, à savoir la recherche d'un mot pointeur contenant cette adresse, peut avantageusement être effectuée de façon simultanée avec une lecture ou une écriture des mémoires CMem et EMem. De plus, l'éventuelle seconde étape de la validation ou de l'invalidation, consistant à positionner à "1" ou à "0" un bit d'erreur et dans le cas de la validation à enregistrer une adresse, peut être effectuée simultanément à une étape d'écriture/lecture dans les mémoires CMem et EMem pouvant être commandée lors de la reprise de la séquence de commandes . Dans le mode de réalisation représentée en figure 5, les bits d'erreur El à En sont reliés à une porte OU 135 dont la sortie est reliée au circuit de détection 107. Ceci permet de détecter rapidement s ' il y a ou non des erreurs dans la mémoire EMem. Par ailleurs, on peut prévoir de relier l'ensemble des bits d'erreur El à En à une porte logique de type ET, non représentée. Ainsi, lorsque l'ensemble des mots de la mémoire CAM mémorisent des adresses contenant des données erronées, la porte ET délivre un signal "de remplissage" . Un tel signal de remplissage peut éventuellement être fourni par le module de suivi d'erreurs 137 lorsque celui-ci ne trouve plus de mots libres. Lorsqu'un tel signal de remplissage est émis, on peut prévoir d'arrêter l'exécution de la séquence de commandes par les circuits EC et CC. On notera que la mémoire CAM peut contenir un nombre restreint de mots Wl à Wn, bien inférieur au nombre de mots de la mémoire EMem. Le nombre de mots de la mémoire CAM correspond par exemple au nombre maximal de fautes "acceptables" lors de l'exécution d'une séquence de commandes. Lorsque l'émulation est arrêtée et que la mémoire CAM comprend des mots pointeurs référençant des données erronées dans la mémoire EMem, il peut être utile de connaître ces données erronées afin par exemple de les comparer aux données correctes mémorisées dans la mémoire CMem. Pour ce faire, on peut lire les adresses des mots pointeurs de la mémoire CAM puis lire la mémoire EMem et éventuellement la mémoire CMem pour chacune de ces adresses. On peut aussi prévoir de rajouter un champ supplémentaire de donnée à chacun des mots de la mémoire CAM. Dans ce cas, lorsque l'on effectue une validation d'adresse dans la mémoire CAM dans un mot pointeur existant ou dans un nouveau mot pointeur, on enregistre dans le champ donnée du mot pointeur considéré la valeur des données mémorisées dans la mémoire EMem à l'adresse mémorisée dans ce mot pointeur.In order to limit the duration of interruption of the sequence of commands, the first step of the validation or the address invalidation, namely the search for a pointer word containing this address, can advantageously be performed simultaneously with a reading or writing memories CMem and EMem. In addition, the possible second step of the validation or invalidation, consisting in setting to "1" or "0" an error bit and in the case of the validation to record an address, can be performed simultaneously. at a write / read step in the memories CMem and EMem can be controlled during the resumption of the command sequence. In the embodiment shown in FIG. 5, the error bits El to En are connected to an OR gate 135 whose output is connected to the detection circuit 107. This makes it possible to quickly detect whether or not there are errors. in the EMem memory. Furthermore, it is possible to connect all the error bits El to En to an AND type logic gate, not shown. Thus, when all the words of the memory CAM memorize addresses containing erroneous data, the AND gate delivers a "fill" signal. Such a filling signal may optionally be provided by the error tracking module 137 when it no longer finds free words. When such a filling signal is emitted, it is possible to stop the execution of the command sequence by the circuits EC and CC. It will be noted that the memory CAM can contain a restricted number of words W1 to Wn, much lower than the number of words of the memory EMem. The number of words in the memory CAM corresponds for example to the maximum number of "acceptable" faults when executing a sequence of commands. When the emulation is stopped and the CAM memory includes pointer words referencing erroneous data in the EMem memory, it may be useful to know these erroneous data for example to compare them to the correct data stored in the CMem memory. To do this, we can read the addresses of the pointer words of the CAM memory then read the EMem memory and possibly the CMem memory for each of these addresses. It is also possible to add an additional field of data to each word of the CAM memory. In this case, when an address validation is performed in the CAM memory in an existing pointer word or in a new pointer word, the value of the data stored in the EMEM memory at the given pointer word field is recorded in the given field of the pointer word. the address stored in this pointer word.
De plus, afin de parcourir rapidement la mémoire CAM pour "décharger" les adresses et éventuellement les données mémorisées dans les mots pointeurs, on pourra prévoir un dispositif de balayage, connu sous le nom anglais de "priority encoder" . Ce dispositif parcourt les mots Wl à Wn. Si le bit d'erreur E du mot Wl est à "1", il lit le mot Wl et remet à "0" son bit d'erreur E. Puis il regarde si le bit d'erreur du mot W2 est à "1" et le cas échéant il lit le mot W2 et remet à "0" son bit d'erreur et ainsi de suite jusqu'au mot Wn. 3. Suppression de la mémoire EMemIn addition, in order to quickly browse the CAM memory to "unload" the addresses and possibly the data stored in the pointer words, we can provide a scanning device, known as the English "priority encoder". This device runs through the words Wl to Wn. If the error bit E of the word W1 is at "1", it reads the word W1 and returns "0" its error bit E. Then it looks if the error bit of the word W2 is at "1 "and if necessary it reads the word W2 and returns" 0 "its error bit and so on to the word Wn. 3. Deleting the EMem memory
Selon une variante de réalisation du dispositif d'ému- lation selon la présente invention, la mémoire EMem est supprimée. Les signaux @g, WRE et CS^ fournis par le circuit EC sont uniquement transmis au circuit de comparaison 110. Le circuit de comparaison 110 a pour fonction d'une part comme précédemment de comparer les signaux fournis par le circuit EC aux signaux fournis par le circuit CC, et d'autre part de fournir et de traiter les données dE lorsque le circuit EC commande respectivement une lecture et une écriture. Afin de réaliser cette nouvelle fonction, le circuit de comparaison 110 est relié à une mémoire CAM qui comprend l'ensemble des éléments décrits précédemment en relation à la figure 5 et qui comprend en outre pour chaque mot Wi une donnée di comme cela est représenté en pointillés sur la figure 5. L'association de la mémoire CAM et de la nouvelle fonctionnalité du circuit de comparaison 110 constitue une mémoire EMem virtuelle. Le circuit EC lit et écrit dans la mémoire EMem virtuelle de la même façon qu'avec une mémoire EMem réelle. La mémoire CAM mémorise uniquement les données erronées de la mémoire EMem, c'est-à-dire les données de la mémoire EMem qui diffèrent des données de la mémoire CMem. Chaque donnée erronée est mémorisée avec son adresse dans un mot de la mémoire CAM. Les données correctes, ou non erronées, de la mémoire EMem sont lues dans la mémoire CMem.According to an alternative embodiment of the emulation device according to the present invention, the EMem memory is deleted. The signals @g, WR E and CS ^ supplied by the circuit EC are only transmitted to the comparison circuit 110. The function of the comparison circuit 110 is firstly to compare the signals supplied by the circuit EC with the signals supplied. by the DC circuit, and secondly to supply and process the data of E when the EC circuit controls respectively a reading and a writing. In order to perform this new function, the comparison circuit 110 is connected to a memory CAM which comprises all the elements described above in relation to FIG. 5 and which furthermore comprises for each word Wi a datum di as represented in FIG. dotted in FIG. 5. The association of the CAM memory and the new functionality of the comparison circuit 110 constitutes a virtual EMem memory. The EC circuit reads and writes in virtual EMem memory in the same way than with real EMem memory. The memory CAM stores only the erroneous data of the memory EMem, that is to say the data of the memory EMem which differs from the data of the memory CMem. Each erroneous data is stored with its address in a word of the CAM memory. The correct or non-erroneous data of the EMem memory are read from the CMem memory.
Durant la phase d'initialisation, les bits d'erreur E des mots de la mémoire CAM sont réinitialisés à "0". Dans le cas où l'état initial modifié inclut des erreurs dans la mémoire EMem, chaque erreur est mémorisée dans la mémoire CAM. Les données erronées et leurs adresses sont écrites dans un ensemble de mots et les bits d'erreur de ces mots sont positionnés à "1". Les interactions entre le circuit de comparaison 110, la mémoire CAM, la mémoire CMem et les circuits CC et CE sont décrites ci- après.During the initialization phase, the error bits E of the words of the memory CAM are reset to "0". In the case where the modified initial state includes errors in the EMem memory, each error is stored in the CAM memory. The erroneous data and their addresses are written in a set of words and the error bits of these words are set to "1". The interactions between the comparison circuit 110, the CAM memory, the CMem memory and the CC and CE circuits are described below.
3.1 Le circuit EC effectue une lecture3.1 The EC circuit reads
Lorsque le circuit EC effectue une lecture, le circuit de comparaison 110 procède à une série d'opérations décrites ci- après. Le circuit de comparaison interroge le module de recherche (@?) 136 de la mémoire CAM afin de savoir si un mot pointeur mémorise l'adresse @g de lecture. Si tel est le cas, on lit la donnée mémorisée dans ce mot pointeur. Sinon, le circuit de comparaison regarde si le circuit CC effectue une lecture à une adresse @Q identique à l'adresse @g. Si tel est le cas, les données d^ lues dans la mémoire CMem sont recopiées sur le signal de données d^. Dans les autres cas, la séquence de commandes est interrompue et le circuit de comparaison 110 commande une lecture dans la mémoire CMem à l'adresse @g. Les données lues sont fournies sur le signal de données d^.When the EC circuit reads, the comparison circuit 110 performs a series of operations described below. The comparison circuit interrogates the search module (@?) 136 of the memory CAM in order to know if a pointer word stores the read address @g. If this is the case, the data stored in this pointer word is read. Otherwise, the comparison circuit looks at whether the DC circuit reads at an @ Q address identical to the @g address. If this is the case, the data read from the memory CMem is copied back to the data signal d1. In other cases, the command sequence is interrupted and the comparison circuit 110 controls a reading in the CMem memory at the address @g. The read data is provided on the data signal d1.
On s'intéresse alors à la commande de lecture ou d'écriture demandée par le circuit CC simultanément à la commande de lecture demandée par le circuit EC avant l ' interrup¬ tion de la séquence de commandes. Dans le cas où le circuit CC commande une lecture dans la mémoire CMem, celle-ci est effectuée normalement .It is then interested in read or write command requested by the circuit CC simultaneously with the read command requested by the EC circuit before the interrup ¬ of the command sequence. In the case where the DC circuit controls a reading in the memory CMem, this one is carried out normally.
Dans le cas où le circuit CC commande une écriture dans la mémoire CMem, on interroge le module de recherche (@?) 136 de la mémoire CAM afin de savoir si un mot pointeur mémorise l'adresse @Q. Si tel est le cas, on compare la donnée mémorisée dans ce mot pointeur à la donnée d^ que le circuit CC souhaite écrire dans la mémoire CMem et si les données sont identiques on remet à "0" le bit d'erreur E de ce mot pointeur et si le compteur 111 est utilisé on le décrémente. Sinon, c'est-à-dire si aucun mot de la mémoire CAM ne mémorise l'adresse @Q, on effectue une lecture dans la mémoire CMem à l'adresse @Q et on compare les données lues aux données dç que l'on souhaite écrire dans la mémoire CMem. Si les données sont identiques, alors cette écriture est sans conséquence. Si les données diffèrent, on interroge le module de suivi d'erreurs 137 de la mémoire CAM afin de savoir s'il reste un mot libre. Si tel est le cas, on mémorise l'adresse @Q ainsi que les données lues dans la mémoire CMem à cette adresse. On écrit alors les données d^ dans la mémoire CMem.In the case where the circuit CC commands a write in the memory CMem, the search module (@?) 136 of the memory CAM is interrogated in order to know if a pointer word stores the address @Q. If this is the case, the data stored in this pointer word is compared with the data d that the circuit CC wishes to write to the memory CMem and if the data are identical, it is reset to "0" the error bit E of that memory. pointer word and if the counter 111 is used it is decremented. Otherwise, that is, if no word from the CAM memory stores the @Q address, a reading is read in the CMem memory at the @Q address and the data read is compared to the data as soon as the we want to write in the memory CMem. If the data is identical, then this writing is inconsequential. If the data differs, the error tracking module 137 of the CAM memory is interrogated in order to know if there remains a free word. If this is the case, the @Q address and the data read in the CMem memory are stored at this address. The data d is then written in the memory CMem.
3.2 Le circuit EC effectue une écriture3.2 The EC circuit performs a write
Lorsque le circuit EC effectue une écriture, le circuit de comparaison procède aussi à une série d'opérations décrites ci-après. Dans le cas où le circuit CC commande une lecture, ou une inactivité de la mémoire CMem, le circuit de commande 110 effectue les opérations suivantes. Il regarde si les adresses @Q et @E diffèrent, et si tel est le cas il interrompt la séquence de commandes et commande une lecture dans la mémoire CMem à l'adresse @g. Le circuit de comparaison regarde ensuite si les données présentes dans la mémoire CMem à l'adresse @g sont dif¬ férentes des données d^ que le circuit EC souhaite écrire dans la mémoire virtuelle EMem. Selon que les données diffèrent ou non on effectue une validation ou une invalidation de l'adresse @E- On effectue alors la lecture de la mémoire CMem et on reprend l ' exécution de la séquence de commandes .When the EC circuit makes a write, the comparison circuit also performs a series of operations described below. In the case where the circuit CC controls a reading, or inactivity of the memory CMem, the control circuit 110 performs the following operations. It looks for the @Q and @E addresses to differ, and if so it interrupts the command sequence and commands a read in the CMem at @g. The comparison circuit then see if the data in the memory at EMMC @g are dif ¬ ferent data from ^ that the EC system wants to write in EMEM virtual memory. Depending on whether the data differs or not, the address is validated or invalidated @ E- The reading of the memory CMem is then carried out and the execution of the sequence of commands is resumed.
La validation de l'adresse @g consiste ici à inter¬ roger le module de recherche @? 136 de la mémoire CAM pour savoir si un mot pointeur référence cette adresse et si c'est le cas, à écrire les données d^ dans ce mot pointeur, et dans le cas contraire à interroger le module de suivi d'erreurs 137 afin d'obtenir un mot dans lequel enregistrer l'adresse donnée, la donnée dg et positionner à "1" son bit d'erreur E. L'invalida- tion de l'adresse @g consiste à interroger le module de recherche 136 pour savoir si un mot pointeur référence l'adresse @E et le cas échéant, à remettre à "0" le bit d'erreur E de ce mot qui redevient alors un mot "libre".The validation of the @g address consists in inter ¬ rogating the search module @? 136 of the CAM memory to know if a pointer word references this address and if so, to write the data d ^ in this pointer word, and otherwise to query the error tracking module 137 in order to obtain a word in which to record the given address, the data item and set to "1" its error bit E. The invalidation of the @g address consists of interrogating the search module 136 to find out if a pointer word references the @E address and if necessary, to reset the error bit E of this word to "0", which then becomes a "free" word.
Dans le cas où le circuit CC commande une écriture dans la mémoire CMem, le circuit de comparaison 110 effectue les opérations suivantes. Il regarde en premier si les adresses d'écriture @g et @Q sont identiques. Si tel est le cas, il regarde si les données d^ et d^ diffèrent. Selon que les données diffèrent ou non, il effectue une validation ou une invalidation de l'adresse @g selon le procédé décrit précédemment. Dans le cas d'une validation de l'adresse @g, les données d^ sont mémorisées dans la mémoire CAM. Dans le cas où les adresses d'écriture @g et @Q diffèrent, le circuit de comparaison 110 interrompt l'exécution des commandes. Il effectue alors une lecture dans la mémoire CMem à l'adresse @g puis il compare les données lues aux données dg. Selon que les données diffèrent ou non il effectue une validation ou une invalidation de l'adresse @E- Dans le cas d'une validation de l'adresse @g, les données d^ sont mémorisées dans la mémoire CAM. Il effectue ensuite une lecture dans la mémoire CMem à l'adresse @Q puis il compare les données lues aux données d^ que le circuit CC souhaite écrire dans la mémoire CC. Selon que les données diffèrent ou non il effectue une validation ou une invalidation de l'adresse @Q. Dans le cas d'une validation de l'adresse @Q, les données lues dans la mémoire CMem sont mémorisées dans la mémoire CAM. On effectue alors l'écriture de la donnée d^ dans la mémoire CMem et on reprend l'exécution de la séquence de commandes. 4. Restitution des erreurs en mémoireIn the case where the circuit CC commands a write in the memory CMem, the comparison circuit 110 performs the following operations. It looks first if the @g and @Q write addresses are identical. If so, it looks at whether the data d ^ and d ^ differ. Depending on whether the data differs or not, it performs a validation or invalidation of the @g address according to the method described above. In the case of a validation of the address @g, the data d ^ are stored in the memory CAM. In the case where the write addresses @g and @Q differ, the comparison circuit 110 interrupts the execution of the commands. It then reads in the CMem memory at the address @g and compares the read data with the data dg. Depending on whether or not the data differs, it carries out a validation or invalidation of the @ E-address. In the case of a validation of the @g address, the data of ^ are stored in the CAM memory. It then reads in the CMem memory at the @Q address and then compares the read data with the data that the DC circuit wishes to write to the DC memory. Depending on whether the data differs or not, it performs a validation or invalidation of the @Q address. In the case of a validation of the @Q address, the data read from the memory CMem are stored in the memory CAM. We then performs the writing of the data d ^ in the memory CMem and resumes the execution of the sequence of commands. 4. Restoring errors in memory
Quand la mémoire EMem ne retrouve pas au bout d'un certain temps un état normal correspondant à celui de la mémoire CMem, il peut être intéressant de pouvoir analyser rapidement quelles sont les différences. Une lecture complète des mémoires est envisageable mais très coûteuse en temps, d'autant plus que la taille des mémoires peut être importante. Dans le cas où le circuit d'émulation de la présente invention comprend une mémoire CAM, telle que décrite précédemment en relation à la figure 5, utilisée pour la mémorisation des erreurs, il est possible de connaître plus rapidement les erreurs présentes.When the memory EMem does not find after a certain time a normal state corresponding to that of the memory CMem, it can be interesting to be able to analyze quickly which are the differences. A complete reading of the memories is possible but very expensive in time, especially since the size of the memories can be important. In the case where the emulation circuit of the present invention comprises a memory CAM, as described above in relation to FIG. 5, used for storing errors, it is possible to know the errors present more quickly.
Pour établir rapidement une liste d'adresses de la mémoire EMem, réelle ou virtuelle, pour lesquelles les valeurs mémorisées diffèrent des valeurs mémorisées à ces mêmes adresses dans la mémoire CMem, il est possible de munir la mémoire CAM d'un circuit de balayage, couramment appelé "priority encoder" en anglais, qui permet d'identifier un à un les mots de la CAM ayant un bit d'erreur à 1.In order to quickly establish a list of addresses of the EMem memory, real or virtual, for which the stored values differ from the values stored at these same addresses in the memory CMem, it is possible to provide the memory CAM with a scanning circuit, commonly called "priority encoder" in English, which identifies one by one the words of the CAM having an error bit of 1.
Au moment où l'on souhaite identifier les erreurs en mémoire, la séquence de commandes est interrompue. Dans le cas où au moins une erreur a été mémorisée dans la mémoire CAM, un ou plusieurs bits d'erreur sont positionnés à un. Le circuit de balayage sélectionne successivement les mots correspondants. A chaque mot sélectionné, l'adresse écrite dans ce mot et éventuellement la donnée sont émises par la mémoire CAM.At the moment when it is desired to identify the errors in memory, the command sequence is interrupted. In the case where at least one error has been stored in the CAM memory, one or more error bits are set to one. The scanning circuit successively selects the corresponding words. With each selected word, the address written in this word and possibly the data are emitted by the memory CAM.
Dans le cas où les données "erronées" ne sont pas écrites dans la mémoire CAM, des lectures successives sont effectuées dans la mémoire EMem pour récupérer les données correspondant à la suite d'adresses émises par la mémoire CAM.In the case where the "erroneous" data are not written in the memory CAM, successive readings are made in the memory EMem to recover the data corresponding to the sequence of addresses issued by the memory CAM.
Un avantage d'une telle mémoire CAM est qu'elle permet d'identifier très rapidement quelles sont les erreurs présentes dans la mémoire EMem, virtuelle ou réelle. 5. Suppression d'une partie de la phase d'initialisationAn advantage of such a CAM memory is that it makes it possible to identify very quickly what are the errors present in the EMem memory, virtual or real. 5. Deleting part of the initialization phase
Lorsqu'un circuit intégré fonctionne dans des condi¬ tions réelles, une perturbation est susceptible d'arriver sur n ' importe quel élément logique ou n ' importe quel élément de mémorisation (registre ou mémoire). Lorsqu'une perturbation arrive sur un élément de mémorisation, dans la majorité des cas, seule la valeur d'un registre élémentaire ou d'un point mémoire peut être modifiée . Quand une perturbation arrive sur un élément logique, l'impulsion électrique produite en sortie de ce dernier peut se propager et affecter plusieurs éléments de mémorisation.When the integrated circuit operates under condi tions ¬ actual, a disturbance is likely to arrive on any other unknown logic element or n 'any storage element (register or memory). When a disturbance occurs on a storage element, in the majority of cases, only the value of an elementary register or a memory point can be modified. When a disturbance occurs on a logic element, the electrical pulse produced at the output of the logic element can propagate and affect several storage elements.
De plus, les circuits intégrés synchrones sont prévus pour exécuter au moins une séquence de commandes déterminée au rythme d'un signal d'horloge et une perturbation extérieure peut arriver lors de l'exécution de n'importe quelle commande, sur n'importe quel cycle d'horloge de la séquence de commandes. Lors d'un cycle suivant une perturbation, les valeurs positionnées dans les registres peuvent être erronées . Le circuit est alors dans un état incorrect . Certaines valeurs des registres ou des mémoires diffèrent des valeurs normalement présentes dans le circuit lorsqu'il est dans un état "correct".In addition, the synchronous integrated circuits are provided for executing at least one determined command sequence at the rate of a clock signal and an external disturbance may occur when executing any command, on any clock cycle of the command sequence. During a cycle following a disturbance, the values set in the registers can be erroneous. The circuit is then in an incorrect state. Certain values of the registers or memories differ from the values normally present in the circuit when it is in a "correct" state.
Lors d'une utilisation réelle du circuit, la probabi¬ lité que plusieurs perturbations arrivent lors de l'exécution d'une séquence de commandes est très faible. On considérera donc par la suite qu'aucune perturbation n'arrive durant l'émulation du circuit.In actual use of the circuit, the probabi ¬ ity as several disturbances happen when running a command sequence is very low. It will therefore be considered later that no disturbance occurs during the emulation of the circuit.
Le dispositif d'émulation de la présente invention prévoit de positionner le circuit CC et la mémoire CMem dans un état "correct" correspondant à l'état normal du circuit lors d'un cycle donné de la séquence de commandes et de positionner le circuit EC et la mémoire CMem dans un état "incorrect" présentant une ou plusieurs erreurs par rapport à cet état correct. Le dispositif d'émulation effectue ensuite les cycles restants de la séquence de commandes après le cycle donné de la séquence de commandes . L ' émulation est arrêtée quand les erreurs ont disparu ou quand un nombre prédéterminé de cycles a été exécuté. Une fois l'émulation terminée, on repositionne le circuit CC et la mémoire CMem dans un état "correct" correspon¬ dant à un cycle de la séquence de commandes identique ou différent de celui de la précédente émulation et le circuit EC et la mémoire EMem dans un état "incorrect" par rapport à cet état correct, puis on effectue une nouvelle émulation et ainsi de suite .The emulation device of the present invention provides for positioning the DC circuit and the CMem memory in a "correct" state corresponding to the normal state of the circuit during a given cycle of the command sequence and to position the EC circuit and the CMem in an "incorrect" state having one or more errors with respect to this correct state. The emulation device then performs the remaining cycles of the command sequence after the given cycle of the command sequence. The emulation is stopped when the errors have disappeared or when a predetermined number of cycles has been executed. Once emulation complete, repositions the DC circuit and the memory CMEM in an "okay" ¬ corre sponding to one cycle of the same sequence of commands or different from that of the previous and the EC emulation circuit and the memory EMEM in an "incorrect" state with respect to this correct state, then a new emulation is performed and so on.
A chaque cycle de la séquence de commandes correspond un état correct du circuit. De plus, pour chaque état correct du circuit obtenu lors d'un cycle donné, il y a un grand nombre d'états incorrects possibles correspondant à l'arrivée d'une perturbation en divers endroits du circuit . Positionner les circuits EC et CC ainsi que les mémoires EMem et CMem dans un état correct ou incorrect nécessite un grand nombre d'écritures en série et prend donc du temps. Afin de supprimer le temps d'écriture des éléments de mémorisation, le dispositif d'émula¬ tion de la présente invention prévoit d'ajouter des éléments au dispositif tel que décrit en relation à la figure 2.Each cycle of the command sequence corresponds to a correct state of the circuit. In addition, for each correct state of the circuit obtained in a given cycle, there is a large number of possible incorrect states corresponding to the arrival of a disturbance in various parts of the circuit. Positioning the EC and DC circuits as well as the EMem and CMem memories in a correct or incorrect state requires a large number of serial writes and therefore takes time. In order to suppress the writing time of the storage elements, the device emulates ¬ of the present invention provides to add items to the device as described in relation to Figure 2.
La figure 6 est un schéma d'un dispositif d'émulation comprenant les éléments du dispositif d'émulation décrit précédemment ainsi que de nouveaux éléments. Comme représenté en figure 3, le circuit logique CC fournit le signal de commande d'écriture/lecture WRç et le signal d'adresse @Q à la mémoire CMem. Le circuit CC fournit et reçoit des données d^ à/de la mémoire CMem. De même, le circuit EC fournit le signal de commande d'écriture/lecture WRE et le signal d'adresse @g à la mémoire EMem. Le circuit EC fournit ou reçoit des données dg à/de la mémoire EMem. Les signaux de sélection CS^ et CSQ ne sont pas prévus dans ce circuit, cependant l'homme de l'art saura adapter le circuit à la présence de tels signaux. Une mémoire IMem pouvant être accédée uniquement en lecture est ajoutée. Chaque mémoire CMem et EMem contient des bits de mémorisation supplémentaires par rapport aux mémoires précédem¬ ment utilisées . Chaque mémoire inclut pour chaque adresse un bit de validation V positionné initialement à 0 dans cet exemple. Un circuit de contrôle (CNT) 140 reçoit les signaux d'adresse @g et @Q ainsi que les signaux d'écriture/lecture WRE et WRQ. Le circuit de contrôle (CNT) 140 peut lire ou écrire les bits de validation V associés à chacune des mémoires CMem et EMem par l'intermédiaire de dispositifs non représentés. Deux commuta¬ teurs 141 et 142 permettent que les données dE et d^ soient fournies par la mémoire IMem respectivement aux circuits EC et CC.Fig. 6 is a diagram of an emulation device comprising the elements of the emulation device described above as well as new elements. As shown in FIG. 3, the logic circuit CC supplies the read / write control signal WRc and the address signal @Q to the memory CMem. The circuit CC supplies and receives data from / to the memory CMem. Likewise, the circuit EC supplies the write / read control signal WR E and the address signal @g to the memory EMem. The circuit EC supplies or receives data dg to / from the memory EMem. The selection signals CS 1 and CS 2 are not provided in this circuit, however those skilled in the art will be able to adapt the circuit to the presence of such signals. An IMem memory that can be accessed only for reading is added. Each EMMC memory EMEM and contains additional memory bits with respect to the memories precedesM ¬ used. Each memory includes for each address a validation bit V initially set to 0 in this example. A Control circuit (CNT) 140 receives the address signals @g and @Q as well as write / read signals WR E and WRQ. The control circuit (CNT) 140 can read or write the validation bits V associated with each of the memories CMem and EMem through devices not shown. Two commuta ¬ tors 141 and 142 allow the data E and ^ are provided by the memory IMEM CBS and DC circuits respectively.
Lorsque l'on positionne pour la première fois le circuit dans un état correct "pseudo-initial", correspondant à un état correct du circuit obtenu lors d'un cycle donné de la séquence de commandes, au lieu d'écrire les valeurs correctes dans la mémoire CMem, on écrit les valeurs correctes dans la mémoire IMem. Dans le cas où l'état incorrect choisi comprend des erreurs dans la mémoire EMem, les données erronées sont écrites dans la mémoire EMem et les bits de validation V et d'erreur E correspondants aux adresses de ces données sont positionnés à "1".When the circuit is positioned for the first time in a correct "pseudo-initial" state, corresponding to a correct state of the circuit obtained during a given cycle of the command sequence, instead of writing the correct values in the CMem memory, the correct values are written in the IMem memory. In the case where the selected incorrect state includes errors in the EMem memory, the erroneous data are written in the EMem memory and the validation V and error E bits corresponding to the addresses of these data are set to "1".
Quand les circuits CC et EC commandent une écriture dans leurs mémoires respectives, les données sont écrites à l'adresse demandée et le bit de validation V correspondant à cette adresse est positionné à 1.When the DC and EC circuits write to their respective memories, the data is written to the requested address and the validation bit V corresponding to this address is set to 1.
Quand un circuit CC ou EC commande une lecture, le circuit de contrôle CNT 140 regarde dans les mémoires CMem ou EMem quelle est la valeur du bit de validation V correspondant à l'adresse de lecture. Si le bit de validation V est égal à 1, les données lues sont celles présentes dans la mémoire CMem ou EMem à cette adresse. Si le bit de validation V de la mémoire CMem ou EMem est à 0, le circuit de contrôle 140 commande les commutateurs 141 ou 142 afin de fournir comme données au circuitWhen a DC or EC circuit controls a reading, the CNT control circuit 140 looks in the memories CMem or EMem what is the value of the validation bit V corresponding to the read address. If the validation bit V is equal to 1, the read data are those present in the CMem or EMem memory at this address. If the validation bit V of the memory CMem or EMem is at 0, the control circuit 140 controls the switches 141 or 142 in order to supply data to the circuit
CC ou EC, les données mémorisées dans la mémoire IMem à l'adresse correspondante .CC or EC, the data stored in the IMem memory at the corresponding address.
Dans le cas où les circuits CC et EC commandent tous deux une lecture mais à des adresses @g et @Q différentes, il est possible que deux lectures dans la mémoire IMem soient nécessaires si les bits de validation V correspondant aux adresses @g et @Q sont tous deux à "0". Il est dès lors nécessaire d'interrompre l'exécution de la séquence de commandes afin d'effectuer les deux lectures successives dans la mémoire IMem. Un moyen d'éviter de telles interruptions est que la mémoire IMem soit une mémoire à double accès dans laquelle il est possible d'effectuer deux lectures simultanées.In the case where the circuits CC and EC both control a reading but at different addresses @g and @Q, it is possible that two readings in the memory IMem are necessary if the validation bits V corresponding to addresses @g and @ Q are both at "0". It is therefore necessary to interrupt the execution of the command sequence in order to perform the two successive reads in the IMem memory. One way to avoid such interruptions is that the IMem memory is a dual access memory in which it is possible to perform two simultaneous readings.
Un avantage d'un dispositif d'émulation comprenant une mémoire spécifique pour conserver l'état pseudo-initial des mémoires EMem et CMem, est qu'il permet de réaliser un gain de temps. En effet, il n'est plus nécessaire, avant de faire une nouvelle émulation du circuit, de réécrire l'ensemble des mémoires CMem et EMem afin de mettre la mémoire CMem dans l'état correct pseudo-initial et la mémoire EMem dans un état éventuel- lement incorrect par rapport à l'état pseudo-initial de la mémoire CMem. Il suffit de remettre à "0" les bits de validation V des mémoires CMem et EMem et d'introduire éventuellement des erreurs dans la mémoire EMem, en positionnant à "1" les bits de validation V et d'erreur E associés aux données erronées. De plus, à la fin d'une série d'émulations débutant toutes à partir d'un même état correct pseudo-initial mémorisé dans IMem, il est possible d'effectuer une nouvelle série d'émulations à partir d'un autre état correct pseudo-initial mémorisé dans la mémoire IMem en modifiant seulement une ou éventuellement quelques données de la mémoire IMem. La ou les modifications de données correspondent par exemple aux modifica¬ tions de la mémoire CMem normalement commandées par le circuit CC lors de l'exécution d'un ou de plusieurs cycles de la séquence de commandes. Ainsi, il est possible d'effectuer successivement plusieurs séries d'émulation démarrant à partir d'états pseudo-initiaux correspondant aux états corrects succes¬ sifs du circuit lors de l'exécution de la séquence de commandes. 6. Suppression des mémoires CMem et EMemAn advantage of an emulation device comprising a specific memory for maintaining the pseudo-initial state of the memories EMem and CMem, is that it makes it possible to save time. Indeed, it is no longer necessary, before making a new emulation of the circuit, to rewrite the set of memories CMem and EMem in order to put the memory CMem in the correct pseudo-initial state and the memory EMem in a state possibly incorrect compared to the pseudo-initial state of the memory CMem. It suffices to reset the validation bits V of the memories CMem and EMem to "0" and possibly to introduce errors into the memory EMem, by setting to "1" the validation bits V and of the error E associated with the erroneous data. . In addition, at the end of a series of emulations all starting from the same pseudo-initial correct state stored in IMem, it is possible to perform a new series of emulations from another correct state. pseudo-initial stored in IMem memory by changing only one or possibly some data IMem memory. The data modification (s) for example correspond to the modifica ¬ tions of the CMem memory normally controlled by the circuit CC during the execution of one or more cycles of the command sequence. Thus, it is possible to successively carry out several series of emulation starting from pseudo-initial states corresponding to the correct states succes ¬ sifs of the circuit during the execution of the sequence of commands. 6. Removing CMem and EMem memories
Dans le cas où le dispositif d'émulation comprend une mémoire IMem de mémorisation d'un état correct pseudo-initial des mémoires associées aux circuits CC et EC, on pourra prévoir de supprimer les mémoires EMem et CMem et d'utiliser à la place deux mémoires à adressage par le contenu (CAM) respectivement appelées CAM-E et CAM-C. Dans ce cas, les mots des mémoires CAM comportent chacun un champ d'adresse et un champ de données. Les mots de la mémoire CAM-E comportent en outre un bit d'erreur E. Les mots de la mémoire CAM-C comportent en outre un bit de validation V.In the case where the emulation device comprises an IMem memory memory of a pseudo-initial correct state memories associated with the circuits CC and EC, it will be possible to delete the memories EMem and CMem and instead use two content addressing memories (CAM) respectively called CAM-E and CAM-C. In this case, the words of the CAM memories each include an address field and a data field. The words of the memory CAM-E further comprise an error bit E. The words of the memory CAM-C further comprise a validation bit V.
La mémoire CAM-C mémorise des données "d'écriture" correspondant aux données écrites par le circuit CC dans la mémoire CMem virtuelle lors de l'exécution de la séquence de commandes .The memory CAM-C stores "write" data corresponding to the data written by the circuit CC in the virtual memory CMem during the execution of the sequence of commands.
La mémoire CAM-C comprend un module de recherche ayant pour fonction de rechercher, parmi l'ensemble des mots présentant un bit de validation V à "1", un mot mémorisant une adresse donnée, ainsi qu'un module de suivi répertoriant les mots libres et indiquant sur requête un mot libre de la mémoire CAM-C, c'est-à-dire un mot dont le bit de validation V est à "0". Les bits de validation V sont remis à "0" avant chaque émulation .The memory CAM-C includes a search module whose function is to search, among the set of words having a validation bit V to "1", a word storing a given address, and a tracking module listing the words free and indicating on request a free word CAM-C memory, that is to say a word whose validation bit V is "0". The validation bits V are reset to "0" before each emulation.
Quand le circuit CC commande une lecture à une adresse @Q, le circuit de contrôle CNT interroge le module de recherche de la mémoire CAM-C afin de savoir si l'adresse @Q est mémorisée dans un mot ayant un bit de validation V à "1". Si tel est le cas, la donnée mémorisée dans ce mot est fournie au circuit CC. Sinon la donnée est lue dans la mémoire IMem.When the DC circuit controls a read at an @ Q address, the CNT control circuit interrogates the search module of the CAM-C memory in order to know if the @ Q address is stored in a word having a validation bit V to "1". If this is the case, the data memorized in this word is supplied to the circuit CC. Otherwise the data is read in the IMem memory.
Quand le circuit CC commande une écriture à une adresse @Q, le circuit CNT demande au module de recherche si l'adresse @Q est mémorisée dans un mot de la CAM-C ayant un bit de validation V à "1". Si tel est le cas, les données d^ sont écrites dans ce mot. Sinon, le circuit CNT demande au module de suivi de la mémoire CAM-C de trouver un mot libre afin de mémoriser dans ce mot l'adresse @Q et les données d^ et de positionner à 1 son bit de validation V. Lorsque le circuit EC commande une lecture ou une écriture, le circuit de comparaison effectue les opérations décrites dans le chapitre 3 en commandant si nécessaire des lectures dans la mémoire CMem virtuelle . Selon une variante du dispositif d'émulation précédem¬ ment décrit, les mots de la mémoire CAM-E comprennent en outre un bit de validation V. La mémoire CAM-E est utilisée pour mémoriser deux types de données : des données "d'écriture" correspondant aux données écrites par le circuit EC, dans la mémoire EMem virtuelle, lors de l'exécution de la séquence de commandes, et des données "erronées" correspondant aux données de la mémoire EMem virtuelle qui diffèrent de celles de la mémoire CMem virtuelle. Les bits de validation V des mots contenant des données d'écriture sont positionnés à "1". Lorsque le circuit EC commande une lecture ou une écriture dans la mémoire EMem, le circuit CNT effectue sensiblement les mêmes opérations que celles décrites pour le circuit CC et la mémoire CMem.When the DC circuit commands a write to an @ Q address, the CNT circuit asks the search module if the @ Q address is stored in a word of the CAM-C having a validation bit V at "1". If this is the case, the d data are written in this word. Otherwise, the circuit CNT asks the tracking module of the memory CAM-C to find a free word in order to memorize in this word the address @ Q and the data d ^ and to set to 1 its validation bit V. When the EC circuit controls a read or a write, the comparison circuit performs the operations described in chapter 3 by ordering if necessary readings in the virtual CMem memory. According to a variant of the emulation device precedesM ¬ described, the words of the CAM-E memory further comprise a validation bit V. The E-CAM memory is used for storing two types of data: data "write "corresponding to the data written by the EC circuit, in the virtual EMem memory, during the execution of the command sequence, and the" erroneous "data corresponding to the data of the virtual EMem memory which differs from those of the virtual CMem memory . The validation bits V of the words containing write data are set to "1". When the EC circuit controls a read or write in the EMem memory, the CNT circuit performs substantially the same operations as those described for the DC circuit and the CMem memory.
Bien entendu, la présente invention est susceptible de diverses variantes et modifications qui apparaîtront à l'homme de l'art. En particulier, le circuit analysé décrit précédemment comprend une seule mémoire mais le dispositif d'émulation s ' applique de façon similaire à un circuit comprenant une ou plusieurs mémoires, éventuellement de types différents. De plus, on pourra prévoir de supprimer le circuit correct CE et de le remplacer par des éléments de mémorisation fournissant pour chaque commande exécutée par le circuit d'erreur EC, les valeurs que contiendraient les registres Rgi à Rg3 et la mémoire CMem, si le circuit EC et la mémoire EMem avaient été dans l'état "correct" préalablement à l'émulation du circuit .Of course, the present invention is susceptible of various variations and modifications which will be apparent to those skilled in the art. In particular, the analyzed circuit described above comprises a single memory but the emulation device applies similarly to a circuit comprising one or more memories, possibly of different types. In addition, it will be possible to eliminate the correct circuit CE and replace it with storage elements providing for each command executed by the error circuit EC, the values that would contain the registers Rgi to Rg3 and the memory CMem, if the EC circuit and EMEM memory had been in the "correct" state prior to emulation of the circuit.
En outre, la composition de la plateforme de test 101 comprenant l'ensemble des circuits logiques et des mémoires précédemment décrit est particulièrement adaptée à être réalisée dans un réseau logique programmable. Cependant, une telle plateforme de test peut également être réalisée de façon logicielle, l'ensemble des circuits logiques et des mémoires étant alors décrit dans un fichier informatique. L'exécution d'une séquence de commandes par une telle plateforme de test logicielle est alors effectuée au moyen d'un simulateur informatique de circuit . In addition, the composition of the test platform 101 comprising all the logic circuits and memories previously described is particularly suitable to be performed in a programmable logic array. However, such a test platform can also be performed in a software, the set of logic circuits and memories then being described in a computer file. The execution of a command sequence by such a software test platform is then performed by means of a circuit computer simulator.

Claims

REVENDICATIONS
1. Procédé d'émulation ou de simulation du fonctionnement en présence de perturbations d'un circuit susceptible d'exécuter une séquence de commandes, le circuit comportant des éléments logiques (LE]_, LE2, L E3) et des premiers éléments de mémorisation (REI' RE2' RE3' EMem) , caractérisé en ce qu'il comprend les étapes suivantes :A method for emulating or simulating the operation in the presence of disturbances of a circuit capable of executing a sequence of commands, the circuit comprising logic elements (L E ], L E 2, L E 3) and first storage elements (REI ' R E2' R E3 'EMem), characterized in that it comprises the following steps:
- mettre le circuit dans un état incorrect, dans lequel la valeur d'au moins un élément de mémorisation est modifiée par rapport à un état correct du circuit ; - lancer l'exécution d'une séquence de commandes ;- put the circuit in an incorrect state, in which the value of at least one storage element is changed with respect to a correct state of the circuit; - start the execution of a sequence of commands;
- fournir dans des seconds éléments de mémorisation (RQ]_, RC2' RC3' CMem) , les valeurs normales que contiendraient les premiers éléments de mémorisation après l'exécution de chaque commande si le circuit avait été mis dans l'état correct ;- provide in second storage elements (RQ] _, RC2 'RC3' CMem), the normal values that would contain the first storage elements after the execution of each command if the circuit had been put in the correct state;
- comparer après chaque commande exécutée et au moyen de comparateurs (Cl, C2, C3, 110) activés simultanément, toutes les valeurs contenues dans les premiers et seconds éléments de mémorisation ; et - arrêter l'exécution des commandes si les valeurs contenues dans les premiers et seconds éléments de mémorisation deviennent identiques.comparing, after each command executed and by means of comparators (C1, C2, C3, 110) activated simultaneously, all the values contained in the first and second storage elements; and - stop the execution of the commands if the values contained in the first and second storage elements become identical.
2. Dispositif d'émulation du fonctionnement en pré¬ sence de perturbations d'un circuit susceptible d'exécuter une séquence de commandes, le dispositif comprenant :2. Device for emulating the operation in pre ¬ ence of disturbances of a circuit capable of executing a sequence of commands, the device comprising:
- un circuit test identique audit circuit et comportant des éléments logiques (LE]_, LE2, LE3) et des premiers éléments de mémorisation (RE]_, RE2' RE3' EMem) 'a test circuit identical to said circuit and comprising logic elements (L E ] _, L E 2, LE 3) and first storage elements (R E ] _, RE2 ' R E3' EMem ) '
- des moyens (102, 103) pour mettre le circuit dans un état incorrect dans lequel la valeur d'au moins un premier élément de mémorisation est modifiée par rapport à un état correct du circuit ;means (102, 103) for putting the circuit in an incorrect state in which the value of at least a first storage element is changed with respect to a correct state of the circuit;
- des moyens (104) pour lancer l'exécution d'une séquence de commandes ; - des seconds éléments de mémorisation (RcI' ^C2' RC3, CMem) chargés par les valeurs normales que contiendraient les premiers éléments de mémorisation après chaque commande si le circuit avait été dans l'état correct avant l'exécution des commandes ;means (104) for initiating execution of a command sequence; second storage elements (RcI '^ C2' RC3, CMem) loaded by the normal values that would contain the first storage elements after each command if the circuit had been in the correct state before the execution of the commands;
- des comparateurs (C]_, C2, C3, 110) pour établir après chaque commande exécutée si les valeurs contenues dans les premiers et seconds éléments de mémorisation diffèrent ; et- comparators (C] _, C2, C3, 110) for providing after each command executed if the values in the first and second different storage elements; and
- des moyens d'interruption (107) commandés par lesdits comparateurs.interruption means (107) controlled by said comparators.
3. Dispositif selon la revendication 2, comprenant un second circuit (CC) identique audit circuit test (EC) , les seconds éléments de mémorisation étant les éléments de mémorisation du second circuit, et comprenant des moyens pour mettre le second circuit dans un état correct, lesdits moyens pour lancer l'exécution d'une séquence de commandes agissant sur les deux circuits .3. Device according to claim 2, comprising a second circuit (CC) identical to said test circuit (EC), the second storage elements being the storage elements of the second circuit, and comprising means for putting the second circuit in a correct state. , said means for initiating the execution of a sequence of commands acting on the two circuits.
4. Dispositif selon la revendication 2, dans lequel les premiers éléments de mémorisation comprennent des registres (REI' RE2' RE3) placés entre les éléments logiques (LE]_, LE2,4. Device according to claim 2, wherein the first storage elements comprise registers (REI ' R E2' R E3) placed between the logic elements (L E ] _, L E 2,
LE3)-L E 3) -
5. Dispositif selon la revendication 2, dans lequel les premiers éléments de mémorisation dudit circuit test comprennent au moins une mémoire (EMem) mémorisant des mots de données constitués chacun d'au moins un bit.5. Device according to claim 2, wherein the first storage elements of said test circuit comprise at least one memory (EMem) storing data words each consisting of at least one bit.
6. Dispositif selon les revendications 3 et 4, dans lequel certains ou tous les comparateurs (C]_, C2, C3) comparent le contenu des registres de chacun des circuits.6. Device according to claims 3 and 4, wherein some or all comparators (C ] _, C2, C3) compare the contents of the registers of each of the circuits.
7. Dispositif selon les revendications 3 et 5, comprenant pour chaque mémoire dudit circuit test, un moyen de mémorisation supplémentaire comportant un bit d'erreur (E) pour chaque adresse de la mémoire, un ou plusieurs comparateurs (110) analysant les signaux adressés à une mémoire donnée dudit circuit test et les signaux adressés à la mémoire du second circuit identique à la mémoire donnée, afin d'activer ou de désactiver un bit d'erreur à une adresse déterminée lorsqu'une différence entre les mots de données mémorisés dans les deux mémoires à cette adresse déterminée apparaît ou disparaît, un circuit de détection d'erreur (111, 122, 123) indiquant aux moyens d'interruption si au moins un bit d'erreur est activé.7. Device according to claims 3 and 5, comprising for each memory of said test circuit, an additional storage means comprising an error bit (E) for each address of the memory, one or more comparators (110) analyzing the addressed signals. to a given memory of said test circuit and the signals addressed to the memory of the second identical circuit to the given memory, in order to activate or deactivating an error bit at a given address when a difference between the data words stored in the two memories at that determined address appears or disappears, an error detection circuit (111, 122, 123) indicating to the means of interrupt if at least one error bit is activated.
8. Dispositif selon les revendications 3 et 5, comprenant pour chaque mémoire dudit circuit test, une mémoire à adressage par le contenu constituée de mots prévus pour mémoriser chacun au moins une adresse et un bit d'erreur, un ou plusieurs comparateurs (110) analysant les signaux adressés à une mémoire donnée dudit circuit test et les signaux adressés à la mémoire du second circuit identique à la mémoire donnée afin de détecter l'apparition ou la disparition d'une erreur consis¬ tant en une différence entre les mots de données mémorisés dans les deux mémoires à une adresse déterminée, l'apparition d'une erreur entraînant un relevé de l'adresse déterminée dans un mot de la mémoire à adressage par le contenu associée à la mémoire considérée, et une activation du bit d'erreur de ce mot, la disparition d'une erreur entraînant la désactivâtion du bit d'erreur du mot mémorisant l'adresse déterminée, un circuit de détection d'erreur (111) indiquant aux moyens d'interruption si au moins un bit d'erreur est activé.8. Device according to claims 3 and 5, comprising for each memory of said test circuit, a content addressing memory consisting of words intended to each store at least one address and an error bit, one or more comparators (110). analyzing the signals sent to a given test said memory circuit and the signals sent to the memory of the second identical circuit to the data memory in order to detect the appearance or disappearance of a consis error ¬ both a difference between the data words stored in the two memories at a given address, the occurrence of an error causing a statement of the address determined in a word of the address memory by the content associated with the memory in question, and an activation of the error bit of this word, the disappearance of an error causing the deactivation of the error bit of the word storing the determined address, an error detection circuit (111) indicated nt to the interrupt means if at least one error bit is activated.
9. Dispositif selon la revendication 7, dans lequel une mémoire dudit circuit test est une mémoire virtuelle remplacée par l'association d'une mémoire à adressage par le contenu CAM et d'un dispositif pilote relié audit circuit test et à la mémoire "associée" du second circuit correspondant à la mémoire virtuelle, un mot de la mémoire CAM étant prévu pour mémoriser au moins un mot de données, une adresse et un bit d'erreur, seuls les mots de la mémoire virtuelle qui diffèrent des mots de la mémoire associée étant mémorisés avec leurs adresses dans un mot de la mémoire CAM en activant son bit d'erreur, la lecture d'un mot de données dans la mémoire virtuelle à une adresse donnée consistant pour le dispositif pilote à regarder si un mot de données erroné correspondant à 1 ' adresse donnée est mémorisé dans un mot de la mémoire CAM dont le bit d'erreur est activé et dans le cas contraire à demander une lecture à cette adresse dans la mémoire associée, l'écriture d'un mot dans la mémoire virtuelle à une adresse donnée consistant pour le dispositif pilote à comparer ce mot au mot écrit à l'adresse donnée dans la mémoire associée, et en cas de différence à mémoriser ce mot dans un mot de la mémoire CAM en activant son bit d'erreur, le dispositif pilote détectant les différences entre les signaux échangés entre la mémoire associée et le second circuit et les signaux échangés entre la mémoire virtuelle et le circuit test afin de relever les situations qui conduisent à des différences entre les mots de données mémorisés dans la mémoire virtuelle et ceux mémorisés dans la mémoire associée, les mots de données erronés de la mémoire virtuelle étant mémorisés dans des mots de la mémoire CAM en activant leurs bits d'erreur.9. Device according to claim 7, wherein a memory of said test circuit is a virtual memory replaced by the association of a memory addressed by the content CAM and a pilot device connected to said test circuit and the associated memory of the second circuit corresponding to the virtual memory, a word of the memory CAM being provided for storing at least one data word, an address and an error bit, only the words of the virtual memory which differ from the words of the memory associated with being stored with their addresses in a word of the memory CAM by activating its error bit, reading a data word in the virtual memory at a given address consisting for the device pilot to see if an erroneous data word corresponding to the given address is stored in a word of the CAM memory whose error bit is activated and if not to request a reading at this address in the associated memory, writing a word in the virtual memory to a given address consisting for the pilot device to compare this word to the word written to the address given in the associated memory, and if there is a difference to memorize this word in a word of the CAM memory by activating its error bit, the pilot device detecting the differences between the signals exchanged between the associated memory and the second circuit and the signals exchanged between the virtual memory and the test circuit in order to identify the situations that lead to differences between the data words stored in the virtual memory and those stored in the associated memory, the erroneous data words of the virtual memory being m morisés in the words of the CAM by activating their error bits.
10. Dispositif selon les revendications 7 ou 8, comprenant pour chaque mémoire (EMem) dudit circuit test, une mémoire identique dite d'initialisation (IMem) comprenant les valeurs correctes des mémoires du circuit test correspondant à l'état initial du circuit test avant l'exécution d'une séquence de commandes, et comprenant pour chaque mémoire du circuit test10. Device according to claims 7 or 8, comprising for each memory (EMem) of said test circuit, an identical memory called initialization (IMem) comprising the correct values of the test circuit memories corresponding to the initial state of the test circuit before the execution of a sequence of commands, and comprising for each memory of the test circuit
(EMem) et du second circuit (CMem) , un moyen de mémorisation supplémentaire comportant un bit de validation (V) pour chaque adresse de la mémoire correspondante, et dans lequel un mot lu par le circuit test ou le second circuit à une adresse donnée d'une mémoire provient soit de la mémoire d'initialisation quand le bit de validation correspondant à cette adresse est non activé, soit de cette mémoire quand le bit de validation correspondant à cette adresse est activé suite à une écriture précédente à cette adresse lors de l'exécution de la séquence de commandes .(EMem) and the second circuit (CMem), an additional storage means comprising a validation bit (V) for each address of the corresponding memory, and wherein a word read by the test circuit or the second circuit at a given address a memory comes either from the initialization memory when the validation bit corresponding to this address is not activated, or from this memory when the validation bit corresponding to this address is activated following a previous write to this address when the execution of the command sequence.
11. Dispositif selon la revendication 10, dans lequel les mémoires du circuit test (EMem) et leurs mémoires associées (CMem) du second circuit sont des mémoires virtuelles remplacées chacune par l'association d'une mémoire à adressage par le contenu CAM (CAM-E, CAM-C) et d'un dispositif pilote relié à la mémoire d'initialisation, au circuit test et au second circuit, les mots des mémoires CAM étant prévus pour mémoriser chacun un mot de données (d) , une adresse (@) , un bit de validation (V) et dans le cas des mémoires CAM remplaçant les mémoires du circuit test, un bit d'erreur (E), un mot de données et son adresse d'écriture dans une mémoire virtuelle étant mémorisés dans un mot de la mémoire CAM remplaçant cette mémoire virtuelle en activant sont bit de validation, un mot de données fourni lors d'une lecture d'une mémoire virtuelle à une adresse donnée, provenant de la mémoire CAM remplaçant cette mémoire virtuelle ou de la mémoire d'initialisation selon que l'adresse donnée est ou non mémorisée dans un mot de la mémoire CAM ayant un bit de validation activé, les mots de données erronés d'une mémoire du circuit test étant mémorisés dans des mots de la mémoire CAM remplaçant cette mémoire en activant leurs bits de validation et d'erreur.11. Device according to claim 10, wherein the memories of the test circuit (EMem) and their associated memories (CMem) of the second circuit are virtual memories each replaced by the association of a memory addressed by the content CAM (CAM-E, CAM-C) and a pilot device connected to the initialization memory, the circuit and the second circuit, the words of the CAM memories being provided to each store a data word (d), an address (@), a validation bit (V) and in the case of CAM memories replacing the circuit memories test, an error bit (E), a data word and its write address in a virtual memory being stored in a word of the memory CAM replacing this virtual memory by activating are validation bit, a data word provided during a reading of a virtual memory at a given address, coming from the memory CAM replacing this virtual memory or of the initialization memory according to whether the given address is stored in a word of the memory CAM having a enable bit enabled, l the erroneous data words of a memory of the test circuit being stored in words of the memory CAM replacing this memory by activating their validation and error bits.
12. Dispositif selon la revendication 2, dans lequel le circuit test (EC) , le second circuit (EC) et les comparateurs (C]_, C2, C3, 110) sont des éléments physiques pouvant être réalisés dans un réseau logique programmable (101) . Device according to claim 2, wherein the test circuit (EC), the second circuit (EC) and the comparators (C ] , C2, C3, 110) are physical elements that can be realized in a programmable logic array ( 101).
PCT/FR2006/050164 2005-02-25 2006-02-24 Emulating/simulating a logic circuit WO2006090089A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0550521 2005-02-25
FR0550521A FR2882601B1 (en) 2005-02-25 2005-02-25 EMULATION / SIMULATION OF A LOGIC CIRCUIT

Publications (1)

Publication Number Publication Date
WO2006090089A1 true WO2006090089A1 (en) 2006-08-31

Family

ID=34955330

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2006/050164 WO2006090089A1 (en) 2005-02-25 2006-02-24 Emulating/simulating a logic circuit

Country Status (2)

Country Link
FR (1) FR2882601B1 (en)
WO (1) WO2006090089A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59136843A (en) * 1983-01-27 1984-08-06 Yokogawa Hokushin Electric Corp Working check method for error correcting function in serial data transfer
US5668816A (en) * 1996-08-19 1997-09-16 International Business Machines Corporation Method and apparatus for injecting errors into an array built-in self-test
US6151694A (en) * 1997-11-17 2000-11-21 Kabushiki Kaisha Toshiba Method of evaluating fault coverage
US20030041290A1 (en) * 2001-08-23 2003-02-27 Pavel Peleska Method for monitoring consistent memory contents in redundant systems

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385750B1 (en) * 1999-09-01 2002-05-07 Synopsys, Inc. Method and system for controlling test data volume in deterministic test pattern generation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59136843A (en) * 1983-01-27 1984-08-06 Yokogawa Hokushin Electric Corp Working check method for error correcting function in serial data transfer
US5668816A (en) * 1996-08-19 1997-09-16 International Business Machines Corporation Method and apparatus for injecting errors into an array built-in self-test
US6151694A (en) * 1997-11-17 2000-11-21 Kabushiki Kaisha Toshiba Method of evaluating fault coverage
US20030041290A1 (en) * 2001-08-23 2003-02-27 Pavel Peleska Method for monitoring consistent memory contents in redundant systems

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PATENT ABSTRACTS OF JAPAN vol. 008, no. 269 (P - 319) 8 December 1984 (1984-12-08) *
PETER HAZUCHA: "Measurements and Analysis of SER-Tolerant Latch ina 90-nm Dual-Vt CMOS Process", IEEE JOURNAL OF SOLID-STATE PHYSICS, 9 November 2004 (2004-11-09), pages 1536 - 1543, XP002385034 *

Also Published As

Publication number Publication date
FR2882601B1 (en) 2007-10-12
FR2882601A1 (en) 2006-09-01

Similar Documents

Publication Publication Date Title
FR2626402A1 (en) METHOD AND SYSTEM FOR FUNCTIONALLY MONITORING OR TESTING AT HIGH SPEED AND WITH HIGH PRECISION OF MEMORIES IN MICROPROCESSOR UNITS
EP0578540B1 (en) Method of testing the functionality of an ASIC and related ASIC
EP1876602A1 (en) Method for refreshing a dynamic RAM, and corresponding dynamic RAM device, in particular incorporated in a cellular mobile telephone
WO2002061579A2 (en) Method and system for managing shared-library executables
FR2646942A1 (en) MAP WITH INTEGRATED CIRCUIT
FR2621407A1 (en) SYSTEM FOR REASSIGNING ADDRESSES AND PURGEING ANEMEMOIRE BLOCKS FOR VIRTUAL ADDRESSING AND RE-REGISTRATION WORKSTATION STATION
FR2977694A1 (en) MICROPROCESSOR PROTECTS AGAINST A BATTERY OVERFLOW
EP3182292B1 (en) Method for predicting data to be pre-loaded in a cache memory
EP1748374A1 (en) Procedure and device protecting a memory against attacks by error injection
FR2513410A1 (en) MICROPROCESSOR AND METHOD FOR INORGANIZING ACCESS IN MEMORY OF THIS MICROPROCESSOR
FR3032814A1 (en)
FR3075444A1 (en) SYSTEM COMPRISING A MEMORY ADAPTED TO IMPLEMENT CALCULATION OPERATIONS
BE897587A (en) PARALLEL CIRCUIT FOR CYCLIC REDUNDANCY CONTROL
EP1573541A2 (en) Data storage method with error correction
FR2632092A1 (en) DELAYED ANTEMEMORY WRITE CONDITIONING CIRCUIT FOR A DUAL BUS MICROCALCULATOR SYSTEM COMPRISING AN UNIT 80386 AND A UNIT 82385
EP2453356A1 (en) Method, computer program and device for securing byte code to be run by a virtual machine
FR2901035A1 (en) METHOD AND DEVICE FOR MANAGING A TABLE OF CORRESPONDENCE OF ACCESS TO A MEMORY
EP0251861A1 (en) Memory management unit
EP0543698A1 (en) Device for employment of fault information in a single/multi-computer aircraft system
WO2006090089A1 (en) Emulating/simulating a logic circuit
EP0394115A1 (en) Apparatus for speeding-up memory accesses in a computer system
EP0683455B1 (en) Microcomputer with integrated breakpoint circuit triggered by combined events
EP0112427B1 (en) Programmable logic controller
EP2015561A1 (en) Method of sending executable code to a reception device and method of executing this code
EP3598314A1 (en) Direct memory access

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 06709534

Country of ref document: EP

Kind code of ref document: A1

WWW Wipo information: withdrawn in national office

Ref document number: 6709534

Country of ref document: EP