A method for efficiently selecting the optimal type of static random access memory

Through the compiler environment and algorithms, the storage requirements are automatically adjusted, and the SRAM physical implementation solution is traversed and filtered, and the selection complexity and omission problems in the existing technology is solved, and efficient and automated selection of SRAM physical implementation solution is achieved.

CN117539498BActive Publication Date: 2025-08-26奕行智能科技(广州)有限公司
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202311554536.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-11-21
Publication Date
2025-08-26
Estimated Expiration
2043-11-21

AI Technical Summary

Technical Problem

The existing SRAM physical implementation solution selection process is complex, requiring engineers to understand a large number of rules, easily miss optimization solutions, and the screening work is large, making it difficult to quickly select the most suitable physical implementation type from many solutions.

Method used

Provide a compiler working environment, enter a storage requirement table, automatically adjust unreasonable storage requirements through algorithms, traverse all SRAM physical implementation solutions, filter unreasonable solutions, custom splits to meet project requirements, and generate a reasonable list of SRAM physical implementation solutions.

Benefits of technology

Simplified the SRAM selection process, reduced manual errors, improved screening efficiency, provided more choices, automatically filtered unreasonable solutions, flexibly responded to project needs, reduced manual workload, and improved work efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117539498B_ABST
    Figure CN117539498B_ABST
Patent Text Reader

Abstract

The present invention relates to a method for efficiently selecting the optimal type of static random access memory (SRAM), comprising: providing a compiler working environment; inputting a storage requirement table, wherein the storage requirement refers to the total number of storage addresses required and the storage data bit width required; automatically determining and adjusting unreasonable total number of storage addresses required and storage data bit width required to reasonable values; traversing all physical implementation schemes of the SRAM, including splitting schemes, to obtain all physical implementation schemes that meet the storage requirement and outputting a list of schemes; and determining whether the physical implementation schemes in the list meet the project requirements. If so, a physical implementation scheme suitable for the project is selected from the list of schemes; if not, it is necessary to determine whether a custom split is performed. The user provides a storage requirement of any size, and the algorithm automatically adjusts the total number of storage addresses required / the storage data bit width required to values ​​that the tool can generate.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of memory technology, and in particular to a method for efficiently selecting an optimal type of static random access memory. Background Art

[0002] Static random access memory (SRAM) is a crucial component of a system-on-chip (SoC). A single SoC project can have hundreds of storage requirements, categorized by function into three main types: single-port, pseudo-dual-port, and dual-port. SRAM has even more physical implementation types. For example, single-port SRAMs include register filers, SPSRAMs, high-density SPSRAMs, and high-speed SPSRAMs. By the time the 7nm process arrives, there are over ten physical types for single-port SRAMs alone. These types are further subdivided into numerous subtypes based on segment and column mux. Therefore, for a given storage size, numerous physical implementation options are available. The challenge is to quickly and accurately select the SRAM that meets the storage requirements and is most conducive to the physical implementation of the current chip project from among these numerous physical implementations.

[0003] The current SRAM physical implementation selection process has the following defects:

[0004] 1. When providing memory requirements, it is necessary to consider whether they meet the tool generation requirements (for example, if the total number of memory addresses required is a multiple of xx, which memory addresses cannot be generated). This requires engineers to understand the compiler's MC generation rules. Different processes have different rules, so understanding many of them is necessary.

[0005] 2. Splitting rule used by similar solutions: Required number of blocks = (number of required storage addresses * bit width) / (number of addresses available on the SRAM IP * bit width). Based on the above formula, the traversed solutions may include many unreasonable solutions (for example, the original 1024x32 may result in a 16x64x32 split, which increases the total area several times), increasing the screening workload.

[0006] 3. Omissions may occur during traversal. For example, if the input is 528x16, spram_m4 can just meet this size. However, spram_m8 can actually provide 544x16. Although the area is slightly larger, it has better performance in terms of frequency and static power consumption. Such a solution will be omitted. Summary of the Invention

