Netlist analysis method, computer equipment, program product and storage medium
By splitting the netlist file into independent atomic parsing partitions for parallel processing, combining the bitmap compression state machine and limited prospective repair algorithm, the problems of low efficiency of large-scale netlist resolution and long error repair time are solved, and the parsing efficiency and performance of the EDA system are improved.
Patent Information
- Application Number
- CN202510803720.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-17
- Publication Date
- 2025-07-18
- Estimated Expiration
- 2045-06-17
AI Technical Summary
The existing netlist parsing methods are inefficient when processing complex and large-scale netlists, and when syntax errors are triggered during the parsing process, the entire file needs to be re-parsed, resulting in high interruption risk and high resolution time cost.
The DAG task scheduler is used to split the netlist file into independent atomic parsing partitions, and parallel parsing is performed through a bitmap compression state machine and dynamic symbol table. The mixed parsing mode of incremental LALR(1) and GLL is used, and combined with the limited look-forward repair algorithm to skip the error interval when a syntax error is detected for local repair, generating a complete syntax tree.
It realizes efficient analysis of complex and large-scale netlists, reduces the parsing time after syntax error repair, and improves the physical and time performance of the EDA system.
Smart Images

Figure CN120335820A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of electronic design automation technology, and particularly to a netlist parsing method, a computer device, a program product, and a storage medium. Background Art
[0002] In the field of electronic design automation (EDA), netlist parsing is the core preprocessing link of physical design and simulation verification, which is used to convert circuit topology, device models, and simulation control statements into structured data that can be processed by a computer in the form of a netlist description.
[0003] The existing netlist parsing usually constructs a syntax tree through the recursive descent analysis method. However, the time complexity of constructing a syntax tree by the recursive descent analysis method reaches O(n²), which will cause the parsing throughput to drop precipitously as the netlist scale increases, making the performance of the system easily reach the bottleneck. And during the parsing process, when a single syntax error (such as missing port definition) is parsed, it will trigger the termination of the full-file parsing. When repairing the error, the full file needs to be re-parsed, resulting in a high interruption risk and a high parsing time cost. Therefore, there is an urgent need for a graph parsing solution that can effectively improve the parsing efficiency of complex and large-scale netlists and can greatly reduce the parsing time after error repair when a syntax error is triggered during the parsing process. Summary of the Invention
[0004] The purpose of the present invention is to provide a netlist parsing method, a computer device, a program product, and a storage medium, which can achieve the efficient parsing of complex and large-scale netlists, and can greatly reduce the parsing time after error repair when a syntax error is triggered during the parsing process, effectively improving the physical and time performance of large-scale netlist parsing in the EDA system.
[0005] The technical solution provided by the present invention is as follows: In the first aspect, the present invention provides a netlist parsing method for the simulation design of very large-scale integrated circuits, including the steps of: Obtaining a netlist file generated during the simulation design of the very large-scale integrated circuit; Splitting the netlist file into several independent atomic parsing partitions according to the syntax, and performing parallel task scheduling for each of the independent atomic parsing partitions through a lock-free circular queue, where each independent atomic parsing partition includes at least one complete sub-circuit module; Performing lexical classification on each of the independent atomic parsing partitions through a bitmap compression state machine and a dynamic symbol table, and outputting a classification token stream, where the token stream includes basic tokens and context-related tokens, the basic tokens corresponding to the basic data structures in the netlist file, and the context-related tokens corresponding to the data structures context-related to the basic data structures; Parallelly parse each of the independent atomic parsing partitions according to the token stream to generate local syntax trees corresponding to each of the independent atomic parsing partitions; When a syntax error is detected during parsing, save the current syntax stack state and symbol table to the database; Determine the error interval according to the token stream, and skip the error interval to reconstruct the syntax stack for subsequent parsing; After the user fixes the error, re-parse the error interval, and restore the context data based on the current syntax stack state to update the corresponding local syntax tree; Merge the local syntax trees according to the dependency relationships of each of the independent atomic parsing partitions to generate a complete syntax tree.
[0006] In some embodiments, the splitting of the netlist file into several independent atomic parsing partitions according to syntax includes: Based on regular expression matching of syntax boundaries, split the netlist file into several of the independent atomic parsing partitions, Establish a dependency graph according to the dependency relationships of each of the independent atomic parsing partitions; The parallel task scheduling of each of the independent atomic parsing partitions through a lock-free circular queue further includes: Generate a topological sorting sequence according to the dependency graph, perform sequential scheduling of the independent atomic parsing partitions with dependencies in the topological sorting sequence, and push the independent atomic parsing partitions without dependencies to the lock-free circular queue for parallel task scheduling.
[0007] In some embodiments, the lexical classification of each of the independent atomic parsing partitions through a bitmap compressed state machine and a dynamic symbol table to output a classified token stream includes: Compress the state transition table of each of the independent atomic parsing partitions into a bitmap encoding through the bitmap compressed state machine, and perform lexical analysis on the bitmap encoding for lexical classification.
[0008] In some embodiments, the lexical classification of each of the independent atomic parsing partitions through a bitmap compressed state machine and a dynamic symbol table to output a classified token stream further includes: Match the basic data structures of each of the independent atomic parsing partitions through single instruction - multiple data instructions, and cache the data structures related to the current basic data structure context through the dynamic symbol table to establish the association relationship between the basic tokens and the context-related tokens.
[0009] In some embodiments, the parallel parsing of each of the independent atomic parsing partitions according to the token stream to generate local syntax trees includes: The independent atomic parsing partitions are parsed in a hybrid manner by an incremental LALR(1) parser and a GLL parser to generate the local syntax tree; When a syntax error is detected during parsing, the error interval is skipped through a limited look-ahead repair algorithm for subsequent parsing.
[0010] In some embodiments, determining the error interval according to the token stream includes: According to the token of the current execution task when a syntax error is detected and the token stream, the limited look-ahead repair algorithm is used to scan forward a preset number of tokens to determine the repair boundary, thereby determining the error interval.
[0011] In some embodiments, the netlist file is split into several independent atomic parsing partitions by a directed acyclic graph scheduler, and a topological sorting sequence is generated by the directed acyclic graph scheduler and the dependency graph.
[0012] In a second aspect, the present application provides a computer device, including a memory, a processor, and a computer program stored on the memory, and the processor executes the computer program to implement the steps of the netlist parsing method described in the first aspect.
[0013] In a third aspect, the present application provides a computer storage medium, on which a computer program or instruction is stored, and when the computer program or instruction is executed by a processor, the steps of the netlist parsing method described in the first aspect are implemented.
[0014] In a fourth aspect, the present application provides a computer program product, including a computer program or instruction, and when the computer program or instruction is executed by a processor, the steps of the netlist parsing method described in the first aspect are implemented.
[0015] According to a netlist parsing method, a computer device, a program product, and a storage medium provided by the present invention, efficient parsing of complex and large-scale netlists can be achieved, and when a syntax error is triggered during parsing, the parsing time after error repair can be greatly reduced, effectively improving the physical and time performance of large-scale netlist parsing in an EDA system. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] The above characteristics, technical features, advantages, and their implementation manners of the present solution will be further described below in a clear and understandable manner in combination with the drawings and preferred embodiments.
[0017] Figure 1 is a schematic diagram of the overall process of an embodiment of the present invention; Figure 2 is a schematic diagram of the process of an embodiment of the present invention; Figure 3It is a schematic diagram of the parsing process of an embodiment of the present invention. Detailed implementation manners
[0018] In order to more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the following will describe the specific implementation manners of the present invention with reference to the accompanying drawings. Obviously, the accompanying drawings in the following description are only some embodiments of the present invention. For those of ordinary skill in the art, without creative efforts, other drawings can be obtained based on these drawings, and other implementation manners can also be obtained.
[0019] To make the drawings concise, only the parts related to the present invention are schematically shown in each drawing, and they do not represent the actual structure of the product. In addition, to make the drawings concise and easy to understand, in some drawings, components with the same structure or function are only schematically shown for one of them, or only one of them is marked. In this document, "one" not only means "only this one", but also means "more than one" situation.
[0020] In the field of electronic design automation (EDA), netlist parsing is the core preprocessing link of physical design and simulation verification, and is used to convert circuit topologies, device models, and simulation control statements into structured data that can be processed by a computer through the description of a netlist.
[0021] Existing netlist parsing usually constructs a syntax tree through recursive descent analysis. However, the time complexity of constructing a syntax tree by recursive descent analysis reaches O(n²), which will cause the throughput of parsing to drop precipitously as the scale of the netlist increases, making the performance of the system easy to reach a bottleneck; and during the parsing process, when a single syntax error (such as missing port definition) is parsed, the parsing of the entire file will be terminated, and the entire file needs to be re-parsed during error repair, resulting in a high risk of interruption and a high parsing time cost. Therefore, there is an urgent need for a chart parsing solution that can effectively improve the parsing efficiency of complex and large-scale netlists and can greatly reduce the parsing time after error repair when a syntax error is triggered during the parsing process.
[0022] This solution improves the effective hit rate of lexical and syntax analysis through the BCSM (Bitmap Compressed State Machine), multi-level FSA tokens, and dynamic symbol table caching mechanism, which can reduce the number of backtracking times of parameter patterns, thereby reducing the time complexity to O(nlogn) and significantly reducing the impact of the growth of the parsing efficiency with the netlist scale. At the same time, an improved incremental LALR(1) and GLL hybrid parsing mode is adopted. When a syntax error is detected, through the Lookahead-Limited Repair algorithm, error localization is achieved according to the context snapshot mechanism, skipping the error interval and reconstructing the syntax stack state to continue parsing the subsequent content, reducing the interruption risk. When the syntax error is repaired, only the error interval is re-parsed, making full use of historical parsing nodes and improving the effective parsing reuse rate. In addition, based on the DAG (Directed Acyclic Graph) task scheduler, the netlist file is disassembled into independent atomic parsing partitions according to syntax units, and thread distribution is performed according to partitions. Through the lock-free circular queue and shared symbol table lock mechanism, zero-conflict parallel parsing is achieved, which can exert the performance of multi-cores with a finer-grained parallel strategy, improve the parsing efficiency, and effectively improve the physical and time performance of large-scale netlist parsing in the EDA system. The following will describe this solution in detail with reference to the accompanying drawings: In one embodiment, referring to the attached drawings of the specification Figure 1 to the attached Figure 3 , the present invention provides a netlist parsing method for the simulation design of very large scale integrated circuits, including the steps of: S100. Obtain the netlist file generated during the simulation design of the very large scale integrated circuit; the netlist file contains multi-layer sub-circuit nesting, parameterized device macro definitions, simulation control statements, etc., and is usually stored in the SPICE format.
[0023] S200. Split the netlist file into several independent atomic parsing partitions according to syntax, and perform parallel task scheduling for each independent atomic parsing partition through a lock-free circular queue. Each independent atomic parsing partition contains at least one complete sub-circuit module.
[0024] This solution uses a DAG task scheduler (Directed Acyclic Graph Scheduler) to disassemble the netlist file into several independent atomic parsing partitions (Atomic Parsing Unit, APU) according to syntax units (such as `.SUBCKT`, `.MODEL`, `.PARAM`, etc.). Each APU contains a complete sub-circuit definition or model parameter block. A DAG is a graph composed of a finite number of vertices and directed edges. An important property of a DAG is that it can be topologically sorted. Topological sorting arranges all vertices of the DAG into a linear sequence such that for each directed edge u→v in the graph, vertex u is before vertex v. Topological sorting can be used to solve problems such as task scheduling and dependency parsing. And in a DAG, the path from one vertex to another is unique, there are no multiple paths; there are no cycles in the DAG, which makes it possible to represent a hierarchical or dependent system. By using the DAG task scheduler to disassemble the netlist file into independent atomic parsing partitions according to syntax units, distributing threads by partition, and implementing zero-conflict parallel parsing through a lock-free circular queue and a shared symbol table lock mechanism, the thread processing efficiency can be increased several times in netlist parsing above the GB level.
[0025] S300. Lexically classify each independent atomic parsing partition through a bitmap compressed state machine and a dynamic symbol table, and output a classified token stream. The token stream includes basic tokens and context-related tokens. The basic tokens correspond to the basic data structures in the netlist file, and the context-related tokens correspond to the data structures related to the context of the basic data structures.
[0026] This solution classifies tokens into basic tokens (such as node name `N1`, device value `R=1k`) and context-related tokens (such as sub-circuit instantiation call `X1 N1 N2 SUB_MOD`) through a multi-level FSA token classifier and processes them using a hierarchical state machine. By using a BCSM (bitmap compressed state machine), multi-level FSA tokens, and a dynamic symbol table caching mechanism, the effective hit rate of lexical syntax is improved, the number of backtracking times of parameter patterns is reduced, the time complexity is reduced to O(nlogn), and the impact of the growth of the netlist scale on the parsing efficiency is greatly reduced.
[0027] S400. Parallelly parse each independent atomic parsing partition according to the token stream to generate a local syntax tree.
[0028] Specifically, the incremental LALR(1) parser (Look-Ahead Left-to-Right Reduced) supports dynamic grammar stack snapshots (StateBack), and the GLL parser (Generalized Left-to-rightLeftmos) can be used to handle non-deterministic grammar structures (such as the ambiguity of parameterized macros). This solution performs hybrid parsing on independent atomic parsing partitions through the incremental LALR(1) parser and the GLL parser, performs LALR(1) reduction on the token streams of each independent atomic parsing partition, and generates local syntax trees.
[0029] S500. When a syntax error is detected during parsing, save the current grammar stack state (StateBack) and the current symbol table to the database.
[0030] S600. Determine the error interval based on the token stream, and skip the error interval to reconstruct the grammar stack for subsequent parsing.
[0031] When a syntax error is detected during parsing, skip the error interval through a finite look-ahead repair algorithm for subsequent parsing. Specifically, when this solution detects a syntax error (such as a missing sub-circuit port definition), the following actions are triggered: Context snapshot: Save the current grammar stack state (StateBack) and the symbol table to the database (DB); Error interval isolation: Skip the error interval (such as marked as `<ERROR_BLOCK>`) through the LLR algorithm, and continue to parse the subsequent content after reconstructing the grammar stack.
[0032] S700. After the user fixes the error, re-parse the error interval, and restore the context data based on the current grammar stack state, and update the corresponding local syntax tree.
[0033] After the user fixes the error in this solution, the system only re-parses the `<ERROR_BLOCK>` interval, and restores the context based on StateBack, avoiding full re-parsing, reducing the error recovery time from the full scale of traditional LR(1) to the incremental level, improving the local repair efficiency, and reducing the interruption risk.
[0034] S800. Merge the local syntax trees according to the dependency relationships of each independent atomic parsing partition to generate a complete syntax tree.
[0035] This solution can achieve efficient parsing of complex and large-scale netlists, and can greatly reduce the parsing time after error repair when a syntax error is triggered during parsing, effectively improving the physical and time performance of large-scale netlist parsing in the EDA system.
[0036] In one embodiment, based on the foregoing embodiment, the netlist file is split into several independent atomic parsing partitions according to the syntax, including: Based on regular expression matching of syntax boundaries, the netlist file is split into several independent atomic parsing partitions, and a dependency graph is established according to the dependency relationships of the individual independent atomic parsing partitions.
[0037] Based on regular expression matching of syntax boundaries (such as the `.ENDS` marker to end a subcircuit), the netlist file is divided into multiple APUs, and a dependency graph between the APUs (such as subcircuit call relationships) is established through symbol table scanning, which can ensure that the called modules are preferentially parsed during parallel parsing.
[0038] Parallel task scheduling for each independent atomic parsing partition is performed through a lock-free circular queue, and it also includes: generating a topological sorting sequence according to the dependency graph, performing sequential scheduling of the independent atomic parsing partitions with dependencies in the order of the topological sorting sequence, and pushing the independent atomic parsing partitions without dependencies to the lock-free circular queue for parallel task scheduling.
[0039] The DAG scheduler generates a topological sorting sequence according to the APU dependencies, pushes the APUs without dependencies to the circular queue, and they are pulled by the worker threads as needed.
[0040] This solution adopts the Shared Symbol Table Locking mechanism, uses a fine-grained read-write lock (RW-Lock) to ensure data consistency when multiple threads access the symbol table concurrently. The worker threads obtain the APUs from the circular queue, independently perform lexical and syntax parsing, and generate local syntax trees; the global symbol table (such as subcircuit definitions) adopts the Copy-On-Write strategy, and a copy is generated when a thread modifies it to avoid lock contention; the assembly engine recursively merges the local syntax trees according to the APU dependencies to generate complete netlist structured data. This solution can avoid the thread blocking and large-grained single-thread problems caused by module coupling in traditional serial parsing, reduce the splitting time of GB-level netlists, reduce the APU granularity, and achieve task load balancing.
[0041] In one embodiment, based on the foregoing embodiment, lexical grading is performed on each independent atomic parsing partition through a bitmap compression state machine and a dynamic symbol table, and a classified token stream is output, including: The state transition table of each independent atomic parsing partition is compressed into a bitmap encoding through a bitmap compression state machine, and lexical analysis is performed on the bitmap encoding for lexical grading.
[0042] Lexical grading is performed on each independent atomic parsing partition through a bitmap compression state machine and a dynamic symbol table, and a classified token stream is output, and it also includes: Match the basic data structure of each independent atomic parsing partition through single-instruction multiple-data instructions, and establish the association relationship between basic tokens and context-related tokens by caching the data structure of the current basic data structure context through a dynamic symbol table.
[0043] BCSM (Bitmask-Compressed State Machine) compresses the state transition table of the traditional FSA (Finite State Automaton) into a bitmap encoding, which can reduce the memory occupancy by more than 50%. The multi-level FSA token classifier classifies tokens into basic tokens (such as node name `N1`, device value `R=1k`) and context-related tokens (such as sub-circuit instantiation call `X1 N1 N2 SUB_MOD`), and uses a hierarchical state machine for processing.
[0044] When generating a token stream, it includes: basic token matching, directly matching a fixed pattern (such as resistor value `R[0-9]+`) through BCSM, using SIMD instructions (such as AVX-512) to parallelly compare multiple characters, and completing multi-byte matching in a single cycle; context token processing, caching the sub-circuit / macro definition names of the current parsing context through a dynamic symbol table, and quickly retrieving the token association relationship through a hash index; token stream generation, encapsulating the classified tokens into a token stream by APU partition, and attaching syntax context metadata (such as the current sub-circuit level).
[0045] In one embodiment, based on the foregoing embodiment, determining an error interval according to the token stream includes: According to the token and token stream of the current execution task when a syntax error is detected, scan a preset number of tokens forward through a finite look-ahead repair algorithm to determine the repair boundary, and then determine the error interval.
[0046] The finite look-ahead repair algorithm is an algorithm used to optimize decision-making and problem-solving in a specific field. Its core idea is to simplify the solution process of complex problems by looking ahead at future states and actions with a finite depth. The finite look-ahead repair algorithm is usually applied to problems with a large state space and a huge computational amount for complete solution. It is implemented through the following steps: finite look-ahead: starting from the current state, simulate future possible action and observation sequences, but only for a limited number of steps (look-ahead depth). This method avoids exhaustive search of the entire state space, thereby reducing the computational amount; pruning strategy, during the look-ahead process, prune unlikely observations or states, and retain more likely situations to further optimize computational resources; dynamic update, according to the results of the look-ahead, dynamically adjust the current strategy or repair plan, and use the observation results after executing the action as the input for the next step to continue the look-ahead.
[0047] This solution adopts an improved incremental LALR(1) and GLL hybrid parsing mode. When a syntax error is detected, through the Lookahead-Limited Repair algorithm, error localization is achieved according to the context snapshot mechanism. The error interval is skipped and the syntax stack state is reconstructed to continue parsing the subsequent content, reducing the risk of interruption. The parsed content will be saved to the DB structure. When the syntax error is repaired, only the error interval is re-parsed, making full use of historical parsing nodes and improving the effective parsing reuse rate.
[0048] In one embodiment, based on the foregoing embodiment, the netlist parsing method provided by the present invention further includes: splitting the netlist file into several independent atomic parsing partitions by a directed acyclic graph scheduler according to syntax units, and generating a topological sorting sequence by the directed acyclic graph scheduler and the dependency graph.
[0049] This application provides an efficient algorithm flow and fault tolerance processing for very large scale integration (VLSI) netlist parsing. On the one hand, the atomization of the netlist enables higher concurrent multi-core processing conditions. At the same time, the use of tokens filters out more reusable atomic partitions, and the replacement of high-frequency parameter patterns by SIMD reduces the jumps and backtracking of invalid states. On the other hand, the incremental parsing of LALR(1) and GLL saves valid context snapshots, and only the error interval is reset when a syntax error is triggered, greatly reducing the parsing time after repair. In addition, for the divided atomic partitions, the DAG task scheduler can utilize the performance of multi-core with finer-grained concurrency to improve the parsing efficiency, effectively improving the physical and time performance of large-scale netlist parsing in the EDA system.
[0050] In one embodiment, based on the foregoing embodiment, this application provides a computer device, including a memory, a processor, and a computer program stored on the memory. The processor executes the computer program to implement the steps of the netlist parsing method in the foregoing embodiment.
[0051] In one embodiment, based on the foregoing embodiment, this application provides a computer storage medium, on which a computer program or instruction is stored. When the computer program or instruction is executed by a processor, the steps of the netlist parsing method in the foregoing embodiment are implemented.
[0052] In one embodiment, based on the foregoing embodiment, this application provides a computer program product, including a computer program or instruction. When the computer program or instruction is executed by a processor, the steps of the netlist parsing method in the foregoing embodiment are implemented.
[0053] It should be noted that the above embodiments can be freely combined as needed. The above are only the preferred embodiments of the present invention. It should be pointed out that for those of ordinary skill in the art, without departing from the principle of the present invention, several improvements and refinements can still be made, and these improvements and refinements should also be regarded as the protection scope of the present invention.
Claims
1. A netlist parsing method, characterized in that, For the simulation design of very large scale integrated circuits, including the steps of: Obtain the netlist file generated during the simulation design of the very large scale integrated circuit; Split the netlist file into several independent atomic parsing partitions according to syntax, and perform parallel task scheduling for each of the independent atomic parsing partitions through a lock-free circular queue, where each independent atomic parsing partition includes at least one complete sub-circuit module; Perform lexical grading on each of the independent atomic parsing partitions through a bitmap compressed state machine and a dynamic symbol table, and output a classified token stream, where the token stream includes basic tokens and context-related tokens, the basic tokens corresponding to the basic data structures in the netlist file, and the context-related tokens corresponding to the data structures context-related to the basic data structures; Perform parallel parsing on each of the independent atomic parsing partitions according to the token stream to generate local syntax trees corresponding to each of the independent atomic parsing partitions; When a syntax error is detected during the parsing process, save the current syntax stack state and the current symbol table to the database; Determine the error interval according to the token stream, and skip the error interval to reconstruct the syntax stack for subsequent parsing; After the user fixes the error, re-parse the error interval, and restore the context data based on the current syntax stack state to update the corresponding local syntax tree; Merge the local syntax trees according to the dependency relationships of each of the independent atomic parsing partitions to generate a complete syntax tree.
2. The netlist parsing method according to claim 1, wherein The splitting of the netlist file into several independent atomic parsing partitions according to syntax includes: Based on regular expression matching of syntax boundaries, split the netlist file into several of the independent atomic parsing partitions, Establish a dependency relationship graph according to the dependency relationships of each of the independent atomic parsing partitions; The parallel task scheduling for each of the independent atomic parsing partitions through a lock-free circular queue further includes: Generate a topological sorting sequence according to the dependency relationship graph, perform sequential scheduling for the independent atomic parsing partitions with dependencies in the topological sorting sequence, and push the independent atomic parsing partitions without dependencies to the lock-free circular queue for parallel task scheduling.
3. The netlist parsing method according to claim 1, wherein The performing of lexical grading on each of the independent atomic parsing partitions through a bitmap compressed state machine and a dynamic symbol table, and outputting a classified token stream, includes: Compress the state transition table of each of the independent atomic parsing partitions into a bitmap encoding through the bitmap compressed state machine, and perform lexical analysis on the bitmap encoding for lexical grading.
4. The netlist parsing method according to claim 3, wherein The performing of lexical grading on each of the independent atomic parsing partitions through a bitmap compressed state machine and a dynamic symbol table, and outputting a classified token stream further includes: Match the basic data structures of each of the independent atomic parsing partitions through single instruction-multiple data instructions, and cache the data structures context-related to the current basic data structure through the dynamic symbol table to establish the association relationship between the basic tokens and the context-related tokens.
5. The netlist parsing method according to claim 1, characterized in that, The performing of parallel parsing on each of the independent atomic parsing partitions according to the token stream to generate a local syntax tree includes: Performing hybrid parsing on the independent atomic parsing partitions through an incremental LALR(1) parser and a GLL parser to generate the local syntax tree; When a syntax error is detected during parsing, skipping the error interval through a limited look-ahead repair algorithm for subsequent parsing.
6. The netlist parsing method according to claim 5, wherein The determining the error interval according to the token stream includes: According to the token of the current execution task when a syntax error is detected and the token stream, scanning forward a preset number of tokens through the limited look-ahead repair algorithm to determine the repair boundary, and further determining the error interval.
7. The netlist parsing method according to claim 2, wherein Splitting the netlist file into several independent atomic parsing partitions by a directed acyclic graph scheduler, and generating a topological sorting sequence by the directed acyclic graph scheduler and the dependency graph.
8. A computer device, comprising a memory, a processor, and a computer program stored on the memory, characterized in that, The processor executes the computer program to implement the steps of the netlist parsing method according to any one of claims 1-7.
9. A computer storage medium, on which a computer program or instruction is stored, characterized in that, When the computer program or instruction is executed by a processor, the steps of the netlist parsing method according to any one of claims 1-7 are implemented.
10. A computer program product, comprising a computer program or instructions, characterized in that, When the computer program or instruction is executed by a processor, the steps of the netlist parsing method according to any one of claims 1-7 are implemented.
Citation Information
Patent Citations
Sliding window technology based hardware XML (Extensive Markup Language) parser
CN104267998A
CGRA-based FAST market analysis system and CGRA-based FAST market analysis method
CN112347020A
Method and system for converting super-large-scale netlist into DAG
CN113065298A
Method and device for grammar analysis of PL / SQL language
CN113468873A
Grammar analysis method and device, electronic equipment and storage medium
CN117764009A