US7952584B2 - Method of displaying delay time, device and storage medium - Google Patents

Method of displaying delay time, device and storage medium Download PDF

Info

Publication number
US7952584B2
US7952584B2 US12/028,527 US2852708A US7952584B2 US 7952584 B2 US7952584 B2 US 7952584B2 US 2852708 A US2852708 A US 2852708A US 7952584 B2 US7952584 B2 US 7952584B2
Authority
US
United States
Prior art keywords
path
delay time
pin
delay
branched
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.)
Expired - Fee Related, expires
Application number
US12/028,527
Other versions
US20080129277A1 (en
Inventor
Hiroyuki Sugiyama
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Assigned to FUJITSU LIMITED reassignment FUJITSU LIMITED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SUGIYAMA, HIROYUKI
Publication of US20080129277A1 publication Critical patent/US20080129277A1/en
Application granted granted Critical
Publication of US7952584B2 publication Critical patent/US7952584B2/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis

Definitions

  • the present invention relates to a technique of displaying delay times of signals occurring on paths on an electronic circuit that has been designed.
  • Timing analysis is one of these analyses. Timing analysis is performed in order to check whether or not a failure (such as a malfunction) may be caused by a time difference between the signals transmitted on the paths. Timing analysis includes the setup-time check and the hold-time check. In the setup-time check, it is checked whether or not the timing at which the FF or the like takes in data is too late. In the hold-time check, it is confirmed whether or not the timing at which an FF or the like takes in data is too early. The various analyses including timing analysis can be performed automatically.
  • the failures detected in the timing analysis have to be removed.
  • the design has to be modified. This modification is usually made in such a manner that the time differences are examined for each line between the pins included in the path on which the failure was detected, and at least one line between the pins that is to be adjusted is determined; thereafter, the delay time on the determined line is adjusted. Accordingly, designers have had to perform complicated operations for this adjustment. On the basis of this situation, it can be thought that facilitating design modification is important.
  • Patent Document 1 discloses a conventional delay time display device that displays delay times existing on the predetermined path. This delay time display device displays delay times caused by the cells being connected to a fixed signal line or by the delay time difference between them. Thereby, the clock distribution circuit using fixed distribution lines is assumed, and the delay time difference (clock skew) between the clock signals distributed by the distribution circuit to the respective paths is easily understood.
  • the clock distribution circuit is commonly used to provide clock signals to a plurality of pins. However, a failure may occur on the path that is conveying the clock signals provided by the clock distribution circuit.
  • the signals are also provided to at least one pin arranged on a path, and a plurality of connection destinations are set on each pin. Therefore, a great increase in the operation efficiency cannot be expected even when the delay time on a part of the paths is displayed.
  • a delay time display method is a method for displaying a delay time of a signal delay caused on a path on a designed electronic circuit, comprising:
  • a delay time display device is based on the assumption that the delay time of a signal delay caused on a path on a designed electronic circuit can be displayed, and comprises:
  • delay time obtainment means obtaining, when there is a pin at which the signal is branched, a first delay time on a path including the pin and a second delay time on a path at and subsequent to the pin as respective delay times on the path;
  • drawing means assuming a plane having as coordinate axes a first direction and a second direction intersecting the first direction, representing the first delay time as length in the first direction and representing the second delay time as length in the first direction from an origin position that is different from that of the first delay time in the second direction and the same in the first direction.
  • a delay time display device further comprises in addition to the constituents in the first aspect:
  • path specifying means specifying a path that is to be a drawing target in the device from among paths on the electronic circuit:
  • the drawing means performs drawing to represent the delay time on the path specified by the path specifying means.
  • a storage medium is accessible to a computer to display a delay time of a signal caused on a path on a designed electronic circuit, and stores a program to realize a function, the function comprising:
  • a delay time of a signal delay caused on a path on an electronic circuit is represented as length on a first direction on a plane having as coordinate axes the first direction and a second direction perpendicular to the first direction, and when there is a pin at which a signal is branched on a path, the delay time on the path at and subsequent to that pin is represented as length in the first direction from an origin position that is different from that of the first delay time in the second direction and the same first direction.
  • delay times are represented as length in the first direction, the differences between the delay times over paths can be visually recognized easily.
  • a path at and subsequent to the branching pin is represented as length from an origin position that is different from that of the first delay time in the second direction and the same in the first direction; accordingly, delay times on a plurality of branching positions and the portions at and subsequent to the positions (the portions not in common) can be recognized. As a result of this, the modification of design for the timing analysis and failure removal becomes easier for user, and a higher working efficiency is realized easily.
  • the percentage at which the delay time between the pins affects the entire delay time, the degree of the effect that will be caused when that delay time between the pins is changed, the line between pins involving a delay time that has to be modified, and the like can all be determined easily. Accordingly, user can operate with greater efficiency.
  • FIG. 1 shows a configuration of a delay time display device according to the present embodiment
  • FIG. 2 shows an example of a hardware configuration of a computer that can implement a delay time display device
  • FIG. 3 shows a delay time display window
  • FIG. 4 shows a first example of an electronic circuit
  • FIG. 5 shows an example of the contents of an SDF file used for the exemplary electronic circuit shown in FIG. 4 ;
  • FIG. 6 shows a data configuration of a tree table
  • FIG. 7 shows a data configuration of a delay table
  • FIG. 8 shows a second example of the electronic circuit
  • FIG. 9 shows a tree table created by the exemplary electronic circuit shown in FIG. 8 ;
  • FIG. 10 shows a delay tree drawn by the exemplary electronic circuit shown in FIG. 8 ;
  • FIG. 11 shows a method for displaying information in response to a position of a mouse cursor in a delay information area
  • FIG. 12 is a flowchart for the entire process
  • FIG. 13 shows a flowchart for a logical coordination determination process
  • FIG. 14 is a flowchart for a delay table creation process
  • FIG. 15 is a flowchart for a path selection process that uses instance names.
  • FIG. 16 is a flowchart for a path selection process based on delay times.
  • FIG. 1 shows a configuration of the delay time display device according to the present embodiment.
  • a data input unit 1 inputs a data file 3 a expressing a designed electronic circuit.
  • a data file 3 a expressing a designed electronic circuit.
  • an SDF (Standard Delay Format) file is used as an example of the data file 3 a .
  • the SDF file stores the delay times and the connection relationships between the pins. It is also possible to input files such as a library, a net list, and a wire length database instead of the SDF file 3 a.
  • FIG. 4 shows an example of the electronic circuit.
  • FIG. 5 shows an example of the contents of the SDF file used for the exemplary electronic circuit shown in FIG. 4 .
  • PI 1 ”, “X 1 ” and the like in FIG. 4 are instance names for uniquely expressing the pin or cell. The explanation is given by using these symbols for the pins and cells.
  • cell X 1 includes two cells AA and BB, and cell X 2 includes cell CC.
  • Pin PI 1 is connected to pin B in cell AA, and pin X in cell AA is connected to pin A in cell BB.
  • Pin X in cell BB is connected to pin S in cell CC, and pin X in cell CC is connected to pin PO 1 .
  • connection relationships and the delay times between pin PI 1 and pin B in cell AA, pin X in cell AA and pin A in cell BB, pin X in cell BB and pin S in cell CC, and between pin X in cell CC and pin PO 1 are described at the portions marked with the symbol “*1”.
  • the delay times between pin A in cell AA and pin X, and between pin B and pin X are described at the portions marked “*2”.
  • the delay time between pin A in cell BB and pin X is described at the portion marked “*3”.
  • the delay time between pin S in the cell CC and pin X is described at the portion marked “*4”.
  • An operation unit 2 receives instructions given by the user (designer).
  • a storage unit 3 stores various pieces of data including the SDF file 3 a input through the data input unit 1 .
  • a data processing unit 4 creates various tables 3 b and 3 c used for displaying the delay times, and performs a process of drawing images of the times of signal delays that are caused on the paths. To perform this process, a table creation unit 4 a and a drawing unit 4 b are provided.
  • a display unit 5 causes a display device to display the image drawn by the data processing unit 4 .
  • FIG. 2 shows an example of a hardware configuration of a computer that can implement the above delay time display device.
  • the delay time display device may be implemented by using a plurality of computers (data processing devices), the present embodiment is explained on the assumption that one computer having the configuration of FIG. 2 is used to implement the present invention.
  • the computer shown in FIG. 2 comprises a CPU 21 , a memory unit 22 , an input unit 23 , an output unit 24 , an external storage device 25 , a medium driving device 26 , and a network connection device 27 in such a manner that they are connected to one another via a bus 28 .
  • the configuration shown in FIG. 2 is an example, and the scope of the present invention is not limited to this configuration.
  • the CPU 21 is a central processing unit for controlling the entirety of the computer.
  • the memory 22 is a memory unit such as a RAM unit or the like for temporarily storing data, and programs or data stored in a transportable storage medium MD are temporarily stored in the memory 22 .
  • the transportable storage medium MD is accessed by the external storage device 25 or the medium driving device 26 .
  • the CPU 21 reads the programs into the memory unit 2 to execute the programs, and controls the entirety of the computer.
  • the input unit 23 is connected to an input device such as a keyboard, a mouse, or the like, or any device contains at least one of such input devices.
  • the input unit 23 detects the operations of the input devices by the user, and transmits the detection results to the CPU 21 .
  • the output unit 24 is connected to, for example a display device, or any device contains the display device.
  • the output unit 24 displays on the display device the data transmitted under the control of the CPU 21 .
  • the network connection device 27 is used for performing communications with external devices via a network such as the intranet, the Internet, or the like.
  • the external storage device 25 is, for example, a hard disk device, and is mainly used for storing various pieces of data and programs.
  • the medium driving unit 26 accesses a transportable storage medium MD such as a flexible disk, an optical disk (including CD-ROM, CD-R, DVD, and the like), a magneto-optical disk, or the like.
  • a transportable storage medium MD such as a flexible disk, an optical disk (including CD-ROM, CD-R, DVD, and the like), a magneto-optical disk, or the like.
  • the input unit 1 shown in FIG. 1 is implemented by, for example, the CPU 21 , the memory unit 22 , the external storage device 25 , the medium driving device 26 , and the network connection device 57 connected to one another via the bus 28 .
  • the operation unit 2 is implemented by, for example, the CPU 21 , the memory unit 22 , the input unit 23 , and the external storage device 25 connected to one another via the bus 28 .
  • the storage unit 3 is implemented by, for example, at lease one of the external storage device 25 , the medium driving device 26 , and the network connection device 27 .
  • the data processing unit 4 is implemented by, for example, the CPU 21 , the memory unit 22 , and the external storage device 25 connected to one another via the bus 28 .
  • the display unit 5 is implemented by, for example, the CPU 21 , the memory unit 22 , the output unit 24 , and the external storage device 25 connected to one another via the bus 28 .
  • the data processing unit 4 shown in FIG. 1 draws the delay time display window as shown in FIG. 3 , and causes the display unit 5 to display the window on the display device.
  • the delay time display window drawn by the data processing unit 4 is explained specifically.
  • the delay time display window includes an information display area 31 used for displaying pieces of delay time information on the respective paths, and an operation area 32 for receiving various instructions given by the user.
  • the information display area 31 includes a delay information area 31 a used for displaying delay information corresponding to the position of the mouse cursor, and a tree display area 31 b used for displaying pieces of delay time information on the respective paths in the form of a tree.
  • the operation area 32 includes a “zoom-in” button 32 a used to enlarge the displayed information that is being pointed at by the mouse cursor, a “zoom-out” button 32 b used to reduce the size of the displayed information that is being pointed at by the mouse cursor, a “fit” button 32 c used to make the display of the entire tree an appropriate size, two input boxes 32 d and 32 e for inputting instance names as the display targets, and two input boxes 32 f and 32 g for inputting the delay times of the targets.
  • the above tree is referred to as a “delay tree” hereinafter.
  • the delay tree is displayed in the form of a bar graph in which the bars extend in the horizontal direction (X-axis direction) and such bars are arranged in the vertical direction (Y-axis direction).
  • Each bar corresponds to one path, and the length in the vertical direction represents the delay time.
  • the shaded boxes represent the delay times caused by the wiring (referred to as the “net delay time” hereinafter), and the non-shaded boxes represent the delay times caused by the transmission in the cells (referred to as the “cell delay time” hereinafter).
  • each bar expresses the delay time of one of the constituent elements (cell, wire) that constitute the path.
  • the delay information area 31 a the name of the instance whose delay time is expressed by the box being pointed at by the mouse cursor, and the delay time on the path corresponding to that position are expressed.
  • “abcd.in0” expresses the instance name
  • “432 ps” expresses the delay time at the position on the path being pointed at by the mouse cursor.
  • the bars arranged in the vertical direction have portions for expressing the respective previous situations (the direction that leaves from the operation area 32 ).
  • the bars arranged in the vertical direction represent the delay times on and subsequent to the branching point of the path (referred to as “branch source path” hereinafter) on which the signals are branched from the path whose delay time is represented by the bar for the previous portion into the plurality of paths (hereinafter, referred to as “branched path”).
  • branch source path referred to as “branch source path” hereinafter
  • branched path a portion shared by a plurality of paths is represented by a bar for one path
  • a portion that is not shared by a plurality of paths is represented on a path-by-path basis.
  • the farther from the origin the place where the signal is branched is, the higher the corresponding bar is arranged in the vertical position.
  • the bars for the branched path are arranged in such a manner that the position of the branching point of the branch source path is used as the origin in order to allow the user to understand from which portion the branch paths start. Thereby, the user can easily understand on which point the respective paths are branched.
  • the respective bars represent the delay time of the entirety together with the delay time for each of the constituent elements on the paths.
  • the bar graph represents the connection relationships between the paths, and thus the timing analysis that uses the connection relationships can be performed easily.
  • the delay time display window is drawn by executing the following processes. This drawing of the delay time display window will be explained by referring to FIGS. 6 through 11 .
  • the data processing unit 4 creates the tree table 3 b for each pin by referring to the SDF file 3 a , and also creates the delay table 3 c for each end-point pin by referring to the created tree table 3 b .
  • FIG. 6 shows the data configuration of the tree table 3 b .
  • FIG. 7 shows the data configuration of the delay table 3 c.
  • the tree table 3 b stores, in the form of data, a pin name, a delay time caused while a signal is being output from that pin (this is denoted by “interval delay” in the drawings), an integrated value of a delay time from the origin (this is denoted by “integrated delay from origin” in the drawings), a pointer to the tree table 3 b of the pin that receives a signal from the corresponding pin (this is denoted by “pointer to next stage pin data” in the drawings), a pointer to the tree table 3 b for another pin receiving a signal from the corresponding pin (this is denoted by “pointer to branch pin data” in the drawings), a pointer to the tree table 3 b of a pin receiving a signal (this is denoted by “pointer to previous stage pin data” in the drawings), and a display flag. There are stored the same number of pointers to the branch pin data as the number of branches of the signals. As the end-point pin, zero or NULL
  • the boxes containing “a”, “3”, and “3” represent the tree tables 3 b in which the pin name is “a”, the interval delay is “3”, and the integrated delay from the origin is “3”. This rule is applied to the other boxes. Also, the boxes containing “o”, “p”, or “q” represent the tree tables 3 b of the input pins respectively having four FFs that serve as the end points in the exemplary electronic circuit shown in FIG. 8 .
  • the delay table 3 c created for each end-point pin stores, in the form of data, a pointer to the tree table 3 b of an end-point pin (this is denoted by “pointer to end-point pin” in the drawings), and a path delay value.
  • the path delay value is data stored, as the integrated delay from the origin, in the tree table 3 b that is being pointed at by the pointer.
  • the data table creation unit 4 a included in the data processing unit 4 creates the above tree table 3 b and the delay table 3 c .
  • the tree table 3 b stores the pointers to the tree tables 3 b for the pins that output the signals received from the corresponding pins, categorizing them so that there is a group of pointers stored in the next stage pin data and a group of stored in the branch pin data. Thereby, it is possible to discriminate the path running from the origin to the end point and the path that transmits the signals branched from the path, and to determine the pin at which the signal is branched.
  • the drawing unit 4 b draws the delay time display window as shown in FIG. 3 by referring to the tree table 3 b .
  • the delay tree is drawn in the tree display area 31 b as shown in FIG. 10 .
  • the drawing unit 4 b determines the maximum value (Xmax, Ymax) of the logical coordinate in the tree display area 31 b as shown below.
  • the real coordinate and the logical coordinate can correspond to each other. Accordingly, the coordinate value of the X-axis of the mouse cursor directly represents the delay time, and the coordinate value of the Y-axis directly represents the path. Thereby, the drawing unit 4 b determines the instance name and the delay time on the path corresponding to the position of the mouse cursor without having to perform a special conversion, and shows these pieces of information in the delay information area 31 a as shown in FIG. 11 .
  • the operation area 32 includes two input boxes 32 d and 32 e for specifying, by the instance name, the display target among the delay tables, and two input boxes 32 f and 32 g for specifying, by the delay time, the display target among the delay tables.
  • the instance name of the end-point pin is input.
  • the drawing unit 4 b determines the delay tables 3 c that store the pin names corresponding to the input instance names, performs tracing in the forward direction starting from the tree table 3 b being pointed at by the pointer in the delay table 3 c , and sets, to ON, only the flags in the tree tables 3 b that have been referred to during this tracing.
  • the drawing unit 4 b determines the delay table 3 c storing the path delay value corresponding to the delay time that satisfies the conditions specified by the input delay time, and performs tracing in the forward direction starting from the tree table 3 b specified by the pointer stored in the table 3 c , and sets, to ON, only the flags in the tree tables 3 b that have been referred to during this tracing. Thereby, only the delay tables 3 b in which the display flags are ON are drawn. Thereby, only the delay times on the paths that the user desires to know are drawn.
  • FIGS. 12 through 16 the processes represented by the respective flowcharts in FIGS. 12 through 16 are implemented by, for example, the CPU 21 reading into the memory unit 22 , and executing, the program stored in the external storage device 25 .
  • FIG. 12 is a flowchart for the entire process. First, the entire process is explained in detail by referring to FIG. 12 .
  • step S 11 the forward-path tracing is performed from the origin pin (e.g., the pin to which a clock signal is input) by referring to the SDF file 3 a specified, and data to be stored in the tree table 3 b for each pin is collected.
  • step S 12 the tree table (denoted by “clock tree table” in the drawings) 3 b is created by using the collected pieces of data for each pin. Thereafter, the process proceeds to step S 13 , and the drawing process is executed for displaying the delay time display window as shown in FIG. 3 . Thereafter, this series of processes is terminated.
  • the SDF file 3 a is specified depending upon, for example, where the SDF file is stored. Thus, depending upon the place in which the specified SDF file 3 a is stored, a process for obtaining the SDF file 3 a may be executed.
  • the operations of the buttons 32 a through 32 c arranged on the operation area 32 and the data for input in the input boxes 32 d through 32 g correspond to the execution of the drawing process.
  • the flowcharts shown in FIGS. 13 through 16 are flowcharts for the subroutines executed in the drawing process.
  • FIG. 13 shows a flowchart for the logical coordination determination process. This determination process determines the maximum value (Xmax, Ymax) of the logical coordination for roughly drawing the delay tree in the tree display area 31 b.
  • step S 21 zero is assigned respectively to the variables Xmax and Ymax.
  • step S 22 it is determined whether or not the pointer to the next stage pin data of the target tree table 3 b is NULL.
  • the table 3 b is of the end-point pin, NULL is stored as the pointer in that table 3 b , and accordingly, the determination result is YES, and the process proceeds to step S 24 .
  • the determination result is NO, and the process proceeds to step S 23 .
  • step S 23 it is determined whether or not there is a tree table 3 b that is to be the next target.
  • the determination result is YES, and a series of the processes is terminated after updating the variables Xmax and Ymax for the purpose of having margins.
  • the determination result is NO, and the process returns to the above step S 22 , and one of the remaining tree tables 3 b is selected to be the target tree table for performing the determination process for that table.
  • step S 24 executed when the determination result in step S 22 is YES, the value of the variable Ymax is incremented, and the integrated delay from the target tree table 3 b is assigned to the variable Xx.
  • step S 25 it is determined whether or not the value of the variable Xx is greater than the value of the variable Xmax. When this relationship between the values is satisfied, the determination result is YES, and the value of the variable Xx is assigned to the variable Xmax in step S 26 . Thereafter, the process proceeds to step S 23 . If this relationship is not satisfied, the determination result is NO, and the process proceeds to step S 23 without executing any other processes.
  • FIG. 14 is a flow chart for the delay table creation process. This process will be explained in detail by referring to FIG. 14 .
  • step S 31 the delay table 3 c (denoted by “clock path delay table” in the drawings) is initialized.
  • step S 32 it is determined whether or not the pointer to the next stage pin data in the target tree table 3 b is NULL. When that table 3 b is of the end-point pin, NULL is held as the pointer to that pin. Thus, the determination result is YES, and the process proceeds to step S 33 . If the above table 3 b is not of the end-point pin, the determination result is NO, and the process proceeds to step S 34 .
  • step S 33 a delay table 3 c storing a pointer to the target tree table 3 b and the integrated delay from that table 3 b is created.
  • step S 34 to be executed thereafter it is determined whether or not there is a tree table 3 b that has to be the next target. When there are no more tables 3 b to be the next target, the determination result is YES, and the series of processes is terminated. Where there is at least one more table to be the next target, the determination result is NO, and the process returns to step S 32 above, one of the remaining tree tables 3 b is selected to be the target tree table 3 b , and the determination process is executed on that tree table 3 b.
  • the subroutines whose flowcharts are shown in FIGS. 13 and 14 are executed before the first delay time displaying window is drawn. Thereby, the delay tree is appropriately drawn in the tree display area 31 b.
  • FIG. 15 is a flowchart for the path selection process that uses instance names. This selection process is executed when the user input instance names into the input boxes 32 d and 32 e .
  • the instance names (or canonical representation) specifying the end-point pins to be used for the confirmation of the clock skew are input.
  • step S 41 all the display flags in the tree tables 3 b are initialized to OFF.
  • step S 42 the paths are specified in which the end-point pins are the instance names that have been input into the input boxes 32 d and 32 e as the display path- 1 and the display path- 2 .
  • step S 43 a search is performed in order to extract one display table 3 c . After this extraction, the process proceeds to step S 44 .
  • step S 44 it is determined whether or not the pin name of the tree table 3 b being pointed at by the pointer in the extracted delay table 3 c is a table specified by one of the instance names input into the input boxes 32 d and 32 e .
  • the determination result is YES, and the process proceeds to step S 45 . Otherwise, the determination result is NO, and the process proceeds to step S 47 .
  • step S 45 the pin having the pin name of the tree table 3 b being pointed at by the pointer in the extracted delay table 3 c is determined to be the origin for tracing.
  • step S 46 the back tracing is performed from that pin, and the display flags in the tree tables 3 b that have been referred to while that tracing was being performed are set to ON. Thereafter, the process proceeds to step S 47 .
  • step S 47 it is determined whether or not there are other delay tables that have to be extracted. When there are such tables, the determination result is NO, and the process returns to the above step S 43 for extracting the tables 3 c . When there is not such a table, the determination result is YES, and the process proceeds to step S 48 , and the delay tree corresponding only to the tree tables 3 b whose display flags are ON are drawn and displayed. Thereafter, the series of the processes is terminated.
  • the tree table 3 b whose display flag is ON is for the pin constituting at least one of the two paths that have, as the end-point pins, the instance names input into the input boxes 32 d and 32 e by the user. Accordingly, the delay tree that represents the delay times of the two paths is displayed on the tree display area 31 b.
  • FIG. 16 is a flowchart for the path delay selection process based on the delay times. This selection process is executed when the user has input the delay time into at least one of the input boxes 32 f and 32 g.
  • step S 51 all the display flags in the tree tables 3 b are initialized to OFF.
  • step S 52 the delay times input into the input boxes 32 f and 32 g are respectively assigned to the variables Vmax and Vmin.
  • step S 53 to be executed next the path delay value (denoted by “clock path delay” in the drawings) in the target delay table 3 d that is among the delay tables 3 d is assigned to the variable Valx.
  • the delay that has been input into the input box 32 f is denoted as “specified upper limit value”
  • the delay time that has been input into the input box 32 g is denoted as “specified lower limit value”.
  • step S 54 subsequent to step S 53 , the specified contents as the variables Vmax and Vmin are checked.
  • the process proceeds to step S 59 . Thereby, all the paths become the targets of display.
  • a delay time has been input into at least one of the input boxes 32 f and 32 g , the relationship between the input box in which the delay time has been input and that delay time is determined, and the processes in accordance with the relationship are executed.
  • step S 55 it is determined whether or not the value of the variable Valx is equal to or greater than the variable Vmax.
  • the determination result is YES, and the process proceeds to step S 59 .
  • the determination result is NO, and the process proceeds to step 61 .
  • step S 54 When a delay time has been input only in the input box 32 g , this status is detected in step S 54 . Thereafter, in step S 56 , it is determined whether or not the variable Valx is equal to or smaller than the variable Vmax. When the variable Valx is equal to or smaller than the variable Vmax, the determination result is YES, and the process proceeds to step S 59 . When the variable Valx is not equal to or smaller than the variable Vmax, the determination result is NO, and the process proceeds to step S 61 . Thereby, the paths having path delay values in the delay tables 3 c equal to or smaller than Vmax become the targets to be displayed.
  • step S 54 When a delay time smaller than the delay time in the input box 32 g has been input into the input box 32 f , this status is detected in step S 54 , and in step S 57 , it is determined whether or not the variable Valx is equal to or greater than the variable Vmin and is equal to or smaller than the variable Vmax.
  • the determination result is YES, and the process proceeds to step S 59 .
  • the determination result is NO, and the process proceeds to step S 61 .
  • the paths having the path delay values in the delay tables 3 c within the range specified by the variables Vmin and Vmax become the targets to be displayed ( FIG. 3 ).
  • step S 54 When a delay time greater than the delay time in the input box 32 g has been input into the input box 32 f , this status is detected in step S 54 , and the process proceeds to step S 58 . Thereafter, it is determined whether or not the variable Valx is equal to or smaller than the variable Vmin or is equal to or greater than the variable Vmax.
  • the determination result is YES, and the process proceeds to step S 59 .
  • the determination result is NO, and the process proceeds to step S 61 .
  • the paths having path delay values in the delay tables 3 c that are equal to or smaller than the variable Vmin or that are equal to or greater than the variable Vmax become the targets to be displayed.
  • step S 59 the pin having the pin name of the tree table 3 b being pointed at by the pointer in the delay table 3 c in which the path delay value was assigned to the variable Valx in step S 54 is determined as the origin for tracing.
  • step S 60 backward tracing is performed from that pin, and the display flags in the tree tables 3 b that have been referred to in the tracing are set to ON. Thereafter, the process proceeds to step S 61 .
  • step S 61 it is determined whether or not there remains a delay table 3 c that has to be the target.
  • the determination result is NO, and the process proceeds to the above step S 53 , and the path delay value is assigned to a variable Valx for a new table 3 c to be the target.
  • the determination result is YES, the process proceeds to step S 62 , then the tree of the tree tables 3 b whose display flags are in an ON state are drawn and displayed. Thereafter, the series of processes is terminated.
  • the display flags only in the tree tables 3 b of the pins constituting the path that satisfies the conditions specified by the input delay time are set to ON.
  • a delay time has not been input into the input boxes 32 f or 32 g , it is considered that all the paths satisfy the conditions, and all the flags in the tree tables 3 b are set to ON. Thereby, it is possible to specify various conditions by changing the manner of inputting delay times in the input boxes 32 f and 32 g.
  • the bars in the delay tree are arranged in the vertical direction (on the Y-axis) depending on the point at which signals are branched.
  • the bars may be arranged in the vertical direction depending on other factors.
  • the bars may be vertically arranged depending on the delay times (the path delay value in the delay table 3 c ) on the entire path. It is also possible to prepare a plurality of options to be selected by the user.
  • a part or a whole of the program for implementing the above described delay time display device or the variations thereof may be distributed in the form of the external storage device 25 , and also may be distributed in the form of the storage medium MD that the medium driving device 26 can access. Also, this program may be distributed via communications media that constitute communications networks.

Abstract

A delay time of a signal delay caused on a path on an electronic circuit is represented as length in a first direction on a plane having as coordinate axes the first direction and a second direction intersecting the first direction. When there is a pin at which a signal is branched on a path, a delay time on the path at and subsequent to that pin is represented as length in the first direction from an origin position that is different from that of the first delay time in the second direction and the same in the first direction.

Description

CROSS REFERENCE TO RELATED APPLICATION
This application is based upon and claims the benefit of priority from the prior International Application No. PCT/JP2005/14595 filed on Aug. 9, 2005, the entire contents of which are incorporated herein by reference.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a technique of displaying delay times of signals occurring on paths on an electronic circuit that has been designed.
2. Description of the Related Art
In recent years, the demand has increased for the ability to develop electronic circuits such as printed circuit boards (PCBs), integrated circuits, and the like in a shorter time period and at a lower cost. Thus, the importance of the CAD (Computer Aided Design) technique has also been increased because the CAD technique can assist in the development of electronic circuits.
In the CAD technique for electronics, importance is placed on standardization and modeling in order to permit user to perform design even when they do not have a vast knowledge of designing. Elements or components that serve as the functional or logical units for electronic circuits are registered as the fundamental elements (cells) in a library. Usually, fundamental gates such NANDs and NORs; sequential circuits such as flip flop (referred to as FF hereinafter) circuits, counters, and shift registers; memory units; and CPUs are registered as the cells in libraries. Therefore, logical design is performed by selecting the necessary cells from the library and connecting the selected cells to one another. The connections among the cells are realized by connecting the pins of the respective cells. The layout design is performed after performing the logical design.
On an electronic circuit that has been designed, various analyses are performed in order to confirm whether or not the electronic circuit has been appropriately designed. Timing analysis is one of these analyses. Timing analysis is performed in order to check whether or not a failure (such as a malfunction) may be caused by a time difference between the signals transmitted on the paths. Timing analysis includes the setup-time check and the hold-time check. In the setup-time check, it is checked whether or not the timing at which the FF or the like takes in data is too late. In the hold-time check, it is confirmed whether or not the timing at which an FF or the like takes in data is too early. The various analyses including timing analysis can be performed automatically.
The failures detected in the timing analysis have to be removed. For this removal, the design has to be modified. This modification is usually made in such a manner that the time differences are examined for each line between the pins included in the path on which the failure was detected, and at least one line between the pins that is to be adjusted is determined; thereafter, the delay time on the determined line is adjusted. Accordingly, designers have had to perform complicated operations for this adjustment. On the basis of this situation, it can be thought that facilitating design modification is important.
Patent Document 1 discloses a conventional delay time display device that displays delay times existing on the predetermined path. This delay time display device displays delay times caused by the cells being connected to a fixed signal line or by the delay time difference between them. Thereby, the clock distribution circuit using fixed distribution lines is assumed, and the delay time difference (clock skew) between the clock signals distributed by the distribution circuit to the respective paths is easily understood.
The clock distribution circuit is commonly used to provide clock signals to a plurality of pins. However, a failure may occur on the path that is conveying the clock signals provided by the clock distribution circuit. The signals are also provided to at least one pin arranged on a path, and a plurality of connection destinations are set on each pin. Therefore, a great increase in the operation efficiency cannot be expected even when the delay time on a part of the paths is displayed.
For example, in a case where there is a failure of a clock skew between paths that have a section being used in common, the sections that are not being used commonly among the paths have to be modified in order to remove this failure. Accordingly, it is thought that information on the connection relationship between the paths has to be supplied in order to easily achieve high operation efficiency.
  • Patent Document 1:
  • Japanese Patent Application Publication No. 6-275719
SUMMARY OF THE INVENTION
It is an object of the present invention to provide a technique of displaying delay times caused on paths together with the connection relationships among the paths.
A delay time display method according to the present invention is a method for displaying a delay time of a signal delay caused on a path on a designed electronic circuit, comprising:
representing the delay time of a signal delay on a path as length in a first direction on a plane having as coordinate axes the first direction and a second direction intersecting the first direction; and
representing a delay time on a path at and subsequent to a pin at which the signal is branched on the path as length in the first direction from a position as an origin different in the second direction and the same in the first direction.
It is desirable that the above delay time be represented separately for each line between adjacent pins on the path.
A delay time display device according to a first aspect of the present invention is based on the assumption that the delay time of a signal delay caused on a path on a designed electronic circuit can be displayed, and comprises:
delay time obtainment means obtaining, when there is a pin at which the signal is branched, a first delay time on a path including the pin and a second delay time on a path at and subsequent to the pin as respective delay times on the path; and
drawing means assuming a plane having as coordinate axes a first direction and a second direction intersecting the first direction, representing the first delay time as length in the first direction and representing the second delay time as length in the first direction from an origin position that is different from that of the first delay time in the second direction and the same in the first direction.
A delay time display device according to a second aspect of the present invention further comprises in addition to the constituents in the first aspect:
path specifying means specifying a path that is to be a drawing target in the device from among paths on the electronic circuit:
the drawing means performs drawing to represent the delay time on the path specified by the path specifying means.
A storage medium according to the present invention is accessible to a computer to display a delay time of a signal caused on a path on a designed electronic circuit, and stores a program to realize a function, the function comprising:
a function of obtaining, when there is a pin at which the signal is branched, a first delay time on a path including the pin and a second delay time on a path at and subsequent to the pin as respective delay times on the path; and
a function of assuming a plane having as coordinate axes a first direction and a second direction intersecting the first direction, representing the first delay time as length in the first direction and representing the second delay time as length in the first direction from an origin position that is different from that of the first delay time in the second direction and the same in the first direction.
In the present invention, a delay time of a signal delay caused on a path on an electronic circuit is represented as length on a first direction on a plane having as coordinate axes the first direction and a second direction perpendicular to the first direction, and when there is a pin at which a signal is branched on a path, the delay time on the path at and subsequent to that pin is represented as length in the first direction from an origin position that is different from that of the first delay time in the second direction and the same first direction.
Because delay times are represented as length in the first direction, the differences between the delay times over paths can be visually recognized easily. Also, a path at and subsequent to the branching pin is represented as length from an origin position that is different from that of the first delay time in the second direction and the same in the first direction; accordingly, delay times on a plurality of branching positions and the portions at and subsequent to the positions (the portions not in common) can be recognized. As a result of this, the modification of design for the timing analysis and failure removal becomes easier for user, and a higher working efficiency is realized easily.
When the delay times are represented separately for each line between adjacent pins, the percentage at which the delay time between the pins affects the entire delay time, the degree of the effect that will be caused when that delay time between the pins is changed, the line between pins involving a delay time that has to be modified, and the like can all be determined easily. Accordingly, user can operate with greater efficiency.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows a configuration of a delay time display device according to the present embodiment;
FIG. 2 shows an example of a hardware configuration of a computer that can implement a delay time display device;
FIG. 3 shows a delay time display window;
FIG. 4 shows a first example of an electronic circuit;
FIG. 5 shows an example of the contents of an SDF file used for the exemplary electronic circuit shown in FIG. 4;
FIG. 6 shows a data configuration of a tree table;
FIG. 7 shows a data configuration of a delay table;
FIG. 8 shows a second example of the electronic circuit;
FIG. 9 shows a tree table created by the exemplary electronic circuit shown in FIG. 8;
FIG. 10 shows a delay tree drawn by the exemplary electronic circuit shown in FIG. 8;
FIG. 11 shows a method for displaying information in response to a position of a mouse cursor in a delay information area;
FIG. 12 is a flowchart for the entire process;
FIG. 13 shows a flowchart for a logical coordination determination process;
FIG. 14 is a flowchart for a delay table creation process;
FIG. 15 is a flowchart for a path selection process that uses instance names; and
FIG. 16 is a flowchart for a path selection process based on delay times.
DESCRIPTION OF THE EMBODIMENTS
Hereinafter, embodiments of the present invention will be explained in detail, referring to the drawings.
FIG. 1 shows a configuration of the delay time display device according to the present embodiment.
A data input unit 1 inputs a data file 3 a expressing a designed electronic circuit. In this document, it is assumed that an SDF (Standard Delay Format) file is used as an example of the data file 3 a. The SDF file stores the delay times and the connection relationships between the pins. It is also possible to input files such as a library, a net list, and a wire length database instead of the SDF file 3 a.
FIG. 4 shows an example of the electronic circuit. FIG. 5 shows an example of the contents of the SDF file used for the exemplary electronic circuit shown in FIG. 4.
“PI1”, “X1” and the like in FIG. 4 are instance names for uniquely expressing the pin or cell. The explanation is given by using these symbols for the pins and cells.
In the example of the electronic circuit shown in FIG. 4, cell X1 includes two cells AA and BB, and cell X2 includes cell CC. Pin PI1 is connected to pin B in cell AA, and pin X in cell AA is connected to pin A in cell BB. Pin X in cell BB is connected to pin S in cell CC, and pin X in cell CC is connected to pin PO1.
The connections between the pins or between the pin and the cell are established by using wires (net). In FIG. 5, the connection relationships and the delay times between pin PI1 and pin B in cell AA, pin X in cell AA and pin A in cell BB, pin X in cell BB and pin S in cell CC, and between pin X in cell CC and pin PO1 are described at the portions marked with the symbol “*1”. The delay times between pin A in cell AA and pin X, and between pin B and pin X are described at the portions marked “*2”. The delay time between pin A in cell BB and pin X is described at the portion marked “*3”. The delay time between pin S in the cell CC and pin X is described at the portion marked “*4”. Thereby, by referring to the SDF file 3 a, the connection relationship between the pins and the delay time between such pins can be determined.
An operation unit 2 receives instructions given by the user (designer). A storage unit 3 stores various pieces of data including the SDF file 3 a input through the data input unit 1. A data processing unit 4 creates various tables 3 b and 3 c used for displaying the delay times, and performs a process of drawing images of the times of signal delays that are caused on the paths. To perform this process, a table creation unit 4 a and a drawing unit 4 b are provided. A display unit 5 causes a display device to display the image drawn by the data processing unit 4.
FIG. 2 shows an example of a hardware configuration of a computer that can implement the above delay time display device. Although the delay time display device may be implemented by using a plurality of computers (data processing devices), the present embodiment is explained on the assumption that one computer having the configuration of FIG. 2 is used to implement the present invention.
The computer shown in FIG. 2 comprises a CPU 21, a memory unit 22, an input unit 23, an output unit 24, an external storage device 25, a medium driving device 26, and a network connection device 27 in such a manner that they are connected to one another via a bus 28. The configuration shown in FIG. 2 is an example, and the scope of the present invention is not limited to this configuration.
The CPU 21 is a central processing unit for controlling the entirety of the computer.
The memory 22 is a memory unit such as a RAM unit or the like for temporarily storing data, and programs or data stored in a transportable storage medium MD are temporarily stored in the memory 22. The transportable storage medium MD is accessed by the external storage device 25 or the medium driving device 26. The CPU 21 reads the programs into the memory unit 2 to execute the programs, and controls the entirety of the computer.
The input unit 23 is connected to an input device such as a keyboard, a mouse, or the like, or any device contains at least one of such input devices. The input unit 23 detects the operations of the input devices by the user, and transmits the detection results to the CPU 21.
The output unit 24 is connected to, for example a display device, or any device contains the display device. The output unit 24 displays on the display device the data transmitted under the control of the CPU 21.
The network connection device 27 is used for performing communications with external devices via a network such as the intranet, the Internet, or the like. The external storage device 25 is, for example, a hard disk device, and is mainly used for storing various pieces of data and programs.
The medium driving unit 26 accesses a transportable storage medium MD such as a flexible disk, an optical disk (including CD-ROM, CD-R, DVD, and the like), a magneto-optical disk, or the like.
The input unit 1 shown in FIG. 1 is implemented by, for example, the CPU 21, the memory unit 22, the external storage device 25, the medium driving device 26, and the network connection device 57 connected to one another via the bus 28. The operation unit 2 is implemented by, for example, the CPU 21, the memory unit 22, the input unit 23, and the external storage device 25 connected to one another via the bus 28. The storage unit 3 is implemented by, for example, at lease one of the external storage device 25, the medium driving device 26, and the network connection device 27. The data processing unit 4 is implemented by, for example, the CPU 21, the memory unit 22, and the external storage device 25 connected to one another via the bus 28. The display unit 5 is implemented by, for example, the CPU 21, the memory unit 22, the output unit 24, and the external storage device 25 connected to one another via the bus 28.
On the basis of the SDF file 3 a, the data processing unit 4 shown in FIG. 1 draws the delay time display window as shown in FIG. 3, and causes the display unit 5 to display the window on the display device. Here, by referring to FIG. 3, the delay time display window drawn by the data processing unit 4 is explained specifically.
The delay time display window includes an information display area 31 used for displaying pieces of delay time information on the respective paths, and an operation area 32 for receiving various instructions given by the user. The information display area 31 includes a delay information area 31 a used for displaying delay information corresponding to the position of the mouse cursor, and a tree display area 31 b used for displaying pieces of delay time information on the respective paths in the form of a tree. The operation area 32 includes a “zoom-in” button 32 a used to enlarge the displayed information that is being pointed at by the mouse cursor, a “zoom-out” button 32 b used to reduce the size of the displayed information that is being pointed at by the mouse cursor, a “fit” button 32 c used to make the display of the entire tree an appropriate size, two input boxes 32 d and 32 e for inputting instance names as the display targets, and two input boxes 32 f and 32 g for inputting the delay times of the targets. The above tree is referred to as a “delay tree” hereinafter.
As shown in FIG. 3, the delay tree is displayed in the form of a bar graph in which the bars extend in the horizontal direction (X-axis direction) and such bars are arranged in the vertical direction (Y-axis direction). Each bar corresponds to one path, and the length in the vertical direction represents the delay time. In the bar graph, the shaded boxes represent the delay times caused by the wiring (referred to as the “net delay time” hereinafter), and the non-shaded boxes represent the delay times caused by the transmission in the cells (referred to as the “cell delay time” hereinafter). In this configuration, each bar expresses the delay time of one of the constituent elements (cell, wire) that constitute the path. In the delay information area 31 a, the name of the instance whose delay time is expressed by the box being pointed at by the mouse cursor, and the delay time on the path corresponding to that position are expressed. In FIG. 3, “abcd.in0” expresses the instance name, and “432 ps” expresses the delay time at the position on the path being pointed at by the mouse cursor.
The bars arranged in the vertical direction have portions for expressing the respective previous situations (the direction that leaves from the operation area 32). The bars arranged in the vertical direction represent the delay times on and subsequent to the branching point of the path (referred to as “branch source path” hereinafter) on which the signals are branched from the path whose delay time is represented by the bar for the previous portion into the plurality of paths (hereinafter, referred to as “branched path”). Thereby, a portion shared by a plurality of paths is represented by a bar for one path, and a portion that is not shared by a plurality of paths is represented on a path-by-path basis. In the present embodiment, the farther from the origin the place where the signal is branched is, the higher the corresponding bar is arranged in the vertical position.
The bars for the branched path are arranged in such a manner that the position of the branching point of the branch source path is used as the origin in order to allow the user to understand from which portion the branch paths start. Thereby, the user can easily understand on which point the respective paths are branched.
As previously described, the respective bars represent the delay time of the entirety together with the delay time for each of the constituent elements on the paths. Thereby, the degree that the respective constituent components affect the delay time of the entirety can be understood easily. The bar graph represents the connection relationships between the paths, and thus the timing analysis that uses the connection relationships can be performed easily. By utilizing the timing analysis, when, for example, a clock skew failure is detected, the area that has to be considered in order to remove the failure can be determined easily. Thereby, an appropriate design modification can be made easily too, which leads to higher operational efficiency.
The delay time display window is drawn by executing the following processes. This drawing of the delay time display window will be explained by referring to FIGS. 6 through 11.
The data processing unit 4 creates the tree table 3 b for each pin by referring to the SDF file 3 a, and also creates the delay table 3 c for each end-point pin by referring to the created tree table 3 b. FIG. 6 shows the data configuration of the tree table 3 b. FIG. 7 shows the data configuration of the delay table 3 c.
The tree table 3 b, as shown in FIG. 6, stores, in the form of data, a pin name, a delay time caused while a signal is being output from that pin (this is denoted by “interval delay” in the drawings), an integrated value of a delay time from the origin (this is denoted by “integrated delay from origin” in the drawings), a pointer to the tree table 3 b of the pin that receives a signal from the corresponding pin (this is denoted by “pointer to next stage pin data” in the drawings), a pointer to the tree table 3 b for another pin receiving a signal from the corresponding pin (this is denoted by “pointer to branch pin data” in the drawings), a pointer to the tree table 3 b of a pin receiving a signal (this is denoted by “pointer to previous stage pin data” in the drawings), and a display flag. There are stored the same number of pointers to the branch pin data as the number of branches of the signals. As the end-point pin, zero or NULL is stored as a pointer to the next stage pin data. In this example, the case of NULL is assumed.
When the SDF file 3 a has the content of the exemplary electronic circuit (clock distribution circuit) shown in FIG. 8, a number of tree tables 3 b are created corresponding to the number of boxes in FIG. 9. In FIG. 9, the boxes containing “a”, “3”, and “3” represent the tree tables 3 b in which the pin name is “a”, the interval delay is “3”, and the integrated delay from the origin is “3”. This rule is applied to the other boxes. Also, the boxes containing “o”, “p”, or “q” represent the tree tables 3 b of the input pins respectively having four FFs that serve as the end points in the exemplary electronic circuit shown in FIG. 8.
As shown in FIG. 7, the delay table 3 c created for each end-point pin stores, in the form of data, a pointer to the tree table 3 b of an end-point pin (this is denoted by “pointer to end-point pin” in the drawings), and a path delay value. The path delay value is data stored, as the integrated delay from the origin, in the tree table 3 b that is being pointed at by the pointer.
The data table creation unit 4 a included in the data processing unit 4 creates the above tree table 3 b and the delay table 3 c. The tree table 3 b stores the pointers to the tree tables 3 b for the pins that output the signals received from the corresponding pins, categorizing them so that there is a group of pointers stored in the next stage pin data and a group of stored in the branch pin data. Thereby, it is possible to discriminate the path running from the origin to the end point and the path that transmits the signals branched from the path, and to determine the pin at which the signal is branched. Thereby, the drawing unit 4 b draws the delay time display window as shown in FIG. 3 by referring to the tree table 3 b. When the tree table 3 b is created from the exemplary electronic circuit shown in FIG. 8, the delay tree is drawn in the tree display area 31 b as shown in FIG. 10.
The drawing unit 4 b determines the maximum value (Xmax, Ymax) of the logical coordinate in the tree display area 31 b as shown below.
Xmax=maximum value of path delay value+α
Ymax=the number of paths (delay table 3 c)+β
Due to the above determination, the real coordinate and the logical coordinate can correspond to each other. Accordingly, the coordinate value of the X-axis of the mouse cursor directly represents the delay time, and the coordinate value of the Y-axis directly represents the path. Thereby, the drawing unit 4 b determines the instance name and the delay time on the path corresponding to the position of the mouse cursor without having to perform a special conversion, and shows these pieces of information in the delay information area 31 a as shown in FIG. 11.
As shown in FIG. 3, the operation area 32 includes two input boxes 32 d and 32 e for specifying, by the instance name, the display target among the delay tables, and two input boxes 32 f and 32 g for specifying, by the delay time, the display target among the delay tables. In the present embodiment, the instance name of the end-point pin is input. Thus, when instance names are input in the input boxes 32 d and 32 e respectively, the drawing unit 4 b determines the delay tables 3 c that store the pin names corresponding to the input instance names, performs tracing in the forward direction starting from the tree table 3 b being pointed at by the pointer in the delay table 3 c, and sets, to ON, only the flags in the tree tables 3 b that have been referred to during this tracing. When a delay time is input in at least one of the input boxes 32 f and 32 g, the drawing unit 4 b determines the delay table 3 c storing the path delay value corresponding to the delay time that satisfies the conditions specified by the input delay time, and performs tracing in the forward direction starting from the tree table 3 b specified by the pointer stored in the table 3 c, and sets, to ON, only the flags in the tree tables 3 b that have been referred to during this tracing. Thereby, only the delay tables 3 b in which the display flags are ON are drawn. Thereby, only the delay times on the paths that the user desires to know are drawn.
Hereinafter, the operations of the data processing unit 4 are explained in detail by referring to the flowcharts shown in FIGS. 12 through 16. When the delay time display device in the present embodiment is configured as shown in FIG. 2, the processes represented by the respective flowcharts in FIGS. 12 through 16 are implemented by, for example, the CPU 21 reading into the memory unit 22, and executing, the program stored in the external storage device 25.
FIG. 12 is a flowchart for the entire process. First, the entire process is explained in detail by referring to FIG. 12.
First, in step S11, the forward-path tracing is performed from the origin pin (e.g., the pin to which a clock signal is input) by referring to the SDF file 3 a specified, and data to be stored in the tree table 3 b for each pin is collected. In step S12, the tree table (denoted by “clock tree table” in the drawings) 3 b is created by using the collected pieces of data for each pin. Thereafter, the process proceeds to step S13, and the drawing process is executed for displaying the delay time display window as shown in FIG. 3. Thereafter, this series of processes is terminated.
The SDF file 3 a is specified depending upon, for example, where the SDF file is stored. Thus, depending upon the place in which the specified SDF file 3 a is stored, a process for obtaining the SDF file 3 a may be executed. The operations of the buttons 32 a through 32 c arranged on the operation area 32 and the data for input in the input boxes 32 d through 32 g correspond to the execution of the drawing process. The flowcharts shown in FIGS. 13 through 16 are flowcharts for the subroutines executed in the drawing process.
FIG. 13 shows a flowchart for the logical coordination determination process. This determination process determines the maximum value (Xmax, Ymax) of the logical coordination for roughly drawing the delay tree in the tree display area 31 b.
First, in step S21, zero is assigned respectively to the variables Xmax and Ymax. In step S22, it is determined whether or not the pointer to the next stage pin data of the target tree table 3 b is NULL. When the table 3 b is of the end-point pin, NULL is stored as the pointer in that table 3 b, and accordingly, the determination result is YES, and the process proceeds to step S24. In cases other than the above, the determination result is NO, and the process proceeds to step S23.
In step S23, it is determined whether or not there is a tree table 3 b that is to be the next target. When there is not a table 3 b that is to be the next target, the determination result is YES, and a series of the processes is terminated after updating the variables Xmax and Ymax for the purpose of having margins. In cases other than the above, the determination result is NO, and the process returns to the above step S22, and one of the remaining tree tables 3 b is selected to be the target tree table for performing the determination process for that table.
In step S24 executed when the determination result in step S22 is YES, the value of the variable Ymax is incremented, and the integrated delay from the target tree table 3 b is assigned to the variable Xx. In step S25, it is determined whether or not the value of the variable Xx is greater than the value of the variable Xmax. When this relationship between the values is satisfied, the determination result is YES, and the value of the variable Xx is assigned to the variable Xmax in step S26. Thereafter, the process proceeds to step S23. If this relationship is not satisfied, the determination result is NO, and the process proceeds to step S23 without executing any other processes.
FIG. 14 is a flow chart for the delay table creation process. This process will be explained in detail by referring to FIG. 14.
First, in step S31, the delay table 3 c (denoted by “clock path delay table” in the drawings) is initialized. In step S32, it is determined whether or not the pointer to the next stage pin data in the target tree table 3 b is NULL. When that table 3 b is of the end-point pin, NULL is held as the pointer to that pin. Thus, the determination result is YES, and the process proceeds to step S33. If the above table 3 b is not of the end-point pin, the determination result is NO, and the process proceeds to step S34.
In step S33, a delay table 3 c storing a pointer to the target tree table 3 b and the integrated delay from that table 3 b is created. In step S34 to be executed thereafter, it is determined whether or not there is a tree table 3 b that has to be the next target. When there are no more tables 3 b to be the next target, the determination result is YES, and the series of processes is terminated. Where there is at least one more table to be the next target, the determination result is NO, and the process returns to step S32 above, one of the remaining tree tables 3 b is selected to be the target tree table 3 b, and the determination process is executed on that tree table 3 b.
The subroutines whose flowcharts are shown in FIGS. 13 and 14 are executed before the first delay time displaying window is drawn. Thereby, the delay tree is appropriately drawn in the tree display area 31 b.
FIG. 15 is a flowchart for the path selection process that uses instance names. This selection process is executed when the user input instance names into the input boxes 32 d and 32 e. In the present embodiment, the instance names (or canonical representation) specifying the end-point pins to be used for the confirmation of the clock skew are input.
First, in step S41, all the display flags in the tree tables 3 b are initialized to OFF. In step S42, the paths are specified in which the end-point pins are the instance names that have been input into the input boxes 32 d and 32 e as the display path-1 and the display path-2. In step S43, a search is performed in order to extract one display table 3 c. After this extraction, the process proceeds to step S44.
In step S44, it is determined whether or not the pin name of the tree table 3 b being pointed at by the pointer in the extracted delay table 3 c is a table specified by one of the instance names input into the input boxes 32 d and 32 e. When the pin name is the one that has been specified by the user, the determination result is YES, and the process proceeds to step S45. Otherwise, the determination result is NO, and the process proceeds to step S47.
In step S45, the pin having the pin name of the tree table 3 b being pointed at by the pointer in the extracted delay table 3 c is determined to be the origin for tracing. In step S46, the back tracing is performed from that pin, and the display flags in the tree tables 3 b that have been referred to while that tracing was being performed are set to ON. Thereafter, the process proceeds to step S47.
In step S47, it is determined whether or not there are other delay tables that have to be extracted. When there are such tables, the determination result is NO, and the process returns to the above step S43 for extracting the tables 3 c. When there is not such a table, the determination result is YES, and the process proceeds to step S48, and the delay tree corresponding only to the tree tables 3 b whose display flags are ON are drawn and displayed. Thereafter, the series of the processes is terminated.
The tree table 3 b whose display flag is ON is for the pin constituting at least one of the two paths that have, as the end-point pins, the instance names input into the input boxes 32 d and 32 e by the user. Accordingly, the delay tree that represents the delay times of the two paths is displayed on the tree display area 31 b.
FIG. 16 is a flowchart for the path delay selection process based on the delay times. This selection process is executed when the user has input the delay time into at least one of the input boxes 32 f and 32 g.
First, in step S51, all the display flags in the tree tables 3 b are initialized to OFF. In step S52, the delay times input into the input boxes 32 f and 32 g are respectively assigned to the variables Vmax and Vmin. In step S53 to be executed next, the path delay value (denoted by “clock path delay” in the drawings) in the target delay table 3 d that is among the delay tables 3 d is assigned to the variable Valx. In the drawings, the delay that has been input into the input box 32 f is denoted as “specified upper limit value”, and the delay time that has been input into the input box 32 g is denoted as “specified lower limit value”.
In step S54 subsequent to step S53, the specified contents as the variables Vmax and Vmin are checked. When nothing is specified, i.e., when a delay time is input into neither the input boxes 32 f nor 32 g, the process proceeds to step S59. Thereby, all the paths become the targets of display. When a delay time has been input into at least one of the input boxes 32 f and 32 g, the relationship between the input box in which the delay time has been input and that delay time is determined, and the processes in accordance with the relationship are executed.
When a delay time has been input only into the input box 32 f, the process proceeds to step S55, and it is determined whether or not the value of the variable Valx is equal to or greater than the variable Vmax. When the variable Valx is equal to or greater than the variable Vmax, the determination result is YES, and the process proceeds to step S59. When the variable Valx is not equal to or greater than the variable Vmax, the determination result is NO, and the process proceeds to step 61. Thereby, the paths having path delay values in the delay tables 3 c equal to or greater than Vmax become the targets to be displayed.
When a delay time has been input only in the input box 32 g, this status is detected in step S54. Thereafter, in step S56, it is determined whether or not the variable Valx is equal to or smaller than the variable Vmax. When the variable Valx is equal to or smaller than the variable Vmax, the determination result is YES, and the process proceeds to step S59. When the variable Valx is not equal to or smaller than the variable Vmax, the determination result is NO, and the process proceeds to step S61. Thereby, the paths having path delay values in the delay tables 3 c equal to or smaller than Vmax become the targets to be displayed.
When a delay time smaller than the delay time in the input box 32 g has been input into the input box 32 f, this status is detected in step S54, and in step S57, it is determined whether or not the variable Valx is equal to or greater than the variable Vmin and is equal to or smaller than the variable Vmax. When the variable Valx is within the range specified by the variables Vmin and Vmax, the determination result is YES, and the process proceeds to step S59. When the variable Valx is not within the range specified by the variables Vmin and Vmax, the determination result is NO, and the process proceeds to step S61. Thereby, the paths having the path delay values in the delay tables 3 c within the range specified by the variables Vmin and Vmax become the targets to be displayed (FIG. 3).
When a delay time greater than the delay time in the input box 32 g has been input into the input box 32 f, this status is detected in step S54, and the process proceeds to step S58. Thereafter, it is determined whether or not the variable Valx is equal to or smaller than the variable Vmin or is equal to or greater than the variable Vmax. When the variable Valx is equal to or smaller than the variable Vmin, or is equal to or greater than the variable Vmax, the determination result is YES, and the process proceeds to step S59. When none of the above conditions is satisfied, the determination result is NO, and the process proceeds to step S61. Thereby, the paths having path delay values in the delay tables 3 c that are equal to or smaller than the variable Vmin or that are equal to or greater than the variable Vmax become the targets to be displayed.
In step S59, the pin having the pin name of the tree table 3 b being pointed at by the pointer in the delay table 3 c in which the path delay value was assigned to the variable Valx in step S54 is determined as the origin for tracing. In step S60, backward tracing is performed from that pin, and the display flags in the tree tables 3 b that have been referred to in the tracing are set to ON. Thereafter, the process proceeds to step S61.
In step S61, it is determined whether or not there remains a delay table 3 c that has to be the target. When such a table remains, the determination result is NO, and the process proceeds to the above step S53, and the path delay value is assigned to a variable Valx for a new table 3 c to be the target. When such a table does not remain, the determination result is YES, the process proceeds to step S62, then the tree of the tree tables 3 b whose display flags are in an ON state are drawn and displayed. Thereafter, the series of processes is terminated.
When a user has input a delay time into at least one of the input boxes 32 f and 32 g, the display flags only in the tree tables 3 b of the pins constituting the path that satisfies the conditions specified by the input delay time are set to ON. When a delay time has not been input into the input boxes 32 f or 32 g, it is considered that all the paths satisfy the conditions, and all the flags in the tree tables 3 b are set to ON. Thereby, it is possible to specify various conditions by changing the manner of inputting delay times in the input boxes 32 f and 32 g.
In the present embodiment, the bars in the delay tree are arranged in the vertical direction (on the Y-axis) depending on the point at which signals are branched. However, the bars may be arranged in the vertical direction depending on other factors. For example, the bars may be vertically arranged depending on the delay times (the path delay value in the delay table 3 c) on the entire path. It is also possible to prepare a plurality of options to be selected by the user.
A part or a whole of the program for implementing the above described delay time display device or the variations thereof may be distributed in the form of the external storage device 25, and also may be distributed in the form of the storage medium MD that the medium driving device 26 can access. Also, this program may be distributed via communications media that constitute communications networks.

Claims (6)

1. A method for displaying a delay time of a signal delay caused on a path on a designed electronic circuit, comprising:
representing by a computer the delay time of a signal delay on the path as length in a first direction representing the delay time on the path on a plane having as coordinate axes the first direction and a second direction intersecting the first direction and representing paths including the path and a branched path which is branched at and subsequent to a pin on the path; and
representing by the computer a delay time on the branched path at and subsequent to the pin at which the signal is branched on the path as length in the first direction from an origin position that is different from a branching point of the pin on the path represented as the delay time in the second direction and the same in the first direction.
2. The method for displaying a delay time according to claim 1, wherein: the delay time is represented separately for each line between adjacent pins on the path.
3. A delay time display device for displaying a delay time of a signal delay caused on a path on a designed electronic circuit, comprising:
delay time obtainment means obtaining, when there is a pin at which the signal is branched, a first delay time on the path including the pin and a second delay time on a branched path which is branched at and subsequent to the pin as respective delay times on the path; and
drawing means assuming a plane having as coordinate axes a first direction representing the delay time on the path and a second direction intersecting the first direction and representing respective paths including the path and the branched path which is branched at and subsequent to the pin on the path, representing the first delay time as length in the first direction, and representing the second delay time as length in the first direction from an origin position that is different from a branching point of the pin on the path represented as the delay time in the second direction and the same in the first direction.
4. The delay time display device according to claim 3, wherein: the drawing means draws the first and second delay times separately for each line between adjacent pins on the path.
5. The delay time display device according to claim 3,
further comprising: path specifying means specifying a path that is to be a drawing target from among paths on the electronic circuit,
wherein: the drawing means performs drawing to represent the delay time on the path specified by the path specifying means.
6. A storage medium which can be accessed by a computer that can be used to display a delay time of a signal caused on a path on a designed electronic circuit, and stores a program that when executed causes the computer to perform a method comprising:
obtaining, when there is a pin at which the signal is branched, a first delay time on the path including the pin and a second delay time on a branched path which is branched at and subsequent to the pin respectively as delay times on the path; and
assuming a plane having as coordinate axes a first direction representing the delay time on the path and a second direction intersecting the first direction and representing respective paths including the path and the branched path which is branched at and subsequent to the pin on the path, representing the first delay time as length in the first direction, and representing the second delay time as length in the first direction from an origin position that is different from a branching point of the pin on the path represented as the delay time in the second direction and the same in the first direction.
US12/028,527 2005-08-09 2008-02-08 Method of displaying delay time, device and storage medium Expired - Fee Related US7952584B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2005/014595 WO2007017933A1 (en) 2005-08-09 2005-08-09 Delay time display method, device therefor, and program

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/014595 Continuation WO2007017933A1 (en) 2005-08-09 2005-08-09 Delay time display method, device therefor, and program

Publications (2)

Publication Number Publication Date
US20080129277A1 US20080129277A1 (en) 2008-06-05
US7952584B2 true US7952584B2 (en) 2011-05-31

Family

ID=37727129

Family Applications (1)

Application Number Title Priority Date Filing Date
US12/028,527 Expired - Fee Related US7952584B2 (en) 2005-08-09 2008-02-08 Method of displaying delay time, device and storage medium

Country Status (3)

Country Link
US (1) US7952584B2 (en)
JP (1) JP4213195B2 (en)
WO (1) WO2007017933A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160224202A1 (en) * 2013-11-25 2016-08-04 Yandex Europe Ag System, method and user interface for gesture-based scheduling of computer tasks
KR102401602B1 (en) * 2017-05-08 2022-05-25 삼성전자주식회사 Design method of integrated circuit considering supply voltage variation of cells and influence between cells

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3500338A (en) * 1967-08-25 1970-03-10 Gen Electric Party line use and supervisory control of multiple terminal data editing display systems
US3820392A (en) * 1971-04-15 1974-06-28 Fielden Electronics Ltd Measurement of flow in a hydraulic system
JPH02245879A (en) 1989-03-20 1990-10-01 Fujitsu Ltd Delay time analyzing system for logic circuit
JPH06275719A (en) 1993-03-19 1994-09-30 Fujitsu Ltd Method and apparatus for designing semiconductor integrated circuit
US5618744A (en) 1992-09-22 1997-04-08 Fujitsu Ltd. Manufacturing method and apparatus of a semiconductor integrated circuit device
US5787268A (en) * 1994-10-20 1998-07-28 Fujitsu Limited Interactive circuit designing apparatus
US5889677A (en) * 1995-04-07 1999-03-30 Fujitsu Limited Circuit designing apparatus of an interactive type
US5892685A (en) * 1993-09-28 1999-04-06 Fujitsu Limited Packaging design system for an LSI circuit
US6375309B1 (en) * 1997-07-31 2002-04-23 Canon Kabushiki Kaisha Liquid discharge apparatus and method for sequentially driving multiple electrothermal converting members
US6560763B1 (en) * 1999-11-10 2003-05-06 Fujitsu Limited Route searching method and storage medium
US6684374B2 (en) * 2001-07-12 2004-01-27 Fujitsu Limited Timing budget designing method
JP2004355065A (en) 2003-05-27 2004-12-16 Hitachi Ltd Work process display method and work process display apparatus
US20060122814A1 (en) * 2004-12-03 2006-06-08 Beens Jason A Method and apparatus for digital signal processing analysis and development
US7616293B2 (en) * 2004-04-29 2009-11-10 Sigma Space Corporation System and method for traffic monitoring, speed determination, and traffic light violation detection and recording

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3500338A (en) * 1967-08-25 1970-03-10 Gen Electric Party line use and supervisory control of multiple terminal data editing display systems
US3820392A (en) * 1971-04-15 1974-06-28 Fielden Electronics Ltd Measurement of flow in a hydraulic system
JPH02245879A (en) 1989-03-20 1990-10-01 Fujitsu Ltd Delay time analyzing system for logic circuit
US6035111A (en) 1992-09-22 2000-03-07 Fujitsu Limited Manufacturing method and apparatus of a semiconductor integrated circuit device
US5618744A (en) 1992-09-22 1997-04-08 Fujitsu Ltd. Manufacturing method and apparatus of a semiconductor integrated circuit device
JPH06275719A (en) 1993-03-19 1994-09-30 Fujitsu Ltd Method and apparatus for designing semiconductor integrated circuit
US5892685A (en) * 1993-09-28 1999-04-06 Fujitsu Limited Packaging design system for an LSI circuit
US5787268A (en) * 1994-10-20 1998-07-28 Fujitsu Limited Interactive circuit designing apparatus
US5889677A (en) * 1995-04-07 1999-03-30 Fujitsu Limited Circuit designing apparatus of an interactive type
US6240541B1 (en) * 1995-04-07 2001-05-29 Fujitsu Limited Interactive circuit designing apparatus which displays a result of component placement and wire routing from a layout design unit
US6375309B1 (en) * 1997-07-31 2002-04-23 Canon Kabushiki Kaisha Liquid discharge apparatus and method for sequentially driving multiple electrothermal converting members
US6560763B1 (en) * 1999-11-10 2003-05-06 Fujitsu Limited Route searching method and storage medium
US6684374B2 (en) * 2001-07-12 2004-01-27 Fujitsu Limited Timing budget designing method
JP2004355065A (en) 2003-05-27 2004-12-16 Hitachi Ltd Work process display method and work process display apparatus
US7616293B2 (en) * 2004-04-29 2009-11-10 Sigma Space Corporation System and method for traffic monitoring, speed determination, and traffic light violation detection and recording
US20060122814A1 (en) * 2004-12-03 2006-06-08 Beens Jason A Method and apparatus for digital signal processing analysis and development

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
International Search Report mailed Sep. 13, 2005 in connection with the International Application PCT/JP2005/014595.

Also Published As

Publication number Publication date
US20080129277A1 (en) 2008-06-05
JP4213195B2 (en) 2009-01-21
WO2007017933A1 (en) 2007-02-15
JPWO2007017933A1 (en) 2009-02-19

Similar Documents

Publication Publication Date Title
JP3027009B2 (en) Design capture system
US6304790B1 (en) System design/evaluation CAD system and program storage medium
US7895551B2 (en) Generation of standard cell library components with increased signal routing resources
US7039892B2 (en) Systems and methods for ensuring correct connectivity between circuit designs
US7159202B2 (en) Methods, apparatus and computer program products for generating selective netlists that include interconnection influences at pre-layout and post-layout design stages
US7952584B2 (en) Method of displaying delay time, device and storage medium
JP2001014368A (en) Device and method for clock analysis
JP2007264993A (en) Verification support apparatus, verification support method, verification support program and recording medium
US20050251776A1 (en) Integrated circuit design system
US8671383B2 (en) Viewing and debugging HDL designs having SystemVerilog interface constructs
JP3134132B2 (en) Automatic logic circuit generator
US20070250803A1 (en) High-level synthesis method and high-level synthesis system
US7840930B2 (en) Signal connection program, method, and device of hierarchical logic circuit
US20170293706A1 (en) Graphical analysis of complex clock trees
JP6596554B2 (en) Circuit design method and program
JP4782763B2 (en) Analysis support program, computer-readable recording medium recording the program, analysis support apparatus, and analysis support method
JP4268966B2 (en) Circuit analysis apparatus, circuit analysis method, program, and computer-readable recording medium
JP6414846B2 (en) Circuit design apparatus and program
Buschke et al. An approach to understanding evaluation of simulation results as an integrated task
Tran System Design Methodology
JP5243302B2 (en) Function block diagram creation device, creation method and creation program
JPS6362073A (en) Delay observing device
JPH10187791A (en) Automatic test circuit generation method
JP2005301498A (en) Logic data generation method and logic simulator
JP2006004320A (en) Display device for symbol of logic circuit

Legal Events

Date Code Title Description
AS Assignment

Owner name: FUJITSU LIMITED, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SUGIYAMA, HIROYUKI;REEL/FRAME:020488/0443

Effective date: 20071219

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20190531