[0007] In order to solve at least some of the above problems in the prior art, the present invention provides a method for efficiently selecting the optimal type of static random access memory, comprising:

[0008] Provide compiler working environment;

[0009] Input storage requirement table, where storage requirement refers to the total number of storage addresses and storage data bit width;

[0010] Automatically determine and adjust the unreasonable total number of storage addresses and storage data width to reasonable values;

[0011] Traversing all physical implementation schemes of static random access memory, including split schemes, to obtain all physical implementation schemes that meet the storage requirements, and outputting a list of schemes; and

[0012] Determine whether the physical implementation solutions in the list meet the project requirements. If so, select a physical implementation solution suitable for the project from the solution list. If not, determine whether to perform custom splitting.

[0013] Furthermore, the storage requirement information is input in the EXCEL format, where the table content includes:

[0014] The type of static random access memory, bit mask, redundancy repair, number of storage requirement instances, and required maximum frequency are saved as an EXCEL table and input into the algorithm script.

[0015] Furthermore, reasonable values ​​of the total number of storage addresses and the data bit width required for storage are at least the minimum values ​​specified by the compiler MC.

[0016] Furthermore, automatically determining and adjusting unreasonable storage requirement addresses and data bit widths to reasonable values ​​includes:

[0017] If the total number of storage addresses inputted does not directly correspond to an available physical implementation solution, a value close to the total number of storage addresses inputted and capable of being physically implemented is recalculated according to the rules generated by the static random access memory.

[0018] Furthermore, automatically determining and adjusting unreasonable storage requirement addresses and data bit widths to reasonable values ​​includes:

[0019] If the total number of addresses currently required for storage is less than the minimum number of addresses allowed for the current physical type, the number will be automatically adjusted to the minimum number of addresses allowed for the physical type.

[0020] After adjusting the total address value to the minimum storage requirement, check whether the current size is greater than the input storage requirement and round up to the nearest exponent of 2 to eliminate unreasonable physical implementation solutions; and

[0021] When the total number of storage requirements input is less than the minimum total number of addresses allowed by the physical implementation of all static random access memories that meet the current function, the total number of storage requirements is directly adjusted to the minimum value, and no comparison is performed between the adjusted total number of storage requirements and the total number of storage requirements input, where the current function refers to single-port, pseudo-dual-port and dual-port.

[0022] Furthermore, it also includes:

[0023] When the physical implementation of the static random access memory exceeds the maximum value specified by the compiler MC, the algorithm automatically splits it.

[0024] Further, including:

[0025] When the physical implementation solution does not meet the physical requirements of the project, perform custom splitting.

[0026] Furthermore, the input storage requirement table is converted into various physical implementation schemes of static random access memories that meet the requirements through an algorithm, and a corresponding table is generated.

[0027] Furthermore, the algorithm automatically splits the data into:

[0028] The total number of addresses currently required for storage / the data bit width required for storage are divided from 2 to 10 in sequence, rounded up and combined with each other, and unreasonable values ​​are adaptively adjusted. The operation is repeated until a physical implementation scheme of the static random access memory that meets the frequency conditions is found.

[0029] The present invention has at least the following beneficial effects: in a method for efficiently selecting the optimal type of static random access memory disclosed in the present invention, a user provides a storage requirement of any size, and then an algorithm automatically adjusts the total number of addresses required for the storage requirement / the data bit width of the storage requirement to a value that can be generated by the tool, without requiring each engineer to understand the generation rules of the compiler; the algorithm traverses each physical branch in each SRAM type according to the storage requirement, and based on the adjusted total number of addresses required for the input storage requirement / the data bit width of the storage requirement, traverses more SRAM physical implementation schemes, provides more options for PPA evaluation, automatically filters out unreasonable schemes, and improves screening efficiency; flexibly responds to SRAM evaluation requirements / project requirements, customizes split settings (to meet certain special requirements), obtains evaluation data in a timely manner, simplifies the SRAM data transmission process, and generates all subsequent data for the selected SRAM with one click; all SRAM-related work is integrated into one process, greatly simplifying the SRAM process from specification formulation, scheme screening, to final production, reducing human errors, and improving work efficiency. BRIEF DESCRIPTION OF THE DRAWINGS

[0030] In order to further illustrate the above and other advantages and features of various embodiments of the present invention, a more specific description of various embodiments of the present invention will be presented with reference to the accompanying drawings. It will be understood that these drawings only depict typical embodiments of the present invention and are therefore not to be considered as limiting the scope thereof.

[0031] Figure 1 The flowchart of a method for efficiently selecting the optimal type of static random access memory according to an embodiment of the present invention is shown. DETAILED DESCRIPTION

[0032] It should be noted that components in the drawings may be shown exaggerated for illustrative purposes and are not necessarily true to scale.

[0033] In the present invention, each embodiment is only intended to illustrate the aspects of the present invention and should not be construed as limiting.

[0034] In the present invention, unless otherwise specified, the quantifiers "a" and "an" do not exclude the presence of multiple elements.

[0035] It should also be pointed out that in the embodiments of the present invention, for the sake of clarity and simplicity, only a portion of the parts or components may be shown, but a person skilled in the art will understand that under the teachings of the present invention, the required parts or components may be added according to the needs of the specific scenario.

[0036] It should also be pointed out that within the scope of the present invention, the terms "same", "equal", "equal to" and the like do not mean that the two values ​​are absolutely equal, but allow a certain reasonable error, that is, the terms also cover "substantially the same", "substantially equal", and "substantially equal to".

[0037] It should also be noted that in the description of the present invention, the terms "center," "longitudinal," "lateral," "upper," "lower," "front," "back," "left," "right," "vertical," "horizontal," "top," "bottom," "inner," and "outer" and the like, indicating orientations or positional relationships, are based on the orientations or positional relationships shown in the accompanying drawings and are intended solely to facilitate description and simplify the present invention. They do not explicitly or implicitly state that the devices or components referred to must have a specific orientation, be constructed, or operate in a specific orientation. Therefore, they should not be construed as limitations on the present invention. Furthermore, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance.

[0038] In addition, the numbering of the steps of the methods of the present invention does not limit the order in which the steps are to be performed. Unless otherwise specified, the steps of the methods may be performed in different orders.

[0039] Figure 1The flowchart of a method for efficiently selecting the optimal type of static random access memory according to the present invention is shown.

[0040] Figure 1 The steps in the right box are handled by the script, while the steps in the left box are checked by engineers. Because the conditions and requirements of each project are different, the script is responsible for converting all storage requirements into corresponding SRAM physical implementation solutions. Engineers will check and evaluate the actual situation of the project and make a selection.

[0041] like Figure 1 As shown, a static random access memory design method includes the following steps:

[0042] Step 1: Build the compiler (MC) working environment.

[0043] Step 2: Enter the storage requirement table, where the storage requirement refers to the total number of storage addresses and the data bit width required for storage, both of which are the most basic storage requirements.

[0044] Step 3: Automatically determine and adjust the unreasonable total number of storage addresses and storage data bit width to reasonable values.

[0045] Check the storage requirements to determine whether the total number of required storage addresses and / or the required data width are reasonable. If not, adjust them to reasonable values. The total number of required storage addresses and the required data width should be as small as possible while meeting the actual storage requirements.

[0046] Step 4: Traverse all SRAM physical implementations according to the compiler rules to find all physical implementations that meet the storage requirements and output a list of solutions. Unreasonable solutions are automatically filtered out, and only the physical implementations that meet the requirements are output.

[0047] In step 5, the engineer determines whether the physical implementation solutions in the list meet the project requirements. If so, the engineer selects a physical implementation solution suitable for the project from the solution list. If not, the engineer determines whether to perform custom splitting, ultimately obtaining all physical implementation solutions that meet the project requirements.

