US8775989B2 - Computer-aided design system and methods thereof for merging design constraint files across operational modes - Google Patents
Computer-aided design system and methods thereof for merging design constraint files across operational modes Download PDFInfo
- Publication number
- US8775989B2 US8775989B2 US13/178,607 US201113178607A US8775989B2 US 8775989 B2 US8775989 B2 US 8775989B2 US 201113178607 A US201113178607 A US 201113178607A US 8775989 B2 US8775989 B2 US 8775989B2
- Authority
- US
- United States
- Prior art keywords
- merged
- constraints
- design
- design constraints
- file
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
Definitions
- SDC Synopsys® Design Constraints
- the SDC format is based on the tool command language (Tel).
- Tel tool command language
- EDA electronic design automation
- a third party tool uses a SDC description it typically communicates with other tools through the SDC format as an interface, that is, it both receives a SDC format at its input and then provides an SDC format at its output.
- each functional or test mode to be modeled there is provided its respective SDC file that is used for the purpose of synthesis, static timing analysis, and implementation of the design.
- the designers of the design will typically attempt to optimize the design for each mode of operation despite of the conflicting requirements that may be presented by the designers.
- a design is considered completed once all the operation modes have been tested and validated. This is of course a time consuming and error-prone process.
- An exemplary method for merging a plurality of design constraints files of a design of an integrated circuit (IC) designed using a computer aided design (CAD) system includes: receiving the plurality of design constraints files from the CAD system; merging the plurality of design constraints files into a merged design constraints file based on at least a merging rule such that the merged design constraints file contains a pessimistic constraints set for the IC; and storing the merged design constraints file in a memory of the CAD system, wherein the design of the IC can be verified using the merged design constraints file instead of the plurality of design constraints files.
- a non-transitory computer readable medium having stored thereon instructions for causing one or more processing units to execute the above method is also provided.
- CAD computer aided design
- the system includes a memory in which a plurality of design constraints files of the IC are stored; and a central processing unit (CPU) which executes instructions for merging the plurality of design constraints files of the IC, based on at least a merging rule, into a merged constraints file, the merged filed including a pessimistic constraints set for the IC, wherein design of the IC can be verified using the merged design constraints file instead of the plurality of design constraints files.
- CPU central processing unit
- FIG. 1 is a block diagram of an exemplary system in accordance with the present disclosure
- FIG. 2 is an exemplary flowchart depicting the operation of the exemplary system for merging a plurality of SDCs
- FIG. 3 is an exemplary flowchart depicting the process of equivalency checking of a single mode SDC with a merged mode SDC in accordance with an exemplary implementation
- FIG. 4 is a block diagram of a first example of clocks converging on a multiplexer
- FIG. 5 is a block diagram of a second example of clocks converging on a multiplexer
- FIG. 6 is a block diagram of a third example of clocks converging on a multiplexer
- FIG. 1 depicts an exemplary and non-limiting block diagram of the system 100 implemented in accordance with the principles of the present disclosure.
- SDC files 110 are provided to a SDC mode merge and verify unit (MMVU) 120 , the operation of which is explained in greater detail herein below.
- MMVU 120 SDC mode merge and verify unit
- the output of the MMVU 120 is a merged SDC file 130 that has the most pessimistic constraint such that it cannot under-constraint any path or design object any more than the individual SDC mode of any of the files 110 (corresponds to any one of the files 110 - 1 through 110 - n ).
- FIG. 2 shows an exemplary and non-limiting flowchart 200 of the operation of the system 100 for merging a plurality of SDCs 110 .
- S 210 an SDC file is received from the plurality of SDC files 110 .
- S 220 the received SDC file is merged with previously merged SDC files as further explained herein below.
- S 230 it is checked whether additional SDC files 110 are to be merged and if so execution continues with S 210 ; otherwise, execution continues with S 240 .
- the merged SDC file that contains the consolidated SDC information that represents a hypothetical mode which covers all of the timing scenarios of the individual mode is output.
- the process of merging may indicate what has been merged, what has been dropped, and where conflicts exist that cannot be merged.
- FIG. 3 depicts an exemplary and non-limiting flowchart 300 of the process of equivalency checking of a single mode SDC with a merged mode SDC in accordance with an exemplary implementation.
- S 310 the merged SDC file, for example merged SDC file 130 , is received.
- S 320 a single mode SDC file, for example SDC 110 - 1 , is received.
- S 330 it is checked that the constraints of the single mode SDC file, for example SDC 110 - 1 , are included in the merged SDC 130 and are not under-constrained.
- S 340 if the verification is successful then execution continues with S 360 ; otherwise, execution continues with S 350 where an error message is added to a report and the execution continues with S 360 .
- S 360 it is checked whether an additional single mode SDC file 110 is to be checked and if so execution continues with S 320 ; otherwise, execution continues with S 370 .
- a report is generated which may either be a clean report, i.e., the merged SDC file is found to have properly merged all the constraints of the individual mode SDCs 110 , or otherwise errors are reported denoting the specific SDC files 110 that have been found not to be properly covered by the merged SDC file 130 . It would be appreciated by those of ordinary skill in the art that while the nature of a flowchart description seems to denote serial processing it is possible to fully or partially have parallel processing without departing from the spirit of the present disclosure.
- the merged SDC 130 contains the most pessimistic constraints, hence, if constraints set in different modes are not the same, the one that is the most pessimistic is selected for the merged SDC 130 , so that it does not under constraint the path any more than the individual modes. In the case where constraints are conflicting they may not be included in the merged SDC 130 .
- Clocks are considered the same or similar if their respective periods are close within some predefined tolerance, they have the same unateness, positive or negative edge triggered, applied on the same object, or applied on an equivalent object driving the same set of flip-flops (FFs). Clocks that are determined to be the same or similar can be merged into a single clock and the period which is smallest is selected for the merged clock.
- FIG. 4 depicts a first exemplary and non-limiting block diagram 400 of clocks clk 1 and clk 2 converging on a multiplexer 410 .
- the multiplexed clock at the output of multiplexer 410 drives two FFs, 420 and 440 , where the output of FF 420 is the input to combinational logic 430 the output of which is input to the FF 440 .
- mode 1 can have the sel signal value set/propagated to ‘0’ while in mode 2 the sel signal is set/propagated to ‘1’.
- the merged mode SDC will have the clk 1 definition from mode 1 and clk 2 definition from mode 2 .
- set_clock_group logically_exclusive between clk 1 and clk 2
- the SDC for Mode 1 and Mode 2 are as follows:
- a real-world analogy of case A is provided next.
- a device has a camera and an mp3 player which require different clocks but can only work one at a time. That is, a clock will be supplied to only one of the camera and mp3 player at any given time.
- the design team in charge of the camera will provide the constraints for the camera clock, say clk 1 .
- the design team in charge of the mp3 player will provide the constraints for the mp3 clock, say clk 2 .
- Each of the design teams will provide an SDC file for the element they were in charge of.
- the SDC files for the camera and the mp3 must be merged.
- the set_case_analysis on sel command will be present in each of the two SDC files. If we simply merge the two SDC files, that would create set_case_analysis on sel for each of the clocks, clk 1 and clk 2 but would not capture the actual implementation, which is that clk 1 and clk 2 form a logically exclusive group and are selectively output.
- the command set_clock_group—logically_exclusive covers this actual implementation and is the more pessimistic constraint compared to set_case_analysis on sel.
- mode 1 and mode 2 may have the sel signal set/propagated to ‘0’.
- the merged mode SDC for case B it is necessary to resolve the clk 1 definition for same/similar/different clocks as explained herein above.
- the clk 2 is either dropped or its definition is resolved for same/similar/different clocks as explained hereinabove.
- the following commands may then be set in the merged SDC file:
- set_clock_group logically_execlusive between resolved clk 1 and resolved clk 2
- set_clock_group logically_exclusive between clk 1 and resolved clk 2
- FIG. 5 depicts a second exemplary and non-limiting block diagram 500 of clocks converging on a multiplexer 510 .
- the multiplexed clocks clk 1 and clk 2 drive FFs 520 and 540 .
- the output of FF 520 is connected to a combinational logic 530 , the output of which is connected to the input of FF 540 .
- the clock clk 1 drives the FF 550 and the clock clk 2 drives FF 570 .
- the output of FF 550 is connected to a combinational logic 560 , the output of which is connected to the input of FF 570 .
- the circuit 500 can be handled similarly to the circuit 400 described with respect of FIG. 4 where two original SDC Mode 1 and Mode 2 are merged into a a merged SDC file as described below:
- FIG. 6 depicts a third exemplary and non-limiting block diagram 600 of clocks converging on multiplexers 610 and 650 .
- the clocks clk 1 and clk 2 converge in multiplexer 610 and drive FF 620 .
- the clocks clk 3 and clk 4 converge in multiplexer 650 and drive FF 640 .
- Both multiplexers 610 and 650 are controlled by a single select signal sel.
- the output of FF 620 is connected to combinational logic 630 , the output of which is connected to the input of FF 640 .
- the clocks are defined in all modes and that in mode 1 sel is set to ‘0’ while in mode 2 sel is set to ‘1’.
- clk 1 and clk 2 are used from mode 1 and clk 2 and clk 4 are used from mode 2 .
- set_clock_group logicly_exclusive between ⁇ clk 2 , clk 4 ⁇ and ⁇ clk 1 , clk 3 ⁇
- case G it is assumed the the clocks are defined in all modes, however no set_case_analysis is defined. In such a case it is necessary to resolve the clocks clk 1 , clk 2 , clk 3 and clk 4 as explained hereinabove for the merged SDC file. In addition the command.
- set_clock_group logically_exclusive between clk 1 and clk 4
- set_clock_group logically_exclusive between clk 2 and clk 3
- generated clocks are either the same or similar to the clocks that have generated them when they are set on the same object or are set on equivalent objects driving the same set of FFs, or if they have the same divide_by or multiply_by factor.
- generated clocks are treated similar to original clocks of the circuit.
- the generated clock is to be included in the same set_clock_group. For example, if in mode 1 there are clk 1 and gclk 1 and in mode 2 there are clk 1 ′ and gclk 1 ′ then in the merged mode of the merged SDC the following command should be used:
- Merging of exceptions is another aspect of the process of merging single mode SDC files into a merged SDC file.
- clock-to-clock false paths i.e., a timing exception set between two FFs driven by two clocks, which may be synchronous or asynchronous
- all such paths should be retained in the merged SDC file as is with any appropriate clock name modification on account of merging.
- False paths may also be present in non-clock to non-clock path, clock to non-clock path and non-clock to clock path.
- a non-clock can be between port/pin to register, register to port/pin, port/pin to port/pin or register to register.
- a false path is defined in operation mode 1 and is missing in mode 2 .
- the false path is to be dropped from the merged SDC file.
- MCP multi-cycle path
- the MCP is the one to be retained in the merged SDC file.
- M 1 there is a false path in mode M 1 and set_max_delay/set_min_delay in mode 2 .
- the set_max_delay/set_min_delay is to be retained in the merged SDC file.
- MCPs There are also several cases involving MCPs.
- K a MCP is defined in mode 1 and missing in mode 2 . In this case the MCP is dropped from the merged SDC file.
- the MCP is present in both mode 1 and mode 2 but with a different multiplier. In this case the MCP is retained in the merged SDC file using the lower multiplication value.
- M mode 1 is a MCP and there is a set_max_delay/set_min_delay in mode 2 . In this case the more pessimistic constraint is to be retained.
- the principles of the present disclosure are implemented as hardware, firmware, software, or any combination thereof.
- the software is preferably implemented as an application program tangibly embodied on a program storage unit or tangible computer readable medium consisting of parts, or of certain devices and/or a combination of devices.
- the application program may be uploaded to, and executed by, a machine comprising any suitable architecture.
- the machine is implemented on a computer platform having hardware such as one or more central processing units (“CPUs”), a memory, and input/output interfaces.
- CPUs central processing units
- the computer platform may also include an operating system and microinstruction code.
- a non-transitory computer readable medium is any computer readable medium except for a transitory propagating signal.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
Description
-
- SDC Mode 1:
- create_clock—name clk1—period 10 [get_ports CLK1]
- set_case_analysis 0 inst_mux/sel
- SDC Mode 2:
- set_case_analysis 1 inst_mux/sel
- Merged SDC File:
- create_clock—name clk1—period 10 [get_ports CLK1]
- create_clock—name clk2—period 11 [get_ports CLK2]
- set_clock_group—logically_exclusive between—group clk1—group clk2
- SDC Mode 1:
-
- SDC Mode 1:
- create_clock—name clk1—period 10 [get_ports CLK1]
- set_case_analysis 0 inst_mux/sel
- SDC Mode 2:
- set_case_analysis 1 inst_mux/sel
- Merged SDC File:
- create_clock—name clk1—period 10 [get_ports CLK1]
- create_clock—name clk2—period 11 [get_ports CLK2]
- create_generated (gclk1) at output of mux (-combinational, divide_by—1) wrt clk1
- create_generated (gclk2) at output of mux (-combinational, divide_by—1) wrt clk2
- set_clock_group—logically_exclusive between gclk1 to gclk2
- SDC Mode 1:
Claims (21)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/178,607 US8775989B2 (en) | 2011-07-08 | 2011-07-08 | Computer-aided design system and methods thereof for merging design constraint files across operational modes |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/178,607 US8775989B2 (en) | 2011-07-08 | 2011-07-08 | Computer-aided design system and methods thereof for merging design constraint files across operational modes |
Publications (2)
Publication Number | Publication Date |
---|---|
US20130014068A1 US20130014068A1 (en) | 2013-01-10 |
US8775989B2 true US8775989B2 (en) | 2014-07-08 |
Family
ID=47439432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/178,607 Active US8775989B2 (en) | 2011-07-08 | 2011-07-08 | Computer-aided design system and methods thereof for merging design constraint files across operational modes |
Country Status (1)
Country | Link |
---|---|
US (1) | US8775989B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10839126B1 (en) | 2019-04-12 | 2020-11-17 | Dialog Semiconductor (Uk) Limited | Tools and methods for selection of relative timing constraints in asynchronous circuits, and asynchronous circuits made thereby |
US11222155B1 (en) * | 2020-04-13 | 2022-01-11 | Synopsys, Inc. | Method and apparatus for reducing pessimism of graph based static timing analysis |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2019222492B2 (en) * | 2018-02-15 | 2024-10-24 | Abiomed, Inc. | Expandable introducer sheath for medical device |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6311317B1 (en) | 1999-03-31 | 2001-10-30 | Synopsys, Inc. | Pre-synthesis test point insertion |
US6877146B1 (en) | 2001-06-03 | 2005-04-05 | Cadence Design Systems, Inc. | Method and apparatus for routing a set of nets |
US6957403B2 (en) | 2001-03-30 | 2005-10-18 | Syntest Technologies, Inc. | Computer-aided design system to automate scan synthesis at register-transfer level |
US20080077900A1 (en) * | 2006-09-22 | 2008-03-27 | Nahmsuk Oh | Generation of engineering change order (ECO) constraints for use in selecting ECO repair techniques |
US7370309B2 (en) * | 2005-10-05 | 2008-05-06 | Lsi Logic Corporation | Method and computer program for detailed routing of an integrated circuit design with multiple routing rules and net constraints |
US7448007B2 (en) * | 2006-07-14 | 2008-11-04 | International Business Machines Corporation | Slew constrained minimum cost buffering |
US20080301598A1 (en) * | 2007-05-31 | 2008-12-04 | Atrenta, Inc. | method for checking constraints equivalence of an integrated circuit design |
US20090051698A1 (en) * | 2007-08-22 | 2009-02-26 | Boose Molly L | Method and apparatus for identifying differences in vector graphic files |
US7562321B2 (en) | 2005-12-12 | 2009-07-14 | Nec Laboratories America, Inc. | Method and apparatus for structured ASIC test point insertion |
US7913208B2 (en) | 2007-10-11 | 2011-03-22 | International Business Machines Corporation | Optimal simplification of constraint-based testbenches |
-
2011
- 2011-07-08 US US13/178,607 patent/US8775989B2/en active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6311317B1 (en) | 1999-03-31 | 2001-10-30 | Synopsys, Inc. | Pre-synthesis test point insertion |
US6957403B2 (en) | 2001-03-30 | 2005-10-18 | Syntest Technologies, Inc. | Computer-aided design system to automate scan synthesis at register-transfer level |
US7331032B2 (en) | 2001-03-30 | 2008-02-12 | Syntest Technologies, Inc. | Computer-aided design system to automate scan synthesis at register-transfer level |
US7904857B2 (en) | 2001-03-30 | 2011-03-08 | Syntest Technologies, Inc. | Computer-aided design system to automate scan synthesis at register-transfer level |
US6877146B1 (en) | 2001-06-03 | 2005-04-05 | Cadence Design Systems, Inc. | Method and apparatus for routing a set of nets |
US7370309B2 (en) * | 2005-10-05 | 2008-05-06 | Lsi Logic Corporation | Method and computer program for detailed routing of an integrated circuit design with multiple routing rules and net constraints |
US7562321B2 (en) | 2005-12-12 | 2009-07-14 | Nec Laboratories America, Inc. | Method and apparatus for structured ASIC test point insertion |
US7448007B2 (en) * | 2006-07-14 | 2008-11-04 | International Business Machines Corporation | Slew constrained minimum cost buffering |
US20080077900A1 (en) * | 2006-09-22 | 2008-03-27 | Nahmsuk Oh | Generation of engineering change order (ECO) constraints for use in selecting ECO repair techniques |
US20080301598A1 (en) * | 2007-05-31 | 2008-12-04 | Atrenta, Inc. | method for checking constraints equivalence of an integrated circuit design |
US7882483B2 (en) | 2007-05-31 | 2011-02-01 | Atrenta, Inc. | Method for checking constraints equivalence of an integrated circuit design |
US20090051698A1 (en) * | 2007-08-22 | 2009-02-26 | Boose Molly L | Method and apparatus for identifying differences in vector graphic files |
US7913208B2 (en) | 2007-10-11 | 2011-03-22 | International Business Machines Corporation | Optimal simplification of constraint-based testbenches |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10839126B1 (en) | 2019-04-12 | 2020-11-17 | Dialog Semiconductor (Uk) Limited | Tools and methods for selection of relative timing constraints in asynchronous circuits, and asynchronous circuits made thereby |
US11222155B1 (en) * | 2020-04-13 | 2022-01-11 | Synopsys, Inc. | Method and apparatus for reducing pessimism of graph based static timing analysis |
Also Published As
Publication number | Publication date |
---|---|
US20130014068A1 (en) | 2013-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10354042B2 (en) | Selectively reducing graph based analysis pessimism | |
US8856706B2 (en) | System and method for metastability verification of circuits of an integrated circuit | |
US8607173B2 (en) | Hierarchical bottom-up clock domain crossing verification | |
JP2015524589A (en) | Relative timing characterization | |
US7882483B2 (en) | Method for checking constraints equivalence of an integrated circuit design | |
US8402405B1 (en) | System and method for correcting gate-level simulation accuracy when unknowns exist | |
US8429580B2 (en) | Method for preparing for and formally verifying a modified integrated circuit design | |
US20080201671A1 (en) | Method for generating timing exceptions | |
US10248746B1 (en) | Method and apparatus for estimating ideal power of an integrated circuit design | |
CN105447215B (en) | digital circuit design method and related system | |
US9305125B2 (en) | Integrated circuit design timing path verification tool | |
US8775989B2 (en) | Computer-aided design system and methods thereof for merging design constraint files across operational modes | |
US9483594B2 (en) | Reset verification | |
US10162917B1 (en) | Method and system for implementing selective transformation for low power verification | |
US10657210B2 (en) | Slack time recycling | |
US8285527B2 (en) | Method and system for equivalence checking | |
US8959467B2 (en) | Structural rule analysis with TCL scripts in synthesis or STA tools and integrated circuit design tools | |
US12073159B2 (en) | Computing device and method for detecting clock domain crossing violation in design of memory device | |
US10380295B1 (en) | Methods, systems, and articles of manufacture for X-behavior verification of an electronic design | |
US9710580B2 (en) | Timing analysis method for digital circuit design and system thereof | |
Brinkmann et al. | Formal verification—the industrial perspective | |
US10726180B1 (en) | Systems and methods for fixing X-pessimism from uninitialized latches in gate-level simulation | |
Plassan et al. | Improving the efficiency of formal verification: the case of clock-domain crossings | |
Kallel et al. | Monitoring transaction level SystemC models using a generic and aspect-oriented framework | |
US12197840B2 (en) | Techniques for modeling and verification of convergence for hierarchical domain crossings |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ATRENTA, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GANGADHARAN, SRIDHAR;GOEL, MANISH;HANDA, AMIT;REEL/FRAME:026561/0086 Effective date: 20110624 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: ATRENTA INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:SILICON VALLEY BANK;REEL/FRAME:036584/0644 Effective date: 20150825 |
|
AS | Assignment |
Owner name: SYNOPSYS, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ATRENTA INC.;REEL/FRAME:036687/0290 Effective date: 20150922 |
|
FEPP | Fee payment procedure |
Free format text: PAT HOLDER NO LONGER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: STOL); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551) Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |