US20130014074A1 - Incremental Modification of Instrumentation Logic - Google Patents
Incremental Modification of Instrumentation Logic Download PDFInfo
- Publication number
- US20130014074A1 US20130014074A1 US13/526,436 US201213526436A US2013014074A1 US 20130014074 A1 US20130014074 A1 US 20130014074A1 US 201213526436 A US201213526436 A US 201213526436A US 2013014074 A1 US2013014074 A1 US 2013014074A1
- Authority
- US
- United States
- Prior art keywords
- signals
- instrumentation
- signal
- instrumented
- design
- 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/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
Definitions
- the present invention generally relates to computer-aided circuit designs. More specifically, the present invention pertains to methods and systems for designing, instrumenting, and debugging integrated circuits.
- instrumentation circuitry may be added to facilitate the analysis, diagnosis and debugging of the integrated circuit design.
- Various techniques and systems of design instrumentation at an HDL level are described, for example, in the U.S. Pat. No. 6,931,572, which is incorporated herein by reference in its entirety.
- An electronic monitoring circuit may be provided within an integrated circuit hardware product for assisting a debugger system in debugging the circuit design within the integrated circuit hardware product.
- a typical electronic monitoring circuit includes a trigger processing unit for monitoring trigger events and issuing a trigger action based on one or more of the monitored trigger events, probe circuits coupled between the integrated circuit hardware product and the trigger processing unit, a configuration register that stores configuration information for use in configuring the trigger processing unit or the probe circuits, and a communication controller operatively connected to the configuration register to provide external access to the configuration register by the debugger system.
- a circuit design is created and compiled.
- the design is created by writing a text representation of a circuit in Hardware Description Language (HDL).
- HDL Hardware Description Language
- the text representation may then be input into a compiler.
- RTL register transfer level
- the RTL netlist usually shows registers and other logic interconnected to show the flow of data through a circuit that was described in the text representation.
- FIG. 2 illustrates a method for modifying the instrumented signals in the prior art.
- the initial instrumentation logic is built, for example, according to a method shown in FIG. 1 (“initial flow”), and the circuit design is debugged.
- the instrumentation logic needs to be changed, one or more instrumented signals are first modified as illustrated in block 152 .
- synthesis and place & route are rerun on the design, at 154 .
- the design may be debugged again, at 156 .
- these operations, 152 , 154 , and 156 are repeated, as indicated by a loop in the flow chart.
- This prior art method is essentially equivalent to the initial instrumentation process, for example as shown in FIG. 1 , in that it requires complete rerunning of synthesis and place & route operations, which can be very time-consuming, among other things.
- the present invention relates to methods and systems for designing, instrumenting, and debugging electronic circuits.
- a method for making incremental changes to instrumentation logic is provided. After a circuit is initially designed, certain signals are selected for instrumentation. Synthesis and place and route are then run on the design. During debugging of a circuit design, the instrumented signals may need to be modified. In an embodiment of the present invention, this may be done without rerunning synthesis and place and route by incrementally modifying the instrumentation logic.
- a list of signals available for instrumentation is first built and it is presented to a user.
- the user modifies the instrumented signals, for example, by deselecting one or more existing instrumentation signals and/or adding new signals to be instrumented.
- the new signals are selected from the presented list of available signals. In certain embodiments, this is interactively and/or iteratively performed through a user interface.
- the design is updated with the modified instrumented signals, e.g., by connecting and/or disconnecting the modified signals. Subsequently, partial rerouting is performed on the modified design with the updated instrumentation logic.
- a list of available signals is built based on various criteria. For example, the signals that are accessible after the synthesis and place & route of the circuit design (e.g., stored in a place-and-route database) may be made available for incremental modification of instrumentation logic. In some cases, the available signal may need to have the counterpart in its HDL description, e.g., in the RTL source. In certain embodiments, only the signals that can be guaranteed to have the same functions before and after the synthesis and place & route are included in the list of available signals.
- a method for incrementally updating instrumentation logic for a design of an integrated circuit having one or more signals.
- extra circuitry is added for instrumentation which may not be associated with any particular signals in the circuit design.
- certain signals are marked so that they can be instrumented later using incremental instrumentation, that is, without rerunning synthesis and place & route on the design.
- Each of the extra instrumentation circuitry is associated with one of the following instrumentation types: (a) sample-only, (b) trigger-only, and (c) sample-and-trigger.
- the maximum number of each instrumentation type is fixed.
- the user may be presented with various information, for example, regarding the number of signals that can be additionally selected for each instrumentation type.
- the instrumentation logic is modified, rerouting is performed on the updated design with the modified instrumented signals.
- one or more regions, blocks, nets, etc are first determined which are affected by the change in the instrumentation logic. Then, the routing is performed in those affected regions only. In some cases, the routing may be performed on the whole circuit subsequent to, or concurrent with, the partial routing on the affected regions.
- the present invention provides, among other things, methods and systems for incrementally updating instrumentation logic in circuit designs without rerunning synthesis and place and route.
- instrumentation logic is incrementally changed by the following operations: Building a list of available signals, modifying the instrumentation logic, and rerouting the modified design.
- FIG. 1 illustrates a method for creating and debugging an integrated circuit design.
- the method includes an operation for initially instrumenting the circuit design (“initial flow”) to facilitate analysis, diagnosis, and debugging.
- FIG. 2 is a flow diagram illustrating a prior art method for modifying instrumented logic. The method is essentially equivalent to the initial instrumentation process, for example, shown in FIG. 1 .
- FIG. 3 is a block diagram illustrating a suitable computing environment in which certain aspects of the illustrated invention may be practiced.
- FIG. 4 shows a functional block diagram illustrating an exemplary instrumentation system according to an embodiment of the present invention.
- FIG. 5 shows a design flow according to an embodiment of the present invention.
- the exemplary process is illustrated in the context of designing and debugging an FPGA circuit.
- the diagram shows the “initial flow” as well as the “incremental flow” for incrementally modifying the instrumentation logic.
- FIG. 6 is a flow diagram illustrating a method according to an embodiment of the present invention.
- FIG. 7 is a flow diagram illustrating another method according to an embodiment of the present invention.
- FIG. 8 is a flow diagram illustrating yet another method according to an embodiment of the present invention.
- FIG. 9 is a block diagram illustrating an exemplary system according to an embodiment of the present invention. The figure shows that four signals from the user design are currently selected for instrumentation.
- FIG. 10 illustrates an exemplary method for incrementally modifying instrumentation logic according to an embodiment of the present invention.
- FIG. 11 is a flow chart illustrating a method for setting up initial instrumentation logic for an integrated circuit according to an embodiment of the present invention.
- the present invention provides methods and systems for incrementally updating the instrumentation logic in integrated circuit designs.
- instrumented signals are modified without rerunning synthesis and place and route.
- instrumentation logic is incrementally changed by the following operations: Building a list of available signals, modifying or deleting one or more instrumented signals and/or adding additional signals for instrumentation, connecting or disconnecting the new and/or modified/deleted signals, and rerouting the design with modified signals.
- FIG. 3 a block diagram illustrates a suitable computing environment in which certain aspects of the illustrated invention may be practiced.
- This exemplary system 200 can be used with various embodiments of the present invention.
- the present invention may be embodied as a method, data processing system or program product as well as an article of manufacture or an apparatus.
- the scope of the invention should be determined by the appended claims and their legal equivalents, and not by the examples given.
- the exemplary data processing system 200 includes a bus 202 which is coupled to a microprocessor(s) 204 and a memory 206 such as a ROM (read only memory) or a volatile RAM and a non-volatile storage device(s) 208 .
- the system bus 202 interconnects these various components together and also interconnects these components 204 , 206 , and 208 to a display controller(s) 210 and display devices 212 such as LCD screens and to peripheral devices such as input/output (I/O) devices 216 and 218 which may be mice, keypads, input wheels, modems, network interfaces, printers and other devices which are well known in the art.
- I/O input/output
- the I/O devices 216 and 218 are coupled to the system through I/O controllers 214 .
- the volatile RAM (random access memory) 206 is typically implemented as dynamic RAM (DRAM) which requires power continually in order to refresh or maintain the data in the memory.
- the mass storage 208 is typically a magnetic hard drive or a magnetic optical drive or an optical drive or a DVD ROM or other types of memory systems which maintain data (e.g. large amounts of data) even after power is removed from the system.
- the mass storage 208 will also be a random access memory although this is not required. While FIG.
- the bus 202 may include one or more buses connected to each other through various bridges, controllers and/or adapters as is well known in the art.
- the I/O controller 214 includes a USB (universal serial bus) adapter for controlling USB peripherals and an IEEE 1394 (i.e., “firewire”) controller for IEEE 1394 compliant peripherals.
- the display controllers 210 may include additional processors such as GPUs (graphical processing units) and they may control one or more display devices 212 .
- the content for implementing an embodiment of the method of the invention may be provided by any machine-readable media which can store data that is accessible by the system 200 shown in FIG. 3 , as part of or in addition to memory, including but not limited to cartridges, magnetic cassettes, flash memory cards, digital video disks, random access memories (RAMs), read-only memories (ROMs), and the like.
- the exemplary data processing system is equipped to communicate with such machine-readable media in a manner well-known in the art.
- the content for implementing an embodiment of the method of the invention may be provided to the system 200 from any external device capable of storing the content and communicating the content to the system 200 .
- the system 200 may be connected to a network, and the content may be stored on any device in the network.
- the present invention relates to methods and systems for designing, instrumenting, and debugging integrated circuits.
- at least one embodiment of the present invention provides a method for making incremental changes to the instrumentation logic of the integrated circuits.
- certain signals are selected for instrumentation. Synthesis and place and route are then run on the design (“initial flow”).
- the instrumented signals may be incrementally modified without rerunning synthesis and place and route. This will be broadly termed “incremental flow” in this disclosure.
- FIG. 4 shows a functional block diagram illustrating an exemplary instrumentation system according to at least one embodiment of the present invention.
- This exemplary block diagram of FIG. 4 includes an instrumentor unit 252 , which may be used, among other things, to add instrumentation circuitry to an integrated circuit design.
- the instrumented signals may be stored in a database for later use.
- the block diagram also includes the synthesis and place & route system 254 and a software or hardware debugger 256 .
- Some of the functions related to incremental modification of the circuit design are included in a unit 258 .
- Some embodiments of the present invention also comprise a user interface 260 .
- the user interface may be used, for example, to allow the user to interactively modify the instrumentation logic.
- FIG. 5 illustrates a design flow according to some embodiments of the present invention.
- the flow describes an exemplary process for designing and debugging an integrated circuit, in particular, an FPGA circuit in this example.
- the circuit design is created by writing a text representation of a circuit in Hardware Description Language (HDL).
- HDL Hardware Description Language
- the text representation may then be compiled and a register transfer level (RTL) netlist may be generated.
- the RTL netlist, 302 in the figure usually shows registers and other logic interconnected to show the flow of data through the circuit that was described in the text representation.
- one or more signals in the design are selected and instrumented using instrumentor 304 .
- instrumentation a user may select the debugging logic or specify the debugging hardware.
- Debugging logic is then inserted based on the user's selections.
- the user may select the number of instrumentation signals and the kind of instrumentation signal, such as trigger only, sample only, or trigger and sample.
- synthesis 310 and place and route 312 are run on the instrumented design.
- the RTL netlist may be mapped to a target architecture.
- the mapping operation converts the RTL level representation of the desired circuit into the equivalent circuit implemented using building blocks of the target architecture.
- a technology specific netlist is generated.
- Place-and-routing 312 then creates a design of circuitry in the target architecture, as indicated by a block 314 in FIG. 5 .
- the synthesized and place-and-routed circuit design 314 with the initial instrumentation logic may be debugged using a debugger 316 .
- This process is indicated by an arrow 306 with a label “initial flow” in the figure.
- the designer may find that one or more signals that should have been instrumented were not or that one or more of the instrumented signals were not necessary. As illustrated earlier with respect to the flow chart of FIG. 2 , this can be done by repeating the initial flow 306 each time instrumentation logic is modified. This is a costly process, among other things.
- At least one embodiment of the present invention provides a method for incrementally modifying the instrumentation logic without rerunning synthesis and place and route, which is schematically represented by an arrow 308 with a label “incremental flow”.
- FIG. 6 is a flow chart illustrating an incremental flow according to an embodiment of the present invention.
- This exemplary process may be viewed in connection with, or subsequent to, an initial flow, for example, as illustrated in FIG. 1 .
- a circuit design has been created with an initial instrumentation logic in this example.
- the initial instrumentation logic is modified, at block 352 , for example, based on an input from a user (e.g., a circuit designer).
- new synthesis and place & route operations on the updated circuit design is avoided, and instead only rerouting is performed on the modified instrumented signals, at 354 .
- the design with modified instrumentation logic is debugged, at 356 . This set of operations can be repeated each time the instrumentation logic needs to be modified without incurring the overhead of complete synthesis and place & route.
- FIG. 7 illustrates in further detail an exemplary method of incremental flow according to an embodiment of the present invention.
- a list of available signals is built.
- the signals in the circuit design are analyzed to determine which signals are available for the user to select for instrumentation or deselect from instrumentation. For example, criteria such as whether the signal can be correlated to a signal in the HDL and whether the signal represents the same function in the netlist as in the HDL may be used to determine whether a signal will be available for user selection.
- name matching may be used to match names of signals used in the HDL with names of nets in the netlist.
- pattern matching may be used to match signals in the HDL with nets in the netlist.
- An analysis may then be done on the matched names to determine if they represent the same signal function.
- a list of available signals may then be displayed, where each signal corresponds to a signal in the HDL and represents the same function in the netlist as in the HDL.
- one or more of the instrumented signals are modified. From the list of available signals, the user may then select the signals that he/she wants to modify and specify the type of instrumentation that he/she wants to be added, such as sample and trigger, trigger only, or sample only. In one embodiment, the selection of signals is done from the HDL. In one embodiment, a mark or highlighting may be added to a signal that has been selected for modification. In one embodiment, the number of signals that are instrumented may not exceed the number of signals initially instrumented for each kind of instrumentation, since the hardware created during the first instrumentation has not been changed. Therefore, for each additional signal that is selected for instrumentation, a signal that was initially instrumented must be deselected.
- a limit for each kind of instrumentation may be calculated and displayed, and an error message may be displayed when a user exceeds any of the limits.
- extra instrumentation logic may be added to the design initially, for example, in operation 104 of FIG. 1 , to provide extra instrumentation signals that may be connected without disconnecting initially instrumented signals.
- a user may select three signals to be instrumented initially: one sample and trigger, one sample only, and one trigger only.
- instrumentation logic may be provided for six signals: two sample and trigger, two sample only, and two trigger only. In this way, when the user decides to add a signal for instrumentation after debug, there is extra instrumentation logic in place to do so without having to disconnect an initially instrumented signal.
- the connections of the modified signals are revised. For example, a previously instrumented signal that no longer needs to be instrumented is disconnected or a newly instrumented signal is connected. In one embodiment, these connection modifications are done using an editing tool that allows certain nets to be disconnected and other nets to be connected instead.
- the modified signals are then rerouted, at 408 . In one embodiment, the rerouting is done on the modified nets and takes into account the congestion created by the rest of the design. In some instances, the rerouting may not be successful. In one embodiment, one or more registers in the instrumentation logic may be moved to increase the chance of success when connecting the modified nets.
- one or more registers are reprogrammed with different inputs and/or outputs.
- extra space is created in the initial design to allow room for rerouting of signals after debug.
- the circuit design may then be debugged again, as illustrated in block 410 . This method may be repeated each time the user wants to modify the instrumented signals.
- pattern matching may be used to match signals in the HDL with nets in the netlist. An analysis may then be done on the matched names to determine if they represent the same signal function. In certain embodiments, only the signals that can be guaranteed to have the same functions before and after the synthesis and place & route are included in the list of available signals.
- a list of currently instrumented signals is created. Then the list of available signals and the list of currently instrumented signals are displayed to the user along with any additional information such as the number of available signal “slots” for each instrumentation type. In some embodiments, the two lists may be presented as a single table including all available signals with appropriate attributes, for example, indicating whether a certain signal is currently instrumented or not.
- the user may then deselect the instrumented signals that no longer need to be instrumented and/or select the signals that need to be added or modified, as illustrated in block 456 of FIG. 8 .
- the user can further specify the type of instrumentation associated with each signal to be instrumented, such as sample and trigger, trigger only, or sample only.
- the connections of the modified signals are then revised, at block 458 , based on the updated instrumentation logic. For example, a previously instrumented signal that no longer needs to be instrumented is disconnected or a newly instrumented signal is connected. In one embodiment, these connection modifications are done using an editing tool that allows certain nets to be disconnected and other nets to be connected instead.
- rerouting is performed on the updated design with the modified instrumented signals, at 460 and 462 of FIG. 8 .
- first one or more regions, blocks, nets, etc, are determined which are affected by the change in the instrumentation logic, at 460 .
- the routing is performed in those affected regions only. In certain embodiments, the routing may be performed optionally on the whole circuit, at 462 , subsequent to, or concurrent with, the partial routing on the affected regions.
- one or more registers in the instrumentation logic may be moved to increase the chance of success when connecting the modified nets, or one or more registers may be reprogrammed with different inputs and/or outputs. In one embodiment, extra space is created in the initial design to allow room for rerouting of signals during a subsequent incremental flow process.
- the circuit design with an updated set of instrumented signals may then be debugged again, as illustrated in block 464 . This process may be repeated each time the user wants to modify the instrumentation logic, as indicated by a loop in the flow chart of FIG. 8 .
- FIG. 9 a block diagram is depicted illustrating an exemplary system 500 according to an embodiment of the present invention.
- a user design 502 may have been initially implemented, for example, according to a method of “initial flow” described earlier with respect to FIG. 1 or FIG. 5 .
- the user design 502 may have been further modified, for example, according to the methods described earlier with respect to FIGS. 6-8 .
- four signals 520 , 522 , 524 , and 528 are currently selected by the user for instrumentation: two trigger only signals 530 and 532 , one sample only signal 528 , and one trigger and sample signal 524 .
- the signals 520 , 522 , 524 , and 528 are input into registers 510 , 512 , 514 , and 518 , respectively.
- the outputs 530 , 532 , 534 , 536 , and 538 from the registers are input into triggering logic 504 or sample buffer 506 accordingly.
- incremental changes may be made to the instrumentation logic according to the methods described in connection with FIGS. 6-8 .
- a user may make signal selections from the HDL.
- a list of signals available for selection (not explicitly shown in the figure other than the instrumented signals) may be displayed for the user, as described earlier.
- the user may select one or more of the instrumented signals 520 , 522 , 524 , and 528 to be modified.
- the clock signal 508 is not available for modification. If the user deselects one of the instrumented signals, that signal will be disconnected from the corresponding register. A new signal may then be selected for instrumentation and connected to the available register.
- the user may decide that signal 520 is not needed for instrumentation and he or she may deselect signal 520 , which makes register 510 available for other signals. If the user decides that another signal (from a list of available signals) needs to be instrumented, the new signal is selected for instrumentation and it may be connected to the available register 510 . This new signal would be instrumented as trigger only since signal 520 was initially instrumented as trigger only. The signal 520 would be disconnected from the input of register 510 and the newly instrumented signal would be connected to the input of register 510 .
- additional instrumentation circuitry which may not be associated with any particular signals, may be added during the initial instrumentation process.
- register 510 may have been available without signal 520 being connected to its input in the initial design. This will be further elaborated later with respect to FIG. 11 .
- rerouting would then be done for the circuit design with the modified signals. If the rerouting is successful, the user may then proceed to debug the design. The process of making incremental changes to the instrumentation logic may be repeated each time the user wants to modify one or more of the instrumented signals without rerunning synthesis and place and route.
- an exemplary method is illustrated for incrementally modifying instrumentation logic according to an embodiment of the present invention.
- the exemplary method starts by displaying available signals to a user, at 602 , where each signal may correspond to a signal in the HDL and represent the same function in the netlist as in the HDL. Currently instrumented signals and their instrumentation types are also displayed. Then, the user modifies one or more of the instrumented signals, at 604 . From the list of available signals, the user may select the signals to be instrumented and specify the type of instrumentation. When the user is done with modifying instrumentation logic, it is analyzed at 606 .
- the number of signals that are to be instrumented may not exceed the number of signals initially instrumented for each type of instrumentation, as explained earlier. As certain instrumented signals are deselected, new signals may be added for instrumentation with the same instrumentation type. A limit for each kind of instrumentation may be calculated and displayed, for example, at 602 . If the user updated instrumentation logic cannot be implemented for any reason, for example, because it exceeds any of the limits in the instrumentation types, then the user may be directed to try again, following the No branch at block 608 . In some embodiments, an error or warning message may be displayed, possibly with additional information, e.g., as to how to fix the problem. If the new instrumentation logic is considered valid, then the connections of the modified signals are revised, at 610 .
- extra instrumentation logic may be added to the integrated circuit design during the initial design phase so that extra instrumentation signals may be connected later without disconnecting the initially instrumented signals.
- a user may select three signals to be instrumented initially: one sample and trigger, one sample only, and one trigger only.
- instrumentation logic may be provided for six signals: two sample and trigger, two sample only, and two trigger only.
- only the three signals are explicitly associated with the instrumentation logic, while three more signals may be instrumented later without having to disconnect any of the three initially instrumented signals.
- certain signals are marked so that they can be instrumented later using incremental instrumentation, that is, without rerunning synthesis and place & route on the design.
- certain signals which are not instrumented, may be removed, replaced, or otherwise modified (e.g., for optimization), and they may not be available for instrumentation during the incremental flow. In certain embodiments, this can be prevented by using special markers during the initial instrumentation phase.
- FIG. 11 shows a flow chart illustrating an exemplary method for instrumenting an integrated circuit according to an embodiment of the present invention.
- a first set of signals is first selected for instrumentation, at 702 .
- a second set of signals is selected, at 704 , which, while not necessary to be instrumented initially, may need to be instrumented later. These signals may be specially marked so that they will be guaranteed to be available in the netlist, for example.
- instrumentation circuitry is added and connected to the signals in the first set, at 706 .
- additional instrumentation circuitry may be added, at 708 , so that they may be connected to any additional signals that need to be instrumented later.
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
- The present application is a continuation of U.S. application Ser. No. 11/400,590, filed on Apr. 7, 2006, now U.S. Pat. No. 8,205,186, to issue on Jun. 19, 2012, which claims priority to U.S. Provisional Patent Application No. 60/670,827 filed on Apr. 11, 2005, and entitled “Method and System for Making Incremental Changes to Instrumentation Logic”, which is incorporated herein by reference in its entirety; this application claims the benefit of the provisional application's filing date under 35 U.S.C. §119(e). The present application hereby claims the benefit of this earlier filing date under 35 U.S.C. §120.
- 1. Field of the Invention
- The present invention generally relates to computer-aided circuit designs. More specifically, the present invention pertains to methods and systems for designing, instrumenting, and debugging integrated circuits.
- 2. Description of the Related Art
- Integrated circuits are designed by designers to operate in specific ways. Once designed, the circuits may need to be analyzed, diagnosed, and debugged. Debugging is a process which involves detection, diagnosis, and correction of functional failures or discrepancies between the intended design and manifested behavior. In the detection phase, the designer of the circuit observes a functional failure. When the designer is able to gather enough information about the behavior of the integrated circuit, the designer of the circuit can draw the necessary conclusions to diagnose the functional failure. To correct the functional failure, a fix is applied and the design is modified. When the design is provided in a Hardware Description Language (HDL), such a fix may be a textual change to the HDL description of the integrated circuit.
- During, or subsequent to, the circuit design, instrumentation circuitry may be added to facilitate the analysis, diagnosis and debugging of the integrated circuit design. Various techniques and systems of design instrumentation at an HDL level are described, for example, in the U.S. Pat. No. 6,931,572, which is incorporated herein by reference in its entirety. An electronic monitoring circuit may be provided within an integrated circuit hardware product for assisting a debugger system in debugging the circuit design within the integrated circuit hardware product. A typical electronic monitoring circuit includes a trigger processing unit for monitoring trigger events and issuing a trigger action based on one or more of the monitored trigger events, probe circuits coupled between the integrated circuit hardware product and the trigger processing unit, a configuration register that stores configuration information for use in configuring the trigger processing unit or the probe circuits, and a communication controller operatively connected to the configuration register to provide external access to the configuration register by the debugger system.
- After a circuit is designed, certain signals are selected for instrumentation to facilitate the analysis, diagnosis and debugging of the electronic circuit design. Synthesis and place and route are then run on the design with instrumentation circuitry. This is illustrated in a flow diagram shown in
FIG. 1 , which we call the “initial flow” in this disclosure. At 102, a circuit design is created and compiled. In some cases, the design is created by writing a text representation of a circuit in Hardware Description Language (HDL). The text representation may then be input into a compiler. After compilation, a register transfer level (RTL) netlist may be generated. The RTL netlist usually shows registers and other logic interconnected to show the flow of data through a circuit that was described in the text representation. At 104, one or more signals in the design are selected and instrumented. During instrumentation, a user may select the debugging logic or specify the debugging hardware. Debugging logic is then inserted based on the user's selections. In certain cases, the user may select the number of instrumentation signals and the instrumentation type associated with each signal, such as trigger only, sample only, or trigger and sample. At 106, synthesis and place and route are run on the design. During synthesis, the RTL netlist may be mapped to a target architecture. The mapping operation converts the RTL level representation of the desired circuit into the equivalent circuit implemented using building blocks of the target architecture. A technology specific netlist is generated. Conventional place and route tools may then be used to create a design of circuitry in the target architecture. At 108, the design is debugged. During debugging of the integrated circuit design, the designer may find that one or more signals that should have been instrumented are not or that one or more of the instrumented signals are not necessary. In the prior art methods, the price for adjusting the instrumented signals is high. First, the set of instrumented signals have to be modified. Then, synthesis and place and route have to be rerun on the design. After that, the design may be debugged again. Each time the designer wants to change the set of instrumented signals for a design, this costly process must be repeated. -
FIG. 2 illustrates a method for modifying the instrumented signals in the prior art. The initial instrumentation logic is built, for example, according to a method shown inFIG. 1 (“initial flow”), and the circuit design is debugged. When the instrumentation logic needs to be changed, one or more instrumented signals are first modified as illustrated inblock 152. Next, synthesis and place & route are rerun on the design, at 154. Then, the design may be debugged again, at 156. Whenever the instrumentation logic needs to be modified, these operations, 152, 154, and 156, are repeated, as indicated by a loop in the flow chart. This prior art method is essentially equivalent to the initial instrumentation process, for example as shown inFIG. 1 , in that it requires complete rerunning of synthesis and place & route operations, which can be very time-consuming, among other things. - The present invention relates to methods and systems for designing, instrumenting, and debugging electronic circuits. According to an embodiment, a method for making incremental changes to instrumentation logic is provided. After a circuit is initially designed, certain signals are selected for instrumentation. Synthesis and place and route are then run on the design. During debugging of a circuit design, the instrumented signals may need to be modified. In an embodiment of the present invention, this may be done without rerunning synthesis and place and route by incrementally modifying the instrumentation logic.
- According to an embodiment of the present invention, a list of signals available for instrumentation is first built and it is presented to a user. The user modifies the instrumented signals, for example, by deselecting one or more existing instrumentation signals and/or adding new signals to be instrumented. The new signals are selected from the presented list of available signals. In certain embodiments, this is interactively and/or iteratively performed through a user interface. Then, the design is updated with the modified instrumented signals, e.g., by connecting and/or disconnecting the modified signals. Subsequently, partial rerouting is performed on the modified design with the updated instrumentation logic.
- According to some embodiments of the present invention, a list of available signals is built based on various criteria. For example, the signals that are accessible after the synthesis and place & route of the circuit design (e.g., stored in a place-and-route database) may be made available for incremental modification of instrumentation logic. In some cases, the available signal may need to have the counterpart in its HDL description, e.g., in the RTL source. In certain embodiments, only the signals that can be guaranteed to have the same functions before and after the synthesis and place & route are included in the list of available signals.
- In at least one embodiment of the present invention, a method is provided for incrementally updating instrumentation logic for a design of an integrated circuit having one or more signals. During the initial instrumentation, extra circuitry is added for instrumentation which may not be associated with any particular signals in the circuit design. In some embodiments, certain signals are marked so that they can be instrumented later using incremental instrumentation, that is, without rerunning synthesis and place & route on the design. Each of the extra instrumentation circuitry is associated with one of the following instrumentation types: (a) sample-only, (b) trigger-only, and (c) sample-and-trigger. In certain embodiments, the maximum number of each instrumentation type is fixed. During any subsequent modification of the instrumentation logic, the user may be presented with various information, for example, regarding the number of signals that can be additionally selected for each instrumentation type.
- Once the instrumentation logic is modified, rerouting is performed on the updated design with the modified instrumented signals. According to an embodiment of the present invention, one or more regions, blocks, nets, etc, are first determined which are affected by the change in the instrumentation logic. Then, the routing is performed in those affected regions only. In some cases, the routing may be performed on the whole circuit subsequent to, or concurrent with, the partial routing on the affected regions.
- Therefore, as summarized herein, the present invention provides, among other things, methods and systems for incrementally updating instrumentation logic in circuit designs without rerunning synthesis and place and route. According to an embodiment, instrumentation logic is incrementally changed by the following operations: Building a list of available signals, modifying the instrumentation logic, and rerouting the modified design. These and other embodiments, features, aspects, and advantages of the present invention will be apparent from the accompanying drawings and from the detailed description and appended claims which follow.
- The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
-
FIG. 1 illustrates a method for creating and debugging an integrated circuit design. The method includes an operation for initially instrumenting the circuit design (“initial flow”) to facilitate analysis, diagnosis, and debugging. -
FIG. 2 is a flow diagram illustrating a prior art method for modifying instrumented logic. The method is essentially equivalent to the initial instrumentation process, for example, shown inFIG. 1 . -
FIG. 3 is a block diagram illustrating a suitable computing environment in which certain aspects of the illustrated invention may be practiced. -
FIG. 4 shows a functional block diagram illustrating an exemplary instrumentation system according to an embodiment of the present invention. -
FIG. 5 shows a design flow according to an embodiment of the present invention. The exemplary process is illustrated in the context of designing and debugging an FPGA circuit. The diagram shows the “initial flow” as well as the “incremental flow” for incrementally modifying the instrumentation logic. -
FIG. 6 is a flow diagram illustrating a method according to an embodiment of the present invention. -
FIG. 7 is a flow diagram illustrating another method according to an embodiment of the present invention. -
FIG. 8 is a flow diagram illustrating yet another method according to an embodiment of the present invention. -
FIG. 9 is a block diagram illustrating an exemplary system according to an embodiment of the present invention. The figure shows that four signals from the user design are currently selected for instrumentation. -
FIG. 10 illustrates an exemplary method for incrementally modifying instrumentation logic according to an embodiment of the present invention. -
FIG. 11 is a flow chart illustrating a method for setting up initial instrumentation logic for an integrated circuit according to an embodiment of the present invention. - The present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which various exemplary embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art Likewise, for purposes of explanation, numerous specific details are set forth in the following description in order to provide a thorough understanding of the present invention. It will be evident, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known circuits, structures, devices, and techniques are not shown in detail in order not to obscure the understanding of the description of the present invention.
- Reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. Thus, the appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiment.
- The present invention provides methods and systems for incrementally updating the instrumentation logic in integrated circuit designs. During debugging of a circuit design, instrumented signals are modified without rerunning synthesis and place and route. According to an embodiment, instrumentation logic is incrementally changed by the following operations: Building a list of available signals, modifying or deleting one or more instrumented signals and/or adding additional signals for instrumentation, connecting or disconnecting the new and/or modified/deleted signals, and rerouting the design with modified signals.
- Referring now to
FIG. 3 , a block diagram illustrates a suitable computing environment in which certain aspects of the illustrated invention may be practiced. Thisexemplary system 200 can be used with various embodiments of the present invention. As will be appreciated by one of skill in the art, however, the present invention may be embodied as a method, data processing system or program product as well as an article of manufacture or an apparatus. Thus the scope of the invention should be determined by the appended claims and their legal equivalents, and not by the examples given. Note that while the block diagram ofFIG. 3 illustrates various components of a data processing system, it is not intended to represent any particular architecture or manner of interconnecting the components. It is to be appreciated that various components of the exemplary data processing system may be rearranged, and that certain implementations of the present invention may not require nor include all of the above components. It will also be appreciated that personal computers, laptops, and network computers, and other data processing systems such as cellular telephones, personal digital assistants, music players, etc. which have fewer components or perhaps more components may also be used with the present invention. The data processing system ofFIG. 3 may, for example, be a specialized computer system for use in computer-aided circuit design. - As shown in
FIG. 3 , the exemplarydata processing system 200 includes abus 202 which is coupled to a microprocessor(s) 204 and amemory 206 such as a ROM (read only memory) or a volatile RAM and a non-volatile storage device(s) 208. Thesystem bus 202 interconnects these various components together and also interconnects thesecomponents display devices 212 such as LCD screens and to peripheral devices such as input/output (I/O)devices O devices O controllers 214. The volatile RAM (random access memory) 206 is typically implemented as dynamic RAM (DRAM) which requires power continually in order to refresh or maintain the data in the memory. Themass storage 208 is typically a magnetic hard drive or a magnetic optical drive or an optical drive or a DVD ROM or other types of memory systems which maintain data (e.g. large amounts of data) even after power is removed from the system. Typically, themass storage 208 will also be a random access memory although this is not required. WhileFIG. 3 shows that themass storage 208 is a local device coupled directly to the rest of the components in the data processing system, it will be appreciated that the present invention may utilize a non-volatile memory which is remote from the system, such as a network storage device which is coupled to the data processing system through anetwork interface 218 such as a modem or Ethernet interface. Thebus 202 may include one or more buses connected to each other through various bridges, controllers and/or adapters as is well known in the art. In one embodiment, the I/O controller 214 includes a USB (universal serial bus) adapter for controlling USB peripherals and an IEEE 1394 (i.e., “firewire”) controller for IEEE 1394 compliant peripherals. Thedisplay controllers 210 may include additional processors such as GPUs (graphical processing units) and they may control one ormore display devices 212. - As will be appreciated by those skilled in the art, the content for implementing an embodiment of the method of the invention, for example, computer program instructions, may be provided by any machine-readable media which can store data that is accessible by the
system 200 shown inFIG. 3 , as part of or in addition to memory, including but not limited to cartridges, magnetic cassettes, flash memory cards, digital video disks, random access memories (RAMs), read-only memories (ROMs), and the like. In this regard, the exemplary data processing system is equipped to communicate with such machine-readable media in a manner well-known in the art. - It will be further appreciated by those skilled in the art that the content for implementing an embodiment of the method of the invention may be provided to the
system 200 from any external device capable of storing the content and communicating the content to thesystem 200. For example, in one embodiment of the invention, thesystem 200 may be connected to a network, and the content may be stored on any device in the network. - The present invention relates to methods and systems for designing, instrumenting, and debugging integrated circuits. In particular, at least one embodiment of the present invention provides a method for making incremental changes to the instrumentation logic of the integrated circuits. During the initial circuit design, certain signals are selected for instrumentation. Synthesis and place and route are then run on the design (“initial flow”). In the subsequent debugging operations of a circuit design, the instrumented signals may be incrementally modified without rerunning synthesis and place and route. This will be broadly termed “incremental flow” in this disclosure.
-
FIG. 4 shows a functional block diagram illustrating an exemplary instrumentation system according to at least one embodiment of the present invention. The diagram shown in the figure is not meant to represent any concrete implementation, and it is presented here for illustrative purposes only. This exemplary block diagram ofFIG. 4 includes aninstrumentor unit 252, which may be used, among other things, to add instrumentation circuitry to an integrated circuit design. In certain embodiments, the instrumented signals may be stored in a database for later use. The block diagram also includes the synthesis and place &route system 254 and a software orhardware debugger 256. Some of the functions related to incremental modification of the circuit design are included in aunit 258. Some embodiments of the present invention also comprise auser interface 260. The user interface may be used, for example, to allow the user to interactively modify the instrumentation logic. -
FIG. 5 illustrates a design flow according to some embodiments of the present invention. The flow describes an exemplary process for designing and debugging an integrated circuit, in particular, an FPGA circuit in this example. In some embodiments, the circuit design is created by writing a text representation of a circuit in Hardware Description Language (HDL). The text representation may then be compiled and a register transfer level (RTL) netlist may be generated. The RTL netlist, 302 in the figure, usually shows registers and other logic interconnected to show the flow of data through the circuit that was described in the text representation. Then, one or more signals in the design are selected and instrumented usinginstrumentor 304. During instrumentation, a user may select the debugging logic or specify the debugging hardware. Debugging logic is then inserted based on the user's selections. In certain embodiments, the user may select the number of instrumentation signals and the kind of instrumentation signal, such as trigger only, sample only, or trigger and sample. Then,synthesis 310 and place androute 312 are run on the instrumented design. Duringsynthesis 310, the RTL netlist may be mapped to a target architecture. The mapping operation converts the RTL level representation of the desired circuit into the equivalent circuit implemented using building blocks of the target architecture. A technology specific netlist is generated. Place-and-routing 312 then creates a design of circuitry in the target architecture, as indicated by ablock 314 inFIG. 5 . The synthesized and place-and-routedcircuit design 314 with the initial instrumentation logic may be debugged using adebugger 316. This process is indicated by anarrow 306 with a label “initial flow” in the figure. During debugging of the integrated circuit design, the designer may find that one or more signals that should have been instrumented were not or that one or more of the instrumented signals were not necessary. As illustrated earlier with respect to the flow chart ofFIG. 2 , this can be done by repeating theinitial flow 306 each time instrumentation logic is modified. This is a costly process, among other things. At least one embodiment of the present invention provides a method for incrementally modifying the instrumentation logic without rerunning synthesis and place and route, which is schematically represented by anarrow 308 with a label “incremental flow”. -
FIG. 6 is a flow chart illustrating an incremental flow according to an embodiment of the present invention. This exemplary process may be viewed in connection with, or subsequent to, an initial flow, for example, as illustrated inFIG. 1 . In particular, a circuit design has been created with an initial instrumentation logic in this example. The initial instrumentation logic is modified, atblock 352, for example, based on an input from a user (e.g., a circuit designer). According to an embodiment of the present invention, new synthesis and place & route operations on the updated circuit design is avoided, and instead only rerouting is performed on the modified instrumented signals, at 354. Then the design with modified instrumentation logic is debugged, at 356. This set of operations can be repeated each time the instrumentation logic needs to be modified without incurring the overhead of complete synthesis and place & route. -
FIG. 7 illustrates in further detail an exemplary method of incremental flow according to an embodiment of the present invention. At 402, a list of available signals is built. In one embodiment, the signals in the circuit design are analyzed to determine which signals are available for the user to select for instrumentation or deselect from instrumentation. For example, criteria such as whether the signal can be correlated to a signal in the HDL and whether the signal represents the same function in the netlist as in the HDL may be used to determine whether a signal will be available for user selection. In one embodiment, name matching may be used to match names of signals used in the HDL with names of nets in the netlist. In one embodiment, pattern matching may be used to match signals in the HDL with nets in the netlist. An analysis may then be done on the matched names to determine if they represent the same signal function. A list of available signals may then be displayed, where each signal corresponds to a signal in the HDL and represents the same function in the netlist as in the HDL. - At 404, one or more of the instrumented signals are modified. From the list of available signals, the user may then select the signals that he/she wants to modify and specify the type of instrumentation that he/she wants to be added, such as sample and trigger, trigger only, or sample only. In one embodiment, the selection of signals is done from the HDL. In one embodiment, a mark or highlighting may be added to a signal that has been selected for modification. In one embodiment, the number of signals that are instrumented may not exceed the number of signals initially instrumented for each kind of instrumentation, since the hardware created during the first instrumentation has not been changed. Therefore, for each additional signal that is selected for instrumentation, a signal that was initially instrumented must be deselected. A limit for each kind of instrumentation may be calculated and displayed, and an error message may be displayed when a user exceeds any of the limits. In one embodiment, extra instrumentation logic may be added to the design initially, for example, in
operation 104 ofFIG. 1 , to provide extra instrumentation signals that may be connected without disconnecting initially instrumented signals. For example, a user may select three signals to be instrumented initially: one sample and trigger, one sample only, and one trigger only. Instead of providing instrumentation logic for three instrumented signals, instrumentation logic may be provided for six signals: two sample and trigger, two sample only, and two trigger only. In this way, when the user decides to add a signal for instrumentation after debug, there is extra instrumentation logic in place to do so without having to disconnect an initially instrumented signal. - At
block 406 ofFIG. 7 , the connections of the modified signals are revised. For example, a previously instrumented signal that no longer needs to be instrumented is disconnected or a newly instrumented signal is connected. In one embodiment, these connection modifications are done using an editing tool that allows certain nets to be disconnected and other nets to be connected instead. The modified signals are then rerouted, at 408. In one embodiment, the rerouting is done on the modified nets and takes into account the congestion created by the rest of the design. In some instances, the rerouting may not be successful. In one embodiment, one or more registers in the instrumentation logic may be moved to increase the chance of success when connecting the modified nets. In one embodiment, one or more registers are reprogrammed with different inputs and/or outputs. In one embodiment, extra space is created in the initial design to allow room for rerouting of signals after debug. After the modified signals have been successfully rerouted, the circuit design may then be debugged again, as illustrated inblock 410. This method may be repeated each time the user wants to modify the instrumented signals. -
FIG. 8 illustrates another exemplary method according to at least one embodiment of the present invention. A list of available signals is first built, at 452, as in the exemplary process ofFIG. 7 . According to an embodiment of the present invention, a list of available signals is built based on various criteria. For example, the signals that are accessible after the synthesis and place & route of the circuit design (e.g., signals in the netlist) may be made available for incremental modification of instrumentation logic. In some cases, the available signal may need to have the counterpart in its HDL description, e.g., in the RTL source. In one embodiment, name matching may be used to match names of signals used in the HDL with names of nets in the netlist. In one embodiment, pattern matching may be used to match signals in the HDL with nets in the netlist. An analysis may then be done on the matched names to determine if they represent the same signal function. In certain embodiments, only the signals that can be guaranteed to have the same functions before and after the synthesis and place & route are included in the list of available signals. Atblock 454, a list of currently instrumented signals is created. Then the list of available signals and the list of currently instrumented signals are displayed to the user along with any additional information such as the number of available signal “slots” for each instrumentation type. In some embodiments, the two lists may be presented as a single table including all available signals with appropriate attributes, for example, indicating whether a certain signal is currently instrumented or not. - From the presented information including the lists of available signals and currently instrumented signals, the user may then deselect the instrumented signals that no longer need to be instrumented and/or select the signals that need to be added or modified, as illustrated in
block 456 ofFIG. 8 . The user can further specify the type of instrumentation associated with each signal to be instrumented, such as sample and trigger, trigger only, or sample only. The connections of the modified signals are then revised, atblock 458, based on the updated instrumentation logic. For example, a previously instrumented signal that no longer needs to be instrumented is disconnected or a newly instrumented signal is connected. In one embodiment, these connection modifications are done using an editing tool that allows certain nets to be disconnected and other nets to be connected instead. - Once the instrumentation logic is modified, rerouting is performed on the updated design with the modified instrumented signals, at 460 and 462 of
FIG. 8 . According to an embodiment of the present invention, first one or more regions, blocks, nets, etc, are determined which are affected by the change in the instrumentation logic, at 460. Then, the routing is performed in those affected regions only. In certain embodiments, the routing may be performed optionally on the whole circuit, at 462, subsequent to, or concurrent with, the partial routing on the affected regions. In cases the rerouting is not successful, one or more registers in the instrumentation logic may be moved to increase the chance of success when connecting the modified nets, or one or more registers may be reprogrammed with different inputs and/or outputs. In one embodiment, extra space is created in the initial design to allow room for rerouting of signals during a subsequent incremental flow process. - After the modified signals have been rerouted, the circuit design with an updated set of instrumented signals may then be debugged again, as illustrated in
block 464. This process may be repeated each time the user wants to modify the instrumentation logic, as indicated by a loop in the flow chart ofFIG. 8 . - Turning now to
FIG. 9 , a block diagram is depicted illustrating anexemplary system 500 according to an embodiment of the present invention. Auser design 502 may have been initially implemented, for example, according to a method of “initial flow” described earlier with respect toFIG. 1 orFIG. 5 . Theuser design 502 may have been further modified, for example, according to the methods described earlier with respect toFIGS. 6-8 . In this example design, foursignals sample signal 524. Thesignals registers outputs logic 504 orsample buffer 506 accordingly. - In some embodiments of the present invention, incremental changes may be made to the instrumentation logic according to the methods described in connection with
FIGS. 6-8 . A user may make signal selections from the HDL. A list of signals available for selection (not explicitly shown in the figure other than the instrumented signals) may be displayed for the user, as described earlier. The user may select one or more of the instrumentedsignals clock signal 508 is not available for modification. If the user deselects one of the instrumented signals, that signal will be disconnected from the corresponding register. A new signal may then be selected for instrumentation and connected to the available register. For example, the user may decide thatsignal 520 is not needed for instrumentation and he or she may deselect signal 520, which makesregister 510 available for other signals. If the user decides that another signal (from a list of available signals) needs to be instrumented, the new signal is selected for instrumentation and it may be connected to theavailable register 510. This new signal would be instrumented as trigger only sincesignal 520 was initially instrumented as trigger only. Thesignal 520 would be disconnected from the input ofregister 510 and the newly instrumented signal would be connected to the input ofregister 510. In some embodiments, additional instrumentation circuitry, which may not be associated with any particular signals, may be added during the initial instrumentation process. For example, register 510 may have been available withoutsignal 520 being connected to its input in the initial design. This will be further elaborated later with respect toFIG. 11 . Once the instrumented signals are modified, rerouting would then be done for the circuit design with the modified signals. If the rerouting is successful, the user may then proceed to debug the design. The process of making incremental changes to the instrumentation logic may be repeated each time the user wants to modify one or more of the instrumented signals without rerunning synthesis and place and route. - With reference to
FIG. 10 , an exemplary method is illustrated for incrementally modifying instrumentation logic according to an embodiment of the present invention. The exemplary method starts by displaying available signals to a user, at 602, where each signal may correspond to a signal in the HDL and represent the same function in the netlist as in the HDL. Currently instrumented signals and their instrumentation types are also displayed. Then, the user modifies one or more of the instrumented signals, at 604. From the list of available signals, the user may select the signals to be instrumented and specify the type of instrumentation. When the user is done with modifying instrumentation logic, it is analyzed at 606. For example, the number of signals that are to be instrumented may not exceed the number of signals initially instrumented for each type of instrumentation, as explained earlier. As certain instrumented signals are deselected, new signals may be added for instrumentation with the same instrumentation type. A limit for each kind of instrumentation may be calculated and displayed, for example, at 602. If the user updated instrumentation logic cannot be implemented for any reason, for example, because it exceeds any of the limits in the instrumentation types, then the user may be directed to try again, following the No branch atblock 608. In some embodiments, an error or warning message may be displayed, possibly with additional information, e.g., as to how to fix the problem. If the new instrumentation logic is considered valid, then the connections of the modified signals are revised, at 610. For example, previously instrumented signals that no longer need to be instrumented are disconnected and newly instrumented signals are connected, as illustrated in connection withFIG. 9 . This operation is repeated, as indicated by a loop including 610 and 612 in the flow chart ofFIG. 10 , until the instrumentation circuitry is completely revised reflecting the change in the instrumentation logic. Once the revision is completed, the modified signals are then rerouted, at 614. This exemplary method of incremental flow may be repeated each time the user wants to modify the instrumented logic without incurring the overhead of synthesis and trace and route. - As described earlier, extra instrumentation logic may be added to the integrated circuit design during the initial design phase so that extra instrumentation signals may be connected later without disconnecting the initially instrumented signals. For example, a user may select three signals to be instrumented initially: one sample and trigger, one sample only, and one trigger only. Instead of providing instrumentation logic for three instrumented signals, instrumentation logic may be provided for six signals: two sample and trigger, two sample only, and two trigger only. In this particular scenario, only the three signals are explicitly associated with the instrumentation logic, while three more signals may be instrumented later without having to disconnect any of the three initially instrumented signals. In some embodiments, certain signals are marked so that they can be instrumented later using incremental instrumentation, that is, without rerunning synthesis and place & route on the design. During the initial synthesis and place & route (e.g., initial flow of
FIG. 5 ), certain signals, which are not instrumented, may be removed, replaced, or otherwise modified (e.g., for optimization), and they may not be available for instrumentation during the incremental flow. In certain embodiments, this can be prevented by using special markers during the initial instrumentation phase. -
FIG. 11 shows a flow chart illustrating an exemplary method for instrumenting an integrated circuit according to an embodiment of the present invention. In this example, a first set of signals is first selected for instrumentation, at 702. In addition, a second set of signals is selected, at 704, which, while not necessary to be instrumented initially, may need to be instrumented later. These signals may be specially marked so that they will be guaranteed to be available in the netlist, for example. Then, instrumentation circuitry is added and connected to the signals in the first set, at 706. In certain embodiments, additional instrumentation circuitry may be added, at 708, so that they may be connected to any additional signals that need to be instrumented later. - Thus, methods, systems, and apparatuses for incrementally modifying instrumentation logic in circuit designs have been provided. Although the present invention has been described with reference to specific exemplary embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention as set forth in the claims. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/526,436 US20130014074A1 (en) | 2005-04-11 | 2012-06-18 | Incremental Modification of Instrumentation Logic |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US67082705P | 2005-04-11 | 2005-04-11 | |
US11/400,590 US8205186B1 (en) | 2005-04-11 | 2006-04-07 | Incremental modification of instrumentation logic |
US13/526,436 US20130014074A1 (en) | 2005-04-11 | 2012-06-18 | Incremental Modification of Instrumentation Logic |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/400,590 Continuation US8205186B1 (en) | 2005-04-11 | 2006-04-07 | Incremental modification of instrumentation logic |
Publications (1)
Publication Number | Publication Date |
---|---|
US20130014074A1 true US20130014074A1 (en) | 2013-01-10 |
Family
ID=46209654
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/400,590 Active 2026-10-05 US8205186B1 (en) | 2005-04-11 | 2006-04-07 | Incremental modification of instrumentation logic |
US13/526,436 Abandoned US20130014074A1 (en) | 2005-04-11 | 2012-06-18 | Incremental Modification of Instrumentation Logic |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/400,590 Active 2026-10-05 US8205186B1 (en) | 2005-04-11 | 2006-04-07 | Incremental modification of instrumentation logic |
Country Status (1)
Country | Link |
---|---|
US (2) | US8205186B1 (en) |
Family Cites Families (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5109353A (en) | 1988-12-02 | 1992-04-28 | Quickturn Systems, Incorporated | Apparatus for emulation of electronic hardware system |
US5416919A (en) | 1989-07-19 | 1995-05-16 | Sharp Kabushiki Kaisha | Semiconductor integrated circuit with functional blocks capable of being individually tested externally |
US5412260A (en) | 1991-05-03 | 1995-05-02 | Lattice Semiconductor Corporation | Multiplexed control pins for in-system programming and boundary scan state machines in a high density programmable logic device |
US5491793A (en) | 1992-07-31 | 1996-02-13 | Fujitsu Limited | Debug support in a processor chip |
KR960702643A (en) | 1993-05-28 | 1996-04-27 | 윌리암 에이. 호스킨스 | FIELD PROGRAMMABLE LOGIC DEVICE WITH DYNAMIC INTERCONNECTIONS TO A DYNAMIC LOGIC CORE |
US5544311A (en) | 1995-09-11 | 1996-08-06 | Rockwell International Corporation | On-chip debug port |
US5717699A (en) | 1996-07-18 | 1998-02-10 | Hewlett-Packard Company | Method and apparatus for accessing internal integrated circuit signals |
US6102964A (en) | 1996-10-28 | 2000-08-15 | Altera Corporation | Fitting for incremental compilation of electronic designs |
US6134707A (en) | 1996-11-14 | 2000-10-17 | Altera Corporation | Apparatus and method for in-system programming of integrated circuits containing programmable elements |
US5771240A (en) | 1996-11-14 | 1998-06-23 | Hewlett-Packard Company | Test systems for obtaining a sample-on-the-fly event trace for an integrated circuit with an integrated debug trigger apparatus and an external pulse pin |
US5951696A (en) | 1996-11-14 | 1999-09-14 | Hewlett-Packard Company | Debug system with hardware breakpoint trap |
GB9626412D0 (en) | 1996-12-19 | 1997-02-05 | Sgs Thomson Microelectronics | Diagnostic procedures in an integrated circuit device |
US5915083A (en) | 1997-02-28 | 1999-06-22 | Vlsi Technology, Inc. | Smart debug interface circuit for efficiently for debugging a software application for a programmable digital processor device |
US6094729A (en) | 1997-04-08 | 2000-07-25 | Advanced Micro Devices, Inc. | Debug interface including a compact trace record storage |
US5943490A (en) | 1997-05-30 | 1999-08-24 | Quickturn Design Systems, Inc. | Distributed logic analyzer for use in a hardware logic emulation system |
US5960191A (en) | 1997-05-30 | 1999-09-28 | Quickturn Design Systems, Inc. | Emulation system with time-multiplexed interconnect |
JP2002505024A (en) | 1997-06-13 | 2002-02-12 | シンポッド・インク | Concurrent hardware-software co-simulation |
US6157210A (en) | 1997-10-16 | 2000-12-05 | Altera Corporation | Programmable logic device with circuitry for observing programmable logic circuit signals and for preloading programmable logic circuits |
US6292765B1 (en) | 1997-10-20 | 2001-09-18 | O-In Design Automation | Method for automatically searching for functional defects in a description of a circuit |
US6286114B1 (en) * | 1997-10-27 | 2001-09-04 | Altera Corporation | Enhanced embedded logic analyzer |
US6247147B1 (en) | 1997-10-27 | 2001-06-12 | Altera Corporation | Enhanced embedded logic analyzer |
US6212650B1 (en) | 1997-11-24 | 2001-04-03 | Xilinx, Inc. | Interactive dubug tool for programmable circuits |
US6182268B1 (en) | 1998-01-05 | 2001-01-30 | Synplicity, Inc. | Methods and apparatuses for automatic extraction of finite state machines |
US6389586B1 (en) | 1998-01-05 | 2002-05-14 | Synplicity, Inc. | Method and apparatus for invalid state detection |
US6378093B1 (en) | 1998-02-10 | 2002-04-23 | Texas Instruments Incorporated | Controller for scan distributor and controller architecture |
US6188975B1 (en) | 1998-03-31 | 2001-02-13 | Synopsys, Inc. | Programmatic use of software debugging to redirect hardware related operations to a hardware simulator |
US6363520B1 (en) | 1998-06-16 | 2002-03-26 | Logicvision, Inc. | Method for testability analysis and test point insertion at the RT-level of a hardware development language (HDL) specification |
US6336087B2 (en) | 1998-07-24 | 2002-01-01 | Luc M. Burgun | Method and apparatus for gate-level simulation of synthesized register transfer level design with source-level debugging |
US6240376B1 (en) | 1998-07-24 | 2001-05-29 | Mentor Graphics Corporation | Method and apparatus for gate-level simulation of synthesized register transfer level designs with source-level debugging |
US6374370B1 (en) | 1998-10-30 | 2002-04-16 | Hewlett-Packard Company | Method and system for flexible control of BIST registers based upon on-chip events |
US6425101B1 (en) | 1998-10-30 | 2002-07-23 | Infineon Technologies North America Corp. | Programmable JTAG network architecture to support proprietary debug protocol |
US6301688B1 (en) | 1998-11-24 | 2001-10-09 | Agere Systems Optoelectronics Guardian Corp. | Insertion of test points in RTL designs |
US6263373B1 (en) | 1998-12-04 | 2001-07-17 | International Business Machines Corporation | Data processing system and method for remotely controlling execution of a processor utilizing a test access port |
US6516428B2 (en) | 1999-01-22 | 2003-02-04 | Infineon Technologies Ag | On-chip debug system |
US6107821A (en) | 1999-02-08 | 2000-08-22 | Xilinx, Inc. | On-chip logic analysis and method for using the same |
US6311317B1 (en) | 1999-03-31 | 2001-10-30 | Synopsys, Inc. | Pre-synthesis test point insertion |
US6456101B2 (en) | 1999-04-07 | 2002-09-24 | Agere Systems Guardian Corp. | Chip-on-chip testing using BIST |
US6438735B1 (en) | 1999-05-17 | 2002-08-20 | Synplicity, Inc. | Methods and apparatuses for designing integrated circuits |
US6321329B1 (en) | 1999-05-19 | 2001-11-20 | Arm Limited | Executing debug instructions |
US6591369B1 (en) | 1999-10-01 | 2003-07-08 | Stmicroelectronics, Ltd. | System and method for communicating with an integrated circuit |
US6460174B1 (en) | 1999-10-01 | 2002-10-01 | Stmicroelectronics, Ltd. | Methods and models for use in designing an integrated circuit |
US6567932B2 (en) | 1999-10-01 | 2003-05-20 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
US6449762B1 (en) | 1999-10-07 | 2002-09-10 | Synplicity, Inc. | Maintaining correspondence between text and schematic representations of circuit elements in circuit synthesis |
US6449736B1 (en) | 1999-10-20 | 2002-09-10 | Texas Instruments Incorporated | Method and apparatus for providing chained breakpoints in a microprocessor |
US6255845B1 (en) | 1999-11-16 | 2001-07-03 | Advanced Micro Devices, Inc. | Efficient use of spare gates for post-silicon debug and enhancements |
US6823497B2 (en) * | 1999-11-30 | 2004-11-23 | Synplicity, Inc. | Method and user interface for debugging an electronic system |
US6581191B1 (en) * | 1999-11-30 | 2003-06-17 | Synplicity, Inc. | Hardware debugging in a hardware description language |
US6931572B1 (en) | 1999-11-30 | 2005-08-16 | Synplicity, Inc. | Design instrumentation circuitry |
US6434735B1 (en) | 1999-12-16 | 2002-08-13 | Lsi Logic Corporation | Method for programming an FPGA and implementing an FPGA interconnect |
US6255836B1 (en) | 2000-01-12 | 2001-07-03 | Lsi Logic Corporation | Built-in self-test unit having a reconfigurable data retention test |
US6594802B1 (en) | 2000-03-23 | 2003-07-15 | Intellitech Corporation | Method and apparatus for providing optimized access to circuits for debug, programming, and test |
US6493852B1 (en) | 2000-05-08 | 2002-12-10 | Real Intent, Inc. | Modeling and verifying the intended flow of logical signals in a hardware design |
US6510534B1 (en) | 2000-06-29 | 2003-01-21 | Logicvision, Inc. | Method and apparatus for testing high performance circuits |
US6993738B2 (en) * | 2002-06-18 | 2006-01-31 | Ip-First, Llc | Method for allocating spare cells in auto-place-route blocks |
US6844757B2 (en) * | 2002-06-28 | 2005-01-18 | Lattice Semiconductor Corp. | Converting bits to vectors in a programmable logic device |
US7076751B1 (en) * | 2003-01-24 | 2006-07-11 | Altera Corporation | Chip debugging using incremental recompilation |
US6958545B2 (en) * | 2004-01-12 | 2005-10-25 | International Business Machines Corporation | Method for reducing wiring congestion in a VLSI chip design |
-
2006
- 2006-04-07 US US11/400,590 patent/US8205186B1/en active Active
-
2012
- 2012-06-18 US US13/526,436 patent/US20130014074A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US8205186B1 (en) | 2012-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6175946B1 (en) | Method for automatically generating checkers for finding functional defects in a description of a circuit | |
US6675310B1 (en) | Combined waveform and data entry apparatus and method for facilitating fast behavorial verification of digital hardware designs | |
US6678644B1 (en) | Integrated circuit models having associated timing exception information therewith for use with electronic design automation | |
US6496972B1 (en) | Method and system for circuit design top level and block optimization | |
US6438731B1 (en) | Integrated circuit models having associated timing exception information therewith for use in circuit design optimizations | |
US7363610B2 (en) | Building integrated circuits using a common database | |
EP0433066A2 (en) | Common symbol library architecture | |
US8584062B2 (en) | Tool suite for RTL-level reconfiguration and repartitioning | |
US8296740B2 (en) | Annotating system traces with control program information and presenting annotated system traces | |
CN100514341C (en) | Assertion testing program and method thereof | |
JP2002149727A (en) | Design of interface base using table type paradigm | |
US10437946B1 (en) | Using implemented core sources for simulation | |
US7827517B1 (en) | Automated register definition, builder and integration framework | |
US6687894B2 (en) | High-level synthesis method, high-level synthesis apparatus, method for producing logic circuit using the high-level synthesis method for logic circuit design, and recording medium | |
US20070005321A1 (en) | Building integrated circuits using logical units | |
CN100442293C (en) | Method for combination of original files of hardware design language and checking data files | |
US7657851B2 (en) | Device, system, and method for correction of integrated circuit design | |
US6453276B1 (en) | Method and apparatus for efficiently generating test input for a logic simulator | |
JP2010003281A (en) | Verification support program, verification support device and verification support method | |
US6810508B1 (en) | Method for automatically-remapping an HDL netlist to provide compatibility with pre-synthesis behavioral test benches | |
US20130159591A1 (en) | Verifying data received out-of-order from a bus | |
US8205186B1 (en) | Incremental modification of instrumentation logic | |
US6543034B1 (en) | Multi-environment testing with a responder | |
US7086017B1 (en) | Method of post-implementation simulation of a HDL design | |
CN108334313A (en) | Continuous integrating method, apparatus and code management system for large-scale SOC research and development |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SYNPLICITY, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LAROUCHE, MARIO;REEL/FRAME:029094/0490 Effective date: 20060407 Owner name: SYNPLICITY, LLC, CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:SYNPLICITY, INC.;REEL/FRAME:029094/0470 Effective date: 20080516 Owner name: SYNOPSYS, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SYNPLICITY, LLC;REEL/FRAME:029094/0456 Effective date: 20081028 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |