US20070276645A1 - Power modelling in circuit designs - Google Patents
Power modelling in circuit designs Download PDFInfo
- Publication number
- US20070276645A1 US20070276645A1 US11/811,680 US81168007A US2007276645A1 US 20070276645 A1 US20070276645 A1 US 20070276645A1 US 81168007 A US81168007 A US 81168007A US 2007276645 A1 US2007276645 A1 US 2007276645A1
- Authority
- US
- United States
- Prior art keywords
- power
- circuit
- message
- messages
- model
- 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.)
- Abandoned
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
Definitions
- the present invention generally relates to simulation, and more particularly to modelling power of a simulated circuit.
- the typical design process begins with a software program that describes the behavior or functionality of a circuit.
- This software program is written in a hardware description language (HDL) that defines a behavior to be performed with limited implementation details.
- HDL hardware description language
- Logic synthesis tools convert the HDL program into a gate netlist description.
- the RTL description is used to verify functionality and ultimately generate a netlist that includes a list of components in the circuit and the interconnections between the components. This netlist is used to create the physical integrated circuit.
- IP Intellectual Property
- Standards for such cores are currently evolving. Ideally, they should be reusable, pre-characterized and pre-verified. But it is often desirable to change the design to create the next generation. For example, as fabrication technology changes, it is desirable to convert or migrate the design to the new process parameters. For example, an IP core may be designed and tested for 90 nm technology, but it is desirable to convert the IP core to a new process of 60 nm technology. Or it may be desirable to update the design and incorporate changes in order to create the next generation design.
- simulation In order to test and explore such changes in the design, simulation must be performed, which is very time consuming. A few seconds of real-time simulation can take weeks or even months. If the simulation results are not desirable, then the design process must start over again by changing the high-level code and re-simulating.
- TLM Transaction Level Modeling
- ESL Electronic System Level
- RTL Register Transfer Level
- Power consumption is another important aspect of design exploration.
- One technique is to estimate power statistically based on gate count and technology parameters.
- Another technique is to estimate power based on average activity extracted from simulation. More accurate techniques for power determinations are based on netlist and place and route manipulations.
- physical power solutions generally reduce power through netlist and physical manipulations. Such solutions focus on gate and interconnect levels and lack any functional or architecture-level perspective to support power management at the system level.
- Some ESL power solutions focus on software and algorithmic optimizations.
- a system and method for generating a high-level power model of a circuit from a lower level description, such as RTL or HDL.
- simulation data is converted into a series of messages or transactions. Power is then determined on a per message or per transaction basis.
- an abstract power model is generated using a neural network.
- the neural network generates a system of weighted equations. Input patterns are used to calculate a difference between the actual output values (using the equations) and desired values (using simulated data). The weights of the equations can then be modified to obtain an accurate power model.
- FIG. 1 is a high-level flowchart of a method for determining power of a circuit based on a per transaction or per message basis.
- FIG. 2 is a more detailed flowchart of a method for generating a power model of a circuit.
- FIG. 3 is a hardware diagram of a system used to convert the description of the circuit into transactions.
- FIG. 4 is a detailed example showing simulated signal data of the circuit description on numerous hardware lines.
- FIG. 5 is a detailed example of a state machine for some of the available transactions.
- FIG. 6 is a detailed flowchart of a method for converting the simulated circuit description into transactions.
- FIG. 7 is a flowchart of a method for converting a series of transactions into a super-transaction representation.
- FIG. 8 shows a transaction-based view of the simulation data that may be displayed to the user.
- FIG. 9 is a flowchart of a method for performing power extraction.
- FIG. 10 is a flowchart of a method for simulating a netlist during the power extraction of FIG. 9 .
- FIG. 11 is a flowchart of a method performed by a neural network for generating a system of equations approximating the power of a circuit.
- FIG. 12 is a hardware diagram of a system for generating the power model.
- FIG. 13 shows a network that may be used to implement the system and method.
- FIG. 14 is an exemplary flowchart of a method for implementation over the network of FIG. 13 .
- FIG. 1 shows a high-level flowchart for generating a power model of a circuit.
- simulation data is received.
- the simulated data (e.g., in VCD format (Value Change Dump)) is a result of simulation of the circuit that is being modeled. Any desired simulator may be used, such as ModelSim®, available from Mentor Graphics Corporation.
- the simulation data is converted into a series of messages or transactions. This conversion process is explained in detail in FIGS. 3-8 , but basically the system maps signal patterns into messages using pre-defined protocols (e.g., AMBA, PCI, etc.). Then the messages are converted to transactions (e.g., READ). Either the message or transaction level may be used in determining power.
- pre-defined protocols e.g., AMBA, PCI, etc.
- power of the circuit is determined on a per message or per transaction basis. As described further below, the power determined may be used to create a power model of the circuit.
- the power model is described further in FIGS. 9-12 , but generally the power model is at a high level of abstraction, such as a transaction level model (TLM).
- TLM transaction level model
- the low-level description generally includes details at the signal level, while the TLM uses high-level functions and equations to calculate power of messages or transactions based on inputs and is not concerned with the device-level description of the circuit.
- FIG. 2 provides more detail of the overall flow and is a useful to understand the organization of the other figures.
- process box 20 the simulation data is received, similar to that already described in FIG. 1 .
- process box 22 a series of messages or transactions are generated ( FIGS. 3-8 ).
- process box 24 power extraction is performed wherein particular messages are input and traced through gates in the circuit so that power can be determined on a per message or per transaction basis. The power extraction is further described in FIGS. 9 and 10 .
- a power model is learned. The learning is described further in FIG. 11 , but generally “learning” is a standard term used in the industry, especially relating to neural networks.
- FIG. 3 shows a hardware diagram of a system 38 for converting a circuit description to a transaction level.
- a storage device 40 of any desired type has stored thereon the circuit design in HDL or any other desired language (e.g., RTL) that may be used to describe circuits.
- the low-level description generally includes details at the signal level.
- a compiler 42 compiles the design and the protocol library 44 .
- the compiler 42 may be any desired compiler and is usually included as part of a simulator package.
- the protocol library 44 includes messages and transactions associated with a protocol used by the circuit. A sequence of messages form a transaction. Examples of messages include a request and an acknowledge of the bus, whereas a transaction is a complete operation, such as any of a variety of types of Read or Write transactions or control or setup transactions.
- a simulation kernel 46 simulates the compiled design in a well-known manner, as already described. The simulation kernel 46 outputs the simulation data 48 in any desired format. Box 48 can also represent a pre-simulated design data (VCD format).
- a message recognition module 50 reads the simulation data 48 and analyzes the data to convert it to messages of the protocol stored in the protocol library 44 .
- FIGS. 4-6 describe this conversion more thoroughly, but generally switching signals of the simulation are compared (during various time slices) to messages within the protocol library 44 to determine what message is being processed during a particular time slice. The messages associated with the switching signals during each time slice are then stored to convert the switching signals into messages.
- a transaction recognition module 52 reads the messages determined by the message recognition module 50 and converts the messages into transactions using a comparison of a series of messages to predetermined messages within the protocol library 44 . If a match is found, then the transaction recognition module stores the series of messages as a transaction. The result is that the messages are converted into a series of transactions.
- a transaction sequence recognition module 54 converts multiple transactions into a single super-transaction sequence. For example, several Writes can be converted into a single control operation. This conversion from multiple transactions to a super-transaction sequence is described further below in relation to FIG. 7 . If desired, the transaction sequence recognition module 54 may be bypassed or omitted, so that the transactions are output directly. Results 56 of the conversion are output onto a storage medium or a display.
- the simulated circuit description is taken to a higher level of abstraction, as the simulation data is converted first to messages, then to transactions, and finally to transaction sequences.
- the transaction sequences are at a higher level of abstraction.
- the compiler 42 , simulator kernel 46 , and modules 50 , 52 , 54 may all be run on the same computer. Alternatively, the circuit description may be compiled and simulated in a different location so that the resultant simulation data 48 is merely on a storage medium to be input into the message recognition module 50 . In such a case, as shown at 58 , it is desirable that the some of the protocol data from the protocol library 44 is incorporated into the simulation data in a pre-processing step.
- FIG. 4 shows a detailed example of part of the simulated signal data 48 .
- Various signal data 70 on hardware lines are shown including a clock line 72 , a read/write line 74 , a bus request line 76 , a ready line 78 , address lines 80 , and data lines 82 . Simulation is also carried out on many more hardware lines, which are not shown for convenience.
- the signals being simulated follow a predetermined protocol 84 .
- a protocol is a set of rules or standards designed to enable circuit elements to communicate together and exchange information with as little error as possible.
- the protocol 84 is made up of a plurality of transactions 85 , such as shown at 86 (i.e., transaction A) and at 88 (i.e., transaction B).
- a transaction is a discrete activity, such as a Read or Write operation that moves data from one place to another in the system.
- the transactions 86 , 88 are in turn made up of a series of messages 90 .
- transaction 86 is shown as including three messages, 92 , 94 , and 96 .
- a message is a smaller unit of information electronically transmitted from one circuit element to another to facilitate the transaction.
- Example messages include “request for bus”, “acknowledge”, “ready”, etc. Those skilled in the art will readily recognize that these are only examples of transactions and messages and others may be used.
- Each message is associated with a time-slice 98 , such as those shown at 100 , 102 , and 104 .
- the time-slices are based on the clock signal 72 .
- the hardware lines 70 are analyzed to determine the message being sent in correspondence with the transactions of the protocol, as further described below.
- Transaction 88 is similar to transaction 86 and need not be further described.
- FIG. 5 shows an example part of a state machine 120 stored within the protocol library 44 .
- Different states 122 are shown as numbered circles. Messages, such as those at 90 , are shown in boxes, and cause the state machine to move from one state to another. Transactions may be defined by a path through the state machine 120 that starts at an idle state 124 (state 0 ) and that ends at the same idle state, although those skilled in the art will recognize that the state machine 120 may be constructed in a variety of different formats.
- a read transaction 126 is made up of numbered states 0 , 1 , 2 , 3 , 4 and 5 . The read transaction 126 is completed upon return to the idle state from state 5 to state 0 , as shown by arrow 128 .
- a write transaction 130 is made up of numbered states 0 , 1 , 2 , 6 , 7 , 8 , 9 , and 10 .
- the write transaction 130 is completed upon return to the idle state from state 7 to state 0 , as shown by arrow 132 .
- FIG. 6 shows a flowchart of a method preformed by the message recognition module 50 and the transaction recognition module 52 in order to convert the simulation data into a transaction-based description.
- the simulated input data (see box 48 in FIG. 3 ) is received so that it may be used by the message recognition module 50 .
- Such simulation data is normally within a database.
- the analysis starts by monitoring the signal data 70 on the various hardware lines upon which messages are received.
- the protocol library 44 is read to access a state machine, such as state machine 120 , associated with the protocol.
- process box 154 in order to analyze a transaction, an assumption is made that the transaction starts from the idle state 124 .
- a time-slice of data is read corresponding to the clock signal on hardware line 72 .
- the data may be read starting with a time-slice 100 .
- the switching signals on the various hardware lines are read in order to be analyzed.
- the data read is analyzed by comparing the switching signals to known patterns of messages stored in the protocol library 44 .
- a bus request message changes the state of the state machine to state 1 .
- a bus request message has a particular pattern of signal data on the hardware lines, which is compared to a known pattern in the protocol library 44 .
- the message has been determined and is stored in process box 160 .
- the current state of the state machine is updated to reflect the change of state.
- the new state is state 1 after a bus request message is received.
- decision box 164 a determination is made whether the state machine has returned to the idle state. If yes, this indicates that a transaction is complete and the transaction is determined in process box 166 by comparing a sequence of the stored messages to a sequence of known messages in the protocol library 44 . The sequence of stored messages are those received from the start of the idle state until the state machine returned to the idle state.
- the transaction associated with those messages is easily obtained from the protocol library 44 .
- the determined transaction is then stored as indicated in process box 166 .
- decision box 168 a check is made whether all of the input simulated signal data has been analyzed by reading whether the database including the signal data is at the end. If yes, the method ends as shown at 170 . Otherwise, the method continues at process box 156 and the next time-slice is read (e.g., time-slice 102 ). Once the method ends, the database of signal data is converted into a series of transactions associated with the protocol found in the protocol database 44 .
- FIG. 7 shows a method implemented by the transaction sequence recognition module 54 (see FIG. 3 ). It may be desirable to group transactions together in order to display to a user the circuit at an even higher level of abstraction. For example, several write/read transactions can be shown as a single control transaction as opposed to individual transactions.
- a group of transactions is selected. For example, if there are many of the same type of transactions in sequence (e.g., Reads), such a sequence may be condensed.
- the selected group is compared to predetermined groups.
- decision box 204 a determination is made whether there is a match between the selected group and the predetermined groups.
- process box 206 the sequence of transactions is stored as a single transaction in order to convert the circuit description to an even higher level of abstraction.
- decision box 208 a check is made whether all of the transactions have been read. If yes, then the method ends at 210 . If not, then a new group of transactions is chosen at 212 , and the process starts over at process box 202 .
- FIG. 8 shows an example of a display showing the simulation data of FIG. 3 at a higher level of abstraction. Particularly, instead of signals, the simulation data is shown as a series of transactions. Write transactions, such as at 240 , are shown as dotted lines and read transactions, such as shown at 242 , are shown as solid lines. Throughput is shown along the Y-axis and time is indicated along the X-axis. Thicker lines generally mean there is a grouping of many transactions so close in time that at the current zoom level they cannot be distinguished. Of course, a zoom option may be used to focus on particular transactions. As can readily be seen, the view of FIG. 8 is much easier to read than that of FIG. 4 and allows the designer to obtain a better overall system view of the flow of data.
- FIG. 9 shows further details of the power extraction 24 .
- a technology library and model description are read.
- the technology library includes a set of gates and the physical characteristics of the gates (e.g., voltage, current, and power consumption).
- a variety of technology libraries may be used, but one possibility is the Synopsys® liberty® file.
- the model description is provided by the user and includes an interface of the circuit model describing the input/output ports, the inner state description of the circuit model that describes the internal states thereof, and the circuit HDL Netlist.
- the model description includes the model interface, the HDL netlist, and the lasting state description (including registers, buffers, etc.)
- the model netlist is converted to a netlist with special monitors inserted.
- Such a conversion can be accomplished by regenerating the HDL netlist or by using PLI code.
- the monitors are used later during simulation to help track messages as they pass through the circuit.
- a monitor can be simply a function call that is activated whenever a gate switches (output changes) during which the message ID and power are assigned.
- a netlist is simulated using a simulation sequence as a testbence.
- a VCD (Value Change Dump) sequence can be used as a testbence.
- the VCD sequence is a sequence of messages that are run back through the netlist including monitors in order to perform the tracing of how much power a message uses.
- FIG. 10 explains process box 264 in further detail.
- a power database is output with power data on a per message or per transaction basis. This power database is used in the learning process as the power data is passed through a neural network.
- FIG. 10 shows the simulation 264 ( FIG. 9 ) in further detail.
- each message type in each port is assigned with all the associated input signals.
- the simulation sequences include messages and signals associated with the messages are assigned to the input ports in order to apply the signals to the circuit.
- the input message is assigned a unique identification so that power may be tracked for that particular message.
- the signals associated with the message are applied to the circuit in simulation and as the messages propagate through the gates of the circuit, any gate that switches is marked with the message ID that caused the gate to switch (process box 286 ).
- power associated with the switched gate is assigned to the particular message ID that caused the gate to switch.
- instantaneous power can be calculated at any point as the accumulation of all power per message.
- power of all the gates having the same ID can be summed in order to determine power per message.
- Power per transaction can then easily be determined by adding the power of each message forming the transaction. This information is updated into the power database.
- the power model is based on accumulated dynamic power and non-active (leakage) power.
- the load is the load switching power.
- the cell is the cell internal switching power (short circuit).
- the leakage is the non-active power.
- FIG. 11 is a flowchart of a method for performing “leaming” 26 ( FIG. 2 ).
- the power database is used to create a system of weighted equations that represent the power behavior of the circuit.
- the inputs are analyzed in conjunction with power information to generate the equations so that in any given state a determination of an equation for power can be made.
- Such a generation of equations is well known in the art using standard techniques of neural networks.
- process box 302 input power patterns are applied to the generated system of equations to generate actual values produced by the equations.
- an error is calculated by using a difference between the actual values (process box 302 ) to the desired values (determined during simulation).
- process box 306 based on this difference, the weightings in the system of equations are modified in order to more closely match the desired values.
- decision box 308 a check is made whether the actual values generated by the system of equations are within an acceptable limit. If so, the flowchart is exited at 310 . If not, the flow returns to process box 302 in order to re-analyze the equations.
- FIG. 12 shows the overall system diagram for generating a power model at a higher level of abstraction so that power may be determined on a per message or per transaction basis.
- An HDL model file 320 is a description of the circuit.
- a synthesis engine 322 generates a gate netlist 324 . Instrumentation for inserting monitors, shown at 325 , inserts the appropriate monitors into the gate netlist to be used in simulation.
- a technology library 326 that includes the physical characteristics of the gates within the circuit is used by the synthesis engine in order to generate a gate netlist 324 .
- the place and route engine 328 actually performs placing and routing of the circuit components and connections between components. The place and route determination increases accuracy because once the circuit is in silicon, extra delays and capacitances usually exist.
- a simulator (not shown) generates simulation data 340 that is passed through a protocol extraction engine 342 to generate protocol data 344 (e.g., messages, transactions).
- protocol data 344 e.g., messages, transactions
- a converter 346 converts the messages or transactions back to signals for simulation in simulation kernel 348 .
- the simulation kernel 348 simulates the gate netlist and uses the special monitors to help track how the messages propagate through the simulated circuit.
- the output of the simulation kernel is passed to a power extraction engine 352 , which uses the simulated data, a power model template 350 , protocol data 344 , and the input from the technology library 326 to calculate and generate a database of power per message or transaction.
- the power model template includes the model description and receives the HDL file 320 .
- the information within the database is passed to a neural network 354 , which generates power functions based on a message or transaction basis and outputs a corresponding power model 355 .
- the neural network can be replaced with any other machine learning or statistical algorithm.
- a place and route incremental power engine 356 the power functions generated by the neural network 354 are corrected based on back-annotated place and route information from place and route engine 328 .
- the result is that RTL or HDL files and gate-level designs are converted to TLM equivalent models with accurate power and performance behavior.
- Such models can be simulated as-is to run pure performance analysis of a system, or can be plugged into TLM functional models and used to provide timing and power behavior during fully functional simulation.
- the power model is also hierarchical so that it can support a top-down approach where users can start with a high-level power model and gradually refine it along with implementation and the data that is available at each step downstream.
- One possible application includes having a power model associated with each IP core in a system. Instantaneous power of the overall system may be computed quickly. Moreover, an IP core can be removed or replaced and the affect on power may be visualized quickly.
- FIG. 13 shows that portions of the system may be applied to a distributed network, such as the Internet.
- the system also may be implemented without a network (e.g., a single computer).
- a server computer 400 may have an associated database 402 (internal or external to the server computer).
- the server computer is coupled to a network shown generally at 404 .
- One or more client computers, such as those shown at 408 and 410 are coupled to the network to interface with the server computer using a network protocol.
- FIG. 14 shows a flow diagram using the network of FIG. 13 .
- the circuit description is sent from a client computer, such as 408 , to the server computer 400 .
- the power of the circuit is derived, as previously described.
- the extracted power is used in a learning process in order to generate an abstract power model of the circuit.
- the results are sent though the network to the client computer 408 .
- the results are displayed to the user. It should be recognized that one or more of the process boxes may be performed on the client side rather than the server side, and vice versa.
- the system described maps actual power behavior up to the message or transaction levels where it can be budgeted and managed. At these levels, optimization can be traded with performance, while maintaining a high level of accuracy and speed.
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)
- Debugging And Monitoring (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
Description
- Priority is claimed to U.S. provisional patent application 60/748,957, filed Dec. 8, 2005, which is hereby incorporated by reference.
- The present invention generally relates to simulation, and more particularly to modelling power of a simulated circuit.
- The complexity of integrated circuits (ICs) being designed nowadays is continuously increasing and has resulted in complete system-on-chip (SoC) solutions. Even more, the complexity of such integrated systems is exploding thanks to advances in process fabrication. The limiting factor is now the ability to design, manage and verify such systems rather than the ability to fabricate them.
- The typical design process begins with a software program that describes the behavior or functionality of a circuit. This software program is written in a hardware description language (HDL) that defines a behavior to be performed with limited implementation details. Logic synthesis tools convert the HDL program into a gate netlist description. The RTL description is used to verify functionality and ultimately generate a netlist that includes a list of components in the circuit and the interconnections between the components. This netlist is used to create the physical integrated circuit.
- As SoC's are becoming larger, the only way to efficiently design such dense SoC's, both from the design complexity and time-to-market aspects, is by embedding Intellectual Property (IP) cores. Standards for such cores are currently evolving. Ideally, they should be reusable, pre-characterized and pre-verified. But it is often desirable to change the design to create the next generation. For example, as fabrication technology changes, it is desirable to convert or migrate the design to the new process parameters. For example, an IP core may be designed and tested for 90 nm technology, but it is desirable to convert the IP core to a new process of 60 nm technology. Or it may be desirable to update the design and incorporate changes in order to create the next generation design.
- In order to test and explore such changes in the design, simulation must be performed, which is very time consuming. A few seconds of real-time simulation can take weeks or even months. If the simulation results are not desirable, then the design process must start over again by changing the high-level code and re-simulating.
- Because of such delays in simulation, designers are beginning to move the design process to a higher level of abstraction (meaning less focus on design details). At the higher level of abstraction, design exploration can be performed to evaluate which performance can be achieved, which parts to use, etc. The preferable higher level of abstraction is called Transaction Level Modeling (TLM), which refers to the evolving design and verification space called Electronic System Level (ESL) with methodologies that begin at a higher level of abstraction than the current mainstream Register Transfer Level (RTL). The main ESL design language SystemC, is driven from C/C++ rather than from hardware languages like Verilog and VHDL.
- Power consumption is another important aspect of design exploration. There are three main power ingredients: static, dynamic, and internal. There are a variety of techniques currently available in order to analyze power. One technique is to estimate power statistically based on gate count and technology parameters. Another technique is to estimate power based on average activity extracted from simulation. More accurate techniques for power determinations are based on netlist and place and route manipulations. In any event, there are two main power tool types on the market today: physical power solutions and ESL power solutions. Physical power solutions generally reduce power through netlist and physical manipulations. Such solutions focus on gate and interconnect levels and lack any functional or architecture-level perspective to support power management at the system level. Some ESL power solutions focus on software and algorithmic optimizations. There are some techniques that statistically characterize the power consumption of system tasks. However, the drawback is that they often assume statically scheduled systems and do not account for dynamic effects and are not accurate as data power is estimated. Other techniques are based on system simulation, with low-level power models of individual components, memories and system busses. Such techniques are computationally expensive making them unsuitable for system-level design space exploration.
- A system and method is disclosed for generating a high-level power model of a circuit from a lower level description, such as RTL or HDL.
- In one aspect, simulation data is converted into a series of messages or transactions. Power is then determined on a per message or per transaction basis.
- In another aspect, an abstract power model is generated using a neural network. The neural network generates a system of weighted equations. Input patterns are used to calculate a difference between the actual output values (using the equations) and desired values (using simulated data). The weights of the equations can then be modified to obtain an accurate power model.
- These features and others of the described embodiments will be more readily apparent from the following detailed description, which proceeds with reference to the accompanying drawings.
-
FIG. 1 is a high-level flowchart of a method for determining power of a circuit based on a per transaction or per message basis. -
FIG. 2 is a more detailed flowchart of a method for generating a power model of a circuit. -
FIG. 3 is a hardware diagram of a system used to convert the description of the circuit into transactions. -
FIG. 4 is a detailed example showing simulated signal data of the circuit description on numerous hardware lines. -
FIG. 5 is a detailed example of a state machine for some of the available transactions. -
FIG. 6 is a detailed flowchart of a method for converting the simulated circuit description into transactions. -
FIG. 7 is a flowchart of a method for converting a series of transactions into a super-transaction representation. -
FIG. 8 shows a transaction-based view of the simulation data that may be displayed to the user. -
FIG. 9 is a flowchart of a method for performing power extraction. -
FIG. 10 is a flowchart of a method for simulating a netlist during the power extraction ofFIG. 9 . -
FIG. 11 is a flowchart of a method performed by a neural network for generating a system of equations approximating the power of a circuit. -
FIG. 12 is a hardware diagram of a system for generating the power model. -
FIG. 13 shows a network that may be used to implement the system and method. -
FIG. 14 is an exemplary flowchart of a method for implementation over the network ofFIG. 13 . -
FIG. 1 shows a high-level flowchart for generating a power model of a circuit. Inprocess box 10, simulation data is received. The simulated data (e.g., in VCD format (Value Change Dump)) is a result of simulation of the circuit that is being modeled. Any desired simulator may be used, such as ModelSim®, available from Mentor Graphics Corporation. Inprocess box 12, the simulation data is converted into a series of messages or transactions. This conversion process is explained in detail inFIGS. 3-8 , but basically the system maps signal patterns into messages using pre-defined protocols (e.g., AMBA, PCI, etc.). Then the messages are converted to transactions (e.g., READ). Either the message or transaction level may be used in determining power. Finally, inprocess box 14, power of the circuit is determined on a per message or per transaction basis. As described further below, the power determined may be used to create a power model of the circuit. The power model is described further inFIGS. 9-12 , but generally the power model is at a high level of abstraction, such as a transaction level model (TLM). The low-level description generally includes details at the signal level, while the TLM uses high-level functions and equations to calculate power of messages or transactions based on inputs and is not concerned with the device-level description of the circuit. -
FIG. 2 provides more detail of the overall flow and is a useful to understand the organization of the other figures. Inprocess box 20, the simulation data is received, similar to that already described inFIG. 1 . Inprocess box 22, a series of messages or transactions are generated (FIGS. 3-8 ). Inprocess box 24, power extraction is performed wherein particular messages are input and traced through gates in the circuit so that power can be determined on a per message or per transaction basis. The power extraction is further described inFIGS. 9 and 10 . Inprocess box 26, a power model is learned. The learning is described further inFIG. 11 , but generally “learning” is a standard term used in the industry, especially relating to neural networks. For example, an article entitled “Conditional Distribution Learning with Neural Networks”, IEEE Signal Processing 1997, written by Tulay Hadah, Xiao Liu, and Kemal Sonmer describes some aspects of “learning” using neural networks. Finally, inprocess box 28, the power model is output at a higher level of abstraction. -
FIG. 3 shows a hardware diagram of asystem 38 for converting a circuit description to a transaction level. Astorage device 40 of any desired type has stored thereon the circuit design in HDL or any other desired language (e.g., RTL) that may be used to describe circuits. The low-level description generally includes details at the signal level. - A
compiler 42 compiles the design and theprotocol library 44. Thecompiler 42 may be any desired compiler and is usually included as part of a simulator package. Theprotocol library 44 includes messages and transactions associated with a protocol used by the circuit. A sequence of messages form a transaction. Examples of messages include a request and an acknowledge of the bus, whereas a transaction is a complete operation, such as any of a variety of types of Read or Write transactions or control or setup transactions. Asimulation kernel 46 simulates the compiled design in a well-known manner, as already described. Thesimulation kernel 46 outputs thesimulation data 48 in any desired format.Box 48 can also represent a pre-simulated design data (VCD format). - A
message recognition module 50 reads thesimulation data 48 and analyzes the data to convert it to messages of the protocol stored in theprotocol library 44.FIGS. 4-6 describe this conversion more thoroughly, but generally switching signals of the simulation are compared (during various time slices) to messages within theprotocol library 44 to determine what message is being processed during a particular time slice. The messages associated with the switching signals during each time slice are then stored to convert the switching signals into messages. - A
transaction recognition module 52 reads the messages determined by themessage recognition module 50 and converts the messages into transactions using a comparison of a series of messages to predetermined messages within theprotocol library 44. If a match is found, then the transaction recognition module stores the series of messages as a transaction. The result is that the messages are converted into a series of transactions. - A transaction
sequence recognition module 54 converts multiple transactions into a single super-transaction sequence. For example, several Writes can be converted into a single control operation. This conversion from multiple transactions to a super-transaction sequence is described further below in relation toFIG. 7 . If desired, the transactionsequence recognition module 54 may be bypassed or omitted, so that the transactions are output directly.Results 56 of the conversion are output onto a storage medium or a display. - In any event, the simulated circuit description is taken to a higher level of abstraction, as the simulation data is converted first to messages, then to transactions, and finally to transaction sequences. The transaction sequences are at a higher level of abstraction.
- The
compiler 42,simulator kernel 46, andmodules resultant simulation data 48 is merely on a storage medium to be input into themessage recognition module 50. In such a case, as shown at 58, it is desirable that the some of the protocol data from theprotocol library 44 is incorporated into the simulation data in a pre-processing step. -
FIG. 4 shows a detailed example of part of thesimulated signal data 48.Various signal data 70 on hardware lines are shown including aclock line 72, a read/write line 74, abus request line 76, aready line 78,address lines 80, and data lines 82. Simulation is also carried out on many more hardware lines, which are not shown for convenience. The signals being simulated follow a predetermined protocol 84. A protocol is a set of rules or standards designed to enable circuit elements to communicate together and exchange information with as little error as possible. The protocol 84 is made up of a plurality oftransactions 85, such as shown at 86 (i.e., transaction A) and at 88 (i.e., transaction B). A transaction is a discrete activity, such as a Read or Write operation that moves data from one place to another in the system. Thetransactions messages 90. For example,transaction 86 is shown as including three messages, 92, 94, and 96. A message is a smaller unit of information electronically transmitted from one circuit element to another to facilitate the transaction. Example messages include “request for bus”, “acknowledge”, “ready”, etc. Those skilled in the art will readily recognize that these are only examples of transactions and messages and others may be used. Each message is associated with a time-slice 98, such as those shown at 100, 102, and 104. Normally, the time-slices are based on theclock signal 72. During each time-slice, thehardware lines 70 are analyzed to determine the message being sent in correspondence with the transactions of the protocol, as further described below.Transaction 88 is similar totransaction 86 and need not be further described. -
FIG. 5 shows an example part of astate machine 120 stored within theprotocol library 44.Different states 122 are shown as numbered circles. Messages, such as those at 90, are shown in boxes, and cause the state machine to move from one state to another. Transactions may be defined by a path through thestate machine 120 that starts at an idle state 124 (state 0) and that ends at the same idle state, although those skilled in the art will recognize that thestate machine 120 may be constructed in a variety of different formats. For example, aread transaction 126 is made up of numberedstates transaction 126 is completed upon return to the idle state fromstate 5 tostate 0, as shown byarrow 128. Awrite transaction 130 is made up of numberedstates write transaction 130 is completed upon return to the idle state fromstate 7 tostate 0, as shown byarrow 132. -
FIG. 6 shows a flowchart of a method preformed by themessage recognition module 50 and thetransaction recognition module 52 in order to convert the simulation data into a transaction-based description. Atprocess box 150, the simulated input data (seebox 48 inFIG. 3 ) is received so that it may be used by themessage recognition module 50. Such simulation data is normally within a database. Inprocess box 152, the analysis starts by monitoring thesignal data 70 on the various hardware lines upon which messages are received. Additionally, inprocess box 152, theprotocol library 44 is read to access a state machine, such asstate machine 120, associated with the protocol. Inprocess box 154, in order to analyze a transaction, an assumption is made that the transaction starts from theidle state 124. Inprocess box 156, a time-slice of data is read corresponding to the clock signal onhardware line 72. For example, inFIG. 4 , the data may be read starting with a time-slice 100. Thus, the switching signals on the various hardware lines are read in order to be analyzed. Inprocess box 158, the data read is analyzed by comparing the switching signals to known patterns of messages stored in theprotocol library 44. Returning briefly toFIG. 5 , from theidle state 124, a bus request message changes the state of the state machine tostate 1. A bus request message has a particular pattern of signal data on the hardware lines, which is compared to a known pattern in theprotocol library 44. Thus, once a match is found between the known pattern of messages and the message analyzed during the currently analyzed time-slice, the message has been determined and is stored inprocess box 160. Inprocess box 162, the current state of the state machine is updated to reflect the change of state. Continuing with the example, the new state isstate 1 after a bus request message is received. Indecision box 164, a determination is made whether the state machine has returned to the idle state. If yes, this indicates that a transaction is complete and the transaction is determined inprocess box 166 by comparing a sequence of the stored messages to a sequence of known messages in theprotocol library 44. The sequence of stored messages are those received from the start of the idle state until the state machine returned to the idle state. Once a match is found between the sequence of stored messages and those in the protocol library, the transaction associated with those messages is easily obtained from theprotocol library 44. The determined transaction is then stored as indicated inprocess box 166. Indecision box 168, a check is made whether all of the input simulated signal data has been analyzed by reading whether the database including the signal data is at the end. If yes, the method ends as shown at 170. Otherwise, the method continues atprocess box 156 and the next time-slice is read (e.g., time-slice 102). Once the method ends, the database of signal data is converted into a series of transactions associated with the protocol found in theprotocol database 44. -
FIG. 7 shows a method implemented by the transaction sequence recognition module 54 (seeFIG. 3 ). It may be desirable to group transactions together in order to display to a user the circuit at an even higher level of abstraction. For example, several write/read transactions can be shown as a single control transaction as opposed to individual transactions. Inprocess box 200, a group of transactions is selected. For example, if there are many of the same type of transactions in sequence (e.g., Reads), such a sequence may be condensed. Inprocess box 202, the selected group is compared to predetermined groups. Indecision box 204, a determination is made whether there is a match between the selected group and the predetermined groups. If there is a match, then inprocess box 206, the sequence of transactions is stored as a single transaction in order to convert the circuit description to an even higher level of abstraction. Indecision box 208, a check is made whether all of the transactions have been read. If yes, then the method ends at 210. If not, then a new group of transactions is chosen at 212, and the process starts over atprocess box 202. -
FIG. 8 shows an example of a display showing the simulation data ofFIG. 3 at a higher level of abstraction. Particularly, instead of signals, the simulation data is shown as a series of transactions. Write transactions, such as at 240, are shown as dotted lines and read transactions, such as shown at 242, are shown as solid lines. Throughput is shown along the Y-axis and time is indicated along the X-axis. Thicker lines generally mean there is a grouping of many transactions so close in time that at the current zoom level they cannot be distinguished. Of course, a zoom option may be used to focus on particular transactions. As can readily be seen, the view ofFIG. 8 is much easier to read than that ofFIG. 4 and allows the designer to obtain a better overall system view of the flow of data. -
FIG. 9 shows further details of thepower extraction 24. Inprocess box 260, a technology library and model description are read. The technology library includes a set of gates and the physical characteristics of the gates (e.g., voltage, current, and power consumption). A variety of technology libraries may be used, but one possibility is the Synopsys® liberty® file. The model description is provided by the user and includes an interface of the circuit model describing the input/output ports, the inner state description of the circuit model that describes the internal states thereof, and the circuit HDL Netlist. Thus, the model description includes the model interface, the HDL netlist, and the lasting state description (including registers, buffers, etc.) Inprocess box 262, the model netlist is converted to a netlist with special monitors inserted. Such a conversion can be accomplished by regenerating the HDL netlist or by using PLI code. In any event, the monitors are used later during simulation to help track messages as they pass through the circuit. A monitor can be simply a function call that is activated whenever a gate switches (output changes) during which the message ID and power are assigned. - In
process box 264, a netlist is simulated using a simulation sequence as a testbence. For example, a VCD (Value Change Dump) sequence can be used as a testbence. The VCD sequence is a sequence of messages that are run back through the netlist including monitors in order to perform the tracing of how much power a message uses.FIG. 10 explainsprocess box 264 in further detail. - In
process box 266, a power database is output with power data on a per message or per transaction basis. This power database is used in the learning process as the power data is passed through a neural network. -
FIG. 10 shows the simulation 264 (FIG. 9 ) in further detail. Inprocess box 280, each message type in each port is assigned with all the associated input signals. The simulation sequences include messages and signals associated with the messages are assigned to the input ports in order to apply the signals to the circuit. Inprocess box 282, the input message is assigned a unique identification so that power may be tracked for that particular message. Inprocess box 284, the signals associated with the message are applied to the circuit in simulation and as the messages propagate through the gates of the circuit, any gate that switches is marked with the message ID that caused the gate to switch (process box 286). Inprocess box 288, power associated with the switched gate is assigned to the particular message ID that caused the gate to switch. Inprocess box 290, instantaneous power can be calculated at any point as the accumulation of all power per message. In particular, power of all the gates having the same ID can be summed in order to determine power per message. Power per transaction can then easily be determined by adding the power of each message forming the transaction. This information is updated into the power database. - The power model is based on accumulated dynamic power and non-active (leakage) power. The formula that can be used in calculating power is: Power=message power (load+cell)+leakage power@parameters. The load is the load switching power. The cell is the cell internal switching power (short circuit). The leakage is the non-active power. The load per gate is estimated as load=(activity)*F*C*Vdd(2), where F is the clock frequency, C is the capacitance (internal gates and external wire and fan-out) and Vdd is the supply voltage.
-
FIG. 11 is a flowchart of a method for performing “leaming” 26 (FIG. 2 ). Inprocess box 300, the power database is used to create a system of weighted equations that represent the power behavior of the circuit. Thus, for example, the inputs are analyzed in conjunction with power information to generate the equations so that in any given state a determination of an equation for power can be made. Such a generation of equations is well known in the art using standard techniques of neural networks. Inprocess box 302, input power patterns are applied to the generated system of equations to generate actual values produced by the equations. Inprocess box 304, an error is calculated by using a difference between the actual values (process box 302) to the desired values (determined during simulation). Inprocess box 306, based on this difference, the weightings in the system of equations are modified in order to more closely match the desired values. Indecision box 308, a check is made whether the actual values generated by the system of equations are within an acceptable limit. If so, the flowchart is exited at 310. If not, the flow returns to processbox 302 in order to re-analyze the equations. -
FIG. 12 shows the overall system diagram for generating a power model at a higher level of abstraction so that power may be determined on a per message or per transaction basis. AnHDL model file 320 is a description of the circuit. Asynthesis engine 322 generates agate netlist 324. Instrumentation for inserting monitors, shown at 325, inserts the appropriate monitors into the gate netlist to be used in simulation. Atechnology library 326 that includes the physical characteristics of the gates within the circuit is used by the synthesis engine in order to generate agate netlist 324. The place androute engine 328 actually performs placing and routing of the circuit components and connections between components. The place and route determination increases accuracy because once the circuit is in silicon, extra delays and capacitances usually exist. As described further below, these extra delays and capacitances are back annotated into the model to increase accuracy. A simulator (not shown) generatessimulation data 340 that is passed through aprotocol extraction engine 342 to generate protocol data 344 (e.g., messages, transactions). Aconverter 346 converts the messages or transactions back to signals for simulation insimulation kernel 348. Thesimulation kernel 348 simulates the gate netlist and uses the special monitors to help track how the messages propagate through the simulated circuit. The output of the simulation kernel is passed to apower extraction engine 352, which uses the simulated data, a power model template 350,protocol data 344, and the input from thetechnology library 326 to calculate and generate a database of power per message or transaction. The power model template includes the model description and receives theHDL file 320. The information within the database is passed to aneural network 354, which generates power functions based on a message or transaction basis and outputs acorresponding power model 355. Those skilled in the art will recognize that the neural network can be replaced with any other machine learning or statistical algorithm. - In a place and route
incremental power engine 356, the power functions generated by theneural network 354 are corrected based on back-annotated place and route information from place androute engine 328. The result is that RTL or HDL files and gate-level designs are converted to TLM equivalent models with accurate power and performance behavior. Such models can be simulated as-is to run pure performance analysis of a system, or can be plugged into TLM functional models and used to provide timing and power behavior during fully functional simulation. The power model is also hierarchical so that it can support a top-down approach where users can start with a high-level power model and gradually refine it along with implementation and the data that is available at each step downstream. One possible application includes having a power model associated with each IP core in a system. Instantaneous power of the overall system may be computed quickly. Moreover, an IP core can be removed or replaced and the affect on power may be visualized quickly. -
FIG. 13 shows that portions of the system may be applied to a distributed network, such as the Internet. Of course, the system also may be implemented without a network (e.g., a single computer). Aserver computer 400 may have an associated database 402 (internal or external to the server computer). The server computer is coupled to a network shown generally at 404. One or more client computers, such as those shown at 408 and 410, are coupled to the network to interface with the server computer using a network protocol. -
FIG. 14 shows a flow diagram using the network ofFIG. 13 . Inprocess box 450, the circuit description is sent from a client computer, such as 408, to theserver computer 400. Inprocess box 452, the power of the circuit is derived, as previously described. Inprocess box 454, the extracted power is used in a learning process in order to generate an abstract power model of the circuit. Inprocess box 456, the results are sent though the network to theclient computer 408. Finally, inprocess box 458, the results are displayed to the user. It should be recognized that one or more of the process boxes may be performed on the client side rather than the server side, and vice versa. - The system described maps actual power behavior up to the message or transaction levels where it can be budgeted and managed. At these levels, optimization can be traded with performance, while maintaining a high level of accuracy and speed.
- Having illustrated and described the principles of the illustrated embodiments, it will be apparent to those skilled in the art that the embodiments can be modified in arrangement and detail without departing from such principles.
- For example, in some systems, a full conversion to transactions is unnecessary if only messages are to be used.
- In view of the many possible embodiments, it will be recognized that the illustrated embodiments include only examples of the invention and should not be taken as a limitation on the scope of the invention. Rather, the invention is defined by the following claims. We therefore claim as the invention all such embodiments that come within the scope of these claims.
Claims (21)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/811,680 US20070276645A1 (en) | 2005-12-08 | 2007-06-11 | Power modelling in circuit designs |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US74895705P | 2005-12-08 | 2005-12-08 | |
PCT/IL2006/001350 WO2007066321A1 (en) | 2005-12-08 | 2006-11-23 | Transaction-based power model in circuit designs |
US11/811,680 US20070276645A1 (en) | 2005-12-08 | 2007-06-11 | Power modelling in circuit designs |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/IL2006/001350 Continuation WO2007066321A1 (en) | 2005-12-08 | 2006-11-23 | Transaction-based power model in circuit designs |
Publications (1)
Publication Number | Publication Date |
---|---|
US20070276645A1 true US20070276645A1 (en) | 2007-11-29 |
Family
ID=37814369
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/811,680 Abandoned US20070276645A1 (en) | 2005-12-08 | 2007-06-11 | Power modelling in circuit designs |
US11/811,685 Active 2028-05-25 US8122398B2 (en) | 2005-12-08 | 2007-06-11 | Conversion of circuit description to an abstract model of the circuit |
US11/811,695 Active 2027-09-01 US8417504B2 (en) | 2005-12-08 | 2007-06-11 | Conversion of circuit description to a transaction model |
US13/400,521 Active US8719742B2 (en) | 2005-12-08 | 2012-02-20 | Conversion of circuit description to an abstract model of the circuit |
US13/400,510 Active US8468475B2 (en) | 2005-12-08 | 2012-02-20 | Conversion of circuit description to an abstract model of the circuit |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/811,685 Active 2028-05-25 US8122398B2 (en) | 2005-12-08 | 2007-06-11 | Conversion of circuit description to an abstract model of the circuit |
US11/811,695 Active 2027-09-01 US8417504B2 (en) | 2005-12-08 | 2007-06-11 | Conversion of circuit description to a transaction model |
US13/400,521 Active US8719742B2 (en) | 2005-12-08 | 2012-02-20 | Conversion of circuit description to an abstract model of the circuit |
US13/400,510 Active US8468475B2 (en) | 2005-12-08 | 2012-02-20 | Conversion of circuit description to an abstract model of the circuit |
Country Status (2)
Country | Link |
---|---|
US (5) | US20070276645A1 (en) |
WO (3) | WO2007066320A1 (en) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013068703A1 (en) | 2011-11-10 | 2013-05-16 | Commissariat à l'énergie atomique et aux énergies alternatives | System and method for designing a digital circuit having an activity sensor, and corresponding digital circuit |
US8510694B2 (en) | 2010-12-06 | 2013-08-13 | Industrial Technology Research Institute | Transaction level system power estimation method and system |
US20130212546A1 (en) * | 2010-12-06 | 2013-08-15 | Industrial Technology Research Institute | Method for inserting characteristic extractor |
US8543953B2 (en) | 2012-01-04 | 2013-09-24 | Apple Inc. | Automated stimulus steering during simulation of an integrated circuit design |
US8650519B2 (en) | 2011-09-01 | 2014-02-11 | Apple Inc. | Automated functional coverage for an integrated circuit design |
US20140107999A1 (en) * | 2012-10-12 | 2014-04-17 | Silicon Integration Initiative, Inc. | Multi-level abstract power modeling method |
US9563724B2 (en) | 2013-09-28 | 2017-02-07 | International Business Machines Corporation | Virtual power management multiprocessor system simulation |
US9842180B2 (en) | 2014-11-24 | 2017-12-12 | Industrial Technology Research Institute | NoC timing power estimating device and method thereof |
US10101796B2 (en) * | 2016-05-27 | 2018-10-16 | Taiwan Semiconductor Manufacturing Company, Ltd. | Processor power estimation |
WO2019143661A2 (en) | 2018-01-19 | 2019-07-25 | Synopsys, Inc. | Machine-learning circuit optimization using quantized prediction functions |
US10691850B1 (en) * | 2018-12-13 | 2020-06-23 | Amazon Technologies, Inc. | Power projection using machine learning |
US10733342B2 (en) | 2015-07-07 | 2020-08-04 | Synopsys, Inc. | System and method for hierarchical power verification |
CN112835308A (en) * | 2019-11-25 | 2021-05-25 | 智能能源系统公司 | System and method for predicting and managing semiconductor device power and energy usage |
US20220138388A1 (en) * | 2020-11-05 | 2022-05-05 | Synopsys, Inc. | Selecting a subset of training data from a data pool for a power prediction model |
US11514220B2 (en) * | 2019-01-09 | 2022-11-29 | International Business Machines Corporation | Predicting power usage of a chip |
US11636246B2 (en) * | 2019-11-25 | 2023-04-25 | Innergy Systems, Inc. | Systems and methods for predicting and managing power and energy use of semiconductor devices |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007066320A1 (en) | 2005-12-08 | 2007-06-14 | Mentor Graphics Corporation | Conversion of circuit description to an abstract model of the circuit |
US20090171647A1 (en) * | 2007-12-27 | 2009-07-02 | Phanindra Mannava | Interconnect architectural state coverage measurement methodology |
JP5229119B2 (en) * | 2009-06-10 | 2013-07-03 | 富士通株式会社 | Model generation program, method and apparatus |
US8336009B2 (en) | 2010-06-30 | 2012-12-18 | Taiwan Semiconductor Manufacturing Co., Ltd. | Method and apparatus for electronic system function verification at two levels |
US8719743B1 (en) | 2011-04-29 | 2014-05-06 | Cadence Design Systems, Inc. | Method and system for implementing clock tree prototyping |
US8707228B1 (en) * | 2011-04-29 | 2014-04-22 | Cadence Design Systems, Inc. | Method and system for implementing hierarchical prototyping of electronic designs |
JP5718166B2 (en) * | 2011-06-10 | 2015-05-13 | 富士通株式会社 | Design verification method and program |
US8903696B2 (en) * | 2011-07-15 | 2014-12-02 | Cadence Design Systems, Inc. | System and method for controlling granularity of transaction recording in discrete event simulation |
US8739094B2 (en) * | 2011-12-22 | 2014-05-27 | Lsi Corporation | Power estimation using activity information |
US9529946B1 (en) * | 2012-11-13 | 2016-12-27 | Xilinx, Inc. | Performance estimation using configurable hardware emulation |
US20150026652A1 (en) * | 2013-07-18 | 2015-01-22 | Nvidia Corporation | System, method, and computer program product for correlating transactions within a simulation of a hardware platform for post-simulation debugging |
US9760667B1 (en) | 2014-06-30 | 2017-09-12 | Cadence Design Systems, Inc. | Method, system, and computer program product for implementing prototyping and floorplanning of electronic circuit designs |
TWI627521B (en) | 2017-06-07 | 2018-06-21 | 財團法人工業技術研究院 | Timing esimation method and simulation apparataus |
TWI670615B (en) | 2017-08-24 | 2019-09-01 | 財團法人工業技術研究院 | Power consumption estimation method and power consumption estimation device |
US10816600B1 (en) * | 2017-11-28 | 2020-10-27 | Xilinx, Inc. | Protocol analysis and visualization during simulation |
KR102788532B1 (en) | 2018-05-30 | 2025-03-31 | 삼성전자주식회사 | Neural network system, Application processor having the same and Operating method of neural network system |
CN112052642B (en) * | 2019-05-20 | 2024-08-16 | 台积电(南京)有限公司 | Systems and methods for ESL modeling for machine learning |
US11657273B2 (en) | 2019-12-27 | 2023-05-23 | Industrial Technology Research Institute | Hardware structure aware adaptive learning based power modeling method and system |
US11651131B2 (en) * | 2020-06-26 | 2023-05-16 | Synopsys, Inc. | Glitch source identification and ranking |
CN112199913B (en) * | 2020-10-15 | 2023-12-12 | 湖南泛联新安信息科技有限公司 | Coq-based very large scale integrated circuit RTL vulnerability formalized analysis method |
CN115600531A (en) * | 2022-12-12 | 2023-01-13 | 中国电子科技集团公司信息科学研究院(Cn) | Automatic neural network model generation method and device for radio frequency circuit structure |
CN116842902B (en) * | 2023-08-29 | 2023-11-21 | 深圳鲲云信息科技有限公司 | System-level simulation modeling method for black box model |
Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5602753A (en) * | 1994-04-19 | 1997-02-11 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for estimating power dissipation and method and apparatus of determining layout/routing |
US5752002A (en) * | 1995-06-12 | 1998-05-12 | Sand Microelectronics, Inc. | Method and apparatus for performance optimization of integrated circuit designs |
US6263301B1 (en) * | 1998-08-19 | 2001-07-17 | Cadence Design Systems, Inc. | Method and apparatus for storing and viewing data generated from a computer simulation of an integrated circuit |
US20020004927A1 (en) * | 2000-05-25 | 2002-01-10 | Miwaka Takahashi | Method for designing ingegrated circuit |
US20020078423A1 (en) * | 2000-12-18 | 2002-06-20 | Alden Jeffrey Morgan | Automatic reconfiguration of system sub-models for independent analysis |
US20030097348A1 (en) * | 2001-11-20 | 2003-05-22 | Lipeng Cao | Modeling behavior of an electrical circuit |
US20030226124A1 (en) * | 2002-05-28 | 2003-12-04 | Cadence Design Systems, Inc. | Assertion-based transaction recording |
US20040063434A1 (en) * | 2000-11-28 | 2004-04-01 | Ari Hamalainen | Power change estimation for communication system |
US20040088151A1 (en) * | 2002-11-04 | 2004-05-06 | Burton John Mark | Power modelling of a circuit |
US20040158803A1 (en) * | 2001-06-06 | 2004-08-12 | Hitachi, Ltd. | Integrated circuit, integrated circuit design method and hardware description generation method to generate hardware behavior description of integrated circuit |
US6845341B2 (en) * | 2002-05-14 | 2005-01-18 | Cadence Design Systems, Inc. | Method and mechanism for improved performance analysis in transaction level models |
US20050131666A1 (en) * | 2003-12-15 | 2005-06-16 | Jien-Shen Tsai | Circuit simulation bus transaction analysis |
US20050132306A1 (en) * | 2002-06-07 | 2005-06-16 | Praesagus, Inc., A Massachusetts Corporation | Characterization and reduction of variation for integrated circuits |
US20050192787A1 (en) * | 2004-02-26 | 2005-09-01 | Matsushita Electric Industrial Co., Ltd. | Simulation apparatus and method of designing semiconductor integrated circuit |
US20050197982A1 (en) * | 2004-02-27 | 2005-09-08 | Olivier Saidi | Methods and systems for predicting occurrence of an event |
US20050257178A1 (en) * | 2004-05-14 | 2005-11-17 | Daems Walter Pol M | Method and apparatus for designing electronic circuits |
US7136947B1 (en) * | 1999-06-10 | 2006-11-14 | Cadence Design Systems, Inc. | System and method for automatically synthesizing interfaces between incompatible protocols |
US20070168893A1 (en) * | 2005-12-30 | 2007-07-19 | Cadence Design Systems, Inc. | System and method for generating a plurality of models at different levels of abstraction from a single master model |
US7290056B1 (en) * | 1999-09-09 | 2007-10-30 | Oracle International Corporation | Monitoring latency of a network to manage termination of distributed transactions |
US20080120082A1 (en) * | 2006-11-20 | 2008-05-22 | Herve Jacques Alexanian | Transaction Co-Validation Across Abstraction Layers |
US7512732B1 (en) * | 2003-11-03 | 2009-03-31 | Coware, Inc. | Method of protocol conversion between synchronous protocols that are suitable for synthesis |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5553002A (en) * | 1990-04-06 | 1996-09-03 | Lsi Logic Corporation | Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, using milestone matrix incorporated into user-interface |
US6637018B1 (en) * | 1999-10-29 | 2003-10-21 | Cadence Design Systems, Inc. | Mixed signal synthesis behavioral models and use in circuit design optimization |
EP1301875A2 (en) * | 2000-07-21 | 2003-04-16 | Telecom Italia Lab S.p.A. | Method and system for verifying modules destined for generating circuits |
US6606734B2 (en) * | 2001-06-21 | 2003-08-12 | David J. Greaves | Simulation method and compiler for hardware/software programming |
US7080365B2 (en) | 2001-08-17 | 2006-07-18 | Sun Microsystems, Inc. | Method and apparatus for simulation system compiler |
US7076416B2 (en) * | 2001-08-20 | 2006-07-11 | Sun Microsystems, Inc. | Method and apparatus for evaluating logic states of design nodes for cycle-based simulation |
WO2006063359A2 (en) * | 2004-12-10 | 2006-06-15 | Anova Solutions, Inc. | Stochastic analysis process optimization for integrated circuit design and manufacture |
WO2007066320A1 (en) | 2005-12-08 | 2007-06-14 | Mentor Graphics Corporation | Conversion of circuit description to an abstract model of the circuit |
US20080072182A1 (en) * | 2006-09-19 | 2008-03-20 | The Regents Of The University Of California | Structured and parameterized model order reduction |
-
2006
- 2006-11-23 WO PCT/IL2006/001349 patent/WO2007066320A1/en active Application Filing
- 2006-11-23 WO PCT/IL2006/001348 patent/WO2007066319A1/en active Application Filing
- 2006-11-23 WO PCT/IL2006/001350 patent/WO2007066321A1/en active Application Filing
-
2007
- 2007-06-11 US US11/811,680 patent/US20070276645A1/en not_active Abandoned
- 2007-06-11 US US11/811,685 patent/US8122398B2/en active Active
- 2007-06-11 US US11/811,695 patent/US8417504B2/en active Active
-
2012
- 2012-02-20 US US13/400,521 patent/US8719742B2/en active Active
- 2012-02-20 US US13/400,510 patent/US8468475B2/en active Active
Patent Citations (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5602753A (en) * | 1994-04-19 | 1997-02-11 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for estimating power dissipation and method and apparatus of determining layout/routing |
US5752002A (en) * | 1995-06-12 | 1998-05-12 | Sand Microelectronics, Inc. | Method and apparatus for performance optimization of integrated circuit designs |
US6263301B1 (en) * | 1998-08-19 | 2001-07-17 | Cadence Design Systems, Inc. | Method and apparatus for storing and viewing data generated from a computer simulation of an integrated circuit |
US7136947B1 (en) * | 1999-06-10 | 2006-11-14 | Cadence Design Systems, Inc. | System and method for automatically synthesizing interfaces between incompatible protocols |
US7290056B1 (en) * | 1999-09-09 | 2007-10-30 | Oracle International Corporation | Monitoring latency of a network to manage termination of distributed transactions |
US20020004927A1 (en) * | 2000-05-25 | 2002-01-10 | Miwaka Takahashi | Method for designing ingegrated circuit |
US20040063434A1 (en) * | 2000-11-28 | 2004-04-01 | Ari Hamalainen | Power change estimation for communication system |
US20020078423A1 (en) * | 2000-12-18 | 2002-06-20 | Alden Jeffrey Morgan | Automatic reconfiguration of system sub-models for independent analysis |
US20040158803A1 (en) * | 2001-06-06 | 2004-08-12 | Hitachi, Ltd. | Integrated circuit, integrated circuit design method and hardware description generation method to generate hardware behavior description of integrated circuit |
US6910025B2 (en) * | 2001-11-20 | 2005-06-21 | Freescale Semiconductor, Inc. | Modeling behavior of an electrical circuit |
US20030097348A1 (en) * | 2001-11-20 | 2003-05-22 | Lipeng Cao | Modeling behavior of an electrical circuit |
US6845341B2 (en) * | 2002-05-14 | 2005-01-18 | Cadence Design Systems, Inc. | Method and mechanism for improved performance analysis in transaction level models |
US20030226124A1 (en) * | 2002-05-28 | 2003-12-04 | Cadence Design Systems, Inc. | Assertion-based transaction recording |
US20050132306A1 (en) * | 2002-06-07 | 2005-06-16 | Praesagus, Inc., A Massachusetts Corporation | Characterization and reduction of variation for integrated circuits |
US20040088151A1 (en) * | 2002-11-04 | 2004-05-06 | Burton John Mark | Power modelling of a circuit |
US7490030B2 (en) * | 2002-11-04 | 2009-02-10 | Arm Limited | Power modelling of a circuit |
US7512732B1 (en) * | 2003-11-03 | 2009-03-31 | Coware, Inc. | Method of protocol conversion between synchronous protocols that are suitable for synthesis |
US20050131666A1 (en) * | 2003-12-15 | 2005-06-16 | Jien-Shen Tsai | Circuit simulation bus transaction analysis |
US20050192787A1 (en) * | 2004-02-26 | 2005-09-01 | Matsushita Electric Industrial Co., Ltd. | Simulation apparatus and method of designing semiconductor integrated circuit |
US20050197982A1 (en) * | 2004-02-27 | 2005-09-08 | Olivier Saidi | Methods and systems for predicting occurrence of an event |
US20050257178A1 (en) * | 2004-05-14 | 2005-11-17 | Daems Walter Pol M | Method and apparatus for designing electronic circuits |
US20070168893A1 (en) * | 2005-12-30 | 2007-07-19 | Cadence Design Systems, Inc. | System and method for generating a plurality of models at different levels of abstraction from a single master model |
US20080120082A1 (en) * | 2006-11-20 | 2008-05-22 | Herve Jacques Alexanian | Transaction Co-Validation Across Abstraction Layers |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8510694B2 (en) | 2010-12-06 | 2013-08-13 | Industrial Technology Research Institute | Transaction level system power estimation method and system |
US20130212546A1 (en) * | 2010-12-06 | 2013-08-15 | Industrial Technology Research Institute | Method for inserting characteristic extractor |
US8756544B2 (en) * | 2010-12-06 | 2014-06-17 | Industrial Technology Research Institute | Method for inserting characteristic extractor |
US8650519B2 (en) | 2011-09-01 | 2014-02-11 | Apple Inc. | Automated functional coverage for an integrated circuit design |
WO2013068703A1 (en) | 2011-11-10 | 2013-05-16 | Commissariat à l'énergie atomique et aux énergies alternatives | System and method for designing a digital circuit having an activity sensor, and corresponding digital circuit |
US8543953B2 (en) | 2012-01-04 | 2013-09-24 | Apple Inc. | Automated stimulus steering during simulation of an integrated circuit design |
US20140107999A1 (en) * | 2012-10-12 | 2014-04-17 | Silicon Integration Initiative, Inc. | Multi-level abstract power modeling method |
US9563724B2 (en) | 2013-09-28 | 2017-02-07 | International Business Machines Corporation | Virtual power management multiprocessor system simulation |
US10002212B2 (en) | 2013-09-28 | 2018-06-19 | International Business Machines Corporation | Virtual power management multiprocessor system simulation |
US9842180B2 (en) | 2014-11-24 | 2017-12-12 | Industrial Technology Research Institute | NoC timing power estimating device and method thereof |
US10733342B2 (en) | 2015-07-07 | 2020-08-04 | Synopsys, Inc. | System and method for hierarchical power verification |
US10101796B2 (en) * | 2016-05-27 | 2018-10-16 | Taiwan Semiconductor Manufacturing Company, Ltd. | Processor power estimation |
WO2019143661A2 (en) | 2018-01-19 | 2019-07-25 | Synopsys, Inc. | Machine-learning circuit optimization using quantized prediction functions |
EP3740887A4 (en) * | 2018-01-19 | 2022-01-12 | Synopsys, Inc. | MACHINE LEARNING CIRCUIT OPTIMIZATION USING QUANTIFIED PREDICTION FUNCTIONS |
US10691850B1 (en) * | 2018-12-13 | 2020-06-23 | Amazon Technologies, Inc. | Power projection using machine learning |
US11514220B2 (en) * | 2019-01-09 | 2022-11-29 | International Business Machines Corporation | Predicting power usage of a chip |
US11816415B2 (en) | 2019-01-09 | 2023-11-14 | International Business Machines Corporation | Predicting power usage of a chip |
CN112835308A (en) * | 2019-11-25 | 2021-05-25 | 智能能源系统公司 | System and method for predicting and managing semiconductor device power and energy usage |
US11636246B2 (en) * | 2019-11-25 | 2023-04-25 | Innergy Systems, Inc. | Systems and methods for predicting and managing power and energy use of semiconductor devices |
US20220138388A1 (en) * | 2020-11-05 | 2022-05-05 | Synopsys, Inc. | Selecting a subset of training data from a data pool for a power prediction model |
US11651129B2 (en) * | 2020-11-05 | 2023-05-16 | Synopsys, Inc. | Selecting a subset of training data from a data pool for a power prediction model |
US12124780B2 (en) * | 2020-11-05 | 2024-10-22 | Synopsys, Inc. | Power estimation using input vectors and deep recurrent neural networks |
Also Published As
Publication number | Publication date |
---|---|
US8122398B2 (en) | 2012-02-21 |
US8719742B2 (en) | 2014-05-06 |
US20070277144A1 (en) | 2007-11-29 |
WO2007066321A1 (en) | 2007-06-14 |
US20070276644A1 (en) | 2007-11-29 |
US20120151424A1 (en) | 2012-06-14 |
WO2007066320A1 (en) | 2007-06-14 |
WO2007066319A1 (en) | 2007-06-14 |
US8417504B2 (en) | 2013-04-09 |
US8468475B2 (en) | 2013-06-18 |
US20120150522A1 (en) | 2012-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070276645A1 (en) | Power modelling in circuit designs | |
US11836641B2 (en) | Machine learning-based prediction of metrics at early-stage circuit design | |
US7134100B2 (en) | Method and apparatus for efficient register-transfer level (RTL) power estimation | |
Chang et al. | Surviving the SoC revolution | |
US6292931B1 (en) | RTL analysis tool | |
US6378123B1 (en) | Method of handling macro components in circuit design synthesis | |
US6173435B1 (en) | Internal clock handling in synthesis script | |
KR100846089B1 (en) | How to Distribute Multiple Glue Logic Elements Between Design Blocks and How to Increase Glue Logic Distribution Efficiency | |
US6295636B1 (en) | RTL analysis for improved logic synthesis | |
US6263483B1 (en) | Method of accessing the generic netlist created by synopsys design compilier | |
US6421818B1 (en) | Efficient top-down characterization method | |
US8020124B2 (en) | Various methods and apparatuses for cycle accurate C-models of components | |
US6289498B1 (en) | VDHL/Verilog expertise and gate synthesis automation system | |
US20130179142A1 (en) | Distributed parallel simulation method and recording medium for storing the method | |
US20110035203A1 (en) | system level power evaluation method | |
JPH10207937A (en) | Method and device for executing verification after layout of micro electronics circuit by filtering timing error limit value for layout critical network and computer program product | |
US11593543B2 (en) | Glitch power analysis with register transfer level vectors | |
Lavagno et al. | Design of embedded systems | |
Simpson | FPGA design | |
Pasricha et al. | Capps: A framework for power–performance tradeoffs in bus-matrix-based on-chip communication architecture synthesis | |
US11494540B1 (en) | Method, system, and computer program product for implementing electronic design closure with reduction techniques | |
Ahuja et al. | SPAF: A System-level Power Analysis Framework | |
Passerone | Luciano Lavagno | |
Zejda | Bounding of switching activity in logic circuits | |
Sweeney | Hardware Design Methodologies Hardware Design Methodologies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MENTOR GRAPHICS (ISRAEL) LIMITED, ISRAEL Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:VELLER, YOSSI;HANGA, VASILE;ROZENMAN, ALEXANDER;AND OTHERS;REEL/FRAME:019627/0047 Effective date: 20061224 |
|
AS | Assignment |
Owner name: MENTOR GRAPHICS CORPORATION, OREGON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MENTOR GRAPHICS (ISRAEL) LIMITED;REEL/FRAME:023666/0962 Effective date: 20070115 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |