Method, device, equipment, storage medium and product for obtaining time-series associated nodes
By obtaining the attribute information of the unit device and determining the node correspondence relationship, the problem of difficulty in determining the timing-related nodes in integrated circuit design is solved, and the design efficiency and reliability are improved.
Patent Information
- Application Number
- CN202411846198.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-16
- Publication Date
- 2025-03-28
- Estimated Expiration
- 2044-12-16
AI Technical Summary
In integrated circuit design, it is difficult for the prior art to effectively determine the timing-associated nodes of known nodes, affecting the efficiency and reliability of timing analysis and optimization.
By specifying the node to be queried by the user, the attribute information of the unit device is obtained, thereby determining the node correspondence relationship, including the timing association nodes corresponding to each port, and then determining the timing association nodes of the node to be queried.
Accurate acquisition of timing-related nodes of nodes to be queried in integrated circuit design is realized, and the efficiency and reliability of timing analysis and optimization are improved.
Smart Images

Figure CN119294324B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the technical field of integrated circuit design, and in particular to a method, device, equipment, storage medium and product for obtaining timing-related nodes. Background Art
[0002] Electronic design automation (EDA) refers to the use of computer-aided design software to complete the functional design, synthesis, verification, physical design (including layout, routing, layout, design rule checking, etc.) of very large scale integrated circuit (VLSI) chips.
[0003] When designing integrated circuits, library files can be used to record information describing circuit components and circuit structures, such as the attribute information of each unit device. When using EDA software, it is usually necessary to read the data information in the library file to implement the classification processing of each unit device.
[0004] A timing arc can be used to describe the delay information between two nodes. For example, it can be used to describe the delay information between two ports in a unit device, or it can be used to describe the delay information between two pins in an instance object after the unit device is instantiated. That is, if there is a causal relationship between two nodes in timing, they can be represented by a timing arc. By finding the timing arc in the unit device, the working principle of the integrated circuit can be better analyzed and mastered, and timing analysis and optimization can be performed to improve the efficiency and reliability of the integrated circuit design. Therefore, how to determine the timing-associated node with which there is a timing association through a known node and obtain the timing arc of the known node is a technical problem that those skilled in the art urgently need to solve. Summary of the invention
[0005] The embodiments of the present application provide a method, device, equipment, storage medium and product for obtaining a timing-related node, which can improve the technical problem in the related art that a timing-related node that has a timing association with a known node cannot be determined.
[0006] In a first aspect, an embodiment of the present application provides a method for acquiring a time series associated node, which may include:
[0007] In response to a query instruction triggered by a user, determining a node to be queried specified by the user; wherein the node to be queried includes at least one port and / or pin;
[0008] Based on the unit device corresponding to the node to be queried, the attribute information of the unit device is obtained from the library file corresponding to the unit device;
[0009] Determine the node correspondence of the unit device according to the attribute information; wherein the node correspondence includes the timing associated node corresponding to each port of the unit device;
[0010] Determine the time series associated node corresponding to the node to be queried from the node correspondence relationship.
[0011] Optionally, determining the node correspondence of the unit device according to the attribute information includes:
[0012] Determine the device type of the unit device according to the attribute information;
[0013] In the case where the unit device is a timing device, determining a timing associated node corresponding to each port based on a first field corresponding to each port;
[0014] In the case where the unit device is a non-timing device, a second field is determined from a plurality of fields corresponding to each port based on a preset selection rule, and a corresponding timing-related node is obtained from the second field;
[0015] According to the timing association nodes corresponding to the ports in the unit device, a node correspondence relationship is generated.
[0016] Optionally, after generating the node correspondence relationship according to the timing association nodes respectively corresponding to the ports in the unit device, the method further includes:
[0017] Storing the node correspondence of the unit device in a first data container corresponding to the unit device;
[0018] In response to the query instruction triggered by the user, after determining the node to be queried specified by the user, the method further includes:
[0019] Based on the unit device corresponding to the node to be queried, determine a first data container corresponding to the unit device;
[0020] When the first data container is not empty, the time series associated node corresponding to the node to be queried is determined based on the node correspondence relationship stored in the first data container.
[0021] Optionally, determining a timing association node corresponding to each port based on a first field corresponding to each port includes:
[0022] For each port, from the multiple first fields of the attribute information, poll and search whether the type declaration information in each first field meets the trigger condition; wherein the trigger condition is that the type declaration information contains a trigger keyword;
[0023] The timing association node corresponding to the port is determined from the association information of each first field that meets the trigger condition.
[0024] Optionally, determining a timing association node corresponding to a port from association information of each first field that meets a trigger condition includes:
[0025] Determine the node to be screened corresponding to the port from the associated information of the first field of each trigger condition;
[0026] In the case where the node to be screened is a control signal port, determining a signal type of the control signal port based on a device type of a unit device;
[0027] When the signal type is an asynchronous control signal, the node to be screened is determined to be a timing-related node corresponding to the port.
[0028] Optionally, determining the second field from a plurality of fields corresponding to each port based on a preset selection rule includes:
[0029] For each port, query the first function field from multiple fields corresponding to the port;
[0030] When the multiple fields corresponding to the port include the first function field, determining the first function field as the second field;
[0031] When the first function field is not included in the multiple fields corresponding to the port, the second function field is determined as the second field.
[0032] Optionally, when the first function field is not included in the multiple fields corresponding to the port, the second function field is determined as the second field, further comprising:
[0033] When the first function field is not included in the multiple fields corresponding to the port, obtaining the device type of the unit device;
[0034] In the case where the device type of the unit device is a tri-state gate device, querying a third function field from a plurality of fields corresponding to the port;
[0035] When the third function field is included in the plurality of fields corresponding to the port, the second function field and the third function field are determined as the second field.
[0036] Optionally, obtaining a corresponding timing-related node from the second field includes:
[0037] The second field of the attribute information is split and parsed to obtain a timing association node corresponding to the port.
[0038] Optionally, generating a node correspondence relationship according to the timing association nodes respectively corresponding to the ports in the unit device includes:
[0039] Determine the port type of each port according to the attribute information of each port in the unit device; wherein the port type includes input type, output type and input-output type;
[0040] Determine the output type port and the input-output type port as the target port;
[0041] A node correspondence relationship is generated according to the timing association nodes respectively corresponding to each target port in the unit device.
[0042] Optionally, generating a node correspondence relationship according to the timing association nodes respectively corresponding to each target port in the unit device includes:
[0043] Based on each target port in the unit device and its corresponding timing-related node, a key-value pair mapping relationship between the target port and the timing-related node is generated; wherein the key name in the key-value pair is the target port, and the key value is the timing-related node.
[0044] Optionally, determining the time series associated node corresponding to the node to be queried from the node correspondence relationship includes:
[0045] Determine whether there is a key value and / or key name matching the node to be queried in the key-value pair mapping relationship;
[0046] If there is a key value matching the node to be queried in the key-value pair mapping relationship, add the key name corresponding to the matching key value to the second data container;
[0047] If there is a key name matching the node to be queried in the key-value pair mapping relationship, add the key value corresponding to the matching key name to the second data container;
[0048] The nodes in the second data container are used as the time series associated nodes corresponding to the node to be queried.
[0049] Optionally, determining whether there is a key value and / or key name matching the node to be queried in the key-value pair mapping relationship includes:
[0050] Get the port type corresponding to the node to be queried;
[0051] When the node to be queried is of input type, determining whether there is a key value matching the node to be queried in the key-value pair mapping relationship;
[0052] When the node to be queried is of output type, determine whether there is a key name matching the node to be queried in the key-value pair mapping relationship;
[0053] In the case where the node to be queried is of input-output type, it is determined whether there is a key value and / or key name matching the node to be queried in the key-value pair mapping relationship.
[0054] Optionally, based on the unit device corresponding to the node to be queried, before acquiring the property information of the unit device from the library file corresponding to the unit device, the method further includes:
[0055] When the node to be queried is a port, determining a unit device to which the port belongs;
[0056] When the node to be queried is a pin, the corresponding port and the unit device to which it belongs are determined based on the pin and the instance object to which it belongs.
[0057] Optionally, determining the time series associated node corresponding to the to-be-queried node from the node correspondence relationship includes:
[0058] When the node to be queried is a port, determining the associated port corresponding to the port from the node correspondence relationship;
[0059] In the case where the node to be queried is a pin, the associated port corresponding to the port is determined from the node correspondence relationship, and the associated port is converted into an associated pin of the instance object to which the pin belongs.
[0060] In a second aspect, an embodiment of the present application provides a device for acquiring a time-series associated node, including:
[0061] A query module, configured to determine a node to be queried specified by a user in response to a query instruction triggered by a user; wherein the node to be queried includes at least one port and / or a pin;
[0062] An acquisition module, used for acquiring attribute information of a unit device from a library file corresponding to the unit device based on the unit device corresponding to the node to be queried;
[0063] A node correspondence module is used to determine the node correspondence relationship of the unit device according to the attribute information; wherein the node correspondence relationship includes the timing association node corresponding to each port of the unit device;
[0064] The determination module is used to determine the time series associated node corresponding to the node to be queried from the node correspondence relationship.
[0065] In a third aspect, an embodiment of the present application provides an electronic device, the electronic device comprising:
[0066] a processor and a memory storing computer program instructions;
[0067] When the processor executes the computer program instructions, the steps of the method for acquiring the timing-related nodes in the above aspect are implemented.
[0068] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium having computer program instructions stored thereon, and when the computer program instructions are executed by a processor, the steps of the method for acquiring timing-related nodes in the above aspect are implemented.
[0069] In a fifth aspect, an embodiment of the present application provides a computer program product, which includes a computer program. When the instructions in the computer program product are executed by a processor, the steps of the method for obtaining timing-related nodes in the above aspect are implemented.
[0070] The timing-associated node acquisition method, device, equipment, storage medium and product of the embodiment of the present application, when a user triggers a query instruction, a port or pin can be specified as the node to be queried. After determining the unit device corresponding to the node to be queried, the corresponding attribute information can be obtained from the library file of the unit device. The node correspondence of the unit device can be determined from the attribute information, that is, the correspondence between each port and the timing-associated node. According to the node correspondence, the timing-associated node corresponding to the node to be queried can be determined. In the integrated circuit design process, after the user enters a port or pin, the timing-associated node corresponding to the port or pin can be obtained, so that the user can perform timing analysis and optimization on the integrated circuit during the design process, thereby improving the efficiency and reliability of the integrated circuit design. BRIEF DESCRIPTION OF THE DRAWINGS
[0071] In order to more clearly illustrate the technical solution of the embodiments of the present application, the following is a brief introduction to the drawings required for use in the embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.
[0072] Figure 1 It is a flowchart of a method for acquiring a time series associated node provided in an embodiment of the present application;
[0073] Figure 2 is a flowchart of a method for acquiring a time series associated node provided by another embodiment of the present application;
[0074] Figure 3 is a port schematic diagram of a latch provided in an embodiment of the present application;
[0075] Figure 4 is a port diagram of a trigger provided in an embodiment of the present application;
[0076] Figure 5 is a port schematic diagram of a buffer provided in an embodiment of the present application;
[0077] Figure 6 is a port diagram of an adder provided in an embodiment of the present application;
[0078] Figure 7 is a port diagram of a macro unit provided in an embodiment of the present application;
[0079] Figure 8is a flowchart of a method for acquiring a time-series associated node provided by another embodiment of the present application;
[0080] Fig. 9 It is a structural diagram of a device for acquiring a time series associated node provided by an embodiment of the present application;
[0081] Fig.10 It is a schematic diagram of the structure of an electronic device provided by an embodiment of the present application. DETAILED DESCRIPTION
[0082] The features and exemplary embodiments of various aspects of the present application will be described in detail below. In order to make the purpose, technical solutions and advantages of the present application clearer, the present application will be further described in detail below in conjunction with the accompanying drawings and specific embodiments. It should be understood that the specific embodiments described herein are only intended to explain the present application, rather than to limit the present application. For those skilled in the art, the present application can be implemented without the need for some of these specific details. The following description of the embodiments is only to provide a better understanding of the present application by illustrating the examples of the present application.
[0083] It should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the statement "include..." do not exclude the existence of other identical elements in the process, method, article or device including the elements.
[0084] Electronic design automation (EDA) refers to the use of computer-aided design software to complete the functional design, synthesis, verification, physical design (including layout, routing, layout, design rule checking, etc.) of very large scale integrated circuit (VLSI) chips.
[0085] When designing integrated circuits, library files can be used to record information describing circuit components and circuit structures, such as the attribute information of each unit device. When using EDA software, it is usually necessary to read the data information in the library file to implement the classification processing of each unit device.
[0086] A timing arc can be used to describe the delay information between two nodes. For example, it can be used to describe the delay information between two ports in a unit device, or it can be used to describe the delay information between two pins in an instance object after the unit device is instantiated. That is, if there is a causal relationship between two nodes in timing, they can be represented by a timing arc. By finding the timing arc in the unit device, the working principle of the integrated circuit can be better analyzed and mastered, and timing analysis and optimization can be performed to improve the efficiency and reliability of the integrated circuit design. Therefore, how to determine the timing-associated node with which there is a timing association through a known node and obtain the timing arc of the known node is a technical problem that those skilled in the art urgently need to solve.
[0087] In order to solve at least one of the above technical problems, the embodiments of the present application provide a method, device, equipment, storage medium and product for obtaining time-series associated nodes. The following first introduces the method for obtaining time-series associated nodes provided by the embodiments of the present application.
[0088] Figure 1 A schematic diagram of a method for acquiring a time-series associated node provided by an embodiment of the present application is shown. The method may include the following steps:
[0089] S110, in response to a query instruction triggered by a user, determining a node to be queried specified by the user; wherein the node to be queried includes at least one port and / or pin;
[0090] S120, based on the unit device corresponding to the node to be queried, acquiring attribute information of the unit device from a library file corresponding to the unit device;
[0091] S130, determining the node correspondence of the unit device according to the attribute information; wherein the node correspondence includes the timing associated node corresponding to each port of the unit device;
[0092] S140, determining a time series associated node corresponding to the node to be queried from the node correspondence relationship.
[0093] In this embodiment, the user triggers a query instruction and can specify a port or pin as the node to be queried. After determining the unit device corresponding to the node to be queried, the corresponding attribute information can be obtained from the library file of the unit device. The node correspondence of the unit device, that is, the correspondence between each port and the timing-associated node, can be determined from the attribute information. According to the node correspondence, the timing-associated node corresponding to the node to be queried can be determined. In the integrated circuit design process, after the user enters a port or pin, the timing-associated node corresponding to the port or pin can be obtained, so that the user can perform timing analysis and optimization on the integrated circuit during the design process, thereby improving the efficiency and reliability of the integrated circuit design.
[0094] The specific implementation methods of the above steps are introduced below.
[0095] In S110, when the query instruction triggered by the user is obtained, the node to be queried specified by the user can be determined according to the query instruction. The number of the nodes to be queried can be one or more. When there is one node to be queried, it can be one port or one pin; when there are multiple nodes to be queried, it can be multiple ports, multiple pins, or a combination of ports and pins, which is not limited here.
[0096] The port may be a port of a unit device, and the pin may be a pin of an instance object formed by instantiating the unit device.
[0097] In S120, after determining the node to be queried specified by the user, the unit device corresponding to the node to be queried can be determined. Each unit device has a corresponding library file, and the attribute information of the unit device can be read from the library file corresponding to the unit device. The library file can be a file with a suffix of .lib. The attribute information of the library file defines the delay information between the input port and the output port of the unit device, which can be used to determine the timing association relationship between the output port and the input port.
[0098] It should be noted that when the number of nodes to be queried is one, the unit device corresponding to the node to be queried is the unit device corresponding to the port or pin. When the number of nodes to be queried is multiple, the unit device corresponding to each node can be determined respectively, and the timing association node corresponding to each node can be obtained by executing the following steps, and then when the user specifies multiple nodes to be queried, the timing association nodes corresponding to all the nodes to be queried can be obtained.
[0099] As an optional implementation manner, before the above S120, the following may also be included:
[0100] When the node to be queried is a port, determining a unit device to which the port belongs;
[0101] When the node to be queried is a pin, the corresponding port and the unit device to which it belongs are determined based on the pin and the instance object to which it belongs.
[0102] In this embodiment, the number of nodes to be queried specified by the user is one. If the node to be queried is a port, the unit device to which the port belongs can be directly determined according to the port specified by the user, and the unit device is used as the unit device corresponding to the node to be queried.
[0103] If the node to be queried is a pin, the instance object to which the pin belongs can be determined according to the pin specified by the user, and the unit device of the instance object can be determined. After determining the unit device corresponding to the instance object, the port corresponding to the pin in the unit device can also be determined according to the pin in the instance object.
[0104] It can be understood that when the number of nodes to be queried specified by the user is multiple, the operation of the above embodiment can be performed on each node in turn, so as to obtain the unit device corresponding to each node.
[0105] In S130, after the attribute information of the unit device is determined, the node correspondence of the unit device can be determined according to the attribute information. The node correspondence includes each port of the unit device and its corresponding timing-related node.
[0106] Please refer to Figure 2 In some embodiments, the above S130 may include:
[0107] S210, determining a device type of a unit device according to the attribute information;
[0108] S220, when the unit device is a timing device, determining a timing associated node corresponding to each port based on a first field corresponding to each port;
[0109] S230, when the unit device is a non-timing device, determine a second field from a plurality of fields corresponding to each port based on a preset selection rule, and obtain a corresponding timing-related node from the second field;
[0110] S240 , generating a node correspondence relationship according to the timing association nodes corresponding to the ports in the unit device.
[0111] In this embodiment, the device type of the unit device can be determined according to the attribute information of the unit device. If the unit device is a timing device, the timing-related node corresponding to the port can be determined based on the first field corresponding to the port of the unit device. If the unit device is a non-timing device, the second field can be first determined from the multiple fields corresponding to the port according to the preset selection rules, and then the timing-related node corresponding to the port can be determined from the second field. Different search methods can be used for different types of unit devices, so that the timing-related nodes corresponding to each port in different types of unit devices can be accurately obtained.
[0112] In S210, after the attribute information of the unit device is acquired, the device type of the unit device can be determined according to the attribute information. According to the attribute information, the unit device can be divided into two types: sequential devices and non-sequential devices.
[0113] In S220, if the unit device is a timing device, partial attribute information corresponding to each port can be determined from the attribute information of the unit device. In the partial attribute information corresponding to the port, the corresponding first field can be determined, and the timing association node corresponding to the port can be determined based on the information content of the first field. After determining the timing association node corresponding to each port according to the partial attribute information corresponding to the port in turn, the timing association nodes corresponding to each port can be obtained.
[0114] In some embodiments, the above S220 may include:
[0115] S310, for each port, polling and searching from multiple first fields of attribute information whether type declaration information in each first field meets a trigger condition; wherein the trigger condition is that the type declaration information contains a trigger keyword;
[0116] S320: Determine a timing association node corresponding to the port from association information of each first field that meets the trigger condition.
[0117] In this embodiment, it is searched whether there is a first field satisfying the trigger condition from among the multiple first fields corresponding to each port, and the timing association node corresponding to the port is determined from the association information of the first field satisfying the trigger condition.
[0118] In S310, the attribute information of each unit device includes the field contents corresponding to each port of the unit device. For each port, one or more first fields corresponding to the port can be determined from the multiple fields included in the attribute information. When a port corresponds to only one first field, it is possible to find out whether the type declaration information in the first field meets the trigger condition. When a port corresponds to multiple first fields, each first field can be polled to determine whether the type declaration information in each first field meets the trigger condition.
[0119] The trigger condition may be that the type declaration information contains a trigger keyword. When the type declaration information in the first field corresponding to a port contains a trigger keyword, it can be determined that the first field meets the trigger condition. It should be noted that when a port corresponds to multiple first fields, it is necessary to judge the trigger conditions of the multiple first fields respectively, and determine some of the first fields that meet the trigger condition from the multiple first fields.
[0120] In S320, for each port, after determining a first field satisfying a trigger condition from a plurality of first fields corresponding to the port, a timing association node corresponding to the port may be determined from association information of the first field.
[0121] As an optional implementation, when determining that the unit device is a timing device, the timing_type information in the timing field can be searched from multiple fields of each port. In this case, the timing field is the first field, and the timing_type information is the type declaration information of the first field.
[0122] The trigger keyword of the timing_type information can be combinatory, falling_edge, rising_edge or other keywords specified by the designer. If the timing_type information of a timing field contains a trigger keyword, the corresponding timing related node is obtained from the related information related_pin of the timing field.
[0123] In an optional embodiment, the unit device is as follows Figure 3 As shown, taking latch as an example, latch latch may include ports D, C, CLR, PRE, Q and non-Q. Taking port Q as an example, the attribute information of port Q is as follows:
[0124] pin (Q) {
[0125] direction : "output";
[0126] function : "IQ";
[0127] related_ground_pin : VSS;
[0128] related_power_pin : VDD;
[0129] timing () {
[0130] related_pin : "D";
[0131] sdf_cond: "E == 1'b1&&RDN == 1'b1";
[0132] timing_sense : positive_unate;
[0133] timing_type : combinational;
[0134] when : "E&RDN";
[0135] …
[0136] }
[0137] After obtaining the attribute information of port Q, the timing_type information in the timing field can be detected. Since the timing_type information contains the trigger keyword combinatory, it can be determined that the timing field meets the trigger condition. At this time, port D can be obtained from the related_pin information as the timing related node corresponding to port Q.
[0138] In another optional implementation, taking the unit device as a latch as an example, the trigger keyword may also include clear, preset, etc. For example, the attribute information of port Q is as follows:
[0139] pin (Q) {
[0140] direction : "output";
[0141] function : "IQ";
[0142] related_ground_pin : VSS;
[0143] related_power_pin : VDD;
[0144] timing () {
[0145] related_pin : "RDN";
[0146] sdf_cond: "D == 1'b1&&E == 1'b1";
[0147] timing_sense : positive_unate;
[0148] timing_type : clear;
[0149] when : "D&E";
[0150] …
[0151] }
[0152] }
[0153] latch (IQ,IQN) {
[0154] clear : "(!RDN)";
[0155] data_in : "D";
[0156] enable : "E";
[0157] }
[0158] After the attribute information of port Q is obtained, since the timing_type information includes the trigger keyword clear, the port RDN can be obtained from the related_pin information as the timing related node corresponding to port Q.
[0159] It can be understood that, for a certain port of a unit device, its corresponding timing association node may be another port of the unit device.
[0160] In some embodiments, the above S320 may include:
[0161] S410, determining a to-be-screened node corresponding to a port from association information of each first field that meets a trigger condition;
[0162] S420, when the node to be screened is a control signal port, determining a signal type of the control signal port based on a device type of a unit device;
[0163] S430: When the signal type is an asynchronous control signal, determine that the node to be screened is a timing-related node corresponding to the port.
[0164] In this embodiment, the node obtained in the association information of the first field that meets the trigger condition is a node to be screened of the port. If the node to be screened is a control signal port, the signal type of the control signal port also needs to be determined. Only when the signal type is an asynchronous control signal, the node to be screened is determined as a timing-related node corresponding to the port. When the signal type is a synchronous control signal, the node to be screened is not a timing-related node corresponding to the port.
[0165] In S410, for multiple first fields corresponding to the port, when it is determined that a certain first field meets the trigger condition, the to-be-screened node corresponding to the port can be obtained from the associated information of the first field.
[0166] In S420, after determining the node to be screened, it can be determined whether the node to be screened is a control signal port of a unit device. If the node to be screened is a control signal port, the signal type of the control signal port is determined based on the device type of the unit device.
[0167] In S430, if the signal type of the control signal port is an asynchronous control signal, it means that the node to be screened can directly affect the signal output of the port. At this time, there is a timing arc between the node to be screened and the port, that is, the node to be screened is a timing associated node corresponding to the port.
[0168] On the contrary, if the signal type of the control signal port is a synchronous control signal, it means that the node to be screened will not directly affect the signal output of the port, and there is no timing arc between the node to be screened and the port. At this time, even if the node to be screened is included in the association information of the first field, the node to be screened is not a timing associated node of the port.
[0169] As an optional implementation, please refer to Figure 4 , taking the unit device as a trigger FF as an example, the trigger FF may include ports D, Clk, CLR, SET, Q, and non-Q.
[0170] According to the implementation principle of the trigger, when the trigger edge of the clock terminal Clk is a rising edge or a falling edge, the output signal of port Q is not synchronized with the input signal of port D. Only when the trigger edge of the clock terminal Clk is reached, the trigger obtains the input signal of the current port D and keeps the input signal output through port Q until the next trigger edge. Therefore, according to the implementation principle of the trigger, the output signal of port Q will not be directly controlled by port D, that is, there is no timing arc between port D and port Q, and the timing association node of port Q should not include port D.
[0171] In fact, in all the timing fields of port Q, related_pin is the timing field of port D, and timing_type does not contain the trigger keyword. Therefore, in the above query process, all the timing related nodes corresponding to port Q finally queried will not include port D.
[0172] In the above embodiment, part of the attribute information associated with port Clk in port Q is as follows:
[0173] pin (Q) {
[0174] direction : "output";
[0175] function : "IQ";
[0176] related_ground_pin : VSS;
[0177] related_power_pin : VDD;
[0178] timing () {
[0179] related_pin : "Clk";
[0180] sdf_cond: "D == 1'b1&&RDN == 1'b1&&SDN == 1'b1";
[0181] timing_sense : positive_unate;
[0182] timing_type : rising_edge;
[0183] when : "D&RDN&SDN";
[0184] cell_rise (delay_template_8x8) {…}
[0185] rise_transition (delay_template_8x8) {…}
[0186] …
[0187] }
[0188] According to the content of the above attribute information, when the timing_type in the timing field contains the trigger keyword rising_edge, it can be determined from related_pin that the port Clk is the timing related node of the port Q.
[0189] In the above embodiment, port SET and port CLR are control signal ports. In the process of obtaining the timing association node of port Q, when the obtained timing association nodes are port SET and port CLR, port SET and port CLR cannot be directly determined as the timing association nodes of port Q. Instead, it is necessary to determine the signal type when port SET and port CLR are control signal ports. Only when the signal type is an asynchronous control signal can port SET and port CLR be determined as the timing association nodes of port Q.
[0190] In the above embodiment, the timing arc formed between port Q and port Clk is an edge timing arc (Edge Timing Arc), and the timing arc formed between port Q and port SET or port CLR is a reset and clear timing arc (Preset and Clear Timing Arc). In addition, the basic timing arcs of the unit device may also include a combined timing arc (CombinationalTiming Arc), a three-state enable timing arc (Three State Enable&Disable Timing Arc), etc., which are not limited here.
[0191] In S230, if the unit device is a non-timing device, a second field may be determined from a plurality of fields corresponding to each port based on a preset selection rule, and a timing-related node corresponding to the port may be obtained from the second field.
[0192] In some embodiments, determining the second field from the multiple fields corresponding to each port based on a preset selection rule may include:
[0193] S510, for each port, query a first function field from a plurality of fields corresponding to the port;
[0194] S520, when the multiple fields corresponding to the port include the first function field, determine the first function field as the second field;
[0195] S530: When the first function field is not included in the multiple fields corresponding to the port, determine the second function field as the second field.
[0196] In this embodiment, it can be queried whether there is a first function field from among the multiple fields corresponding to the port. If the first function field exists in the multiple fields, the first function field is directly determined as the second field. If the first function field does not exist in the multiple fields, the second function field can be determined as the second field. In the case where multiple function fields have priorities, a function field with a higher priority can be first determined as the second field. If there is no function field with a higher priority, a function field with a lower priority is selected as the second field.
[0197] In S510, for each port of the unit device, multiple fields corresponding to the port can be determined from the property information of the unit device. Taking a single port as an example, after determining the multiple fields corresponding to the port, it can be queried whether the first function field exists in the multiple fields.
[0198] In S520, if the multiple fields corresponding to the port include the first function field, the first function field is determined as the second field.
[0199] In S530, if the multiple fields corresponding to the port do not include the first function field, the second function field is determined as the second field.
[0200] In some embodiments, the above S530 may include:
[0201] S610, when the attribute information does not include the first function field, obtaining a device type of the unit device;
[0202] S620, when the device type of the unit device is a tri-state gate device, query a third function field from a plurality of fields corresponding to the port;
[0203] S630: When the third function field is included in the plurality of fields corresponding to the port, the second function field and the third function field are determined as the second field.
[0204] In this embodiment, when the unit device is a tri-state gate device, it is also necessary to check whether the third function field exists, and the third function field is also used as the second field to obtain the corresponding timing association node through splitting and parsing.
[0205] In S610, when the first function field is not included in the plurality of fields corresponding to the port, the device type of the unit device may be determined according to the attribute information of the unit device.
[0206] In S620, if the device type of the unit device is a tri-state gate device, it is queried from a plurality of fields corresponding to the port whether a third function field is included.
[0207] In S630, if the plurality of fields corresponding to the port include the third function field, the second function field and the third function field are determined as the second field.
[0208] In some embodiments, the above-mentioned acquiring the corresponding timing-related node from the second field may include:
[0209] The second field of the attribute information is split and parsed to obtain a timing association node corresponding to the port.
[0210] In this embodiment, after the second field corresponding to the port is determined, the association information of the second field in the attribute information may be split and parsed to obtain the timing association node corresponding to the port.
[0211] It is understandable that in non-timing devices, the associated information in the second field is not a port of the unit device, but a string of a port, or a combination of strings of multiple ports. After obtaining the content corresponding to the second field, the associated information can be split into multiple strings through the CUDD library, and the corresponding port pointer can be found according to each string to determine the port corresponding to each string. After splitting and parsing the content of the second field, the port corresponding to each string is the timing associated node corresponding to the port to which the second field belongs.
[0212] It is understandable that during the splitting and parsing process, the device can put the port corresponding to each obtained string into a container. After processing all the strings, the container stores all the timing-related nodes corresponding to the port to which the second field belongs.
[0213] It should be noted that in a three-state gate device, the second field includes a second function field and a third function field. At this time, the second function field and the third function field can be split and parsed respectively, and the ports corresponding to the obtained strings are stored in a container in sequence.
[0214] As an optional implementation, please refer to Figure 5Taking the non-timing device as a buffer as an example, the unit device i1 includes an input port A and an output port Y.
[0215] Some attribute information of unit device i1 is as follows:
[0216] cell (BUFX12) {
[0217] area : 5.13;
[0218] cell_leakage_power : 0.504194;
[0219] pin(A) {
[0220] direction : input;
[0221] input_signal_level : RAIL_VDD;
[0222] }
[0223] pin(Y) {
[0224] direction : output;
[0225] output_signal_level : RAIL_VDD;
[0226] function : "A";
[0227] }
[0228] }
[0229] According to the above content, first query whether the field corresponding to port Y contains the first function field state_function. Since port Y does not contain the first function field state_function, the second function field function of port Y can be used as the second field. After splitting and parsing the content in the second field, the obtained port pointer points to port A. At this time, it can be determined that port A is the timing associated node of port Y.
[0230] In a three-state gate device, the third function field may be three state.
[0231] In another optional embodiment, please refer to Figure 6 , the non-sequential unit device i2 is an adder ADD, including ports A, B, CI, S, and CO. Some attribute information of the unit device is as follows:
[0232] ADD
[0233] cell (ADDFHX2) {
[0234] area : 8.208;
[0235] cell_leakage_power : 0.327774;
[0236] pin(A) {
[0237] direction : input;
[0238] input_signal_level : RAIL_VDD;
[0239] }
[0240] pin(B) {
[0241] direction : input;
[0242] input_signal_level : RAIL_VDD;
[0243] }
[0244] pin(CI) {
[0245] direction : input;
[0246] input_signal_level : RAIL_VDD;
[0247] }
[0248] pin(CO) {
[0249] direction : output;
[0250] output_signal_level : RAIL_VDD;
[0251] function : "(((A B)+(B CI))+(CI A))";
[0252] }
[0253] pin(S) {
[0254] direction : output;
[0255] output_signal_level : RAIL_VDD;
[0256] function : "((A^B)^CI)";
[0257] }
[0258] }
[0259] According to the above content, the two output ports are port CO and port S. Port CO contains the second function field function. After splitting and parsing the content (((AB)+(B CI))+(CI A)) in the second function field, the multiple ports obtained are ports A, B and CI. At this time, it can be determined that the timing association nodes of port CO include ports A, B and CI.
[0260] Similarly, according to the content ((A^B)^CI) in the second function field function of port S, the timing associated nodes of port S including ports A, B and CI can be obtained through splitting and parsing.
[0261] It should be noted that the above timing association relationship is mutual. That is, when port A is the timing association node of port CO, port CO is also the timing association node of port A. Therefore, based on the above acquisition results, when the user queries the timing association node of port CO, the output timing association nodes are ports A, B and CI. When the user queries the timing association node of port A, the output timing association nodes are ports CO and port S.
[0262] Please refer to Figure 7 When the non-timing device i3 is a macro device, the macro device may include ports A, B, CI, Y1, and Y2. Some attribute information of the unit device is as follows:
[0263] cell (macro) {
[0264] is_macro_cell : true;
[0265] pg_pin(vdd){
[0266] voltage_name : vdd_ao ;
[0267] pg_type : primary_power ;
[0268] direction : input ;
[0269] }
[0270] pg_pin(vss){
[0271] voltage_name : vss ;
[0272] pg_type : primary_ground ;
[0273] direction : input ;
[0274] }
[0275] pin(A) {
[0276] related_power_pin : "vdd" ;
[0277] related_ground_pin : "vss" ;
[0278] direction : input;
[0279] }
[0280] pin(B) {
[0281] related_power_pin : "vdd" ;
[0282] related_ground_pin : "vss" ;
[0283] direction : input;
[0284] }
[0285] pin(C) {
[0286] related_power_pin : "vdd" ;
[0287] related_ground_pin : "vss" ;
[0288] direction : input;
[0289] }
[0290] pin(Y1) {
[0291] direction : output;
[0292] function : “A";
[0293] }
[0294] pin(Y2) {
[0295] direction : output;
[0296] function : "(ABC)";
[0297] }
[0298] }
[0299] According to the above content, it can be determined that the timing-related node of port Y1 is port A, and the timing-related nodes of port Y2 are ports A, B, and C.
[0300] In S240 , after determining the timing-related nodes corresponding to the ports in the unit device respectively in sequence, a node correspondence relationship may be generated according to the ports and their corresponding timing-related nodes.
[0301] In some embodiments, please refer to Figure 8 The above S240 may include:
[0302] S710, determining the port type of each port according to the attribute information of each port in the unit device; wherein the port type includes input type, output type and input-output type;
[0303] S720, determining an output port and an input-output port as target ports;
[0304] S730 , generating a node correspondence relationship according to the timing association nodes corresponding to the respective target ports in the unit device.
[0305] In this embodiment, according to the port type of each port, output type ports and input-output type ports can be selected as target ports, and a node correspondence relationship is generated based on each target port and its corresponding timing association node.
[0306] In S710, after the attribute information of the unit device is acquired, the port type of each port can be determined according to the attribute information corresponding to each port in the unit device. The port type may include input type, output type, and input-output type.
[0307] In S720, after determining the port type of each port in the unit device, an output-type port and an input-output-type port may be determined as a target port.
[0308] In S730, after the target ports of the unit device are determined, the node correspondence relationship can be generated according to the timing association nodes corresponding to each target port.
[0309] Since among the ports of the unit device, only the fields corresponding to the output type ports and the input-output type ports contain the corresponding timing association nodes, and the input type ports do not have the corresponding fields in the property information of the unit device or the corresponding fields do not contain the corresponding timing association nodes. Therefore, after determining the port type of each port, the timing association nodes can be obtained only for the output type and the input-output type ports, and the corresponding node correspondence can be generated.
[0310] In some embodiments, the above S730 may include:
[0311] Based on each target port in the unit device and its corresponding timing-related node, a key-value pair mapping relationship between the target port and the timing-related node is generated; wherein the key name in the key-value pair is the target port, and the key value is the timing-related node.
[0312] In this embodiment, for each target port of the unit device, a key-value pair mapping relationship between the target port and the timing association node can be generated based on the target port and its corresponding timing association node. The key name in the key-value pair is the target port, and the key value is the timing association node. For example, when a target port corresponds to two timing association nodes, two key-value pairs can be generated, and the key names of the two key-value pairs are both target ports, and the key values of the two key-value pairs are respectively two timing association nodes.
[0313] After corresponding key-value pairs are constructed for all target ports of the unit device, all key-value pairs finally obtained are the node correspondences of the unit device.
[0314] In some embodiments, after the above S240, the following steps may also be included:
[0315] S810, storing the node correspondence of the unit device in a first data container corresponding to the unit device;
[0316] After S110, it can also include:
[0317] S820, determining a first data container corresponding to the unit device based on the unit device corresponding to the node to be queried;
[0318] S830: When the first data container is not empty, determine the time series associated node corresponding to the node to be queried based on the node correspondence relationship stored in the first data container.
[0319] In this embodiment, after the node correspondence of the unit device is generated, it can be stored in the first data container corresponding to the unit device. If the user subsequently queries any port of the unit device or any pin of an instance object after the unit device is instantiated, the node correspondence can be directly read from the first data container corresponding to the unit device, and the corresponding timing-related node can be obtained according to the node correspondence query.
[0320] In S810, for a certain unit device, after the node correspondence of the unit device is generated, the node correspondence can be stored in a first data container corresponding to the unit device. The first data container can store the corresponding node correspondence during the current operation of the EDA software.
[0321] In S820, the user may perform multiple queries of timing-related nodes during the running of the EDA software. After determining the node to be queried specified by the user, the first data container corresponding to the unit device may be determined based on the unit device corresponding to the node to be queried.
[0322] In S830, if the first data container is not empty, it means that the user has previously queried a port of the unit device or a pin of an instance object after the unit device is instantiated, and generated a node correspondence relationship of the unit device in the previous query process. At this time, the previously stored node correspondence relationship can be directly read from the first data container, and the timing associated node corresponding to the node to be queried specified by the user can be determined according to the node correspondence relationship.
[0323] It should be noted that, during the operation of the EDA software, if the user has queried a port of a unit device or a pin of an instance object after the unit device is instantiated, the node correspondence of the unit device will be generated and stored in the first data container corresponding to the unit device. When the user queries any port of the unit device or any pin of any instance object after the unit device is instantiated again, the node correspondence can be directly obtained from the first data container of the unit device, and the timing-related node corresponding to the node to be queried can be determined.
[0324] In S140 , after the node correspondence of the unit device is determined, the timing-related node corresponding to the node to be queried may be determined from the node correspondence.
[0325] It should be noted that if the node to be queried specified by the user includes multiple nodes, the time series associated node corresponding to each node can be queried through the above steps, and the query result is returned to the user.
[0326] In some embodiments, the above S140 may include:
[0327] S910, determining whether there is a key value and / or key name matching the node to be queried in the key-value pair mapping relationship;
[0328] S920, when there is a key value matching the node to be queried in the key-value pair mapping relationship, add the key name corresponding to the matching key value to the second data container;
[0329] S930, when there is a key name matching the node to be queried in the key-value pair mapping relationship, add the key value corresponding to the matching key name to the second data container;
[0330] S940: Use the nodes in the second data container as the time series associated nodes corresponding to the node to be queried.
[0331] In this embodiment, when the node correspondence is a plurality of key-value pairs, it is possible to query whether there is a key name or key value that matches the node to be queried. If the key name of a key-value pair matches the node to be queried, the key value of the key-value pair can be added to the second data container as a time-series associated node; if the key value of a key-value pair matches the node to be queried, the key name of the key-value pair can be added to the second data container as a time-series associated node. Finally, the nodes stored in the second data container are all time-series associated nodes corresponding to the node to be queried.
[0332] In S910, taking the node correspondence as a key-value pair mapping relationship as an example, after obtaining the key-value pair mapping relationship of the unit device, it can be determined whether there is a key value or key name matching the node to be queried in each key-value pair in the key-value pair mapping relationship.
[0333] In some embodiments, the above S910 may include:
[0334] S1010, obtaining the port type corresponding to the node to be queried;
[0335] S1020, when the node to be queried is of input type, determining whether there is a key value matching the node to be queried in the key-value pair mapping relationship;
[0336] S1030, when the node to be queried is of output type, determining whether there is a key name matching the node to be queried in the key-value pair mapping relationship;
[0337] S1040: When the node to be queried is of input-output type, determine whether there is a key value and / or key name matching the node to be queried in the key-value pair mapping relationship.
[0338] In this embodiment, when the node to be queried is an input type, it is only necessary to determine whether each key value in the key-value pair matches the node to be queried. When the node to be queried is an output type, it is only necessary to determine whether each key name in the key-value pair matches the node to be queried. When the node to be queried is an input-output type, it is necessary to determine whether the key value and key name of the key-value pair match the node to be queried.
[0339] In S1010, after determining the node to be queried specified by the user, the port type corresponding to the node to be queried may be obtained. Specifically, the port type may include input type, output type, and input-output type.
[0340] It should be noted that if the node to be queried is a port of a unit device, the port type corresponding to the port can be directly determined; if the node to be queried is a pin of an instance object, it is necessary to first determine the unit device corresponding to the instance object, and determine the port corresponding to the pin in the unit device, and then determine the port type corresponding to the port.
[0341] In S1020, since the ports corresponding to the key names of each key-value pair are all output ports or input-output ports, when the node to be queried is an input type, it can be determined that the node to be queried will not match the key name of any key-value pair. At this time, it can be queried from each key-value pair included in the key-value pair mapping relationship whether the key value of a key-value pair matches the node to be queried.
[0342] It should be noted that when the node to be queried is a port, the key value or key name in the key-value pair matches the node to be queried, which means that the key value or key name is consistent with the node to be queried. When the node to be queried is a pin, it is necessary to determine the port corresponding to the pin of the instance object in the unit device. At this time, the key value or key name in the key-value pair matches the node to be queried, which means that the key value or key name is consistent with the port.
[0343] In S1030, when the node to be queried is an output type, it can be determined that if the node to be queried matches a certain key-value pair, it must match the key name of the key-value pair. At this time, it can be queried from each key-value pair included in the key-value pair mapping relationship whether there is a key name of a key-value pair that matches the node to be queried.
[0344] In S1040, when the node to be queried is of input-output type, it is necessary to query from each key-value pair whether the key name of a key-value pair matches the node to be queried, and it is also necessary to query from each key-value pair whether the key value of a key-value pair matches the node to be queried.
[0345] In S920, for a certain node to be queried, if there is a key value of a certain key-value pair in the key-value pair mapping relationship that matches the node to be queried, the key name of the matched key-value pair is added to the second data container. That is, when the key value of a certain key-value pair is the node to be queried, the corresponding key name is the time-series associated node of the node to be queried, and the key name can be added to the second data container for storage.
[0346] In S930, similarly, if the key name of a key-value pair in the key-value pair mapping relationship matches the node to be queried, the key value of the matched key-value pair is added to the second data container. That is, when the key name of a key-value pair is the node to be queried, the corresponding key value is the time-series associated node of the node to be queried, and the key value can be added to the second data container for storage.
[0347] In S940, after all key-value pairs matching the node to be queried are queried and the key values or key names are stored in the second data container, the nodes stored in the second data container are all time-series-related nodes corresponding to the node to be queried.
[0348] It should be noted that, taking port H of a certain unit device as an example, if port H is an input / output port, when port H matches the key value in the key-value pair, the key names of the two matched key-value pairs are A and B; when port H matches the key name in the key-value pair, the key value of one matched key-value pair is Y. Then the timing-related nodes of port H include A, B, and Y.
[0349] As an optional implementation manner, the above S140 may include:
[0350] When the node to be queried is a port, determining the associated port corresponding to the port from the node correspondence relationship;
[0351] In the case where the node to be queried is a pin, the associated port corresponding to the port is determined from the node correspondence relationship, and the associated port is converted into an associated pin of the instance object to which the pin belongs.
[0352] In this embodiment, the node to be queried specified by the user may be a port of a unit device or a pin of an instance object.
[0353] When the node to be queried specified by the user is a port of a unit device, the associated port corresponding to the port can be directly determined from the node correspondence relationship, and the associated port is used as the timing associated node corresponding to the node to be queried.
[0354] When the node to be queried specified by the user is the pin of an instance object, it is necessary to first determine the unit device corresponding to the instance object and determine the port corresponding to the pin in the unit device. Based on the port of the unit device corresponding to the pin of the adaptation object, determine the associated port corresponding to the port from the node correspondence. After obtaining the associated port, it is also necessary to determine the associated pin corresponding to the associated port of the unit device on the instance object to which the pin belongs, and use the associated pin as the timing associated node corresponding to the node to be queried. That is, when the node to be queried specified by the user is the port of the unit device, the timing associated nodes queried and returned are other ports of the same unit device; when the node to be queried specified by the user is the pin of an instance object, the timing associated nodes queried and returned are other pins of the same instance object.
[0355] Based on the same inventive concept, the present application also provides a device for acquiring time-series associated nodes. Fig. 9 Provide detailed explanation.
[0356] Fig. 9 It is a structural diagram of a time-series associated node acquisition device 900 provided in an embodiment of the present application.
[0357] like Fig. 9 As shown, the timing-related node acquisition device 900 may include:
[0358] The query module 901 is used to determine the node to be queried specified by the user in response to the query instruction triggered by the user; wherein the node to be queried includes at least one port and / or pin;
[0359] An acquisition module 902 is used to acquire attribute information of a unit device from a library file corresponding to the unit device based on the unit device corresponding to the node to be queried;
[0360] The node correspondence module 903 is used to determine the node correspondence relationship of the unit device according to the attribute information; wherein the node correspondence relationship includes the timing associated node corresponding to each port of the unit device;
[0361] The determination module 904 is used to determine the time-series associated node corresponding to the node to be queried from the node correspondence relationship.
[0362] The above-mentioned time series associated node acquisition device 900 is described in detail below, as shown below:
[0363] In some embodiments, the node corresponding module 903 may include:
[0364] A type determination unit, used to determine the device type of the unit device according to the attribute information;
[0365] A first acquisition unit, configured to determine a timing-related node corresponding to each port based on a first field corresponding to each port when the unit device is a timing-related device;
[0366] A second acquisition unit, configured to determine a second field from a plurality of fields corresponding to each port based on a preset selection rule when the unit device is a non-timing device, and acquire a corresponding timing-related node from the second field;
[0367] The generating unit is used to generate a node correspondence relationship according to the timing association nodes corresponding to each port in the unit device.
[0368] In some embodiments, the generating unit may include:
[0369] A storage subunit, used to store the node correspondence of the unit device in a first data container corresponding to the unit device;
[0370] The time series associated node acquisition device 900 may further include:
[0371] A container determination module, used to determine a first data container corresponding to a unit device based on the unit device corresponding to the node to be queried;
[0372] The node query module is used to determine the time-series associated node corresponding to the node to be queried based on the node correspondence relationship stored in the first data container when the first data container is not empty.
[0373] In some embodiments, the first acquisition unit may include:
[0374] A polling search subunit is used to poll and search for, for each port, whether the type declaration information in each first field of the attribute information satisfies a trigger condition; wherein the trigger condition is that the type declaration information contains a trigger keyword;
[0375] The association subunit is used to determine the timing association node corresponding to the port from the association information of each first field that meets the trigger condition.
[0376] In some embodiments, the above-mentioned association subunit may include:
[0377] A screening subunit, used to determine the to-be-screened node corresponding to the port from the associated information of each first field that meets the trigger condition;
[0378] A signal type subunit, used to determine the signal type of the control signal port based on the device type of the unit device when the node to be screened is a control signal port;
[0379] The asynchronous judgment subunit is used to determine that the node to be screened is a timing-related node corresponding to the port when the signal type is an asynchronous control signal.
[0380] In some embodiments, the second acquisition unit may include:
[0381] A function field query subunit, used for querying a first function field from a plurality of fields corresponding to each port;
[0382] A first determining subunit, configured to determine the first function field as the second field when the multiple fields corresponding to the port include the first function field;
[0383] The second determining subunit is configured to determine the second function field as the second field when the first function field is not included in the multiple fields corresponding to the port.
[0384] In some embodiments, the second determining subunit may include:
[0385] A device type determination subunit, used for obtaining the device type of the unit device when the first function field is not included in the plurality of fields corresponding to the port;
[0386] A third function field query subunit, used to query the third function field from multiple fields corresponding to the port when the device type of the unit device is a tri-state gate device;
[0387] The third determining subunit is configured to determine the second function field and the third function field as the second field when the third function field is included in the plurality of fields corresponding to the port.
[0388] In some embodiments, the generating unit may include:
[0389] The port determination subunit is used to determine the port type of each port according to the attribute information of each port in the unit device; wherein the port type includes input type, output type and input-output type;
[0390] A target port determination subunit, used for determining an output type port and an input-output type port as a target port;
[0391] The target port generation subunit is used to generate a node correspondence relationship according to the timing association nodes corresponding to each target port in the unit device.
[0392] In some embodiments, the target port generation subunit may include:
[0393] The key-value pair mapping subunit is used to generate a key-value pair mapping relationship between the target port and the timing association node based on each target port in the unit device and its corresponding timing association node; wherein the key name in the key-value pair is the target port, and the key value is the timing association node.
[0394] In some embodiments, the determination module 904 may include:
[0395] A key-value pair query unit, used to determine whether there is a key value and / or key name matching the node to be queried in the key-value pair mapping relationship;
[0396] A key name adding unit, configured to add a key name corresponding to the matching key value to the second data container when there is a key value matching the node to be queried in the key-value pair mapping relationship;
[0397] A key value adding unit, configured to add a key value corresponding to the matching key name to the second data container when there is a key name matching the node to be queried in the key-value pair mapping relationship;
[0398] The node returning unit is used to use the node in the second data container as the time series associated node corresponding to the node to be queried.
[0399] In some embodiments, the key-value pair query unit may include:
[0400] The node determination subunit is used to obtain the port type corresponding to the node to be queried;
[0401] A key value matching unit, used to determine whether there is a key value matching the node to be queried in the key value pair mapping relationship when the node to be queried is of input type;
[0402] A key name matching unit, used to determine whether there is a key name matching the node to be queried in the key-value pair mapping relationship when the node to be queried is an output type;
[0403] The key value and key name matching unit is used to determine whether there is a key value and / or key name matching the node to be queried in the key value pair mapping relationship when the node to be queried is of input-output type.
[0404] In some embodiments, the time series associated node acquisition device 900 may further include:
[0405] A port determination module, used for determining the unit device to which the port belongs when the node to be queried is a port;
[0406] The pin determination module is used to determine the corresponding port and the unit device to which it belongs based on the pin and the instance object to which it belongs when the node to be queried is a pin.
[0407] In some embodiments, the determination module 904 may include:
[0408] A port output unit, used to determine an associated port corresponding to the port from a node correspondence relationship when the node to be queried is a port;
[0409] The pin output unit is used to determine the associated port corresponding to the port from the node correspondence relationship when the node to be queried is a pin, and convert the associated port into an associated pin of the instance object to which the pin belongs.
[0410] Fig.10 The hardware structure diagram of the electronic device provided in the embodiment of the present application is shown. The electronic device can be at least one of a computer, a server and a document generation dedicated device. The electronic device includes a processor 1001 and a memory 1002 storing computer program instructions.
[0411] Specifically, the processor 1001 may include a central processing unit (CPU), or an application specific integrated circuit (ASIC), or may be configured to implement one or more integrated circuits of the embodiments of the present application.
[0412] The memory 1002 may include a large capacity memory for data or instructions. By way of example and not limitation, the memory 1002 may include a hard disk drive (HDD), a floppy disk drive, a flash memory, an optical disk, a magneto-optical disk, a magnetic tape, or a universal serial bus (USB) drive or a combination of two or more of these. Where appropriate, the memory 1002 may include a removable or non-removable (or fixed) medium. Where appropriate, the memory 1002 may be inside or outside the electronic device. In a particular embodiment, the memory 1002 is a non-volatile solid-state memory.
[0413] The memory 1002 may include a read-only memory (ROM), a flash memory device, a random access memory (RAM), a magnetic disk storage media device, an optical storage media device, an electrical, optical or other physical / tangible memory storage device. Thus, typically, the memory 1002 includes a tangible (non-transitory) computer-readable storage medium (e.g., a memory device) of one or more software that may be encoded with computer-executable instructions and that, when executed (e.g., by one or more processors), is operable to perform the operations described with reference to the methods according to the above aspects of the present disclosure.
[0414] The processor 1001 reads and executes computer program instructions stored in the memory 1002 to implement any one of the methods for acquiring time-series associated nodes in the above embodiments.
[0415] In one example, the electronic device may further include a communication interface 1003 and a bus 1010. Fig.10 As shown, the processor 1001, the memory 1002, and the communication interface 1003 are connected via a bus 1010 and communicate with each other.
[0416] The communication interface 1003 is mainly used to implement communication between various modules, devices, units and / or equipment in the embodiments of the present application.
[0417] Bus 1010 includes hardware, software or both, coupling the components of the electronic device to each other. For example, but not limitation, the bus may include an accelerated graphics port (AGP) or other graphics bus, an enhanced industrial standard architecture (EISA) bus, a front-side bus (FSB), a hypertransport (HT) interconnect, an industrial standard architecture (ISA) bus, an infinite bandwidth interconnect, a low pin count (LPC) bus, a memory bus, a microchannel architecture (MCA) bus, a peripheral component interconnect (PCI) bus, a PCI-Express (PCI-X) bus, a serial advanced technology attachment (SATA) bus, a video electronics standard association local (VLB) bus or other suitable bus or a combination of two or more of these. Where appropriate, bus 1010 may include one or more buses. Although the present application embodiment describes and illustrates a specific bus, the present application considers any suitable bus or interconnect.
[0418] The electronic device can be based on the time sequence association node acquisition method, thereby realizing the combination Figures 1 to 9 The described method and device for acquiring time series associated nodes.
[0419] In addition, in combination with the time-series associated node acquisition method in the above embodiment, the present application embodiment can provide a computer storage medium for implementation. The computer storage medium stores computer program instructions; when the computer program instructions are executed by a processor, any of the time-series associated node acquisition methods in the above embodiment is implemented.
[0420] In addition, an embodiment of the present application further provides a computer program product, including a computer program, which can implement the steps and corresponding contents of the aforementioned method embodiment when executed by a processor.
[0421] In addition, the term "and / or" in this article is only a description of the association relationship between the associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / " in this article generally indicates that the associated objects before and after are in an "or" relationship.
[0422] It should be understood that in the embodiment of the present application, "B corresponding to A" means that B is associated with A, and B can be determined according to A. However, it should also be understood that determining B according to A does not mean determining B only according to A, and B can also be determined according to A and / or other information.
[0423] The above are only specific implementations of the present application, but the protection scope of the present application is not limited thereto. Any technician familiar with the technical field can easily think of various equivalent modifications or replacements within the technical scope disclosed in the present application, and these modifications or replacements should be included in the protection scope of the present application. Therefore, the protection scope of the present application shall be based on the protection scope of the claims.
Claims
1. A method for acquiring time series associated nodes, characterized in that: include: In response to a query instruction triggered by a user, determining a node to be queried specified by the user; wherein the node to be queried includes at least one port and / or pin; Based on the unit device corresponding to the node to be queried, acquiring attribute information of the unit device from a library file corresponding to the unit device; Determine the node correspondence of the unit device according to the attribute information; wherein the node correspondence includes the timing associated node corresponding to each port of the unit device; Determine the time series associated node corresponding to the node to be queried from the node correspondence relationship; The determining the node correspondence relationship of the unit device according to the attribute information includes: Determine the device type of the unit device according to the attribute information; In the case where the unit device is a timing device, determining a timing associated node corresponding to each port based on a first field corresponding to each port; Generate a node correspondence relationship according to the timing association nodes respectively corresponding to each port in the unit device; The determining the timing association node corresponding to each port based on the first field corresponding to each port includes: For each port, polling and searching among the multiple first fields of the attribute information whether the type declaration information in each first field meets a trigger condition; wherein the trigger condition is that the type declaration information contains a trigger keyword; Determine the timing association node corresponding to the port from the association information of each first field that meets the trigger condition; The determining the timing association node corresponding to the port from the association information of each first field that meets the trigger condition includes: Determine the node to be screened corresponding to the port from the associated information of each first field that meets the trigger condition; In the case where the node to be screened is a control signal port, determining a signal type of the control signal port based on a device type of the unit device; In the case where the signal type is an asynchronous control signal, the node to be screened is determined to be a timing-related node corresponding to the port.
2. The method for acquiring time series associated nodes according to claim 1, characterized in that: Before generating the node correspondence relationship according to the timing association nodes respectively corresponding to the ports in the unit device, the method further includes: In the case where the unit device is a non-timing device, a second field is determined from a plurality of fields corresponding to each port based on a preset selection rule, and a corresponding timing-related node is obtained from the second field.
3. The method for acquiring time series associated nodes according to claim 1, characterized in that: After generating the node correspondence relationship according to the timing association nodes respectively corresponding to the ports in the unit device, the method further includes: Storing the node correspondence of the unit device in a first data container corresponding to the unit device; After determining the node to be queried specified by the user in response to the query instruction triggered by the user, the method further includes: Based on the unit device corresponding to the node to be queried, determining a first data container corresponding to the unit device; When the first data container is not empty, the time series associated node corresponding to the to-be-queried node is determined based on the node correspondence relationship stored in the first data container.
4. The method for acquiring time series associated nodes according to claim 2, characterized in that: The determining the second field from the multiple fields corresponding to each port based on a preset selection rule includes: For each port, query a first function field from a plurality of fields corresponding to the port; In a case where the plurality of fields corresponding to the port include a first function field, determining the first function field as the second field; When the first function field is not included in the multiple fields corresponding to the port, the second function field is determined as the second field.
5. The method for acquiring time series associated nodes according to claim 4, characterized in that: The step of determining the second function field as the second field when the first function field is not included in the multiple fields corresponding to the port further includes: When the first function field is not included in the plurality of fields corresponding to the port, obtaining a device type of the unit device; In the case where the device type of the unit device is a tri-state gate device, querying a third function field from a plurality of fields corresponding to the port; In a case where the plurality of fields corresponding to the port include a third function field, the second function field and the third function field are determined as the second field.
6. The method for acquiring time series associated nodes according to claim 2, characterized in that: The acquiring the corresponding timing-related node from the second field includes: The second field of the attribute information is split and parsed to obtain a timing association node corresponding to the port.
7. The method for acquiring time series associated nodes according to claim 1, characterized in that: The generating a node correspondence relationship according to the timing association nodes respectively corresponding to the ports in the unit device includes: Determine the port type of each port according to the attribute information of each port in the unit device; wherein the port type includes input type, output type and input-output type; Determine the output type port and the input-output type port as the target port; A node correspondence relationship is generated according to the timing association nodes respectively corresponding to the target ports in the unit device.
8. The method for acquiring time series associated nodes according to claim 7, characterized in that: The generating a node correspondence relationship according to the timing association nodes respectively corresponding to each target port in the unit device includes: Based on each target port in the unit device and its corresponding timing-related node, a key-value pair mapping relationship between the target port and the timing-related node is generated; wherein the key name in the key-value pair is the target port, and the key value is the timing-related node.
9. The method for acquiring time series associated nodes according to claim 8, characterized in that: The determining, from the node correspondence relationship, a time series associated node corresponding to the node to be queried, includes: Determine whether there is a key value and / or key name matching the node to be queried in the key-value pair mapping relationship; If there is a key value matching the node to be queried in the key-value pair mapping relationship, adding the key name corresponding to the matching key value to the second data container; If there is a key name matching the node to be queried in the key-value pair mapping relationship, add the key value corresponding to the matching key name to the second data container; The nodes in the second data container are used as time series associated nodes corresponding to the node to be queried.
10. The method for acquiring time series associated nodes according to claim 9, characterized in that: The determining whether there is a key value and / or key name matching the node to be queried in the key-value pair mapping relationship includes: Obtaining the port type corresponding to the node to be queried; In the case where the node to be queried is of input type, determining whether there is a key value matching the node to be queried in the key-value pair mapping relationship; In the case where the node to be queried is of output type, determining whether there is a key name matching the node to be queried in the key-value pair mapping relationship; In the case that the node to be queried is of input-output type, it is determined whether there is a key value and / or key name matching the node to be queried in the key-value pair mapping relationship.
11. The method for acquiring time series associated nodes according to claim 1, characterized in that: Before acquiring the attribute information of the unit device from the library file corresponding to the unit device based on the unit device corresponding to the node to be queried, the method further includes: In the case where the node to be queried is a port, determining a unit device to which the port belongs; In the case that the node to be queried is a pin, the corresponding port and the unit device to which it belongs are determined based on the pin and the instance object to which it belongs.
12. The method for acquiring time series associated nodes according to claim 11, characterized in that: The determining of the time series associated node corresponding to the to-be-queried node from the node correspondence relationship comprises: In the case where the node to be queried is a port, determining an associated port corresponding to the port from the node correspondence relationship; In the case that the node to be queried is a pin, an associated port corresponding to the port is determined from the node correspondence, and the associated port is converted into an associated pin of the instance object to which the pin belongs.
13. A device for acquiring time-series associated nodes, characterized in that: include: A query module, configured to determine a node to be queried specified by a user in response to a query instruction triggered by a user; wherein the node to be queried includes at least one port and / or a pin; An acquisition module, configured to acquire attribute information of the unit device from a library file corresponding to the unit device based on the unit device corresponding to the node to be queried; A node correspondence module, used to determine the node correspondence relationship of the unit device according to the attribute information; wherein the node correspondence relationship includes a timing associated node corresponding to each port of the unit device; A determination module, used to determine the time-series associated node corresponding to the node to be queried from the node correspondence relationship; The node corresponding module includes: A type determination unit, used to determine the device type of the unit device according to the attribute information; A first acquisition unit, configured to determine a timing-related node corresponding to each port based on a first field corresponding to each port when the unit device is a timing-related device; A generating unit, used for generating a node correspondence relationship according to the timing correlation nodes corresponding to each port in the unit device; The first acquiring unit includes: A polling search subunit is used to poll and search for, for each port, whether the type declaration information in each first field of the attribute information satisfies a trigger condition; wherein the trigger condition is that the type declaration information contains a trigger keyword; An association subunit, used to determine a timing association node corresponding to a port from association information of each first field that meets a trigger condition; The association subunit comprises: A screening subunit, used to determine the to-be-screened node corresponding to the port from the associated information of each first field that meets the trigger condition; A signal type subunit, used to determine the signal type of the control signal port based on the device type of the unit device when the node to be screened is a control signal port; The asynchronous judgment subunit is used to determine that the node to be screened is a timing-related node corresponding to the port when the signal type is an asynchronous control signal.
14. An electronic device, characterized in that: include: a processor and a memory storing computer program instructions; When the processor executes the computer program instructions, the steps of the method for acquiring time-series associated nodes as described in any one of claims 1 to 12 are implemented.
15. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer program instructions, and when the computer program instructions are executed by a processor, the steps of the method for acquiring a time series associated node according to any one of claims 1 to 12 are implemented.
16. A computer program product, characterized in that When the instructions in the computer program product are executed by a processor, the steps of the method for acquiring time series associated nodes as described in any one of claims 1 to 12 are implemented.
Citation Information
Patent Citations
Data query method and device, electronic equipment and computer readable storage medium
CN117033468A
Standard cell library generation method and device, terminal and medium
CN117435242A