[go: up one dir, main page]

WO2012123243A1 - System-on-a-chip including a programmable synthesizable core, and method for making such a system - Google Patents

System-on-a-chip including a programmable synthesizable core, and method for making such a system Download PDF

Info

Publication number
WO2012123243A1
WO2012123243A1 PCT/EP2012/053271 EP2012053271W WO2012123243A1 WO 2012123243 A1 WO2012123243 A1 WO 2012123243A1 EP 2012053271 W EP2012053271 W EP 2012053271W WO 2012123243 A1 WO2012123243 A1 WO 2012123243A1
Authority
WO
WIPO (PCT)
Prior art keywords
cps
core
configuration file
hdl
chip system
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.)
Ceased
Application number
PCT/EP2012/053271
Other languages
French (fr)
Inventor
Gil Peer SCHMITT
Philippe Robert DIEHL
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.)
Sas Adicsys
Original Assignee
Sas Adicsys
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 Sas Adicsys filed Critical Sas Adicsys
Publication of WO2012123243A1 publication Critical patent/WO2012123243A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10DINORGANIC ELECTRIC SEMICONDUCTOR DEVICES
    • H10D84/00Integrated devices formed in or on semiconductor substrates that comprise only semiconducting layers, e.g. on Si wafers or on GaAs-on-Si wafers
    • H10D84/90Masterslice integrated circuits

Definitions

  • the invention relates to a single-chip system comprising a synthesizable programmable core and a method of manufacturing such a system. It applies in particular to the field of integrated circuits.
  • a first possibility is to use integrated circuits designed specifically for a given application or set of applications. These circuits are designated by the acronym ASIC coming from the Anglo-Saxon expression "Application-Specific Integrated Circuit”. They enable fast execution of applications and the cost of production is reduced when they are produced on a large scale. However, the design of such circuits is long and the development costs can be significant.
  • FPGA circuits acronym from the English expression "Field Programmable Gate Array”.
  • the FPGA circuits are composed of a plurality of elementary logic cells that can be connected to each other by programming.
  • the programming of an FPGA is implemented using a set of configuration bits for connecting the elementary cells in different ways.
  • This set of configuration bits is usually grouped into a configuration file.
  • This file is usually designated by the English word "bitstream”.
  • the configuration file can be stored outside the FPGA circuit in external nonvolatile memory.
  • One of the advantages of FPGA chips is that they can be reprogrammed by modifying the configuration file. The implementation of a given application is facilitated because when an error is detected, it can be corrected by reprogramming the circuit without hardware modification.
  • FIG. 1 is a simplified representation of the design steps of a SoC system comprising an eFPGA circuit. Many difficulties are encountered.
  • the first are the dedicated blocks and the second are the eFPGA blocks.
  • HDL hardware description language
  • VHDL Very High Definition Language
  • Verilog Verilog languages
  • the HDL languages are usually used to describe the expected operation of the dedicated blocks and allow their translation into a logical gate assembly, this logical gate assembly being obtained using a synthesis tool 102. More precisely, the result of the synthesis corresponds to a list of interconnections of logic gates 103, said list being usually presented in the form of a file designated by the English expression "netlist gate”. This file corresponds to a list containing all the basic logic gates to be used for the implementation of the dedicated SoC blocks as well as information on how these doors are connected to each other.
  • the designer must produce a hardware description 104 of the circuit and then use a generation tool 105 so as to generate from the hardware description an interconnection list of transistors 106, said list being presented usually in the form of a file referred to by the expression Anglo-Saxon "netlist transistor".
  • a geometric file is also obtained.
  • the generation tool to obtain these files is usually dedicated to eFPGA circuit design. It makes it possible to obtain in addition to the list of transistors and the geometrical file a simulation model. However, this simulation model is limited because it does not take into account all the physical phenomena related to the implementation of the eFPGA circuit on the SoC single chip system. Such an imperfect simulation model is nevertheless used to validate the system before the physical generation of the chip.
  • the operations required for the implementation of the two streams are conducted independently of each other.
  • the first stream 109 used for the synthesis of the dedicated blocks is called a flow of conventional design in the remainder of the description, the conventional term being used because this type of flow is similar to that used in the design of ASIC circuits.
  • the second stream 1 10 is called the eFPGA stream.
  • the lists 103, 106 obtained by the implementation of the conventional streams 109 and eFPGA 1 10 are then used at another stage of the design in order to obtain an image of the chip to be melted, this image being stored in files called geometric files 106, 1 12, also called "layout" file in English language.
  • a disadvantage of this approach is that two independent streams 109, 1 10 are required. Designers must therefore decide as early as the specification phase of the single-chip system 100 of the distribution of functions required for the implementation of the targeted application or applications. Indeed, the functions necessary for the implementation of the chosen application can be implemented either in dedicated blocks or in eFPGA circuits. By way of example, a SoC will be obtained by implementing a first subset of functions in a dedicated block and a second-subset of functions in an eFGPA block.
  • An object of the invention is in particular to overcome the aforementioned drawbacks.
  • the subject of the invention is a single-chip system comprising at least one CPS synthesizable programmable core and a dedicated block.
  • the CPS core and the dedicated block were synthesized together on the one hand from a model in the HDL hardware description language of the dedicated block and on the other hand from an HDL model of the CPS core associated with a configuration file by default.
  • the HDL model and the default configuration file of the CPS core have been generated from an initial HDL model corresponding to a non-programmable block.
  • the HDL model of the CPS core associated with its default configuration file is functionally equivalent to the original HDL model.
  • the default configuration file is obtained by compiling the result of the synthesis of the initial HDL model, the architecture of the CPS core being taken into account by the compilation.
  • the CPS core is synthesized, for example, using a standard cell library commonly used for ASIC synthesis.
  • memory elements are used for programming the CPS core.
  • An initialization signal places the memory elements in a known state, said initialization signal being adapted so that the known states of the memory elements correspond to the values included in the default configuration file.
  • the initialization signal is for example adapted by retro-annotation of the HDL model of the CPS core in order to match each the default configuration file information when the memory element is set to 1 or reset.
  • the memory elements are, for example, D flip-flops.
  • the initialization signal is routed to the data inputs of flip-flops D.
  • the initialization signal is routed to the SET or RESET inputs of the D flip-flops.
  • the D flip-flops are for example chosen with a forcing input at 0 or with a forcing input at 1 so that said flip-flops are initialized by loading the values associated with them in the default configuration file.
  • the CPS core associated with its configuration file implements a memory controller.
  • the invention also has a method for manufacturing a single-chip system as described above.
  • the method comprises a step of generating a model in HDL hardware description language of a CPS synthesizable programmable core to implement functions described using an initial HDL model, a step of generating a file default configuration of the CPS core by synthesis and compilation of the initial HDL model, a step of synthesis of the CPS core and the dedicated block using the same synthesis tool, a step of generating a geometric file from the result of the synthesis and a step of casting the single chip system using said geometric file.
  • the synthesis is performed using a standard cell library commonly used for synthesizing ASICs.
  • the HDL template and the default CPS core configuration file were generated from an initial HDL template corresponding to a non-programmable block so that the HDL model of the CPS core associated with its default configuration file is functionally equivalent to the initial HDL model.
  • FIG. 1 is a simplified representation of the design steps of a SoC system comprising an eFPGA circuit
  • FIG. 2 shows an example of a single-chip system according to the invention
  • FIG. 3 illustrates a first design phase making it possible to obtain a description in hardware description language of a CPS core as well as its configuration file;
  • FIG. 4 illustrates how a SoC system according to the invention can be obtained from the HDL model of a CPS core and its configuration file
  • FIG. 5 illustrates how a SoC system comprising a CPS synthesizable programmable core can be set by default.
  • FIG. 2 shows an example of a single-chip system 200 according to the invention.
  • This example SoC system comprises four dedicated blocks 201, 202, 203, 207 and three blocks called hard blocks 204, 205, 206.
  • the hard blocks 204, 205, 206 correspond to blocks implementing functions commonly used in integrated circuits, such as memories, input-output interface circuits or PLLs, acronym from the English expression. -shows "Phase Locked Loop”.
  • the system further comprises an area in which appears a dedicated block 207 and two CPS synthesizable programmable cores 208, 209.
  • a CPS heart 208, 209 is associated with at least one configuration file internally stored in the SoC or in a memory external. Such a file makes it possible to precisely program a CPS core after the chip of the mono-core system has been melted.
  • the dedicated blocks 201, 202, 203 having their own functionalities can be implemented using HDL models already used to implement dedicated blocks validated in the context of other SoCs. The designers can choose to reuse them directly, the risks of errors resulting from the implementation of these blocks being limited.
  • a SoC according to the invention comprises one or more programmable synthesizable CPS cores 208, 209. Part of the new functionalities to be implemented in the SoC is allocated thereto, and the fact that these cores are programmable makes it possible to correct errors even after the production of the chip by modifying a configuration file. If the SoC is used for different versions of a product, the features implemented at CPS cores can also be adapted from one product to another by modifying the configuration file.
  • the programmable logic of a CPS core is optimized to be able to achieve a given set of functions of a nature known a priori by the designer. For example, if a CPS core needs to implement a memory controller, the characteristic resources of a processor are useless and will not be included in the physical elements making up the core.
  • a CPS core is a semi-dedicated block, which differs from FPGA and eFPGA type circuits whose architectures are developed to meet any need. FPGAs and eFPGAs are therefore often oversized, which is not the case for CPS cores.
  • FIGS. 3 and 4 show in a simplified manner the two design phases making it possible to obtain a SoC system according to the invention.
  • FIG. 3 illustrates a first design phase making it possible to obtain an HDL model 307 of a CPS core, that is to say a description in the hardware description language of this core 306, as well as its configuration file 305.
  • a first set of functions A is intended to be embedded in a dedicated block.
  • a second set B of functions is divided into two subsets of functions B1 and B2.
  • the subset of functions B1 is intended to be embedded in a dedicated block and the subset of functions B2 is intended to be embedded in a CPS core.
  • a first step has the purpose of describing these sets of functions in hardware description language 300.
  • An HDL model is obtained for each of them.
  • a succession of steps is then applied to obtain from an initial HDL model 307 of the subset B2 an HDL model of the CPS core and its default configuration file.
  • the architecture of the CPS core must be determined 301. This can be described by the designer, for example using appropriate software. It is also possible to generate this architecture automatically or to select it from among different possible CPS core architectures included in a library. The architecture of a CPS core can also be refined for specific needs through the use of specialized modules or functions.
  • the architecture of the CPS core is described by a hardware description language.
  • the B2 function subset model is synthesized 303 from the initial HDL model 307 taking into account the architecture of the CPS core.
  • the result of this synthesis is compiled 304 so as to produce a default configuration file 305 of the CPS core.
  • a specific compilation tool is then required such as a conventional compilation tool for FPGA or eFPGA.
  • the combination of the HDL 306 model of the CPS core and its default configuration file 305 is then functionally equivalent to the HDL model of an original non-programmable block 307 of the subset of B2 functions also called the initial HDL template, and can to be used in a classical synthesis flow.
  • Figure 4 illustrates how a SoC system according to the invention can be obtained from the HDL model and its configuration file.
  • the functional equivalence between the initial non-programmable 307 HDL model of the functional subset to be implemented on the core CPS, i.e., the subset B2 in this example, and the set consisting of the HDL template of said core 306, 402 associated with its default configuration file 305, 401 is essential for the design of a SoC according to the invention.
  • the initial HDL model and the set composed of the HDL model of the core and its default configuration file can be easily exchanged inside the synthesis stream.
  • the physical part of the SoC implementing the subset of function is different depending on whether one or the other alternative is chosen. In particular, the silicon surface will be different.
  • the initial HDL model and the composite set of the CPS core HDL model associated with its configuration file are both synthesizable by the same tools. This has the particular advantage of avoiding the implementation of an additional integration step when deciding on such a permutation.
  • the HDL 402 model of the CPS core and its configuration file 401 can be synthesized 404 together with the HDL model of the functional subset B1 and the HDL model of the function set A.
  • a geometry file 406 may be generated 405 using a conventional tool and the SoC system 408 comprising a synthesizable programmable heart may be merged 407.
  • the SoC system can then be implemented using any integrated circuit manufacturing technology.
  • FIG. 5 illustrates how a SoC system comprising a CPS synthesizable programmable core can be configured by default.
  • a SoC according to the invention is a compromise between a SoC comprising an eFGPA and a SoC comprising only dedicated blocks.
  • a SoC according to the invention is a semi-dedicated system. These systems are therefore useful for the implementation of one or more given applications, the CPS heart or hearts for programming some of the functions used by these applications.
  • an advantageous embodiment of such a SoC system according to the invention comprises a technology that allows it to be configured by default when it is powered up.
  • the FPGA and eFPGA circuits must load the bits contained in a configuration file at memory points internal to these circuits, called memory points in the following description. These memory points are sequentially programmed from the configuration file usually stored on a storage medium external to the circuit to be programmed. This approach is typical when FPGA or eFPGA circuits are used because their configuration is not or does not need to be known at the time of their manufacture.
  • the configuration file Once the configuration file has been determined, when the system using an FPGA or an eFPGA is turned on, the bits of the configuration file are loaded. This operation is not instantaneous. In addition, an FPGA or an eFPGA is not available with a default configuration.
  • the mono-chip system according to the invention advantageously allows to contain a default configuration of the CPS or cores without the purchaser of such a system having to perform any programming operation. For this, two alternatives are described below.
  • an initialization signal is usually used in integrated circuits to put toggle memory elements in a known state. This signal is usually generated outside the circuit and is called the initialization signal. By default, the initialization signal loads 0 in all elements.
  • a first way to load the default configuration automatically is to modify this initialization signal so that it does not load only 0s in elements 501 for programming cells 500 of the CPS core, but 0's and 1's in accordance with the values of the default configuration file.
  • the effect produced by the initialization signal is adapted at the time of writing of the HDL model of the CPS core. For that, after generation of the HDL model of the CPS core as well as its configuration file, the HDL model is retro-annotated in order to match each information of the default configuration file with a setting to 1 or a setting of 0. a memory point of the CPS heart when the initialization signal is applied.
  • the initialization signal may be derived from the conventional initialization signal of a SoC, another signal or a combination between this initialization signal and another signal. Moreover, this technique of taking into account the default configuration at the level of the initialization signal advantageously allows a complete simulation of the operation of the SoC system from the HDL models of the CPS core and the other HDL models associated with the dedicated blocks and the hard blocks.
  • An alternative way of loading the default configuration of the CPS core automatically is to change the nature of the selected memory elements 501.
  • standard cell libraries are used at the time of synthesis. These libraries allow the implementation of at least two types of memorizing elements.
  • a first type of element is the latch D on state also called “latch” in English and a second type of element is the D flip-flop on front also called “flip-flop” flip-flop.
  • a state D flip-flop takes up less space on a SoC than a front-end D flip-flop.
  • the choice between these two types of memory elements is usually made at the time of writing the HDL model. After the synthesis, however, it remains possible to modify selected flip-flops for taking into account the values of the configuration file.
  • the modification after synthesis consists of a replacement of flip-flops D with a forcing input at 0 RESET by a flip-flop D with a forcing input at 1 SET or the inverse according to the corresponding value of the configuration file, the signal of initialization being for example connected to this input.
  • This modification can be implemented by manually updating or using a suitable software file "netlist pamper" generated from HDL models SoC. It remains possible to re-program the SoC using the conventional programming mode of a programmable circuit, that is to say by loading the bits of a configuration file 502 different from the default configuration file by the channel. of normal data 504 of the memory elements, for example by using the input D of a flip-flop D.
  • One of the default configuration techniques can be applied to all or part of a CPS core. This advantageously allows the designer not to disclose the entire default configuration file.

Landscapes

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

Abstract

The invention relates to a system-on-a-chip (200, 408) comprising at least one programmable synthesizable core PSC (208, 209) and a dedicated block (201, 202, 203, 207). The PSC core and the dedicated block are synthesized together from a hardware description-language (HDL) model of the dedicated block (201, 202, 203, 207), as well as from a hardware description-language (HDL) model of the PSC core (306, 402) associated with a default configuration file (305, 401).

Description

SYSTEME MONO-PUCE COMPRENANT UN CŒUR PROGRAMMABLE SYNTHETISABLE ET UN PROCEDE DE FABRICATION D'UN TEL  MONO-CHIP SYSTEM COMPRISING A SYNTHETICABLE PROGRAMMABLE HEART AND A METHOD OF MANUFACTURING SAME

SYSTEME L'invention concerne un système mono-puce comprenant un cœur programmable synthétisable et un procédé de fabrication d'un tel système. Elle s'applique notamment au domaine des circuits intégrés.  SYSTEM The invention relates to a single-chip system comprising a synthesizable programmable core and a method of manufacturing such a system. It applies in particular to the field of integrated circuits.

Il existe aujourd'hui plusieurs alternatives pour mettre en œuvre des applications sur circuits intégrés. There are now several alternatives to implement applications on integrated circuits.

Une première possibilité est d'utiliser des circuits intégrés conçus spécialement pour une application ou un ensemble d'application donné. Ces circuits sont désignés par l'acronyme ASIC venant de l'expression anglo- saxonne « Application-Specific Integrated Circuit ». Ils permettent une exécution rapide des applications et le coût de production est réduit lorsqu'ils sont produits à grande échelle. Cependant, la conception de tels circuits est longue et les coûts de développement peuvent être importants.  A first possibility is to use integrated circuits designed specifically for a given application or set of applications. These circuits are designated by the acronym ASIC coming from the Anglo-Saxon expression "Application-Specific Integrated Circuit". They enable fast execution of applications and the cost of production is reduced when they are produced on a large scale. However, the design of such circuits is long and the development costs can be significant.

Une alternative est d'utiliser des circuits intégrés programmables comme par exemple des circuits FPGA, acronyme venant de l'expression anglo-saxonne « Field Programmable Gâte Array ». Les circuits FPGA sont composés d'une pluralité de cellules logiques élémentaires pouvant être connectées les unes aux autres par programmation. La programmation d'un FPGA est mise en œuvre à l'aide d'un ensemble de bits de configurations permettant de connecter les cellules élémentaires de différentes manières. Cet ensemble de bits de configuration est habituellement regroupé dans un fichier de configuration. Ce fichier est désigné habituellement par le mot anglais « bitstream ». Le fichier de configuration peut être mémorisé à l'extérieur du circuit FPGA dans une mémoire non volatile externe. Un des avantages des circuits FPGA est qu'ils peuvent être reprogrammés par modification du fichier de configuration. La mise en œuvre d'une application donnée est facilitée du fait que lorsqu'une erreur est détectée, celle-ci peut être corrigée par reprogrammation du circuit sans modification matérielle. Cependant, pour une application donnée, du fait qu'un circuit FPGA n'est pas spécialisé, la surface en silicium est plus importante que celle requise par un circuit ASIC. De plus, sont coût est plus élevé et ses performances en termes de temps d'exécution moins bonnes. Une autre alternative est d'intégrer un circuit FPGA dans un système mono-puce comportant aussi des éléments de calcul spécialisés, lesdits éléments de calcul spécialisés étant mis en œuvres dans des blocs dédiés, c'est-à-dire non programmables. Les systèmes mono-puce sont désignés habituellement par l'acronyme SoC venant de l'expression anglo- saxonne « System on Chip ». Puisque dans ce cas le circuit FPGA est intégré au sein d'un système SoC, celui-ci est désigné par l'acronyme eFPGA, le 'e' faisant référence au mot anglais « embedded ». La figure 1 représente de manière simplifiée les étapes de conception d'un système SoC comportant un circuit eFPGA. De nombreuses difficultés y sont rencontrées. An alternative is to use programmable integrated circuits such as for example FPGA circuits, acronym from the English expression "Field Programmable Gate Array". The FPGA circuits are composed of a plurality of elementary logic cells that can be connected to each other by programming. The programming of an FPGA is implemented using a set of configuration bits for connecting the elementary cells in different ways. This set of configuration bits is usually grouped into a configuration file. This file is usually designated by the English word "bitstream". The configuration file can be stored outside the FPGA circuit in external nonvolatile memory. One of the advantages of FPGA chips is that they can be reprogrammed by modifying the configuration file. The implementation of a given application is facilitated because when an error is detected, it can be corrected by reprogramming the circuit without hardware modification. However, for a given application, because an FPGA circuit is not specialized, the silicon surface is larger than that required by an ASIC. In addition, its cost is higher and its performance in terms of less good running time. Another alternative is to integrate an FPGA circuit in a single-chip system also comprising specialized computing elements, said specialized computing elements being implemented in dedicated blocks, that is to say non-programmable blocks. Single-chip systems are usually referred to by the acronym SoC from the English expression "System on Chip". Since in this case the FPGA circuit is integrated within a SoC system, it is designated by the acronym eFPGA, the 'e' referring to the English word "embedded". FIG. 1 is a simplified representation of the design steps of a SoC system comprising an eFPGA circuit. Many difficulties are encountered.

Après avoir spécifié 100 quelles sont les caractéristiques du système SoC voulu, deux types de blocs doivent être conçus. Les premiers sont les blocs dédiés et les seconds les blocs eFPGA.  After specifying 100 what are the characteristics of the desired SoC system, two types of blocks must be designed. The first are the dedicated blocks and the second are the eFPGA blocks.

Pour concevoir des blocs dédiés dans un SoC, une description fonctionnelle synthétisable 101 desdits blocs doit être produite. Pour cela, un langage de description matérielle HDL, acronyme venant de l'expression anglo-saxonne « Hardware Description Langage >> est utilisé. Des exemples couramment utilisés de tels langages sont les langages VHDL et Verilog. Les langages HDL sont utilisés habituellement pour décrire le fonctionnement attendu des blocs dédiés et permettre leur traduction en un assemblage de portes logiques, cet assemblage de portes logiques étant obtenu à l'aide d'un outil de synthèse 102. Plus précisément, le résultat de la synthèse correspond à une liste d'interconnections de portes logiques 103, ladite liste étant présentée habituellement sous la forme d'un fichier désigné par l'expression anglo-saxonne « netlist gate ». Ce fichier correspond à une liste contenant l'ensemble des portes logiques élémentaires à utiliser pour la mise en œuvre des blocs dédiés du SoC ainsi que des informations sur la manière dont ces portes sont connectées les unes aux autres.  To design dedicated blocks in a SoC, a synthesizable functional description 101 of said blocks must be produced. For this, a hardware description language HDL, acronym from the English expression "Hardware Description Language" is used. Commonly used examples of such languages are the VHDL and Verilog languages. The HDL languages are usually used to describe the expected operation of the dedicated blocks and allow their translation into a logical gate assembly, this logical gate assembly being obtained using a synthesis tool 102. More precisely, the result of the synthesis corresponds to a list of interconnections of logic gates 103, said list being usually presented in the form of a file designated by the English expression "netlist gate". This file corresponds to a list containing all the basic logic gates to be used for the implementation of the dedicated SoC blocks as well as information on how these doors are connected to each other.

Pour ce qui concerne la conception du circuit eFPGA, le concepteur doit produire une description matérielle 104 du circuit puis utiliser un outil de génération 105 de manière à générer à partir de la description matérielle une liste d'interconnexion de transistors 106, ladite liste étant présentée habituellement sous la forme d'un fichier désigné par l'expression anglo-saxonne « transistor netlist ». Un fichier géométrique est également obtenu. L'outil de génération permettant d'obtenir ces fichiers est habituellement dédié à la conception de circuit eFPGA. Il permet d'obtenir en plus de la liste de transistors et du fichier géométrique un modèle de simulation. Cependant, ce modèle de simulation est limité car il ne prend pas en compte tous les phénomènes physiques liés à l'implémentation du circuit eFPGA sur le système mono-puce SoC. Un tel modèle de simulation imparfait est néanmoins utilisé pour valider le système avant la génération physique de la puce. With regard to the design of the eFPGA circuit, the designer must produce a hardware description 104 of the circuit and then use a generation tool 105 so as to generate from the hardware description an interconnection list of transistors 106, said list being presented usually in the form of a file referred to by the expression Anglo-Saxon "netlist transistor". A geometric file is also obtained. The generation tool to obtain these files is usually dedicated to eFPGA circuit design. It makes it possible to obtain in addition to the list of transistors and the geometrical file a simulation model. However, this simulation model is limited because it does not take into account all the physical phenomena related to the implementation of the eFPGA circuit on the SoC single chip system. Such an imperfect simulation model is nevertheless used to validate the system before the physical generation of the chip.

II apparaît donc qu'une première série d'opérations de conception It therefore appears that a first series of design operations

109, et une seconde série d'opérations de conception 1 10 sont nécessaires pour obtenir un SoC intégrant un circuit eFPGA, ces séries d'opérations étant appelées flots de conception. Les opérations requises pour la mise en œuvre des deux flots sont conduites indépendamment les unes des autres. Le premier flot 109 utilisé pour la synthèse des blocs dédiés est appelé flot de conception classique dans la suite de la description, le terme classique étant utilisé car ce type de flot est similaire à celui utilisé lors de la conception de circuits ASIC. Le second flot 1 10 est appelé flot eFPGA. 109, and a second series of design operations 1 10 are required to obtain a SoC integrating an eFPGA circuit, these series of operations being called design flows. The operations required for the implementation of the two streams are conducted independently of each other. The first stream 109 used for the synthesis of the dedicated blocks is called a flow of conventional design in the remainder of the description, the conventional term being used because this type of flow is similar to that used in the design of ASIC circuits. The second stream 1 10 is called the eFPGA stream.

Les listes 103, 106 obtenues par la mise en œuvre des flots classique 109 et eFPGA 1 10 sont ensuite utilisées à un autre stade de la conception dans le but d'obtenir une image de la puce à fondre, cette image étant mémorisée dans des fichiers appelés fichiers géométriques 106, 1 12, appelé aussi fichier « layout >> en langue anglaise.  The lists 103, 106 obtained by the implementation of the conventional streams 109 and eFPGA 1 10 are then used at another stage of the design in order to obtain an image of the chip to be melted, this image being stored in files called geometric files 106, 1 12, also called "layout" file in English language.

Un inconvénient de cette approche est que deux flots indépendants 109, 1 10 sont requis. Les concepteurs doivent donc décider dès la phase de spécification du système mono-puce 100 de la répartition des fonctions requises pour la mise en œuvre de la ou des applications ciblées. En effet, les fonctions nécessaires à la mise en œuvre de l'application choisie peuvent être implémentées soit dans des blocs dédiés, soit dans des circuits eFPGA. A titre d'exemple, un SoC sera obtenu par la mise en œuvre d'un premier sous-ensemble de fonctions dans un bloc dédié et d'un second-sous ensemble de fonctions dans un bloc eFGPA.  A disadvantage of this approach is that two independent streams 109, 1 10 are required. Designers must therefore decide as early as the specification phase of the single-chip system 100 of the distribution of functions required for the implementation of the targeted application or applications. Indeed, the functions necessary for the implementation of the chosen application can be implemented either in dedicated blocks or in eFPGA circuits. By way of example, a SoC will be obtained by implementing a first subset of functions in a dedicated block and a second-subset of functions in an eFGPA block.

Un autre inconvénient de cette approche est qu'un certain nombre d'erreurs ne peuvent être détectés qu'une fois la puce fondue. Cela est du notamment aux imperfections du modèle de simulation du bloc eFPGA obtenus à l'aide de l'outil de génération 105 et à la réalisation de fichiers géométriques 106, 1 12 avec deux processus indépendantes 105, 107. Ces erreurs détectées tardivement ont pour conséquences une augmentation significative du temps et du coût de développement du système SoC car il est alors nécessaire de corriger les modèles HDL des blocs dédiés à générer puis de synthétiser de nouveaux fichiers netlist dans le but de corriger ces erreurs puis de fondre une nouvelle puce pour la tester. Another disadvantage of this approach is that a number of errors can only be detected once the chip has melted. This is particularly due to the imperfections of the eFPGA block simulation model obtained with the aid of the generation tool 105 and with the production of geometric files 106, 1 12 with two independent processes 105, 107. These late detected errors result in a significant increase in the time and cost of developing the system. SoC because it is then necessary to correct the HDL models of the dedicated blocks to generate and synthesize new netlist files in order to correct these errors and then to melt a new chip to test it.

Un but de l'invention est notamment de pallier les inconvénients précités. An object of the invention is in particular to overcome the aforementioned drawbacks.

A cet effet l'invention a pour objet un système mono-puce comportant au moins un cœur programmable synthétisable CPS et un bloc dédié. Le cœur CPS et le bloc dédié ont été synthétisés ensemble à partir d'une part d'un modèle en langage de description matérielle HDL du bloc dédié et d'autre part d'un modèle HDL du cœur CPS associé à un fichier de configuration par défaut.  For this purpose, the subject of the invention is a single-chip system comprising at least one CPS synthesizable programmable core and a dedicated block. The CPS core and the dedicated block were synthesized together on the one hand from a model in the HDL hardware description language of the dedicated block and on the other hand from an HDL model of the CPS core associated with a configuration file by default.

Selon un aspect de l'invention, le modèle HDL et le fichier de configuration par défaut du cœur CPS ont été générés à partir d'un modèle HDL initial correspondant à un bloc non programmable. Le modèle HDL du cœur CPS associé à son fichier de configuration par défaut est équivalent fonctionnellement au modèle HDL initial.  According to one aspect of the invention, the HDL model and the default configuration file of the CPS core have been generated from an initial HDL model corresponding to a non-programmable block. The HDL model of the CPS core associated with its default configuration file is functionally equivalent to the original HDL model.

Selon un autre aspect de l'invention, le fichier de configuration par défaut est obtenu par compilation du résultat de la synthèse du modèle HDL initial, l'architecture du cœur CPS étant prise en compte par la compilation.  According to another aspect of the invention, the default configuration file is obtained by compiling the result of the synthesis of the initial HDL model, the architecture of the CPS core being taken into account by the compilation.

Le cœur CPS est synthétisé, par exemple, en utilisant une bibliothèque de cellules standard communément utilisée pour la synthèse de circuits ASIC.  The CPS core is synthesized, for example, using a standard cell library commonly used for ASIC synthesis.

Dans un mode de réalisation, des éléments mémoire sont utilisés pour la programmation du cœur CPS. Un signal d'initialisation met les éléments mémoire dans un état connu, ledit signal d'initialisation étant adapté de manière à ce que les états connus des éléments mémoire correspondent aux valeurs comprises dans le fichier de configuration par défaut.  In one embodiment, memory elements are used for programming the CPS core. An initialization signal places the memory elements in a known state, said initialization signal being adapted so that the known states of the memory elements correspond to the values included in the default configuration file.

Le signal d'initialisation est par exemple adapté par retro- annotation du modèle HDL du cœur CPS afin de faire correspondre chaque information du fichier de configuration par défaut à une mise à 1 ou à une mise à 0 d'un élément mémoire. The initialization signal is for example adapted by retro-annotation of the HDL model of the CPS core in order to match each the default configuration file information when the memory element is set to 1 or reset.

Les éléments mémoire sont, par exemple, des bascules D.  The memory elements are, for example, D flip-flops.

Selon un mode de réalisation, le signal d'initialisation est routé vers les entrées de données des bascules D.  According to one embodiment, the initialization signal is routed to the data inputs of flip-flops D.

Selon un autre mode de réalisation, le signal d'initialisation est routé vers les entrées SET ou RESET des bascules D.  According to another embodiment, the initialization signal is routed to the SET or RESET inputs of the D flip-flops.

Les bascules D sont par exemple choisies avec une entrée de forçage à 0 ou avec une entrée de forçage à 1 de manière à ce que lesdites bascules soient initialisées en chargeant les valeurs leurs étant associées dans le fichier de configuration par défaut.  The D flip-flops are for example chosen with a forcing input at 0 or with a forcing input at 1 so that said flip-flops are initialized by loading the values associated with them in the default configuration file.

Par exemple, le cœur CPS associé à son fichier de configuration met en œuvre un contrôleur de mémoire.  For example, the CPS core associated with its configuration file implements a memory controller.

L'invention a aussi un procédé de fabrication d'un système mono- chip tel que décrit précédemment. Le procédé comprend une étape de génération d'un modèle en langage de description matérielle HDL d'un cœur programmable synthétisable CPS devant mettre en œuvre des fonctions décrites à l'aide d'un modèle HDL initial, une étape de génération d'un fichier de configuration par défaut du cœur CPS par synthèse et compilation du modèle HDL initial, une étape de synthèse du cœur CPS et du bloc dédié en utilisant un même outil de synthèse, une étape de génération d'un fichier géométrique à partir du résultat de la synthèse et une étape de fonte du système mono-puce en utilisant ledit fichier géométrique.  The invention also has a method for manufacturing a single-chip system as described above. The method comprises a step of generating a model in HDL hardware description language of a CPS synthesizable programmable core to implement functions described using an initial HDL model, a step of generating a file default configuration of the CPS core by synthesis and compilation of the initial HDL model, a step of synthesis of the CPS core and the dedicated block using the same synthesis tool, a step of generating a geometric file from the result of the synthesis and a step of casting the single chip system using said geometric file.

Selon un aspect de l'invention, la synthèse est effectuée en utilisant une bibliothèque de cellules standard communément utilisée pour la synthèse de circuits ASIC.  According to one aspect of the invention, the synthesis is performed using a standard cell library commonly used for synthesizing ASICs.

Le modèle HDL et le fichier de configuration par défaut du cœur CPS ont été générés à partir d'un modèle HDL initial correspondant à un bloc non programmable de manière à ce que le modèle HDL du cœur CPS associé à son fichier de configuration par défaut soient équivalent fonctionnellement au modèle HDL initial.  The HDL template and the default CPS core configuration file were generated from an initial HDL template corresponding to a non-programmable block so that the HDL model of the CPS core associated with its default configuration file is functionally equivalent to the initial HDL model.

D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit donnée à titre illustratif et non limitatif, faite en regard des dessins annexés parmi lesquels : la figure 1 représente de manière simplifiée les étapes de conception d'un système SoC comportant un circuit eFPGA; la figure 2 présente un exemple de système mono-puce selon l'invention ; Other features and advantages of the invention will become apparent with the aid of the following description given by way of non-limiting illustration, with reference to the appended drawings in which: FIG. 1 is a simplified representation of the design steps of a SoC system comprising an eFPGA circuit; FIG. 2 shows an example of a single-chip system according to the invention;

la figure 3 illustre une première phase de conception permettant d'obtenir une description en langage de description matérielle d'un cœur CPS ainsi que son fichier de configuration ;  FIG. 3 illustrates a first design phase making it possible to obtain a description in hardware description language of a CPS core as well as its configuration file;

- la figure 4 illustre la manière dont un système SoC selon l'invention peut être obtenu à partir du modèle HDL d'un cœur CPS et de son fichier de configuration ;  FIG. 4 illustrates how a SoC system according to the invention can be obtained from the HDL model of a CPS core and its configuration file;

la figure 5 illustre la manière dont un système SoC comprenant un cœur programmable synthétisable CPS peut être paramétré par défaut.  FIG. 5 illustrates how a SoC system comprising a CPS synthesizable programmable core can be set by default.

La figure 2 présente un exemple de système mono-puce 200 selon l'invention. Cet exemple de système SoC comprend quatre blocs dédiés 201 , 202, 203, 207 ainsi que trois blocs appelés blocs durs 204, 205, 206. FIG. 2 shows an example of a single-chip system 200 according to the invention. This example SoC system comprises four dedicated blocks 201, 202, 203, 207 and three blocks called hard blocks 204, 205, 206.

Les blocs durs 204, 205, 206 correspondent à des blocs mettant en œuvre des fonctions communément utilisées dans les circuits intégrés, comme par exemple des mémoires, des circuits d'interface entrées-sorties ou bien des PLL, acronyme venant de l'expression anglo-saxonne « Phase Locked Loop ».  The hard blocks 204, 205, 206 correspond to blocks implementing functions commonly used in integrated circuits, such as memories, input-output interface circuits or PLLs, acronym from the English expression. -shows "Phase Locked Loop".

Le système comporte en outre une zone dans laquelle apparaît un bloc dédié 207 ainsi que deux cœurs programmables synthétisables CPS 208, 209. Un cœur CPS 208, 209 est associé à au moins un fichier de configuration mémorisé en interne au SoC ou bien dans une mémoire externe. Un tel fichier permet de programmer précisément un cœur CPS après que la puce du système mono-cœur ait été fondue.  The system further comprises an area in which appears a dedicated block 207 and two CPS synthesizable programmable cores 208, 209. A CPS heart 208, 209 is associated with at least one configuration file internally stored in the SoC or in a memory external. Such a file makes it possible to precisely program a CPS core after the chip of the mono-core system has been melted.

Les blocs dédiés 201 , 202, 203 ayant leurs propres fonctionnalités peuvent être implémentés à l'aide de modèles HDL déjà utilisés pour implémenter des blocs dédiés validés dans la cadre d'autres SoC. Les concepteurs peuvent ainsi choisir de les réutiliser directement, les risques d'erreurs résultant de l'implémentation de ces blocs étant limités. The dedicated blocks 201, 202, 203 having their own functionalities can be implemented using HDL models already used to implement dedicated blocks validated in the context of other SoCs. The designers can choose to reuse them directly, the risks of errors resulting from the implementation of these blocks being limited.

La problématique est différente par exemple lorsque des fonctionnalités nouvelles doivent être introduites dans le SoC. Dans ce cas, une solution de type eFPGA peut être choisie. De cette façon, les fonctionnalités nouvelles sont reprogrammables après que le SoC ait été fondu. Dans le cadre de l'invention, une solution nouvelle et innovante est proposée. Un SoC selon l'invention comprend un ou plusieurs cœurs programmables synthétisables CPS 208, 209. Une partie des fonctionnalités nouvelles à mettre en œuvre dans le SoC y est allouée, et le fait que ces cœurs soient programmables permet la correction d'erreurs même après la production de la puce par modification d'un fichier de configuration. Si le SoC est utilisé pour différentes versions d'un produit, les fonctionnalités mises en œuvre au niveau des cœurs CPS peuvent aussi être adaptées d'un produit à l'autre en modifiant le fichier de configuration.  The problem is different, for example when new functionalities have to be introduced in the SoC. In this case, an eFPGA type solution can be chosen. In this way, the new features are reprogrammable after the SoC has been melted. In the context of the invention, a new and innovative solution is proposed. A SoC according to the invention comprises one or more programmable synthesizable CPS cores 208, 209. Part of the new functionalities to be implemented in the SoC is allocated thereto, and the fact that these cores are programmable makes it possible to correct errors even after the production of the chip by modifying a configuration file. If the SoC is used for different versions of a product, the features implemented at CPS cores can also be adapted from one product to another by modifying the configuration file.

Avantageusement, la logique programmable d'un cœur CPS est optimisée pour pouvoir réaliser un ensemble donné de fonctions de nature connue a priori par le concepteur. A titre d'exemple, si un cœur CPS doit mettre en œuvre un contrôleur de mémoire, les ressources caractéristiques d'un processeur sont inutiles et ne seront pas comprises dans les éléments physiques composant le cœur. En d'autres termes, un cœur CPS est un bloc semi-dédié, ce qui diffère des circuits de type FPGA et eFPGA dont les architectures sont mises au point afin de répondre à n'importe quel besoin. Les FPGA et eFPGA sont par conséquent souvent surdimensionnés, ce qui n'est pas le cas des cœurs CPS.  Advantageously, the programmable logic of a CPS core is optimized to be able to achieve a given set of functions of a nature known a priori by the designer. For example, if a CPS core needs to implement a memory controller, the characteristic resources of a processor are useless and will not be included in the physical elements making up the core. In other words, a CPS core is a semi-dedicated block, which differs from FPGA and eFPGA type circuits whose architectures are developed to meet any need. FPGAs and eFPGAs are therefore often oversized, which is not the case for CPS cores.

Les figure 3 et figures 4 présentent de manière simplifiée les deux phases de conception permettant d'obtenir un système SoC selon l'invention. FIGS. 3 and 4 show in a simplified manner the two design phases making it possible to obtain a SoC system according to the invention.

La figure 3 illustre une première phase de conception permettant d'obtenir un modèle HDL 307 d'un cœur CPS, c'est-à-dire une description en langage de description matérielle de ce cœur 306, ainsi que son fichier de configuration 305.  FIG. 3 illustrates a first design phase making it possible to obtain an HDL model 307 of a CPS core, that is to say a description in the hardware description language of this core 306, as well as its configuration file 305.

Dans cet exemple, les concepteurs ont choisi de mettre en œuvre une application 300 dans laquelle un premier ensemble de fonctions A est destiné à être embarqué dans un bloc dédié. Un deuxième ensemble B de fonctions est divisé en deux sous-ensembles de fonctions B1 et B2. Le sous- ensemble de fonctions B1 est destiné à être embarqué dans un bloc dédié et le sous-ensemble de fonctions B2 est destiné à être embarqué dans un cœur CPS. In this example, the designers have chosen to implement an application 300 in which a first set of functions A is intended to be embedded in a dedicated block. A second set B of functions is divided into two subsets of functions B1 and B2. The subset of functions B1 is intended to be embedded in a dedicated block and the subset of functions B2 is intended to be embedded in a CPS core.

Une première étape a pour finalité la description de ces ensembles de fonctions en langage de description matérielle 300. Un modèle HDL est obtenu pour chacun d'eux.  A first step has the purpose of describing these sets of functions in hardware description language 300. An HDL model is obtained for each of them.

Une succession d'étape est ensuite appliquée pour obtenir à partir d'un modèle HDL initial 307 du sous-ensemble B2 un modèle HDL du cœur CPS ainsi que son fichier de configuration par défaut.  A succession of steps is then applied to obtain from an initial HDL model 307 of the subset B2 an HDL model of the CPS core and its default configuration file.

Dans un premier temps, l'architecture du cœur CPS doit être déterminée 301 . Celle-ci peut être décrite par le concepteur, par exemple en utilisant des logiciels adaptés. Il est aussi possible de générer cette architecture automatiquement ou de la sélectionner parmi différentes architectures de cœurs CPS possibles comprises dans une bibliothèque. L'architecture d'un cœur CPS peut aussi être affinée pour des besoins spécifiques par l'utilisation de modules ou de fonctions spécialisées.  At first, the architecture of the CPS core must be determined 301. This can be described by the designer, for example using appropriate software. It is also possible to generate this architecture automatically or to select it from among different possible CPS core architectures included in a library. The architecture of a CPS core can also be refined for specific needs through the use of specialized modules or functions.

L'architecture du cœur CPS est décrite par un langage de description matérielle. D'autre part, le modèle le sous-ensemble de fonctions B2 est synthétisé 303 à partir du modèle HDL initial 307 en prenant en compte 308 l'architecture du cœur CPS. Le résultat de cette synthèse est compilé 304 de manière à produire un fichier de configuration par défaut 305 du cœur CPS. Un outil de compilation spécifique est alors requis comme par exemple un outil classique de compilation pour FPGA ou eFPGA. La combinaison du modèle HDL 306 du cœur CPS et de son fichier de configuration par défaut 305 est alors équivalente fonctionnellement au modèle HDL d'un bloc non programmable d'origine 307 du sous-ensemble de fonctions B2 appelé aussi modèle HDL initial, et peut être utilisée dans un flot de synthèse classique.  The architecture of the CPS core is described by a hardware description language. On the other hand, the B2 function subset model is synthesized 303 from the initial HDL model 307 taking into account the architecture of the CPS core. The result of this synthesis is compiled 304 so as to produce a default configuration file 305 of the CPS core. A specific compilation tool is then required such as a conventional compilation tool for FPGA or eFPGA. The combination of the HDL 306 model of the CPS core and its default configuration file 305 is then functionally equivalent to the HDL model of an original non-programmable block 307 of the subset of B2 functions also called the initial HDL template, and can to be used in a classical synthesis flow.

La figure 4 illustre la manière dont un système SoC selon l'invention peut être obtenu à partir du modèle HDL et de son fichier de configuration. Figure 4 illustrates how a SoC system according to the invention can be obtained from the HDL model and its configuration file.

L'équivalence fonctionnelle entre le modèle HDL initial 307 non programmable du sous-ensemble de fonction à mettre en œuvre sur le cœur CPS, c'est-à-dire le sous-ensemble B2 dans cet exemple, et l'ensemble composé du modèle HDL dudit cœur 306, 402 associé à son fichier de configuration par défaut 305, 401 est essentielle pour la conception d'un SoC selon l'invention. The functional equivalence between the initial non-programmable 307 HDL model of the functional subset to be implemented on the core CPS, i.e., the subset B2 in this example, and the set consisting of the HDL template of said core 306, 402 associated with its default configuration file 305, 401 is essential for the design of a SoC according to the invention.

Cette équivalence va au-delà de celle obtenue quand un eFPGA est utilisé. En effet, en plus d'avoir la même fonctionnalité logique, le modèle HDL initial et l'ensemble composé du modèle HDL du cœur et de son fichier de configuration par défaut peuvent être permutés aisément à l'intérieur du flot de synthèse. La partie physique du SoC mettant en œuvre le sous- ensemble de fonction est différente selon que l'une ou l'autre alternative est choisie. En particulier, la surface de silicium sera différente. Cependant, le modèle HDL initial et l'ensemble composé du modèle HDL du cœur CPS associé à son fichier de configuration sont tous deux synthétisables par les mêmes outils. Cela a notamment comme avantage d'éviter la mise en œuvre d'une étape d'intégration supplémentaire quand on décide d'une telle permutation.  This equivalence goes beyond that obtained when an eFPGA is used. In fact, in addition to having the same logical functionality, the initial HDL model and the set composed of the HDL model of the core and its default configuration file can be easily exchanged inside the synthesis stream. The physical part of the SoC implementing the subset of function is different depending on whether one or the other alternative is chosen. In particular, the silicon surface will be different. However, the initial HDL model and the composite set of the CPS core HDL model associated with its configuration file are both synthesizable by the same tools. This has the particular advantage of avoiding the implementation of an additional integration step when deciding on such a permutation.

Lorsque le modèle HDL 402 du cœur CPS et son fichier de configuration 401 ont été générés, ils peuvent être synthétisés 404 en même temps que le modèle HDL du sous-ensemble B1 de fonctions et du modèle HDL de l'ensemble A de fonctions. Après la synthèse logique 404, un fichier de géométrie 406 peut être généré 405 en utilisant un outil classique et le système SoC 408 comprenant un cœur programmable synthétisable peut être fondu 407.  When the HDL 402 model of the CPS core and its configuration file 401 have been generated, they can be synthesized 404 together with the HDL model of the functional subset B1 and the HDL model of the function set A. After logical synthesis 404, a geometry file 406 may be generated 405 using a conventional tool and the SoC system 408 comprising a synthesizable programmable heart may be merged 407.

Dans le cas où la synthèse de cœur CPS est mise en œuvre à l'aide d'une bibliothèque de cellules standard, l'équivalence est valable à travers tout le processus de conception, y compris pour le placement et le routage, c'est-à-dire pour l'étape de génération de fichier géométrique. Le système SoC peut alors être mis en œuvre en utilisant n'importe quelle technologie de fabrication de circuits intégrés.  In the case where the CPS core synthesis is implemented using a standard cell library, the equivalence is valid throughout the entire design process, including for placement and routing, it is for the geometrical file generation step. The SoC system can then be implemented using any integrated circuit manufacturing technology.

La figure 5 illustre la manière dont un système SoC comprenant un cœur programmable synthétisable CPS peut être configuré par défaut. Un SoC selon l'invention est un compromis entre un SoC comprenant un eFGPA et un SoC ne comprenant que des blocs dédiés. En d'autres termes, un SoC selon l'invention est un système semi-dédié. Ces systèmes sont donc utiles pour la mise en œuvre d'une ou plusieurs applications données, le ou les cœurs CPS permettant de programmer certaines des fonctions utilisées par ces applications. Comme explicité précédemment, il y a équivalence fonctionnelle entre le modèle HDL initial et le modèle HDL du cœur CPS associé à son fichier de configuration par défaut. Figure 5 illustrates how a SoC system comprising a CPS synthesizable programmable core can be configured by default. A SoC according to the invention is a compromise between a SoC comprising an eFGPA and a SoC comprising only dedicated blocks. In other words, a SoC according to the invention is a semi-dedicated system. These systems are therefore useful for the implementation of one or more given applications, the CPS heart or hearts for programming some of the functions used by these applications. As explained above, there is functional equivalence between the initial HDL model and the HDL model of the CPS core associated with its default configuration file.

Pour l'acquéreur d'un système SoC selon l'invention, il peut être utile que celui-ci soit directement utilisable sans avoir à le programmer, tout en laissant la possibilité de paramétrer finement plus tard un sous-ensemble de fonctions. Pour cela, un mode de réalisation avantageux d'un tel système SoC selon l'invention comprend une technologie lui permettant de se configurer par défaut au moment de sa mise sous tension.  For the purchaser of a SoC system according to the invention, it may be useful for it to be directly usable without having to program it, while leaving the possibility of fine-tuning later a subset of functions. For this, an advantageous embodiment of such a SoC system according to the invention comprises a technology that allows it to be configured by default when it is powered up.

Pour rappel, pour pouvoir fonctionner les circuits FPGA et eFPGA doivent charger les bits contenus dans un fichier de configuration au niveau de points de mémoire internes à ces circuits, appelés points mémoire dans le suite de la description. Ces points mémoire sont programmés séquentiellement à partir du fichier de configuration habituellement mémorisé sur un support de stockage externe au circuit à programmer. Cette approche est classique lorsque des circuits FPGA ou eFPGA sont utilisés, car leur configuration n'est pas ou n'a pas besoin d'être connue au moment de leur fabrication. Une fois que le fichier de configuration a été déterminé, à la mise sous tension du système utilisant un FPGA ou un eFPGA les bits dudit fichier de configuration sont chargés. Cette opération n'est pas instantanée. De plus, un FPGA ou un eFPGA n'est pas disponible avec une configuration par défaut.  As a reminder, to be able to function the FPGA and eFPGA circuits must load the bits contained in a configuration file at memory points internal to these circuits, called memory points in the following description. These memory points are sequentially programmed from the configuration file usually stored on a storage medium external to the circuit to be programmed. This approach is typical when FPGA or eFPGA circuits are used because their configuration is not or does not need to be known at the time of their manufacture. Once the configuration file has been determined, when the system using an FPGA or an eFPGA is turned on, the bits of the configuration file are loaded. This operation is not instantaneous. In addition, an FPGA or an eFPGA is not available with a default configuration.

Le système mono-chip selon l'invention permet avantageusement de contenir une configuration par défaut du ou des cœurs CPS sans que l'acquéreur d'un tel système n'ait à réaliser une quelconque opération de programmation. Pour cela, deux alternatives sont décrites ci-après.  The mono-chip system according to the invention advantageously allows to contain a default configuration of the CPS or cores without the purchaser of such a system having to perform any programming operation. For this, two alternatives are described below.

Toujours à titre de rappel, un signal d'initialisation est habituellement utilisé dans les circuits intégrés pour mettre des éléments mémoire de type bascule dans un état connu. Ce signal est habituellement généré à l'extérieur du circuit et est appelé signal d'initialisation. Par défaut, le signal d'initialisation charge la valeur 0 dans tous les éléments.  Still as a reminder, an initialization signal is usually used in integrated circuits to put toggle memory elements in a known state. This signal is usually generated outside the circuit and is called the initialization signal. By default, the initialization signal loads 0 in all elements.

Une première manière pour charger la configuration par défaut automatiquement est de modifier ce signal d'initialisation de sorte que celui-ci ne charge pas uniquement des 0 dans les éléments 501 permettant de programmer les cellules 500 du cœur CPS, mais des 0 et des 1 en conformité avec les valeurs du fichier de configuration par défaut. L'effet produit par le signal d'initialisation est adapté au moment de l'écriture du modèle HDL du cœur CPS. Pour cela, après génération du modèle HDL du cœur CPS ainsi que son fichier de configuration, le modèle HDL est retro- annoté afin de faire correspondre chaque information du fichier de configuration par défaut à une mise à 1 ou à une mise à 0 d'un point mémoire du cœur CPS lorsque le signal d'initialisation est appliqué. A first way to load the default configuration automatically is to modify this initialization signal so that it does not load only 0s in elements 501 for programming cells 500 of the CPS core, but 0's and 1's in accordance with the values of the default configuration file. The effect produced by the initialization signal is adapted at the time of writing of the HDL model of the CPS core. For that, after generation of the HDL model of the CPS core as well as its configuration file, the HDL model is retro-annotated in order to match each information of the default configuration file with a setting to 1 or a setting of 0. a memory point of the CPS heart when the initialization signal is applied.

Le signal d'initialisation peut être dérivé du signal d'initialisation classique d'un SoC, d'un autre signal ou d'une combinaison entre ce signal d'initialisation et un autre signal. De plus, cette technique de prise en compte de la configuration par défaut au niveau du signal d'initialisation permet avantageusement une simulation complète du fonctionnement du système SoC à partir des modèles HDL du cœur CPS et des autres modèles HDL associés aux blocs dédiés et aux blocs durs.  The initialization signal may be derived from the conventional initialization signal of a SoC, another signal or a combination between this initialization signal and another signal. Moreover, this technique of taking into account the default configuration at the level of the initialization signal advantageously allows a complete simulation of the operation of the SoC system from the HDL models of the CPS core and the other HDL models associated with the dedicated blocks and the hard blocks.

Une manière alternative de charger la configuration par défaut du cœur CPS automatiquement est de modifier la nature des éléments mémoire 501 choisis. Lors de la conception d'un système SoC selon l'invention, des bibliothèques de cellules standards sont utilisées au moment de la synthèse. Ces bibliothèques permettent la mise en œuvre d'au moins deux types d'éléments mémorisant. Un premier type d'élément est la bascule D sur état appelée aussi « latch >> en anglais et un deuxième type d'élément est la bascule D sur front appelée aussi bascule « flip-flop ». Une bascule D sur état prend moins de place sur un SoC qu'une bascule D sur front. Le choix entre ces deux types d'éléments mémoire est fait habituellement au moment de écriture du modèle HDL. Après la synthèse, il reste cependant possible de modifier des bascules choisies pour la prise en compte des valeurs du fichier de configuration. La modification après synthèse consiste en un remplacement de bascules D avec une entrée de forçage à 0 RESET par une bascule D avec une entrée de forçage à 1 SET ou l'inverse en fonction de la valeur correspondant du fichier de configuration, le signal d'initialisation étant par exemple connecté à cette entrée. Cette modification peut être mise en œuvre en mettant à jour manuellement ou à l'aide d'un logiciel adapté le fichier « netlist gâte >> généré à partir des modèles HDL du SoC. Il reste possible de re-programmer le SoC en utilisant le mode de programmation classique d'un circuit programmable, c'est-à-dire en chargeant les bits d'un fichier de configuration 502 différent du fichier de configuration par défaut par la voie de donnée normale 504 des éléments mémoires, par exemple en utilisant l'entrée D d'une bascule D. An alternative way of loading the default configuration of the CPS core automatically is to change the nature of the selected memory elements 501. In designing a SoC system according to the invention, standard cell libraries are used at the time of synthesis. These libraries allow the implementation of at least two types of memorizing elements. A first type of element is the latch D on state also called "latch" in English and a second type of element is the D flip-flop on front also called "flip-flop" flip-flop. A state D flip-flop takes up less space on a SoC than a front-end D flip-flop. The choice between these two types of memory elements is usually made at the time of writing the HDL model. After the synthesis, however, it remains possible to modify selected flip-flops for taking into account the values of the configuration file. The modification after synthesis consists of a replacement of flip-flops D with a forcing input at 0 RESET by a flip-flop D with a forcing input at 1 SET or the inverse according to the corresponding value of the configuration file, the signal of initialization being for example connected to this input. This modification can be implemented by manually updating or using a suitable software file "netlist pamper" generated from HDL models SoC. It remains possible to re-program the SoC using the conventional programming mode of a programmable circuit, that is to say by loading the bits of a configuration file 502 different from the default configuration file by the channel. of normal data 504 of the memory elements, for example by using the input D of a flip-flop D.

L'une des techniques de configuration par défaut peut être appliquée à tout ou partie d'un cœur CPS. Cela permet avantageusement au concepteur de ne pas divulguer la totalité du fichier de configuration par défaut.  One of the default configuration techniques can be applied to all or part of a CPS core. This advantageously allows the designer not to disclose the entire default configuration file.

Claims

REVENDICATIONS Système mono-puce (200, 408) caractérisé en ce qu'il comporte au moins un cœur programmable synthétisable CPS (208, 209) et un bloc dédié (201 , 202, 203, 207), ledit cœur CPS et ledit bloc dédié ayant été synthétisés ensemble à partir d'une part d'un modèle en langage de description matérielle HDL du bloc dédié (201 , 202, 203, 207) et d'autre part d'un modèle en langage de description matérielle d'un modèle HDL du cœur CPS (306, 402) associé à un fichier de configuration par défaut (305, 401 ). Single-chip system (200, 408) characterized in that it comprises at least one CPS synthesizable programmable core (208, 209) and a dedicated block (201, 202, 203, 207), said CPS core and said dedicated block having were synthesized together from a model in HDL hardware description language of the dedicated block (201, 202, 203, 207) and from a model in hardware description language of an HDL model CPS core (306, 402) associated with a default configuration file (305, 401). Système mono-puce (200, 408) selon la revendication 1 dans lequel le modèle HDL (306) et le fichier de configuration par défaut (305) du cœur CPS ont été générés à partir d'un modèle HDL initial (307) correspondant à un bloc non programmable, le modèle HDL du cœur CPS (306) associé à son fichier de configuration par défaut (305) étant équivalent fonctionnellement au modèle HDL initial (307). A single chip system (200, 408) according to claim 1 wherein the HDL model (306) and the default configuration file (305) of the CPS core have been generated from an initial HDL template (307) corresponding to a non-programmable block, the HDL model of the CPS core (306) associated with its default configuration file (305) being functionally equivalent to the initial HDL model (307). Système mono-puce (200, 408) selon l'une des revendications 1 ou 2 dans lequel le fichier de configuration par défaut est obtenu par compilation (304) du résultat de la synthèse (303) du modèle HDL initial (307), l'architecture du cœur CPS étant prise en compte (308) par la compilation (304). Single-chip system (200, 408) according to one of claims 1 or 2 wherein the default configuration file is obtained by compiling (304) the result of the synthesis (303) of the initial HDL model (307), l architecture of the CPS core being taken into account (308) by the compilation (304). Système mono-puce (200, 408) selon l'une quelconque des revendications précédentes dans lequel le cœur CPS est synthétisé en utilisant une bibliothèque de cellules standard communément utilisée pour la synthèse de circuits ASIC. A single-chip system (200, 408) as claimed in any one of the preceding claims wherein the CPS core is synthesized using a standard cell library commonly used for synthesizing ASICs. Système mono-puce (200, 408) selon l'une quelconque des revendications précédentes dans lequel des éléments mémoire (501 ) sont utilisés pour la programmation du cœur CPS, un signal d'initialisation mettant lesdits éléments (501 ) dans un état connu, ledit signal d'initialisation étant adapté de manière à ce que les états connus des éléments mémoire (501 ) correspondent aux valeurs comprises dans le fichier de configuration par défaut. A single-chip system (200, 408) according to any one of the preceding claims wherein memory elements (501) are used for programming the CPS core, an initialization signal putting said elements (501) in a known state, said initialization signal being adapted so that the states known memory elements (501) correspond to the values included in the default configuration file. Système mono-puce (200, 408) selon la revendication 5 dans lequel le signal d'initialisation est adapté par retro-annotation du modèle HDL du cœur CPS afin de faire correspondre chaque information du fichier de configuration par défaut à une mise à 1 ou à une mise à 0 d'un élément mémoire. A single-chip system (200, 408) according to claim 5 wherein the initialization signal is adapted by retro-annotation of the HDL model of the CPS core to match each information of the default configuration file to a setting of 1 or to a reset of a memory element. Système mono-puce (200, 408) selon l'une quelconque des revendications précédentes dans lequel les éléments mémoire (501 ) sont des bascules D. A single-chip system (200, 408) according to any one of the preceding claims wherein the memory elements (501) are flip-flops D. Système mono-puce (200, 408) selon la revendication 7 dans lequel le signal d'initialisation est routé vers les entrées de données des bascules D. A single chip system (200, 408) according to claim 7 wherein the initialization signal is routed to the data inputs of the D flip-flops. Système mono-puce (200, 408) selon la revendication 7 dans lequel le signal d'initialisation est routé vers les entrées SET ou RESET des bascules D. A single-chip system (200, 408) according to claim 7 wherein the initialization signal is routed to the SET or RESET inputs of the D flip-flops. 10- Système mono-puce (200, 408) selon l'une des revendications 7 à 9 dans lequel les bascules D sont choisies avec une entrée de forçage à 0 (RESET) ou avec une entrée de forçage à 1 (SET) de manière à ce que lesdites bascules soient initialisées en chargeant les valeurs leurs étant associées dans le fichier de configuration par défaut (305). 10- Single-chip system (200, 408) according to one of claims 7 to 9 wherein the flip-flops D are selected with a forcing input at 0 (RESET) or with a forcing input at 1 (SET) so said latches are initialized by loading their associated values into the default configuration file (305). 1 1 - Système mono-puce (200, 408) selon l'une quelconque des revendications précédentes dans lequel le cœur CPS associé à son fichier de configuration met en œuvre un contrôleur de mémoire. 1 1 - Single-chip system (200, 408) according to any one of the preceding claims wherein the CPS heart associated with its configuration file implements a memory controller. 12- Procédé de fabrication d'un système mono-chip selon l'une quelconques des revendications 1 à 1 1 comprenant les étapes suivantes : la génération (301 ) d'un modèle en langage de description matérielle HDL (306) d'un cœur programmable synthétisable CPS devant mettre en œuvre des fonctions décrites à l'aide d'un modèle HDL initial (307); 12- A method of manufacturing a single-chip system according to any one of claims 1 to 1 1 comprising the following steps: generating (301) an HDL hardware description language model (306) of a CPS synthesizable programmable core to implement functions described using an initial HDL template (307); la génération (302) d'un fichier de configuration par défaut (305) du cœur CPS (306) par synthèse (303) et compilation (304) du modèle HDL initial (307) ;  generating (302) a default configuration file (305) of the CPS core (306) by synthesizing (303) and compiling (304) the initial HDL template (307); la synthèse (404) du cœur CPS et du bloc dédié en utilisant un même outil de synthèse ;  synthesizing (404) the CPS core and the dedicated block using the same synthesis tool; la génération (405) d'un fichier géométrique (406) à partir du résultat de la synthèse ;  generating (405) a geometric file (406) from the result of the synthesis; la fonte (407) du système mono-puce en utilisant ledit fichier géométrique (406).  the font (407) of the single chip system using said geometric file (406). - Procédé selon la revendication 12 dans lequel la synthèse est effectuée en utilisant une bibliothèque de cellules standard communément utilisée pour la synthèse de circuits ASIC. The method of claim 12 wherein the synthesis is performed using a standard cell library commonly used for synthesis of ASICs. 14- Procédé selon l'une des revendications 12 ou 13 dans lequel le modèle HDL (306) et le fichier de configuration par défaut (305) du cœur CPS ont été générés à partir d'un modèle HDL initial (307) correspondant à un bloc non programmable de manière à ce que le modèle HDL du cœur CPS (306) associé à son fichier de configuration par défaut (305) soient équivalent fonctionnellement au modèle HDL initial (307). 14- Method according to one of claims 12 or 13 wherein the HDL model (306) and the default configuration file (305) of the CPS core have been generated from an initial HDL model (307) corresponding to a non-programmable block such that the HDL model of the CPS core (306) associated with its default configuration file (305) is functionally equivalent to the initial HDL model (307).
PCT/EP2012/053271 2011-03-11 2012-02-27 System-on-a-chip including a programmable synthesizable core, and method for making such a system Ceased WO2012123243A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1152017 2011-03-11
FR1152017A FR2972566B1 (en) 2011-03-11 2011-03-11 MONO-CHIP SYSTEM COMPRISING A SYNTHETICABLE PROGRAMMABLE HEART AND A METHOD OF MANUFACTURING SUCH A SYSTEM

Publications (1)

Publication Number Publication Date
WO2012123243A1 true WO2012123243A1 (en) 2012-09-20

Family

ID=44202116

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2012/053271 Ceased WO2012123243A1 (en) 2011-03-11 2012-02-27 System-on-a-chip including a programmable synthesizable core, and method for making such a system

Country Status (2)

Country Link
FR (1) FR2972566B1 (en)
WO (1) WO2012123243A1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3157172A1 (en) 2015-10-15 2017-04-19 Menta System and method for testing and configuration of an fpga
EP3157171A1 (en) 2015-10-15 2017-04-19 Menta Logic block architecture for programmable gate array
EP3355196A1 (en) 2017-01-27 2018-08-01 Menta Fpga and method of operation
EP3376669A1 (en) 2017-03-17 2018-09-19 Menta Fpga and method of fpga programming
WO2022149080A1 (en) 2021-01-08 2022-07-14 Menta System on chip architecture, interposer, fpga and method of design
TWI800702B (en) * 2019-12-11 2023-05-01 瑞昱半導體股份有限公司 Integrated circuit
EP4510030A1 (en) 2023-08-16 2025-02-19 Menta Logic device and system and methods for definition and configuration of a logic device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030163668A1 (en) * 1997-10-31 2003-08-28 Ethan Mirsky Local control of multiple context processing elements with configuration contexts
US20070011642A1 (en) * 2005-07-07 2007-01-11 Claus Pribbernow Application specific configurable logic IP
US20070294659A1 (en) * 2005-04-01 2007-12-20 Altera Corporation Methods for producing equivalent field-programmable gate arrays and structured application-specific integrated circuits

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030163668A1 (en) * 1997-10-31 2003-08-28 Ethan Mirsky Local control of multiple context processing elements with configuration contexts
US20070294659A1 (en) * 2005-04-01 2007-12-20 Altera Corporation Methods for producing equivalent field-programmable gate arrays and structured application-specific integrated circuits
US20070011642A1 (en) * 2005-07-07 2007-01-11 Claus Pribbernow Application specific configurable logic IP

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3435545A1 (en) 2015-10-15 2019-01-30 Menta System and method for testing and configuration of an fpga
EP3157171A1 (en) 2015-10-15 2017-04-19 Menta Logic block architecture for programmable gate array
WO2017063957A1 (en) 2015-10-15 2017-04-20 Menta System and method for testing and configuration of an fpga
WO2017063956A1 (en) 2015-10-15 2017-04-20 Menta Logic block architecture for programmable gate array
EP3157172A1 (en) 2015-10-15 2017-04-19 Menta System and method for testing and configuration of an fpga
US10295595B2 (en) 2015-10-15 2019-05-21 Menta System and method for testing and configuration of an FPGA
US10746796B2 (en) 2015-10-15 2020-08-18 Menta System and method for testing and configuration of an FPGA
EP3355196A1 (en) 2017-01-27 2018-08-01 Menta Fpga and method of operation
EP3376669A1 (en) 2017-03-17 2018-09-19 Menta Fpga and method of fpga programming
TWI800702B (en) * 2019-12-11 2023-05-01 瑞昱半導體股份有限公司 Integrated circuit
US11880678B2 (en) 2019-12-11 2024-01-23 Realtek Semiconductor Corp. Chip having memory
WO2022149080A1 (en) 2021-01-08 2022-07-14 Menta System on chip architecture, interposer, fpga and method of design
EP4510030A1 (en) 2023-08-16 2025-02-19 Menta Logic device and system and methods for definition and configuration of a logic device

Also Published As

Publication number Publication date
FR2972566A1 (en) 2012-09-14
FR2972566B1 (en) 2013-03-15

Similar Documents

Publication Publication Date Title
WO2012123243A1 (en) System-on-a-chip including a programmable synthesizable core, and method for making such a system
EP2845131A2 (en) Cell library and method for designing an asynchronous integrated circuit
FR2978289A1 (en) DEVICE HAVING A DATA RETENTION MODE AND A DATA PROCESSING METHOD
WO2007090980A2 (en) Method for estimating a noise generated in an electronic system and related method for testing noise immunity
EP3443369A1 (en) System and method for testing an integrated circuit
EP2996040A1 (en) A method for determining by optimization a multi-core architecture
FR3091386A1 (en) Method of compiling a quantum circuit on a quantum processor with trapped ions
WO2012045941A1 (en) System for scheduling the execution of tasks clocked by a vectorial logic time
WO2006084845A2 (en) Processor-simulation method using a model comprising a set of objects
EP1813952B1 (en) Scan Test
WO2015121068A1 (en) Encoding of fault scenarios of a manycore processor
EP0469507A1 (en) Integrated circuit comprising a standard cell, an application cell and a test cell
FR2910431A1 (en) Motor vehicle e.g. automobile, designing method, involves integrating connections existing between parts in model, where integration of connections are directly executed between parts and are not executed between mobilizations of parts
EP4488833B1 (en) Configuring a memory
FR2903794A1 (en) METHOD FOR MODELING THE SWITCHING ACTIVITY OF A DIGITAL CIRCUIT
WO2012052080A1 (en) Method for checking an integrated circuit
FR2902211A1 (en) Complex system stimulating method, involves constructing models of complex system, where each model comprises hierarchized assembly of modelized components that are instance of object class belonging to determined object class assembly
WO2017207889A1 (en) Device and method for parallel data processing
EP4390734A1 (en) Configuration method
EP4614379A1 (en) Method for selecting start-up programs
FR3063358A1 (en) METHOD FOR ESTIMATING THE TIME OF EXECUTION OF A PART OF CODE BY A PROCESSOR
EP3234773B1 (en) Method for scheduling an audio treatment of a motor vehicle, and associated operating system
FR2998695A1 (en) Integrated circuit, has checking module arranged to control sensor or meter so as to deliver measurement representative of physical quantity, where module locks operation of circuit if measurement does not correspond to preset value
WO2015158984A1 (en) Method for producing a configurable logic network
Bilavarn et al. Estimation de performances à un niveau comportemental pour l’implantation sur composants FPGA

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12706040

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: CONSTATATION DE LA PERTE D UN DROIT CONFORMEMENT A LA REGLE 112(1) CBE (OEB FORM 1205N EN DATE DU 19/11/2013)

122 Ep: pct application non-entry in european phase

Ref document number: 12706040

Country of ref document: EP

Kind code of ref document: A1