[0048] Optionally, in step 6, when the physical implementation solution does not meet the physical requirements of the project, perform custom splitting and determine whether the total number of storage addresses and the data bit width of the storage requirements after the splitting are reasonable. If not, adaptive adjustments will be made and the process will be repeated from step 2; or

[0049] Without custom splitting, the engineer checks and adjusts the data, re-enters the storage requirement table, and repeats the process from step 1.

[0050] Step 7: The algorithm generates the complete data of the SRAM required for the project. After the complete SRAM data is generated, a table is automatically generated to record the relationship between the original storage requirements, the selected SRAM, and the number of splits.

[0051] The following describes in detail the process of selecting the optimal type of static random access memory method.

[0052] 1. Build the compiler (MC) working environment. The MC working environment includes the log of the entire process from storage requirements to SRAM physical solution list generation (log), the storage location of storage requirements (input), the space for storing intermediate files during traversal and capture of SRAM specifications (work), the storage location of the SRAM physical implementation solution list (result), the directory structure for generating complete SRAM data (mem_gen), the complete data of each SRAM (mem_lib), the configuration file generated for the compiler (mem_cfg) for each SRAM, the storage location of the wrapper generated according to storage requirements (mem_wrapper), and the working environment of the memory compiler when generating SRAM in batches (mem_gen_source).

[0053] 2. Enter the storage requirements form. Fill out the storage requirements form (Excel) according to the format and enter the script. The storage requirements form includes the SRAM function type, bit mask, redundancy repair, total number of storage addresses required (depth), required data bit width (width), number of required storage instances, and required maximum frequency.

[0054] The default values ​​for the split guide do not require D, W, or A, as they are automatically determined by the script. However, if special requirements arise, these can be manually filled in. D represents the automatic split of the total number of storage addresses required, W represents the automatic split of the data width required, and A represents the split of both the total number of storage addresses required and the data width required. D-*: The total number of storage addresses required is split into 2^* parts (* range: 1 to 6). SRAM functional types are classified into the following three categories: single-port (SP), pseudo-dual-port (TP), and dual-port (DP), depending on the function selected.

[0055] 3. Check the storage requirements to determine whether the total number of required storage addresses and / or the required storage data width are reasonable. If not, adjust them to reasonable values. Reasonable values ​​for the total number of required storage addresses and the required storage data width must be at least the minimum allowed by the compiler's rules. For storage requirements smaller than these, consider direct register implementation to save area.

[0056] If the total number of storage addresses inputted does not directly correspond to an available physical implementation solution, a value close to the total number of storage addresses inputted and capable of being physically implemented is recalculated according to the rules generated by the static random access memory.

[0057] Each SRAM generation rule in the MC data table is described in the form of an array. After the storage requirement table is input, the algorithm will automatically check the total number of storage requirement addresses and storage requirement data bit width of each storage requirement by combining the generation rules and supplementary rules.

[0058] After the actual storage requirements are input, the algorithm also requires some supplementary rules to ensure the rationality of the storage requirements input, such as:

[0059] If the total number of addresses currently required for storage is less than the minimum total number of addresses required for the SRAM of the specified type, it will be automatically adjusted to the minimum total number of addresses allowed for the physical type of the SRAM.

[0060] After adjusting the total address value to the minimum storage requirement, check whether the current size is much larger than the input storage requirement to eliminate unreasonable physical implementation solutions.

[0061] Assume that the total address of the input storage requirement is 998, and the value that is the exponential multiple of 2 is 2 ceil(log2(998)+1) =1024, so the maximum allowed address width is set to 2 ^ 10. If the minimum size of a physical type is 2048, the current size will be adaptively adjusted to 2048. This adjustment is considered to be much larger than the input storage requirement. Here, much larger means that the current size is larger than the input storage requirement by the next exponential value of 2, which can be calculated using the following formula:

[0062]

[0063] Ceil means rounding, log2() means logarithm with base 2, and 2^() means exponent of 2.

[0064] When the total number of storage requirements input is less than the minimum total number of addresses allowed by the physical implementation of all static random access memories (single port, pseudo dual port, dual port) that meet the current function, the total number of storage requirements is directly adjusted to the minimum value, and no comparison is performed between the adjusted total number of storage requirements and the input total number of storage requirements.

[0065] For example, when the total number of storage addresses entered is 3, the value of the next exponent with an upper exponent of 2 is 4. The minimum total number of storage addresses allowed in the currently selected major category (SP, TP, DP) is 8. The total number of storage addresses required is readjusted, and the current size is not compared with the required size. The reasons are as follows:

[0066] First, if no adjustment is made, no SRAM that meets the requirements will be generated. By default, unreasonable SRAM solutions will be compared and excluded. Even if the size is automatically adjusted to 8, it will be judged that the adjusted size is much larger than the input size. Therefore, the current size will not be compared with the required size.

[0067] If the frequency does not meet the conditions or the total number of addresses required for storage is too large, the storage demand cannot be generated without splitting, and automatic splitting is required.

[0068] The following example illustrates a method for adaptively adjusting an unreasonable total number of storage addresses or a storage data bit width to a reasonable value.

[0069] If the total number of storage addresses inputted cannot be generated by the SRAM, one or more values ​​close to the total number of storage addresses inputted are calculated according to the SRAM generation rules, and the value that meets the size requirement and is allowed by the compiler is selected as the adjusted total number of storage addresses. Here, the value close to the total number of storage addresses inputted is the value that is closest among the values ​​calculated according to the SRAM generation rules.

[0070] When the total number of storage addresses entered is 1028, the algorithm automatically adjusts the SRAM to generate an SRAM with a total storage address of 1056, based on the SRAM generation rules. The two storage address numbers close to this value and allowed by MC are 1024 and 1056. This not only meets the storage requirements but also avoids excessive SRAM waste. It also saves engineers the time of considering MC generation rules when filling in storage requirements. Any engineer unfamiliar with MC can quickly get started using this process.

[0071] Taking the N28 SPSRAM as an example, the MC specifies three subtypes of this type of SRAM. Each type has a fixed range and step size for the total number of required storage addresses and the required data bit width. Described in algorithmic form, 4:s represents mux = 4, segment = s (small), the required total storage address range is 32:8192, the required total storage address step size = mux * 4, the required data bit width range is 16:144, and the required data bit width step size = 1. Within this range, the required total storage address range cannot be 1040.

[0072] When traversing, the algorithm first looks at the range of 4:s. According to the above rules, the step size of the total number of storage addresses required is 16. The two values ​​closest to the total number of storage addresses required of 1028 (1028 / 16=64.25) are 1024 (16x64) and 1040 (16x65). In order to meet the storage requirements, the total number of storage addresses required can only take a larger value. The best value is 1040, but according to the rules, 1040 cannot be taken. Therefore, the algorithm will automatically adjust the total number of storage addresses required to 1056 (16x66). This not only meets the storage requirements but also does not cause a large waste of area.

[0073] 4. Traverse all SRAM physical implementation schemes according to the compiler rules to find all physical implementation schemes that meet the storage requirements and output a list of schemes. Automatically filter out unreasonable schemes and only output the SRAM physical implementation schemes that meet the requirements.

[0074] Principle: By default, for storage requirements that can meet the frequency requirements without splitting, splitting will not be performed, because the integration is the highest and the area is the smallest. For storage requirements that do not meet the frequency requirements or cannot be generated without splitting, splitting will be performed automatically. The splitting is based on the following rules:

[0075] According to MC's rules, the greater the number of splits, the less improvement in SRAM PPA. Therefore, the number of splits is limited by default. Unless there is a special need, the split settings can be customized. PPA stands for Power, Performance, and Area.

[0076] The total number of storage addresses required / the required data bit width can be divided from 2 to 10, rounded up, and combined. Unreasonable values ​​are then automatically and adaptively adjusted according to the above method until a physical SRAM implementation that meets the frequency requirements emerges. Further division consumes more area according to the MC law, so the specific amount is determined by engineers based on the overall chip area and density requirements. The total number of storage addresses required / the required data bit width after division must be a power of 2; otherwise, the functionality of the splicing circuit cannot be guaranteed.

[0077] After the SRAM is split, the total number of storage addresses and the data bit width of the storage requirements need to be adaptively adjusted after the split. At this time, it often happens that after the total number of storage addresses is automatically adjusted, the overall size will be much larger than the original storage requirements, including the number of split blocks, resulting in a waste of area. Regarding the solution to this problem, assuming that the original address is 998, the value close to it and exponentially multiplied by 2 is 1024, so the maximum address width is set to 10 bits. If the total number of storage addresses calculated after the split does not exceed 1024, the splitting solution is acceptable. Because the step size of the data bit width of the storage requirement is very small, similar situations will basically not occur.

[0078] Based on the above rules, the physical implementation schemes of SRAM traversed are basically determined to be reasonable. Subsequent engineers will select the appropriate SRAM scheme based on the actual situation of the project.

[0079] 5. The engineer determines whether the physical implementation solutions in the list meet the project requirements. If so, the engineer selects a physical implementation solution suitable for the project from the solution list. If not, the engineer determines whether to perform custom splitting.

[0080] In addition to frequency and leakage power consumption, the shape of the SRAM is also an important screening criterion. Because SRAM that is too tall or too wide can also cause voltage drop problems, the table also prints the aspect ratio of the SRAM as a criterion for SRAM selection. Engineers finally mark the solution that meets the storage requirements and is the best for the project.

[0081] 6. Perform custom splitting and determine whether the total number of storage addresses and the required data bit width after splitting are reasonable, and repeat the process from step 2; or

[0082] Without custom splitting, the engineer checks and adjusts the data, re-enters the storage requirement table, and repeats the process from step 1.

[0083] Taking the storage requirement of the MCU module as an example, the target requirement is 131072x39, the storage requirement data bit width meets the requirements, and the total number of storage addresses is too large. If the algorithm automatically splits it into 32768x, it can find the appropriate total number of storage addresses required, and the MC can generate SRAM.

[0084] However, after chip backend evaluation, the voltage drop is best when the unit SRAM size is 2048x, so the split setting needs to be specified as D-6, which means the total number of storage addresses required is split into 2^6 = 64 parts. In fact, each D-* level corresponds to multiple split numbers (as shown in Table 1), but this must be based on the premise that the total number of storage addresses required is an exponential of 2. Otherwise, when the wrapper controls each sub-SRAM address ( / address division), additional logic is required to control the maximum and minimum read and write addresses of each sub-SRAM block, and the SRAM read and write timing is difficult to guarantee.

[0085] Here you can see a lot of odd numbers / tens, and the number of splits is mainly to meet the splitting requirements such as splitting 2560 into 512x5. Such requirements are generally determined by the function. By default, the algorithm does not split this size (the reasons are as follows):

[0086] The more splits there are, the less the SRAM PPA will be improved, and the area will be larger, increasing the risk of congestion. Therefore, the maximum number of splits currently allowed is 64. If further splits are required, engineers need to evaluate whether the total number of storage address requirements of the input storage requirements is reasonable. So go back to the step of inputting storage requirements. Similarly, if the storage requirement data bit width is input relatively large, it is also necessary to evaluate whether the input is reasonable.

[0087] Table 1 Storage requirements Total number of addresses Split settings corresponding to the number of splits

[0088] Split settings of total address number of storage requirements Number of splits D-1 2,3 D-2 4,5 D-3 6,8,10,11 D-4 12,16,20 D-5 30,32 D-6 60,64

[0089] The various embodiments may be provided as a computer program product that may include one or more machine-readable media having machine-executable instructions stored thereon, which, when executed by one or more machines, such as computers, computer networks, or other electronic devices, may cause the one or more machines to perform operations according to the various embodiments of the present invention. The machine-readable medium may include, but is not limited to, floppy disks, optical disks, CD-ROMs (compact disk read-only memory) and magneto-optical disks, ROMs (read-only memory), RAMs (random access memory), EPROMs (erasable programmable read-only memory), EEPROMs (electrically erasable programmable read-only memory), magnetic or optical cards, flash memory, or other types of media / machine-readable media suitable for storing machine-executable instructions.

[0090] Furthermore, various embodiments may be downloaded as a computer program product, wherein the program may be transmitted from a remote computer (e.g., a server) to a requesting computer (e.g., a client) via a communication link (e.g., a modem and / or a network connection) using one or more data signals implemented and / or modulated by a carrier wave or other propagation medium. Thus, a machine-readable medium as used herein may, but is not required to, include such a carrier wave.

[0091] Although certain embodiments of the present invention have been described in this application, those skilled in the art will appreciate that these embodiments are provided by way of example only. Numerous variations, alternatives, and modifications will be contemplated by those skilled in the art in light of the teachings of this disclosure without departing from the scope of the present invention. The appended claims are intended to define the scope of the present invention and are intended to encompass methods and structures within the scope of these claims and their equivalents.

Claims

1. A method for efficiently selecting the optimal type of static random access memory, characterized in that: include: Provide compiler working environment; Input storage requirement table, where storage requirement refers to the total number of storage addresses and storage data bit width; The storage requirement information is input in an EXCEL format, where the table content includes: SRAM type, bit mask, redundancy repair, number of storage requirement instances, and required maximum frequency. These parameters and storage requirements are saved as an EXCEL table and input into the algorithm script; The algorithm converts the input storage requirement table into various physical implementation schemes of static random access memory that meet the requirements and generates the corresponding table; it automatically determines and adjusts the unreasonable total number of storage addresses and storage data bit width to reasonable values, including: If the total number of addresses currently required for storage is less than the minimum number of addresses allowed for the current physical type, the number will be automatically adjusted to the minimum number of addresses allowed for the physical type. After adjusting the total address value to the minimum storage requirement, check whether the current size is greater than the input storage requirement and take the value of the nearest exponent of 2 to eliminate unreasonable physical implementation solutions; When the input total number of storage requirements is less than the minimum total number of addresses allowed by the physical implementation of all static random access memories that meet the current function, the total number of storage requirements is directly adjusted to the minimum value, and the comparison between the adjusted total number of storage requirements and the input total number of storage requirements is not performed, where the current function refers to single-port, pseudo-dual-port, and dual-port; The reasonable values ​​of the total number of storage addresses and the data bit width of the storage requirements are at least the minimum values ​​specified by the compiler MC. By default, storage requirements that can meet the frequency requirements without splitting will not be split. Storage requirements that do not meet the frequency requirements or cannot be generated without splitting will be automatically split. The automatic splitting algorithm includes: dividing the current total number of storage addresses / storage requirement data bit width from 2 to 10 in sequence, rounding up, and combining them, and adaptively adjusting unreasonable values. This operation is repeated until a physical implementation solution for the static random access memory that meets the frequency requirements is found. Traversing all physical implementation schemes of static random access memory, including split schemes, to obtain all physical implementation schemes that meet the storage requirements, and outputting a list of schemes; and Determine whether the physical implementation solutions in the list meet the project requirements. If so, select a physical implementation solution suitable for the project from the solution list. If not, determine whether to perform custom splitting.

2. The method according to claim 1, characterized in that Also includes: When the physical implementation of the static random access memory exceeds the maximum value specified by the compiler MC, the algorithm automatically splits it.

3. The method according to claim 1, characterized in that include: When the physical implementation solution does not meet the physical requirements of the project, perform custom splitting.

Citation Information

Patent Citations

  • Data access method and device, electronic equipment and storage medium

    CN115599307A

  • Chip memory splitting method and device, equipment and medium

    CN116050328A