Matching information generation method and device and related equipment
By calculating the text identification matching degree of simulation waveform data and gate-level netlist data, the object matching relationship is established, and the problem of low data processing efficiency in chip design is solved, and automated and efficient data processing is realized.
Patent Information
- Application Number
- CN202510670541.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-05-22
- Publication Date
- 2025-09-02
AI Technical Summary
In the chip design RTL-gate level netlist design node, data processing efficiency is low in the prior art, especially in the matching process of simulated waveform data and gate-level netlist data, which relies on manual operations, resulting in insufficient processing efficiency and accuracy.
By obtaining text identifiers in simulation waveform data and gate-level netlist data, the text matching degree is calculated, and the object matching relationship corresponding to the text identifier is established, matching information in preset format is generated, and manual intervention is reduced.
It improves data processing efficiency, reduces manual intervention, and improves the accuracy and efficiency of data processing.
Smart Images

Figure CN120579508A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to the field of chip technology, and specifically to a matching information generation method, apparatus, and related equipment. Background Art
[0002] The chip design process requires a variety of design and verification tools to implement, verify, and analyze the DUT. Consequently, later steps in the chip design process must analyze and process data from earlier steps. Specifically, at the RTL (gate-level netlist) design node in chip design, performance analysis of the DUT must be conducted based on a combination of simulation waveform data and gate-level netlist data from earlier steps.
[0003] However, in the process of performance analysis of the design under test at the RTL-gate-level netlist design node of chip design, the data processing efficiency needs to be improved. Summary of the Invention
[0004] In view of this, embodiments of the present application provide a matching information generation method, apparatus, and related devices to improve data processing efficiency.
[0005] To achieve the above objectives, the embodiments of the present application provide the following technical solutions.
[0006] In a first aspect, an embodiment of the present application provides a matching information generation method, comprising:
[0007] Acquire simulation waveform data and gate-level netlist data of a design to be tested, wherein the simulation waveform data includes a plurality of waveform signals, and the waveform signals are configured with a first text identifier, the first text identifier being used to indicate an object generating the waveform signal and a hierarchical relationship of the object in the design to be tested; the gate-level netlist data includes a plurality of netlist signals, and the netlist signals are configured with a second text identifier, the second text identifier being used to indicate an object generating the waveform signal and a hierarchical relationship of the object in the design to be tested;
[0008] sequentially calculating text matching degrees of each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data;
[0009] Based on the text matching degree, establishing a matching relationship between the objects corresponding to the first text identifier and the second text identifier;
[0010] Based on the established matching relationship, matching information having a preset format is generated.
[0011] Optionally, the text matching degree of each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data is calculated in sequence, specifically:
[0012] According to a preset order, a second text identifier within a second preset range in the gate-level netlist data is selected, and the text matching degree between each first text identifier within the first preset range in the simulation waveform data and the second text identifier is calculated until all second text identifiers are selected.
[0013] Optionally, the text matching degree is determined based on the number of edits to modify the first text identifier into the second text identifier;
[0014] The number of edits is calculated as follows:
[0015] Number of edits = number of times a character is replaced + number of times a character is inserted + number of times a character is deleted;
[0016] The more times the editing is performed, the lower the corresponding text matching degree is.
[0017] Optionally, the text matching degree is determined based on a text weight in the text identifier and a number of edits to modify the first text identifier into the second text identifier;
[0018] The text weight is the weight corresponding to the editing operation performed on each text character in the text mark; wherein, in the text mark, the higher the level corresponding to the text character, the greater the text weight; in the text mark, the object generating the waveform signal or the netlist signal is the last level of the hierarchical relationship, and the more levels there are from the last level of the hierarchical relationship, the higher the corresponding level;
[0019] The number of edits is calculated as follows: number of edits = number of times a character is replaced + number of times a character is inserted + number of times a character is deleted;
[0020] The more times the editing is performed, the lower the corresponding text matching degree is.
[0021] Optionally, the text matching degree is determined based on a weighted sum of the number of edits and the text weight;
[0022] The larger the weighted sum value is, the lower the corresponding text matching degree is.
[0023] Optionally, the sequentially calculating the text matching degree of each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data includes:
[0024] Acquire initial matching information, where the initial matching information is used to indicate historical revision information of the first text identifier and / or the second text identifier in a previous process;
[0025] Based on the initial matching information, a text matching degree between each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data is determined.
[0026] Optionally, determining the text matching degree between each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data based on the initial matching information includes:
[0027] Based on the initial matching information, updating the first text identifier and the second text identifier;
[0028] Based on the updated gate-level netlist data and simulation waveform data, text matching degrees of each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data are calculated in sequence.
[0029] Optionally, updating the first text identifier and the second text identifier based on the initial matching information includes:
[0030] Searching the simulated waveform data for the modified first text identifier of the initial matching information record, and replacing the first text identifier with the first target identifier before the modification;
[0031] The modified second text identifier of the initial matching information record is searched in the gate-level netlist data, and the second text identifier is replaced with the second target identifier before modification.
[0032] Optionally, determining the text matching degree between each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data based on the initial matching information includes:
[0033] sequentially calculating the initial edit times of each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data;
[0034] Based on the initial matching information, subtracting a revised value of the number of edits associated with the initial matching information to obtain a target number of edits;
[0035] The text matching degree is determined based on the target number of edits.
[0036] Optionally, a first filter item exists in the first preset range; in the step of selecting a second text identifier within a second preset range in the gate-level netlist data in accordance with a preset order, and calculating a text matching degree between each first text identifier within the first preset range in the simulation waveform data and the second text identifier, until all second text identifiers are selected, the data indicated by the first filter item is skipped;
[0037] and / or,
[0038] There is a second filter item in the second preset range; according to the preset order, a second text identifier in the second preset range in the gate-level netlist data is selected, and the text matching degree between each first text identifier in the first preset range in the simulation waveform data and the second text identifier is calculated, until all second text identifiers are selected, and the data indicated by the second filter item is skipped.
[0039] Optionally, in the step of establishing a matching relationship between the objects corresponding to the first text identifier and the second text identifier based on the text matching degree, for a second text identifier, the first text identifier with the highest text matching degree with the second text identifier in the simulation waveform data is selected, and the first text identifier and the second text identifier are associated.
[0040] Optionally, obtaining simulation waveform data and gate-level netlist data of the design to be tested includes:
[0041] Extracting the simulation waveform data from the front-end waveform file; wherein the extraction process includes: modifying the symbol used to mark the hierarchical relationship in the first text identifier to a target hierarchical symbol, wherein the target hierarchical symbol is the symbol used to mark the hierarchical relationship in the second text identifier;
[0042] The gate-level netlist data is generated by utilizing a database after chip synthesis or layout and routing.
[0043] In a second aspect, an embodiment of the present application provides a matching information generating device, including:
[0044] a data acquisition module, configured to acquire simulation waveform data and gate-level netlist data of a design under test, wherein the simulation waveform data includes a plurality of waveform signals, and the waveform signals are configured with a first text identifier, the first text identifier being used to indicate an object generating the waveform signal and a hierarchical relationship of the object in the design under test; and the gate-level netlist data includes a plurality of netlist signals, the netlist signals are configured with a second text identifier, the second text identifier being used to indicate an object generating the waveform signal and a hierarchical relationship of the object in the design under test;
[0045] a matching degree calculation module, configured to sequentially calculate text matching degrees of each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data;
[0046] a matching relationship establishing module, configured to establish a matching relationship between objects corresponding to the first text identifier and the second text identifier based on the text matching degree;
[0047] The matching information generating module is used to generate matching information with a preset format based on the established matching relationship.
[0048] In a third aspect, an embodiment of the present application provides an electronic device comprising at least one memory and at least one processor, wherein the memory stores one or more computer-executable instructions, and the processor calls the one or more computer-executable instructions to execute the matching information generation method as described in the first aspect above.
[0049] In a fourth aspect, an embodiment of the present application provides a storage medium, which stores one or more computer-executable instructions. When the one or more computer-executable instructions are executed, the matching information generation method described in the first aspect above is implemented.
[0050] In a fifth aspect, an embodiment of the present application provides a computer program product, comprising one or more computer-executable instructions, which, when executed, implement the matching information generation method as described in the first aspect above.
[0051] An embodiment of the present application provides a matching information generation method, apparatus and related equipment, the method comprising: obtaining simulation waveform data and gate-level netlist data of a design to be tested, wherein the simulation waveform data includes a plurality of waveform signals, and the waveform signals are configured with a first text identifier, the first text identifier being used to indicate an object generating the waveform signal and a hierarchical relationship of the object in the design to be tested; the gate-level netlist data includes a plurality of netlist signals, and the netlist signals are configured with a second text identifier, the second text identifier being used to indicate an object generating the waveform signal and a hierarchical relationship of the object in the design to be tested; sequentially calculating the text matching degree of each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data; establishing a matching relationship between the objects corresponding to the first text identifier and the second text identifier based on the text matching degree; and generating matching information with a preset format based on the established matching relationship.
[0052] It can be seen that the embodiment of the present application establishes a matching relationship between the objects corresponding to the first text identifier and the second text identifier by utilizing the correspondence between the text matching degrees of the first text identifier and the second text identifier and the objects, by obtaining and calculating the text matching degrees of each first text identifier and each second text identifier, thereby eliminating the need to manually search for data features in simulation waveform data and gate-level netlist data, thereby breaking the constraints of manual data processing and improving data processing efficiency. BRIEF DESCRIPTION OF THE DRAWINGS
[0053] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are merely embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without any creative work.
[0054] Figure 1 This is an optional flow chart of a matching information generation method provided in an embodiment of the present application;
[0055] Figure 2 This is an optional flowchart of step S110 provided in an embodiment of the present application;
[0056] Figure 3 This is a schematic diagram of an optional structure of the matching information generating device provided in an embodiment of the present application;
[0057] Figure 4 This is an optional block diagram of the electronic device provided in the embodiment of the present application. DETAILED DESCRIPTION
[0058] The following will be combined with the drawings in the embodiments of this application to clearly and completely describe the technical solutions in the embodiments of this application. Obviously, the embodiments described are only part of the embodiments of this application, not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.
[0059] As described in the background art, at the RTL-gate-level netlist design node in chip design, during the performance analysis of the design under test, the data processing efficiency needs to be improved.
[0060] Taking power consumption analysis as an example, at the RTL-gate-level netlist design node of chip design, when performing performance analysis on the design to be tested, comprehensive information based on simulation waveform data from the previous process and gate-level netlist data is required as input data.
[0061] In existing examples, data features in simulation waveform data and gate-level netlist data are usually found manually, and the corresponding data is modified based on auxiliary tools to obtain matching information of the two data, and then power consumption analysis is performed based on the matching information.
[0062] It is understandable that as the number of transistors and the complexity and area of chip design continue to increase, the number of RTL waveforms and netlists that need to be matched will reach at least millions, or even tens of millions or hundreds of millions. Engineers are required to manually modify the files. Even with the assistance of some feasible small tools, there are certain limitations on processing efficiency and accuracy, making the process increasingly difficult and time-consuming, affecting data processing efficiency.
[0063] The inventor believes that in the simulation waveform data and the gate-level netlist data, there are configured a first text identifier corresponding to the waveform signal in the simulation waveform data and a second text identifier corresponding to the netlist signal in the gate-level netlist data, wherein the first text identifier, in addition to indicating the object that generates the waveform signal, can also indicate the hierarchical relationship of the object in the design to be tested. Similarly, the second text identifier, in addition to indicating the object that generates the netlist signal, also indicates the hierarchical relationship of the object in the design to be tested. Therefore, based on the text matching degree of the first text identifier and the second text identifier, it can be determined whether the corresponding waveform signal and netlist signal are the same signal of the same object, thereby determining whether there is a corresponding relationship between the two.
[0064] For example, taking the first text identifier of the waveform signal as a / b / c / dff_q[1], it indicates that the waveform signal is the waveform signal dff_q[1] of the c submodule in the b branch module under the a module. Correspondingly, if the second text identifier of the netlist signal is also a / b / c / dff_q[1], it indicates that the netlist signal is also the waveform signal dff_q[1] of the c submodule in the b branch module under the a module. Accordingly, the texts between the two are completely matched, so there can be a corresponding relationship.
[0065] In view of this, an embodiment of the present application provides a matching information generation method, device and related equipment, the method comprising: obtaining simulation waveform data and gate-level netlist data of a design to be tested, wherein the simulation waveform data includes multiple waveform signals, and the waveform signal is configured with a first text identifier, the first text identifier is used to indicate the object generating the waveform signal and the hierarchical relationship of the object in the design to be tested; the gate-level netlist data includes multiple netlist signals, and the netlist signal is configured with a second text identifier, the second text identifier is used to indicate the object generating the waveform signal and the hierarchical relationship of the object in the design to be tested; sequentially calculating the text matching degree of each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data; based on the text matching degree, establishing a matching relationship between the objects corresponding to the first text identifier and the second text identifier; based on the established matching relationship, generating matching information with a preset format.
[0066] It can be seen that the embodiment of the present application establishes a matching relationship between the objects corresponding to the first text identifier and the second text identifier by utilizing the correspondence between the text matching degrees of the first text identifier and the second text identifier and the objects, by obtaining and calculating the text matching degrees of each first text identifier and each second text identifier, thereby eliminating the need to manually search for data features in simulation waveform data and gate-level netlist data, thereby breaking the constraints of manual data processing and improving data processing efficiency.
[0067] To better understand the solution provided by the embodiment of the present application, the specific content of the matching information generation solution of the present application is further explained below.
[0068] In an embodiment of the present application, a matching information generation method is provided, referring to Figure 1 FIG2 is a schematic diagram of an optional flow chart of a matching information generation method, wherein the method may include:
[0069] Step S100: Acquire simulation waveform data and gate-level netlist data of the design to be tested.
[0070] The simulation waveform data includes multiple waveform signals, and the waveform signals are configured with a first text identifier, which is used to indicate the object that generates the waveform signal and the hierarchical relationship of the object in the design to be tested; the gate-level netlist data includes multiple netlist signals, and the netlist signals are configured with a second text identifier, which is used to indicate the object that generates the waveform signal and the hierarchical relationship of the object in the design to be tested.
[0071] The design to be tested may be an RTL design, and the simulation waveform data corresponding to the RTL design may be a combination of waveform signals of device units in the corresponding RTL design obtained after simulation and verification of the RTL design based on a preset tool. It is understood that the device units in the RTL design may be, for example, registers, counters, encoders, decoders, comparators, arithmetic logic units, finite state machines, memories, etc. Correspondingly, the object generating the waveform signal may be a device unit, a combination of device units, a module composed of device units, a combination of modules, etc.
[0072] In simulation waveform data, one object may generate multiple waveform signals. For example, for an arithmetic logic unit, when there are multiple input terminals and output terminals, a waveform signal (such as a clock signal, etc.) corresponding to each input terminal and each output terminal may be generated. Alternatively, based on different timings or different device operating mechanisms, different waveform signals may be generated corresponding to one output terminal. Accordingly, the simulation waveform data described in this application includes multiple waveform signals, which are obtained based on the simulation verification process of the design to be tested.
[0073] A text identifier is an identifier configured for different signals in simulation waveform data and gate-level netlist data to distinguish different signals (such as waveform signals or netlist signals). The identifier is presented in text form and is therefore called a text identifier. The text characters within the text identifier can indicate the object generating the signal, the hierarchical relationship of the object in the design to be tested, etc.
[0074] To distinguish waveform signals, each waveform signal is assigned a corresponding first text identifier. This first text identifier can be understood as a unique identifier for the waveform signal. In a specific implementation, the waveform signal is identified based on the object generating the waveform signal and its hierarchical relationship within the design under test. Accordingly, the first text identifier is used to indicate the object generating the waveform signal and its hierarchical relationship within the design under test.
[0075] In a specific example, the first text identifier may include an object identifier indicating an object generating the waveform signal, and a hierarchical identifier indicating a hierarchical relationship of the object in the design to be tested.
[0076] For example, the first text identifier can be U_chip / dft / df_aa[1], where df_aa[1] as an object identifier can indicate that the object generating the waveform signal is the device unit / module of df_aa[1], and U_chip / dft as a hierarchical identifier can indicate that the upper-level module names of the object df_aa in the design to be tested are dft and U_chip respectively, that is, the object df_aa is located in the dft module under the U_chip module.
[0077] In an optional example, when the waveform signal is used to indicate a waveform signal among multiple signals generated by a device unit, the first text identifier may further include a waveform identifier, which is used to indicate a unique identifier of an object that generates the waveform signal.
[0078] In a further example, the first text identifier may be U_chip / dft / df_aa[1] / en[1]. Different from the above example, en[1] may be used as a waveform identifier, for example, to indicate that the object is the waveform en[1] generated by df_aa[1].
[0079] The gate-level netlist data is the result of converting the design to be tested into a gate-level circuit description based on the design to be tested, wherein the circuit elements are gates or elements of the same level, such as triggers, logic gates, and buffers. The gate-level netlist data corresponding to the RTL design may be the gate-level netlist data of the RTL design obtained after performing logic synthesis of the RTL design based on a preset tool. The gate-level netlist data includes netlist signals, which are used to characterize the timing characteristics of the circuit elements in the gate-level netlist. Accordingly, the object that generates the netlist signal may be a circuit element, or a combination of circuit elements, or a device unit composed of circuit elements, a module composed of device units, a combination of modules, etc.
[0080] In gate-level netlist data, one object can generate multiple netlist signals. For example, for a logic gate with multiple inputs and outputs, a netlist signal corresponding to each input and output can be generated. Alternatively, based on different timings or different logic operation mechanisms, a different netlist signal can be generated corresponding to a single output. Accordingly, the gate-level netlist data described in this application includes multiple netlist signals, which are obtained based on the logic synthesis process of the design under test.
[0081] To distinguish netlist signals, each netlist signal is configured with a corresponding second text identifier. This second text identifier can be understood as a unique identifier for indicating the netlist signal. In a specific implementation, the netlist signal is indicated based on the object that generates the netlist signal and the hierarchical relationship of the object in the design under test. Accordingly, the second text identifier is used to indicate the object that generates the netlist signal and the hierarchical relationship of the object in the design under test.
[0082] In a specific example, the second text identifier may include an object identifier indicating the object that generates the netlist signal, and a hierarchical identifier indicating the hierarchical relationship of the object in the design to be tested. For example, the second text identifier may be U_chip / dft / scan / reg[1], wherein reg[1] as an object identifier may indicate that the object is a circuit element / device unit / module of reg[1], and U_chip / dft / scan as a hierarchical identifier may indicate that the upper-level module names of the object reg[1] in the design to be tested are scan, dft, and U_chip, respectively, that is, the object df_aa is located in the scan module under the dft module under the U_chip module.
[0083] In an optional example, the simulation waveform data may be extracted from a front-end waveform file, and the extracted simulation waveform data may be a waveform signal corresponding to each object and its corresponding first text identifier. In a specific example, the acquisition of the simulation waveform data in this step may be to extract a waveform signal corresponding to each object and its corresponding first text identifier from a front-end waveform file.
[0084] In a further example, this step may also include modifying the text symbol of the first text identifier or the second text identifier. For example, the aforementioned extraction process may further include modifying the text symbol of the first text identifier, that is, modifying the symbol used to mark the hierarchical relationship in the first text identifier to a target hierarchical symbol, and the target hierarchical symbol is the symbol used to mark the hierarchical relationship in the second text identifier. For example, the symbol used to mark the hierarchical relationship in the first text identifier may be ".", and the target hierarchical symbol in the second text identifier is " / ". Accordingly, the "." in the first text identifier may be modified to " / ". In a specific implementation, the modification of the corresponding text symbol may be determined based on the format supported by the power consumption analysis tool, that is, the text symbol of the first text identifier or the second text identifier may be modified to a preset format, and the preset format is a format supported by the power consumption analysis tool.
[0085] In an optional example, the gate-level netlist data can be generated using a preset tool, such as a logic synthesis tool. In a specific example, the gate-level netlist data can be generated using a database after chip synthesis or layout and routing. In a specific example, the acquisition of the gate-level netlist data in this step can be based on the design under test.
[0086] It is understandable that the present application performs corresponding calculations based on the first text identifier and the second text identifier. In an optional example, after obtaining the simulation waveform data and the gate-level netlist data in this step, the first text identifier and / or the second text identifier may be extracted from the simulation waveform data and the gate-level netlist data to perform subsequent calculations based on the first text identifier and the second text identifier.
[0087] Step S110, sequentially calculating text matching degrees of each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data;
[0088] The first preset range is used to specify the range of the simulation waveform data involved in the text matching calculation. In an optional example, the conditions of the first preset range can be configured, such as excluding a certain range, or defining a certain range, etc., and the corresponding calculation is performed based on the first preset range. In an optional example, the first preset range can be the complete range of the simulation waveform data; the second preset range is used to specify the range of the gate-level netlist data involved in the text matching calculation. In an optional example, the conditions of the second preset range can be configured, such as excluding a certain range, or defining a certain range, etc., and the corresponding calculation is performed based on the second preset range. In an optional example, the first preset range can be the complete range of the gate-level netlist data.
[0089] The first preset range and the second preset range may both be determined based on information in previous steps / processes. For example, a filter item may be set based on a keyword, thereby excluding the first text identifier and / or the second text identifier containing the keyword indicated by the filter item.
[0090] The text matching degree between each second text identifier and each first text identifier in the simulation waveform data is calculated, which serves as a basis for subsequently establishing a matching relationship between the first text identifier and the second text identifier.
[0091] The method of sequentially calculating the text matching degree of each second text identifier within the second preset range in the gate-level netlist data and each first text identifier within the first preset range in the simulation waveform data refers to selecting a second text identifier within the second preset range in the gate-level netlist data in accordance with a preset order, and calculating the text matching degree of each first text identifier within the first preset range in the simulation waveform data and the second text identifier until all second text identifiers are selected. The preset order can be the positive order of the second text identifiers in the gate-level netlist data or the reverse order of the second text identifiers in the gate-level netlist data, and this application does not make any specific limitation on this.
[0092] It should be noted that when the first preset range and the second preset range are used to indicate the complete range of data and do not exclude the data therein, the corresponding calculations can be performed in sequence; and when the first preset range and the second preset range are used to indicate the incomplete range of data, that is, when there is excluded data, the excluded data can be skipped during the calculation.
[0093] For example, when a first filter item exists in the first preset range, a second text identifier within the second preset range in the gate-level netlist data is selected according to a preset order, and the text matching degree between each first text identifier within the first preset range in the simulation waveform data and the second text identifier is calculated, until all second text identifiers are selected, and the data indicated by the first filter item is skipped; and / or, a second filter item exists in the second preset range, a second text identifier within the second preset range in the gate-level netlist data is selected according to a preset order, and the text matching degree between each first text identifier within the first preset range in the simulation waveform data and the second text identifier is calculated, until all second text identifiers are selected, and the data indicated by the second filter item is skipped.
[0094] In a specific implementation, the text matching degree can be determined based on the number of edits corresponding to changing a text identifier to another text identifier. The edits can include replacing a character, inserting a character, and deleting a character. Specifically, the formula for the number of edits is as follows:
[0095] Number of edits T = Number of times a character is replaced A + Number of times a character is inserted B + Number of times a character is deleted C
[0096] In a specific example, replacing a character may include, for example, replacing an English letter, number, or special symbol with another non-blank character, such as replacing a slash with an underscore; inserting a character may include, for example, inserting an English letter, number, or special symbol; deleting a character may include, for example, deleting an English letter, number, or special symbol.
[0097] In a specific implementation, the text matching degree can be determined based on the principle that the more times a text identifier is edited to another text identifier, the lower the corresponding text matching degree. In a specific example, for a second text identifier and a first text identifier, the corresponding text matching degree can be determined based on the number of edits performed to modify the first text identifier to the second text identifier. In an optional example, the text matching degree can be the inverse of the number of edits.
[0098] In other implementations, the number of edits may be used directly to indicate the text matching degree. In this implementation, it is necessary to clarify the principle that the greater the number of edits, the lower the corresponding text matching degree to avoid logical errors.
[0099] In a further example, the text matching degree can also be determined based on the text weight in the text identifier and the number of edits (i.e., the number of edits to change the first text identifier to the second text identifier). The text weight can be understood as the weight corresponding to the edit operation performed on each text character in the text identifier. In an optional example, the text weight can be assigned to the corresponding text characters based on the hierarchical relationship in the text identifier.
[0100] Among them, in the text identifier, the object that generates the waveform signal or netlist signal is the last level of the hierarchical relationship, and the more levels there are from the last level of the hierarchical relationship, the higher the corresponding level. For example, the first text identifier is U_chip / dft / df_aa[1], df_aa[1] is the object that generates the waveform signal or netlist signal, and accordingly, the object is the last level of the hierarchical relationship, dft is adjacent to the object df_aa[1], and accordingly, its hierarchical relationship is higher than the object df_aa[1]. U_chip is separated from the object df_aa[1] by one level dft, and its hierarchical relationship is higher than dft.
[0101] Furthermore, when assigning text weights, you can configure the text identifier so that the higher the level corresponding to the text character, the greater the text weight. That is, the higher the editing operation level of the text character, the greater the corresponding weight, and the lower the editing operation level of the text character, the smaller the corresponding weight.
[0102] In the calculation process of the corresponding text matching degree, it can be determined based on the comprehensive determination of the number of edits and the text weight, for example, it can be determined based on the weighted sum of the number of edits and the text weight. In a specific example, the text matching degree can be the inverse of the value of the weighted sum of the number of edits and the text weight.
[0103] In other examples, the text matching degree may also be indicated based on a weighted sum of the number of edits and the text weight. In this example, it is necessary to clarify that the larger the weighted sum, the lower the corresponding text matching degree to avoid logical errors.
[0104] In a further optional example, the calculation process further determines the text matching degree based on the initial matching information obtained in advance. The initial matching information is used to indicate the historical revision information of the first text identifier and / or the second text identifier in the previous process. For example, the first text identifier of the object is modified in the process of forming the front-end waveform file. Accordingly, the first text identifier before the modification and the first text identifier after the modification can be recorded to form the initial matching information. Alternatively, if the second text identifier of the object is modified in the process of generating gate-level netlist data based on the design to be tested, the second text identifier before the modification and the second text identifier after the modification can be recorded to form the initial matching information.
[0105] Accordingly, reference Figure 2 The optional process diagram of step S110 is shown, and this step may include the following process:
[0106] Step S111: obtaining initial matching information;
[0107] The initial matching information may record the time when the text identifier is revised, the initial text identifier before the text identifier is modified, and the modified target text identifier corresponding to the initial text identifier.
[0108] Step S112: determining, based on the initial matching information, a text matching degree between each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data;
[0109] Among them, when the initial matching information exists, the first text identifier and the second text identifier can be updated first based on the initial matching information, for example, the modified first text identifier of the initial matching information record is searched in the simulation waveform data, and the first text identifier is replaced with the first target identifier before modification; and the modified second text identifier of the initial matching information record is searched in the gate-level netlist data, and the second text identifier is replaced with the second target identifier before modification; thereafter, based on the modified gate-level netlist data and the simulation waveform data, the text matching degree of each second text identifier within the second preset range in the gate-level netlist data and each first text identifier within the first preset range in the simulation waveform data is calculated in turn.
[0110] In other examples of the present application, step S112 may further perform an initial text matching calculation, and after the calculation, eliminate related influences based on the initial matching information. Specifically, the initial edit counts of each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data may be calculated in sequence. Then, based on the initial matching information, the edit count revision value associated with the initial matching information is subtracted to obtain a target edit count, and the text matching degree is further determined based on the target edit count.
[0111] It should be noted that in this step, calculations can be performed one by one based on the first text identifiers until the text matching degree of each first text identifier is calculated. In a specific implementation, the first text identifiers can be selected based on a preset order (such as the positive or reverse order of the order in which the first text identifiers appear in the simulation waveform data, or based on the positive or reverse order of the text symbols, etc.) until all the first text identifiers are selected.
[0112] Step S120: Based on the text matching degree, a matching relationship between the objects corresponding to the first text identifier and the second text identifier is established.
[0113] The established matching relationship is used to indicate that the objects corresponding to the first text identifier and the second text identifier are the same object. For a second text identifier, a first text identifier with the highest text matching degree with the second text identifier in the simulation waveform data can be selected, and the first text identifier and the second text identifier can be associated. In a specific example, the first text identifier with the highest text matching degree can be associated with the corresponding second text identifier, thereby establishing a matching relationship between the objects corresponding to the first text identifier and the second text identifier.
[0114] When the text matching degree is the reciprocal of the number of edits, the first text identifier with the highest reciprocal of the number of edits can be associated with the corresponding second text identifier, thereby establishing a matching relationship between the objects corresponding to the first text identifier and the second text identifier.
[0115] Among them, when the number of edits is directly used to indicate the text matching degree, based on the logic that the more edits are made, the lower the corresponding text matching degree, the first text identifier with the least number of edits can be selected and associated with the corresponding second text identifier, thereby establishing a matching relationship between the objects corresponding to the first text identifier and the second text identifier.
[0116] When indicating the degree of text matching based on the value of the weighted sum of the number of edits and the text weight, corresponding judgments can also be made, that is, when the degree of text matching is the reciprocal of the value of the weighted sum of the number of edits and the text weight, the first text identifier with the highest reciprocal of the weighted sum value can be associated with the corresponding second text identifier, thereby establishing a matching relationship between the objects corresponding to the first text identifier and the second text identifier; when the degree of text matching is indicated based on the value of the weighted sum of the number of edits and the text weight, the first text identifier with the smallest weighted sum value can be selected and associated with the corresponding second text identifier, thereby establishing a matching relationship between the objects corresponding to the first text identifier and the second text identifier.
[0117] Step S130: Generate matching information in a preset format based on the established matching relationship.
[0118] The preset format matches a preset analysis tool of the design to be tested.
[0119] In an optional example, the preset analysis tool may be, for example, a power consumption analysis tool, and the preset format may match the power consumption analysis tool of the design under test. Specifically, the format of the matching information generated in this step may match the power consumption analysis tool of the design under test. The matching information generated in the preset format may be used as a matching file in subsequent preset analysis tools.
[0120] In other examples, the preset format can also match the post-simulation waveform generation tool of the design to be tested, and the post-simulation waveform generation tool is used to mark the waveform signal inversion situation in the simulation waveform data on the netlist signal according to the matching relationship between the simulation waveform data and the gate-level netlist data.
[0121] In other examples, the preset format may also match a voltage drop analysis tool for the design to be tested, and the matching information generated in the preset format may be used as a matching file, for example, directly in an IR drop tool.
[0122] In other examples, the preset format can also match the chip power model analysis tool, chip dynamic power consumption analysis tool, leakage analysis tool, internal power consumption analysis tool, chip signal toggle rate tool, clock tree analysis tool, etc. of the design to be tested.
[0123] It can be seen that the embodiment of the present application establishes a matching relationship between the objects corresponding to the first text identifier and the second text identifier by utilizing the correspondence between the text matching degrees of the first text identifier and the second text identifier and the objects, by obtaining and calculating the text matching degrees of each first text identifier and each second text identifier, thereby eliminating the need to manually search for data features in simulation waveform data and gate-level netlist data, thereby breaking the constraints of manual data processing and improving data processing efficiency.
[0124] The following describes the matching information generation device provided in the embodiments of the present application. The matching information generation device described below can be considered the software or hardware functional modules required to implement the matching information generation method provided in the embodiments of the present application. The description of the matching information generation device below can be used in conjunction with the description of the method above.
[0125] In an optional implementation, Figure 3 The following is an exemplary diagram showing an optional structural diagram of the matching information generating device provided in the embodiment of the present application, wherein the matching information generating device is used to implement the matching information generating method provided in the embodiment of the present application, such as Figure 3 As shown, the matching information generating device may include:
[0126] A data acquisition module 200 is configured to acquire simulation waveform data and gate-level netlist data of a design under test, wherein the simulation waveform data includes a plurality of waveform signals, each of which is configured with a first text identifier, the first text identifier being used to indicate an object generating the waveform signal and the hierarchical relationship of the object in the design under test; and the gate-level netlist data includes a plurality of netlist signals, each of which is configured with a second text identifier, the second text identifier being used to indicate an object generating the waveform signal and the hierarchical relationship of the object in the design under test.
[0127] A matching degree calculation module 210 is used to sequentially calculate the text matching degree of each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data;
[0128] A matching relationship establishing module 220, configured to establish a matching relationship between the objects corresponding to the first text identifier and the second text identifier based on the text matching degree;
[0129] The matching information generating module 230 is configured to generate matching information in a preset format based on the established matching relationship.
[0130] Optionally, the matching degree calculation module 210 is configured to sequentially calculate the text matching degree of each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data, specifically:
[0131] According to a preset order, a second text identifier within a second preset range in the gate-level netlist data is selected, and the text matching degree between each first text identifier within the first preset range in the simulation waveform data and the second text identifier is calculated until all second text identifiers are selected.
[0132] Optionally, the text matching degree is determined based on the number of edits to modify the first text identifier into the second text identifier;
[0133] The number of edits is calculated as follows: number of edits = number of times a character is replaced + number of times a character is inserted + number of times a character is deleted;
[0134] The more times the editing is performed, the lower the corresponding text matching degree is.
[0135] Optionally, the text matching degree is determined based on a text weight in the text identifier and a number of edits to modify the first text identifier into the second text identifier;
[0136] The text weight is the weight corresponding to the editing operation performed on each text character in the text mark; wherein, in the text mark, the higher the level corresponding to the text character, the greater the text weight; in the text mark, the object generating the waveform signal or the netlist signal is the last level of the hierarchical relationship, and the more levels there are from the last level of the hierarchical relationship, the higher the corresponding level;
[0137] The number of edits is calculated as follows: number of edits = number of times a character is replaced + number of times a character is inserted + number of times a character is deleted;
[0138] The more times the editing is performed, the lower the corresponding text matching degree is.
[0139] Optionally, the text matching degree is determined based on a weighted sum of the number of edits and the text weight;
[0140] The larger the weighted sum value is, the lower the corresponding text matching degree is.
[0141] Optionally, the matching degree calculation module 210 is configured to sequentially calculate the text matching degree of each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data, including:
[0142] Acquire initial matching information, where the initial matching information is used to indicate historical revision information of the first text identifier and / or the second text identifier in a previous process;
[0143] Based on the initial matching information, a text matching degree between each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data is determined.
[0144] Optionally, the matching degree calculation module 210 is configured to determine, based on the initial matching information, a text matching degree between each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data, including:
[0145] Based on the initial matching information, updating the first text identifier and the second text identifier;
[0146] Based on the updated gate-level netlist data and simulation waveform data, text matching degrees of each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data are calculated in sequence.
[0147] Optionally, the matching degree calculation module 210 is configured to update the first text identifier and the second text identifier based on the initial matching information, including:
[0148] Searching the simulated waveform data for the modified first text identifier of the initial matching information record, and replacing the first text identifier with the first target identifier before the modification;
[0149] The modified second text identifier of the initial matching information record is searched in the gate-level netlist data, and the second text identifier is replaced with the second target identifier before modification.
[0150] Optionally, the matching degree calculation module 210 is configured to determine, based on the initial matching information, a text matching degree between each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data, including:
[0151] sequentially calculating the initial edit times of each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data;
[0152] Based on the initial matching information, subtracting a revised value of the number of edits associated with the initial matching information to obtain a target number of edits;
[0153] The text matching degree is determined based on the target number of edits.
[0154] Optionally, a first filter item exists in the first preset range; the matching degree calculation module 210 is configured to select a second text identifier within a second preset range in the gate-level netlist data in accordance with a preset order, and calculate a text matching degree between each first text identifier within the first preset range in the simulation waveform data and the second text identifier, until all second text identifiers are selected, skipping the data indicated by the first filter item;
[0155] and / or,
[0156] There is a second filter item in the second preset range; the matching degree calculation module 210 is used to select a second text identifier in the second preset range in the gate-level netlist data according to a preset order, and calculate the text matching degree between each first text identifier in the first preset range in the simulation waveform data and the second text identifier, until all second text identifiers are selected, and then skip the data indicated by the second filter item.
[0157] Optionally, the matching relationship establishing module 220 is used to establish a matching relationship between objects corresponding to a first text identifier and a second text identifier based on the text matching degree. For a second text identifier, the first text identifier with the highest text matching degree with the second text identifier in the simulation waveform data is selected, and the first text identifier and the second text identifier are associated.
[0158] An embodiment of the present application further provides an electronic device, which may include at least one memory and at least one processor, wherein the memory stores one or more computer-executable instructions, and the processor calls the one or more computer-executable instructions to execute the matching information generation method of the embodiment of the present application.
[0159] As an optional implementation, refer to Figure 4 , Figure 4 This is an optional block diagram of the electronic device provided in the embodiment of the present application. Figure 4 As shown, the electronic device may include: at least one processor 10 , at least one communication interface 20 , at least one memory 30 and at least one communication bus 40 .
[0160] In the embodiment of the present application, the number of the processor 10 , the communication interface 20 , the memory 30 and the communication bus 40 is at least one, and the processor 10 , the communication interface 20 , and the memory 30 communicate with each other through the communication bus 40 .
[0161] Optionally, the processor 10 may be a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), an NPU (Neural-network Processing Unit), an FPGA (Field Programmable Gate Array), a TPU (Tensor Processing Unit), an AI chip, an ASIC (Application Specific Integrated Circuit), or one or more integrated circuits configured to implement an embodiment of the present application.
[0162] Optionally, the communication interface 20 may be an interface of a communication module for performing network communication.
[0163] The memory 30 may include a high-speed RAM memory, or may also include a non-volatile memory, such as at least one disk storage device. The memory 30 stores one or more computer-executable instructions, and the processor 10 invokes the one or more computer-executable instructions to execute the matching information generation method according to the embodiment of the present application.
[0164] An embodiment of the present application further provides a storage medium, wherein the storage medium stores one or more computer-executable instructions. When the one or more computer-executable instructions are executed, the matching information generation method of the embodiment of the present application is implemented.
[0165] An embodiment of the present application further provides a computer program product, which may include one or more computer-executable instructions. When the one or more computer-executable instructions are executed, the matching information generation method of the embodiment of the present application is implemented.
[0166] The above describes multiple embodiment schemes provided by the embodiments of the present application. The various optional methods introduced in each embodiment scheme can be combined and cross-referenced with each other without conflict, thereby extending a variety of possible embodiment schemes, which can all be considered as embodiment schemes disclosed and open in the embodiments of the present application.
[0167] Although the embodiments of the present application are disclosed above, the present application is not limited thereto. Any person skilled in the art may make various changes and modifications without departing from the spirit and scope of the present application. Therefore, the scope of protection of the present application shall be based on the scope defined by the claims.
Claims
1. A matching information generation method, characterized in that: include: Acquire simulation waveform data and gate-level netlist data of a design to be tested, wherein the simulation waveform data includes a plurality of waveform signals, and the waveform signals are configured with a first text identifier, the first text identifier being used to indicate an object generating the waveform signal and a hierarchical relationship of the object in the design to be tested; the gate-level netlist data includes a plurality of netlist signals, and the netlist signals are configured with a second text identifier, the second text identifier being used to indicate an object generating the waveform signal and a hierarchical relationship of the object in the design to be tested; sequentially calculating text matching degrees of each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data; Based on the text matching degree, establishing a matching relationship between the objects corresponding to the first text identifier and the second text identifier; Based on the established matching relationship, matching information having a preset format is generated.
2. The matching information generation method according to claim 1, wherein: The text matching degree of each second text identifier within the second preset range in the gate-level netlist data and each first text identifier within the first preset range in the simulation waveform data is calculated in sequence, specifically: According to a preset order, a second text identifier within a second preset range in the gate-level netlist data is selected, and the text matching degree between each first text identifier within the first preset range in the simulation waveform data and the second text identifier is calculated until all second text identifiers are selected.
3. The matching information generation method according to claim 2, characterized in that: The text matching degree is determined based on the number of edits to modify the first text identifier into the second text identifier; The number of edits is calculated as follows: Number of edits = number of times a character is replaced + number of times a character is inserted + number of times a character is deleted; The more times the editing is performed, the lower the corresponding text matching degree is.
4. The matching information generation method according to claim 2, wherein: The text matching degree is determined based on the text weight in the text identifier and the number of edits to modify the first text identifier into the second text identifier; The text weight is the weight corresponding to the editing operation performed on each text character in the text mark; wherein, in the text mark, the higher the level corresponding to the text character, the greater the text weight; in the text mark, the object generating the waveform signal or the netlist signal is the last level of the hierarchical relationship, and the more levels there are from the last level of the hierarchical relationship, the higher the corresponding level; The number of edits is calculated as follows: number of edits = number of times a character is replaced + number of times a character is inserted + number of times a character is deleted; The more times the editing is performed, the lower the corresponding text matching degree is.
5. The matching information generation method according to claim 4, characterized in that: The text matching degree is determined based on a weighted sum of the number of edits and the text weight; The larger the weighted sum value is, the lower the corresponding text matching degree is.
6. The matching information generation method according to claim 1, wherein: The step of sequentially calculating the text matching degree of each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data includes: Acquire initial matching information, where the initial matching information is used to indicate historical revision information of the first text identifier and / or the second text identifier in a previous process; Based on the initial matching information, a text matching degree between each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data is determined.
7. The matching information generation method according to claim 6, characterized in that: The determining, based on the initial matching information, the text matching degree between each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data comprises: Based on the initial matching information, updating the first text identifier and the second text identifier; Based on the updated gate-level netlist data and simulation waveform data, text matching degrees of each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data are calculated in sequence.
8. The matching information generation method according to claim 7, characterized in that: The updating of the first text identifier and the second text identifier based on the initial matching information includes: Searching the simulated waveform data for the modified first text identifier of the initial matching information record, and replacing the first text identifier with the first target identifier before the modification; The modified second text identifier of the initial matching information record is searched in the gate-level netlist data, and the second text identifier is replaced with the second target identifier before modification.
9. The matching information generation method according to claim 6, wherein: The determining, based on the initial matching information, the text matching degree between each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data comprises: sequentially calculating the initial edit times of each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data; Based on the initial matching information, subtracting a revised value of the number of edits associated with the initial matching information to obtain a target number of edits; The text matching degree is determined based on the target number of edits.
10. The matching information generation method according to claim 2, wherein: The first preset range contains a first filter item; the steps of selecting a second text identifier within a second preset range in the gate-level netlist data in accordance with a preset order, and calculating a text matching degree between each first text identifier within the first preset range in the simulation waveform data and the second text identifier, until all second text identifiers are selected, skipping the data indicated by the first filter item; and / or, There is a second filter item in the second preset range; according to the preset order, a second text identifier in the second preset range in the gate-level netlist data is selected, and the text matching degree between each first text identifier in the first preset range in the simulation waveform data and the second text identifier is calculated, until all second text identifiers are selected, and the data indicated by the second filter item is skipped.
11. The matching information generation method according to claim 1, wherein: In the step of establishing a matching relationship between the objects corresponding to the first text identifier and the second text identifier based on the text matching degree, for a second text identifier, the first text identifier with the highest text matching degree with the second text identifier in the simulation waveform data is selected, and the first text identifier and the second text identifier are associated.
12. The matching information generation method according to claim 1, wherein: The obtaining of simulation waveform data and gate-level netlist data of the design to be tested includes: Extracting the simulation waveform data from the front-end waveform file; wherein the extraction process includes: modifying the symbol used to mark the hierarchical relationship in the first text identifier to a target hierarchical symbol, wherein the target hierarchical symbol is the symbol used to mark the hierarchical relationship in the second text identifier; The gate-level netlist data is generated by utilizing a database after chip synthesis or layout and routing.
13. A matching information generating device, characterized in that: include: a data acquisition module, configured to acquire simulation waveform data and gate-level netlist data of a design under test, wherein the simulation waveform data includes a plurality of waveform signals, and the waveform signals are configured with a first text identifier, the first text identifier being used to indicate an object generating the waveform signal and a hierarchical relationship of the object in the design under test; and the gate-level netlist data includes a plurality of netlist signals, the netlist signals are configured with a second text identifier, the second text identifier being used to indicate an object generating the waveform signal and a hierarchical relationship of the object in the design under test; a matching degree calculation module, configured to sequentially calculate text matching degrees of each second text identifier within a second preset range in the gate-level netlist data and each first text identifier within a first preset range in the simulation waveform data; a matching relationship establishing module, configured to establish a matching relationship between objects corresponding to the first text identifier and the second text identifier based on the text matching degree; The matching information generating module is used to generate matching information with a preset format based on the established matching relationship.
14. An electronic device, characterized in that: The system comprises at least one memory and at least one processor, wherein the memory stores one or more computer-executable instructions, and the processor calls the one or more computer-executable instructions to execute the matching information generating method according to any one of claims 1 to 12.
15. A storage medium, characterized in that: The storage medium stores one or more computer-executable instructions, and when the one or more computer-executable instructions are executed, the matching information generating method according to any one of claims 1 to 12 is implemented.
16. A computer program product, characterized in that The method comprises one or more computer-executable instructions, and when the one or more computer-executable instructions are executed, the matching information generating method according to any one of claims 1 to 12 is implemented.