EP3170261B1 - Programmable integrated circuit having different types of configuration memory - Google Patents
Programmable integrated circuit having different types of configuration memory Download PDFInfo
- Publication number
- EP3170261B1 EP3170261B1 EP15739743.1A EP15739743A EP3170261B1 EP 3170261 B1 EP3170261 B1 EP 3170261B1 EP 15739743 A EP15739743 A EP 15739743A EP 3170261 B1 EP3170261 B1 EP 3170261B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- programmable
- subset
- resources
- memory cells
- configuration memory
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims description 257
- 238000013461 design Methods 0.000 claims description 117
- 238000000034 method Methods 0.000 claims description 46
- 230000036039 immunity Effects 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 2
- 230000002194 synthesizing effect Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 8
- 238000013459 approach Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000002245 particle Substances 0.000 description 2
- 238000004549 pulsed laser deposition Methods 0.000 description 2
- 230000005855 radiation Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- VTYYLEPIZMXCLO-UHFFFAOYSA-L Calcium carbonate Chemical compound [Ca+2].[O-]C([O-])=O VTYYLEPIZMXCLO-UHFFFAOYSA-L 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- JJWKPURADFRFRB-UHFFFAOYSA-N carbonyl sulfide Chemical compound O=C=S JJWKPURADFRFRB-UHFFFAOYSA-N 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/183—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/0175—Coupling arrangements; Interface arrangements
- H03K19/017581—Coupling arrangements; Interface arrangements programmable
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/1776—Structural details of configuration resources for memories
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/17764—Structural details of configuration resources for reliability
Definitions
- the disclosure generally relates to the configuration memory of programmable integrated circuits.
- ICs such as Complex PLDs (CPLDs) and Field Programmable Gate Arrays (FPGAs) typically use millions of Static Random Access Memory (SRAM) configuration memory cells to program the functionality of the implemented circuit.
- SRAM Static Random Access Memory
- the configuration memory cells may be those for programming interconnect, logic, or memory resources of the programmable IC, for example.
- SEU single event upset
- first data are generated for implementing an input circuit design.
- the method determines a critical portion and a non-critical portion of the circuit design.
- Second data are generated for programming configuration memory cells of the programmable IC to implement the circuit design.
- a first subset of the second data is assigned to program 6T configuration memory cells of the programmable IC to implement three or more instances of the critical portion of the circuit design on a first subset of programmable logic resources and a first subset of programmable interconnect resources of the programmable IC.
- a second subset of the second data is assigned to program 12T configuration memory cells of the programmable IC to implement a voting circuit on a second subset of programmable logic resources and a second subset of programmable interconnect resources of the programmable IC.
- the voting circuit is coupled to receive output signals from the three instances of the first portion of the circuit design.
- the second data are stored in an electronically readable storage medium.
- a circuit design is input and first data are generated for implementing the circuit design. Critical and non-critical portions of the circuit design are determined.
- the second method generates second data for programming configuration memory cells of the programmable IC to implement the circuit design.
- a first subset of the second data is assigned to program a first type of configuration memory cells to implement the critical portion of the circuit design on a first subset of programmable logic resources and a first subset of programmable interconnect resources of the programmable IC.
- a second subset of the second data is assigned to program a second type of configuration memory cells to implement the non-critical portion of the circuit design on a second subset of programmable logic resources and a second subset of programmable interconnect resources of the programmable IC.
- the second data are stored in an electronically readable storage medium.
- a programmable IC includes a configuration memory having a plurality of 6T memory cells and a plurality of 12T memory cells.
- Programmable interconnect resources are coupled to the configuration memory.
- a first subset of the programmable interconnect resources are programmable by a subset of the 6T memory cells, and a second subset of the programmable interconnect resources are programmable by a subset of the 12T memory cells.
- Programmable logic resources are coupled to the configuration memory.
- a first subset of the programmable logic resources are programmable by a subset of the 6T memory cells, and a second subset of the programmable logic resources are programmable by a subset of the 12T memory cells.
- Programmable input/output (I/O) resources are coupled to the configuration memory.
- the disclosed methods and circuits involve a programmable IC in which some, but not all, of the configuration memory cells are 12T (12-transistor) SRAM cells, and the other configuration memory cells are 6T (6-transistor) SRAM cells.
- the programmable IC having only some of the configuration memory cells implemented with 12T SRAM, not all of the interconnect and logic resources of critical parts of a design need to be made triple modular redundant (TMR) to reduce the SEU FIT rate.
- TMR triple modular redundant
- a critical part of the circuit design may be made TMR using the 6T configuration memory cells, and a voting circuit can be implemented using the 12T configuration memory cells to make the voting circuit resilient to SEUs. Because not all of the configuration memory cells are implemented with 12T SRAM, the footprint of the programmable IC is not significantly larger than the footprint of a programmable IC having all configuration memory cells implemented with 6T SRAM.
- first data are generated for implementing the circuit design.
- the circuit design may be compiled or also initially mapped and placed and routed.
- the designer may opt to make selected portions of the circuit design highly reliable and less susceptible to SEUs.
- a portion of a circuit design designated to be made highly reliable and less susceptible to SEUs may also be referred to as a "critical portion.”
- the designer may specify the critical portion or a design tool may automatically determine critical portions of an input circuit design.
- a critical portion of the design may be a portion that uses a large portion of the configuration memory cells of a programmable resource to configure the desired function of that programmable resource.
- a large lookup table (LUT) used in the circuit design may be considered critical if most of the input pins are used by the design, because a large portion of the configuration memory cells would be used to implement the desired function.
- a large LUT would not be considered critical if only a few of the input pins were used by the design, because only a small portion of the configuration memory cells would be used to implement the desired function, and many of the configuration memory cells would be unused. An upset of an unused configuration memory cell would not affect operation of the circuit.
- second data are generated for programming configuration memory cells of the programmable IC to implement the circuit design.
- a first subset of the second data is assigned to program a first type of configuration memory cells to implement the critical portion of the circuit design on a first subset of programmable logic resources and a first subset of programmable interconnect resources of the programmable IC.
- a second subset of the second data is assigned to program a second type of configuration memory cells to implement the non-critical portion of the circuit design on a second subset of programmable logic resources and a second subset of programmable interconnect resources of the programmable IC.
- the first type of configuration memory cells has greater immunity to SEUs than the second type of configuration memory cells. That is, the first type of configuration memory cells is less susceptible to SEUs and has a lower FIT rate than the second type of configuration memory cells.
- the second data are stored and may be later used to configure the programmable IC.
- a programmed processor generates first data for implementing the circuit design and a critical portion of the circuit design is determined as described above.
- Second data are generated for programming configuration memory cells of the programmable IC to implement the circuit design.
- a first subset of the second data of the second method is assigned to program 6T configuration memory cells of the programmable IC to implement three or more instances of the critical portion of the circuit design on a first subset of programmable logic resources and a first subset of programmable interconnect resources of the programmable IC.
- a second subset of the second data is assigned to program 12T configuration memory cells of the programmable IC to implement a voting circuit on a second subset of programmable logic resources and a second subset of programmable interconnect resources of the programmable IC.
- the voting circuit is coupled to receive output signals from the three instances of the first portion of the circuit design.
- the second data are stored and may be later used to configure the programmable IC.
- a programmable IC having a configuration memory with both 12T and 6T configuration memory cells is also disclosed.
- programmable interconnect resources and programmable logic resources are coupled to the configuration memory. Different subsets of the programmable interconnect resources are programmable by the 6T and the 12T configuration memory cells. Similarly, different subsets of the programmable logic resources are programmable by the 6T and the 12T configuration memory cells.
- the programmable IC also includes programmable input/output (I/O) resources that are coupled to the configuration memory.
- FIG. 1 shows a block diagram of a programmable integrated circuit (IC) 100 having one portion of the programmable resources being configurable with 6T SRAM configuration memory and another portion of the programmable resources being configurable with 12T SRAM configuration memory. It will be recognized that FIG. 1 does not depict the physical layout of circuitry of the programmable IC. Rather, FIG. 1 shows that some programmable resources are configurable with 12T configuration memory cells and other programmable resources are configurable with 6T configuration memory cells. Also, programmable ICs may have types of programmable resources in addition to those that are illustrated.
- the programmable resources of the programmable IC 100 include programmable logic resources 102 and 104, programmable interconnect resources 106 and 108, programmable input/output (I/O) resources 110 and 112, and memory resources 114 and 116.
- the programmable IC further includes configuration memory cells 118 and configuration memory cells 120.
- the configuration memory cells 118 are less susceptible to SEU upsets than are the configuration memory cells 120.
- the configuration memory cells 118 are 12T memory cells, and the configuration memory cells 120 are 6T memory cells.
- programmable logic resources 102 are programmable with configuration memory 118, which is implemented with 12T SRAM
- programmable logic resources 104 are programmable with configuration memory 120, which is implemented with 6T SRAM
- programmable interconnect resources 106 and programmable I/O resources 110 are programmable with configuration memory 118
- programmable interconnect resources 108 and programmable I/O resources 112 are programmable with configuration memory 120.
- the programmable IC 100 further includes memory resources 114 and 116 that may be used for storage of application data by an application circuit implemented on the programmable logic resources 102 and 104, the programmable interconnect resources 106 and 108, and the programmable I/O resources 110 and 112.
- Memory resources 114 may be implemented with 12T SRAM, and memory resources 116 may be implemented with 6T SRAM.
- Data that are deemed to be critical to an application circuit implemented on the programmable IC 100 may be stored in memory resources 114 in order to reduce susceptibility to SEUs. Less critical data may be stored in memory resources 116.
- the programmable IC 100 having some configuration memory that is less susceptible to SEU upsets than other configuration memory in the programmable IC provides flexibility in efforts to reduce the FIT rate for circuits implemented on the programmable IC.
- critical portions of the circuit design may be implemented on programmable resources that are configurable by the configuration memory 118 implemented with 12T memory cells, and less critical portions of the circuit design may be implemented on programmable resources that are configurable by the configuration memory 120 implemented with 6T memory cells.
- a critical portion of the circuit design may be implemented as a TMR circuit on programmable resources that are configurable by the configuration memory 120 implemented with 6T memory cells, and a voting circuit may be implemented on programmable resources that are configurable by the configuration memory 118 implemented with 12T memory cells.
- there are fewer 12T configuration memory cells than 6T configuration memory cells there are fewer 12T configuration memory cells than 6T configuration memory cells. For example, 5-10% of the configuration memory cells may be 12T configuration memory cells, and the remaining configuration memory cells may be 6T cells.
- FIG. 2 shows a flowchart of a process for generating an implementation of a circuit design on a programmable IC having some configuration memory cells that are less susceptible to SEUs than other configuration memory cells of the programmable IC.
- a circuit design is input for processing at block 202, and at block 204, initial implementation data are generated.
- the initial implementation data may be the result of synthesizing the circuit design or further mapping and/or placing and routing the circuit design.
- parts of the circuit design may be made highly reliable and less susceptible to SEU.
- the designer may designate particular portions of the circuit design that are to made highly reliable (“critical") or the critical portions may be automatically determined.
- the process determines critical and non-critical portions of the circuit design.
- a portion of a circuit design may be deemed to be critical if the FIT rate of the portion is a significant factor in the overall FIT rate of the implemented circuit design.
- a large lookup table (LUT) used in the circuit design may be considered critical if most of the input pins are used by the design, because a large portion of the configuration memory cells would be used to implement the desired function.
- a large LUT (a LUT having a large number of input pins) would not be considered critical if only a few of the input pins were used by the design, because only a small portion of the configuration memory cells would be used to implement the desired function, and many of the configuration memory cells would be unused.
- a portion of a circuit design may be determined to be critical if the portion is implemented on a LUT having more than a threshold number of input pins and the number of input pins that are used is greater than a threshold. For example, a portion of the circuit design may be determined to be critical in response to the portion being implemented on a LUT having at least 6 input pins and at least 5 of the input pins are used. Further aspects of critical and non-critical portions of a circuit design are further described in co-pending patent application Serial No.
- the process selects an approach for implementing the critical portion of the circuit design.
- the approach may be selected in response to designer input that specifies the desired approach.
- the critical portion is implemented using programmable resources that are programmed with 12T configuration memory cells, and in the second approach, the critical portion is implemented as a TMR circuit, with 12T configuration memory cells being used to implement the voting circuit.
- the circuit design is mapped, placed, and routed by assigning programmable resources that are programmed by 12T configuration memory cells to implement the critical portion. If the circuit design had previously been mapped, placed, and routed, the process may remap, replace, and reroute the circuit design accordingly.
- configuration data are generated for programming configuration memory cells of the programmable IC to implement the circuit design.
- a first subset of the configuration data programs the 12T configuration memory cells to implement the critical portion of the circuit design on a first subset of the programmable logic resources (as determined at block 210) and a first subset of the programmable interconnect resources (as determined at block 210) of the programmable IC.
- the configuration data may be for programming parts of configuration memory 118 ( FIG. 1 ), which is implemented with 12T memory cells, to implement the critical portions on the programmable logic resources 102 and programmable interconnect resources 106.
- the non-critical portion of the circuit design may be implemented on any of the available programmable resources of the programmable IC.
- the non-critical portion of the circuit design may be implemented on a second subset of programmable logic resources (as determined at block 210) and a second subset of programmable interconnect resources (as determined at block 210) of the programmable IC, where the second subsets of resources are programmed with only 6T configuration memory cells or a combination of 6T and 12T configuration memory cells.
- the configuration data for implementing the non-critical portions may be for programming parts of configuration memory 120 ( FIG. 1 ), which is implemented with 6T memory cells, to implement the non-critical portion on the programmable logic resources 104 and programmable interconnect resources 108.
- the critical portion of the circuit design may further include memory resources that store data accessed by the circuit design.
- the generated configuration data may further include configuration data that programs programmable interconnect resources 106 and/or programmable interconnect resources 108 for connecting programmable logic resources 102 and/or programmable logic resources 104 to the memory resources 114, which are implemented by 12T memory cells.
- the non-critical portion of the circuit design may further include memory resources that store non-critical data accessed by the circuit design.
- the generated configuration data may further include configuration data that programs programmable interconnect resources 106 and/or programmable interconnect resources 108 for connecting programmable logic resources 102 and/or programmable logic resources 104 to the memory resources 116, which are implemented by 6T memory cells.
- the configuration data generated at block 212 are output and/or stored in an electronically readable storage medium.
- the configuration data may be output and stored in a data storage device, such as a flash memory or magnetic storage device.
- decision block 208 directs the process to block 222.
- the critical portion of the circuit design is made TMR with programmable resources that are configurable with 6T configuration memory cells, and a voting circuit is implemented in programmable resources that are configurable with 12T configuration memory cells.
- the circuit design is mapped, placed, and routed by assigning programmable resources to implement three instances of the critical portion of the circuit design.
- the resources may be programmed by only 6T configuration memory cells or a combination of 6T and 12T configuration memory cells. If the circuit design had previously been mapped, placed, and routed, the process may remap, replace, and reroute the circuit design accordingly.
- Programmable resources are also assigned at block 222 to implement a voting circuit and connect the voting circuit to the TMR circuit.
- the programmable resources that implement the voting circuit and that connect the voting circuit to the TMR circuit are programmed with only 12T configuration memory cells, which help protect the voting circuit against SEUs.
- configuration data are generated for programming the configuration memory cells that program the programmable resources that implement the TMR circuit and the voting circuit.
- the configuration data is specified for programming configuration memory cells that configure the functions of subsets of the programmable logic resources and programmable interconnect resources of the programmable IC as determined at block 222.
- the configuration data may be for programming parts of configuration memory 120 ( FIG. 1 ), which is implemented with 6T memory cells, to implement the critical portion on portions of the programmable logic resources 104 and programmable interconnect resources 108.
- the configuration data may be for programming parts of configuration memory 118 ( FIG.
- the configuration data also configures the programmable resources to connect the voting circuit to receive output signals from the TMR circuit (e.g., FIG. 3 , instances 302, 304, 306) that implements the critical portion of the circuit design.
- the configuration data generated at block 224 are output and/or stored in an electronically readable storage medium.
- the configuration data may be output and stored in a data storage device, such as a flash memory or magnetic storage device.
- FIG. 3 shows a block diagram of a portion of a circuit design implemented as triple modular redundant (TMR) in programmable resources that are configurable with 6T configuration memory cells, along with a voting circuit that is implemented in programmable resources that are configurable with 12T configuration memory cells.
- TMR triple modular redundant
- the critical portion may be implemented as a TMR circuit on programmable resources that are configured with configuration memory having 6T memory cells.
- the voting circuit may be implemented on programmable resources that are configured with configuration memory having 12T memory cells, which reduces susceptibility of the voting circuit to an SEU.
- the critical portion of the circuit design is shown as being implemented as blocks 302, 304, 306, 308, 310, and 312.
- Blocks 302, 304, and 306 represent three instances of the critical portion of the circuit design implemented on respective programmable logic (PL) resources and programmable interconnect (INT) resources.
- Blocks 308, 310, and 312 represent interconnect resources that connect each instance of the critical portion to the voting circuit 314.
- the instances of the critical portion of the circuit design and the connections of the voting circuit may be implemented on programmable resources that are configurable with 6T configuration memory cells, because the circuitry is triplicated.
- the voting circuit may be implemented on programmable logic resources and programmable interconnect resources that are configurable with 12T configuration memory cells, which reduces susceptibility of the voting circuit to SEUs.
- the voting circuit 314 will output expected results as long as no more than one of the instances 302, 304, 306 and interconnect circuits 308, 310, and 312 has undergone an SEU.
- non-critical portions of the circuit design may be implemented on programmable logic resources and programmable interconnect resources that are configurable with 6T configuration memory cells.
- non-critical portion 316 provides input to the TMR circuit (the critical portion), and non-critical portion 318 receives output from the critical portion via the voting circuit 314.
- Programmable interconnect resources 309 connect the non-critical portion 316 to the TMR instances 302, 304, and 306 of the critical portion, and the programmable interconnect resources 308 are configurable with 12T configuration memory cells.
- FIG. 4 shows an example of a computing arrangement that may be configured to implement the processes and data structures described herein.
- Processor computing arrangement 500 includes one or more processors 502 that are programmed according to the executable computer code, a clock signal generator 504, a memory arrangement 506, a storage arrangement 508, and an input/output control unit 510, all coupled to a host bus 512.
- the arrangement 500 may be implemented with separate components on a circuit board or may be implemented internally within an integrated circuit. When implemented internally within an integrated circuit, the processor computing arrangement is otherwise known as a microcontroller.
- the architecture of the computing arrangement depends on implementation requirements as would be recognized by those skilled in the art.
- the processor(s) 502 may be one or more general purpose processors, or a combination of one or more general purpose processors and suitable coprocessors, or one or more specialized processors (e.g., RISC, CISC, pipelined, etc.).
- the memory arrangement 506 typically includes multiple levels of cache memory, and a main memory.
- the storage arrangement 508 may include local and/or remote persistent storage, such as provided by magnetic disks (not shown), flash, EPROM, or other non-volatile data storage.
- the storage unit may be read or read/write capable. Further, the memory arrangement 506 and storage arrangement 508 may be combined in a single arrangement.
- the processor(s) 502 executes the software in storage arrangement 508 and/or memory arrangement 506, reads data from and stores data to the storage arrangement 508 and/or memory arrangement 506, and communicates with external devices through the input/output control arrangement 510. These functions are synchronized by the clock signal generator 504.
- the resource of the computing arrangement may be managed by either an operating system (not shown), or a hardware control unit (not shown).
- FIG. 5 shows a programmable integrated circuit (IC) 600 on which the disclosed circuits may be implemented.
- the programmable IC may also be referred to as a System On Chip (SOC) that includes field programmable gate array logic (FPGA) along with other programmable resources.
- FPGA logic may include several different types of programmable logic blocks in the array. For example, FIG.
- programmable IC 600 that includes a large number of different programmable tiles including multi-gigabit transceivers (MGTs) 601, configurable logic blocks (CLBs) 602, random access memory blocks (BRAMs) 603, input/output blocks (lOBs) 604, configuration and clocking logic (CONFIG/CLOCKS) 605, digital signal processing blocks (DSPs) 606, specialized input/output blocks (I/O) 607, for example, clock ports, and other programmable logic 608 such as digital clock managers, analog-to-digital converters, system monitoring logic, and so forth.
- MTTs multi-gigabit transceivers
- CLBs configurable logic blocks
- BRAMs random access memory blocks
- lOBs input/output blocks
- CONFIG/CLOCKS configuration and clocking logic
- DSPs digital signal processing blocks
- I/O specialized input/output blocks
- Some programmable IC having FPGA logic also include dedicated processor blocks (PROC) 610 and internal and external recon
- each programmable tile includes a programmable interconnect element (INT) 611 having standardized connections to and from a corresponding interconnect element in each adjacent tile. Therefore, the programmable interconnect elements taken together implement the programmable interconnect structure for the illustrated FPGA logic.
- the programmable interconnect element INT 611 also includes the connections to and from the programmable logic element within the same tile, as shown by the examples included at the top of FIG. 5 .
- a CLB 602 can include a configurable logic element CLE 612 that can be programmed to implement user logic, plus a single programmable interconnect element INT 611.
- a BRAM 603 can include a BRAM logic element (BRL) 613 in addition to one or more programmable interconnect elements.
- BRAM logic element BRAM logic element
- the number of interconnect elements included in a tile depends on the height of the tile. In the pictured embodiment, a BRAM tile has the same height as five CLBs, but other numbers (e.g., four) can also be used.
- a DSP tile 606 can include a DSP logic element (DSPL) 614 in addition to an appropriate number of programmable interconnect elements.
- DSPL DSP logic element
- An IOB 604 can include, for example, two instances of an input/output logic element (IOL) 615 in addition to one instance of the programmable interconnect element INT 611.
- IOL input/output logic element
- INT programmable interconnect element
- a columnar area near the center of the die (shown shaded in FIG. 5 ) is used for configuration, clock, and other control logic. Horizontal areas 609 extending from this column are used to distribute the clocks and configuration signals across the breadth of the programmable IC.
- Some programmable ICs utilizing the architecture illustrated in FIG. 5 include additional logic blocks that disrupt the regular columnar structure making up a large part of the programmable IC.
- the additional logic blocks can be programmable blocks and/or dedicated logic.
- the processor block PROC 610 shown in FIG. 5 spans several columns of CLBs and BRAMs.
- FIG. 5 is intended to illustrate only an exemplary programmable IC architecture.
- the numbers of logic blocks in a column, the relative widths of the columns, the number and order of columns, the types of logic blocks included in the columns, the relative sizes of the logic blocks, and the interconnect/logic implementations included at the top of FIG. 5 are purely exemplary.
- more than one adjacent column of CLBs is typically included wherever the CLBs appear, to facilitate the efficient implementation of user logic.
- a method of generating an implementation of a circuit design on a programmable integrated circuit may include, on a programmed processor, performing operations of: inputting the circuit design; generating first data for implementing the circuit design; determining a critical portion and a non-critical portion of the circuit design; generating second data for programming configuration memory cells of the programmable IC to implement the circuit design; wherein a first subset of the second data is assigned to program a first type of configuration memory cells to implement the critical portion of the circuit design on a first subset of programmable logic resources and a first subset of programmable interconnect resources of the programmable IC; wherein a second subset of the second data is assigned to program a second type of configuration memory cells to implement the non-critical portion of the circuit design on a second subset of programmable logic resources and a second subset of programmable interconnect resources of the programmable IC; and storing the second data in an electronically readable storage medium.
- the first type of configuration memory cells may have greater immunity to single event upsets (SEUs) than the second type of configuration memory cells.
- SEUs single event upsets
- the first type of configuration memory cells are 12T memory cells and the second type of configuration memory cells are 6T memory cells.
- the determining of the critical portion includes determining lookup tables (LUTs) having numbers of used inputs greater than a threshold.
- the first subset of the second data includes configuration data that connects the first subset of programmable logic resources to a first subset of memory resources of the programmable IC via the first subset of programmable interconnect resources for storage of data processed by the first subset of programmable logic resources; and the first subset of memory resources is implemented by 12T memory cells.
- the second subset of the second data includes configuration data that connects the second subset of programmable logic resources to a second subset of memory resources of the programmable IC via the second subset of programmable interconnect resources for storage of data processed by the second subset of programmable logic resources; and the second subset of memory resources is implemented by 6T memory cells.
- the determining of the critical portion includes determining lookup tables (LUTs) having numbers of used inputs greater than a threshold; and the first type of configuration memory cells have greater immunity to single event upsets (SEUs) than the second type of configuration memory cells.
- LUTs lookup tables
- SEUs single event upsets
- the determining of the critical portion includes determining lookup tables (LUTs) having numbers of used inputs greater than a threshold; and the first type of configuration memory cells are 12T memory cells and the second type of configuration memory cells are 6T memory cells.
- LUTs lookup tables
- the determining of the critical portion includes determining lookup tables (LUTs) having numbers of used inputs greater than a threshold; and the first subset of the second data includes configuration data that connects the first subset of programmable logic resources to a first subset of memory resources of the programmable IC via the first subset of programmable interconnect resources for storage of data processed by the first subset of programmable logic resources, the first subset of memory resources implemented by 12T memory cells.
- LUTs lookup tables
- a method of generating an implementation of a circuit design on a programmable integrated circuit may include: on a programmed processor, performing operations of: inputting the circuit design; generating first data for implementing the circuit design; determining a critical portion and a non-critical portion of the circuit design; generating second data for programming configuration memory cells of the programmable IC to implement the circuit design; wherein a first subset of the second data is assigned to program 6T configuration memory cells of the programmable IC to implement three or more instances of the critical portion of the circuit design on a first subset of programmable logic resources and a first subset of programmable interconnect resources of the programmable IC; and wherein a second subset of the second data is assigned to program 12T configuration memory cells of the programmable IC to implement a voting circuit on a second subset of programmable logic resources and a second subset of programmable interconnect resources of the programmable IC, the voting circuit coupled to receive output signals from the three
- the second data includes: a third subset of the second data for programming 6T configuration memory cells of the programmable IC to implement the non-critical portion of the circuit design on a third subset of programmable logic resources and a third subset of programmable interconnect resources of the programmable IC.
- the determining of the critical portion includes determining lookup tables (LUTs) having numbers of used inputs greater than a threshold.
- a programmable IC may be provided.
- Such programmable IC may include: a configuration memory including a plurality of 6T memory cells and a plurality of 12T memory cells; programmable interconnect resources coupled to the configuration memory, wherein a first subset of the programmable interconnect resources are programmable by a subset of the 6T memory cells, and a second subset of the programmable interconnect resources are programmable by a subset of the 12T memory cells; programmable logic resources coupled to the configuration memory, wherein a first subset of the programmable logic resources are programmable by a subset of the 6T memory cells, and a second subset of the programmable logic resources are programmable by a subset of the 12T memory cells; and programmable input/output (I/O) resources coupled to the configuration memory.
- I/O programmable input/output
- Some such ICs may further include memory resources for storage of data processed by the programmable logic resources, wherein: the memory resources are connectable to the programmable logic resources via the programmable interconnect resources; a first subset of the memory resources are 6T memory cells; and a second subset of the memory resources are 12T memory cells.
- Some such ICs may further include: a triple modular redundant (TMR) circuit implemented in the first subset of the programmable interconnect resources and the first subset of the programmable logic resources; a voting circuit implemented in the second subset of the programmable interconnect resources and the second subset of programmable interconnect resources, the voting circuit coupled to the TMR circuit via the first subset of programmable interconnect resources.
- TMR triple modular redundant
- Some such ICs may further include: a first portion of a circuit design implemented on the first subset of programmable logic resources and the first subset of programmable interconnect resources of the programmable IC; and a second portion of the circuit design implemented on the second subset of programmable logic resources and the second subset of programmable interconnect resources of the programmable IC.
- the plurality of 6T memory cells is greater in number than the plurality of 12T memory cells.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Logic Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
Description
- The disclosure generally relates to the configuration memory of programmable integrated circuits.
- Traditional programmable integrated circuits (ICs) such as Complex PLDs (CPLDs) and Field Programmable Gate Arrays (FPGAs) typically use millions of Static Random Access Memory (SRAM) configuration memory cells to program the functionality of the implemented circuit. The configuration memory cells may be those for programming interconnect, logic, or memory resources of the programmable IC, for example.
- The presence of an increasing number of SRAM configuration memory cells in programmable ICs, with chip geometries becoming smaller and supply voltages becoming lower, increases the likelihood that the configuration memory cell storage state could be upset due to collisions with cosmic particles from outer space or alpha particles from IC packaging materials. The unexpected change in state of a memory cell is referred to as a single event upset (SEU). With SEUs more likely to occur, the mean time to failure for a particular program configuration for the PLD will decrease and the failures in time (FIT) rate will increase.
- The paper by DAVID J. RENNIE titeled "Design challenges in nanometric embedded memories" (3RD INTERNATIONAL CONFERENCE ON SIGNALS, CIRCUITS AND SYSTEMS, 2009-11-06, ISBN 978-1-4244-4397-0) describes that programmable ICs can be made less susceptible to SEUs by using 12T memory cells instead of 6T memory cells in the configuration memory. Patent application
US 2014/104946 describes that 6T and 12T memory cells can be on a same chip. Patent specificationUS 8 065 644 describes that not all parts of a circuit design are critical with regard to SEUs and therefore proposes to split the circuit design into critical and non-critical regions and to apply SEU mitigation techniques only to the critical regions, e.g. to replace circuit elements of a critical region with radiation hardened versions of these circuit elements. It does not propose to replace the configuration memory cells responsible for a critical region with radiation hardened cells. - The invention is defined by the independent claims. According to one method of generating an implementation of a circuit design on a programmable integrated circuit, first data are generated for implementing an input circuit design. The method determines a critical portion and a non-critical portion of the circuit design. Second data are generated for programming configuration memory cells of the programmable IC to implement the circuit design. A first subset of the second data is assigned to
program 6T configuration memory cells of the programmable IC to implement three or more instances of the critical portion of the circuit design on a first subset of programmable logic resources and a first subset of programmable interconnect resources of the programmable IC. A second subset of the second data is assigned toprogram 12T configuration memory cells of the programmable IC to implement a voting circuit on a second subset of programmable logic resources and a second subset of programmable interconnect resources of the programmable IC. The voting circuit is coupled to receive output signals from the three instances of the first portion of the circuit design. The second data are stored in an electronically readable storage medium. - According to another method of generating an implementation of a circuit design on a programmable IC, a circuit design is input and first data are generated for implementing the circuit design. Critical and non-critical portions of the circuit design are determined. The second method generates second data for programming configuration memory cells of the programmable IC to implement the circuit design. A first subset of the second data is assigned to program a first type of configuration memory cells to implement the critical portion of the circuit design on a first subset of programmable logic resources and a first subset of programmable interconnect resources of the programmable IC. A second subset of the second data is assigned to program a second type of configuration memory cells to implement the non-critical portion of the circuit design on a second subset of programmable logic resources and a second subset of programmable interconnect resources of the programmable IC. The second data are stored in an electronically readable storage medium.
- A programmable IC includes a configuration memory having a plurality of 6T memory cells and a plurality of 12T memory cells. Programmable interconnect resources are coupled to the configuration memory. A first subset of the programmable interconnect resources are programmable by a subset of the 6T memory cells, and a second subset of the programmable interconnect resources are programmable by a subset of the 12T memory cells. Programmable logic resources are coupled to the configuration memory. A first subset of the programmable logic resources are programmable by a subset of the 6T memory cells, and a second subset of the programmable logic resources are programmable by a subset of the 12T memory cells. Programmable input/output (I/O) resources are coupled to the configuration memory.
- Other features will be recognized from consideration of the Detailed Description and Claims, which follow.
- Various aspects and features of the disclosed methods and systems will become apparent upon review of the following detailed description and upon reference to the drawings, in which:
-
FIG. 1 shows a block diagram of a programmable integrated circuit (IC) having one portion of the programmable resources being configurable with 6T SRAM configuration memory and another portion of the programmable resources being configurable with 12T SRAM configuration memory; -
FIG. 2 shows a flowchart of a process for generating an implementation of a circuit design on a programmable IC having some configuration memory cells that are less susceptible to SEU upsets than other configuration memory cells of the programmable IC; -
FIG. 3 shows a block diagram of a portion of a circuit design implemented as triple modular redundant (TMR) in programmable resources that are configurable with 6T configuration memory cells, along with a voting circuit that is implemented in programmable resources that are configurable with 12T configuration memory cells; -
FIG. 4 shows an example of a computing arrangement that may be configured to implement the processes and data structures described herein; and -
FIG. 5 shows a block diagram of an example programmable IC. - In the following description, numerous specific details are set forth to describe specific examples presented herein. It should be apparent, however, to one skilled in the art, that one or more other examples and/or variations of these examples may be practiced without all the specific details given below. In other instances, well known features have not been described in detail so as not to obscure the description of the examples herein. For ease of illustration, the same reference numerals may be used in different diagrams to refer to the same elements or additional instances of the same element.
- The disclosed methods and circuits involve a programmable IC in which some, but not all, of the configuration memory cells are 12T (12-transistor) SRAM cells, and the other configuration memory cells are 6T (6-transistor) SRAM cells. By implementing the programmable IC having only some of the configuration memory cells implemented with 12T SRAM, not all of the interconnect and logic resources of critical parts of a design need to be made triple modular redundant (TMR) to reduce the SEU FIT rate. Critical parts of the circuit design can be placed and routed on resources that are configured by the 12T cells, and non-critical parts of the circuit design can be placed and routed on resources that are configured by the 6T cells. Alternatively, a critical part of the circuit design may be made TMR using the 6T configuration memory cells, and a voting circuit can be implemented using the 12T configuration memory cells to make the voting circuit resilient to SEUs. Because not all of the configuration memory cells are implemented with 12T SRAM, the footprint of the programmable IC is not significantly larger than the footprint of a programmable IC having all configuration memory cells implemented with 6T SRAM.
- According to one of the disclosed methods of generating an implementation of a circuit design on a programmable IC, first data are generated for implementing the circuit design. For example the circuit design may be compiled or also initially mapped and placed and routed. The designer may opt to make selected portions of the circuit design highly reliable and less susceptible to SEUs. A portion of a circuit design designated to be made highly reliable and less susceptible to SEUs may also be referred to as a "critical portion." The designer may specify the critical portion or a design tool may automatically determine critical portions of an input circuit design. For example, a critical portion of the design may be a portion that uses a large portion of the configuration memory cells of a programmable resource to configure the desired function of that programmable resource. For example, a large lookup table (LUT) used in the circuit design may be considered critical if most of the input pins are used by the design, because a large portion of the configuration memory cells would be used to implement the desired function. In contrast, a large LUT would not be considered critical if only a few of the input pins were used by the design, because only a small portion of the configuration memory cells would be used to implement the desired function, and many of the configuration memory cells would be unused. An upset of an unused configuration memory cell would not affect operation of the circuit. According to the method, second data are generated for programming configuration memory cells of the programmable IC to implement the circuit design. A first subset of the second data is assigned to program a first type of configuration memory cells to implement the critical portion of the circuit design on a first subset of programmable logic resources and a first subset of programmable interconnect resources of the programmable IC. A second subset of the second data is assigned to program a second type of configuration memory cells to implement the non-critical portion of the circuit design on a second subset of programmable logic resources and a second subset of programmable interconnect resources of the programmable IC. In an example implementation, the first type of configuration memory cells has greater immunity to SEUs than the second type of configuration memory cells. That is, the first type of configuration memory cells is less susceptible to SEUs and has a lower FIT rate than the second type of configuration memory cells. The second data are stored and may be later used to configure the programmable IC.
- According to a second method of generating an implementation of a circuit design on a programmable IC, a programmed processor generates first data for implementing the circuit design and a critical portion of the circuit design is determined as described above. Second data are generated for programming configuration memory cells of the programmable IC to implement the circuit design. A first subset of the second data of the second method is assigned to
program 6T configuration memory cells of the programmable IC to implement three or more instances of the critical portion of the circuit design on a first subset of programmable logic resources and a first subset of programmable interconnect resources of the programmable IC. A second subset of the second data is assigned toprogram 12T configuration memory cells of the programmable IC to implement a voting circuit on a second subset of programmable logic resources and a second subset of programmable interconnect resources of the programmable IC. The voting circuit is coupled to receive output signals from the three instances of the first portion of the circuit design. The second data are stored and may be later used to configure the programmable IC. - A programmable IC having a configuration memory with both 12T and 6T configuration memory cells is also disclosed. In the programmable IC, programmable interconnect resources and programmable logic resources are coupled to the configuration memory. Different subsets of the programmable interconnect resources are programmable by the 6T and the 12T configuration memory cells. Similarly, different subsets of the programmable logic resources are programmable by the 6T and the 12T configuration memory cells. The programmable IC also includes programmable input/output (I/O) resources that are coupled to the configuration memory.
-
FIG. 1 shows a block diagram of a programmable integrated circuit (IC) 100 having one portion of the programmable resources being configurable with 6T SRAM configuration memory and another portion of the programmable resources being configurable with 12T SRAM configuration memory. It will be recognized thatFIG. 1 does not depict the physical layout of circuitry of the programmable IC. Rather,FIG. 1 shows that some programmable resources are configurable with 12T configuration memory cells and other programmable resources are configurable with 6T configuration memory cells. Also, programmable ICs may have types of programmable resources in addition to those that are illustrated. - The programmable resources of the
programmable IC 100 includeprogrammable logic resources programmable interconnect resources resources memory resources configuration memory cells 118 andconfiguration memory cells 120. Theconfiguration memory cells 118 are less susceptible to SEU upsets than are theconfiguration memory cells 120. In an example implementation, theconfiguration memory cells 118 are 12T memory cells, and theconfiguration memory cells 120 are 6T memory cells. - Different subsets of the programmable logic, programmable interconnect, and programmable I/O resources are programmable with the different types of configuration memory. For example,
programmable logic resources 102 are programmable withconfiguration memory 118, which is implemented with 12T SRAM, andprogrammable logic resources 104 are programmable withconfiguration memory 120, which is implemented with 6T SRAM. Similarly,programmable interconnect resources 106 and programmable I/O resources 110 are programmable withconfiguration memory 118, andprogrammable interconnect resources 108 and programmable I/O resources 112 are programmable withconfiguration memory 120. - The
programmable IC 100 further includesmemory resources programmable logic resources programmable interconnect resources O resources Memory resources 114 may be implemented with 12T SRAM, andmemory resources 116 may be implemented with 6T SRAM. Data that are deemed to be critical to an application circuit implemented on theprogrammable IC 100 may be stored inmemory resources 114 in order to reduce susceptibility to SEUs. Less critical data may be stored inmemory resources 116. - The
programmable IC 100 having some configuration memory that is less susceptible to SEU upsets than other configuration memory in the programmable IC provides flexibility in efforts to reduce the FIT rate for circuits implemented on the programmable IC. For example, critical portions of the circuit design may be implemented on programmable resources that are configurable by theconfiguration memory 118 implemented with 12T memory cells, and less critical portions of the circuit design may be implemented on programmable resources that are configurable by theconfiguration memory 120 implemented with 6T memory cells. Alternatively, a critical portion of the circuit design may be implemented as a TMR circuit on programmable resources that are configurable by theconfiguration memory 120 implemented with 6T memory cells, and a voting circuit may be implemented on programmable resources that are configurable by theconfiguration memory 118 implemented with 12T memory cells. In order to avoid the programmable IC from growing too large, there are fewer 12T configuration memory cells than 6T configuration memory cells. For example, 5-10% of the configuration memory cells may be 12T configuration memory cells, and the remaining configuration memory cells may be 6T cells. -
FIG. 2 shows a flowchart of a process for generating an implementation of a circuit design on a programmable IC having some configuration memory cells that are less susceptible to SEUs than other configuration memory cells of the programmable IC. A circuit design is input for processing atblock 202, and atblock 204, initial implementation data are generated. The initial implementation data may be the result of synthesizing the circuit design or further mapping and/or placing and routing the circuit design. Based on designer input, parts of the circuit design may be made highly reliable and less susceptible to SEU. The designer may designate particular portions of the circuit design that are to made highly reliable ("critical") or the critical portions may be automatically determined. Atblock 206, the process determines critical and non-critical portions of the circuit design. - In an automated procedure, a portion of a circuit design may be deemed to be critical if the FIT rate of the portion is a significant factor in the overall FIT rate of the implemented circuit design. For example, a large lookup table (LUT) used in the circuit design may be considered critical if most of the input pins are used by the design, because a large portion of the configuration memory cells would be used to implement the desired function. In contrast, a large LUT (a LUT having a large number of input pins) would not be considered critical if only a few of the input pins were used by the design, because only a small portion of the configuration memory cells would be used to implement the desired function, and many of the configuration memory cells would be unused. An upset of an unused configuration memory cell would not affect operation of the circuit. Similarly, a small LUT may be deemed to be non-critical since only a few configuration memory cells would be used to implement a function on that LUT. In an example implementation, a portion of a circuit design may be determined to be critical if the portion is implemented on a LUT having more than a threshold number of input pins and the number of input pins that are used is greater than a threshold. For example, a portion of the circuit design may be determined to be critical in response to the portion being implemented on a LUT having at least 6 input pins and at least 5 of the input pins are used. Further aspects of critical and non-critical portions of a circuit design are further described in co-pending patent application Serial No.
14/266,547 by Jain et al. - At
decision block 208, the process selects an approach for implementing the critical portion of the circuit design. The approach may be selected in response to designer input that specifies the desired approach. In a first approach, the critical portion is implemented using programmable resources that are programmed with 12T configuration memory cells, and in the second approach, the critical portion is implemented as a TMR circuit, with 12T configuration memory cells being used to implement the voting circuit. - In the first approach, at block 210, the circuit design is mapped, placed, and routed by assigning programmable resources that are programmed by 12T configuration memory cells to implement the critical portion. If the circuit design had previously been mapped, placed, and routed, the process may remap, replace, and reroute the circuit design accordingly.
- At block 212, configuration data are generated for programming configuration memory cells of the programmable IC to implement the circuit design. A first subset of the configuration data programs the 12T configuration memory cells to implement the critical portion of the circuit design on a first subset of the programmable logic resources (as determined at block 210) and a first subset of the programmable interconnect resources (as determined at block 210) of the programmable IC. For example, the configuration data may be for programming parts of configuration memory 118 (
FIG. 1 ), which is implemented with 12T memory cells, to implement the critical portions on theprogrammable logic resources 102 andprogrammable interconnect resources 106. The non-critical portion of the circuit design may be implemented on any of the available programmable resources of the programmable IC. For example, the non-critical portion of the circuit design may be implemented on a second subset of programmable logic resources (as determined at block 210) and a second subset of programmable interconnect resources (as determined at block 210) of the programmable IC, where the second subsets of resources are programmed with only 6T configuration memory cells or a combination of 6T and 12T configuration memory cells. The configuration data for implementing the non-critical portions may be for programming parts of configuration memory 120 (FIG. 1 ), which is implemented with 6T memory cells, to implement the non-critical portion on theprogrammable logic resources 104 andprogrammable interconnect resources 108. - The critical portion of the circuit design may further include memory resources that store data accessed by the circuit design. The generated configuration data may further include configuration data that programs
programmable interconnect resources 106 and/orprogrammable interconnect resources 108 for connectingprogrammable logic resources 102 and/orprogrammable logic resources 104 to thememory resources 114, which are implemented by 12T memory cells. - The non-critical portion of the circuit design may further include memory resources that store non-critical data accessed by the circuit design. The generated configuration data may further include configuration data that programs
programmable interconnect resources 106 and/orprogrammable interconnect resources 108 for connectingprogrammable logic resources 102 and/orprogrammable logic resources 104 to thememory resources 116, which are implemented by 6T memory cells. - At block 214, the configuration data generated at block 212 are output and/or stored in an electronically readable storage medium. The configuration data may be output and stored in a data storage device, such as a flash memory or magnetic storage device.
- If a critical portion of the circuit design is to be implemented as a TMR circuit,
decision block 208 directs the process to block 222. In an example approach, the critical portion of the circuit design is made TMR with programmable resources that are configurable with 6T configuration memory cells, and a voting circuit is implemented in programmable resources that are configurable with 12T configuration memory cells. - At block 222, the circuit design is mapped, placed, and routed by assigning programmable resources to implement three instances of the critical portion of the circuit design. The resources may be programmed by only 6T configuration memory cells or a combination of 6T and 12T configuration memory cells. If the circuit design had previously been mapped, placed, and routed, the process may remap, replace, and reroute the circuit design accordingly.
- Programmable resources are also assigned at block 222 to implement a voting circuit and connect the voting circuit to the TMR circuit. The programmable resources that implement the voting circuit and that connect the voting circuit to the TMR circuit are programmed with only 12T configuration memory cells, which help protect the voting circuit against SEUs.
- At block 224, configuration data are generated for programming the configuration memory cells that program the programmable resources that implement the TMR circuit and the voting circuit. The configuration data is specified for programming configuration memory cells that configure the functions of subsets of the programmable logic resources and programmable interconnect resources of the programmable IC as determined at block 222. For the TMR circuit, for example, the configuration data may be for programming parts of configuration memory 120 (
FIG. 1 ), which is implemented with 6T memory cells, to implement the critical portion on portions of theprogrammable logic resources 104 andprogrammable interconnect resources 108. For the voting circuit, for example, the configuration data may be for programming parts of configuration memory 118 (FIG. 1 ), which is implemented with 12T memory cells, to implement the voting circuit on portions of theprogrammable logic resources 102 andprogrammable interconnect resources 106. The configuration data also configures the programmable resources to connect the voting circuit to receive output signals from the TMR circuit (e.g.,FIG. 3 ,instances - At block 226, the configuration data generated at block 224 are output and/or stored in an electronically readable storage medium. The configuration data may be output and stored in a data storage device, such as a flash memory or magnetic storage device.
-
FIG. 3 shows a block diagram of a portion of a circuit design implemented as triple modular redundant (TMR) in programmable resources that are configurable with 6T configuration memory cells, along with a voting circuit that is implemented in programmable resources that are configurable with 12T configuration memory cells. Instead of implementing a critical portion of a circuit design on programmable resources that are configured with configuration memory having 12T memory cells, the critical portion may be implemented as a TMR circuit on programmable resources that are configured with configuration memory having 6T memory cells. The voting circuit may be implemented on programmable resources that are configured with configuration memory having 12T memory cells, which reduces susceptibility of the voting circuit to an SEU. - The critical portion of the circuit design is shown as being implemented as
blocks Blocks Blocks voting circuit 314. The instances of the critical portion of the circuit design and the connections of the voting circuit may be implemented on programmable resources that are configurable with 6T configuration memory cells, because the circuitry is triplicated. The voting circuit may be implemented on programmable logic resources and programmable interconnect resources that are configurable with 12T configuration memory cells, which reduces susceptibility of the voting circuit to SEUs. Thevoting circuit 314 will output expected results as long as no more than one of theinstances interconnect circuits - The non-critical portions of the circuit design may be implemented on programmable logic resources and programmable interconnect resources that are configurable with 6T configuration memory cells. For example,
non-critical portion 316 provides input to the TMR circuit (the critical portion), andnon-critical portion 318 receives output from the critical portion via thevoting circuit 314.Programmable interconnect resources 309 connect thenon-critical portion 316 to theTMR instances programmable interconnect resources 308 are configurable with 12T configuration memory cells. -
FIG. 4 shows an example of a computing arrangement that may be configured to implement the processes and data structures described herein.Processor computing arrangement 500 includes one ormore processors 502 that are programmed according to the executable computer code, aclock signal generator 504, amemory arrangement 506, astorage arrangement 508, and an input/output control unit 510, all coupled to ahost bus 512. Thearrangement 500 may be implemented with separate components on a circuit board or may be implemented internally within an integrated circuit. When implemented internally within an integrated circuit, the processor computing arrangement is otherwise known as a microcontroller. - The architecture of the computing arrangement depends on implementation requirements as would be recognized by those skilled in the art. The processor(s) 502 may be one or more general purpose processors, or a combination of one or more general purpose processors and suitable coprocessors, or one or more specialized processors (e.g., RISC, CISC, pipelined, etc.).
- The
memory arrangement 506 typically includes multiple levels of cache memory, and a main memory. Thestorage arrangement 508 may include local and/or remote persistent storage, such as provided by magnetic disks (not shown), flash, EPROM, or other non-volatile data storage. The storage unit may be read or read/write capable. Further, thememory arrangement 506 andstorage arrangement 508 may be combined in a single arrangement. - The processor(s) 502 executes the software in
storage arrangement 508 and/ormemory arrangement 506, reads data from and stores data to thestorage arrangement 508 and/ormemory arrangement 506, and communicates with external devices through the input/output control arrangement 510. These functions are synchronized by theclock signal generator 504. The resource of the computing arrangement may be managed by either an operating system (not shown), or a hardware control unit (not shown). -
FIG. 5 shows a programmable integrated circuit (IC) 600 on which the disclosed circuits may be implemented. The programmable IC may also be referred to as a System On Chip (SOC) that includes field programmable gate array logic (FPGA) along with other programmable resources. FPGA logic may include several different types of programmable logic blocks in the array. For example,FIG. 5 illustratesprogrammable IC 600 that includes a large number of different programmable tiles including multi-gigabit transceivers (MGTs) 601, configurable logic blocks (CLBs) 602, random access memory blocks (BRAMs) 603, input/output blocks (lOBs) 604, configuration and clocking logic (CONFIG/CLOCKS) 605, digital signal processing blocks (DSPs) 606, specialized input/output blocks (I/O) 607, for example, clock ports, and otherprogrammable logic 608 such as digital clock managers, analog-to-digital converters, system monitoring logic, and so forth. Some programmable IC having FPGA logic also include dedicated processor blocks (PROC) 610 and internal and external reconfiguration ports (not shown). - In some FPGA logic, each programmable tile includes a programmable interconnect element (INT) 611 having standardized connections to and from a corresponding interconnect element in each adjacent tile. Therefore, the programmable interconnect elements taken together implement the programmable interconnect structure for the illustrated FPGA logic. The programmable
interconnect element INT 611 also includes the connections to and from the programmable logic element within the same tile, as shown by the examples included at the top ofFIG. 5 . - For example, a
CLB 602 can include a configurablelogic element CLE 612 that can be programmed to implement user logic, plus a single programmableinterconnect element INT 611. ABRAM 603 can include a BRAM logic element (BRL) 613 in addition to one or more programmable interconnect elements. Typically, the number of interconnect elements included in a tile depends on the height of the tile. In the pictured embodiment, a BRAM tile has the same height as five CLBs, but other numbers (e.g., four) can also be used. ADSP tile 606 can include a DSP logic element (DSPL) 614 in addition to an appropriate number of programmable interconnect elements. AnIOB 604 can include, for example, two instances of an input/output logic element (IOL) 615 in addition to one instance of the programmableinterconnect element INT 611. As will be clear to those of skill in the art, the actual I/O bond pads connected, for example, to the I/O logic element 615, are manufactured using metal layered above the various illustrated logic blocks, and typically are not confined to the area of the input/output logic element 615. - In the pictured embodiment, a columnar area near the center of the die (shown shaded in
FIG. 5 ) is used for configuration, clock, and other control logic.Horizontal areas 609 extending from this column are used to distribute the clocks and configuration signals across the breadth of the programmable IC. - Some programmable ICs utilizing the architecture illustrated in
FIG. 5 include additional logic blocks that disrupt the regular columnar structure making up a large part of the programmable IC. The additional logic blocks can be programmable blocks and/or dedicated logic. For example, theprocessor block PROC 610 shown inFIG. 5 spans several columns of CLBs and BRAMs. - Note that
FIG. 5 is intended to illustrate only an exemplary programmable IC architecture. The numbers of logic blocks in a column, the relative widths of the columns, the number and order of columns, the types of logic blocks included in the columns, the relative sizes of the logic blocks, and the interconnect/logic implementations included at the top ofFIG. 5 are purely exemplary. For example, in an actual programmable IC, more than one adjacent column of CLBs is typically included wherever the CLBs appear, to facilitate the efficient implementation of user logic. - A number of examples are provided.
- In one example, a method of generating an implementation of a circuit design on a programmable integrated circuit is provided. Such method may include, on a programmed processor, performing operations of: inputting the circuit design; generating first data for implementing the circuit design; determining a critical portion and a non-critical portion of the circuit design; generating second data for programming configuration memory cells of the programmable IC to implement the circuit design; wherein a first subset of the second data is assigned to program a first type of configuration memory cells to implement the critical portion of the circuit design on a first subset of programmable logic resources and a first subset of programmable interconnect resources of the programmable IC; wherein a second subset of the second data is assigned to program a second type of configuration memory cells to implement the non-critical portion of the circuit design on a second subset of programmable logic resources and a second subset of programmable interconnect resources of the programmable IC; and storing the second data in an electronically readable storage medium.
- In some such methods, the first type of configuration memory cells may have greater immunity to single event upsets (SEUs) than the second type of configuration memory cells.
- In some such methods, the first type of configuration memory cells are 12T memory cells and the second type of configuration memory cells are 6T memory cells.
- In some such methods, the determining of the critical portion includes determining lookup tables (LUTs) having numbers of used inputs greater than a threshold.
- In some such methods, the first subset of the second data includes configuration data that connects the first subset of programmable logic resources to a first subset of memory resources of the programmable IC via the first subset of programmable interconnect resources for storage of data processed by the first subset of programmable logic resources; and the first subset of memory resources is implemented by 12T memory cells.
- In some such methods, the second subset of the second data includes configuration data that connects the second subset of programmable logic resources to a second subset of memory resources of the programmable IC via the second subset of programmable interconnect resources for storage of data processed by the second subset of programmable logic resources; and the second subset of memory resources is implemented by 6T memory cells.
- In some such methods, the determining of the critical portion includes determining lookup tables (LUTs) having numbers of used inputs greater than a threshold; and the first type of configuration memory cells have greater immunity to single event upsets (SEUs) than the second type of configuration memory cells.
- In some such methods, the determining of the critical portion includes determining lookup tables (LUTs) having numbers of used inputs greater than a threshold; and the first type of configuration memory cells are 12T memory cells and the second type of configuration memory cells are 6T memory cells.
- In some such methods, the determining of the critical portion includes determining lookup tables (LUTs) having numbers of used inputs greater than a threshold; and the first subset of the second data includes configuration data that connects the first subset of programmable logic resources to a first subset of memory resources of the programmable IC via the first subset of programmable interconnect resources for storage of data processed by the first subset of programmable logic resources, the first subset of memory resources implemented by 12T memory cells.
- In another example, a method of generating an implementation of a circuit design on a programmable integrated circuit is provided. Such a method may include: on a programmed processor, performing operations of: inputting the circuit design; generating first data for implementing the circuit design; determining a critical portion and a non-critical portion of the circuit design; generating second data for programming configuration memory cells of the programmable IC to implement the circuit design; wherein a first subset of the second data is assigned to
program 6T configuration memory cells of the programmable IC to implement three or more instances of the critical portion of the circuit design on a first subset of programmable logic resources and a first subset of programmable interconnect resources of the programmable IC; and wherein a second subset of the second data is assigned toprogram 12T configuration memory cells of the programmable IC to implement a voting circuit on a second subset of programmable logic resources and a second subset of programmable interconnect resources of the programmable IC, the voting circuit coupled to receive output signals from the three or more instances of the critical portion of the circuit design; storing the second data in an electronically readable storage medium. - In some such methods, the second data includes: a third subset of the second data for
programming 6T configuration memory cells of the programmable IC to implement the non-critical portion of the circuit design on a third subset of programmable logic resources and a third subset of programmable interconnect resources of the programmable IC. - In such methods, the determining of the critical portion includes determining lookup tables (LUTs) having numbers of used inputs greater than a threshold.
- A programmable IC may be provided. Such programmable IC may include: a configuration memory including a plurality of 6T memory cells and a plurality of 12T memory cells; programmable interconnect resources coupled to the configuration memory, wherein a first subset of the programmable interconnect resources are programmable by a subset of the 6T memory cells, and a second subset of the programmable interconnect resources are programmable by a subset of the 12T memory cells; programmable logic resources coupled to the configuration memory, wherein a first subset of the programmable logic resources are programmable by a subset of the 6T memory cells, and a second subset of the programmable logic resources are programmable by a subset of the 12T memory cells; and programmable input/output (I/O) resources coupled to the configuration memory.
- Some such ICs may further include memory resources for storage of data processed by the programmable logic resources, wherein: the memory resources are connectable to the programmable logic resources via the programmable interconnect resources; a first subset of the memory resources are 6T memory cells; and a second subset of the memory resources are 12T memory cells.
- Some such ICs may further include: a triple modular redundant (TMR) circuit implemented in the first subset of the programmable interconnect resources and the first subset of the programmable logic resources; a voting circuit implemented in the second subset of the programmable interconnect resources and the second subset of programmable interconnect resources, the voting circuit coupled to the TMR circuit via the first subset of programmable interconnect resources.
- Some such ICs may further include: a first portion of a circuit design implemented on the first subset of programmable logic resources and the first subset of programmable interconnect resources of the programmable IC; and a second portion of the circuit design implemented on the second subset of programmable logic resources and the second subset of programmable interconnect resources of the programmable IC.
- Some such ICs, the plurality of 6T memory cells is greater in number than the plurality of 12T memory cells.
- Though aspects and features may in some cases be described in individual figures, it will be appreciated that features from one figure can be combined with features of another figure even though the combination is not explicitly shown or explicitly described as a combination.
- The methods and system are thought to be applicable to a variety of systems for processing a circuit design for protecting against SEUs. Other aspects and features will be apparent to those skilled in the art from consideration of the specification. It is intended that the specification and drawings be considered as examples only, with a true scope of the invention being indicated by the following claims.
Claims (12)
- A method of generating an implementation of a circuit design on a programmable integrated circuit (100), the circuit design having a critical portion and a non-critical portion, wherein the programmable integrated circuit comprises:a configuration memory including a plurality of memory cells of a first type (118) and a plurality of memory cells of a second type (120); programmable interconnect resources coupled to the configuration memory, wherein a first subset (106) of the programmable interconnect resources are programmable by a subset of the configuration memory cells of the first type, and a second subset (108) of the programmable interconnect resources are programmable by a subset of the configuration memory cells of the second type;programmable logic resources coupled to the configuration memory, wherein a first subset (102) of the programmable logic resources are programmable by a subset of the configuration memory cells of the first type, and a second subset (104) of the programmable logic resources are programmable by a subset of the configuration memory cells of the second type;wherein the first type of configuration memory cells have greater immunity to single event upsets than the second type of configuration memory cells;the method comprising:
on a programmed processor, performing operations of:inputting the circuit design;generating initial data for implementing the circuit design by synthesizing the circuit design;determining the critical portion and the non-critical portion of the circuit design;generating second data for programming configuration memory cells of the programmable integrated circuit to implement the circuit design by mapping, placing and routing the circuit design;wherein a first subset of the second data is assigned to program configuration memory cells of the first type to implement a voting circuit for the critical portion of the circuit design on the first subset of programmable logic resources and the first subset of programmable interconnect resources of the programmable integrated circuit;wherein a second subset of the second data is assigned to program configuration memory cells of the second type to implement the critical portion as a triple modular redundant circuit and the non-critical portion of the circuit design on the second subset of programmable logic resources and the second subset of programmable interconnect resources of the programmable integrated circuit;storing the second data in an electronically readable storage medium. - The method of claim 1, wherein the first type of configuration memory cells are 12T memory cells and the second type of configuration memory cells are 6T memory cells.
- The method of any of claims 1-2, wherein the determining of the critical portion includes determining lookup tables having numbers of used inputs greater than a threshold.
- The method of any of claims 1-3, wherein:the first subset of the second data includes configuration data that connects the first subset of programmable logic resources to a first subset of memory resources of the programmable integrated circuit via the first subset of programmable interconnect resources for storage of data processed by the first subset of programmable logic resources; andthe first subset of memory resources is implemented by 12T memory cells.
- The method of claim 4, wherein:the second subset of the second data includes configuration data that connects the second subset of programmable logic resources to a second subset of memory resources of the programmable integrated circuit via the second subset of programmable interconnect resources for storage of data processed by the second subset of programmable logic resources; andthe second subset of memory resources is implemented by 6T memory cells.
- The method of claim 1, wherein:the determining of the critical portion includes determining lookup tables having numbers of used inputs greater than a threshold; andthe first type of configuration memory cells have greater immunity to single event upsets than the second type of configuration memory cells.
- The method of claim 1, wherein:the determining of the critical portion includes determining lookup tables having numbers of used inputs greater than a threshold; andthe first type of configuration memory cells are 12T memory cells and the second type of configuration memory cells are 6T memory cells.
- The method of claim 1, wherein:the determining of the critical portion includes determining lookup tables having numbers of used inputs greater than a threshold; andthe first subset of the second data includes configuration data that connects the first subset of programmable logic resources to a first subset of memory resources of the programmable integrated circuit via the first subset of programmable interconnect resources for storage of data processed by the first subset of programmable logic resources, the first subset of memory resources implemented by 12T memory cells.
- A programmable integrated circuit (100) implementing a circuit design having a critical portion and a non-critical portion, comprising:a configuration memory including a plurality of memory cells of a first type (118) and a plurality of memory cells of a second type (120);programmable interconnect resources coupled to the configuration memory, wherein a first subset (106) of the programmable interconnect resources are programmable by a subset of the configuration memory cells of the first type, and a second subset (108) of the programmable interconnect resources are programmable by a subset of the configuration memory cells of the second type;programmable logic resources coupled to the configuration memory, wherein a first subset (102) of the programmable logic resources are programmable by a subset of the configuration memory cells of the first type, and a second subset (104) of the programmable logic resources are programmable by a subset of the configuration memory cells of the second type;wherein the first type of configuration memory cells have greater immunity to single event upsets than the second type of configuration memory cells;wherein the configuration memory cells are programmed according to the method of claim 1 such that the critical portion of the circuit design is implemented as a triple modular redundant circuit implemented in the second subset of the programmable interconnect resources and the second subset of the programmable logic resources, and a voting circuit implemented in the first subset of the programmable logic resources and the first subset of programmable interconnect resources, and the voting circuit is coupled to the triple modular redundant circuit via the second subset of programmable interconnect resources.
- The programmable integrated circuit of claim 9, further comprising memory resources for storage of data processed by the programmable logic resources, wherein:
the memory resources are connectable to the programmable logic resources via the programmable interconnect resources;
a first subset of the memory resources are 6T memory cells; and
a second subset of the memory resources are 12T memory cells. - The programmable integrated circuit of any of claims 9-10, further comprising:a first portion of a circuit design implemented on the first subset of programmable logic resources and the first subset of programmable interconnect resources of the programmable integrated circuit; anda second portion of the circuit design implemented on the second subset of programmable logic resources and the second subset of programmable interconnect resources of the programmable integrated circuit.
- The programmable integrated circuit of any of claims 9-11, wherein the plurality of 6T memory cells is greater in number than the plurality of 12T memory cells.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/330,922 US9275180B1 (en) | 2014-07-14 | 2014-07-14 | Programmable integrated circuit having different types of configuration memory |
PCT/US2015/039673 WO2016010808A1 (en) | 2014-07-14 | 2015-07-09 | Programmable integrated circuit having different types of configuration memory |
Publications (2)
Publication Number | Publication Date |
---|---|
EP3170261A1 EP3170261A1 (en) | 2017-05-24 |
EP3170261B1 true EP3170261B1 (en) | 2019-09-04 |
Family
ID=53716592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP15739743.1A Active EP3170261B1 (en) | 2014-07-14 | 2015-07-09 | Programmable integrated circuit having different types of configuration memory |
Country Status (6)
Country | Link |
---|---|
US (1) | US9275180B1 (en) |
EP (1) | EP3170261B1 (en) |
JP (1) | JP6603304B2 (en) |
KR (1) | KR102354318B1 (en) |
CN (1) | CN106537780B (en) |
WO (1) | WO2016010808A1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6326422B2 (en) * | 2013-09-30 | 2018-05-16 | 株式会社日立製作所 | Programmable logic device and logic integration tool |
CN111814207B (en) * | 2020-06-10 | 2024-09-10 | 深圳市中网信安技术有限公司 | Method and device for processing field programmable gate array data and readable storage medium |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001142928A (en) | 1999-11-16 | 2001-05-25 | Matsushita Electric Ind Co Ltd | Design method for semiconductor integrated circuit device |
US6621325B2 (en) | 2001-09-18 | 2003-09-16 | Xilinx, Inc. | Structures and methods for selectively applying a well bias to portions of a programmable device |
US7249010B1 (en) * | 2003-04-03 | 2007-07-24 | Xilinx, Inc. | Methods of estimating susceptibility to single event upsets for a design implemented in an FPGA |
CN101359908B (en) | 2005-04-29 | 2010-08-18 | 台湾积体电路制造股份有限公司 | Logic member based on programmable passing gate |
US8065644B1 (en) | 2008-03-14 | 2011-11-22 | Xilinx, Inc. | Reducing susceptibility of circuit designs to single event upsets |
US8504974B1 (en) * | 2011-09-14 | 2013-08-06 | Xilinx, Inc. | Analysis of circuit designs |
US9001583B2 (en) | 2012-10-15 | 2015-04-07 | Aplus Flash Technology, Inc. | On-chip HV and LV capacitors acting as the second back-up supplies for NVSRAM auto-store operation |
US9236353B2 (en) * | 2012-11-27 | 2016-01-12 | Xilinx, Inc. | Integrated circuit having improved radiation immunity |
CN103323715B (en) * | 2013-06-20 | 2015-08-05 | 中国空间技术研究院 | Particle fluence rate system of selection in large scale integrated circuit accelerator single particle experiment |
-
2014
- 2014-07-14 US US14/330,922 patent/US9275180B1/en active Active
-
2015
- 2015-07-09 KR KR1020177003876A patent/KR102354318B1/en active IP Right Grant
- 2015-07-09 WO PCT/US2015/039673 patent/WO2016010808A1/en active Application Filing
- 2015-07-09 JP JP2017502122A patent/JP6603304B2/en active Active
- 2015-07-09 EP EP15739743.1A patent/EP3170261B1/en active Active
- 2015-07-09 CN CN201580038277.6A patent/CN106537780B/en active Active
Non-Patent Citations (1)
Title |
---|
None * |
Also Published As
Publication number | Publication date |
---|---|
JP2017524295A (en) | 2017-08-24 |
CN106537780A (en) | 2017-03-22 |
CN106537780B (en) | 2020-04-07 |
WO2016010808A1 (en) | 2016-01-21 |
JP6603304B2 (en) | 2019-11-06 |
US9275180B1 (en) | 2016-03-01 |
KR102354318B1 (en) | 2022-01-20 |
EP3170261A1 (en) | 2017-05-24 |
KR20170033343A (en) | 2017-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8099625B1 (en) | Self-checking and self-correcting internal configuration port circuitry | |
US8786310B1 (en) | Partially programming an integrated circuit using control memory cells | |
US7852107B1 (en) | Single event upset mitigation | |
KR102544392B1 (en) | Mechanism for inter-processor interrupts in a heterogeneous multiprocessor system | |
US8719750B1 (en) | Placement and routing of a circuit design | |
US7212448B1 (en) | Method and apparatus for multiple context and high reliability operation of programmable logic devices | |
US7576557B1 (en) | Method and apparatus for mitigating one or more event upsets | |
US9213866B1 (en) | Circuits for and methods of preventing unauthorized access in an integrated circuit | |
US7298168B1 (en) | Method and apparatus for error mitigation of programmable logic device configuration memory | |
US7650585B1 (en) | Implementing a user design in a programmable logic device with single event upset mitigation | |
KR102415148B1 (en) | Voting circuit and self-correcting latch | |
US7541833B1 (en) | Validating partial reconfiguration of an integrated circuit | |
US7266020B1 (en) | Method and apparatus for address and data line usage in a multiple context programmable logic device | |
US20130002287A1 (en) | Apparatus for improving reliability of electronic circuitry and associated methods | |
US7250786B1 (en) | Method and apparatus for modular redundancy with alternative mode of operation | |
EP3170261B1 (en) | Programmable integrated circuit having different types of configuration memory | |
US8922242B1 (en) | Single event upset mitigation | |
US9183338B1 (en) | Single-event upset mitigation in circuit design for programmable integrated circuits | |
US8713409B1 (en) | Bit error mitigation | |
EP2641174B1 (en) | Classifying a criticality of a soft error and mitigating the soft error based on the criticality | |
US9484919B1 (en) | Selection of logic paths for redundancy | |
EP3355307B1 (en) | Methods and apparatus for reusing lookup table random-access memory (lutram) elements as configuration random-access memory (cram) elements | |
Harikrishna et al. | A survey on fault tolerance in FPGAs | |
US7490311B1 (en) | Reset manager | |
US9825632B1 (en) | Circuit for and method of preventing multi-bit upsets induced by single event transients |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
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 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20170214 |
|
AK | Designated contracting states |
Kind code of ref document: A1 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 |
|
DAV | Request for validation of the european patent (deleted) | ||
DAX | Request for extension of the european patent (deleted) | ||
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R079 Ref document number: 602015037172 Country of ref document: DE Free format text: PREVIOUS MAIN CLASS: H03K0019177000 Ipc: G06F0011180000 |
|
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: G06F 11/18 20060101AFI20180205BHEP Ipc: G06F 17/50 20060101ALI20180205BHEP Ipc: H03K 19/177 20060101ALI20180205BHEP Ipc: H03K 19/0175 20060101ALI20180205BHEP |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: GRANT OF PATENT IS INTENDED |
|
INTG | Intention to grant announced |
Effective date: 20180315 |
|
GRAJ | Information related to disapproval of communication of intention to grant by the applicant or resumption of examination proceedings by the epo deleted |
Free format text: ORIGINAL CODE: EPIDOSDIGR1 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
INTC | Intention to grant announced (deleted) | ||
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: GRANT OF PATENT IS INTENDED |
|
INTG | Intention to grant announced |
Effective date: 20181008 |
|
GRAJ | Information related to disapproval of communication of intention to grant by the applicant or resumption of examination proceedings by the epo deleted |
Free format text: ORIGINAL CODE: EPIDOSDIGR1 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: GRANT OF PATENT IS INTENDED |
|
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
INTC | Intention to grant announced (deleted) | ||
INTG | Intention to grant announced |
Effective date: 20190306 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE PATENT HAS BEEN GRANTED |
|
AK | Designated contracting states |
Kind code of ref document: B1 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 |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: REF Ref document number: 1176354 Country of ref document: AT Kind code of ref document: T Effective date: 20190915 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 602015037172 Country of ref document: DE |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: FG4D |
|
REG | Reference to a national code |
Ref country code: NL Ref legal event code: MP Effective date: 20190904 |
|
REG | Reference to a national code |
Ref country code: LT Ref legal event code: MG4D |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: BG Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20191204 Ref country code: NO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20191204 Ref country code: FI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 Ref country code: LT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 Ref country code: HR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 Ref country code: SE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: ES Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 Ref country code: AL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 Ref country code: LV Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 Ref country code: RS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 Ref country code: GR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20191205 |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: MK05 Ref document number: 1176354 Country of ref document: AT Kind code of ref document: T Effective date: 20190904 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: PT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200106 Ref country code: IT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 Ref country code: PL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 Ref country code: AT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 Ref country code: EE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 Ref country code: RO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 Ref country code: NL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: CZ Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 Ref country code: SK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 Ref country code: SM Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 Ref country code: IS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200224 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R097 Ref document number: 602015037172 Country of ref document: DE |
|
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
PG2D | Information on lapse in contracting state deleted |
Ref country code: IS |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 Ref country code: IS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200105 |
|
26N | No opposition filed |
Effective date: 20200605 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MC Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: PL |
|
REG | Reference to a national code |
Ref country code: BE Ref legal event code: MM Effective date: 20200731 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: CH Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20200731 Ref country code: LI Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20200731 Ref country code: LU Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20200709 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: BE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20200731 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: TR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 Ref country code: MT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 Ref country code: CY Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190904 |
|
P01 | Opt-out of the competence of the unified patent court (upc) registered |
Effective date: 20230530 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: IE Payment date: 20230622 Year of fee payment: 9 Ref country code: FR Payment date: 20230621 Year of fee payment: 9 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20230620 Year of fee payment: 9 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20230620 Year of fee payment: 9 |