EP2845131A2 - Bibliothèque de cellules et procédé de conception d'un circuit intégré asynchrone - Google Patents

Bibliothèque de cellules et procédé de conception d'un circuit intégré asynchrone

Info

Publication number
EP2845131A2
EP2845131A2 EP13723839.0A EP13723839A EP2845131A2 EP 2845131 A2 EP2845131 A2 EP 2845131A2 EP 13723839 A EP13723839 A EP 13723839A EP 2845131 A2 EP2845131 A2 EP 2845131A2
Authority
EP
European Patent Office
Prior art keywords
terminal
signal
cell
asynchronous
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP13723839.0A
Other languages
German (de)
English (en)
Inventor
Yvain Thonnart
Pascal Vivet
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Original Assignee
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Commissariat a lEnergie Atomique et aux Energies Alternatives CEA filed Critical Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Publication of EP2845131A2 publication Critical patent/EP2845131A2/fr
Pending legal-status Critical Current

Links

Classifications

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

Definitions

  • the present invention relates to a library of standard cells for producing an asynchronous circuit and a method for designing a synchronous circuit implementing these cells.
  • An integrated circuit can be synchronous or asynchronous.
  • a synchronous integrated circuit is an integrated circuit whose operation is clocked by a periodic signal distributed throughout the circuit: the clock signal.
  • An asynchronous integrated circuit is an integrated circuit whose operation is provided by means other than the use of a clock signal. The control of an asynchronous integrated circuit is generally done locally by a synchronization between functional blocks.
  • synchronous integrated circuit design assistance tools implement optimization algorithms that have been perfected over many years and are effective in particular for reducing the area occupied by the circuit, for reducing the consumption of the circuit, for increase the operating speed of the circuit, etc.
  • Help tools typically use standard cell libraries. Each cell corresponds to a set of elemen tary ⁇ components (e.g., MOS transistors) filling a func- tion (e.g., a gate OR, AND, NOR or NAND, an inverter, a memory, etc.).
  • a library contains a set of parameters defining the circuit diagram and topology, as well as the input and output terminals of each cell. Each cell is further defined by parameters such as response time, power output, and so on.
  • cells of the library are selected, arranged, and interconnected to provide the required functions of the circuit.
  • the synchronous integrated circuit design assistance tools can not currently be used directly for the optimization of asynchronous integrated circuit design. Indeed, integrated circuits asyn ⁇ chrons have particular characteristics that are generally little or present in synchronous circuits, which are not supported by the support tools in the design of synchronous integrated circuits. It is usually not possible to benefit from all the optimization capabilities of these tools.
  • an object of the present invention is to provide a library of cells, allowing the use of synchronous circuit design assistance tools for the design of asynchronous circuits.
  • Another object of the present invention is to provide a method of designing an asynchronous integrated circuit implementing tools for assisting the design of synchronous integrated circuits.
  • an embodiment of the present invention provides a method for designing a computer-implemented asynchronous integrated circuit from a cell library comprising at least one cell having signal propagation parameters between a first terminal and a second terminal and between the second terminal and a third terminal are a function of the signal propagation parameter between the first terminal and the third terminal, the method comprising the following steps:
  • the library comprises, for said cell, an indication that the second terminal is intended to receive a fictitious clock signal during the design of the asynchronous integrated circuit by a tool to assist the design of synchronous circuits.
  • the cell is representative of a portion of the asynchronous circuit, the second terminal being intended, in operation, receiving a reset signal of the circuit portion.
  • the cell is representative of a portion of the asynchronous circuit
  • the second terminal does not correspond to a physical terminal of the portion intended, in operation, to provide or receive signals.
  • the cell comprises a first signal propagation parameter from the first terminal to the second terminal and a second signal propagation parameter from the second terminal to the third terminal, the first and second parameters. being obtained from a third signal propagation parameter from the first terminal to the third terminal, the third parameter corresponding to a matrix of elements Dr (A ⁇ z) or 1 is an integer varying from 1 to P and j is an integer varying from 1 to Q, the second parameter corresponding to a matrix of elements gr ( R ⁇ z ) 0 ] 3 -
  • - enu according to the following relation:
  • J being a natural integer selected from 1 to Q.
  • the cell further comprises a fourth terminal B, a fourth signal propagation parameter from the fourth terminal to the third terminal corresponding to a matrix of elements D ⁇ , the library comprising in addition, a fifth signal propagation parameter from the fourth terminal to the second terminal, the fifth parameter corresponding to a matrix of elements s ' B ⁇ R ' obtained according to the following relation:
  • Margin is a real number greater than or equal to zero, which is constant independently of i or which depends on the transition time of the dummy clock signal on the second terminal.
  • the first terminal is, in operation, a terminal for receiving a first signal alternating between two states
  • the third terminal being, in operation, a terminal for providing a second alternating signal. between two states and the third parameter corresponding to the duration between a change of state of the first signal and a change of state of the second signal.
  • the second terminal corresponds to the terminal of the portion of the asynchronous circuit intended, in operation, to receive a reset signal of said portion of the asynchronous circuit
  • the method comprising a step of designing the asynchronous circuit.
  • a clock tree for transmitting the dummy clock signal to said portion of the asynchronous circuit, the clock shaft being used in operation as a distribution network of the reset signal to said portion of the asynchronous circuit.
  • the verification step is performed with an asynchronous model to simulate the operation of said portion of the asynchronous circuit.
  • An embodiment of the present invention also provides computer readable storage means storing a computer program comprising a set of computer executable instructions for implementing the previously defined method.
  • An embodiment of the present invention also provides a computer readable storage means storing a cell library for carrying out the previously defined method.
  • Figure 1 illustrates, schematically, an example of asynchronous circuit
  • FIG. 2 schematically represents an exemplary asynchronous pipeline circuit
  • FIG. 3 schematically illustrates an exemplary asynchronous circuit adapted to the implementation of a "1 out of 2" coding
  • FIG. 4 is a timing diagram illustrating a "handshake" type data exchange protocol between the functional blocks of FIG. 3;
  • Figure 5 schematically shows a general example of a stage of an asynchronous pipeline
  • Figure 6 schematically shows a stage of a WCHB pipeline
  • Figure 7 schematically shows a stage of an RSPCHB pipeline
  • Figure 8 schematically shows a stage of a PCHB pipeline
  • Figure 9 schematically shows a stage of a PCFB pipeline
  • FIGS. 10 and 11 show exemplary embodiments of a functional cell of the WCHB stage of FIG. 6;
  • FIGS. 12 and 13 show exemplary embodiments of a functional cell of the RSPCHB stage of FIG. 7;
  • FIGS. 14 and 15 show exemplary embodiments of a functional cell of the PCHB stage of FIG. 8 or of the PCFB stage of FIG. 9;
  • FIG. 16 represents an exemplary embodiment of a door C
  • FIG. 17 represents a more detailed exemplary embodiment of the WCHB stage of FIG. 6;
  • Fig. 18 is a timing chart illustrating the data exchange protocol of the stage of the WCHB pipeline shown in Fig. 17;
  • Fig. 19 shows a more detailed exemplary embodiment of the PCHB pipeline functional cell of Fig. 14;
  • Figure 20 schematically shows an example of a path traversed by a signal in an asynchronous pipeline
  • Fig. 21 shows an example of a known library cell representing an asynchronous protocol rendezvous element
  • Fig. 22 shows an example of a library cell according to the invention showing the asynchronous protocol rendezvous element of Fig. 21;
  • FIG. 23 represents, in the form of a block diagram, an exemplary embodiment of a method for designing a cell according to the invention.
  • Fig. 24 schematically shows paths traversed by signals in the pipeline of Fig. 20 using the cells shown in Fig. 22;
  • Fig. 25 schematically shows other paths traversed by signals in the pipeline of Fig. 20 to illustrate an alternative embodiment of the cell design method according to the invention.
  • FIG. 26 represents, in the form of a block diagram, an exemplary embodiment of a method for designing an asynchronous circuit according to the invention.
  • the high and low levels of different binary signals may be different.
  • the inverse of a binary signal at "1” corresponds to the binary signal at "0” and the inverse of a binary signal at "0" corresponds to the binary signal at "1".
  • Asynchronous circuits are often broken down into functional blocks between which data (called tokens) communicate via communication channels.
  • FIG. 1 represents a transmitting functional block 10 (Proc A) connected to a receiver functional block 12 (Proc B) via a communication channel 14.
  • the communication channel 14 corresponds to the wires used for signal transmission, Rdata and Rack, between the transmitter 10 and the receiver 12 and the communication protocol used to carry out the transmission of the signals.
  • the transmitted signals comprise the control signals dedicated to the communication between the blocks 10, 12 and signals carrying the other data.
  • the set of wires carrying the data other than the control signals is called data bus.
  • the functional blocks of an asynchronous circuit can be arranged in a succession of several stages, each stage being connected to a previous stage of the succession and to a next stage of the succession.
  • Such a circuit is called a "pipeline circuit” or "pipeline”. Examples of pipelines will now be described.
  • FIG. 2 schematically represents an example of a pipeline 20.
  • the circuit 20 comprises a succession of blocks functional 22 (Floor). Each functional block 22 is connected to the next block by a communication channel 24. Each functional block 22 supplies the multi-bit Rdata data signal to the next functional block in the succession of functional blocks and receives the one-bit Rack acknowledgment signal. the next functional block. Each functional block 22 provides a one-bit Lack acknowledgment signal to the preceding function block in the sequence of function blocks and receives a multi-bit Ldata data signal from the preceding function block.
  • the Ldata signal of a given stage corresponds to the Rdata signal of the preceding stage
  • the Lack signal of a given stage corresponds to the Rack signal of the preceding stage
  • the Rdata signal of a given stage corresponds to the Ldata signal of the next stage
  • the Rack signal of a given stage corresponds to the Lack signal of the next stage.
  • the flow of a pipeline is the number of chips per second that passes through a given floor. Latency is the time it takes for a datum to pass through the stages of the pipeline.
  • the cycle time of a stage is the minimum time that separates the taking into account of two successive data in this stage.
  • the pipeline may be a linear pipeline as shown in FIG. 2.
  • each stage 22 has a single input channel (transmitting the Lack and Ldata signals) and a single output channel (transmitting the Rack and Rdata signals). ).
  • the pipeline may be a non-linear pipeline. It then comprises at least one stage which may have at least two input channels connected to two different previous stages and / or at least two output channels connected to two different subsequent stages.
  • An example of coding data exchanged between two stages is to add a wire to the data bus to specify that the data is valid.
  • This type of coding is called coding "grouped data".
  • Another example of coding of the data is to integrate the validity information into the data transported by the data bus. This is called “time-sensitive" coding.
  • An example of time-lagless encoding is 4-state coding. In this encoding, each data bit is represented by two wires. Of the four possible state combinations for these two wires, half (for example, the combinations 00 and 10) are reserved for the bit value "0", the other half (for example the combinations 11 and 01) is reserved. to the bit value "1".
  • time-sensitive coding is 3-state coding.
  • each data bit is also represented by two wires.
  • a single combination of states of the wires represents a bit value (for example, the combination 01 for the bit "1" and the combination 10 for the bit "0"), whereas the third combination (for example the combination 00) indicates the invalid state and the fourth combination (e.g. combination 11) is not used.
  • the 3-state coding is a special case of coding "1 out of N" in which the transmission of an N-base digit used N wires.
  • Each wire in the high state represents a digit in base N and the invalid state is obtained by the zeroing of all the wires. Combinations where two wires are simultaneously in the high state are forbidden. There is similarly an "M out of N" coding.
  • the present invention can be implemented for the design of an asynchronous circuit implementing a coding "grouped data" or a coding "insensitive to delays".
  • the communication protocol corresponds to the set of rules governing the exchange of signals within the communication channel 14 between the two functional blocks 10 and 12.
  • an example of a communication protocol between functional blocks is the type protocol "hand shake".
  • the protocol of the "handshake" type can be a 4-phase or 2-phase protocol.
  • FIG. 3 represents an exemplary embodiment of communication channel 14 adapted to the implementation of a "1 of 2" type coding.
  • the communication channel 14 comprises three wires carrying data signals CO, Cl and the acknowledgment signal Rack.
  • Figure 4 illustrates the principle of a four-phase "handshake" protocol between functional blocks 10 and 12 of Figure 3 for "1 out of 2" data coding.
  • the data transferred corresponds to a bit at "0" when the signal CO is at “1” and the signal Cl is at “0” and the data transferred corresponds to a bit at " 1 "when the signal C0 is at” 0 "and the signal Cl is at” 1 ". In other cases, the data is not valid.
  • the acknowledgment signal Rack is valid when it is at "0".
  • Moments tg to tg are successive moments.
  • the signals C0 and C1 are at “0" and the acknowledgment signal Rack is at "1". There is no valid data to transfer.
  • the signal C0 goes to "1".
  • the receiver 12 detects the new data (data bit equal to “0"), performs the processing of this data and activates the acknowledgment signal Rack by setting it to "0" at time -2.
  • the transmitter 10 detects the acknowledgment signal Rack and invalidates the data by putting the signal C0 at "0" at time t3.
  • the receiver 12 detects the invalid state of the data and deactivates the acknowledgment signal Rack by setting it to "1" at time t / [ .
  • Instants t5 to tg are associated with the transfer of another data (data bit equal to "1").
  • Asynchronous circuits can be quasi-insensitive circuits to delays or circuits QDI (acronym for Quasi-Delay Insensitive).
  • QDI circuits uses the concept of isochronous fork, that is to say a fork which connects a single transmitter to two receivers and for which the propagation delays of a signal between the transmitter and the receivers are identical.
  • a QDI circuit is an asynchronous circuit for which: the delay of propagation of a signal in a wire or in a functional block can take any value;
  • the acknowledgment can be made only for one of the branches of the fork.
  • the present invention is particularly suitable for QDI asynchronous pipelines. Unless otherwise indicated, in the following description, the present invention is described for the design of asynchronous QDI pipelines.
  • pipelines There are several types of pipelines whose structure depends on the communication protocol implemented for the exchange of data between the stages of the pipeline. Examples of pipelines whose inter-floor communication protocol follows the "handshake" protocol described earlier are the WCHB (English acronym for Weak-Condition Half-Buffer) pipeline, the RSPCHB pipeline (acronym for Reduced-Stack Pre Half-Buffer load), the PCHB pipeline (Pre-Charge Half-Buffer) and the PCFB pipeline (Pre-Charge Full-Buffer).
  • WCHB English acronym for Weak-Condition Half-Buffer
  • RSPCHB pipeline an RSPCHB pipeline
  • PCHB pipeline Pre-Charge Half-Buffer
  • PCFB pipeline Pre-Charge Full-Buffer
  • FIG. 5 schematically represents an exemplary embodiment of a stage 26 enabling the realization of a pipeline stage WCHB, RSPCHB, PCHB or PCFB.
  • the stage 26 comprises a functional block 28 receiving the signal Ldata (N bits) and providing the signal Rdata (M bits), N and M being integers which can be different.
  • the functional block 28 is adapted to perform operations on Ldata data which depend in particular on the type of pipeline.
  • the functional block 28 further receives, at a terminal Ra, the acknowledgment signal Rack provided by the next stage of the pipeline.
  • the function block 28 may further receive a Reset reset signal at a Rst terminal.
  • the block functional 28 may further comprise an EN terminal for receiving an Enable activation signal.
  • Functional block 28 comprises M cells (Cell) 29.
  • the cells 29 are generally identical.
  • Each cell 29 receives the N-bit Ldata signal, performs an operation on the data Ldata and provides, as a function of the result of the operation ⁇ tion, a one-bit signal.
  • the M 1-bit signals provided by the M cells 29 form the Rdata signal.
  • Each cell 29 also receives the acknowledgment signal Ra, the activation signal Enable and the reset signal Reset.
  • Each cell 29 comprises input terminals, an output terminal and, like the functional block 28, a terminal Ra for receiving the acknowledgment signal Rack and optionally a terminal EN for receiving the Enable signal and / or a terminal Rst of receiving the Reset reset signal.
  • the stage 26 may comprise an upstream detection block 30 which receives the Ldata data and which provides a one-bit Ldetect signal.
  • the Ldetect signal is active if valid Ldata data is present at the input of the functional block 28.
  • the stage 26 comprises a downstream detection block 32 which receives the Rdata data and which provides a signal Rdetect to a bit.
  • the Rdetect signal is active if the function block 28 provides new valid Rdata data.
  • the stage 26 may comprise a synchronization block 34 which receives the signals Ldetect and Rdetect and which supplies the acknowledgment signal Lack to the preceding stage of the pipeline.
  • the synchronization block 34 may furthermore provide the Enable activation signal to the terminal EN of the functional block 28.
  • the stage 26 can be realized by providing that the Rack or Lack acknowledgment signals are active at the low level or at the high level. Similarly, the Ldetect and Rdetect signals can be active at the low level or at the high level. In the case where the active level of the signals Ldetect and Rdetect is the low level, the outputs of the detection blocks 30 and 32 are represented with an inverter.
  • Fig. 6 shows an exemplary embodiment of a stage 36 of a WCHB pipeline which corresponds to a particular example of the stage 26 of Fig. 5 in which the upstream detection block 30 is not present.
  • the Enable signal is not present.
  • the sync block 34 corresponds to a thread receiving the output of the downstream detection block 32 and furnace ⁇ ning the Lack acknowledgment signal.
  • the signal réinitia ⁇ lisation Reset may not be present.
  • the communication protocol of a stage of the WCHB pipeline comprises the following successive steps:
  • FIG. 7 shows an exemplary embodiment of a stage 38 of an RSPCHB pipeline that corresponds to a particular example of the stage 26 of FIG. 5 in which the upstream detection block 30 is not present.
  • the Enable signal is not present.
  • the synchronization block 34 comprises a gate C 40 and an inverter 42.
  • the gate C 40 comprises a first input receiving the output of the downstream detection block 32 and a second input receiving a 1-bit request signal Lreq from the previous stage. pipeline.
  • Gate C 40 provides a 1-bit Rreq request signal to the next stage of the pipeline.
  • the signal Rreq is also supplied to the input of the inverter 42 which supplies the acknowledgment signal Lack. Reset reset signal may not be present.
  • a gate C (also called Muller gate or element C) is a gate which outputs the value present at the inputs of the gate when these inputs are identical, and which otherwise maintains the last value supplied.
  • a gate C may comprise an additional input receiving a Reset reset signal which, when activated, sets the output signal of the gate to "0" and does not affect the output signal of the gate when it does not. is not activated.
  • a door C can have two or more entries of two entries.
  • An asymmetric gate C is a variant of the gate C described above according to which first input signals cause the output to be set to "1" and second input signals, which are not always the same as the first signals of entrance, make the exit go down to "0". When the first input signals are all "1”, the output goes to "1". When the second input signals are all "0”, the output goes to "0". If neither of these conditions is true, the output remains unchanged.
  • a symmetrical or asymmetric gate C makes it possible to realize in an asynchronous circuit a rendezvous function (also called synchronization function) between two signals or more than two signals.
  • An element performing a rendezvous function, or rendezvous element is an element receiving a plurality of input signals and providing at least one output signal and modifying the output signal only when the input signals satisfy a condition particular and does not alter the output signal when the input signals do not respect the particular condition.
  • FIG. 8 represents an exemplary embodiment of a stage 44 of a PCHB pipeline which corresponds to a particular example of the stage 26 of FIG. 5 in which the synchronization block 34 comprises a gate C 46 which receives the Ldetect signals. and Rdetect provided by the sense blocks 30 and 32.
  • the gate C 46 provides the acknowledgment signal Lack.
  • the Enable signal is equal to the Lack acknowledgment signal.
  • Reset reset signal may not be present.
  • the validity test of the incoming data is explicitly performed by block 30.
  • the output is reset earlier as soon as it is acknowledged without waiting for the input channel to become invalid.
  • the acknowledgment signal Lack is repositioned for the next data once the input channel is reset.
  • the communication protocol of a stage of the PCHB pipeline comprises the following successive steps:
  • FIG. 9 represents an exemplary embodiment of a stage 48 of a PCFB pipeline which corresponds to a particular example of the stage 26 of FIG. 5 in which the synchronization block 34 comprises a symmetrical gate C 50 with two inputs, a door asymmetric C 52 and two inverters 54 and 56.
  • the gate 50 receives the C Rdetect signal and the acquired signal ⁇ Lack of charge and provides the enable signal.
  • the inverter 54 receives the Ldetect signal and the inverter 56 receives the Rdetect signal.
  • the first input signals of the asymmetric gate C 52 are the signal provided by the inverter 54, the signal provided by the inverter 56 and the Enable signal.
  • the second input signals of the asymmetric gate C 52 are the signal provided by the inverter 54 and the Enable signal.
  • the inverse of the signal provided by the asymmetrical gate C 52 corresponds to the acknowledgment signal Lack.
  • the communication protocol of one stage of the PCFB pipeline comprises the following successive steps:
  • FIG. 10 represents an exemplary embodiment of a cell 60 of the functional block 28 of the stage 36 of the WCHB pipeline shown in FIG. 6.
  • the cell 60 comprises a block 62 based on P-channel MOS transistors.
  • the block 62 receives the Ldata signal.
  • the cell 60 comprises a block 64 based on N-channel MOS transistors.
  • the block 64 receives the Ldata signal.
  • the blocks 62 and 64 are connected in a node E.
  • the blocks 62, 64 perform combinational logic functions on the Ldata signal according to which the state of the node E can be modified.
  • the cell 60 comprises a P-channel MOS transistor 66 whose source is connected to a source of a high reference voltage VDD, the drain of which is connected to the block 62 and whose gate receives the acknowledgment signal Rack.
  • the cell 60 comprises an N-channel MOS transistor 68 whose source is connected to a source of a low reference voltage GND, the drain of which is connected to the block 64 and whose gate receives the acknowledgment signal Rack.
  • the acknowledgment signal Rack supplied by the following stage is used to allow the blocks 62, 64 to operate via transistors 66 and 68. In this example, the acknowledgment signal Rack, Lack is active at "0". Similar circuits may be designed with an active rack acknowledgment signal at "1".
  • the cell 60 comprises an inverter 70 whose input is connected to the node E and whose output provides a 1-bit signal Z.
  • the cell 60 furthermore comprises a weak inverter 72 whose input receives the signal Z and whose output is connected to the node E.
  • the inverter 72 is said to be weak insofar as its output can be forced when the Node E is imposed by voltage sources VDD and GND through blocks 62, 64 and transistors 66, 68.
  • inverter 72 may be replaced by a block combinatorial logic and receiving the signal Z and a multi-bit signal C which depends on the signal Ldata and whose output is connected to the node E.
  • the cell 60 does not receive a Reset reset signal.
  • FIG. 11 represents an exemplary embodiment of a cell 74 of the functional block 28 of the stage 36 of the WCHB pipeline shown in FIG. 6 which, with respect to the cell 60, comprises, in place of the inverter 70, a NOR gate 76, one input of which is connected to the node E, the other input of which receives the reset signal Reset and whose output supplies the signal Z.
  • FIG. 12 represents an exemplary embodiment of a cell 78 of the functional block 28 of the RSPCHB pipeline stage 38 shown in FIG. 7 which, with respect to the cell 60, does not include the block 62.
  • the drain of the transistor 66 is directly connected to node E.
  • FIG. 13 shows another exemplary embodiment of a cell 80 of the functional block 28 of the RSPCHB pipeline stage 38 shown in FIG. 7 which, with respect to the cell 78, comprises the NOR gate 76 of the cell 74 to FIG. the place of the inverter 70 of the cell 78.
  • FIG. 14 represents an exemplary embodiment of a cell 82 of the functional block 28 of the PCHB pipeline stage 44 represented in FIG. 8 or the stage 48 of FIG. PCFB pipeline shown in Figure 9, which, with respect to the cell 78 further comprises a P-channel MOS transistor 84 whose source is connected to the drain of the transistor 66, whose drain is connected to the node E and whose gate receives the Enable signal.
  • the cell 82 further comprises an N-channel MOS transistor 86 whose source is connected to the drain of the transistor 68, the drain of which is connected to the block 64 and whose gate receives the Enable signal.
  • FIG. 15 represents another exemplary embodiment of a cell 88 of the functional block 28 of the PCHB pipeline stage 44 represented in FIG. 8 or of the PCFB pipeline stage 48 represented in FIG. 9, which, with respect to FIG. cell 82, includes the NOR gate 76 of the cell 80 in place of the inverter 70 of the cell 82.
  • the cells 60, 78 and 82 do not receive the Reset reset signal while the cells 74, 80 and 88 receive the Reset reset signal.
  • the Reset signal can be active high or active low.
  • the reset of the internal node E by the Reset signal in the cells 74, 80 and 88 can be carried out by various means, the use of the NOR gate 76 being given by way of example.
  • FIG. 16 represents an exemplary embodiment of a two-input, reset gate C 90 which corresponds to a particular example of the cell 74 shown in FIG. 11 in which the block 62 comprises a single P-channel MOS transistor 92 whose source is connected to the drain of transistor 66 and whose drain is connected to node E and in which block 64 comprises a single N-channel MOS transistor 94 whose source is connected to the drain of transistor 68 and whose drain is connected to the node E.
  • the gate C 90 receives two binary signals A and B. The signal A is supplied to the gates of the transistors 92 and 94 and the signal B is supplied to the gates of the transistors 66 and 68.
  • stage 17 represents an exemplary embodiment of a stage 96 corresponding to a particular example of the stage 36 of the WCHB pipeline of FIG. 6 in the case where the functional block 28 only plays the role of data storage and in the case a "1 out of 2" type coding with Lack and Rack signals that are active at the low level.
  • the stage 96 receives two LO and L1 input signals and provides two R0 and R1 bit output signals.
  • the downstream detection block 32 corresponds to a NOR gate 98 which receives the output signals R0 and RI and which supplies the acknowledgment signal Lack to the preceding stage.
  • the functional block 28 comprises two cells each corresponding to a gate C that can be reset.
  • the functional block 28 comprises a gate C 100 receiving the signal L0 and the acknowledgment signal Rack of the next stage and supplying the output signal R0.
  • the functional block 28 further comprises a C gate 102 receiving the signal L1 and the acknowledgment signal Rack of the next stage and providing the output signal R1.
  • the door C 100 can be made as shown in FIG. 16.
  • the signals A and B of the door C 90 correspond to the signals L0 and Rack and the signal Z of the door C 90 corresponds to the signal R0.
  • FIG. 18 illustrates the principle of data transmission by stage 96.
  • the signals L0 and L1 are at “0” and the acknowledgment signals Lack and Rack are at "1". There are no validated data to transfer.
  • the signal L0 goes to "1" (reception of bit "0" by stage 96).
  • the stage 96 puts the signal R0 at "1”.
  • the instants t ' Q to t' ] _5 are successive instants.
  • stage 96 activates the acknowledgment signal Lack by setting the acknowledgment signal Lack to "0".
  • stage 96 deactivates the acknowledgment signal Lack by setting it to "1”.
  • stage 96 deactivates the acknowledgment signal Rack by setting it to "1”.
  • Instants t'g to t ' ] _g are associated with the transfer of bit "1" by stage 96.
  • FIG. 19 represents a particular exemplary embodiment 104 of the PCHB pipeline cell 82 represented in FIG. 14 carrying out an OR logic function between two binary signals A and B and in which the block 64 comprises two mounted N-channel MOS transistors 106 and 108 in parallel, whose sources are connected to the drain of transistor 86 and whose drains are connected to node E.
  • the gate of transistor 106 receives signal B and the gate of transistor 108 receives signal A.
  • FIG. 20 schematically represents an exemplary embodiment of a pipeline 110, for example of the WCHB, RSPCHB, PCHB or PCFB type. Three successive stages of the pipeline 110 are shown.
  • the protocol rendezvous elements may be the cells 29 of the functional block 28 or the sets of cells 29 of the functional block 28.
  • the protocol rendezvous element may also correspond to certain cells of the block As an example, for stages 38, 48 of PCFB and RSPCHB pipelines, the protocol rendezvous elements may furthermore correspond to elements 40, 50 and 52.
  • the protocol rendezvous element can perform a additional function to that of appointments.
  • the cell 104 shown in FIG. 19 for a PCHB pipeline performs a logical OR function while performing the synchronization function between the A, B, Rack and Enable signals.
  • the protocol rendezvous element may further receive a reset signal. This is the case, for example, with cells 74, 80, 88 shown in FIGS. 11, 13 and 15.
  • the protocol rendezvous element may not receive a specific reset signal, as is the case with cells 60, 78, 82 shown in Figures 10, 12 and 14.
  • An optimization step conventionally implemented by the synchronous integrated circuit design assistance tools comprises determining the duration of propagation of signals between functional blocks of the integrated circuit, in particular to determine whether or not there is no incom patibility ⁇ with the frequency of the clock signal which clocks the operation of the circuit.
  • the distribution of storage elements so that the paths defined between the storage elements do not understand or quasi ⁇ no loops, that is to say that there is no or almost no path for which a signal passes several times in the same place.
  • Algorithms can then optimize different parameters such as the position and structure of the storage elements and combinational logic blocks between the memo elements ⁇ authorization to ensure that there is no inconsistency, to reduce the area occupied by the integrated circuit, to reduce the consumption of the integrated circuit, to increase the operating speed of the integrated circuit, etc.
  • Path delineation algorithms can not be applied directly when designing asynchronous integrated circuits.
  • FIG. 20 illustrates a difficulty encountered when the design assistance tools for synchronous integrated circuits are directly implemented for the design of asynchronous integrated circuits.
  • An asynchronous circuit does not include storage elements whose operation is clocked by a clock signal. Therefore, if we follow the path of a signal in an asynchronous circuit, it can propagate in loops, passing several times in the same place. An example of such a path 112 is shown in dotted lines in FIG. 20.
  • the path delimitation step can not then be performed as for the synchronous integrated circuits. The designer must then indicate the starting and ending points of the paths to the design assistance tool.
  • One possibility is to indicate to the design assistance tools not to consider the portions of the path (hereinafter also called arcs or internal paths) traversed by the signals in certain elements of the asynchronous integrated circuit, for example the elements of rendezvous protocol, in particular the cells of the functional block 28 of each stage 26, which makes it possible to delimit paths, each path extending from the output of a protocol rendezvous element to the input of another element of protocol rendezvous.
  • the loops are thus interrupted.
  • the design support tool can not then do global optimization of the asynchronous integrated circuit but only local optimizations that may not be the most suitable.
  • the actual operating characteristics of the non-considered protocol rendezvous elements are not taken into account by the optimization algorithms.
  • the The present invention consists in using a particular model of protocol rendezvous element that is used by synchronous circuit design assistance tools.
  • An internal path is a propagation path of a signal between an input terminal of the cell receiving in operation a signal and an output terminal of the cell providing in operation a signal.
  • FIG. 21 schematically represents a conventional library cell 114 of a protocol rendezvous element comprising, by way of example, two input terminals A and B, a terminal Rst for receiving the Reset reset signal, a terminal Rack receiving signal Rack, ENABLE signal receiving terminal EN and Z output terminal.
  • terminals EN and / or Rst may not be present.
  • the cell 114 comprises two input terminals A and B. However, it is clear that the cell 114 may comprise a larger number of inputs.
  • a first internal path 116 connects the input terminal A to the output terminal Z and is denoted by A-> Z.
  • a second internal path connects the input terminal A to the output terminal Z and is denoted by A-> Z.
  • a third internal path 120 connects the terminal Ra to the output terminal Z and is denoted Ra-> Z.
  • a fourth internal path 122 connects the terminal EN to the output terminal and is denoted EN-> Z.
  • a fifth internal path 124 connects the Rst terminal to the output terminal Z and is noted Rst-> Z. When the terminals Rst and / or EN are not present, the fourth internal path 122 and / or the fifth internal path 124 are not present.
  • the model associated with the cell indicates values for several parameters of signal propagation under different conditions of rfr operation of the cell.
  • T " ⁇ are usually defined for each internal path:
  • the parameter D is equal to the delay that elapses for the signal at the output of the internal path to change from “0" to "1" when the signal at the input of the internal path goes from “0" to "1";
  • the parameter D " ⁇ is equal to the time that elapses for the signal at the output of the internal path to change from" 1 "to” 0 "when the signal at the input of the internal path goes from” 1 "to” 0 ""
  • the parameter T is equal to the ratio between the duration of passage of the signal at the output of the internal path from “0" to “1” and the duration of passage of the signal at the input of the internal path from “0" to “1" when the signal at the input of the internal path goes from “0" to "1” and the signal at the output of the internal path goes from “0" to "1";
  • the parameter T " ⁇ is equal to the ratio between the duration of passage of the signal at the output of the internal path from" 1 “to” 0 "and the duration of passage of the signal at the input of the internal path from" 1 “to” 0 "when the signal at the input of the internal path changes from” 1 "to” 0 "and the signal at the output of the internal path changes from” 1 "to” 0 ".
  • the parameters D, D, T and T are given by way of example. Other parameters can be used in addition to the parameters D, D, T and T or in place of the parameters D, f r f
  • 114 comprises a matrix which contains a number P * Q of parameter values determined for a number P of duration A_ of transitions of the signal to the input terminal of the internal path and a Q number of capacitors Capj of a load connected to the output terminal of the internal path, i being an integer ranging from 1 to P and j being an integer ranging from 1 to Q.
  • the element of the matrix of r is an integer ranging from 1 to P and j being an integer ranging from 1 to Q.
  • the matrices can be determined by simulations or tests.
  • An exemplary embodiment of the present invention comprises, for at least some of the protocol rendezvous elements of the asynchronous circuit to be synthesized, modifying the cells of the library associated with these protocol rendezvous elements by using a new parameter model of parameters. propagation of internal signals so that these elements of protocol rendezvous are considered, by the design aids, as elements clocked by a clock signal.
  • FIG. 22 schematically shows a library cell 125 according to the invention which is used in place of the cell 114.
  • the present invention provides for creating a terminal R and replacing the paths A-> Z, B-> Z , Ra-> Z, and EN-> Z (respectively paths 116, 118, 120 and 122 in Figure 21) by the paths A-> R, B-> R, R-> R, EN-> R, Ra -> R and R-> Z in the model of the cell 125 (respectively the paths 126, 128, 130, 132 and 134 in Figure 22).
  • the terminal R may be a terminal which does not exist on the cell 114. This is the case, for example, when the cell 114 does not include an RST terminal. Alternatively, when cell 114 receives a reset signal at terminal Rst, terminal R may correspond to terminal Rst.
  • Terminal R is indicated in the model of the cell as a terminal for receiving a clock signal. Paths between the protocol rendezvous elements thus defined can then be determined automatically by the design assistance tool insofar as the tool considers that the elements of protocol rendezvous are elements clocked by a signal. clock.
  • D, D, T and T depend on the capacity of the load connected to the output terminal of the internal path.
  • a parameter S r is defined which corresponds to the delay which elapses for a fictitious clock signal to the Internal path output changes from “0" to "1” when the signal at the input of the internal path changes from “0” to "1".
  • a parameter is also defined that corresponds to the time that elapses for a fictitious clock signal at the output of the internal path to change from "1" to "0” when the signal at the input of the path goes from "1 "a” 0 ".
  • the parameters S ⁇ r and S "f depend on the transition time of the signal at the input of the internal path.
  • FIG. 23 represents, in the form of a block diagram, an exemplary embodiment of the method for determining the matrices of the parameters, associated with the cell 125, S,
  • step 140 one of the A-> Z, B-> Z, Ra-> Z or EN-> Z paths of cell 114 is selected.
  • the internal path A-> Z is selected.
  • the terminal EN is present, which is particularly the case of the cells of the functional blocks 28 of the PCFB and PCHB pipelines, the internal path EN-> Z can be advantageously selected.
  • a transition duration A of the signal at the input of the internal path is selected from among the P durations and a capacitance Cap j is selected from the Q capacitances. This amounts to selecting the row I and the column J in the matrices of the parameters associated with the cell 114.
  • the selection of the duration A and the capacitance Cap j can be arbitrary or depend on the intended use of the element of appointment you protocol.
  • the parameters are determined according to the following relations for j varying from 1 to Q:
  • the terminal R corresponds to the terminal Rst, it does not take into account the parameters that are normally associated with the path Rst-> Z in the model of the cell 114.
  • step 146 for each path A-> R, B-> R, R-> R and optionally EN-> R the parameters S and S are determined according to the following relations for i varying from 1 to P:
  • FIG. 24 illustrates examples of paths 148, 150, 152, 154 that can be used when implementing an optimization algorithm for a synchronous integrated circuit design assistance tool to replace the path 112 of FIG. 20.
  • the paths 148, 150, 152 and 154 can be automatically delimited by a synchronous integrated circuit design assistance tool which considers for each protocol rendezvous element, in this example the function block 28 of each stage 26, the internal paths A-> R, B- > R, Ra-> R and EN-> R and R-> Z as defined above and which considers that the protocol rendezvous element is clocked by a fictitious clock signal which would be received by the terminal R.
  • Figure 25 shows two stages of the pipeline 110 of Figure 24. Two particular paths 150 and 156 are shown.
  • the path 156 starts at the terminal R of a cell of the functional block 28 of a stage 26 and then passes successively through the terminal Z of the cell of the functional block 28 of the stage 26, by the upstream detection block 30 of the next stage 26, the synchronization block 34 of the next stage 26, the terminal EN of a cell of the functional block 28 of the next stage 26 and ends at the terminal R of the cell of the functional block 28 of the next floor 26.
  • the path 150 starts at the terminal R of another cell of the functional block 28 of the stage 26 and then passes successively through the terminal Z of the cell of the functional block 28 of the stage 26, via the terminal A of a cell of the functional block 28 of the next stage 26 and ends at the terminal R of the cell of the functional block 28 of the next stage 26.
  • the path 156 is present when the terminal EN is present. This is notably the case of the PCHB and PCFB pipelines described previously.
  • the paths 150 and 156 form an isochronous fork. Given the operation of the pipelines, the signal passing path 150 must arrive at terminal A before the signal passing path 156 reaches the terminal EN.
  • the parameters S and S for the paths A-> R and B-> R of cell 125 are determined according to the relationships previously described by adding nevertheless a strictly positive margin of safety, the determination of the other paths EN-> R and Ra-> R not being modified.
  • Margin is the safety margin and is a real number greater than or equal to zero.
  • the margin of safety Margin can be a constant positive constant equal for the paths A-> R and B-> R of all the cells of the functional blocks 28 of the pipeline.
  • the safety margin can be a strictly positive value that depends on the cell considered. For example, the safety margin may depend on the transition time ⁇ from the low level to the high level or from the high level to the low level of the clock signal declared on the terminal R, which is not used elsewhere. in the calculation of other parameters.
  • the duration ⁇ can correspond to the duration for the same type of transition (from the low level to the high level or from the high level to the low level) for all these cells.
  • the reset can be carried out for certain cells when the Reset reset signal goes from the high level to the low level (first type transition) and can be performed for other cells when the Reset reset signal goes from the low level to the high level (second type of transition).
  • the duration ⁇ may correspond to the duration for the same type of transition of the clock signal (which may be of the first type or the second type of transition).
  • the duration ⁇ may correspond to the duration for the opposite type of transition of the clock signal.
  • FIG. 26 represents, in the form of a block diagram, an exemplary embodiment of a method for designing an asynchronous integrated circuit that implements a tool for assisting the design of synchronous integrated circuits.
  • the synchronous integrated circuit design assistance tool can be realized by the hardware channel, that is to say by a dedicated electronic circuit.
  • the synchronous integrated circuit design assistance tool can be implemented by computer, that is to say at least partly by the execution by a computer of instructions of a computer. computer program for example stored in a memory.
  • the corresponding instruction sequence can be stored in a removable storage means (such as for example a floppy disk, a CD-ROM or a DVD-ROM) or in a non-removable memory, the storage means being readable by a computer or a microprocessor.
  • a removable storage means such as for example a floppy disk, a CD-ROM or a DVD-ROM
  • non-removable memory the storage means being readable by a computer or a microprocessor.
  • step 160 the asynchronous circuit is designed in a high definition language, then synthesized, to obtain, in a conventional manner, interconnection list files that are independent of the technology used.
  • the cells 125 as defined above are selected for certain protocol rendezvous elements of the circuit to be produced.
  • a dummy clock signal is provided as being received by the terminal R of the selected protocol rendezvous elements.
  • the selection of protocol appointment items depends on the pipeline structure.
  • the protocol rendezvous elements may comprise the cells 29 of the functional block 28 of each stage of the pipeline.
  • the terminal R as defined above may correspond to the terminal Rst of the protocol rendezvous element.
  • the terminal R is then a dummy terminal which has no physical existence.
  • the period of the dummy clock signal is set according to the intended performance of the asynchronous circuit. For example, it can be set at a quarter of the target cycle time for the asynchronous circuit. Alternatively, the period of the clock signal can be set to 0 seconds.
  • the transition time ⁇ of the clock signal can be set to a value corresponding to the safety margin for the isochronous fork between the paths 150 and 156. Alternatively, the transition time of the clock signal can take a any value, when it is not desired to control a safety margin.
  • step 164 (Technology Mapping) a method of technological matching is performed using the cells of the library, including the cells of one invention.
  • step 166 Placement
  • steps 168 and 170 a placement and routing method is implemented.
  • Interconnection list files can be significantly modified.
  • the design support tools distribute the protocol rendezvous elements and scale them as needed to minimize the time paths of data progression and acknowledgments.
  • the combinational logic portions can be optimized until the propagation times satisfy the pseudo-synchronous constraints.
  • step 168 a method of designing a dummy clock tree is implemented.
  • the synthesized clock tree corresponds to the transmission network of the Reset reset signal of the protocol rendezvous elements.
  • the Reset signal was considered a dummy clock signal and until this step, an ideal clock tree without propagation delay was considered.
  • the resetting signal transmission network Reset is determined by creating a clock tree with low constraints on the propagation time of the clock signal from the clock generation circuit to the protocol rendezvous elements. and as to the offset of the arrival of the clock signal between different elements of protocol appointments.
  • no clock tree is to be synthesized. For this purpose, it suffices to indicate that the clock signal is produced directly at the terminal R of each protocol rendezvous element.
  • step 170 the method can continue optimizing the circuit.
  • the optimization algorithms implemented after the step of designing the clock tree continue to advantageously consider that the reset signal is an ideal clock signal without offset.
  • step 172 (Validation) all the verification steps are performed with the true asynchronous models (associated with the cells 114) for the protocol rendezvous elements.

Landscapes

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

Description

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

Claims

REVENDICATIONS
1. Procédé de conception d'un circuit intégré asynchrone (20), mis en oeuvre par ordinateur, à partir d'une bibliothèque de cellules comprenant au moins une cellule (125) dont des paramètres de propagation de signal entre une première borne (A) et une deuxième borne (R) et entre la deuxième borne (R) et une troisième borne (Z) sont fonction du paramètre de propagation de signal entre la première borne et la troisième borne le procédé comprenant les étapes suivantes :
synthétiser un circuit intégré synchrone correspondant au circuit intégré asynchrone en utilisant ladite cellule (125) pour représenter une portion (29 ; 40, 50, 52) du circuit asynchrone et dans lequel ladite cellule est cadencée par un signal d'horloge fictif ; et
vérifier le circuit intégré synthétisé en utilisant le paramètre de propagation de signal entre la première borne et la troisième borne pour simuler le fonctionnement de ladite portion du circuit asynchrone.
2. Procédé selon la revendication 1, dans lequel la bibliothèque comprend, pour ladite cellule (125) , une indication que la deuxième borne (R) est destinée à recevoir un signal fictif d'horloge au cours de la conception du circuit intégré asynchrone par un outil d'aide à la conception de circuits synchrones .
3. Procédé selon la revendication 1 ou 2, dans lequel la cellule (125) est représentative d'une portion du circuit asynchrone (28) , la deuxième borne (R) étant destinée, en fonctionnement, à recevoir un signal de réinitialisation (Reset) de la portion de circuit (37, 38 ; 51, 52 ; 68, 70) .
4. Procédé selon la revendication 1 ou 2, dans lequel la cellule (125) est représentative d'une portion (28) du circuit asynchrone, la deuxième borne (R) ne correspondant pas à une borne physique de la portion destinée, en fonctionnement, à fournir ou à recevoir des signaux.
5. Procédé selon l'une quelconque des revendi¬ cations 1 à 4, dans lequel la cellule (102) comprend un premier paramètre de propagation de signal de la première borne (A) à la deuxième borne (R) et un deuxième paramètre de propagation de signal de la deuxième borne à la troisième borne (Z) , les premier et deuxième paramètres étant obtenus à partir d'un troisième paramètre de propagation de signal de la première borne à la troisième borne, dans laquelle le troisième paramètre r(A—> Z)
correspond à une matrice d'éléments D ■ où i est un entier variant de 1 à P et j est un entier variant de 1 à Q, dans laquelle le deuxième paramètre correspond à une matrice d'éléments )^R→z* obtenus selon la relation suivante :
Ar(R→Z) _ nr(A→Z)
Uj ~ UI,j
I étant un entier naturel choisi entre 1 et P, et dans laquelle le premier paramètre correspond à une matrice d'éléments gr(A→R) 0]3-|-enus selon la relation suivante :
¾r(A→R) _ nr(A→Z) fir(A→Z)
J étant un entier naturel choisi entre 1 et Q.
6. Procédé selon les revendications 2 et 5, dans lequel la cellule (102) comprend, en outre, une quatrième borne
(B) , un quatrième paramètre de propagation de signal de la quatrième borne à la troisième borne (Z) correspondant à une matrice d'éléments D ■ , la bibliothèque comprenant, en outre, un cinquième paramètre de propagation de signal de la quatrième borne à la deuxième borne (R) , le cinquième paramètre correspondant à une matrice d'éléments obtenus selon la relation suivante :
r(B→R) „r(B→Z) r(R→Z) .
Si Di j D J + M arg m
où Margin est un nombre réel supérieur ou égal à zéro, qui est constant indépendamment de i ou qui dépend de la durée de transition du signal fictif d'horloge sur la deuxième borne.
7. Procédé selon la revendication 5, dans lequel la première borne (A) est, en fonctionnement, une borne de réception d'un premier signal alternant entre deux états, dans laquelle la troisième borne (Z) est, en fonctionnement, une borne de fourniture d'un second signal alternant entre deux états et dans laquelle le troisième paramètre correspond à la durée entre un changement d'état du premier signal et un changement d'état du second signal.
8. Procédé selon la revendication 1, dans lequel la deuxième borne (R) correspond à la borne de la portion (29 ; 40, 50, 52) du circuit asynchrone (20) destinée, en fonctionnement, à recevoir un signal de réinitialisation (Reset) de ladite portion du circuit asynchrone, le procédé comprenant une étape de conception d'un arbre d'horloge pour transmettre le signal d'horloge fictif jusqu'à ladite portion du circuit asynchrone, l'arbre d'horloge étant utilisé en fonctionnement comme un réseau de distribution du signal de réinitialisation jusqu'à ladite portion du circuit asynchrone.
9. Procédé selon l'une quelconque des revendications 1 à 8, dans lequel l'étape de vérification est réalisée avec un modèle asynchrone pour simuler le fonctionnement de ladite portion (29 ; 40, 50, 52) du circuit asynchrone .
10. Moyen de stockage lisible par ordinateur stockant un programme d'ordinateur comprenant un jeu d'instructions exécutables par un ordinateur pour mettre en oeuvre le procédé selon au moins une des revendications 1 à 9.
11. Moyen de stockage lisible par ordinateur stockant une bibliothèque de cellules pour la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 9.
EP13723839.0A 2012-05-04 2013-04-22 Bibliothèque de cellules et procédé de conception d'un circuit intégré asynchrone Pending EP2845131A2 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1254127A FR2990283A1 (fr) 2012-05-04 2012-05-04 Bibliotheque de cellules et procede de conception d'un circuit integre asynchrone
PCT/FR2013/050875 WO2013164528A2 (fr) 2012-05-04 2013-04-22 Bibliothèque de cellules et procédé de conception d'un circuit intégré asynchrone

