WO2021128171A1 - Formal verification method and device for chip, and storage medium - Google Patents

Formal verification method and device for chip, and storage medium Download PDF

Info

Publication number
WO2021128171A1
WO2021128171A1 PCT/CN2019/128734 CN2019128734W WO2021128171A1 WO 2021128171 A1 WO2021128171 A1 WO 2021128171A1 CN 2019128734 W CN2019128734 W CN 2019128734W WO 2021128171 A1 WO2021128171 A1 WO 2021128171A1
Authority
WO
WIPO (PCT)
Prior art keywords
formal verification
module
functional
functional modules
functional module
Prior art date
Application number
PCT/CN2019/128734
Other languages
French (fr)
Chinese (zh)
Inventor
李书豪
吴亮
刘其龙
Original Assignee
深圳市大疆创新科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 深圳市大疆创新科技有限公司 filed Critical 深圳市大疆创新科技有限公司
Priority to CN201980051944.2A priority Critical patent/CN112585588A/en
Priority to PCT/CN2019/128734 priority patent/WO2021128171A1/en
Publication of WO2021128171A1 publication Critical patent/WO2021128171A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment

Definitions

  • the embodiments of the present invention relate to the technical field of chip design, and in particular to a method, device and storage medium for formal verification of a chip.
  • the embodiment of the present invention provides a method, device and storage medium for formal verification of a chip.
  • the first aspect of the present invention is to provide a formal verification method for a chip, including:
  • the second aspect of the present invention is to provide a chip formal verification device, including:
  • Memory used to store computer programs
  • the processor is configured to run a computer program stored in the memory to realize:
  • the third aspect of the present invention is to provide a computer-readable storage medium, the storage medium is a computer-readable storage medium, the computer-readable storage medium stores program instructions, and the program instructions are used in the first aspect.
  • the chip formal verification method, device and storage medium provided by the embodiments of the present invention effectively shorten the running time of formal verification, and further improve the quality and efficiency of formal verification.
  • FIG. 1 is a schematic flowchart of a method for formal verification of a chip provided by an embodiment of the present invention
  • FIG. 2 is a schematic diagram of dividing the integrated netlist into multiple functional modules according to design functions according to an embodiment of the present invention
  • FIG. 3 is a schematic diagram of a flow of detecting whether the state of the formal verification performed by the functional module is a normal state according to an embodiment of the present invention
  • FIG. 4 is a schematic flowchart of another method for formal verification of a chip provided by an embodiment of the present invention.
  • FIG. 5 is a schematic diagram of dividing the functional module into multiple sub-functional modules according to an embodiment of the present invention.
  • FIG. 6 is a schematic flowchart of another method for formal verification of a chip provided by an embodiment of the present invention.
  • FIG. 7 is a schematic flowchart of another method for formal verification of a chip provided by an embodiment of the present invention.
  • FIG. 8 is a schematic flowchart of another method for formal verification of a chip provided by an embodiment of the present invention.
  • FIG. 9 is a schematic flowchart of another method for formal verification of a chip provided by an embodiment of the present invention.
  • FIG. 10 is a schematic diagram of a comprehensive netlist provided by an embodiment of the present invention including register transfer-level codes in addition to multiple functional modules;
  • FIG. 11 is a schematic structural diagram of a formal verification device for a chip provided by an embodiment of the present invention.
  • FIG. 1 is a schematic flow chart of a method for formal verification of a chip provided by an embodiment of the present invention; referring to FIG. 1, this embodiment provides a method for formal verification of a chip, and the execution body of the method is a formal verification device. It is understandable that the formal verification device can be implemented as software or a combination of software and hardware. Specifically, the formal verification method may include:
  • Step S101 Obtain a comprehensive netlist corresponding to the chip design code.
  • Step S102 Divide the comprehensive netlist into multiple functional modules according to the design function, where each functional module has boundary and level information, and the division method of multiple functional modules does not change the logic level of the register transfer level corresponding to the comprehensive netlist structure.
  • Step S103 Perform formal verification on the integrated netlist based on multiple functional modules.
  • Step S101 Obtain a comprehensive netlist corresponding to the chip design code.
  • an electronic design automation (Electronics Design Automation, EDA) tool can be used to perform logic synthesis processing on the chip design code to obtain a comprehensive netlist corresponding to the chip design code.
  • EDA Electronics Design Automation
  • Step S102 Divide the comprehensive netlist into multiple functional modules according to the design function, where each functional module has boundary and level information, and the division method of multiple functional modules does not change the logic level of the register transfer level corresponding to the comprehensive netlist structure.
  • the comprehensive netlist division is based on the module structure and hierarchy in the register conversion level circuit. It should be noted that although the multiple functional modules divided by the comprehensive netlist are based on the initial division of the modules in the register conversion level circuit, the multiple functional modules divided by the comprehensive netlist are the initial divisions in the register conversion level circuit. Re-divided based on the divided modules.
  • the register units included in the integrated netlist can be analyzed and processed, so that multiple design functions corresponding to the integrated netlist can be obtained, and then the integrated netlist can be divided into multiples according to the design functions.
  • Each functional module has boundary and level information, and the existing boundary and level information is used to facilitate the identification of the functional modules included in the integrated netlist.
  • the division of multiple functional modules does not change the logical hierarchical structure of the register transfer level corresponding to the integrated netlist. According to an embodiment of the present invention, the division of multiple functional modules is only used in the formal verification stage.
  • the comprehensive netlist can be analyzed and identified, and the design functions corresponding to the comprehensive netlist can be determined including design function a, design function b, design function c, and design Function d
  • the multiple register units included in the comprehensive netlist can be divided into four function modules according to the above design function, namely function module A, function module B, function module C and function module D , Among them, the function module A corresponds to the design function a, the function module B corresponds to the design function b, the function module C corresponds to the design function c, and the function module D corresponds to the design function d.
  • a divided functional module can correspond to one or more design functions, and those skilled in the art can set it according to specific design requirements and application scenarios.
  • the corresponding design functions of the comprehensive netlist include design function a, design function b, design function c, design function d, design function e, and design function f.
  • the multiple register units included in the integrated netlist can be divided into four function modules according to the above-mentioned design function, namely, function module A, function module B, function module C, and function module D.
  • function module A may correspond to design function a
  • function module B may correspond to design function b and design function c
  • function module C may correspond to design function d
  • function module D may correspond to design function e and design function F corresponds.
  • the corresponding relationship between the function modules and the design functions is not limited to the above examples, and those skilled in the art can make arbitrary settings according to specific application requirements and design requirements, which will not be repeated here.
  • the function module A may include one or more register units.
  • the function module B, the function module C, and the function module D may all include one or more register units. It should be noted that regardless of whether the multiple register units in the comprehensive netlist are divided into multiple functional modules according to the design function, for each register unit in the comprehensive netlist, the input and output relationship and the multiple functional modules after division The input and output relationship of each register unit is the same, that is, the division method of multiple functional modules does not change the logical hierarchical structure of the register transfer level corresponding to the integrated netlist.
  • Step S103 Perform formal verification on the integrated netlist based on multiple functional modules.
  • the comprehensive netlist can be formally verified based on multiple functional modules; specifically, the formal verification of the comprehensive netlist based on multiple functional modules may include at least one of the following: At least one of the functional modules in the module is formally verified separately; at least one functional module unit including at least two functional modules is formally verified; and the whole composed of all functional modules is formally verified.
  • the integrated netlist is divided into multiple functional modules according to design functions, formal verification of multiple functional modules can be performed at the same time, so as to improve the efficiency of formal verification.
  • the integrated netlist is divided into multiple functional modules according to the design function, multiple functional modules can be processed in parallel, thereby improving the efficiency of formal verification.
  • the integrated netlist can be divided into different types of functional module sets, where each functional module set corresponds to a division scheme.
  • the comprehensive netlist can be formally verified separately according to each division scheme, thereby improving the quality of formal verification.
  • the integrated netlist can be divided into different functional module sets according to different priorities, so that the division of formal verification is more flexible.
  • the integrated netlist includes four functional modules, which are functional module A, functional module B, functional module C, and functional module D. If the priority of functional module A and functional module B is higher than other functional modules, functional module A and functional module B may be preferably verified. In one embodiment, if a certain functional module is modified, the priority of this functional module can be set higher than the priority of other functional modules.
  • the integrated netlist can be performed based on the four functional modules obtained.
  • the operation of formal verification Specifically, when performing formal verification on a comprehensive netlist based on multiple functional modules, one possible way is to perform separate formal verification operations on functional module A, functional module B, functional module C, and functional module D respectively; Another achievable way is to perform formal verification operations on the whole constituted by all functional modules.
  • the functional modules can be individually verified. After the four functional modules have passed the formal verification operations, the overall structure of the four functional modules can be performed. Formal verification operations.
  • the method for formal verification of the chip provided in this embodiment is to obtain the integrated netlist corresponding to the chip design code, divide the integrated netlist into multiple functional modules according to the design function, and then form the integrated netlist based on the multiple functional modules. Verification effectively guarantees the quality and efficiency of formal verification, and when iterative modification operations on the integrated netlist are encountered, the functional modules that perform iterative modification operations can be accurately performed based on the boundary and level information of the functional modules. Positioning, in turn, is convenient to ensure the accuracy of iterative modification of the integrated netlist and rapid iterative operations, further ensures the accuracy of formal verification, and effectively ensures the stability and reliability of the method.
  • the method in this embodiment may further include:
  • Step S200 For a plurality of functional modules, it is detected whether the state of formal verification performed by the functional module is a normal state.
  • the working state of the functional module for formal verification can include normal state and abnormal state.
  • the state is used to identify the functional module performing normal formal verification operations
  • the abnormal state is used to identify the functional module cannot perform normal formal verification operations.
  • the abnormal state can be caused by the logic of the functional module being too complex, the formal verification time is long, and the formal verification Caused by abnormal operation and so on.
  • the abnormal state is inclusive, abnormal end, or verification timeout.
  • Step S301 Obtain the verification time corresponding to the functional module.
  • Step S302 Check whether the state of the formal verification performed by the functional module is a normal state according to the verification time.
  • the verification time corresponding to the functional module can be obtained, and then the verification time can be analyzed and processed according to the verification time to realize whether the state of the formal verification of the functional module is normal according to the verification time.
  • detecting whether the state of the formal verification performed by the functional module according to the verification time is a normal state may include:
  • Step S3021 When the verification time is less than the preset time threshold, it is determined that the state of the functional module performing formal verification is a normal state.
  • Step S3022 When the verification time is greater than or equal to the preset time threshold, it is determined that the state of the functional module performing formal verification is an abnormal state.
  • the preset time threshold is pre-configured time information, and the preset time threshold is used as the maximum time limit for determining that the state of the functional module for formal verification is the normal state.
  • the time information of the time threshold is not limited, and those skilled in the art can set it according to specific application scenarios and design requirements.
  • the preset time threshold can be 10min, 15min or 20min, etc.
  • the The verification time is analyzed and compared with the preset time threshold. If the verification time is less than the preset time threshold, it means that the functional module at this time has obtained the corresponding formal verification result within the preset time threshold, and then the functional module can be determined for formal verification The status is normal. If the verification time is greater than or equal to the preset time threshold, it means that the functional module at this time has not obtained the corresponding formal verification result within the preset time threshold, and it can be determined that the state of the functional module performing formal verification is an abnormal state.
  • Fig. 4 is a schematic flow chart of another method for formal verification of a chip provided by an embodiment of the present invention; on the basis of the foregoing embodiment, referring to Fig. 4, after determining that the state of the functional module performing formal verification is an abnormal state , The method in this embodiment may further include:
  • Step S401 Divide the functional module into multiple sub-functional modules, where each sub-functional module has boundary and level information.
  • Step S402 Perform formal verification on the functional module based on multiple sub-functional modules.
  • dividing the functional module into multiple sub-functional modules may include:
  • Step S4011 Obtain module design information corresponding to the functional module.
  • Step S4012 Divide the function module into multiple sub-function modules according to the module design information.
  • the functional module in the abnormal state can be directly re-moduled Division operation, that is, the functional module is divided into multiple sub-functional modules.
  • Each sub-functional module has boundary and level information.
  • the boundary and level information of each sub-functional module is used to facilitate the identification of the sub-functional modules included in the functional module.
  • the division method of the multiple sub-functional modules does not change the logical hierarchical structure of the register transfer level corresponding to the functional module. After multiple sub-function modules are obtained, the formal verification operation of the function modules can be implemented based on the multiple sub-function modules, thereby improving the quality and efficiency of formal verification.
  • the module design function corresponding to the functional module A can be obtained. It is assumed that the module design function includes module design function a, module Design function b, module design function c, and module design function d.
  • the multiple register units included in function module A can be divided into four sub-function modules according to the above-mentioned module design function, namely Function module A is divided into: sub-function module A1, sub-function module A2, sub-function module A3, and sub-function module A4.
  • sub-function module A1 can correspond to module design function a
  • sub-function module A2 can correspond to module design function b.
  • the sub-function module A3 may correspond to the module design function c
  • the sub-function module A4 may correspond to the module design function d.
  • the module design function corresponding to functional module B can be obtained. It is assumed that when the module design function includes four module design functions, the above four can be used.
  • a modular design function divides functional module B into sub-functional module B1, sub-functional module B2, sub-functional module B3, and sub-functional module B4.
  • the corresponding module design function of the functional module C can be obtained. If the module design function includes two module design functions, the above two module design can be used The function divides the function module C into a sub-function module C1 and a sub-function module C2.
  • the module design function corresponding to the functional module D can be obtained. If the module design function includes two module design functions, the above two module design functions can be used The function divides the function module D into a sub-function module D1 and a sub-function module D2.
  • the functional module after determining that the state of the functional module performing formal verification is an abnormal state, the functional module is divided into multiple sub-functional modules, and then the functional module is formally verified based on the multiple sub-functional modules.
  • the functional module is divided into multiple sub-functional modules by layering again, and then the functional module is formally verified based on the sub-functional modules, which not only guarantees the formal verification of the functional modules Stable and reliable, and effectively shorten the running time of formal verification, and further improve the quality and efficiency of formal verification.
  • FIG. 6 is a schematic flowchart of another method for formal verification of a chip provided by an embodiment of the present invention; on the basis of any of the foregoing embodiments, and with continued reference to FIG. 6, the method in this embodiment may further include:
  • Step S601 Detect whether the integrated netlist is updated.
  • Step S602 When the integrated netlist is updated, determine the updated part of the netlist corresponding to the integrated netlist.
  • Step S603 Obtain at least one update function module corresponding to the update part of the netlist.
  • Step S604 Perform formal verification on only at least one update function module.
  • the integrated netlist can be updated and optimized according to design requirements or formal verification results.
  • the integrated netlist can be detected and analyzed to detect whether the integrated netlist is updated, specifically, when the integrated netlist is updated.
  • One achievable way is to detect whether the integrated netlist is updated according to a preset detection cycle; or, another achievable way is to detect whether the integrated netlist is updated in real time.
  • the process of detecting whether the comprehensive netlist has been updated may include: obtaining the current comprehensive netlist, and then analyzing and comparing the current comprehensive netlist with the historical comprehensive netlist, and when the current comprehensive netlist is the same as the historical comprehensive netlist, then It can be determined that the comprehensive netlist has not been updated; when the current comprehensive netlist is different from the historical comprehensive netlist, it can be determined that the comprehensive netlist is updated, that is, the comprehensive netlist is updated from the historical comprehensive netlist to the current comprehensive netlist.
  • those skilled in the art can also use other methods to detect whether the integrated netlist has been updated, as long as the accuracy and reliability of the detection of whether the integrated netlist has been updated can be guaranteed.
  • the update part of the netlist corresponding to the integrated netlist can be determined, and then at least one update function module corresponding to the update part of the netlist can be obtained. After the functional modules are updated, formal verification may be performed on only at least one updated functional module.
  • the integrated netlist one includes: netlist part W1, netlist part W2, netlist part W3, and netlist part W4.
  • Integrated netlist two includes There are netlist part W1, netlist part W2, netlist part W ⁇ 3 and netlist part W ⁇ 4.
  • the update function module includes a function module C and a function module D.
  • the integrated netlist corresponds to When the other functional modules of the system pass the formal verification, the formal verification can only be performed on at least one updated functional module, thereby effectively improving the quality and efficiency of the formal verification operation.
  • the netlist update part corresponding to the comprehensive netlist is determined; then at least one update function module corresponding to the netlist update part is obtained , And only perform formal verification on at least one update function module, which effectively realizes that when encountering the modification and iteration of the integrated netlist, the update function module corresponding to the modification iteration operation can be quickly iterated.
  • formal verification can only be performed on the updated functional module, which further ensures the quality and efficiency of formal verification.
  • Fig. 7 is a schematic flow chart of another method for formal verification of a chip provided by an embodiment of the present invention; on the basis of any of the foregoing embodiments, referring to Fig. 7, in the process of formal verification of the integrated netlist It is possible to iteratively modify the integrated netlist, and the process of modifying iterative is often only a part of the integrated netlist. At this time, in order to improve the quality and efficiency of the formal verification of the integrated netlist, the functional modules in the integrated netlist that have passed the formal verification and have not undergone iterative modification do not need to perform formal verification again. Specifically, in order to be able to implement the above technical solution, before performing formal verification on the integrated netlist based on multiple functional modules, the method in this embodiment may further include:
  • Step S701 Identify whether the functional module passes the formal verification.
  • Step S702 When the functional module passes the formal verification, the functional module is set as a black box module that is used to identify the formal verification.
  • the functional module before performing formal verification on the integrated netlist based on multiple functional modules, it can be identified whether the functional module has passed the formal verification. If the functional module has passed the formal verification, the functional module can be set to identify that it has passed the formal verification. In order to perform formal verification operations on the integrated netlist again next time, there is no need to perform formal verification operations on the black box module again, and only need to perform formal verification on other functional modules that have not passed the formal verification, which effectively shortens The time required for formal verification is improved, and the quality and efficiency of formal verification are further improved.
  • functional module A and functional module D are set as black box modules.
  • functional module A and functional module D can be set The identification information of the black box module is added to the top, so that the black box module can be quickly distinguished from other functional modules, and it is convenient to perform formal verification operations on other functional modules.
  • Fig. 8 is a schematic flow chart of another method for formal verification of a chip provided by an embodiment of the present invention; on the basis of the above-mentioned embodiment, referring to Fig. 8, the integrated network based on multiple functional modules in this embodiment
  • Formal verification of tables can include:
  • Step S801 Identify whether a black box module that has passed formal verification is included in the plurality of functional modules.
  • Step S802 If the multiple functional modules include a black box module, perform formal verification on the functional modules other than the black box module in the multiple functional modules.
  • the multiple functional modules include black box modules that have passed formal verification, and the multiple functional modules include black boxes.
  • formal verification can be performed on other functional modules among multiple functional modules except for the black box module.
  • multiple functional modules include functional module A, functional module B, functional module C, and functional module D. Then, by analyzing and identifying the aforementioned multiple functional modules, it can be known that the aforementioned functional module B and functional module C have been For black box modules that pass formal verification, at this time, when performing formal verification on multiple functional modules, you can only perform formal verification on functional module A and functional module D, without formal verification on functional module B and functional module C verification. This effectively shortens the time required for formal verification and further improves the quality and efficiency of formal verification.
  • Fig. 9 is a schematic flow chart of another method for formal verification of a chip provided by an embodiment of the present invention; on the basis of any of the above embodiments, referring to Fig. 9, the integrated netlist includes in addition to multiple functional modules At this time, the method in this embodiment may also include:
  • Step S901 Obtain a verification request for the register transfer level code.
  • Step S902 Perform formal verification on the register transfer level code according to the verification request.
  • the integrated netlist may include multiple functional modules and other areas.
  • the other areas are set around the functional modules, and other areas may include register transfer stages other than the functional modules.
  • users can not only put forward formal verification requirements for functional modules, but also put forward formal verification requirements for register transfer-level codes in other areas.
  • the register transmitter code in other areas can be formally verified according to the verification request.
  • the specific implementation of the formal verification operation is the same as the above-mentioned pair of functional modules.
  • the specific implementation of formal verification is similar. For details, please refer to the above statement, which will not be repeated here.
  • this application embodiment provides a formal verification method, which divides the comprehensive netlist into multiple logical combination modules, and then implements the formal verification operation on the comprehensive netlist based on the multiple logical combination modules, thereby ensuring The stability and reliability of the formal verification of the integrated netlist is achieved.
  • the integrated netlist is divided into modules, the resources and time required for formal verification are comprehensively considered.
  • the formal verification operation can be performed on the logical combination module. If there is a problem in the formal verification process of the logical combination module, the logical combination module can be hierarchically divided again, and then the logical combination module can be processed based on the hierarchical division operation.
  • the subsequent multiple sub-logic combination modules perform formal verification operations again, which effectively shortens the running time required for formal verification operations.
  • the corresponding module performs formal verification operations.
  • the comprehensive netlist is divided into functional module A, functional module B, functional module C, and functional module D as an example for description:
  • Application scenario 1 formal verification methods can include:
  • Step 1 Perform formal verification on function module A, function module B, function module C and function module D separately.
  • Step 2 After functional module A, functional module B, functional module C, and functional module D pass the formal verification, formal verification can be performed on the whole composed of functional module A, functional module B, functional module C, and functional module D.
  • Application scenario two, formal verification methods can include:
  • Step 11 Perform formal verification on functional module unit one composed of functional module A and functional module B, and functional module unit two composed of functional module C and functional module D.
  • Step 12 After the above-mentioned functional module unit 1 and functional module unit 2 pass the formal verification, formal verification can be performed on the whole constituted by the functional module A, the functional module B, the functional module C, and the functional module D.
  • Application scenario three, formal verification methods can include:
  • Step 111 Perform formal verification on function module A, function module B, function module C, and function module D separately.
  • Step 112 After the functional module A and the functional module C have not been formally verified, and the functional module B and the functional module D have passed the formal verification, the functional module A and the functional module C can be divided again according to the designed function.
  • functional module A can be divided into sub functional module A1 and sub functional module A2
  • functional module C can be divided into sub functional module C1, sub functional module C2 and sub functional module C3, etc.
  • functional module B and functional module D can be Identified as a verified black box module.
  • Step 113 Perform formal verification on functional module A and functional module C based on the sub-functional modules. After functional module A and functional module C pass the formal verification, functional module A, functional module B, functional module C, and functional module The whole constituted by D is formally verified.
  • Application scenario 4 In this application embodiment, there is an update operation on the integrated netlist.
  • the formal verification method may include:
  • Step 1111 Based on the update operation performed on the integrated netlist, determine the update function module corresponding to the update operation.
  • Step 1112 Assume that the updated functional module is functional module D. At this time, when the aforementioned functional module A, functional module B, and functional module C are all black box modules, only functional module D can be formally verified.
  • Step 1113 After the functional module D passes the formal verification, formal verification can be performed on the whole constituted by the functional module A, the functional module B, the functional module C, and the functional module D.
  • the divided modules may or may not have boundary and level information.
  • the sub-function module does not have boundary and hierarchical information, it will affect the integrated optimization of area, power consumption and performance. Therefore, preferably, the divided modules or sub-modules can have boundary and level information.
  • the formal verification method provided by this application embodiment realizes a friendly comprehensive configuration of the comprehensive netlist (that is, the module division operation on the comprehensive netlist), which greatly improves the efficiency of formal verification and facilitates the automation of formal verification operations;
  • the formal verification operation of the integrated netlist is realized through the divided modules, which effectively reduces the verification time and resources required for the formal verification operation from the design code to the integrated netlist.
  • the comprehensive area, power consumption and performance optimization are not excessively affected, thereby effectively reducing the need to modify the RTL code in the later stage of the chip design project. Affected the iteration time required for formal verification operations.
  • FIG. 11 is a schematic structural diagram of a formal verification device for a chip provided by an embodiment of the present invention.
  • this embodiment provides a chip formal verification device, which can execute the formal verification method shown in FIG. 1 above.
  • the formal verification device may include:
  • the memory 12 is used to store computer programs
  • the processor 11 is configured to run a computer program stored in the memory 12 to realize:
  • the structure of the formal verification device may also include a communication interface 13 for the electronic device to communicate with other devices or a communication network.
  • the processor 11 when the processor 11 performs formal verification on the integrated netlist based on multiple functional modules, the processor 11 is configured to perform at least one of the following: perform formal verification on at least one of the multiple functional modules separately; Perform formal verification on at least one functional module unit including at least two functional modules; perform formal verification on the whole constituted by all functional modules.
  • the processor 11 when the processor 11 performs formal verification on the integrated netlist based on multiple functional modules, the processor 11 is further configured to: for multiple functional modules, detect whether the state of the functional modules performing formal verification is a normal state.
  • the processor 11 when the processor 11 detects whether the state of the functional module performing formal verification is normal, the processor 11 is also used to: obtain the verification time corresponding to the functional module; and detect the formal verification of the functional module according to the verification time. Whether the status is normal.
  • the processor 11 when the processor 11 detects whether the state of the functional module performing formal verification is normal according to the verification time, the processor 11 is further configured to: when the verification time is less than a preset time threshold, determine that the functional module performs formal verification When the verification time is greater than or equal to the preset time threshold, it is determined that the state of the functional module for formal verification is an abnormal state.
  • the processor 11 is further configured to: divide the functional module into multiple sub-functional modules, where each sub-functional module has boundary and level information; A sub-function module performs formal verification on the function module.
  • the processor 11 when the processor 11 divides the functional module into multiple sub-functional modules, the processor 11 is used to: obtain module design information corresponding to the functional module; and divide the functional module into multiple sub-functional modules according to the module design information .
  • the processor 11 is also used to: detect whether the integrated netlist is updated; when the integrated netlist is updated, determine the update part of the netlist corresponding to the integrated netlist; obtain the update part corresponding to the netlist At least one update function module; only perform formal verification on at least one update function module.
  • the processor 11 before performing formal verification on the integrated netlist based on multiple functional modules, the processor 11 is also used to: identify whether the functional module passes the formal verification; when the functional module passes the formal verification, set the functional module to be used for Identifies black box modules that have passed formal verification.
  • the processor 11 when the processor 11 performs formal verification on the integrated netlist based on multiple functional modules, the processor 11 is also used to: identify whether the multiple functional modules include black box modules that have passed formal verification; When the black box module is included in the functional module, formal verification is performed on the functional modules other than the black box module among the multiple functional modules.
  • the comprehensive netlist includes register transfer-level codes in addition to multiple functional modules, and the processor 11 is also used to: obtain a verification request for the register transfer-level code; form the register transfer-level code according to the verification request verification.
  • the device shown in Fig. 11 can execute the methods of the embodiments shown in Figs.
  • the implementation process and technical effects of this technical solution please refer to the description in the embodiment shown in FIG.
  • an embodiment of the present invention provides a computer storage medium for storing computer software instructions used by an electronic device, which includes instructions for executing the formal verification method of the chip in the method embodiments shown in FIGS. 1 to 10 above. program.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
  • the functional units in the various embodiments of the present invention may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated unit can be implemented in the form of hardware or software functional unit.
  • the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium.
  • the technical solution of the present invention essentially or the part that contributes to the existing technology or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium.
  • the aforementioned storage media include: U disk, mobile hard disk, Read-Only Memory (ROM), Random Access Memory (RAM, Random Access Memory), magnetic disks or optical disks and other media that can store program codes.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

Provided are a formal verification method and device for a chip, and a storage medium. The method comprises: acquiring a synthesized netlist corresponding to a chip design code; dividing the synthesized netlist into a plurality of functional modules according to design functions, wherein each functional module has boundary and hierarchy information, and a division mode for the plurality of functional modules does not change the logical hierarchical structure of a register transfer level corresponding to the synthesized netlist; and performing formal verification on the synthesized netlist on the basis of the plurality of functional modules. The formal verification method and device for a chip, and the storage medium provided by the present embodiment effectively shorten the operation time of formal verification, and further improve the quality and efficiency of formal verification.

Description

芯片的形式验证方法、设备和存储介质Formal verification method, equipment and storage medium of chip 技术领域Technical field
本发明实施例涉及芯片设计技术领域,尤其涉及一种芯片的形式验证方法、设备和存储介质。The embodiments of the present invention relate to the technical field of chip design, and in particular to a method, device and storage medium for formal verification of a chip.
背景技术Background technique
随着超大规模集成电路的发展,逻辑门的个数越来越多,寄存器转换级电路(Register Transfer Level,简称RTL)代码到综合网表的形式验证的运行时间逐渐变长,占用资源的消耗越来越大,导致芯片设计在实现交付的效率低下,并且时间不可把控,特别是在遇到需要迭代修改时,严重影响形式验证的效率和进度。With the development of very large-scale integrated circuits, the number of logic gates is increasing. The running time of the formal verification from Register Transfer Level (RTL) code to the integrated netlist is gradually becoming longer, which consumes resources. Increasing size has led to inefficient delivery of chip designs and uncontrollable time, especially when iterative modifications are required, which seriously affects the efficiency and progress of formal verification.
发明内容Summary of the invention
本发明实施例提供了一种芯片的形式验证方法、设备和存储介质。The embodiment of the present invention provides a method, device and storage medium for formal verification of a chip.
本发明的第一方面是为了提供一种芯片的形式验证方法,包括:The first aspect of the present invention is to provide a formal verification method for a chip, including:
获取与芯片设计代码相对应的综合网表;Obtain a comprehensive netlist corresponding to the chip design code;
将所述综合网表按照设计功能划分为多个功能模块,其中,每个所述功能模块均具有边界和层次信息,多个所述功能模块的划分方式不改变所述综合网表对应的寄存器传输级的逻辑层次结构;Divide the comprehensive netlist into multiple functional modules according to design functions, where each functional module has boundary and level information, and the division of multiple functional modules does not change the register corresponding to the comprehensive netlist The logical hierarchy of the transmission level;
基于多个所述功能模块对所述综合网表进行形式验证。Perform formal verification on the integrated netlist based on a plurality of the functional modules.
本发明的第二方面是为了提供一种芯片的形式验证设备,包括:The second aspect of the present invention is to provide a chip formal verification device, including:
存储器,用于存储计算机程序;Memory, used to store computer programs;
处理器,用于运行所述存储器中存储的计算机程序以实现:The processor is configured to run a computer program stored in the memory to realize:
获取与芯片设计代码相对应的综合网表;Obtain a comprehensive netlist corresponding to the chip design code;
将所述综合网表按照设计功能划分为多个功能模块,其中,每个所述功能模块均具有边界和层次信息,多个所述功能模块的划分方式不改变所述综合网表对应的寄存器传输级的逻辑层次结构;Divide the comprehensive netlist into multiple functional modules according to design functions, where each functional module has boundary and level information, and the division of multiple functional modules does not change the register corresponding to the comprehensive netlist The logical hierarchy of the transmission level;
基于多个所述功能模块对所述综合网表进行形式验证。Perform formal verification on the integrated netlist based on a plurality of the functional modules.
本发明的第三方面是为了提供一种计算机可读存储介质,所述存储介质为计算机可读存储介质,该计算机可读存储介质中存储有程序指令,所述程序指令用于第一方面所述的芯片的形式验证方法。The third aspect of the present invention is to provide a computer-readable storage medium, the storage medium is a computer-readable storage medium, the computer-readable storage medium stores program instructions, and the program instructions are used in the first aspect. The formal verification method of the chip described.
本发明实施例提供的芯片的形式验证方法、设备和存储介质,有效地缩短了形式验证的运行时间,进一步提高了形式验证的质量和效率。The chip formal verification method, device and storage medium provided by the embodiments of the present invention effectively shorten the running time of formal verification, and further improve the quality and efficiency of formal verification.
附图说明Description of the drawings
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:The drawings described here are used to provide a further understanding of the application and constitute a part of the application. The exemplary embodiments and descriptions of the application are used to explain the application, and do not constitute an improper limitation of the application. In the attached picture:
图1为本发明实施例提供的一种芯片的形式验证方法的流程示意图;FIG. 1 is a schematic flowchart of a method for formal verification of a chip provided by an embodiment of the present invention;
图2为本发明实施例提供的将所述综合网表按照设计功能划分为多个功能模块的示意图;2 is a schematic diagram of dividing the integrated netlist into multiple functional modules according to design functions according to an embodiment of the present invention;
图3为本发明实施例提供的检测所述功能模块进行形式验证的状态是否为正常状态的流程示意图;FIG. 3 is a schematic diagram of a flow of detecting whether the state of the formal verification performed by the functional module is a normal state according to an embodiment of the present invention;
图4为本发明实施例提供的另一种芯片的形式验证方法的流程示意图;4 is a schematic flowchart of another method for formal verification of a chip provided by an embodiment of the present invention;
图5为本发明实施例提供的将所述功能模块划分为多个子功能模块的示意图;FIG. 5 is a schematic diagram of dividing the functional module into multiple sub-functional modules according to an embodiment of the present invention;
图6为本发明实施例提供的又一种芯片的形式验证方法的流程示意图;6 is a schematic flowchart of another method for formal verification of a chip provided by an embodiment of the present invention;
图7为本发明实施例提供的另一种芯片的形式验证方法的流程示意图;FIG. 7 is a schematic flowchart of another method for formal verification of a chip provided by an embodiment of the present invention;
图8为本发明实施例提供的又一种芯片的形式验证方法的流程示意图;8 is a schematic flowchart of another method for formal verification of a chip provided by an embodiment of the present invention;
图9为本发明实施例提供的另一种芯片的形式验证方法的流程示意图;9 is a schematic flowchart of another method for formal verification of a chip provided by an embodiment of the present invention;
图10为本发明实施例提供的综合网表中包括除了多个功能模块之外的寄存器传输级代码的示意图;FIG. 10 is a schematic diagram of a comprehensive netlist provided by an embodiment of the present invention including register transfer-level codes in addition to multiple functional modules;
图11为本发明实施例提供的一种芯片的形式验证设备的结构示意图。FIG. 11 is a schematic structural diagram of a formal verification device for a chip provided by an embodiment of the present invention.
具体实施方式Detailed ways
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获 得的所有其他实施例,都属于本发明保护的范围。In order to make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the following will clearly and completely describe the technical solutions in the embodiments of the present invention with reference to the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments These are a part of the embodiments of the present invention, but not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative work shall fall within the protection scope of the present invention.
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the technical field of the present invention. The terms used in the specification of the present invention herein are only for the purpose of describing specific embodiments, and are not intended to limit the present invention.
随着超大规模集成电路的发展,综合之后的逻辑门越来越多,从RTL代码到形式验证操作之间所需要的运行时间逐渐变长,占有资源消耗越来越大,导致芯片设计实现交付的效率低下,并且时间不可把控,特别遇到需要迭代修改的时候,形式验证所需要的运行时间和准确性成了瓶颈,并且容易影响形式验证的效率和进度。With the development of VLSI, there are more and more logic gates after synthesis. The running time required from RTL code to formal verification operation is gradually getting longer, and the resource consumption is increasing, which leads to the realization of chip design and delivery. The efficiency is low and the time is uncontrollable. Especially when iterative modification is required, the running time and accuracy required for formal verification become a bottleneck, and it is easy to affect the efficiency and progress of formal verification.
在超大规模集成电路的设计过程中,当遇到运行时间和资源占有率的问题,可以基于下述表1中的建议信息进行调整。然而,对于表1中的建议信息,要么增大研发成本,要么影响性能、功耗和面积的优化。In the design process of VLSI, when running time and resource occupancy problems are encountered, adjustments can be made based on the suggested information in Table 1 below. However, for the recommended information in Table 1, either increase the R&D cost or affect the optimization of performance, power consumption and area.
表1Table 1
建议Suggest 影响influences
持续更新软件版本Continuously update the software version 受制于供应商Subject to supplier
用最快的机器Use the fastest machine 项目资源的调配Deployment of project resources
把模块划的更小一些Make the module smaller 模块划分的一个维度A dimension of module division
避免形式验证不友好代码风格Avoid unfriendly code style for formal verification 对部分模块有价值Valuable for some modules
使用利于形式验证的综合策略Use a comprehensive strategy that facilitates formal verification 影响性能、功耗和面积的优化Optimizations affecting performance, power consumption and area
下面结合附图,对本发明的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。In the following, some embodiments of the present invention will be described in detail with reference to the accompanying drawings. As long as there is no conflict between the embodiments, the following embodiments and the features in the embodiments can be combined with each other.
图1为本发明实施例提供的一种芯片的形式验证方法的流程示意图;参考附图1所示,本实施例提供了一种芯片的形式验证方法,该方法的执行主体为形式验证设备,可以理解的是,该形式验证设备可以实现为软件、或者软件和硬件的组合。具体的,该形式验证方法可以包括:FIG. 1 is a schematic flow chart of a method for formal verification of a chip provided by an embodiment of the present invention; referring to FIG. 1, this embodiment provides a method for formal verification of a chip, and the execution body of the method is a formal verification device. It is understandable that the formal verification device can be implemented as software or a combination of software and hardware. Specifically, the formal verification method may include:
步骤S101:获取与芯片设计代码相对应的综合网表。Step S101: Obtain a comprehensive netlist corresponding to the chip design code.
步骤S102:将综合网表按照设计功能划分为多个功能模块,其中,每个功能模块均具有边界和层次信息,多个功能模块的划分方式不改变综合网表对应的寄存器传输级的逻辑层次结构。Step S102: Divide the comprehensive netlist into multiple functional modules according to the design function, where each functional module has boundary and level information, and the division method of multiple functional modules does not change the logic level of the register transfer level corresponding to the comprehensive netlist structure.
步骤S103:基于多个功能模块对综合网表进行形式验证。Step S103: Perform formal verification on the integrated netlist based on multiple functional modules.
以下针对上述步骤进行详细阐述:The following is a detailed description of the above steps:
步骤S101:获取与芯片设计代码相对应的综合网表。Step S101: Obtain a comprehensive netlist corresponding to the chip design code.
具体的,在获取到芯片设计代码之后,可以利用电子设计自动化(Electronics Design Automation,简称EDA)工具对芯片设计代码进行逻辑综合处理,获得与芯片设计代码相对应的综合网表。Specifically, after the chip design code is obtained, an electronic design automation (Electronics Design Automation, EDA) tool can be used to perform logic synthesis processing on the chip design code to obtain a comprehensive netlist corresponding to the chip design code.
步骤S102:将综合网表按照设计功能划分为多个功能模块,其中,每个功能模块均具有边界和层次信息,多个功能模块的划分方式不改变综合网表对应的寄存器传输级的逻辑层次结构。综合网表划分是基于寄存器转换级电路中的模块结构和层次进行的。需要说明的是,虽然综合网表划分的多个功能模块是基于寄存器转换级电路中的模块的初始划分而进行的,但是综合网表划分的多个功能模块是在寄存器转换级电路中的初始划分的模块的基础上进行重新划分而得到的。Step S102: Divide the comprehensive netlist into multiple functional modules according to the design function, where each functional module has boundary and level information, and the division method of multiple functional modules does not change the logic level of the register transfer level corresponding to the comprehensive netlist structure. The comprehensive netlist division is based on the module structure and hierarchy in the register conversion level circuit. It should be noted that although the multiple functional modules divided by the comprehensive netlist are based on the initial division of the modules in the register conversion level circuit, the multiple functional modules divided by the comprehensive netlist are the initial divisions in the register conversion level circuit. Re-divided based on the divided modules.
在获取到综合网表之后,可以对综合网表中包括的寄存器单元进行分析处理,从而可以获取到与综合网表相对应的多个设计功能,而后可以将综合网表按照设计功能划分为多个功能模块,其中,每个功能模块均具有边界和层次信息,所存在的边界和层次信息用于方便识别综合网表中所包括的功能模块。并且,在对综合网表进行模块划分操作时,多个功能模块的划分方式并不改变综合网表对应的寄存器传输级的逻辑层次结构。根据本发明的一实施方式,多个所述功能模块的划分方式仅用于形式验证阶段。After the integrated netlist is obtained, the register units included in the integrated netlist can be analyzed and processed, so that multiple design functions corresponding to the integrated netlist can be obtained, and then the integrated netlist can be divided into multiples according to the design functions. Each functional module has boundary and level information, and the existing boundary and level information is used to facilitate the identification of the functional modules included in the integrated netlist. In addition, when the integrated netlist is divided into modules, the division of multiple functional modules does not change the logical hierarchical structure of the register transfer level corresponding to the integrated netlist. According to an embodiment of the present invention, the division of multiple functional modules is only used in the formal verification stage.
举例来说,如图2所示,在获取到综合网表之后,可以对综合网表进行分析识别,确定综合网表所对应的设计功能包括设计功能a、设计功能b、设计功能c和设计功能d,在获取到设计功能之后,可以将综合网表中包括的多个寄存器单元按照上述的设计功能划分为四个功能模块,即功能模块A、功能模块B、功能模块C和功能模块D,其中,功能模块A与设计功能a相对应,功能模块B与设计功能b相对应,功能模块C与设计功能c相对应,功能模块D与设计功能d相对应。For example, as shown in Figure 2, after the comprehensive netlist is obtained, the comprehensive netlist can be analyzed and identified, and the design functions corresponding to the comprehensive netlist can be determined including design function a, design function b, design function c, and design Function d, after obtaining the design function, the multiple register units included in the comprehensive netlist can be divided into four function modules according to the above design function, namely function module A, function module B, function module C and function module D , Among them, the function module A corresponds to the design function a, the function module B corresponds to the design function b, the function module C corresponds to the design function c, and the function module D corresponds to the design function d.
可以理解的是,划分后的一个功能模块可以对应一个或多个设计功能,本领域技术人员可以根据具体的设计需求和应用场景进行设置。例如:在对综合网表进行分析识别时,可以确定综合网表所对应的设计功能包括设计功能a、设计功能b、设计功能c、设计功能d、设计功能e和设计功能f,在获取到上述的设计功能之后,可以将综合网表中包括的多个寄存器单元按照上述的设计功能划分为四个功能模块,即功能模块A、功能模块B、功能模块C和功 能模块D。其中,功能模块A可以与设计功能a相对应,功能模块B可以与设计功能b和设计功能c相对应,功能模块C可以与设计功能d相对应,功能模块D可以与设计功能e和设计功能f相对应。当然的,功能模块与设计功能之间的对应关系并不限于上述举例说明,本领域技术人员可以根据具体的应用需求和设计需求进行任意设置,在此不再赘述。It can be understood that a divided functional module can correspond to one or more design functions, and those skilled in the art can set it according to specific design requirements and application scenarios. For example: when analyzing and identifying the comprehensive netlist, it can be determined that the corresponding design functions of the comprehensive netlist include design function a, design function b, design function c, design function d, design function e, and design function f. After the above-mentioned design function, the multiple register units included in the integrated netlist can be divided into four function modules according to the above-mentioned design function, namely, function module A, function module B, function module C, and function module D. Among them, function module A may correspond to design function a, function module B may correspond to design function b and design function c, function module C may correspond to design function d, and function module D may correspond to design function e and design function F corresponds. Of course, the corresponding relationship between the function modules and the design functions is not limited to the above examples, and those skilled in the art can make arbitrary settings according to specific application requirements and design requirements, which will not be repeated here.
另外,功能模块A中可以包括一个或多个寄存器单元,同理的,功能模块B、功能模块C和功能模块D中均可以包括一个或多个寄存器单元。需要注意的是,无论将综合网表中的多个寄存器单元按照设计功能划分为多个功能模块,但是,对于综合网表中各个寄存器单元而言,其输入输出关系与划分后多个功能模块中的各个寄存器单元的输入输出关系相同,即多个功能模块的划分方式并不改变综合网表对应的寄存器传输级的逻辑层次结构。In addition, the function module A may include one or more register units. Similarly, the function module B, the function module C, and the function module D may all include one or more register units. It should be noted that regardless of whether the multiple register units in the comprehensive netlist are divided into multiple functional modules according to the design function, for each register unit in the comprehensive netlist, the input and output relationship and the multiple functional modules after division The input and output relationship of each register unit is the same, that is, the division method of multiple functional modules does not change the logical hierarchical structure of the register transfer level corresponding to the integrated netlist.
步骤S103:基于多个功能模块对综合网表进行形式验证。Step S103: Perform formal verification on the integrated netlist based on multiple functional modules.
在获取到多个功能模块之后,可以基于多个功能模块对综合网表进行形式验证;具体的,基于多个功能模块对综合网表进行形式验证可以包括以下至少之一:对多个功能模块中的至少一个功能模块单独进行形式验证;对包括至少两个功能模块的至少一个功能模块单元进行形式验证;对由所有功能模块构成的整体进行形式验证。After obtaining multiple functional modules, the comprehensive netlist can be formally verified based on multiple functional modules; specifically, the formal verification of the comprehensive netlist based on multiple functional modules may include at least one of the following: At least one of the functional modules in the module is formally verified separately; at least one functional module unit including at least two functional modules is formally verified; and the whole composed of all functional modules is formally verified.
根据本发明的一实施方式,由于将综合网表按照设计功能划分为多个功能模块,可以同时对多个功能模块进行形式验证,以提高形式验证的效率。也就是说,由于将综合网表按照设计功能划分为多个功能模块,因此可以对多个功能模块进行并行处理,从而提高了形式验证的效率。另外,需要说明的是,由于根据不同的划分方案,可以将综合网表划分为不同类型的功能模块集合,其中,每一个功能模块集合分别对应一个划分方案。进一步,可以依据每一个划分方案来对该综合网表分别进行形式验证,从而提高了形式验证的质量。此外,还可以依据不同的优先级,将综合网表划分不同的功能模块集合,以使得形式验证的划分更加灵活。例如,综合网表包括的四个功能模块,它们分别是功能模块A、功能模块B、功能模块C和功能模块D。若功能模块A和功能模块B的优先级高于其他功能模块,则可以优选验证功能模块A和功能模块B。在一个实施方式中,若对某一个功能模块进行了修改,则可以设定这个功能模块的优先级高于其他功能模块的优先级。According to an embodiment of the present invention, since the integrated netlist is divided into multiple functional modules according to design functions, formal verification of multiple functional modules can be performed at the same time, so as to improve the efficiency of formal verification. In other words, since the integrated netlist is divided into multiple functional modules according to the design function, multiple functional modules can be processed in parallel, thereby improving the efficiency of formal verification. In addition, it should be noted that, due to different division schemes, the integrated netlist can be divided into different types of functional module sets, where each functional module set corresponds to a division scheme. Further, the comprehensive netlist can be formally verified separately according to each division scheme, thereby improving the quality of formal verification. In addition, the integrated netlist can be divided into different functional module sets according to different priorities, so that the division of formal verification is more flexible. For example, the integrated netlist includes four functional modules, which are functional module A, functional module B, functional module C, and functional module D. If the priority of functional module A and functional module B is higher than other functional modules, functional module A and functional module B may be preferably verified. In one embodiment, if a certain functional module is modified, the priority of this functional module can be set higher than the priority of other functional modules.
举例来说,在获取到综合网表包括的四个功能模块(功能模块A、功能模 块B、功能模块C和功能模块D)之后,则可以基于获取的四个功能模块实行对综合网表进行形式验证的操作。具体的,在基于多个功能模块对综合网表进行形式验证时,一种可实现的方式为:分别对功能模块A、功能模块B、功能模块C和功能模块D进行单独的形式验证操作;又一种可实现的方式为:对由所有功能模块构成的整体进行形式验证操作。一般情况下,为了保证形式验证操作的稳定可靠性,可以先对功能模块单独地进行形式验证操作,在四个功能模块均通过形式验证操作之后,则可以对由四个功能模块构成的整体进行形式验证操作。For example, after obtaining the four functional modules (functional module A, functional module B, functional module C, and functional module D) included in the integrated netlist, the integrated netlist can be performed based on the four functional modules obtained. The operation of formal verification. Specifically, when performing formal verification on a comprehensive netlist based on multiple functional modules, one possible way is to perform separate formal verification operations on functional module A, functional module B, functional module C, and functional module D respectively; Another achievable way is to perform formal verification operations on the whole constituted by all functional modules. In general, in order to ensure the stability and reliability of the formal verification operation, the functional modules can be individually verified. After the four functional modules have passed the formal verification operations, the overall structure of the four functional modules can be performed. Formal verification operations.
还存在另一种可实现的方式,可以对包括至少两个功能模块的至少一个功能模块单元进行形式验证,例如:对由功能模块A和功能模块B构成的功能模块单元一进行形式验证,对功能模块C和功能模块D构成的功能模块单元二进行形式验证。一般情况下,为了保证形式验证操作的稳定可靠性,可以先对包括至少两个功能模块的至少一个功能模块单元进行形式验证,在至少一个功能模块单元通过形式验证操作之后,可以对由四个功能模块构成的整体进行形式验证操作。There is another achievable way to perform formal verification on at least one functional module unit that includes at least two functional modules. For example, formal verification is performed on functional module unit 1 composed of functional module A and functional module B. The functional module unit two composed of functional module C and functional module D performs formal verification. In general, in order to ensure the stability and reliability of the formal verification operation, at least one functional module unit including at least two functional modules can be formally verified. After at least one functional module unit passes the formal verification operation, the four The function module constitutes a formal verification operation.
本实施例提供的芯片的形式验证方法,通过获取与芯片设计代码相对应的综合网表,将综合网表按照设计功能划分为多个功能模块,而后基于多个功能模块对综合网表进行形式验证,有效地保证了形式验证的质量和效率,并且,在遇到对综合网表进行迭代修改操作时,可以基于功能模块所具有的边界和层次信息实现对进行迭代修改操作的功能模块进行精准定位,进而便于保证对综合网表进行迭代修改的准确性和快速迭代操作,进一步保证了形式验证的准确性,有效地保证了该方法使用的稳定可靠性。The method for formal verification of the chip provided in this embodiment is to obtain the integrated netlist corresponding to the chip design code, divide the integrated netlist into multiple functional modules according to the design function, and then form the integrated netlist based on the multiple functional modules. Verification effectively guarantees the quality and efficiency of formal verification, and when iterative modification operations on the integrated netlist are encountered, the functional modules that perform iterative modification operations can be accurately performed based on the boundary and level information of the functional modules. Positioning, in turn, is convenient to ensure the accuracy of iterative modification of the integrated netlist and rapid iterative operations, further ensures the accuracy of formal verification, and effectively ensures the stability and reliability of the method.
在一些实例中,在基于多个功能模块对综合网表进行形式验证时,本实施例中的方法还可以包括:In some instances, when performing formal verification on the integrated netlist based on multiple functional modules, the method in this embodiment may further include:
步骤S200:针对多个功能模块,检测功能模块进行形式验证的状态是否为正常状态。Step S200: For a plurality of functional modules, it is detected whether the state of formal verification performed by the functional module is a normal state.
在获取到多个功能模块之后,即可以基于多个功能模块进行形式验证,其中,在功能模块进行形式验证操作的过程中,功能模块进行形式验证的工作状态可以包括正常状态和异常状态,正常状态用于标识功能模块进行正常的形式验证操作,异常状态用于标识功能模块无法进行正常的形式验证操作,该异常状态可以是由功能模块的逻辑过于复杂、形式验证的时间较长、形式 验证操作异常等等原因导致的。例如,异常状态为无结果(inclusive),异常结束,或者验证超时。为了能够保证形式验证的质量和效率,在获取到多个功能模块之后,可以检测功能模块进行形式验证的状态是否为正常状态;具体的,参考附图3所示,检测功能模块进行形式验证的状态是否为正常状态可以包括:After obtaining multiple functional modules, formal verification can be performed based on multiple functional modules. During the formal verification operation of the functional module, the working state of the functional module for formal verification can include normal state and abnormal state. The state is used to identify the functional module performing normal formal verification operations, and the abnormal state is used to identify the functional module cannot perform normal formal verification operations. The abnormal state can be caused by the logic of the functional module being too complex, the formal verification time is long, and the formal verification Caused by abnormal operation and so on. For example, the abnormal state is inclusive, abnormal end, or verification timeout. In order to ensure the quality and efficiency of formal verification, after obtaining multiple functional modules, it is possible to detect whether the state of the functional module undergoing formal verification is normal; specifically, refer to Figure 3 for the formal verification of the functional module. Whether the status is normal can include:
步骤S301:获取与功能模块相对应的验证时间。Step S301: Obtain the verification time corresponding to the functional module.
步骤S302:根据验证时间检测功能模块进行形式验证的状态是否为正常状态。Step S302: Check whether the state of the formal verification performed by the functional module is a normal state according to the verification time.
在对功能模块进行形式验证的过程中,可以获取与功能模块相对应的验证时间,而后可以根据对验证时间进行分析处理,以实现根据验证时间检测功能模块进行形式验证的状态是否为正常状态,具体的,根据验证时间检测功能模块进行形式验证的状态是否为正常状态可以包括:In the process of formal verification of the functional module, the verification time corresponding to the functional module can be obtained, and then the verification time can be analyzed and processed according to the verification time to realize whether the state of the formal verification of the functional module is normal according to the verification time. Specifically, detecting whether the state of the formal verification performed by the functional module according to the verification time is a normal state may include:
步骤S3021:在验证时间小于预设时间阈值时,则确定功能模块进行形式验证的状态为正常状态。Step S3021: When the verification time is less than the preset time threshold, it is determined that the state of the functional module performing formal verification is a normal state.
步骤S3022:在验证时间大于或等于预设时间阈值时,则确定功能模块进行形式验证的状态为异常状态。Step S3022: When the verification time is greater than or equal to the preset time threshold, it is determined that the state of the functional module performing formal verification is an abnormal state.
具体的,预设时间阈值是预先配置的时间信息,该预设时间阈值用于作为确定功能模块进行形式验证的状态为正常状态的最大时间限值,可以理解的是,本实施例对于预设时间阈值的时间信息不做限定,本领域技术人员可以根据具体的应用场景和设计需求进行设置,例如:预设时间阈值可以为10min、15min或者20min等等,在获取到验证时间之后,可以将验证时间与预设时间阈值进行分析比较,若验证时间小于预设时间阈值,则说明此时的功能模块在预设时间阈值内已经获取到相应的形式验证结果,进而可以确定功能模块进行形式验证的状态为正常状态。若验证时间大于或等于预设时间阈值,则说明此时的功能模块在预设时间阈值内未获取到相应的形式验证结果,进而可以确定功能模块进行形式验证的状态为异常状态。Specifically, the preset time threshold is pre-configured time information, and the preset time threshold is used as the maximum time limit for determining that the state of the functional module for formal verification is the normal state. The time information of the time threshold is not limited, and those skilled in the art can set it according to specific application scenarios and design requirements. For example, the preset time threshold can be 10min, 15min or 20min, etc. After the verification time is obtained, the The verification time is analyzed and compared with the preset time threshold. If the verification time is less than the preset time threshold, it means that the functional module at this time has obtained the corresponding formal verification result within the preset time threshold, and then the functional module can be determined for formal verification The status is normal. If the verification time is greater than or equal to the preset time threshold, it means that the functional module at this time has not obtained the corresponding formal verification result within the preset time threshold, and it can be determined that the state of the functional module performing formal verification is an abnormal state.
本实施例中,通过获取与功能模块相对应的验证时间,根据验证时间检测功能模块进行形式验证的状态是否为正常状态,有效地实现了准确地检测功能模块进行形式验证的状态是否为正常状态,从而便于实现通过功能模块进行形式验证的状态来判断对综合网表进行形式验证的状态,进一步提高了进行形式验证操作的质量和效率。In this embodiment, by obtaining the verification time corresponding to the functional module, according to the verification time, it is detected whether the state of the formal verification performed by the functional module is a normal state, which effectively realizes the accurate detection of whether the state of the formal verification performed by the functional module is a normal state. , So as to facilitate the realization of the state of formal verification through the functional module to determine the state of formal verification of the integrated netlist, and further improve the quality and efficiency of the formal verification operation.
图4为本发明实施例提供的另一种芯片的形式验证方法的流程示意图;在上述实施例的基础上,继续参考附图4所示,在确定功能模块进行形式验证的状态为异常状态之后,本实施例中的方法还可以包括:Fig. 4 is a schematic flow chart of another method for formal verification of a chip provided by an embodiment of the present invention; on the basis of the foregoing embodiment, referring to Fig. 4, after determining that the state of the functional module performing formal verification is an abnormal state , The method in this embodiment may further include:
步骤S401:将功能模块划分为多个子功能模块,其中,每个子功能模块具有边界和层次信息。Step S401: Divide the functional module into multiple sub-functional modules, where each sub-functional module has boundary and level information.
步骤S402:基于多个子功能模块对功能模块进行形式验证。Step S402: Perform formal verification on the functional module based on multiple sub-functional modules.
在一些实例中,将功能模块划分为多个子功能模块可以包括:In some instances, dividing the functional module into multiple sub-functional modules may include:
步骤S4011:获取与功能模块相对应的模块设计信息。Step S4011: Obtain module design information corresponding to the functional module.
步骤S4012:根据模块设计信息将功能模块划分为多个子功能模块。Step S4012: Divide the function module into multiple sub-function modules according to the module design information.
其中,在功能模块进行形式验证的状态为异常状态时,为了能够提高对综合网表进行形式验证的质量和效率,缩短形式验证所需要的时间,可以直接对处于异常状态的功能模块再次进行模块划分操作,即将功能模块划分为多个子功能模块,所划分的每个子功能模块具有边界和层次信息,其中,每个子功能模块所具有的边界和层次信息用于方便识别功能模块中所包括的子功能模块。并且,在将功能模块划分为多个子功能模块时,多个子功能模块的划分方式并不改变功能模块对应的寄存器传输级的逻辑层次结构。在获取到多个子功能模块之后,可以基于多个子功能模块实现对功能模块进行形式验证的操作,从而提高了形式验证的质量和效率。Among them, when the state of the functional module undergoing formal verification is abnormal, in order to improve the quality and efficiency of formal verification of the integrated netlist and shorten the time required for formal verification, the functional module in the abnormal state can be directly re-moduled Division operation, that is, the functional module is divided into multiple sub-functional modules. Each sub-functional module has boundary and level information. Among them, the boundary and level information of each sub-functional module is used to facilitate the identification of the sub-functional modules included in the functional module. functional module. Moreover, when the functional module is divided into multiple sub-functional modules, the division method of the multiple sub-functional modules does not change the logical hierarchical structure of the register transfer level corresponding to the functional module. After multiple sub-function modules are obtained, the formal verification operation of the function modules can be implemented based on the multiple sub-function modules, thereby improving the quality and efficiency of formal verification.
举例来说,如图5所示,在功能模块A进行形式验证的状态为异常状态时,则可以获取该功能模块A所对应的模块设计功能,假设:模块设计功能包括模块设计功能a、模块设计功能b、模块设计功能c和模块设计功能d,在获取到上述的模块设计功能之后,可以将功能模块A中包括的多个寄存器单元按照上述的模块设计功能划分为四个子功能模块,即将功能模块A划分为:子功能模块A1、子功能模块A2、子功能模块A3和子功能模块A4,其中,子功能模块A1可以与模块设计功能a相对应,子功能模块A2可以与模块设计功能b相对应,子功能模块A3可以与模块设计功能c相对应,子功能模块A4可以与模块设计功能d相对应。For example, as shown in Figure 5, when the state of functional module A undergoing formal verification is an abnormal state, the module design function corresponding to the functional module A can be obtained. It is assumed that the module design function includes module design function a, module Design function b, module design function c, and module design function d. After obtaining the above-mentioned module design function, the multiple register units included in function module A can be divided into four sub-function modules according to the above-mentioned module design function, namely Function module A is divided into: sub-function module A1, sub-function module A2, sub-function module A3, and sub-function module A4. Among them, sub-function module A1 can correspond to module design function a, and sub-function module A2 can correspond to module design function b. Correspondingly, the sub-function module A3 may correspond to the module design function c, and the sub-function module A4 may correspond to the module design function d.
相类似的,在功能模块B进行形式验证的状态为异常状态时,则可以获取该功能模块B所对应的模块设计功能,假设:模块设计功能包括四个模块设计功能时,可以按照上述的四个模块设计功能将功能模块B划分为子功能模块B1、子功能模块B2、子功能模块B3和子功能模块B4。在功能模块C进行形式验证的 状态为异常状态时,则可以获取该功能模块C所对应的模块设计功能,假设:模块设计功能包括两个模块设计功能时,则可以按照上述的两个模块设计功能将功能模块C划分为子功能模块C1和子功能模块C2。在功能模块D进行形式验证的状态为异常状态时,则可以获取该功能模块D所对应的模块设计功能,假设:模块设计功能包括两个模块设计功能时,则可以按照上述的两个模块设计功能将功能模块D划分为子功能模块D1和子功能模块D2。Similarly, when the state of functional module B undergoing formal verification is abnormal, the module design function corresponding to functional module B can be obtained. It is assumed that when the module design function includes four module design functions, the above four can be used. A modular design function divides functional module B into sub-functional module B1, sub-functional module B2, sub-functional module B3, and sub-functional module B4. When the state of the functional module C undergoing formal verification is abnormal, the corresponding module design function of the functional module C can be obtained. If the module design function includes two module design functions, the above two module design can be used The function divides the function module C into a sub-function module C1 and a sub-function module C2. When the state of the functional module D undergoing formal verification is abnormal, the module design function corresponding to the functional module D can be obtained. If the module design function includes two module design functions, the above two module design functions can be used The function divides the function module D into a sub-function module D1 and a sub-function module D2.
本实施例中,在确定功能模块进行形式验证的状态为异常状态之后,将功能模块划分为多个子功能模块,而后基于多个子功能模块对功能模块进行形式验证,有效地实现了在对功能模块进行形式验证的过程中出现问题时,通过层次再次划分的方式将该功能模块划分为多个子功能模块,而后基于子功能模块对功能模块进行形式验证,从而不仅保证了对功能模块进行形式验证的稳定可靠性,并且也有效地缩短了形式验证的运行时间,进一步提高了形式验证的质量和效率。In this embodiment, after determining that the state of the functional module performing formal verification is an abnormal state, the functional module is divided into multiple sub-functional modules, and then the functional module is formally verified based on the multiple sub-functional modules. When there is a problem in the formal verification process, the functional module is divided into multiple sub-functional modules by layering again, and then the functional module is formally verified based on the sub-functional modules, which not only guarantees the formal verification of the functional modules Stable and reliable, and effectively shorten the running time of formal verification, and further improve the quality and efficiency of formal verification.
图6为本发明实施例提供的又一种芯片的形式验证方法的流程示意图;在上述任意一个实施例的基础上,继续参考附图6所示,本实施例中的方法还可以包括:FIG. 6 is a schematic flowchart of another method for formal verification of a chip provided by an embodiment of the present invention; on the basis of any of the foregoing embodiments, and with continued reference to FIG. 6, the method in this embodiment may further include:
步骤S601:检测综合网表是否发生更新。Step S601: Detect whether the integrated netlist is updated.
步骤S602:在综合网表发生更新时,确定与综合网表相对应的网表更新部分。Step S602: When the integrated netlist is updated, determine the updated part of the netlist corresponding to the integrated netlist.
步骤S603:获取与网表更新部分相对应的至少一个更新功能模块。Step S603: Obtain at least one update function module corresponding to the update part of the netlist.
步骤S604:仅对至少一个更新功能模块进行形式验证。Step S604: Perform formal verification on only at least one update function module.
在芯片的设计流程过程中,可以根据设计需求或者形式验证结果对综合网表进行更新优化操作。此时,为了能够保证对更新后综合网表进行形式验证的质量和效率,可以对综合网表进行检测分析,以检测综合网表是否发生更新,具体的,在检测综合网表是否发生更新时,一种可实现的方式为,可以按照预设的检测周期来检测综合网表是否发生更新;或者,另一种可实现的方式为,可以实时检测综合网表是否发生更新。During the chip design process, the integrated netlist can be updated and optimized according to design requirements or formal verification results. At this time, in order to ensure the quality and efficiency of the formal verification of the updated integrated netlist, the integrated netlist can be detected and analyzed to detect whether the integrated netlist is updated, specifically, when the integrated netlist is updated One achievable way is to detect whether the integrated netlist is updated according to a preset detection cycle; or, another achievable way is to detect whether the integrated netlist is updated in real time.
具体的,检测综合网表是否发生更新的过程可以包括:获取当前综合网表,而后将当前综合网表与历史综合网表进行分析比较,在当前综合网表与历史综合网表相同时,则可以确定综合网表未发生更新操作;在当前综合网表与历史综合网表不同时,则可以确定综合网表发生更新操作,即综合网表 由历史综合网表更新为当前综合网表。当然的,本领域技术人员也可以采用其他的方式来检测综合网表是否发生更新,只要能够保证对综合网表是否发生更新进行检测的准确可靠性即可。Specifically, the process of detecting whether the comprehensive netlist has been updated may include: obtaining the current comprehensive netlist, and then analyzing and comparing the current comprehensive netlist with the historical comprehensive netlist, and when the current comprehensive netlist is the same as the historical comprehensive netlist, then It can be determined that the comprehensive netlist has not been updated; when the current comprehensive netlist is different from the historical comprehensive netlist, it can be determined that the comprehensive netlist is updated, that is, the comprehensive netlist is updated from the historical comprehensive netlist to the current comprehensive netlist. Of course, those skilled in the art can also use other methods to detect whether the integrated netlist has been updated, as long as the accuracy and reliability of the detection of whether the integrated netlist has been updated can be guaranteed.
进一步的,在检测结果为综合网表发生更新时,则可以确定与综合网表相对应的网表更新部分,而后可以获取与网表更新部分相对应的至少一个更新功能模块,在确定至少一个更新功能模块之后,可以仅对至少一个更新功能模块进行形式验证。Further, when the detection result is that the integrated netlist is updated, the update part of the netlist corresponding to the integrated netlist can be determined, and then at least one update function module corresponding to the update part of the netlist can be obtained. After the functional modules are updated, formal verification may be performed on only at least one updated functional module.
举例来说,现存在综合网表一和综合网表二,综合网表一中包括有:网表部分W1、网表部分W2、网表部分W3和网表部分W4,综合网表二中包括有网表部分W1、网表部分W2、网表部分W`3和网表部分W`4,通过对上述两个综合网表进行分析比较,则可以确定网表更新部分为综合网表二中包括的网表部分W`3和网表部分W`4。在获取到上述网表更新部分之后,可以确定与网表更新部分相对应的至少一个更新功能模块,例如:更新功能模块包括功能模块C和功能模块D,此时,在该综合网表所对应的其他功能模块通过形式验证时,则可以仅对至少一个更新功能模块进行形式验证,从而有效地提高了进行形式验证操作的质量和效率。For example, there are integrated netlist one and integrated netlist two. The integrated netlist one includes: netlist part W1, netlist part W2, netlist part W3, and netlist part W4. Integrated netlist two includes There are netlist part W1, netlist part W2, netlist part W`3 and netlist part W`4. By analyzing and comparing the above two comprehensive netlists, it can be determined that the netlist update part is the second comprehensive netlist. The included netlist part W`3 and netlist part W`4. After the update part of the netlist is obtained, at least one update function module corresponding to the update part of the netlist can be determined. For example, the update function module includes a function module C and a function module D. At this time, the integrated netlist corresponds to When the other functional modules of the system pass the formal verification, the formal verification can only be performed on at least one updated functional module, thereby effectively improving the quality and efficiency of the formal verification operation.
本实施例中,通过检测综合网表是否发生更新,在综合网表发生更新时,确定与综合网表相对应的网表更新部分;而后获取与网表更新部分相对应的至少一个更新功能模块,并仅对至少一个更新功能模块进行形式验证,从而有效地实现了在遇到对综合网表进行修改迭代的时候,可以对与修改迭代操作相对应的更新功能模块进行快速迭代,并且,在其他的功能模块通过形式验证操作的情况下,可以只对更新功能模块进行形式验证,进一步保证了形式验证的质量和效率。In this embodiment, by detecting whether the comprehensive netlist is updated, when the comprehensive netlist is updated, the netlist update part corresponding to the comprehensive netlist is determined; then at least one update function module corresponding to the netlist update part is obtained , And only perform formal verification on at least one update function module, which effectively realizes that when encountering the modification and iteration of the integrated netlist, the update function module corresponding to the modification iteration operation can be quickly iterated. In the case that other functional modules pass the formal verification operation, formal verification can only be performed on the updated functional module, which further ensures the quality and efficiency of formal verification.
图7为本发明实施例提供的另一种芯片的形式验证方法的流程示意图;在上述任意一个实施例的基础上,继续参考附图7所示,在对综合网表进行形式验证的过程中,可以对综合网表进行迭代修改,而修改迭代的过程往往只是针对综合网表的一部分。此时,为了能够提高对综合网表进行形式验证的质量和效率,可以对综合网表中通过形式验证、且未进行迭代修改的功能模块无需再次进行形式验证操作。具体的,为了能够实现上述的技术方案,在基于多个功能模块对综合网表进行形式验证之前,本实施例中的方法还可以包括:Fig. 7 is a schematic flow chart of another method for formal verification of a chip provided by an embodiment of the present invention; on the basis of any of the foregoing embodiments, referring to Fig. 7, in the process of formal verification of the integrated netlist It is possible to iteratively modify the integrated netlist, and the process of modifying iterative is often only a part of the integrated netlist. At this time, in order to improve the quality and efficiency of the formal verification of the integrated netlist, the functional modules in the integrated netlist that have passed the formal verification and have not undergone iterative modification do not need to perform formal verification again. Specifically, in order to be able to implement the above technical solution, before performing formal verification on the integrated netlist based on multiple functional modules, the method in this embodiment may further include:
步骤S701:识别功能模块是否通过形式验证。Step S701: Identify whether the functional module passes the formal verification.
步骤S702:在功能模块通过形式验证时,将功能模块设置为用于标识已通过形式验证的黑盒模块。Step S702: When the functional module passes the formal verification, the functional module is set as a black box module that is used to identify the formal verification.
具体的,在基于多个功能模块对综合网表进行形式验证之前,可以识别功能模块是否通过形式验证,若功能模块已通过形式验证,则可以将该功能模块设置为用于标识已通过形式验证的黑盒模块,以便下次再次对综合网表进行形式验证操作时,可以无需对黑盒模块再次进行形式验证操作,只需要对未通过形式验证的其他功能模块进行形式验证,这样有效地缩短了形式验证所需要的时间,进一步提高了形式验证的质量和效率。Specifically, before performing formal verification on the integrated netlist based on multiple functional modules, it can be identified whether the functional module has passed the formal verification. If the functional module has passed the formal verification, the functional module can be set to identify that it has passed the formal verification. In order to perform formal verification operations on the integrated netlist again next time, there is no need to perform formal verification operations on the black box module again, and only need to perform formal verification on other functional modules that have not passed the formal verification, which effectively shortens The time required for formal verification is improved, and the quality and efficiency of formal verification are further improved.
举例来说,在将综合网表划分为功能模块A、功能模块B、功能模块C和功能模块D之后,可以对上述的功能模块进行分析识别,以识别功能模块是否通过形式验证,假设功能模块A和功能模块D通过形式验证,功能模块B和功能模块C未通过形式验证,此时,则功能模块A和功能模块D设置为黑盒模块,具体的,可以将功能模块A和功能模块D上添加上黑盒模块的标识信息,这样可以快速区分出黑盒模块与其他的功能模块,便于对其他的功能模块进行形式验证操作。For example, after the integrated netlist is divided into functional module A, functional module B, functional module C, and functional module D, the above functional modules can be analyzed and identified to identify whether the functional modules pass formal verification, assuming that the functional modules A and functional module D pass formal verification, while functional module B and functional module C fail formal verification. At this time, functional module A and functional module D are set as black box modules. Specifically, functional module A and functional module D can be set The identification information of the black box module is added to the top, so that the black box module can be quickly distinguished from other functional modules, and it is convenient to perform formal verification operations on other functional modules.
图8为本发明实施例提供的又一种芯片的形式验证方法的流程示意图;在上述实施例的基础上,继续参考附图8所示,本实施例中的基于多个功能模块对综合网表进行形式验证可以包括:Fig. 8 is a schematic flow chart of another method for formal verification of a chip provided by an embodiment of the present invention; on the basis of the above-mentioned embodiment, referring to Fig. 8, the integrated network based on multiple functional modules in this embodiment Formal verification of tables can include:
步骤S801:识别多个功能模块中是否包括已通过形式验证的黑盒模块。Step S801: Identify whether a black box module that has passed formal verification is included in the plurality of functional modules.
步骤S802:若多个功能模块中包括黑盒模块,则对多个功能模块中除了黑盒模块的其他功能模块进行形式验证。Step S802: If the multiple functional modules include a black box module, perform formal verification on the functional modules other than the black box module in the multiple functional modules.
具体的,在对多个功能模块进行形式验证时,为了进一步提高形式验证的质量和效率,可以识别多个功能模块中是否包括已通过形式验证的黑盒模块,在多个功能模块中包括黑盒模块时,可以对多个功能模块中除了黑盒模块之外的其他功能模块进行形式验证。Specifically, when performing formal verification on multiple functional modules, in order to further improve the quality and efficiency of formal verification, it can be identified whether the multiple functional modules include black box modules that have passed formal verification, and the multiple functional modules include black boxes. In the case of box modules, formal verification can be performed on other functional modules among multiple functional modules except for the black box module.
举例来说,多个功能模块包括功能模块A、功能模块B、功能模块C和功能模块D,而后,通过对上述多个功能模块进行分析识别可知,上述的功能模块B和功能模块C是已经通过形式验证的黑盒模块,此时,则在对多个功能模块进行形式验证时,则可以只对功能模块A和功能模块D进行形式验证,而无需对功能模块B和功能模块C进行形式验证。这样有效地缩短了形式验证所需要 的时间,进一步提高了形式验证的质量和效率。For example, multiple functional modules include functional module A, functional module B, functional module C, and functional module D. Then, by analyzing and identifying the aforementioned multiple functional modules, it can be known that the aforementioned functional module B and functional module C have been For black box modules that pass formal verification, at this time, when performing formal verification on multiple functional modules, you can only perform formal verification on functional module A and functional module D, without formal verification on functional module B and functional module C verification. This effectively shortens the time required for formal verification and further improves the quality and efficiency of formal verification.
图9为本发明实施例提供的另一种芯片的形式验证方法的流程示意图;在上述任意一个实施例的基础上,参考附图9所示,综合网表中包括除了多个功能模块之外的寄存器传输级代码,此时,本实施例中的方法还可以包括:Fig. 9 is a schematic flow chart of another method for formal verification of a chip provided by an embodiment of the present invention; on the basis of any of the above embodiments, referring to Fig. 9, the integrated netlist includes in addition to multiple functional modules At this time, the method in this embodiment may also include:
步骤S901:获取针对寄存器传输级代码的验证请求。Step S901: Obtain a verification request for the register transfer level code.
步骤S902:根据验证请求对寄存器传输级代码进行形式验证。Step S902: Perform formal verification on the register transfer level code according to the verification request.
其中,如图10所示,综合网表可以包括多个功能模块和其他区域,其他区域是指设置于功能模块的周围,并且,在其他区域中可以包括有除了功能模块之外的寄存器传输级代码,用户除了对功能模块中提出形式验证需求之外,还可以对其他区域中的寄存器传输级代码提出形式验证需求。当获取到用户针对其他区域中的寄存器传输级代码的验证请求时,则可以根据该验证请求对其他区域中的寄存器传输器代码进行形式验证,该形式验证操作的具体实现方式与上述对功能模块进行形式验证的具体实现方式相类似,具体可参考上述陈述内容,在此不再赘述。Among them, as shown in Figure 10, the integrated netlist may include multiple functional modules and other areas. The other areas are set around the functional modules, and other areas may include register transfer stages other than the functional modules. For codes, users can not only put forward formal verification requirements for functional modules, but also put forward formal verification requirements for register transfer-level codes in other areas. When the user's verification request for the register transfer level code in other areas is obtained, the register transmitter code in other areas can be formally verified according to the verification request. The specific implementation of the formal verification operation is the same as the above-mentioned pair of functional modules. The specific implementation of formal verification is similar. For details, please refer to the above statement, which will not be repeated here.
具体应用时,本应用实施例提供了一种形式验证方法,该方法通过将综合网表划分为多个逻辑组合模块,而后基于多个逻辑组合模块实现对综合网表的形式验证操作,进而保证了对综合网表进行形式验证的稳定可靠性。具体的,在将综合网表进行模块划分时,即综合考虑了形式验证的所需资源和时间。在逻辑组合模块划分固定之后,可以针对逻辑组合模块进行形式验证操作,若对逻辑组合模块进行形式验证的过程出现问题,则可以再次对逻辑组合模块进行层次划分操作,而后可以基于层次划分操作处理后的多个子逻辑组合模块再次进行形式验证操作,从而有效地缩短了形式验证操作所需要的运行时间,同时,在遇到需要对综合网表进行修改迭代的时候,可以只对进行修改迭代部分所对应的模块进行形式验证操作。In specific applications, this application embodiment provides a formal verification method, which divides the comprehensive netlist into multiple logical combination modules, and then implements the formal verification operation on the comprehensive netlist based on the multiple logical combination modules, thereby ensuring The stability and reliability of the formal verification of the integrated netlist is achieved. Specifically, when the integrated netlist is divided into modules, the resources and time required for formal verification are comprehensively considered. After the logical combination module is divided and fixed, the formal verification operation can be performed on the logical combination module. If there is a problem in the formal verification process of the logical combination module, the logical combination module can be hierarchically divided again, and then the logical combination module can be processed based on the hierarchical division operation. The subsequent multiple sub-logic combination modules perform formal verification operations again, which effectively shortens the running time required for formal verification operations. At the same time, when it is necessary to modify and iterate the integrated netlist, you can only modify the iterative part The corresponding module performs formal verification operations.
具体的,如图2所示,以将综合网表划分为功能模块A、功能模块B、功能模块C和功能模块D为例进行说明:Specifically, as shown in Fig. 2, the comprehensive netlist is divided into functional module A, functional module B, functional module C, and functional module D as an example for description:
应用场景一,形式验证方法可以包括:Application scenario 1, formal verification methods can include:
步骤1:分别对功能模块A、功能模块B、功能模块C和功能模块D单独进行形式验证。Step 1: Perform formal verification on function module A, function module B, function module C and function module D separately.
步骤2:在功能模块A、功能模块B、功能模块C和功能模块D通过形式验证之后,可以对由功能模块A、功能模块B、功能模块C和功能模块D所构成的整 体进行形式验证。Step 2: After functional module A, functional module B, functional module C, and functional module D pass the formal verification, formal verification can be performed on the whole composed of functional module A, functional module B, functional module C, and functional module D.
应用场景二,形式验证方法可以包括:Application scenario two, formal verification methods can include:
步骤11:对由功能模块A和功能模块B构成的功能模块单元一、由功能模块C和功能模块D构成的功能模块单元二进行形式验证。Step 11: Perform formal verification on functional module unit one composed of functional module A and functional module B, and functional module unit two composed of functional module C and functional module D.
步骤12:在上述的功能模块单元一和功能模块单元二通过形式验证之后,可以对由功能模块A、功能模块B、功能模块C和功能模块D所构成的整体进行形式验证。Step 12: After the above-mentioned functional module unit 1 and functional module unit 2 pass the formal verification, formal verification can be performed on the whole constituted by the functional module A, the functional module B, the functional module C, and the functional module D.
应用场景三,形式验证方法可以包括:Application scenario three, formal verification methods can include:
步骤111:分别对功能模块A、功能模块B、功能模块C和功能模块D单独进行形式验证。Step 111: Perform formal verification on function module A, function module B, function module C, and function module D separately.
步骤112:在功能模块A和功能模块C未形式验证、功能模块B和功能模块D通过形式验证之后,则可以对功能模块A和功能模块C按照设计功能再次进行模块划分操作。Step 112: After the functional module A and the functional module C have not been formally verified, and the functional module B and the functional module D have passed the formal verification, the functional module A and the functional module C can be divided again according to the designed function.
例如:可以将功能模块A划分为子功能模块A1和子功能模块A2,将功能模块C划分为子功能模块C1、子功能模块C2和子功能模块C3等等,而对于功能模块B和功能模块D可以标识为通过验证的黑盒模块。For example: functional module A can be divided into sub functional module A1 and sub functional module A2, functional module C can be divided into sub functional module C1, sub functional module C2 and sub functional module C3, etc., while functional module B and functional module D can be Identified as a verified black box module.
步骤113:基于子功能模块对功能模块A和功能模块C分别进行形式验证,在功能模块A和功能模块C通过形式验证之后,可以对由功能模块A、功能模块B、功能模块C和功能模块D所构成的整体进行形式验证。Step 113: Perform formal verification on functional module A and functional module C based on the sub-functional modules. After functional module A and functional module C pass the formal verification, functional module A, functional module B, functional module C, and functional module The whole constituted by D is formally verified.
应用场景四,本应用实施例中存在对综合网表进行更新操作,此时,形式验证方法可以包括:Application scenario 4: In this application embodiment, there is an update operation on the integrated netlist. In this case, the formal verification method may include:
步骤1111:基于对综合网表进行的更新操作,确定与更新操作相对应的更新功能模块。Step 1111: Based on the update operation performed on the integrated netlist, determine the update function module corresponding to the update operation.
步骤1112:假设更新功能模块为功能模块D,此时,在上述的功能模块A、功能模块B和功能模块C均为黑盒模块时,则可以仅对功能模块D进行形式验证。Step 1112: Assume that the updated functional module is functional module D. At this time, when the aforementioned functional module A, functional module B, and functional module C are all black box modules, only functional module D can be formally verified.
步骤1113:在功能模块D通过形式验证之后,则可以对由功能模块A、功能模块B、功能模块C和功能模块D所构成的整体进行形式验证。Step 1113: After the functional module D passes the formal verification, formal verification can be performed on the whole constituted by the functional module A, the functional module B, the functional module C, and the functional module D.
需要注意的是,在上述任意的应用场景中,在对综合网表或者功能模块进行模块划分时,所划分后的模块可以具有边界和层次信息,也可以不具有边界和层次信息,在功能模块或者子功能模块不具有边界和层次信息时,会影响综合对面积,功耗和性能的优化操作。因此,较为优选的,划分后的模 块或者子模块可以具有边界和层次信息。It should be noted that in any of the above application scenarios, when the integrated netlist or functional module is divided into modules, the divided modules may or may not have boundary and level information. Or when the sub-function module does not have boundary and hierarchical information, it will affect the integrated optimization of area, power consumption and performance. Therefore, preferably, the divided modules or sub-modules can have boundary and level information.
本应用实施例提供的形式验证方法,实现了对综合网表进行友好的综合配置(即对综合网表进行模块划分操作),极大地提高了形式验证的效率,便于实现形式验证操作的自动化;另外,在将综合网表划分模块之后,通过对划分后的模块实现对综合网表的形式验证操作,有效地减小了设计代码到综合网表进行形式验证操作所需要的验证时间和占用资源,进而实现了形式验证高效并减少资源占用;同时,也可以保证综合面积、功耗和性能优化不受过大影响,进而有效地减小了在芯片设计项目的后期,因对RTL代码进行修改而影响了对形式验证操作所需要的迭代时间。The formal verification method provided by this application embodiment realizes a friendly comprehensive configuration of the comprehensive netlist (that is, the module division operation on the comprehensive netlist), which greatly improves the efficiency of formal verification and facilitates the automation of formal verification operations; In addition, after the integrated netlist is divided into modules, the formal verification operation of the integrated netlist is realized through the divided modules, which effectively reduces the verification time and resources required for the formal verification operation from the design code to the integrated netlist. , And then achieve the efficiency of formal verification and reduce resource occupation; at the same time, it can also ensure that the comprehensive area, power consumption and performance optimization are not excessively affected, thereby effectively reducing the need to modify the RTL code in the later stage of the chip design project. Affected the iteration time required for formal verification operations.
图11为本发明实施例提供的一种芯片的形式验证设备的结构示意图。参考附图11所示,本实施例提供了一种芯片的形式验证设备,该形式验证设备可以执行上述图1所示的形式验证方法。具体的,该形式验证设备可以包括:FIG. 11 is a schematic structural diagram of a formal verification device for a chip provided by an embodiment of the present invention. Referring to FIG. 11, this embodiment provides a chip formal verification device, which can execute the formal verification method shown in FIG. 1 above. Specifically, the formal verification device may include:
存储器12,用于存储计算机程序;The memory 12 is used to store computer programs;
处理器11,用于运行存储器12中存储的计算机程序以实现:The processor 11 is configured to run a computer program stored in the memory 12 to realize:
获取与芯片设计代码相对应的综合网表;Obtain a comprehensive netlist corresponding to the chip design code;
将综合网表按照设计功能划分为多个功能模块,其中,每个功能模块均具有边界和层次信息,多个功能模块的划分方式不改变综合网表对应的寄存器传输级的逻辑层次结构;Divide the comprehensive netlist into multiple functional modules according to design functions, where each functional module has boundary and level information, and the division of multiple functional modules does not change the logical hierarchical structure of the register transfer level corresponding to the comprehensive netlist;
基于多个功能模块对综合网表进行形式验证。Formal verification of the integrated netlist based on multiple functional modules.
其中,形式验证设备的结构中还可以包括通信接口13,用于电子设备与其他设备或通信网络通信。The structure of the formal verification device may also include a communication interface 13 for the electronic device to communicate with other devices or a communication network.
在一些实例中,在处理器11基于多个功能模块对综合网表进行形式验证时,处理器11用于执行以下至少之一:对多个功能模块中的至少一个功能模块单独进行形式验证;对包括至少两个功能模块的至少一个功能模块单元进行形式验证;对由所有功能模块构成的整体进行形式验证。In some instances, when the processor 11 performs formal verification on the integrated netlist based on multiple functional modules, the processor 11 is configured to perform at least one of the following: perform formal verification on at least one of the multiple functional modules separately; Perform formal verification on at least one functional module unit including at least two functional modules; perform formal verification on the whole constituted by all functional modules.
在一些实例中,在处理器11基于多个功能模块对综合网表进行形式验证时,处理器11还用于:针对多个功能模块,检测功能模块进行形式验证的状态是否为正常状态。In some instances, when the processor 11 performs formal verification on the integrated netlist based on multiple functional modules, the processor 11 is further configured to: for multiple functional modules, detect whether the state of the functional modules performing formal verification is a normal state.
在一些实例中,在处理器11检测功能模块进行形式验证的状态是否为正常状态时,处理器11还用于:获取与功能模块相对应的验证时间;根据验证时间检测功能模块进行形式验证的状态是否为正常状态。In some instances, when the processor 11 detects whether the state of the functional module performing formal verification is normal, the processor 11 is also used to: obtain the verification time corresponding to the functional module; and detect the formal verification of the functional module according to the verification time. Whether the status is normal.
在一些实例中,在处理器11根据验证时间检测功能模块进行形式验证的状态是否为正常状态时,处理器11还用于:在验证时间小于预设时间阈值时,则确定功能模块进行形式验证的状态为正常状态;在验证时间大于或等于预设时间阈值时,则确定功能模块进行形式验证的状态为异常状态。In some instances, when the processor 11 detects whether the state of the functional module performing formal verification is normal according to the verification time, the processor 11 is further configured to: when the verification time is less than a preset time threshold, determine that the functional module performs formal verification When the verification time is greater than or equal to the preset time threshold, it is determined that the state of the functional module for formal verification is an abnormal state.
在一些实例中,在确定功能模块进行形式验证的状态为异常状态之后,处理器11还用于:将功能模块划分为多个子功能模块,其中,每个子功能模块具有边界和层次信息;基于多个子功能模块对功能模块进行形式验证。In some instances, after determining that the state of the functional module performing formal verification is an abnormal state, the processor 11 is further configured to: divide the functional module into multiple sub-functional modules, where each sub-functional module has boundary and level information; A sub-function module performs formal verification on the function module.
在一些实例中,在处理器11将功能模块划分为多个子功能模块时,处理器11用于:获取与功能模块相对应的模块设计信息;根据模块设计信息将功能模块划分为多个子功能模块。In some instances, when the processor 11 divides the functional module into multiple sub-functional modules, the processor 11 is used to: obtain module design information corresponding to the functional module; and divide the functional module into multiple sub-functional modules according to the module design information .
在一些实例中,处理器11还用于:检测综合网表是否发生更新;在综合网表发生更新时,确定与综合网表相对应的网表更新部分;获取与网表更新部分相对应的至少一个更新功能模块;仅对至少一个更新功能模块进行形式验证。In some instances, the processor 11 is also used to: detect whether the integrated netlist is updated; when the integrated netlist is updated, determine the update part of the netlist corresponding to the integrated netlist; obtain the update part corresponding to the netlist At least one update function module; only perform formal verification on at least one update function module.
在一些实例中,在基于多个功能模块对综合网表进行形式验证之前,处理器11还用于:识别功能模块是否通过形式验证;在功能模块通过形式验证时,将功能模块设置为用于标识已通过形式验证的黑盒模块。In some instances, before performing formal verification on the integrated netlist based on multiple functional modules, the processor 11 is also used to: identify whether the functional module passes the formal verification; when the functional module passes the formal verification, set the functional module to be used for Identifies black box modules that have passed formal verification.
在一些实例中,在处理器11基于多个功能模块对综合网表进行形式验证时,处理器11还用于:识别多个功能模块中是否包括已通过形式验证的黑盒模块;在多个功能模块中包括黑盒模块时,则对多个功能模块中除了黑盒模块的其他功能模块进行形式验证。In some instances, when the processor 11 performs formal verification on the integrated netlist based on multiple functional modules, the processor 11 is also used to: identify whether the multiple functional modules include black box modules that have passed formal verification; When the black box module is included in the functional module, formal verification is performed on the functional modules other than the black box module among the multiple functional modules.
在一些实例中,综合网表中包括除了多个功能模块之外的寄存器传输级代码,处理器11还用于:获取针对寄存器传输级代码的验证请求;根据验证请求对寄存器传输级代码进行形式验证。In some instances, the comprehensive netlist includes register transfer-level codes in addition to multiple functional modules, and the processor 11 is also used to: obtain a verification request for the register transfer-level code; form the register transfer-level code according to the verification request verification.
图11所示设备可以执行图1-图10所示实施例的方法,本实施例未详细描述的部分,可参考对图1-图10所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1-图10所示实施例中的描述,在此不再赘述。The device shown in Fig. 11 can execute the methods of the embodiments shown in Figs. For the implementation process and technical effects of this technical solution, please refer to the description in the embodiment shown in FIG.
另外,本发明实施例提供了一种计算机存储介质,用于储存电子设备所用的计算机软件指令,其包含用于执行上述图1-图10所示方法实施例中芯片的形式验证方法所涉及的程序。In addition, an embodiment of the present invention provides a computer storage medium for storing computer software instructions used by an electronic device, which includes instructions for executing the formal verification method of the chip in the method embodiments shown in FIGS. 1 to 10 above. program.
以上各个实施例中的技术方案、技术特征在与本相冲突的情况下均可以单独,或者进行组合,只要未超出本领域技术人员的认知范围,均属于本申请保护范围内的等同实施例。The technical solutions and technical features in each of the above embodiments can be singly or combined in case of conflict with the present invention, as long as they do not exceed the cognitive scope of those skilled in the art, they all belong to the equivalent embodiments within the protection scope of this application. .
在本发明所提供的几个实施例中,应该理解到,本发明揭示的方法,可以通过其它的方式实现。例如,以上所描述的用于芯片的形式验证方法、设备和存储介质的实施例仅仅是示意性的。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。In the several embodiments provided in the present invention, it should be understood that the method disclosed in the present invention can be implemented in other ways. For example, the above-described embodiments of the formal verification method, device, and storage medium for a chip are only illustrative. For example, multiple units or components can be combined or integrated into another system, or some features can be omitted or not implemented.
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。The units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。In addition, the functional units in the various embodiments of the present invention may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit. The above-mentioned integrated unit can be implemented in the form of hardware or software functional unit.
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得计算机处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或者光盘等各种可以存储程序代码的介质。If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium. Based on this understanding, the technical solution of the present invention essentially or the part that contributes to the existing technology or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium. , Including several instructions to make a computer processor (processor) execute all or part of the steps of the method described in each embodiment of the present invention. The aforementioned storage media include: U disk, mobile hard disk, Read-Only Memory (ROM), Random Access Memory (RAM, Random Access Memory), magnetic disks or optical disks and other media that can store program codes.
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。The above are only the embodiments of the present invention, which do not limit the scope of the present invention. Any equivalent structure or equivalent process transformation made by using the content of the description and drawings of the present invention, or directly or indirectly applied to other related technologies In the same way, all fields are included in the scope of patent protection of the present invention.
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, not to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that: The technical solutions recorded in the foregoing embodiments can still be modified, or some or all of the technical features can be equivalently replaced; and these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the technical solutions of the embodiments of the present invention. range.

