US20230186980A1 - Synthesizable logic memory - Google Patents
Synthesizable logic memory Download PDFInfo
- Publication number
- US20230186980A1 US20230186980A1 US17/546,408 US202117546408A US2023186980A1 US 20230186980 A1 US20230186980 A1 US 20230186980A1 US 202117546408 A US202117546408 A US 202117546408A US 2023186980 A1 US2023186980 A1 US 2023186980A1
- Authority
- US
- United States
- Prior art keywords
- cells
- bitcells
- cell
- library
- abutment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 61
- 238000000034 method Methods 0.000 claims abstract description 48
- 230000003068 static effect Effects 0.000 claims abstract description 22
- 238000013461 design Methods 0.000 claims description 50
- 230000002093 peripheral effect Effects 0.000 claims description 22
- 238000012546 transfer Methods 0.000 claims description 3
- 230000002194 synthesizing effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 26
- 230000015572 biosynthetic process Effects 0.000 description 10
- 238000003786 synthesis reaction Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000012512 characterization method Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 102000000582 Retinoblastoma-Like Protein p107 Human genes 0.000 description 1
- 108010002342 Retinoblastoma-Like Protein p107 Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009028 cell transition Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/413—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
- G11C11/417—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
- G11C11/419—Read-write [R-W] circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3315—Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/412—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger using field-effect transistors only
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/413—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
- G11C11/417—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
- G11C11/418—Address circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/18—Bit line organisation; Bit line lay-out
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10B—ELECTRONIC MEMORY DEVICES
- H10B10/00—Static random access memory [SRAM] devices
Definitions
- Embodiments of the disclosure relate generally to memory circuits. More specifically, the disclosure provides a set of cells for a memory array (e.g., a static random-access memory (SRAM)) that follows standard cell placement constraints and which supports static timing models at the bitcell level.
- a memory array e.g., a static random-access memory (SRAM)
- SRAM static random-access memory
- Integrated circuit designs commonly utilize SRAM for storing large amounts of data and register files for storing small bit counts.
- SRAM static random access memory
- register files typically require a substantial amount of area compared to a standard bit cell
- SRAMs require a substantial amount of peripheral logic.
- FIG. 1 depicts a synthesizable logic memory (SLM) library including at least one set of leaf cells according to embodiments of the disclosure.
- SLM synthesizable logic memory
- FIG. 3 depicts a 2R1W bitcell that may be formed using the cells in the SLM library according to embodiments of the disclosure.
- FIG. 4 depicts an example of an SRAM core formed using a set of cells in the SLM library of FIG. 1 according to embodiments of the disclosure.
- FIG. 5 depicts an example of the ordering attributes that drive the correct placement of the cells in the SRAM core of FIG. 4 .
- FIG. 7 depicts the SRAM core of FIG. 4 with a plurality of peripheral cells to according to embodiments of the disclosure, and control circuitry implemented using standard cells of a standard cell library.
- FIG. 8 depicts a primary SLM design flow according to embodiments of the disclosure.
- FIG. 9 depicts an example of the netlist connectivity provided during synthesis of several abutting cells of the SLM library.
- FIG. 10 depicts the abutting placement of the cells of the SLM library shown in FIG. 9 .
- FIG. 11 depicts the SLM design flow of FIG. 8 further including an optional timing analysis according to embodiments of the disclosure.
- a standard cell library is a collection of well-defined and appropriately characterized logic gates that can be used to implement a digital design. Standard cells must meet predefined specifications to be manipulated by synthesis, place, and route algorithms.
- a standard cell library is delivered with a collection of files that provide all the information needed by various electronic design automation (EDA) tools.
- EDA electronic design automation
- Such information typically includes timing (e.g., static timing) and power parameters obtained by simulating the cells under a variety of conditions.
- the timing and power parameters are provided in the industry standard Liberty (.lib) format, where a .lib file is an ASCII representation of the timing and power parameters (e.g., cell delay, cell transition time, and setup and hold time requirement) associated with the cells in a standard cell library of a particular technology.
- Standard cells in a standard cell library can be used to form SRAM-like functional arrays (address in, clock in, data word in (write) or out (read)), where the fundamental storage element is a latch (broken feedback) with a pair of latches forming a flip-flop.
- standard cells cannot be used to form a storage element in an SRAM (e.g., an inverter pair latch (no broken feedback)), where writing is done by over-riding the feedback in the latch directly through the write bitlines.
- a memory compiler is a computer program which can synthesize different, typically general, memory configurations.
- a memory compiler is configured to generate memory related design files based on design specifications. The design files are used for synthesis, function simulation, verification, layout, floor planning, placement, and routing.
- a memory compiler provides a static timing model for the entire SRAM which allows the SRAM to be used in a static timing and simulation environment.
- An SRAM provided by a memory compiler is typically designed for general use and tends to lack the customization required to match the specific design requirements of an integrated circuit, ASIC, or SoC design.
- a standard memory compiler is not capable of providing an SRAM that supports multiple reads or writes (e.g., an SRAM with more than one read or write port).
- a synthesizable logic memory (SLM) library which allows fine grain modeling and customization of an SRAM at the bitcell level.
- the SLM library includes a set of cells that may be tiled commensurately within a standard cell design to form the core of an SRAM, following logic ground rules.
- Each cell in the set of cells in the SLM library includes its own static timing model, which is provided to a static timing engine, just as with standard cells.
- the cells in a standard cell library follow the same row placement constraints, namely, the cells in a standard cell library have a fixed size in one dimension (the row height or track size of the library) and are variable in the other dimension (but in integer multiples of a key technology parameter, usually a device or wire pitch).
- Such row placement constraints simplify the placement problem of the cells of the standard cell library into a discreet matrix of points defined by the row height in one dimension (Y) and the other placement pitch parallel to the row.
- the cells in the SLM library follow the same row placement constraints as the cells in a standard cell library, which allows the cells in the standard cell library to be placed in a larger design formed using cells from a standard cell library.
- FIG. 1 depicts a synthesizable logic memory (SLM) library 10 including at least one set 12 of leaf cells (hereafter generally referred to as “cells”) according to embodiments of the disclosure.
- SLM synthesizable logic memory
- Each set 12 of cells in the SLM library 10 may be used to form a different SRAM port configuration including, for example, a single port SRAM (1R1W) ( FIG. 2 ) that allows a single read or write at a time, a two port SRAM (2R1W) ( FIG. 3 ) that allows multiple reads or writes to occur at the same time, etc.
- the storage element includes an inverter pair latch 100
- the write path includes true/comp bitlines WBL/WBLB and pass transistors 102 , similar to a conventional SRAM, while each read port includes a single bitline RBL0, RBL1 with dynamic precharge and full swing through series FETs 104 .
- each set 12 of cells in the SLM library 10 may include a dynamic bitcell 14 for storing a bit of data (hereafter “bitcell 14 ”), a wordline driver cell 16 for accessing (e.g., reading/writing) the bitcell 14 , a bitline write cell 18 for writing data to the bitcell 14 , and a bitline read cell 20 for reading data from the bitcell 14 .
- bitcell 14 uses dynamic circuit techniques when reading/writing data (e.g., the bitcell 14 includes a dynamic precharge bitline).
- Each set 12 of cells in the SLM library 10 may also include various peripheral cells 22 required for standard cell abutment at the edge of a memory core formed using the bitcells 14 , wordline driver cells 16 , bitline write cells 18 , and bitline read cells 20 .
- the physical image of each of the cells in the SLM library 10 is completely compatible with standard cells in a chosen standard cell library (hereafter “standard cell library”). That is, the SLM library 10 can be considered to be an extension to the standard cell library.
- standard cell library the SLM library 10 can be considered to be an extension to the standard cell library.
- the internal structure of each of the cells in the SLM library 10 is tailored for use in custom SRAMs in a way that cannot be provided using standard cells in a standard cell library.
- the wordline and bitline metal contacts (wires) in the bitcells 14 connect by abutment when placed and are shared between adjacent bitcells 14 . This type of abutment is not allowed in standard cell libraries because, for example, cell to cell connectivity needs to be independent of placement in conventional standard cell design. Connectivity by abutment presumes connectivity between neighbors.
- FIG. 4 An example of an SRAM core 30 formed using a set 12 of cells in the SLM library 10 is depicted in FIG. 4 .
- the core 30 may include a rectangular array of bitcells 14 that follow standard cell placement (row) constraints.
- An example of the ordering attributes that drive the correct placement of the cells in the SRAM core 30 of FIG. 4 is depicted in FIG. 5 .
- Placement constraints e.g., data path or relative placement
- a placement tool will keep the cells of the SRAM core 30 close to each other since they have strong connectivity between them. While doing that, the placement tool will usually pick a good place for the cells of the SRAM core 30 in a larger design, which is generally much larger.
- bitcells 14 are connected by abutment.
- a wordline driver cell 16 is placed in abutment with each row 32 of bitcells 14 .
- a bitline write cell 18 and a bitline read cell 20 are placed in abutment with each other and one of the bitline write cell 18 or bitline read cell 20 is placed in abutment with each column 34 of bitlines 14 .
- FIG. 6 depicts a portion of the SRAM core 30 of FIG. 4 showing how wordlines 36 and bitlines 38 may be shared between abutting bitcells 14 .
- the SRAM core 30 is depicted as further including a plurality of peripheral cells 22 .
- the peripheral cells 22 allow various outer cells of the SRAM core 30 (e.g., wordline driver cell 16 , bitline write cell 18 , bitline read cell 20 ) to be connected to control circuitry, external to the SRAM core 30 , created by synthesis using standard cells of a standard cell library.
- control circuitry may include, for example, address latch and decoding circuitry 40 for generating bitline signals and read/write circuitry 42 for reading from and writing data to bitcells 14 in the SRAM core 30 , and other applicable control circuitry 44 .
- each peripheral cell 22 is connected via abutment to a corresponding cell (e.g., wordline driver cell 16 , bitline write cell 18 , bitline read cell 20 ) in the SRAM core 30 .
- the outer boundary 48 of each peripheral cell 22 is compatible with the standard cells of the standard cell library. To this extent, in general, the peripheral cells 22 provide an interface between the cells in the SLM library 10 and standard cells in a standard cell library.
- the SRAM core 30 may be instantiated directly in a register transfer level (RTL) design, which is preserved through synthesis, and compiled using a standard digital logic design flow.
- RTL register transfer level
- a hardware design language such as Verilog may be used to write the RTL design of the SLM core 30 .
- the RTL design of the SRAM core 30 includes a direct instantiation of:
- the RTL design also includes soft logic, created by synthesis using standard cells of a standard cell library, to map wordline and bitline signals into memory address (decode) and data read/write (ports).
- the remaining functions for a memory e.g., decode, multiplexing, controls, etc. may also be written in RTL and created by synthesis using standard cells of a standard cell library.
- timing and power models are provided (e.g., in a .lib format) for each individual cell in the SLM library 10 to support static timing and power analysis of an SRAM core 30 formed using the cells in the SLM library 10 .
- the .lib file(s) 50 ( FIG. 1 ) are provided as part of the SLM library 10 .
- the timing and power models may be provided using a tool such as the Liberate characterization tool available from Cadence. This may include running circuit simulation(s) to evaluate the delay and power usage of the read and write paths through a bitcell 14 and similar paths through each wordline driver cell 16 , bitline read cell 18 , bitline write cell 20 , and peripheral cell 22 .
- the performance values are captured into a static timing model for each cell in the SLM library 10 .
- the generation of a separate timing model for each cell in the SLM library 10 allows a static timing tool used in logic synthesis to time and otherwise characterize the entire design (memory and logic) in situ.
- the SLM library 10 may also include various other data 52 , including layout, schematic, symbol, abstract, and/or other logical or simulation views for each cell in the SLM library 10 . From this, various information may be captured in a number of formats (e.g., in a Library Exchange Format (LEF) representing the physical layout in an ASCII format).
- LEF Library Exchange Format
- FIG. 8 An SLM design flow according to embodiments is depicted in FIG. 8 , described with reference to FIG. 7 .
- the cells forming an SRAM core 30 are defined in RTL as a part of a larger SoC RTL design.
- the RTL for the cells forming the SRAM core 30 is written in an HDL such as Verilog.
- the particular cells selected for the SRAM core 30 may depend on the available architectures supported by the SLM library 10 (e.g., port configuration, bitcell type, etc.).
- the cells of the SRAM core e.g., bitcells 14 , wordline driver cells 16 , bitline write cells 18 , bitline read cells 20 , peripheral cells 22 ) are directly instantiated in RTL in the SoC RTL design.
- the RTL for the cells of the SRAM core 30 is checked against design constraints (e.g., core size, maximum dimensions, allowed periphery types, etc.). If the design constraints are met (Y at process P 3 ), flow passes to process P 4 . If not (N at process P 3 ), flow passes back to process P 1 , where the SoC/SRAM RTL design may be modified accordingly.
- design constraints e.g., core size, maximum dimensions, allowed periphery types, etc.
- the SoC RTL design is synthesized using the cells in the SLM library 10 and the standard cells of the standard cell library 54 .
- This process includes static timing analysis based on the timing models provided in the .lib files 50 for each cell in the SLM library 10 and timing models provided for standard cells in the standard cell library 54 . If the power, performance, and area requirements (PPA) for the SoC design are acceptable (Y at process P 5 ), flow passes to process P 6 , where placement and routing of the SoC design is performed. If the power, performance, and area requirements are not acceptable (N at process P 5 ), flow passes back to process P 1 , where the SoC/SRAM RTL design may be modified accordingly.
- PPA power, performance, and area requirements
- the SRAM core 30 may be placed freely within a larger design as long as the cells of the SRAM core 30 remain appropriately abutted. Placement of the soft logic required to obtain memory addresses and the port configuration from the wordline and bitline signals, however, may be optimized in a conventional manner.
- FIG. 9 depicts an example of the netlist connectivity provided during synthesis of several abutting cells (e.g., bitcells 14 A, 14 B, 14 C, and 14 D) of the SRAM core 30 , where the dashed lines are connecting nets (e.g., wordlines WL 0 , WL 1 , and bitlines BL 0 , BL 1 ).
- nets e.g., wordlines WL 0 , WL 1 , and bitlines BL 0 , BL 1 .
- ordering attributes e.g., l _ 00 , l _ 01 , l _ 10 , l _ 11
- placement strives to place the bitcells 14 A, 14 B, 14 C, and 14 D such that the length of the nets is minimized.
- bitlines BL of the bitcells 14 A and 14 B and the bitlines BL of the bitcells 14 C and 14 D connect via abutment to form bitlines BL 0 , BL 1 , respectively.
- wordlines WL of the bitcells 14 A and 14 C and the wordlines WL of the bitcells 14 B and 14 D connect via abutment to form wordlines WL 0 , WL 1 , respectively. Any other ordering of the bitcells 14 A, 14 B, 14 C, and 14 D would result in shorts between the bitlines and/or wordlines.
- the power, performance, and area requirements for the SoC design are again examined at process P 7 . If acceptable (Y at process P 5 ), the process ends. If the power, performance, and area requirements (PPA) for the SoC design are not acceptable (N at process P 7 ), flow passes back to process P 1 , where the where the SoC/SRAM RTL design may be modified accordingly.
- the SLM library 10 provides various data/views, including, for example:
- an optional timing analysis may be performed as shown in phantom in FIG. 11 .
- the optional timing analysis includes a process P 8 , where a timing characterization is run on the SRAM core 30 in the SoC design to provide a single timing model for the SRAM core 30 in the SoC design, and a process P 9 , where the single timing model for the SRAM core 30 is stored in the SLM library 10 .
- process P 10 late optimization and final timing may be performed on the SoC design using the single timing model for the SRAM core 30 .
- the time required for static timing may be reduced and the accuracy of the static timing may be improved.
- Embodiments of the disclosure provide various technical and commercial advantages, examples of which have been described above. Additional technical and commercial advantages are discussed below.
- embodiments of the disclosure provide an SLM library 10 including a plurality of sets 12 of cells for providing SRAM cores 30 having multiple different port configurations, including, for example, a two port SRAM (2R1W) that allows multiple reads or writes to occur at the same time.
- 2R1W two port SRAM
- An SRAM core 30 formed using the cells in the SLM library 10 can be quickly designed via RTL, without the overhead of compiling and floor-planning instances and can be easily modified by rewriting the RTL.
- the processes described herein are more area/power efficient than other techniques used to form SRAMs (e.g., register files).
- an SRAM core 30 formed using the cells in the SLM library 10 can be more efficiently integrated into other logic, including automated placement and synthesis optimization of PPA for the support logic for the SRAM core 30 .
- a system or device configured to perform a function can include a computer system or computing device programmed or otherwise modified to perform that specific function.
- program code stored on a computer-readable medium e.g., storage medium
- a device configured to interact with and/or act upon other components can be specifically shaped and/or designed to effectively interact with and/or act upon those components.
- the device is configured to interact with another component because at least a portion of its shape complements at least a portion of the shape of that other component. In some circumstances, at least a portion of the device is sized to interact with at least a portion of that other component.
- the physical relationship e.g., complementary, size-coincident, etc.
- the physical relationship can aid in performing a function, for example, displacement of one or more of the devices or other components, engagement of one or more of the devices or other components, etc.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
Description
- Embodiments of the disclosure relate generally to memory circuits. More specifically, the disclosure provides a set of cells for a memory array (e.g., a static random-access memory (SRAM)) that follows standard cell placement constraints and which supports static timing models at the bitcell level.
- Integrated circuit designs commonly utilize SRAM for storing large amounts of data and register files for storing small bit counts. Each of these approaches, however, is suboptimal in area and power requirements when implementing memories with intermediate storage requirements (e.g., a few hundred bytes to a few thousand bytes). For example, register files typically require a substantial amount of area compared to a standard bit cell, while SRAMs require a substantial amount of peripheral logic.
- Aspects of the disclosure provide a method for forming a memory, including: forming a memory core using a plurality of cells from a library of cells, wherein each cell in the library of cells follows standard cell row placement constraints and includes a static timing model, and wherein the plurality of cells includes a dynamic bitcell; wherein forming the memory core further includes connecting a plurality of the bitcells via abutment to form a rectangular array of bitcells such that bitlines of the bitcells and wordlines of the bitcells connect by abutment and are shared between adjacent bitcells in the array of bitcells.
- Another aspect of the disclosure provides a static random-access memory (SRAM), including: a memory core formed using a plurality of cells in a library of cells, wherein each cell in the library of cells follows standard cell row placement constraints and includes a static timing model, and wherein the plurality of cells in the library of cells includes a dynamic bitcell; wherein the memory core comprises a plurality of the bitcells connected via abutment to form a rectangular array of bitcells such that wordlines and bitlines of abutting bitcells in the array of bitcells connect by abutment and are shared between adjacent bitcells in the array of bitcells.
- A further aspect of the disclosure is directed to a method for designing a memory, including: defining a register transfer level (RTL) memory design including a plurality of cells, wherein the plurality of cells are provided in a library of cells and follow standard cell row placement constraints, and wherein the plurality of cells includes: a dynamic bitcell; a wordline driver; a bitline write cell; a bitline read cell; and a peripheral cell; and providing a static timing model for each of the plurality of cells in the library of cells.
- These and other features of this disclosure will be more readily understood from the following detailed description of the various aspects of the disclosure taken in conjunction with the accompanying drawings that depict various embodiments of the disclosure.
-
FIG. 1 depicts a synthesizable logic memory (SLM) library including at least one set of leaf cells according to embodiments of the disclosure. -
FIG. 2 depicts a 1R1W bitcell that may be formed using the cells in the SLM library ofFIG. 1 according to embodiments of the disclosure. -
FIG. 3 depicts a 2R1W bitcell that may be formed using the cells in the SLM library according to embodiments of the disclosure. -
FIG. 4 depicts an example of an SRAM core formed using a set of cells in the SLM library ofFIG. 1 according to embodiments of the disclosure. -
FIG. 5 depicts an example of the ordering attributes that drive the correct placement of the cells in the SRAM core ofFIG. 4 . -
FIG. 6 depicts a portion of the SRAM core ofFIG. 4 showing how bitlines and wordlines in each bitcell may be shared between abutting bitcells according to embodiments of the disclosure. -
FIG. 7 depicts the SRAM core ofFIG. 4 with a plurality of peripheral cells to according to embodiments of the disclosure, and control circuitry implemented using standard cells of a standard cell library. -
FIG. 8 depicts a primary SLM design flow according to embodiments of the disclosure. -
FIG. 9 depicts an example of the netlist connectivity provided during synthesis of several abutting cells of the SLM library. -
FIG. 10 depicts the abutting placement of the cells of the SLM library shown inFIG. 9 . -
FIG. 11 depicts the SLM design flow ofFIG. 8 further including an optional timing analysis according to embodiments of the disclosure. - It is noted that the drawings of the disclosure are not necessarily to scale. The drawings are intended to depict only typical aspects of the disclosure, and therefore should not be considered as limiting the scope of the disclosure. In the drawings, like numbering represents like elements between the drawings.
- In the following description, reference is made to the accompanying drawings that form a part thereof, and in which is shown by way of illustration specific exemplary embodiments in which the present teachings may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the present teachings, and it is to be understood that other embodiments may be used and that changes may be made without departing from the scope of the present teachings. The following description is, therefore, merely illustrative.
- A standard cell library is a collection of well-defined and appropriately characterized logic gates that can be used to implement a digital design. Standard cells must meet predefined specifications to be manipulated by synthesis, place, and route algorithms. In practice, a standard cell library is delivered with a collection of files that provide all the information needed by various electronic design automation (EDA) tools. Such information typically includes timing (e.g., static timing) and power parameters obtained by simulating the cells under a variety of conditions. The timing and power parameters are provided in the industry standard Liberty (.lib) format, where a .lib file is an ASCII representation of the timing and power parameters (e.g., cell delay, cell transition time, and setup and hold time requirement) associated with the cells in a standard cell library of a particular technology.
- Standard cells in a standard cell library can be used to form SRAM-like functional arrays (address in, clock in, data word in (write) or out (read)), where the fundamental storage element is a latch (broken feedback) with a pair of latches forming a flip-flop. However, standard cells cannot be used to form a storage element in an SRAM (e.g., an inverter pair latch (no broken feedback)), where writing is done by over-riding the feedback in the latch directly through the write bitlines.
- When designing an integrated circuit, application specific integrated circuit (ASIC), or system on a chip (SoC) including an SRAM, the SRAM is often generated using a memory compiler. A memory compiler is a computer program which can synthesize different, typically general, memory configurations. A memory compiler is configured to generate memory related design files based on design specifications. The design files are used for synthesis, function simulation, verification, layout, floor planning, placement, and routing. A memory compiler provides a static timing model for the entire SRAM which allows the SRAM to be used in a static timing and simulation environment.
- An SRAM provided by a memory compiler is typically designed for general use and tends to lack the customization required to match the specific design requirements of an integrated circuit, ASIC, or SoC design. For example, a standard memory compiler is not capable of providing an SRAM that supports multiple reads or writes (e.g., an SRAM with more than one read or write port).
- According to embodiments of the disclosure, a synthesizable logic memory (SLM) library is provided which allows fine grain modeling and customization of an SRAM at the bitcell level. The SLM library includes a set of cells that may be tiled commensurately within a standard cell design to form the core of an SRAM, following logic ground rules. Each cell in the set of cells in the SLM library includes its own static timing model, which is provided to a static timing engine, just as with standard cells.
- All of the cells in a standard cell library follow the same row placement constraints, namely, the cells in a standard cell library have a fixed size in one dimension (the row height or track size of the library) and are variable in the other dimension (but in integer multiples of a key technology parameter, usually a device or wire pitch). Such row placement constraints simplify the placement problem of the cells of the standard cell library into a discreet matrix of points defined by the row height in one dimension (Y) and the other placement pitch parallel to the row. According to embodiments of the disclosure, the cells in the SLM library follow the same row placement constraints as the cells in a standard cell library, which allows the cells in the standard cell library to be placed in a larger design formed using cells from a standard cell library.
-
FIG. 1 depicts a synthesizable logic memory (SLM)library 10 including at least one set 12 of leaf cells (hereafter generally referred to as “cells”) according to embodiments of the disclosure. Eachset 12 of cells in theSLM library 10 may be used to form a different SRAM port configuration including, for example, a single port SRAM (1R1W) (FIG. 2 ) that allows a single read or write at a time, a two port SRAM (2R1W) (FIG. 3 ) that allows multiple reads or writes to occur at the same time, etc. In the 1R1W SRAM ofFIG. 2 and the 2R1W SRAM ofFIG. 3 , the storage element includes aninverter pair latch 100, the write path includes true/comp bitlines WBL/WBLB andpass transistors 102, similar to a conventional SRAM, while each read port includes a single bitline RBL0, RBL1 with dynamic precharge and full swing throughseries FETs 104. - According to embodiments, each set 12 of cells in the SLM
library 10 may include adynamic bitcell 14 for storing a bit of data (hereafter “bitcell 14”), awordline driver cell 16 for accessing (e.g., reading/writing) thebitcell 14, a bitline writecell 18 for writing data to thebitcell 14, and a bitline readcell 20 for reading data from thebitcell 14. Unlike a bitcell in a standard cell library, the bitcell 14 uses dynamic circuit techniques when reading/writing data (e.g., thebitcell 14 includes a dynamic precharge bitline). Eachset 12 of cells in theSLM library 10 may also include variousperipheral cells 22 required for standard cell abutment at the edge of a memory core formed using thebitcells 14,wordline driver cells 16,bitline write cells 18, andbitline read cells 20. - According to embodiments, the physical image of each of the cells in the SLM
library 10 is completely compatible with standard cells in a chosen standard cell library (hereafter “standard cell library”). That is, the SLMlibrary 10 can be considered to be an extension to the standard cell library. However, the internal structure of each of the cells in the SLMlibrary 10 is tailored for use in custom SRAMs in a way that cannot be provided using standard cells in a standard cell library. For example, the wordline and bitline metal contacts (wires) in thebitcells 14 connect by abutment when placed and are shared betweenadjacent bitcells 14. This type of abutment is not allowed in standard cell libraries because, for example, cell to cell connectivity needs to be independent of placement in conventional standard cell design. Connectivity by abutment presumes connectivity between neighbors. - An example of an
SRAM core 30 formed using aset 12 of cells in the SLMlibrary 10 is depicted inFIG. 4 . As shown, thecore 30 may include a rectangular array ofbitcells 14 that follow standard cell placement (row) constraints. An example of the ordering attributes that drive the correct placement of the cells in theSRAM core 30 ofFIG. 4 is depicted inFIG. 5 . Placement constraints (e.g., data path or relative placement) require an abutted regular placement of the components of theSRAM core 30, while allowing optimization of the overall placement of theSRAM core 30 in a larger design. For example, a placement tool will keep the cells of theSRAM core 30 close to each other since they have strong connectivity between them. While doing that, the placement tool will usually pick a good place for the cells of theSRAM core 30 in a larger design, which is generally much larger. - In the
SRAM core 30, thebitcells 14 are connected by abutment. Awordline driver cell 16 is placed in abutment with eachrow 32 ofbitcells 14. Abitline write cell 18 and a bitline readcell 20 are placed in abutment with each other and one of the bitline writecell 18 or bitline readcell 20 is placed in abutment with eachcolumn 34 ofbitlines 14.FIG. 6 depicts a portion of theSRAM core 30 ofFIG. 4 showing how wordlines 36 andbitlines 38 may be shared between abuttingbitcells 14. - In
FIG. 7 , theSRAM core 30 is depicted as further including a plurality ofperipheral cells 22. Theperipheral cells 22 allow various outer cells of the SRAM core 30 (e.g.,wordline driver cell 16, bitline writecell 18, bitline read cell 20) to be connected to control circuitry, external to theSRAM core 30, created by synthesis using standard cells of a standard cell library. Such control circuitry may include, for example, address latch anddecoding circuitry 40 for generating bitline signals and read/write circuitry 42 for reading from and writing data to bitcells 14 in theSRAM core 30, and otherapplicable control circuitry 44. Theinner boundary 46 of eachperipheral cell 22 is connected via abutment to a corresponding cell (e.g.,wordline driver cell 16, bitline writecell 18, bitline read cell 20) in theSRAM core 30. Theouter boundary 48 of eachperipheral cell 22, however, is compatible with the standard cells of the standard cell library. To this extent, in general, theperipheral cells 22 provide an interface between the cells in theSLM library 10 and standard cells in a standard cell library. - The
SRAM core 30 may be instantiated directly in a register transfer level (RTL) design, which is preserved through synthesis, and compiled using a standard digital logic design flow. A hardware design language such as Verilog may be used to write the RTL design of theSLM core 30. The RTL design of theSRAM core 30 includes a direct instantiation of: - a) an N wordline by M bitline array of
bitcells 14; - b) N
wordline driver cells 16; - c) M bitline read
cells 18; - d) M bitline write
cells 20; and - e)
Peripheral cells 22. - The RTL design also includes soft logic, created by synthesis using standard cells of a standard cell library, to map wordline and bitline signals into memory address (decode) and data read/write (ports). The remaining functions for a memory (e.g., decode, multiplexing, controls, etc.) may also be written in RTL and created by synthesis using standard cells of a standard cell library.
- According to embodiments, timing and power models are provided (e.g., in a .lib format) for each individual cell in the
SLM library 10 to support static timing and power analysis of anSRAM core 30 formed using the cells in theSLM library 10. The .lib file(s) 50 (FIG. 1 ) are provided as part of theSLM library 10. The timing and power models may be provided using a tool such as the Liberate characterization tool available from Cadence. This may include running circuit simulation(s) to evaluate the delay and power usage of the read and write paths through abitcell 14 and similar paths through eachwordline driver cell 16, bitline readcell 18, bitline writecell 20, andperipheral cell 22. The performance values (e.g., timing arcs) are captured into a static timing model for each cell in theSLM library 10. Advantageously, the generation of a separate timing model for each cell in theSLM library 10 allows a static timing tool used in logic synthesis to time and otherwise characterize the entire design (memory and logic) in situ. - The SLM library 10 (
FIG. 1 ) may also include variousother data 52, including layout, schematic, symbol, abstract, and/or other logical or simulation views for each cell in theSLM library 10. From this, various information may be captured in a number of formats (e.g., in a Library Exchange Format (LEF) representing the physical layout in an ASCII format). - An SLM design flow according to embodiments is depicted in
FIG. 8 , described with reference toFIG. 7 . - At process P1, the cells forming an
SRAM core 30 are defined in RTL as a part of a larger SoC RTL design. The RTL for the cells forming theSRAM core 30 is written in an HDL such as Verilog. The particular cells selected for theSRAM core 30 may depend on the available architectures supported by the SLM library 10 (e.g., port configuration, bitcell type, etc.). The cells of the SRAM core (e.g., bitcells 14,wordline driver cells 16, bitline writecells 18, bitline readcells 20, peripheral cells 22) are directly instantiated in RTL in the SoC RTL design. - At process P2, the RTL for the cells of the
SRAM core 30 is checked against design constraints (e.g., core size, maximum dimensions, allowed periphery types, etc.). If the design constraints are met (Y at process P3), flow passes to process P4. If not (N at process P3), flow passes back to process P1, where the SoC/SRAM RTL design may be modified accordingly. - At process P4, the SoC RTL design is synthesized using the cells in the
SLM library 10 and the standard cells of thestandard cell library 54. This process includes static timing analysis based on the timing models provided in the .lib files 50 for each cell in theSLM library 10 and timing models provided for standard cells in thestandard cell library 54. If the power, performance, and area requirements (PPA) for the SoC design are acceptable (Y at process P5), flow passes to process P6, where placement and routing of the SoC design is performed. If the power, performance, and area requirements are not acceptable (N at process P5), flow passes back to process P1, where the SoC/SRAM RTL design may be modified accordingly. - In general, during placement, the
SRAM core 30 may be placed freely within a larger design as long as the cells of theSRAM core 30 remain appropriately abutted. Placement of the soft logic required to obtain memory addresses and the port configuration from the wordline and bitline signals, however, may be optimized in a conventional manner. -
FIG. 9 depicts an example of the netlist connectivity provided during synthesis of several abutting cells (e.g.,bitcells SRAM core 30, where the dashed lines are connecting nets (e.g., wordlines WL0, WL1, and bitlines BL0, BL1). In general, in accordance with ordering attributes (e.g., l_00, l_01, l_10, l_11) of the bitcells 14A, 14B, 14C, and 14D, placement strives to place thebitcells FIG. 10 , for example, when properly placed, the bitlines BL of thebitcells bitcells bitcells bitcells - After placement and routing of the SoC design has been completed in process P6, the power, performance, and area requirements for the SoC design are again examined at process P7. If acceptable (Y at process P5), the process ends. If the power, performance, and area requirements (PPA) for the SoC design are not acceptable (N at process P7), flow passes back to process P1, where the where the SoC/SRAM RTL design may be modified accordingly.
- In the SLM design flow depicted in
FIG. 8 , theSLM library 10 provides various data/views, including, for example: - a) Process P1 - RTL written in Verilog;
- b) Process P2 - Design Constraints (e.g., SRAM core size, periphery choices);
- c) Process P4 - Front end of the line (FEOL) views (e.g., Verilog, timing models (.lib), LEF); and
- d) Process P6 - FEOL and back end of the line (BEOL) views, relative placement constraints.
- Upon completion of the SLM design flow depicted in
FIG. 8 , an optional timing analysis may be performed as shown in phantom inFIG. 11 . The optional timing analysis includes a process P8, where a timing characterization is run on theSRAM core 30 in the SoC design to provide a single timing model for theSRAM core 30 in the SoC design, and a process P9, where the single timing model for theSRAM core 30 is stored in theSLM library 10. Subsequently, at process P10, late optimization and final timing may be performed on the SoC design using the single timing model for theSRAM core 30. Advantageously, by using a single, large timing model for theSLM core 30 instead of a hierarchical collection of individual, cell-level timing models, the time required for static timing may be reduced and the accuracy of the static timing may be improved. - Embodiments of the disclosure provide various technical and commercial advantages, examples of which have been described above. Additional technical and commercial advantages are discussed below. For example, embodiments of the disclosure provide an
SLM library 10 including a plurality ofsets 12 of cells for providingSRAM cores 30 having multiple different port configurations, including, for example, a two port SRAM (2R1W) that allows multiple reads or writes to occur at the same time. - An
SRAM core 30 formed using the cells in theSLM library 10 can be quickly designed via RTL, without the overhead of compiling and floor-planning instances and can be easily modified by rewriting the RTL. For smaller sizes of SRAMs, the processes described herein are more area/power efficient than other techniques used to form SRAMs (e.g., register files). In addition, anSRAM core 30 formed using the cells in theSLM library 10 can be more efficiently integrated into other logic, including automated placement and synthesis optimization of PPA for the support logic for theSRAM core 30. - Aspects of the present disclosure are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general-purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- As used herein, the term “configured,” “configured to” and/or “configured for” can refer to specific-purpose patterns of the component so described. For example, a system or device configured to perform a function can include a computer system or computing device programmed or otherwise modified to perform that specific function. In other cases, program code stored on a computer-readable medium (e.g., storage medium), can be configured to cause at least one computing device to perform functions when that program code is executed on that computing device. In these cases, the arrangement of the program code triggers specific functions in the computing device upon execution. In other examples, a device configured to interact with and/or act upon other components can be specifically shaped and/or designed to effectively interact with and/or act upon those components. In some such circumstances, the device is configured to interact with another component because at least a portion of its shape complements at least a portion of the shape of that other component. In some circumstances, at least a portion of the device is sized to interact with at least a portion of that other component. The physical relationship (e.g., complementary, size-coincident, etc.) between the device and the other component can aid in performing a function, for example, displacement of one or more of the devices or other components, engagement of one or more of the devices or other components, etc.
- The descriptions of the various embodiments of the present disclosure have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/546,408 US20230186980A1 (en) | 2021-12-09 | 2021-12-09 | Synthesizable logic memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/546,408 US20230186980A1 (en) | 2021-12-09 | 2021-12-09 | Synthesizable logic memory |
Publications (1)
Publication Number | Publication Date |
---|---|
US20230186980A1 true US20230186980A1 (en) | 2023-06-15 |
Family
ID=86694898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/546,408 Pending US20230186980A1 (en) | 2021-12-09 | 2021-12-09 | Synthesizable logic memory |
Country Status (1)
Country | Link |
---|---|
US (1) | US20230186980A1 (en) |
-
2021
- 2021-12-09 US US17/546,408 patent/US20230186980A1/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5724250A (en) | Method and apparatus for performing drive strength adjust optimization in a circuit design | |
JP5046167B2 (en) | Program for circuit design scaling | |
US5210701A (en) | Apparatus and method for designing integrated circuit modules | |
US8185851B2 (en) | Memory building blocks and memory design using automatic design tools | |
US6813201B2 (en) | Automatic generation and validation of memory test models | |
US11783104B2 (en) | Apparatus and method for mapping foundational components during design porting from one process technology to another process technology | |
US8359553B1 (en) | Various methods and apparatuses for effective yield enhancement of good chip dies having memories per wafer | |
CN112735492A (en) | Column multiplexing technique | |
US6738953B1 (en) | System and method for memory characterization | |
US7768840B1 (en) | Memory modeling using an intermediate level structural description | |
US7480611B2 (en) | Method and apparatus to increase the usable memory capacity of a logic simulation hardware emulator/accelerator | |
US6848084B1 (en) | Method and apparatus for verification of memories at multiple abstraction levels | |
US7900174B2 (en) | Method and system for characterizing an integrated circuit design | |
US7398495B1 (en) | Method and apparatus for characterizing arrays using cell-based timing elements | |
EP2005340B1 (en) | Method and system for verifying performance of an array by simulating operation of edge cells in a full array model | |
US20230186980A1 (en) | Synthesizable logic memory | |
US20220147683A1 (en) | Method for implementing an integrated circuit comprising a random-access memory-in-logic | |
US20130061192A1 (en) | Re-Modeling a Memory Array for Accurate Timing Analysis | |
TW202217638A (en) | Computer-implemented method, computerimplemented system and computer-readable medium | |
Guthaus et al. | Enabling design technology co-optimization of srams through open-source software | |
CN105260545B (en) | A kind of verification method of programmable circuit system | |
US20120011483A1 (en) | Method of characterizing regular electronic circuits | |
US8429578B2 (en) | Method of verifying logic circuit including decoders and apparatus for the same | |
JPH10222545A (en) | Parameterized memory circuit degenerating method and logic cell library generating method | |
Crow | Delay-Based SRAM Control Logic in OpenRAM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: GLOBALFOUNDRIES U.S. INC., NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:NORTHROP, GREGORY A.;RAJ, VIVEK;BAG, AMLAN;AND OTHERS;SIGNING DATES FROM 20211208 TO 20211209;REEL/FRAME:058347/0074 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |