Method for authenticating security level of semiconductor memory in integrated circuit

文档序号:1921895 发布日期:2021-12-03 浏览:22次 中文

阅读说明:本技术 对集成电路中的半导体存储器的安全级别进行认证的方法 (Method for authenticating security level of semiconductor memory in integrated circuit ) 是由 吴经纬 布明恩 万和舟 藤原英弘 杨秀丽 于 2020-05-27 设计创作,主要内容包括:本公开涉及对集成电路中的半导体存储器的安全级别进行认证的方法。一种方法包括:用一个或多个参数指定目标存储器宏;查找所述目标存储器宏中的功能块;以及基于基本单元的集合中的晶体管数量和面积分布来确定所述功能块的故障率。该方法包括:基于所述功能块的故障率,从存储器编译器生成针对所述目标存储器宏的故障模式分析。该方法包括:基于所述目标存储器宏的所述故障模式分析,确定所述目标存储器宏的安全级别。(The present disclosure relates to a method of authenticating a security level of a semiconductor memory in an integrated circuit. One method comprises the following steps: specifying a target memory macro with one or more parameters; searching for a functional block in the target memory macro; and determining a failure rate of the functional block based on the number of transistors and the area distribution in the set of basic cells. The method comprises the following steps: generating, from a memory compiler, a failure mode analysis for the target memory macro based on a failure rate of the functional block. The method comprises the following steps: determining a security level of the target memory macro based on the failure mode analysis of the target memory macro.)

1. A method of authenticating a security level of a semiconductor memory in an integrated circuit, comprising:

specifying a target memory macro with one or more parameters;

searching for a functional block in the target memory macro;

determining a failure rate of the functional block based on the number and area distribution of transistors in the set of elementary cells;

generating, from a memory compiler, a failure mode analysis for the target memory macro based on the failure rate of the functional block; and

determining a security level of the target memory macro based on the failure mode analysis of the target memory macro.

2. The method of claim 1, wherein the security level is selected from security levels used for automotive safety integrity level ASIL authentication.

3. The method of claim 1, further comprising:

generating the target memory macro together with the failure mode analysis from the memory compiler.

4. The method of claim 1, wherein the set of base units is selected from a set of memory macros.

5. The method of claim 1, wherein the set of base units is selected from leaf units used to construct a set of memory macros.

6. The method of claim 1, wherein determining the failure rate of the functional block comprises:

the failure rate of a functional block is determined based on the cumulative area occupied by the functional block and the cumulative number of transistors in the functional block.

7. The method of claim 1, wherein determining the failure rate of the functional block comprises:

and searching the static fault rate and the transient fault rate of the functional block.

8. The method of claim 1, wherein generating the failure mode analysis for the target memory macro comprises:

defining a failure mode and a failure mode distribution of the functional blocks; and

and searching the single-point fault rate and the multi-point fault rate of the functional block.

9. A computer-readable storage medium having executable code stored thereon, which when executed by a processor causes the processor to:

loading a table specifying the number of transistors and the area distribution in the set of elementary cells;

finding a function block in the target memory macro specified with one or more parameters;

determining a failure rate of the functional block based on the number of transistors and the area distribution in the set of base cells;

generating a failure mode analysis for the target memory macro based on the failure rate of the functional block; and

determining a security level of the target memory macro based on the failure mode analysis of the target memory macro.

10. A method of authenticating a security level of a semiconductor memory in an integrated circuit, comprising:

specifying a target memory macro with one or more parameters;

finding the base units in the target memory macro to form a set of base units;

searching the number and area distribution of transistors in the set of basic units;

searching for a functional block in the target memory macro;

determining a failure rate of the functional block based on the number of transistors in the set of base cells and the area distribution; and

generating a failure mode analysis for the target memory macro based on the failure rate of the functional block.

Technical Field

The present disclosure relates to a method of authenticating a security level of a semiconductor memory in an integrated circuit.

Background

Integrated Circuits (ICs) are widely used in a variety of electronic systems and devices, such as automobile controls, airplanes, data processing systems, portable devices, computers, and televisions. The reliability and safety requirements of many electronic systems may require that their subsystems (e.g., the IC components used) perform analysis techniques to obtain their failure rates, failure modes, and diagnostic capabilities. One of the commonly used analytical techniques is failure mode, impact and diagnostic analysis (FMEDA). In many manufacturing processes and protocols, part of the demand is the need for FMEDA analysis of memory ICs.

Disclosure of Invention

According to an embodiment of the present disclosure, there is provided a method of authenticating a security level of a semiconductor memory in an integrated circuit, including: specifying a target memory macro with one or more parameters; searching for a functional block in the target memory macro; determining a failure rate of the functional block based on the number and area distribution of transistors in the set of elementary cells; generating, from a memory compiler, a failure mode analysis for the target memory macro based on the failure rate of the functional block; and determining a security level of the target memory macro based on the failure mode analysis of the target memory macro.

According to another embodiment of the present disclosure, there is provided a computer-readable storage medium having stored thereon executable code, which when executed by a processor, causes the processor to perform the following: loading a table specifying the number of transistors and the area distribution in the set of elementary cells; finding a function block in the target memory macro specified with one or more parameters; determining a failure rate of the functional block based on the number of transistors and the area distribution in the set of base cells; generating a failure mode analysis for the target memory macro based on the failure rate of the functional block; and determining a security level of the target memory macro based on the failure mode analysis of the target memory macro.

According to yet another embodiment of the present disclosure, there is provided a method of authenticating a security level of a semiconductor memory in an integrated circuit, including: specifying a target memory macro with one or more parameters; finding the base units in the target memory macro to form a set of base units; searching the number and area distribution of transistors in the set of basic units; searching for a functional block in the target memory macro; determining a failure rate of the functional block based on the number of transistors in the set of base cells and the area distribution; and generating a failure mode analysis for the target memory macro based on the failure rate of the functional block.

Drawings

Various aspects of this disclosure may be best understood from the following detailed description when read in conjunction with the accompanying drawings. It is noted that, in accordance with standard practice in the industry, various features are not drawn to scale. In fact, the dimensions of the various features may be arbitrarily increased or reduced for clarity of discussion.

FIG. 1 is a flow diagram of a process of authenticating a security level of a memory macro, according to some embodiments.

FIG. 2 is a schematic diagram of a plan view of a Static Random Access Memory (SRAM) according to some embodiments.

Fig. 3 is a table listing transistor numbers and area distributions in a set of elementary cells, according to some embodiments.

FIG. 4 is a table listing the cumulative area and cumulative number of transistors associated with the functional blocks of the SRAM of FIG. 1 in accordance with some embodiments.

FIG. 5 is a table listing static failure rates and transient failure rates associated with functional blocks of the SRAM of FIG. 1, in accordance with some embodiments.

FIG. 6 is a table listing failure modes and failure mode distributions for two example functional blocks of the SRAM of FIG. 1, in accordance with some embodiments.

FIG. 7 is a table listing single point failure metrics and latent failure metrics for various security target violations (Safety good failures) calculated based on the table in FIG. 4, in accordance with some embodiments.

FIG. 8A is a table generated based on specified parameters of another target memory macro and based on a set of base units listed in table 300, according to some embodiments.

FIG. 8B is a table listing single point failure metrics and latent failure metrics for various security target violations calculated based on the table in FIG. 8A, in accordance with some embodiments.

FIG. 9A is a flow diagram of a process to authenticate a security level of a memory macro based on transistor and area distributions in a set of elementary cells, according to some embodiments.

FIG. 9B is a flow diagram of a process of generating a failure mode analysis of a target memory macro, according to some embodiments.

Fig. 10 is a block diagram of an Electronic Design Automation (EDA) system in accordance with some embodiments.

FIG. 11 is a block diagram of an Integrated Circuit (IC) manufacturing system and IC manufacturing flow associated therewith, in accordance with some embodiments.

Detailed Description

The following disclosure provides many different embodiments, or examples, for implementing different features of the provided subject matter. Specific examples of components, materials, values, steps, operations, and arrangements are described below to simplify the present disclosure. Of course, these are merely examples and are not intended to be limiting. Other components, values, operations, materials, arrangements, etc. are contemplated. For example, in the description below, forming a first feature over or on a second feature may include embodiments in which the first and second features are formed in direct contact, and may also include embodiments in which additional features may be formed between the first and second features, such that the first and second features may not be in direct contact. Further, the present disclosure may repeat reference numerals and/or letters in the various examples. This repetition is for the purpose of simplicity and clarity and does not in itself dictate a relationship between the various embodiments and/or configurations discussed.

Furthermore, spatially relative terms, such as "under," "below," "lower," "above," "upper," and the like, may be used herein for ease of description to describe one element or feature's relationship to another element(s) or feature as illustrated in the figures. Spatially relative terms are intended to encompass different orientations of the device in use or operation in addition to the orientation depicted in the figures. The device may be otherwise oriented (rotated 90 degrees or at other orientations) and the spatially relative descriptors used herein interpreted accordingly.

More and more ICs are designed in the form of Intellectual Property (IP) cores for use in the automotive field. Failure mode impact and diagnostic analysis (FMEDA) is a currently popular method for certifying the safety integrity level (ASIL) of an automobile using IP hardware and the safety standards defined by the International organization for standardization (ISO) under ISO-26262. Some commonly used IPs are memory macros (memory macros), such as Static Random Access Memory (SRAM) macros, Read Only Memory (ROM) macros, or Content Addressable Memory (CAM) macros.

SRAM macros are generally of various sizes and types, depending on the particular design of electronic system in which the one or more SRAM macros are used. In some embodiments, the size of the SRAM macros ranges from a few kilobytes to several hundred megabytes or to several gigabytes in measurement. In some embodiments, the type of SRAM macro differs in the number of ports of the SRAM bit cells used to construct the cell array in the SRAM macro (e.g., single port SRAM, dual port SRAM, and four port SRAM). In some embodiments, the architecture of the bitcells used to construct the cell array in the SRAM macro differs in the number of transistors in the SRAM bitcells (e.g., six transistor 6T SRAM cells, eight transistor 8T SRAM cells, ten transistor 10T SRAM cells, or twelve transistor 12T SRAM cells). In some embodiments, the type of SRAM macro is synchronous or asynchronous. In some embodiments, the type of SRAM macros differs in other aspects of the design, such as zero bus round trip (ZBT) SRAM, Double Data Rate (DDR) SRAM, or Quad Data Rate (QDR) SRAM. To improve the EDA process of SRAM macro design, in some embodiments, some memory compilers generate SRAM macros with different sizes and/or different types. For example, the particular size and particular type of SRAM macro generated by the memory compiler is determined by one or more parameters provided to the memory compiler.

When a particular SRAM macro is authenticated for an Automotive Safety Integrity Level (ASIL) as required by ISO-26262, the SRAM macro is divided into four ASIL levels: ASIL a, ASIL B, ASIL C, and ASIL D. To determine the ASIL level of the SRAM macro, a Single Point Failure Metric (SPFM) and a Latent Failure Metric (LFM) need to be calculated based on various failure rates of the SRAM macro, which is related to the specific design of the SRAM macro (e.g., the size and type of the SRAM macro). A method of authenticating ASIL security levels for a particular SRAM macro comprising: the functional blocks used to construct a particular SRAM are found, as well as the number of transistors in the various functional blocks and/or the area occupied by the various functional blocks. For each particular SRAM macro, the process of finding a functional block and the number and/or area of transistors of the finding functional block is performed specifically for the particular SRAM macro of interest. Since SRAM macros may vary in size and type, the process of authenticating each SRAM macro individually may result in reduced productivity efficiency when there are a large number of SRAM macros that need to be authenticated for ASIL security levels. In some embodiments, an improved process of authenticating SRAM macros using a memory compiler provides an improvement in authentication productivity.

FIG. 1 is a flow diagram of a process 100 of authenticating a security level of a memory macro, according to some embodiments. The process 100 includes blocks 120, 150, 155, 160, 170, 175, 180, 185, and 190. At block 120, the target memory macro is specified with one or more parameters. Examples of parameters for specifying a target memory macro include one or more of: a size parameter (e.g., a number in kilobytes, megabytes, or gigabytes) to specify the size of the memory, a port parameter (e.g., single port or dual port) to specify the number of ports in a bit cell, and a parameter to specify whether the memory is synchronous or asynchronous memory.

In some embodiments, process 100 in FIG. 1 is implemented in a memory compiler to authenticate the security level of a memory macro generated by the memory compiler. In some embodiments, when the target memory macro is generated by the memory compiler, the memory compiler receives as input the specified parameters from the configuration file. In some embodiments, the memory compiler generates a target memory macro having different views represented in multiple files. Examples of files generated by a memory compiler include a file to describe a schematic, a file to describe a layout, one or more files represented in a hardware description language (e.g., Verilog) framework for a behavioral model view, a logical view, a timing view, and a power view. In the configuration of the primitives, the target memory macro includes a file that describes the layout of the memory design.

In the process 100 of FIG. 1, at block 130, the base units in the target memory macro are identified to form a set of base units. The set of base units is selected for authenticating a security level of the memory macro. While the set of base units can be formed in a variety of different ways, in some embodiments the set of base units have one or more common characteristics. In some embodiments, each elementary unit constitutes a unit class or a representation of a unit type. In some embodiments, the set of base units has a sufficient number of unit classes to enable many different memory macros to be constructed using instances of the unit classes associated with the base units. In some embodiments, the set of base cells includes all unique cell types used to construct the SRAM macro. In an alternative embodiment, after all unique cell types used to construct the SRAM macro are identified, some cell types that are not relevant to the ASIL security level of the SRAM macro are not included in the set of base cells. In one embodiment, as shown in FIG. 2, the floorplan 200 of the SRAM is analyzed to find the basic cells of the expanded view (tile) that is used as the floorplan for the overlay layout design. In fig. 2, basic units for constructing the SRAM macro include a timer unit 202, a read/write controller unit 204, a data input unit 212, a data output unit 214, a sense amplifier unit 216, and a column multiplexer unit 218. The basic cells used to construct the SRAM macro also include a row predecoder decoder 221, a column predecoder decoder 222, a row address decoder 223, a column address decoder 224, word line drivers 226, and single bit cells used to form a cell array 230. In some embodiments, when the SRAM memory macro includes a Library Exchange Format (LEF) file (e.g., a file with an extension of ". LEF") for describing an abstract view of cells, the basic cells used to construct the SRAM macro are obtained by looking up the unique cell type in the LEF file. In some embodiments, leaf cells or expanded views of a plan view for an overlay layout design are analyzed to find base cells. Leaf cells, when used as an expanded view of a floor plan of an overlay layout design, typically specify the boundaries of the corresponding cell. In some embodiments, leaf cells for a floor plan of an overlay layout design are obtained by analyzing an LEF file because the LEF file includes information about the cell's boundaries, pin locations, and metal layer information.

In the process 100 of fig. 1, after a basic cell is selected (at block 130), the number of transistors and the area distribution in the set of basic cells is determined (at block 140). The failure rate of a given single basic cell is generally related to the number of transistors and the area occupied by a given single basic cell. Fig. 3 is a table 300 listing transistor numbers and area distributions in a set of elementary cells, in accordance with some embodiments. Table 300 includes columns 310, 320, and 330. Column 310 lists the names of selected base units from the set of base units. Column 320 lists the number of transistors used by a selected base cell from the set of base cells. Column 330 lists the area occupied by a selected base cell from the set of base cells. The format of table 300 in fig. 3 is provided as an example, and other formats for listing transistor numbers and area distributions are within the intended scope of the present disclosure.

Entries (e.g., rows) in table 300 map the selected base cell to a corresponding number of transistors in the selected base cell and a corresponding area occupied by the selected base cell. For example, in table 300, each of timer unit 202, read write controller unit 204, data input unit 212, data output unit 214, sense amplifier unit 216, and column multiplexer unit 218 has a number of transistors listed in column 320 as corresponding integers 445, 366, 137, 36, 22, and 156. Each of timer unit 202, read-write controller unit 204, data input unit 212, data output unit 214, sense amplifier unit 216, and column multiplexer unit 218 has an area in column 330 listed in square microns as corresponding real numbers 57.04, 33.36, 4.28, 6.46, 2.44, and 4.25. Further, in table 300, each of row predecoder decoder 221, column predecoder decoder 222, row address decoder 223, column address decoder 224, and word line drivers 226 has a transistor count listed in column 320 as corresponding integers 46, 204, 23, 121, and 44. Each of row predecode decoder 221, column predecode decoder 222, row address decoder 223, column address decoder 224, and word line drivers 226 has an area in column 330 listed in square microns as corresponding real numbers 127.94, 42.65, 69.57, 177.37, and 2.47. In table 300, bit cell 232 is a six transistor (6T) SRAM cell, which occupies an area of 0.09072 square microns.

In the process 100 of FIG. 1, after determining the number of transistors and the area distribution in the set of base cells (at block 140), the functional blocks in the target memory macro are determined (at block 150). As an example, when analyzing the plan view 200 of the SRAM in fig. 2, the functional blocks in the target memory macro include a functional block TIMER (TIMER), an R & W CONTROLLER (R & W CONTROLLER), DIN, DOUT, SA, YPASS, XPDEC, YPDEC, XDEC, YDEC, WLDRV, and a CELL ARRAY (CELL-ARRAY). In some embodiments, the target memory macro includes a file describing a physical view of the layout design, and the functional blocks are determined by the file describing the physical view. In some embodiments, the target memory macro includes a behavioral model file expressed in a hardware description language (e.g., Verilog), and the functional blocks are determined based on one or more high-level modules in the behavioral model file.

In fig. 2, the functional block timer includes a timer unit 202, and the functional block R & W controller includes a read/write controller unit 204. In fig. 2, the functional block DIN includes a plurality of instances of the data input unit 212, the functional block DOUT includes a plurality of instances of the data output unit 214, the functional block SA includes a plurality of instances of the sense amplifier unit 216, and the functional block YPASS includes a plurality of instances of the column multiplexer unit 218. In fig. 2, the functional block XPDEC includes a plurality of instances of the row predecoder decoder 221, the functional block YPDEC includes a plurality of instances of the column predecoder decoder 222, the functional block XDEC includes a plurality of instances of the row address decoder 223, the functional block YDEC includes a plurality of instances of the column address decoder 224, and the functional block WLDRV includes a plurality of instances of the word line driver 226. The functional block cell array typically includes bit cells 232 arranged in a two-dimensional pattern array.

In the process 100 of FIG. 1, at block 155, the cumulative area occupied by each functional block and the cumulative number of transistors in each functional block are calculated based on the number of transistors and the area distribution in the set of elementary cells obtained at block 140. For example, in FIG. 4, the table 400 has a plurality of rows, each row listing the cumulative area and cumulative number of transistors associated with one of the functional blocks of the SRAM of FIG. 1. In one example, table 400 is generated based on parameters of the target memory macro and based on the number of transistors and the area distribution in the set of elementary cells listed in table 300. In at least one embodiment, the parameters used to generate the target memory macros of table 400 include word width (designated 16384), word depth (designated 39), column number of column multiplexers (designated 16), and PM number of bitcells (designated 1). Table 400 includes columns 410, 420, 430, 440, 450, 460, and 470.

In table 400, column 420 lists the names of the function blocks. The listed functional blocks include timers, R & W controllers, DIN, DOUT, SA, YPASS, XPDEC, YPDEC, XDEC, YDEC, WLDRV, and cell arrays. Column 410 identifies the component type for each functional block in column 420. The listed component types include CTRL ("control"), IO ("input and output"), DECODER (DECODER), and cell array. The function block timer and the R & W controller belong to the component type CTRL. The functional blocks DIN, DOUT, SA and YPASS belong to the component type IO. The functional blocks XPDEC, YPDEC, XDEC, YDEC and WLDRV belong to the component-type decoder. The functional block unit array belongs to a component type unit array. The functional blocks and component types in table 400 are provided as examples, and various additional functional blocks and various additional component types are within the intended scope of the present disclosure.

In table 400, column 430 lists the cumulative number of transistors of the functional block. Column 440 lists the transistor distribution in each row contributed by the cumulative number of transistors in the same row, measured as a percentage within the component type corresponding to the functional block in the same row. Column 450 lists the transistor distribution in each row contributed by the cumulative number of transistors in the same row, measured as a percentage within the target memory macro. For example, the cumulative number of transistors used for functional blocks DIN, DOUT, SA, and YPASS are listed in column 430 as integers 5480, 1440, 1760, and 49920, respectively. The transistor distributions measured in percentage form within the component type IO are listed in column 440 as 9%, 2%, 3%, and 85% for functional blocks DIN, DOUT, SA, and YPASS, respectively. The transistor distributions measured in percentages within the target memory macro for functional blocks DIN, DOUT, SA, and YPASS are listed in column 450 as 0.14%, 0.04%, and 1.25%, respectively.

In table 400, column 460 lists the cumulative area of the function blocks. Column 470 lists the cumulative area in each row contributed by the cumulative area of the functional blocks in the same row, measured as a percentage within the target memory macro. For example, the cumulative areas of the functional blocks DIN, DOUT, SA, and YPASS are listed in column 460 as real numbers 1380.56, 4134.25, 787.05, and 5483.52, respectively. The cumulative areas of the functional blocks DIN, DOUT, SA, and YPASS, measured as percentages within the target memory macro, are listed in column 470 as 1.81%, 5.41%, 1.03%, and 7.17%, respectively.

In the process 100 of FIG. 1, at block 160, a failure rate of the functional blocks in the target memory macro is determined based on the cumulative area and cumulative number of transistors obtained at block 150. By way of example, the table 500 in FIG. 5 has a plurality of rows, each row listing a static failure rate and a transient failure rate associated with one of the functional blocks of the SRAM in FIG. 1. Table 500 includes columns 510, 520, 530, 540, 550, 560, 570, and 580. The integers listed sequentially in column 510 are index numbers that identify the various rows of table 500. The functional blocks listed in column 520 include timers, R & W controllers, DIN, DOUT, SA, YPASS, XPDEC, YPDEC, XDEC, YDEC, WLDRV, and cell arrays. The component types listed in column 530 include CTRL, IO, decoders, and cell arrays. The format of table 500 in fig. 5 is provided as an example, and other formats for listing static fault rates and transient fault rates are within the intended scope of the present disclosure.

In table 500, the static failure rates and the transient failure rates of the functional blocks are listed in columns 540 and 550, respectively. The cumulative number of transistors and the cumulative area of the functional blocks are listed in columns 560 and 570, respectively. The transient profile of a transient type device (e.g., latch, flip-flop, or bit memory) is listed in column 580. For example, the static failure rates of functional blocks DIN, DOUT, SA, and YPASS (all component types IO) are listed in column 540 as real numbers 3.421E-05, 8.991E-06, 1.099E-05, and 3.117E-04, respectively. The transient failure rates of functional blocks DIN, DOUT, SA and YPASS (all component types IO) are listed in column 550 as real numbers 0.001, 0.000 and 0.000, respectively.

In table 500, the cumulative number of transistors of functional blocks DIN, DOUT, SA, and YPASS are listed in column 560 as integers 5480, 1440, 1760, and 49920, respectively (which are the same as the integers in column 430 of table 400). The cumulative areas of the functional blocks DIN, DOUT, SA and YPASS are listed in column 570 as real numbers 1380.56, 4134.25, 787.05 and 5483.52, respectively (which are the same as the real numbers in column 460 of table 400). The transient distributions of the functional blocks DIN, DOUT, SA and YPASS are listed in column 580 as real numbers 80.00, 40.00, 0.00 and 0.00, respectively.

In table 500, the functional block cell array has more transistors, occupies more area, and has more transient type devices (e.g., latches, flip-flops, or bit memories) than the other functional blocks in the table. The static failure rate of the functional block cell array (1201E-03) is higher than the static failure rate of all other functional blocks in the table. The transient failure rate (9.998) of the functional block cell array is higher than the transient failure rate of all other functional blocks in the table.

In the process 100 of FIG. 1, at block 170, failure modes for functional blocks are defined. Then, at block 175, the failure mode distribution of the functional blocks is determined. As an example, table 600 in fig. 6 is generated to list the failure modes and failure mode distributions of two example functional blocks (i.e., the timer and the R & W controller) of the SRAM in fig. 1. In some embodiments, the failure mode and failure mode distribution of one or more other functional blocks (or all functional blocks) in the target memory macro are listed in a table similar to table 600. The format of table 600 in fig. 6 is provided as an example, and other formats for listing failure modes and failure mode distributions are within the intended scope of the present disclosure.

In FIG. 6, table 600 includes columns 610, 620, 630, 640, 650, 660, 670, 680, 690, and 695. The integers listed sequentially in column 610 are the identification numbers of the functional blocks in table 600. Each function block has a unique identification number. The names of the function blocks are listed in column 620. The component types of the function blocks are listed in column 630. The single point failure rates of the function blocks are listed in column 640. The multi-point failure rates of the functional blocks are listed in column 650. The names of the failure modes of the functional blocks are listed in column 660. The failure mode distributions of the functional blocks are listed in column 670. The failure mode distribution of the functional blocks for the transient failure is listed in column 680. In column 690, a description of the impact of the failure mode is listed. Each entry in column 695 of table 600 identifies a security target violation (SGV) status, i.e., whether the SGV corresponding to the failure mode in the entry row needs to be used in the overall failure rate calculation. For example, it is recognized (the letter "N" in column 695) that the overall failure rate calculation need not include a failure rate due to a failure mode in which the memory has not entered the power management mode.

In the process 100 of FIG. 1, after determining the failure mode distribution of the functional blocks (at block 175), single point failure rates and multi-point failure rates of the functional blocks are calculated (at block 180). Then, at block 185, single point failure metrics and latent failure metrics for the various SGVs are calculated. By way of example, table 700 in FIG. 7 has a plurality of rows, each row associated with a type of SGV. Table 700 includes columns 710, 720, 730, 740, and 750. The names of the types of SGVs are listed in column 710. Single Point Failure Metrics (SPFMs) for various SGVs are listed in column 720. The Latent Fault Metrics (LFMs) for the various SGVs are listed in column 730. Total single point failure rates (Σ λ) associated with various SGVsSPF) Is listed in column 740. Total multipoint failure rates (Σ λ) associated with various SGVsMPF) Are listed in column 750. The format of table 700 in fig. 7 is provided as an example, and other formats for listing single point failure metrics and latent failure metrics are within the intended scope of the present disclosure.

As shown in the first row of table 700, the total single point failure rate (Σ λ) associated with an SGV with corrupted output dataSPF) And total multipoint failure rate (Σ λ)MPF) The scores should be 6.020877E-05 and 0.000000E +00, while SPFM and LFM for SGV with corrupted output data correspond to 85.125% and 100.000%. As shown in the second row of table 700, the total single point failure rate (Σ λ) associated with an SGV for an overall IP (or chip) metricSPF) And total multipoint failure rate (Σ λ)MPF) Corresponding to 00.00006021 and 0.00000000, while the SPFM and LFM of SGV measured in total IP (or chip) correspond to 85.125% and 100.000%. As shown in the third row of table 700, the total single point failure rate (∑ λ) associated with SGV for the overall IP (or chip) measure of transient failureSPF) And total multipoint failure rate (Σ λ)MPF) The SPFM and LFM for SGV correspond to 0.1012 and 0.0000, while the overall IP (or chip) metric for transient faults corresponds to 98.988% and 100.000%.

In process 100 of FIG. 1, after the single point of failure metrics and the latent failure metrics for the various SGVs are calculated (at block 185), the security level of the target memory macro is determined (at block 190). In some embodiments, the security level of the target memory macro is selected from security levels used for Automotive Safety Integrity Level (ASIL) authentication. ASIL security levels defined under ISO-26262 include ASIL A, ASIL B, ASIL C, and ASIL D. The minimum SPFM requirements and minimum LFM requirements for the four ASIL security levels are listed in the following table:

in one embodiment, to determine the ASIL security levels of the target memory macro (transistors and area distributions are listed in table 400), the values of SPFM and LFM for the SGV in table 700 are compared to the minimum SPFM requirement and the minimum LFM requirement for the four ASIL security levels. Since the SPFM for the overall IP of the target memory macro in table 700 is only 85.125%, below the minimum requirement of 90% for ASIL B, the ASIL security level (transistors and area distributions are listed in table 400) of the target memory macro is ASIL a.

In the above example of determining the ASIL security level of a target memory macro having plan view 200 of fig. 2, the transistors and area distributions listed in table 400 are determined based on the number of transistors and area distributions in the set of elementary cells listed in table 300 using the specified parameters of the target memory macro. To generate table 400, the specified word width is 16384, the specified word depth is 39, the number of multiplexed columns of the specified column multiplexer is 16, and the specified number of PMs is 1.

In another example, the same set of elementary cells as listed in table 300 is used to determine the ASIL security level for a second target memory macro having the same plan view 200 as fig. 2, but with different specified parameters than the target memory macro used to generate the transistor and area distributions in table 400. FIG. 8A is a table 800 generated based on specified parameters of a second target memory macro and based on a set of base units listed in table 300, according to some embodiments. To generate table 800, the specified word width is 8192, the specified word depth is 16, the number of multiplexed columns of the specified column multiplexer is 16, and the specified number of PMs is 0. Based on table 800, following the operations at blocks 170, 175, and 180, single point failure metrics and latent failure metrics for the various SGVs are calculated for the second target memory macro (at block 185). The results of the calculations are listed in table 850 in fig. 8B.

As shown in the first row of table 850, the total single point failure rate (Σ λ) associated with an SGV with corrupted output dataSPF) And total multipoint failure rate (Σ λ)MPF) Corresponding to 5.941166E-05 and 0.000000E +00, while SPFM and LFM for SGV with corrupted output data correspond to 84.513% and 100.000%. As shown in the second row of table 850, a total single point associated with SGV of the overall IP (or chip) metricFailure rate (Σ λ)SPF) And total multipoint failure rate (Σ λ)MPF) Corresponding to 0.00005941 and 0.00000000, while the SPFM and LFM of SGV measured in total IP (or chip) correspond to 84.513% and 100.000%. As shown in the third row of table 850, the total single point failure rate (∑ λ) associated with SGV for the total IP (or chip) measure of transient failureSPF) And total multipoint failure rate (Σ λ)MPF) The SPFM and LFM for SGV correspond to 0.1012 and 0.0000, while the total IP (or chip) metric for transient faults corresponds to 98.988% and 100.000%.

The ASIL security level of the second target memory macro is determined when the SPFM and LFM values of the SGV in table 850 are compared to the SPFM and LFM requirements of the ASIL security level. Since the SPFM of the overall IP of the second target memory macro is only 84.513%, below the minimum requirement of 90% for ASIL B, the ASIL security level (transistors and area distribution are listed in table 800 in fig. 8A) of the second target memory macro is ASIL a.

Fig. 9A is a flow diagram of a process 900 for authenticating a security level of a memory macro based on transistor and area distributions in a set of elementary cells, according to some embodiments. The process 900 includes block 910 as well as block 950. At block 910, a target memory macro is specified with one or more parameters. In some embodiments, the memory size is specified with a size parameter (e.g., a number in kilobytes, megabytes, or gigabytes). In some embodiments, the type of bit cell (e.g., a one-port bit cell, a two-port bit cell, or a two-port bit cell) is specified with a characteristic parameter. In some embodiments, whether the target memory macro provides synchronous memory or asynchronous memory is specified by one of the parameters.

At block 920, the functional blocks in the target memory macro are determined. In some embodiments, the target memory macro includes a file describing a physical view of the layout design, and the functional blocks are determined by the file describing the physical view. In some embodiments, the target memory macro includes a behavioral model file expressed in a hardware description language (e.g., Verilog), and the behavioral model file is used to determine the functional blocks. In some embodiments, the functional blocks are determined based on one or more high-level modules in the behavioral model file. In some embodiments, high-level modules for functional blocks include one or more of the following: a module for defining a timer, a module for defining a read/write controller, a module for defining sense amplifiers, a module for defining column multiplexers, a module for row predecoder decoders, a module for defining row address decoders, a module for defining column address decoders, a module for defining word line drivers 226, a module for defining an array of cells, and a module for defining various inputs and outputs of the array of cells.

At block 930, a failure rate of the functional block is determined based on the number of transistors and the area distribution in the set of base cells. In some embodiments, the set of base units formed from the base unit is selected from the one or more memory macros during a separate process that is independent of the operations at blocks 910 and 920. In some embodiments, the set of base cells is used in a process to authenticate the security level of additional memory macros for other types of bitcells than bitcells in table 300. For example, in some embodiments, when the memory macro for security level authentication includes bitcells in the form of eight transistor (8T) SRAM cells, the table for listing the number of transistors and the area distribution in the set of elementary cells typically includes 8T SRAM cells as one of the entries. That is, the number of transistors listed in the table and the area occupied by the 8T SRAM cell are functionally equivalent to table 300. Similarly, in some embodiments, when the memory macro for security level authentication includes other design variations of the basic cells in table 300 (e.g., other basic cell designs for row predecoder decoders, column predecoder decoders, row address decoders, and column address decoders), the number of transistors and the area occupied by each basic cell with the other design variations are also listed in a table functionally equivalent to table 300.

In some embodiments, the base cell is provided in the form of a parameterized cell (as an entry in a table to list the corresponding number and corresponding area of transistors), and the corresponding number and corresponding area of transistors is determined by parameters used to specify the parameterized base cell. For example, when the parameterized basic cells of the column address decoder 324 include a number of addressable columns, in some embodiments, the corresponding number and corresponding area of transistors of the basic cells of the column address decoder depend on the number of addressable columns.

At block 930, to determine a failure rate of one of the functional blocks, an accumulated number and an accumulated area of transistors associated with the functional block are calculated based on the number of transistors in the set of base cells and the area distribution. In the embodiment of process 100 of FIG. 1, the set of base units is obtained from a selection of base units in the target memory macro. In an alternative embodiment, the set of base units is obtained in a process that is not dependent on the selection of base units in the target memory macro. For example, in some embodiments, the set of base units is formed prior to identifying or specifying the target memory macro with the one or more parameters. In some embodiments, even if the set of base units is obtained after the target memory macro is specified, the set of base units cannot be obtained by selecting base units in the specified target memory macro. In some embodiments, when a set of base units is designed for use in authenticating the security level of many memory macros of various sizes, types, and features, the set of base units includes base units selected from more than one memory macro (e.g., a set of memory macros).

In the process 900 of FIG. 9A, after determining the failure rate of the functional block (at block 930), a failure mode analysis is generated for the target memory macro (at block 940). FIG. 9B is a flow diagram of a process 940 for generating a failure mode analysis of a target memory macro, according to some embodiments. Process 940 includes blocks 942, 944, 946, and 948. At block 942, a failure mode for the functional block is defined. For example, for failure mode analysis of a target memory macro having a floor plan as shown in FIG. 2, failure modes for two example functional blocks (e.g., a timer and a read-write controller) are defined and listed in table 600 of FIG. 6. At block 944, the failure mode distribution for the functional blocks is determined. In the example shown in FIG. 6, two example functional blocks (e.g., timer and read-write) are also listed in table 600Controller) failure mode distribution. At block 946, a single point failure rate and a multiple point failure rate for the function block are calculated. At block 948, single point failure metrics and latent failure metrics for various security target violations are calculated. For example, for failure mode analysis of a target memory macro with a floor plan as shown in FIG. 2, the calculated single point failure rate (e.g., Σ λ) based on the functional blocksSPF) And calculated multipoint failure rate (e.g., Σ λ)MPF) Single point failure metrics (e.g., SPFM) and latent failure metrics (e.g., LFM) for relevant security target violations are listed in table 700 of fig. 7.

In the process 900 of FIG. 9A, after generating a failure mode analysis for the target memory macro (at block 940), a security level of the target memory macro is determined based on the failure mode analysis determined for the target memory macro (at block 950). For example, the security level of the target memory macro having the floor plan shown in FIG. 2 is determined from the single point of failure metrics (e.g., SPFM) and the latent failure metrics (e.g., LFM) listed in table 700 of FIG. 7.

Fig. 10 is a block diagram of an Electronic Design Automation (EDA) system 900 according to some embodiments.

In some embodiments, the EDA system 1000 includes an APR system. The methods of designing a layout described herein represent that a routing arrangement according to one or more embodiments can be implemented, for example, using an EDA system 1000 according to some embodiments.

In some embodiments, the EDA system 1000 is a general purpose computing device including a hardware processor 1002 and a non-transitory computer readable storage medium 1004. The storage medium 1004 is encoded with, i.e., stores, computer program code 1006 (i.e., a set of executable instructions), among other things. Execution of the computer program code 1006 by the hardware processor 1002 represents (at least in part) an EDA tool that implements a portion or all of the methods described herein in accordance with one or more embodiments (processes and/or methods described below).

The processor 1002 is electrically coupled to the computer-readable storage medium 1004 via a bus 1008. The processor 1002 is also electrically coupled to an I/O interface 1010 through a bus 1008. The network interface 1012 is also electrically connected to the processor 1002 via the bus 1008. The network interface 1012 is connected to the network 1014, enabling the processor 1002 and the computer-readable storage medium 1004 to be connected to external elements via the network 1014. The processor 1002 is configured to execute computer program code 1006 encoded in a computer-readable storage medium 1004 to make the system 1000 available to perform some or all of the described processes and/or methods. In one or more embodiments, processor 1002 is a Central Processing Unit (CPU), multiprocessor, distributed processing system, Application Specific Integrated Circuit (ASIC), and/or suitable processing unit.

In one or more embodiments, the computer-readable storage medium 1004 is an electronic, magnetic, optical, electromagnetic, infrared, and/or semiconductor system (or apparatus or device). The computer-readable storage medium 1004 includes, for example, semiconductor or solid state memory, magnetic tape, a removable computer diskette, a Random Access Memory (RAM), a read-only memory (ROM), a rigid magnetic disk and/or an optical disk. In one or more embodiments using optical disks, the computer-readable storage medium 1004 includes a compact disk read only memory (CD-ROM), a compact disk read/write (CD-R/W), and/or a Digital Video Disk (DVD).

In one or more embodiments, the storage medium 1004 stores computer program code 1006, the computer program code 1006 being configured to make the system 1000 (where such execution represents (at least in part) an EDA tool) available to perform some or all of the processes and/or methods. In one or more embodiments, the storage medium 1004 also stores information that facilitates performing some or all of the described processes and/or methods. In one or more embodiments, the storage medium 1004 stores a library 1007 of standard cells including such standard cells as disclosed herein.

The EDA system 1000 includes an I/O interface 1010. The I/O interface 1010 is coupled to external circuitry. In one or more embodiments, the I/O interface 1010 includes a keyboard, keys, a mouse, a trackball, a trackpad, a touch screen, and/or cursor direction keys for communicating information and commands to the processor 1002.

The EDA system 1000 also includes a network interface 1012 coupled to the processor 1002. Network interface 1012 allows system 1000 to communicate with network 1014, to which one or more other computer systems are connected. Network interface 1012 comprises a wireless network interface, such as bluetooth, WIFI, WIMAX, GPRS, or WCDMA; or a wired network interface such as Ethernet, USB, or IEEE-1364. In one or more embodiments, some or all of the processes and/or methods are implemented in two or more systems 1000.

System 1000 is configured to receive information via I/O interface 1010. The information received through the I/O interface 1010 includes one or more of: instructions, data, design rules, libraries of standard cells, and/or other parameters for processing by the processor 1002. Information is transferred to the processor 1002 via the bus 1008. The EDA system 1000 is configured to receive information related to a UI through the I/O interface 1010. This information is stored in the computer-readable medium 1004 as a User Interface (UI) 1042.

In some embodiments, some or all of the processes and/or methods are implemented as a stand-alone software application for execution by a processor. In some embodiments, some or all of the processes and/or methods are implemented as software applications as part of additional software applications. In some embodiments, some or all of the processes and/or methods are implemented as plug-ins to software applications. In some embodiments, at least one of the processes and/or methods is implemented as a software application that is part of an EDA tool. In some embodiments, some or all of the processes and/or methods are implemented as software applications used by the EDA system 1000. In some embodiments, available from CADENCE DESIGN SYSTEMS corporation such asSuch a tool or another suitable layout generation tool generates a layout diagram that includes standard cells.

In some embodiments, these processes are implemented as functions of a program stored in a non-transitory computer-readable recording medium. Examples of non-transitory computer-readable recording media include, but are not limited to, external/removable and/or internal/built-in storage or memory units, such as one or more of the following: optical disks (e.g., DVDs), magnetic disks (e.g., hard disks), semiconductor memories (e.g., ROMs), RAMs, memory cards, etc.

Fig. 11 is a block diagram of an Integrated Circuit (IC) manufacturing system 1100 and an IC manufacturing flow associated therewith, in accordance with some embodiments. In some embodiments, based on the layout, at least one of the following is manufactured using the manufacturing system 1100: (A) one or more semiconductor masks or (B) at least one component in a semiconductor IC layer.

In fig. 11, an IC manufacturing system 1100 includes entities, such as a design chamber 1120, a mask chamber 1130, and an IC manufacturer/manufacturer ("fab") 1150, which interact in the design, development, and manufacturing cycles and/or services associated with manufacturing an IC device 1160. The entities in system 1100 are connected by a communication network. In some embodiments, the communication network is a single network. In some embodiments, the communication network is a variety of different networks, such as an intranet and the internet. The communication network includes wired and/or wireless communication channels. Each entity interacts with and provides services to and/or receives services from one or more other entities. In some embodiments, two or more of design chamber 1120, mask chamber 1130, and IC manufacturer/manufacturer 1150 are owned by a single larger company. In some embodiments, two or more of design chamber 1120, mask chamber 1130, and IC manufacturer/manufacturer 1150 coexist in a common facility and use common resources.

Design room (or design team) 1120 generates an IC design layout 1122. IC design layout 1122 includes various geometric patterns designed for IC device 1160. The geometric pattern corresponds to the pattern of the metal, oxide or semiconductor layers that make up the various components of the integrated circuit device 1160 to be fabricated. The various layers combine to form various characteristics. For example, a portion of IC design layout 1122 includes various IC features such as active regions, gate electrodes, source and drain electrodes, metal lines or vias for inter-level interconnects, and openings for bond pads to be formed in a semiconductor substrate (e.g., a silicon wafer) and various material layers disposed thereon. Design chamber 1120 implements the appropriate design procedures to form IC design layout 1122. A design procedure includes one or more of a logical design, a physical design or location, and a layout. The IC design layout 1122 is presented in one or more data files having information for geometric patterns. For example, the IC design layout 1122 may be represented in a GDSII file format or a DFII file format.

Mask chamber 1130 includes data preparation 1132 and mask fabrication 1144. Mask chamber 1130 uses IC design layout 1122 to fabricate one or more masks 1145 for fabricating the various layers of IC device 1160 according to IC design layout 1122. The mask room 1130 performs mask data preparation 1132, in which the IC design layout 1122 is converted to a representative data file ("RDF"). Mask data prepare 1132 provides RDF to mask make 1144. Mask making 1144 includes a mask writer. The mask writer converts the RDF into an image on a substrate, such as a mask (reticle) 1145 or a semiconductor wafer 1153. Design layout 1122 is manipulated by mask data preparation 1132 to conform to the specific characteristics of the mask writer and/or the requirements of the IC manufacturer/manufacturer 1150. In FIG. 11, mask data preparation 1132 and mask fabrication 1144 are shown as separate elements. In some embodiments, mask data preparation 1132 and mask fabrication 1144 may be collectively referred to as mask data preparation.

In some embodiments, mask data preparation 1132 includes Optical Proximity Correction (OPC), which uses lithographic enhancement techniques to compensate for image errors, such as those that may be caused by diffraction, interference, other process effects, and the like. The OPC adjusts the IC design layout 1122. In some embodiments, mask data preparation 1132 also includes Resolution Enhancement Techniques (RET), such as off-axis illumination, sub-resolution assist features, phase-shifting masks, other suitable techniques, and the like, or combinations thereof. In some embodiments, the Inverse Lithography Technique (ILT), which treats OPC as an inverse imaging problem, is also used.

In some embodiments, mask data preparation 1132 includes a Mask Rules Checker (MRC) that checks the IC design layout 1122 processed in OPC, which contains a set of mask creation criteria rules for certain geometric and/or connectivity constraints to ensure sufficient margin to account for variability in semiconductor manufacturing processes and the like. In some embodiments, the MRC modifies the IC design layout 1122 to compensate for constraints during mask manufacturing 1144, which may undo the partial modifications performed by OPC to meet mask creation criteria rules.

In some embodiments, mask data preparation 1132 includes lithographic process inspection (LPC) to simulate the processing to be implemented by the IC manufacturer/manufacturer 1150 to manufacture the IC device 1160. The LPC simulates this process based on IC design layout 1122 to create a device, such as IC device 1160, that is modeled for fabrication. The process parameters in the LPC simulation may include parameters associated with various processes of the IC fabrication cycle, parameters associated with the tool used to fabricate the IC, and/or other aspects of the fabrication process. LPC accounts for various factors such as aerial image contrast, depth of focus ("DOF"), mask error enhancement factor ("MEEF"), other suitable factors, and the like, or combinations thereof. In some embodiments, after the simulated manufactured devices are created by the LPC, if the shape of the simulated devices is insufficient to meet the design rules, the OPC and/or MRC are repeated to further refine the IC design layout 1122.

It should be appreciated that the above description of mask data preparation 1132 is simplified for clarity. In some embodiments, data preparation 1132 includes additional features, such as Logic Operations (LOPs), to modify IC design layout 1122 in accordance with manufacturing rules. Additionally, the processes applied to the IC design layout 1122 during data preparation 1132 may be performed in a variety of different orders.

After mask data preparation 1132 and during mask fabrication 1144, a mask 1145 or a set of masks 1145 is fabricated based on the modified IC design layout 1122. In some embodiments, mask fabrication 1144 includes performing one or more lithographic exposures based on the IC design layout 1122. In some embodiments, an electron beam (e-beam) or multiple electron beam mechanism is used to pattern a mask (photomask or reticle) 1145 based on the modified IC design layout 1122. The mask 1145 may be formed by various techniques. In some embodiments, mask 1145 is formed using a binary technique. In some embodiments, the mask pattern includes opaque regions and transparent regions. A radiation beam (e.g., an Ultraviolet (UV) beam) used to expose a layer of image sensitive material (e.g., photoresist) that has been coated on the wafer is blocked by the opaque regions and transmitted through the transparent regions. In one example, the binary mask version of mask 1145 includes a transparent substrate (e.g., fused silica) and an opaque material (e.g., chrome) coated in opaque regions of the binary mask. In another example, mask 1145 is formed using a phase-shift technique. In a Phase Shift Mask (PSM) version of the mask 1145, various features in the pattern formed on the phase shift mask are configured to have appropriate phase differences to enhance resolution and imaging quality. In various examples, the phase shift mask may be an attenuated PSM or an alternating PSM. The mask(s) generated by mask fabrication 1144 are used for various processes. For example, such mask(s) are used to: in the ion implantation process, various doped regions are formed in the semiconductor wafer 1153; forming various etched regions in semiconductor wafer 1153 in an etching process; and/or other suitable processes.

IC manufacturer/manufacturer 1150 includes wafer fabrication 1152. IC manufacturer/manufacturer 1150 is an integrated circuit manufacturing enterprise that includes one or more manufacturing facilities for manufacturing a variety of different IC products. In some embodiments, IC manufacturer/manufacturer 1150 is a semiconductor foundry. For example, there may be a manufacturing facility for front end of line (FEOL) manufacturing) of a plurality of IC products, while a second manufacturing facility may provide back end of line (BEOL) manufacturing) for interconnection and packaging of IC products, and a third manufacturing facility may provide other services for a foundry.

The IC manufacturer/manufacturer 1150 uses the mask(s) 1145 produced by the mask chamber 1130 to manufacture the IC device 1160. Thus, IC manufacturer/manufacturer 1150 at least indirectly manufactures IC device 1160 using IC design layout 1122. In some embodiments, the semiconductor wafer 1153 is fabricated by an IC manufacturer/manufacturer 1150 using mask(s) 1145 to form an IC device 1160. In some embodiments, IC fabrication includes performing one or more lithographic exposures based, at least indirectly, on IC design layout 1122. Semiconductor wafer 1153 comprises a silicon substrate or other suitable substrate having a layer of material formed thereon. Semiconductor wafer 1153 also includes one or more of various doped regions, dielectric features, multilevel interconnects, etc. (formed in subsequent fabrication steps).

Detailed information regarding Integrated Circuit (IC) manufacturing systems (e.g., system 1100 of fig. 11) and IC manufacturing flows associated therewith can be found in, for example: U.S. patent No. 9,256,709, issued on day 9/2/2016, U.S. pre-authorization publication No. 20150278429, issued on day 1/10/2015, U.S. pre-authorization publication No. 20140040838, issued on day 6/2/2014, and U.S. patent No. 7,260,442, issued on day 21/8/2007, the entire contents of which are incorporated herein by reference.

One aspect of the present description relates to a method. The method comprises the following steps: the method includes designating a target memory macro with one or more parameters, finding a functional block in the target memory macro, and determining a failure rate of the functional block based on a number of transistors and an area distribution in a set of base cells. The method comprises the following steps: a failure mode analysis of the target memory macro is generated from the memory compiler based on the failure rate of the functional block. The method comprises the following steps: the security level of the target memory macro is determined based on a failure mode analysis of the target memory macro.

One aspect of the present description relates to computer program code stored on a non-transitory computer readable medium for generating a memory macro. The computer program code is configured to cause a system having at least one processor to perform the following: loading a table specifying a number of transistors and an area distribution in a set of base cells, looking up a functional block in a target memory macro specified with one or more parameters, determining a failure rate of the functional block based on the number of transistors and the area distribution in the set of base cells, generating a failure mode analysis for the target memory macro based on the failure rate of the functional block, and determining a security level of the target memory macro based on the failure mode analysis of the target memory macro.

One aspect of the present description relates to a method. The method comprises the following steps: the target memory macro is specified with one or more parameters, the basic cells in the target memory macro are looked up to form a set of basic cells, and the number of transistors and area distribution in the set of basic cells are looked up. The method further comprises the following steps: the method includes the steps of finding a functional block in a target memory macro, determining a failure rate of the functional block based on a number of transistors in a set of basic cells and an area distribution, and generating a failure mode analysis for the target memory macro based on the failure rate of the functional block.

One skilled in the relevant art will readily recognize that one or more of the embodiments disclosed may be implemented to achieve one or more of the advantages described above. After reading the foregoing specification, one of ordinary skill will be able to affect various changes, substitutions of equivalents, and various other embodiments as broadly disclosed herein. Accordingly, the protection granted hereon is limited only by the definitions contained in the claims appended hereto, and equivalents thereof.

Example 1 a method of authenticating a security level of a semiconductor memory in an integrated circuit, comprising: specifying a target memory macro with one or more parameters; searching for a functional block in the target memory macro; determining a failure rate of the functional block based on the number and area distribution of transistors in the set of elementary cells; generating, from a memory compiler, a failure mode analysis for the target memory macro based on the failure rate of the functional block; and determining a security level of the target memory macro based on the failure mode analysis of the target memory macro.

Example 2. the method of example 1, wherein the security level is selected from a security level for automotive safety integrity level ASIL authentication.

Example 3. the method of example 1, further comprising: generating the target memory macro together with the failure mode analysis from the memory compiler.

Example 4. the method of example 1, wherein the set of base units is selected from a set of memory macros.

Example 5. the method of example 1, wherein the set of base units is selected from leaf units used to construct a set of memory macros.

Example 6. the method of example 1, wherein determining the failure rate of the functional block comprises: the failure rate of a functional block is determined based on the cumulative area occupied by the functional block and the cumulative number of transistors in the functional block.

Example 7. the method of example 1, wherein determining the failure rate of the functional block comprises: and searching the static fault rate and the transient fault rate of the functional block.

The method of example 8, wherein generating the failure mode analysis for the target memory macro comprises: defining a failure mode and a failure mode distribution of the functional blocks; and searching the single-point failure rate and the multi-point failure rate of the functional block.

Example 9. the method of example 1, further comprising: loading a table in the memory compiler that specifies the number of transistors and the area distribution in the set of base cells, wherein an entry in the table maps one of the base cells to a corresponding area and a corresponding number of transistors.

An example 10. a computer-readable storage medium having executable code stored thereon, which when executed by a processor causes the processor to: loading a table specifying the number of transistors and the area distribution in the set of elementary cells; finding a function block in the target memory macro specified with one or more parameters; determining a failure rate of the functional block based on the number of transistors and the area distribution in the set of base cells; generating a failure mode analysis for the target memory macro based on the failure rate of the functional block; and determining a security level of the target memory macro based on the failure mode analysis of the target memory macro.

Example 11 the computer-readable storage medium of example 10, wherein the executable code, when executed by a processor, causes the processor to further perform the following: the target memory macro is generated along with the failure mode analysis.

Example 12 the computer-readable storage medium of example 10, wherein determining the failure rate of the functional block comprises: determining a failure rate of the functional block based on an accumulated area occupied by the functional block and an accumulated number of transistors in the functional block.

Example 13 the computer-readable storage medium of example 10, wherein determining the failure rate of the functional block comprises: and searching the static fault rate and the transient fault rate of the functional block.

Example 14 the computer-readable storage medium of example 10, wherein generating the failure mode analysis for the target memory macro comprises: defining a failure mode and a failure mode distribution of the functional blocks; and searching the single-point failure rate and the multi-point failure rate of the functional block.

Example 15 a method of authenticating a security level of a semiconductor memory in an integrated circuit, comprising: specifying a target memory macro with one or more parameters; finding the base units in the target memory macro to form a set of base units; searching the number and area distribution of transistors in the set of basic units; searching for a functional block in the target memory macro; determining a failure rate of the functional block based on the number of transistors in the set of base cells and the area distribution; and generating a failure mode analysis for the target memory macro based on the failure rate of the functional block.

Example 16. the method of example 15, further comprising: determining a security level of the target memory macro based on the failure mode analysis of the target memory macro.

Example 17. the method of example 15, further comprising: generating the target memory macro together with the failure mode analysis from a memory compiler.

Example 18. the method of example 15, wherein the one or more parameters include a size parameter, a characteristic parameter, or a combination of a size parameter and a characteristic parameter.

Example 19. the method of example 15, wherein the set of base units comprises: a bit cell, a timer unit, a read/write controller unit, a data input unit, a data output unit, a sense amplifier unit, a column multiplexer unit, a row predecoder decoder, a column predecoder decoder, a row address decoder, a column address decoder, or a word line driver.

Example 20. the method of example 15, wherein finding the transistor number and the area distribution in the set of base cells comprises: the number of transistors in each selected one of the set of elementary cells and the area occupied by each selected one of the set of elementary cells are determined.

30页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于智能卡的光学加密安全装置、加密方法及智能卡

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类