Claims (23)

  1. 一种芯片的形式验证方法,其特征在于,包括:A method for formal verification of a chip, which is characterized in that it comprises:
    获取与芯片设计代码相对应的综合网表;Obtain a comprehensive netlist corresponding to the chip design code;
    将所述综合网表按照设计功能划分为多个功能模块,其中,每个所述功能模块均具有边界和层次信息,多个所述功能模块的划分方式不改变所述综合网表对应的寄存器传输级的逻辑层次结构;Divide the comprehensive netlist into multiple functional modules according to design functions, where each functional module has boundary and level information, and the division of multiple functional modules does not change the register corresponding to the comprehensive netlist The logical hierarchy of the transmission level;
    基于多个所述功能模块对所述综合网表进行形式验证。Perform formal verification on the integrated netlist based on a plurality of the functional modules.
  2. 根据权利要求1所述的方法,其特征在于,基于多个所述功能模块对所述综合网表进行形式验证,包括以下至少之一:The method according to claim 1, wherein the formal verification of the integrated netlist based on a plurality of the functional modules includes at least one of the following:
    对多个所述功能模块中的至少一个功能模块单独进行形式验证;Performing formal verification on at least one of the plurality of functional modules separately;
    对包括至少两个功能模块的至少一个功能模块单元进行形式验证;Perform formal verification on at least one functional module unit including at least two functional modules;
    对由所有功能模块构成的整体进行形式验证。Perform formal verification on the whole composed of all functional modules.
  3. 根据权利要求1所述的方法,其特征在于,在基于多个所述功能模块对所述综合网表进行形式验证时,所述方法还包括:The method according to claim 1, wherein when performing formal verification on the integrated netlist based on a plurality of the functional modules, the method further comprises:
    针对多个功能模块,检测所述功能模块进行形式验证的状态是否为正常状态。For a plurality of functional modules, it is detected whether the state in which the functional module performs formal verification is a normal state.
  4. 根据权利要求3所述的方法,其特征在于,所述检测所述功能模块进行形式验证的状态是否为正常状态,包括:The method according to claim 3, wherein the detecting whether the state of the formal verification performed by the functional module is a normal state comprises:
    获取与所述功能模块相对应的验证时间;Obtaining the verification time corresponding to the functional module;
    根据所述验证时间检测所述功能模块进行形式验证的状态是否为正常状态。According to the verification time, it is detected whether the state of the functional module performing the formal verification is a normal state.
  5. 根据权利要求4所述的方法,其特征在于,根据所述验证时间检测所述功能模块进行形式验证的状态是否为正常状态,包括:The method according to claim 4, wherein detecting whether the state of the functional module performing formal verification is a normal state according to the verification time comprises:
    在所述验证时间小于预设时间阈值时,则确定所述功能模块进行形式验证的状态为正常状态;When the verification time is less than a preset time threshold, it is determined that the state in which the functional module performs formal verification is a normal state;
    在所述验证时间大于或等于预设时间阈值时,则确定所述功能模块进行形式验证的状态为异常状态。When the verification time is greater than or equal to the preset time threshold, it is determined that the state in which the functional module performs formal verification is an abnormal state.
  6. 根据权利要求3所述的方法,其特征在于,在确定所述功能模块进行形式验证的状态为异常状态之后,所述方法还包括:The method according to claim 3, wherein after determining that the state of the functional module performing formal verification is an abnormal state, the method further comprises:
    将所述功能模块划分为多个子功能模块,其中,每个所述子功能模块具有边界和层次信息;Dividing the functional module into a plurality of sub-functional modules, wherein each of the sub-functional modules has boundary and level information;
    基于多个所述子功能模块对所述功能模块进行形式验证。Perform formal verification on the functional module based on a plurality of the sub-functional modules.
  7. 根据权利要求6所述的方法,其特征在于,将所述功能模块划分为多个子功能模块,包括:The method according to claim 6, wherein dividing the functional module into a plurality of sub-functional modules comprises:
    获取与所述功能模块相对应的模块设计信息;Acquiring module design information corresponding to the functional module;
    根据所述模块设计信息将所述功能模块划分为多个子功能模块。The functional module is divided into multiple sub-functional modules according to the module design information.
  8. 根据权利要求1-7中任意一项所述的方法,其特征在于,所述方法还包括:The method according to any one of claims 1-7, wherein the method further comprises:
    检测所述综合网表是否发生更新;Detecting whether the comprehensive netlist is updated;
    在所述综合网表发生更新时,确定与所述综合网表相对应的网表更新部分;When the integrated netlist is updated, determine the updated part of the netlist corresponding to the integrated netlist;
    获取与所述网表更新部分相对应的至少一个更新功能模块;Acquiring at least one update function module corresponding to the netlist update part;
    仅对至少一个所述更新功能模块进行形式验证。Only perform formal verification on at least one of the update function modules.
  9. 根据权利要求1-7中任意一项所述的方法,其特征在于,在基于多个所述功能模块对所述综合网表进行形式验证之前,所述方法还包括:The method according to any one of claims 1-7, characterized in that, before performing formal verification on the integrated netlist based on a plurality of the functional modules, the method further comprises:
    识别所述功能模块是否通过形式验证;Identify whether the functional module passes formal verification;
    在所述功能模块通过形式验证时,将所述功能模块设置为用于标识已通过形式验证的黑盒模块。When the functional module passes the formal verification, the functional module is set as a black box module that is used to identify the formal verification.
  10. 根据权利要求9所述的方法,其特征在于,基于多个所述功能模块对所述综合网表进行形式验证,包括:The method according to claim 9, wherein the formal verification of the integrated netlist based on a plurality of the functional modules comprises:
    识别多个所述功能模块中是否包括已通过形式验证的黑盒模块;Identifying whether a black box module that has passed formal verification is included in the plurality of functional modules;
    在多个所述功能模块中包括黑盒模块时,则对多个所述功能模块中除了所述黑盒模块的其他功能模块进行形式验证。When a black box module is included in the plurality of functional modules, formal verification is performed on the functional modules other than the black box module in the plurality of functional modules.
  11. 根据权利要求1-7中任意一项所述的方法,其特征在于,所述综合网表中包括除了多个功能模块之外的寄存器传输级代码,所述方法还包括:The method according to any one of claims 1-7, wherein the comprehensive netlist includes register transfer level codes other than a plurality of functional modules, and the method further comprises:
    获取针对所述寄存器传输级代码的验证请求;Obtaining a verification request for the register transfer-level code;
    根据所述验证请求对所述寄存器传输级代码进行形式验证。Perform formal verification on the register transfer level code according to the verification request.
  12. 一种芯片的形式验证设备,其特征在于,包括:A formal verification device for a chip, characterized in that it comprises:
    存储器,用于存储计算机程序;Memory, used to store computer programs;
    处理器,用于运行所述存储器中存储的计算机程序以实现:The processor is configured to run a computer program stored in the memory to realize:
    获取与芯片设计代码相对应的综合网表;Obtain a comprehensive netlist corresponding to the chip design code;
    将所述综合网表按照设计功能划分为多个功能模块,其中,每个所述功能模块均具有边界和层次信息,多个所述功能模块的划分方式不改变所述综合网表对应的寄存器传输级的逻辑层次结构;Divide the comprehensive netlist into multiple functional modules according to design functions, where each functional module has boundary and level information, and the division of multiple functional modules does not change the register corresponding to the comprehensive netlist The logical hierarchy of the transmission level;
    基于多个所述功能模块对所述综合网表进行形式验证。Perform formal verification on the integrated netlist based on a plurality of the functional modules.
  13. 根据权利要求12所述的设备,其特征在于,在所述处理器基于多个所述功能模块对所述综合网表进行形式验证时,所述处理器用于执行以下至少之一:The device according to claim 12, wherein when the processor performs formal verification on the integrated netlist based on a plurality of the functional modules, the processor is configured to perform at least one of the following:
    对多个所述功能模块中的至少一个功能模块单独进行形式验证;Performing formal verification on at least one of the plurality of functional modules separately;
    对包括至少两个功能模块的至少一个功能模块单元进行形式验证;Perform formal verification on at least one functional module unit including at least two functional modules;
    对由所有功能模块构成的整体进行形式验证。Perform formal verification on the whole composed of all functional modules.
  14. 根据权利要求12所述的设备,其特征在于,在所述处理器基于多个所述功能模块对所述综合网表进行形式验证时,所述处理器还用于:The device according to claim 12, wherein when the processor performs formal verification on the integrated netlist based on a plurality of the functional modules, the processor is further configured to:
    针对多个功能模块,检测所述功能模块进行形式验证的状态是否为正常状态。For a plurality of functional modules, it is detected whether the state in which the functional module performs formal verification is a normal state.
  15. 根据权利要求14所述的设备,其特征在于,在所述处理器检测所述功能模块进行形式验证的状态是否为正常状态时,所述处理器还用于:The device according to claim 14, wherein when the processor detects whether the state of the functional module performing formal verification is a normal state, the processor is further configured to:
    获取与所述功能模块相对应的验证时间;Obtaining the verification time corresponding to the functional module;
    根据所述验证时间检测所述功能模块进行形式验证的状态是否为正常状态。According to the verification time, it is detected whether the state of the functional module performing the formal verification is a normal state.
  16. 根据权利要求15所述的设备,其特征在于,在所述处理器根据所述验证时间检测所述功能模块进行形式验证的状态是否为正常状态时,所述处理器还用于:The device according to claim 15, wherein when the processor detects whether the state of the functional module performing formal verification is a normal state according to the verification time, the processor is further configured to:
    在所述验证时间小于预设时间阈值时,则确定所述功能模块进行形式验证的状态为正常状态;When the verification time is less than a preset time threshold, it is determined that the state in which the functional module performs formal verification is a normal state;
    在所述验证时间大于或等于预设时间阈值时,则确定所述功能模块进行形式验证的状态为异常状态。When the verification time is greater than or equal to the preset time threshold, it is determined that the state in which the functional module performs formal verification is an abnormal state.
  17. 根据权利要求14所述的设备,其特征在于,在确定所述功能模块进行形式验证的状态为异常状态之后,所述处理器还用于:The device according to claim 14, wherein after determining that the state of the functional module performing formal verification is an abnormal state, the processor is further configured to:
    将所述功能模块划分为多个子功能模块,其中,每个所述子功能模块具有边界和层次信息;Dividing the functional module into a plurality of sub-functional modules, wherein each of the sub-functional modules has boundary and level information;
    基于多个所述子功能模块对所述功能模块进行形式验证。Perform formal verification on the functional module based on a plurality of the sub-functional modules.
  18. 根据权利要求17所述的设备,其特征在于,在所述处理器将所述功能模块划分为多个子功能模块时,所述处理器还用于:The device according to claim 17, wherein when the processor divides the functional module into multiple sub-functional modules, the processor is further configured to:
    获取与所述功能模块相对应的模块设计信息;Acquiring module design information corresponding to the functional module;
    根据所述模块设计信息将所述功能模块划分为多个子功能模块。The functional module is divided into multiple sub-functional modules according to the module design information.
  19. 根据权利要求12-18中任意一项所述的设备,其特征在于,所述处理器还用于:The device according to any one of claims 12-18, wherein the processor is further configured to:
    检测所述综合网表是否发生更新;Detecting whether the comprehensive netlist is updated;
    在所述综合网表发生更新时,确定与所述综合网表相对应的网表更新部分;When the integrated netlist is updated, determine the updated part of the netlist corresponding to the integrated netlist;
    获取与所述网表更新部分相对应的至少一个更新功能模块;Acquiring at least one update function module corresponding to the netlist update part;
    仅对至少一个所述更新功能模块进行形式验证。Only perform formal verification on at least one of the update function modules.
  20. 根据权利要求12-18中任意一项所述的设备,其特征在于,在基于多个所述功能模块对所述综合网表进行形式验证之前,所述处理器还用于:The device according to any one of claims 12-18, wherein, before performing formal verification on the integrated netlist based on a plurality of the functional modules, the processor is further configured to:
    识别所述功能模块是否通过形式验证;Identify whether the functional module passes formal verification;
    在所述功能模块通过形式验证时,将所述功能模块设置为用于标识已通过形式验证的黑盒模块。When the functional module passes the formal verification, the functional module is set as a black box module that is used to identify the formal verification.
  21. 根据权利要求20所述的设备,其特征在于,在所述处理器基于多个所述功能模块对所述综合网表进行形式验证时,所述处理器还用于:The device according to claim 20, wherein when the processor performs formal verification on the integrated netlist based on a plurality of the functional modules, the processor is further configured to:
    识别多个所述功能模块中是否包括已通过形式验证的黑盒模块;Identifying whether a black box module that has passed formal verification is included in the plurality of functional modules;
    在多个所述功能模块中包括黑盒模块时,则对多个所述功能模块中除了所述黑盒模块的其他功能模块进行形式验证。When a black box module is included in the plurality of functional modules, formal verification is performed on the functional modules other than the black box module in the plurality of functional modules.
  22. 根据权利要求12-18中任意一项所述的设备,其特征在于,所述综合网表中包括除了多个功能模块之外的寄存器传输级代码,所述处理器还用于:The device according to any one of claims 12-18, wherein the comprehensive netlist includes register transfer-level code in addition to multiple functional modules, and the processor is further configured to:
    获取针对所述寄存器传输级代码的验证请求;Obtaining a verification request for the register transfer-level code;
    根据所述验证请求对所述寄存器传输级代码进行形式验证。Perform formal verification on the register transfer level code according to the verification request.
  23. 一种计算机可读存储介质,其特征在于,所述存储介质为计算机可读存储介质,该计算机可读存储介质中存储有程序指令,所述程序指令用于实现权利要求1-11中任意一项所述的芯片的形式验证方法。A computer-readable storage medium, wherein the storage medium is a computer-readable storage medium, the computer-readable storage medium stores program instructions, and the program instructions are used to implement any one of claims 1-11 The method of formal verification of the chip described in item.
PCT/CN2019/128734 2019-12-26 2019-12-26 Formal verification method and device for chip, and storage medium WO2021128171A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201980051944.2A CN112585588A (en) 2019-12-26 2019-12-26 Chip form verification method, device and storage medium
PCT/CN2019/128734 WO2021128171A1 (en) 2019-12-26 2019-12-26 Formal verification method and device for chip, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/128734 WO2021128171A1 (en) 2019-12-26 2019-12-26 Formal verification method and device for chip, and storage medium

Publications (1)

Publication Number Publication Date
WO2021128171A1 true WO2021128171A1 (en) 2021-07-01

Family

ID=75117154

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/128734 WO2021128171A1 (en) 2019-12-26 2019-12-26 Formal verification method and device for chip, and storage medium

Country Status (2)

Country Link
CN (1) CN112585588A (en)
WO (1) WO2021128171A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113688587B (en) * 2021-08-31 2024-03-22 上海商汤阡誓科技有限公司 Method and device for generating circuit layout, computer equipment and storage medium
CN115062570B (en) * 2022-07-25 2022-11-15 阿里巴巴(中国)有限公司 Formal verification method, device and equipment and computer storage medium
CN115796093B (en) * 2023-01-03 2023-08-08 摩尔线程智能科技(北京)有限责任公司 Circuit time sequence optimization method and device, electronic equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013044494A1 (en) * 2011-09-30 2013-04-04 中国科学院微电子研究所 Integrated circuit simulation method and system
US20140351777A1 (en) * 2010-02-12 2014-11-27 Synopsys Taiwan Co., LTD. Prototype and emulation system for multiple custom prototype boards
CN105787148A (en) * 2015-01-12 2016-07-20 联发科技股份有限公司 Method of designing integrated circuit
CN106295048A (en) * 2016-08-19 2017-01-04 西安电子科技大学 A kind of digit chip function verification method and system
CN107895087A (en) * 2017-11-29 2018-04-10 中科亿海微电子科技(苏州)有限公司 The method and system that the emulation of PLD module level automatically generates with code

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140351777A1 (en) * 2010-02-12 2014-11-27 Synopsys Taiwan Co., LTD. Prototype and emulation system for multiple custom prototype boards
WO2013044494A1 (en) * 2011-09-30 2013-04-04 中国科学院微电子研究所 Integrated circuit simulation method and system
CN105787148A (en) * 2015-01-12 2016-07-20 联发科技股份有限公司 Method of designing integrated circuit
CN106295048A (en) * 2016-08-19 2017-01-04 西安电子科技大学 A kind of digit chip function verification method and system
CN107895087A (en) * 2017-11-29 2018-04-10 中科亿海微电子科技(苏州)有限公司 The method and system that the emulation of PLD module level automatically generates with code

Also Published As

Publication number Publication date
CN112585588A (en) 2021-03-30

Similar Documents

Publication Publication Date Title
WO2021128171A1 (en) Formal verification method and device for chip, and storage medium
US9479395B2 (en) Model framework to facilitate robust programming of distributed workflows
US8898422B2 (en) Workload-aware distributed data processing apparatus and method for processing large data based on hardware acceleration
CN104714847A (en) Dynamically Change Cloud Environment Configurations Based on Moving Workloads
CN111767041A (en) Method and apparatus for inserting buffers in a data flow graph
US8719752B1 (en) Hierarchical crosstalk noise analysis model generation
US10372856B2 (en) Optimizing constraint solving by rewriting at least one bit-slice constraint
WO2015029208A1 (en) Database management device, database management method, and storage medium
US8935643B2 (en) Parameter matching hotspot detection
JP6976064B2 (en) Data structure abstraction for model checking
JP2015513732A (en) Method and apparatus for coordinating I / O channels on a virtual platform
US20140359544A1 (en) Layout re-decomposition for multiple patterning layouts
CN103646031A (en) Method for contrasting coordinate data of DRC files
US11030362B2 (en) Modeling and cooperative simulation of systems with interdependent discrete and continuous elements
CN116069726B (en) Management method, equipment and medium of integrated circuit design library
US10635444B2 (en) Shared compare lanes for dependency wake up in a pair-based issue queue
US6862600B2 (en) Rapid parameter passing between multiple program portions for efficient procedural interaction with minimum calls and/or call backs
CN107315863B (en) Layout optimization method and device, terminal and storage medium
US20180373658A1 (en) Conflict resolution on gpio pin multiplexing
WO2011094030A2 (en) Zone-based optimization framework
US7149995B2 (en) Graphical interface to layout processing components and connections
WO2020024887A1 (en) Graph functional dependency checking
US7945433B2 (en) Hardware simulation accelerator design and method that exploits a parallel structure of user models to support a larger user model size
US20240070361A1 (en) Circuit analysis method, circuit analysis device, and circuit analysis system
KR102315126B1 (en) Method and apparatus for identifying normalization violated attributes

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19957465

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19957465

Country of ref document: EP

Kind code of ref document: A1