Publications (1)

Publication Number Publication Date
EP2845131A2 true EP2845131A2 (fr) 2015-03-11

Family

ID=46826648

Family Applications (1)

Application Number Title Priority Date Filing Date
EP13723839.0A Pending EP2845131A2 (fr) 2012-05-04 2013-04-22 Bibliothèque de cellules et procédé de conception d'un circuit intégré asynchrone

Country Status (4)

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

Families Citing this family (9)

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

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6130475A (en) * 1993-12-07 2000-10-10 International Business Machines Corporation Clock distribution system for synchronous circuit assemblies
US6166963A (en) * 1998-09-17 2000-12-26 National Semiconductor Corporation Dual port memory with synchronized read and write pointers
WO2001001245A1 (fr) * 1999-06-26 2001-01-04 Yang Sei Yang Procede et dispositif de sondage d'entree-sortie et procede mixte d'emulation-simulation base sur ces derniers
US6597664B1 (en) * 1999-08-19 2003-07-22 Massachusetts Institute Of Technology Digital circuit synthesis system
DE60033531D1 (de) * 1999-08-19 2007-04-05 Massachusetts Inst Technology Synthese einer synchronen schaltung unter verwendung einer asynchronen spezifikation
FR2815197B1 (fr) * 2000-10-06 2003-01-03 St Microelectronics Sa Circuit asynchrone pour la detection et la correction de l'erreur induite et procede de mise en oeuvre
US7418676B2 (en) * 2005-01-19 2008-08-26 Seiko Epson Corporation Asynchronous circuit design tool and computer program product
US7647567B1 (en) * 2005-01-31 2010-01-12 Bluespec, Inc. System and method for scheduling TRS rules
US7610567B2 (en) * 2006-04-27 2009-10-27 Achronix Semiconductor Corporation Systems and methods for performing automated conversion of representations of synchronous circuit designs to and from representations of asynchronous circuit designs
FR2901437B1 (fr) * 2006-05-16 2008-08-08 Arteris Sa Procede de realisation d'un circuit de synchronisation de donnees echangees de maniere asynchrone entre deux blocs synchrones, et circuit de synchronisation elabore a partir d'un tel procede
US8065647B2 (en) * 2007-10-19 2011-11-22 The University Of Utah Research Foundation Method and system for asynchronous chip design
US8086975B2 (en) * 2008-04-10 2011-12-27 University Of Southern California Power aware asynchronous circuits
US8448105B2 (en) * 2008-04-24 2013-05-21 University Of Southern California Clustering and fanout optimizations of asynchronous circuits
JP5409231B2 (ja) * 2008-09-26 2014-02-05 株式会社半導体エネルギー研究所 設計システム
US8161435B2 (en) * 2009-07-20 2012-04-17 Achronix Semiconductor Corporation Reset mechanism conversion
US8301933B2 (en) * 2009-09-14 2012-10-30 Achronix Semiconductor Corporation Multi-clock asynchronous logic circuits
US8661378B2 (en) * 2009-09-30 2014-02-25 Achronix Semiconductor Corporation Asychronous system analysis

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
None *
See also references of WO2013164528A2 *

Also Published As

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

Similar Documents

Publication Publication Date Title
WO2013164528A2 (fr) Bibliothèque de cellules et procédé de conception d'un circuit intégré asynchrone
CN103324774B (zh) 一种基于时钟规划偏差算法的处理器性能优化方法
EP2131495A1 (fr) Circuit asynchrone insensible aux délais avec circuit d'insertion de délai
WO2012123243A1 (fr) Systeme mono-puce comprenant un coeur programmable synthetisable et un procede de fabrication d'un tel systeme
FR3038188A1 (fr) Systeme de verification de l’integrite d’une communication entre deux circuits
EP1869545B1 (fr) Dispositif implementant la multiplication modulaire de montgomery
WO2012045941A1 (fr) Systeme d'ordonnancement de l'exécution de taches cadence par un temps logique vectoriel
EP3025161B1 (fr) Procede automatise d'analyse d'une carte portant plusieurs composants de type fpga
FR3083885A1 (fr) Circuit de generation de facteurs de rotation pour processeur ntt
FR3023038A1 (fr) Procede de fabrication automatisee d'un circuit electronique adapte pour detecter ou masquer des fautes par redondance temporelle, programme d'ordinateur et circuit electronique associes
EP1071008B1 (fr) Procédé pour effectuer une multiplication avec accumulation dans un corps de Galois.
WO2008001010A2 (fr) Procédé de modélisation du bruit injecté dans un système électronique
FR2914525A1 (fr) Procede de simulation transactionnelle d'un modele generique de noeud de communication, produit programme d'ordinateur et moyen de stockage correspondants
EP0927928B1 (fr) Procédé de production amélioré d'un paramètre JO associé à la mise en oeuvre d'opérations modulaires selon la méthode de Montgomery
EP0469507A1 (fr) Circuit intégré comprenant une cellule standard, une cellule d'application et une cellule de test
FR2794259A1 (fr) Dispositif materiel destine a l'execution d'instructions programmables basees sur des micro-instructions
EP1813952B1 (fr) Test de scan
EP1544724B1 (fr) Nouvelle architecture de mémoire FIFO et procédé de gestion d'une telle mémoire
Chakrabarti Clock tree skew minimization with structured routing
FR2855627A1 (fr) Circuit integre et procede pour le faire fonctionner
EP0778518A1 (fr) Procédé de production d'un paramètre J0 associé à la mise en oeuvre d'opérations modulaires selon la méthode de Montgomery
EP0655685B1 (fr) Dispositif de calcul des bits de parité associés à une somme de deux nombres
FR2556902A1 (fr) Procede et dispositif de filtrage de rang determine d'un signal numerique et application au filtrage median bidimensionnel separable
EP3234773B1 (fr) Procede d'ordonnancement d'un traitement audio d'un vehicule automobile et systeme d'exploitation associe
WO2020174186A1 (fr) Procédé de validation d'un système flots de données

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20141002

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

RIN1 Information on inventor provided before grant (corrected)

Inventor name: THONNART, YVAIN

Inventor name: VIVET, PASCAL

DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20170810

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS