JP2007193829A - Logic circuit delay optimization system, logic circuit delay optimization method, and program - Google Patents

Logic circuit delay optimization system, logic circuit delay optimization method, and program Download PDF

Info

Publication number
JP2007193829A
JP2007193829A JP2007044172A JP2007044172A JP2007193829A JP 2007193829 A JP2007193829 A JP 2007193829A JP 2007044172 A JP2007044172 A JP 2007044172A JP 2007044172 A JP2007044172 A JP 2007044172A JP 2007193829 A JP2007193829 A JP 2007193829A
Authority
JP
Japan
Prior art keywords
circuit block
block
circuit
value
subsequent
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.)
Granted
Application number
JP2007044172A
Other languages
Japanese (ja)
Other versions
JP4131871B2 (en
Inventor
Ariyoshi Okada
有美 岡田
Masami Mizuno
理美 水野
Eiji Furukawa
英司 古川
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
Priority to JP2007044172A priority Critical patent/JP4131871B2/en
Publication of JP2007193829A publication Critical patent/JP2007193829A/en
Application granted granted Critical
Publication of JP4131871B2 publication Critical patent/JP4131871B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a new method to optimize circuit delay in a logic circuit. <P>SOLUTION: The logic circuit is constituted by connecting a plurality of circuit blocks. On the basis of the delay ratio of the circuit block showing the ratio in which a load capacity value given to the circuit block delays a signal propagating through the circuit block, the drive potential value of a prior stage circuit block which is the prior stage of a target circuit block and the load capacity value given to the target circuit block; a drive potential value calculation means 11 calculates the drive potential value to be required to the target circuit block. On the basis of the drive potential value obtained by the drive potential value calculation means 11, a change means 12 changes designation of the above element used by the target circuit block. This configuration enables, from a characteristic value regarding the circuit blocks connected as the prior and posterior stages of the target circuit block, to select the optimum element to be used in the target circuit block. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、論理回路の最適化を行なう技術に関し、特に、論理回路設計の初期段階において論理回路内を伝播する信号に生じる遅延の最適化を行なう技術に関する。   The present invention relates to a technique for optimizing a logic circuit, and more particularly to a technique for optimizing a delay generated in a signal propagating in a logic circuit in an initial stage of logic circuit design.

従来、論理回路の有する回路遅延の最適化、すなわちその論理回路内を伝播する信号に生じる遅延の最適化を計算機に行なわせる技術として、例えば特許文献1や特許文献2に開示されているように、論理回路におけるクリティカルパスを抽出して抽出されたクリティカルパスに対して遅延最適化を施すというものが多数提案されている。
特開平5−151310号公報 特開平11−120222号公報
Conventionally, as a technique for causing a computer to optimize a circuit delay of a logic circuit, that is, to optimize a delay generated in a signal propagating in the logic circuit, for example, as disclosed in Patent Document 1 and Patent Document 2 Many proposals have been made to extract a critical path in a logic circuit and perform delay optimization on the extracted critical path.
JP-A-5-151310 JP-A-11-120222

上述した従来の技術で行なわれているクリティカルパスの抽出には多大な処理量を要するため、高い処理能力を有する計算機を長時間稼動させる必要があった。
また、計算機に行なわせる従来の遅延最適化処理においては、クリティカルパスに対して最適化を施すときに、そのパス上の回路ブロックの後段にファンアウトが複数存在しているときには、その中でクリティカルパス上にあるものについてのみ最適化処理を行っており、そのファンアウトを構成している複数の被駆動ブロック同士の関係は考慮されていなかった。そのため、例えばこれらの被駆動ブロックのうちクリティカルパス上にあるものについての駆動能力(被駆動ブロックの駆動のためにその被駆動ブロックに対して求められる能力)が肥大してしまい、その駆動能力を確保するために被駆動ブロックの実装回路面積が過剰に大きくなってしまうことがあった。
The extraction of the critical path performed by the above-described conventional technique requires a large amount of processing, and thus it is necessary to operate a computer having a high processing capacity for a long time.
Also, in the conventional delay optimization processing to be performed by a computer, when a critical path is optimized, if there are multiple fanouts in the subsequent stage of the circuit block on the path, the critical The optimization process is performed only on the path, and the relationship between the plurality of driven blocks constituting the fan-out is not considered. For this reason, for example, the driving ability (the ability required for the driven block for driving the driven block) of those driven blocks on the critical path is enlarged, and the driving ability is reduced. In order to ensure, the mounting circuit area of the driven block may become excessively large.

また、従来の処理では、設計対象の論理回路が他の回路と接続される外部入出力端子は、他の回路の外部入出力端子に一般的なバッファの素子が接続されているものとみなして最適化を行っていた。更に、論理回路内部において外部入出力端子に接続される入力ピンについての駆動能力は予め定義されているものに固定されており、駆動能力を変更するにはその入力ピンを含む回路そのものの使用を止めて代わりに他の回路を選択することしか許容されていなかった。   In the conventional processing, the external input / output terminal to which the logic circuit to be designed is connected to another circuit is regarded as a general buffer element connected to the external input / output terminal of the other circuit. We were optimizing. Furthermore, the driving capability of the input pins connected to the external input / output terminals in the logic circuit is fixed to a predefined one. To change the driving capability, use the circuit itself including the input pins. It was only allowed to stop and select another circuit instead.

また、従来の処理では、ネット(回路ブロック間を接続する配線)の負荷容量には遅延最適化処理後に行なわれる実装設計によって得られる情報が反映されることはなく、最適化の際に考慮しないか、あるいは概算値を反映するようにしていた。そのため、論理回路の回路遅延の最適化を行なっても実装設計後の回路遅延が改善されないこともあった。   In the conventional processing, the load capacity of the net (wiring connecting circuit blocks) does not reflect the information obtained by the mounting design performed after the delay optimization processing, and is not taken into consideration in the optimization. Or it was to reflect the estimated value. Therefore, even if the circuit delay of the logic circuit is optimized, the circuit delay after the packaging design may not be improved.

また、従来の処理では、例えばユーザが敢えて遅延最適化を行なうことを望まないなどの理由によって最適化を行なわないようにするブロックを設定するためには、素子毎もしくはパス毎にその指示を行なう必要があった。   Further, in the conventional processing, for example, in order to set a block that does not perform optimization because the user does not want to perform delay optimization, the instruction is given for each element or each path. There was a need.

また、従来の処理では、遅延最適化を実行するとその対象である回路自体が自動的に変換されて出力されてしまい、最適化による素子の置換の内容を知るには、その実行の前後の論理回路を比較しなければならなかった。   In addition, in the conventional processing, when delay optimization is executed, the target circuit itself is automatically converted and output. In order to know the contents of element replacement by optimization, the logic before and after the execution is executed. I had to compare the circuits.

以上の問題を鑑み、論理回路が有する回路遅延の最適化を行なう新たな手法を提供することが本発明が解決しようとする課題である。   In view of the above problems, it is an object of the present invention to provide a new method for optimizing the circuit delay of a logic circuit.

図1は本発明の原理構成を示す図である。
本発明は、複数の回路ブロックを接続してなる論理回路に対し、該回路ブロック毎に指定がされている該回路ブロックを構成するために使用するプリミティブな素子についての該指定を該素子と同一の機能を有し且つ駆動能力値は異なる他のプリミティブな素子へ変更することによって、該論理回路内を伝播する信号の遅延についての最適化を行なう論理回路遅延最適化システムまたは論理回路遅延最適化方法を前提とする。
FIG. 1 is a diagram showing a principle configuration of the present invention.
In the present invention, for a logic circuit formed by connecting a plurality of circuit blocks, the designation of a primitive element used for constituting the circuit block designated for each circuit block is the same as the element. A logic circuit delay optimization system or logic circuit delay optimization that optimizes the delay of a signal propagating in the logic circuit by changing to another primitive element having the function of and having a different driving capability value The method is assumed.

ここで、「プリミティブな素子」とは、ここでは論理回路において基本となる素子を意味する語であり、具体的には、インバータ、バッファ、AND、OR、NAND、NORなどの各種のゲートや、RS、JK、Dなどの各種のフリップフロップ等の基本的な論理素子を総称したものである。また、「駆動能力値」とは、素子に信号が入力されたときに駆動し得る能力の高さ、つまり、その素子の出力信号によって示されている論理の反転を、その素子の出力に接続されている負荷に抗して行なわせ得る能力の高さを示す値である。   Here, “primitive element” means a basic element in a logic circuit, specifically, various gates such as an inverter, a buffer, AND, OR, NAND, NOR, It is a general term for basic logic elements such as various flip-flops such as RS, JK, and D. In addition, the “drive capability value” is the high capability that can be driven when a signal is input to the element, that is, the inversion of the logic indicated by the output signal of the element is connected to the output of the element It is a value indicating the level of capability that can be performed against the load being applied.

まず、図1の(a)に示す第一の構成を説明する。これは、本発明に係る論理回路遅延最適化システム第一の原理構成を示している。
駆動能力値算出手段11は、回路ブロックに与えられる負荷容量値が該回路ブロック内を伝播する信号を遅延させる割合を示す該回路ブロックの遅延率と、前記指定変更の対象である対象回路ブロックの前段として該対象回路ブロックに接続されている前段回路ブロックに指定がされている該素子によって定まる該前段回路ブロックの駆動能力値と、該対象回路ブロックの後段に他の回路ブロックが接続されることにより該対象回路ブロックに対して与えられる負荷容量値とに基づいて該対象回路ブロックに要求する駆動能力値の算出を行なうものである。
First, the first configuration shown in FIG. This shows the first principle configuration of the logic circuit delay optimization system according to the present invention.
The drive capability value calculation means 11 includes a delay rate of the circuit block indicating a rate at which a load capacitance value given to the circuit block delays a signal propagating in the circuit block, and the target circuit block that is the target of the designation change. The driving capability value of the preceding circuit block determined by the element specified for the preceding circuit block connected to the target circuit block as the previous stage, and another circuit block connected to the subsequent stage of the target circuit block Based on the load capacity value given to the target circuit block, the drive capability value required for the target circuit block is calculated.

変更手段12は、駆動能力値算出手段11によって得られた駆動能力値に基づいて該対象回路ブロックで使用される前記素子の指定の変更を行なう。
この第一の構成によれば、対象回路ブロックの前後段として接続されている回路ブロックに関する特性値から対象回路ブロックでの使用に最適な素子の選択が可能となる。従って、論理回路中の全ての回路ブロックについて最適な素子の選択を行なうことでクリティカルパスの抽出を行なうことなく論理回路に対する遅延最適化が行なえるので、遅延最適化のために必要となる処理量が低減される。
The changing unit 12 changes the designation of the element used in the target circuit block based on the driving capability value obtained by the driving capability value calculating unit 11.
According to this first configuration, it becomes possible to select an element optimal for use in the target circuit block from the characteristic values relating to the circuit block connected as the preceding and following stages of the target circuit block. Therefore, by selecting the optimum elements for all circuit blocks in the logic circuit, the delay optimization for the logic circuit can be performed without extracting the critical path. Therefore, the amount of processing required for the delay optimization Is reduced.

なお、上述した第一の構成において、変更手段12が、該変更前に選択されていたものと同一の実装回路面積を要する前記素子を選択するように該変更を行なうようにしてもよい。   In the first configuration described above, the changing unit 12 may make the change so as to select the element that requires the same mounting circuit area as that selected before the change.

この構成によれば、遅延最適化に起因する論理回路の実装面積の増加を防止することが可能となる。
また、上述した第一の構成において、該論理回路に入力された信号若しくは該論理回路内のフリップフロップである回路ブロックから出力された信号が、該対象回路ブロックについての該回路ブロックを通過して出力されるまでに生じ得る遅延量を、該前段回路ブロックまでの遅延量として算出する遅延量算出手段と、該対象回路ブロックに信号を入力するための複数の入力ピンのうち、該対象回路ブロックについての該回路ブロックであって該前段回路ブロックまでの該遅延量が最大であるものが接続されている該入力ピンを該指定変更の対象である回路ブロックの代表ピンとする代表ピン決定手段と、を更に有し、駆動能力値算出手段11が、前記対象回路ブロックについての前段回路ブロックのうち、該代表ピンに接続されている該回路ブロックについての駆動能力値に基づいて該算出を行なうようにしてもよい。
According to this configuration, it is possible to prevent an increase in the mounting area of the logic circuit due to delay optimization.
In the first configuration described above, a signal input to the logic circuit or a signal output from a circuit block that is a flip-flop in the logic circuit passes through the circuit block for the target circuit block. A delay amount calculating means for calculating a delay amount that can occur until output as a delay amount to the preceding circuit block, and the target circuit block among a plurality of input pins for inputting a signal to the target circuit block A representative pin determining unit that uses the input pin connected to the circuit block having the maximum delay amount up to the preceding circuit block as a representative pin of the circuit block to be designated, And the drive capability value calculating means 11 is connected to the representative pin in the preceding circuit block for the target circuit block. It may perform the calculated unloading based on the driving ability value for the block.

この構成によれば、本発明によれば、複数の入力を有する回路ブロックの遅延最適化を適切に行なうことが可能になる。
また、上述した第一の構成において、該論理回路の外部入力端子に接続される素子の駆動能力値が入力される外部素子駆動能力値入力手段を更に有し、駆動能力値算出手段11が、該外部入力端子に接続されている該対象回路ブロックに要求する駆動能力値の算出を、該外部素子駆動能力値入力手段に入力された駆動能力値が該前段回路ブロックの駆動能力値であるとみなして行なうようにしてもよい。
According to this configuration, according to the present invention, it is possible to appropriately perform delay optimization of a circuit block having a plurality of inputs.
The first configuration described above further includes an external element driving capability value input means for inputting a driving capability value of an element connected to the external input terminal of the logic circuit, and the driving capability value calculation means 11 includes: When calculating the driving capability value required for the target circuit block connected to the external input terminal, the driving capability value input to the external element driving capability value input means is the driving capability value of the preceding circuit block. You may make it carry out.

この構成によれば、現実に想定される外部入力端子に接続される素子の駆動能力を論理回路の遅延最適化により正確に反映できるようになる。
また、上述した第一の構成において、該前段回路ブロックの駆動能力値が入力される前段回路ブロック駆動能力値入力手段を更に有し、駆動能力値算出手段11が、該前段回路ブロック駆動能力値入力手段に入力された駆動能力値を該前段回路ブロックの駆動能力値とみなして該対象回路ブロックに要求する駆動能力値の算出を行なうようにしてもよい。
According to this configuration, it is possible to accurately reflect the driving capability of the element connected to the external input terminal that is actually assumed by optimizing the delay of the logic circuit.
In the first configuration described above, the driving circuit further includes a preceding circuit block driving ability value input means for inputting the driving ability value of the preceding circuit block, and the driving ability value calculating means 11 includes the preceding circuit block driving ability value. The driving capability value input to the input means may be regarded as the driving capability value of the preceding circuit block, and the driving capability value required for the target circuit block may be calculated.

この構成によれば、前段回路ブロックまでの回路構成について設計変更が予想されるときであっても、前段回路ブロックの仮の駆動能力値が入力されれば、後段回路ブロックの最適化が先行して行なえるようになる。   According to this configuration, even if a design change is expected for the circuit configuration up to the preceding circuit block, if the provisional driving capability value of the preceding circuit block is input, the optimization of the succeeding circuit block precedes. Can be done.

また、上述した第一の構成において、該論理回路の外部出力端子に接続される素子によって該論理回路に与えられる負荷容量値が入力される外部素子負荷容量値入力手段を更に有し、駆動能力値算出手段11が、該外部出力端子に接続されている該対象回路ブロックに要求する駆動能力値の算出を、該外部素子負荷容量値入力手段に入力された負荷容量値が該対象回路ブロックに対して与えられた負荷容量値であるとみなして行なうようにしてもよい。   The first configuration described above further includes external element load capacitance value input means for inputting a load capacitance value applied to the logic circuit by an element connected to the external output terminal of the logic circuit, and has a driving capability. The value calculation means 11 calculates the drive capacity value required for the target circuit block connected to the external output terminal, and the load capacitance value input to the external element load capacitance value input means is input to the target circuit block. Alternatively, the load capacity value may be regarded as being given.

この構成によれば、現実に想定される外部出力端子に接続される素子による負荷容量を論理回路の遅延最適化により正確に反映できるようになる。
また、上述した第一の構成において、該論理回路の実装設計が行なわれることによって得られる該回路ブロック間の配線によって生じる配線容量を取得する配線容量取得手段を更に有し、駆動能力値算出手段11が、該配線容量取得手段によって取得された配線容量を該負荷容量値に加味して該対象回路ブロックに要求する駆動能力値の算出を行なうようにしてもよい。
According to this configuration, it is possible to accurately reflect the load capacitance due to the element connected to the external output terminal that is actually assumed by optimizing the delay of the logic circuit.
Further, in the first configuration described above, the circuit further includes wiring capacity acquisition means for acquiring wiring capacity generated by wiring between the circuit blocks obtained by performing the mounting design of the logic circuit, and driving capacity value calculation means 11 may calculate the drive capacity value required for the target circuit block by adding the wiring capacity acquired by the wiring capacity acquisition means to the load capacity value.

この構成によれば、実装設計によってより正確に求められる配線容量を論理回路の遅延最適化に反映できるようになる。
また、上述した第一の構成において、該回路ブロックに対して該指定の変更を行なわないことを示す属性を付与する非最適化属性付与手段を更に有し、変更手段12は、該非最適化属性付与手段によって該属性が付与されている該対象回路ブロックについては、前記指定の変更を行なわないようにしてもよい。
According to this configuration, it is possible to reflect the wiring capacity that is more accurately obtained by mounting design in the delay optimization of the logic circuit.
Further, in the first configuration described above, there is further provided non-optimization attribute assigning means for assigning an attribute indicating that the designation is not changed to the circuit block, and the change means 12 includes the non-optimization attribute. The designation may not be changed for the target circuit block to which the attribute is assigned by the assigning unit.

この構成によれば、ユーザが変更を望まない回路ブロックを該指定の変更を行なう回路ブロックの対象外とすることができるようになるので、遅延最適化の処理に要する処理量が低減され、また、回路設計作業における手戻り(繰り返し作業)の減少が期待できる。   According to this configuration, since the circuit block that the user does not want to change can be excluded from the target of the circuit block that performs the specified change, the processing amount required for the delay optimization process is reduced, and Reduction in rework (repetitive work) in circuit design work can be expected.

また、上述した第一の構成において、変更手段12によって該指定の変更が行なわれた該対象回路ブロックにおける該変更の内容を出力する変更内容出力手段を更に有するように構成してもよい。   Further, the first configuration described above may further include a change content output unit that outputs the content of the change in the target circuit block in which the designated change has been made by the change unit 12.

この構成によれば、遅延最適化の結果を実装設計システム等の他のシステムでの処理に反映することができ、設計効率の改善が可能となる。また、この結果をファイル出力することで変更内容を明確にユーザに告知できるようになるので、後の実装設計等の作業における作業効率の向上が期待できる。   According to this configuration, the result of delay optimization can be reflected in the processing in another system such as a mounting design system, and the design efficiency can be improved. In addition, by outputting the result to a file, it becomes possible to clearly notify the user of the contents of the change, so that improvement in work efficiency in later work such as mounting design can be expected.

次に図1の(b)に示す第二の構成を説明する。これは、本発明に係る論理回路遅延最適化システム第二の原理構成を示している。
スラック値算出手段21は、該回路ブロックのスラック値の算出を行なう。なお、回路ブロックのスラック値とは、その回路ブロックまでで生じ得る最大遅延とその回路ブロックに許容されている到達時間(許容到達時間)との差であり、その回路ブロックにおけるタイミングの余裕度を示すものである。
Next, the second configuration shown in FIG. This shows the second principle configuration of the logic circuit delay optimization system according to the present invention.
The slack value calculation means 21 calculates the slack value of the circuit block. The slack value of a circuit block is the difference between the maximum delay that can occur up to that circuit block and the arrival time allowed for that circuit block (allowable arrival time). It is shown.

駆動能力値分配手段22は、該論理回路中の回路ブロックの有するひとつの出力が該回路ブロックの後段の複数の回路ブロックである後段回路ブロックに接続されているときに、該後段回路ブロックに指定がされている該素子によって定まる該指定変更前の該後段回路ブロック毎の駆動能力値を、該後段回路ブロック毎の駆動能力値の合計値は維持しつつ且つ該後段回路ブロック毎に算出されたスラック値の差異に基づいて該後段回路ブロックの各々に分配する。なお、「該論理回路中の回路ブロックの有するひとつの出力が該回路ブロックの後段の複数の回路ブロックである後段回路ブロックに接続されているとき」とは、後段回路ブロックが、該論理回路中の回路ブロックの有するひとつの出力に対して複数のファンアウトを構成していることを示している。   The drive capability value distribution means 22 is designated as the subsequent circuit block when one output of the circuit block in the logic circuit is connected to the subsequent circuit block which is a plurality of circuit blocks subsequent to the circuit block. The driving ability value for each subsequent circuit block before the designation change determined by the element that has been subjected to the calculation is calculated for each subsequent circuit block while maintaining the total driving ability value for each subsequent circuit block. Based on the difference in slack value, distribution is made to each of the subsequent circuit blocks. Note that “when one output of a circuit block in the logic circuit is connected to a subsequent circuit block that is a plurality of circuit blocks subsequent to the circuit block” means that the latter circuit block is in the logic circuit. It shows that a plurality of fan-outs are configured for one output of the circuit block.

後段回路ブロック駆動能力値算出手段23は、駆動能力値分配手段22によって分配された駆動能力値を該後段回路ブロックの前段の回路ブロックの駆動能力値とみなして該後段回路ブロックに要求する駆動能力値の算出を行なう。   The post-stage circuit block drive capability value calculation unit 23 regards the drive capability value distributed by the drive capability value distribution unit 22 as the drive capability value of the circuit block preceding the post-stage circuit block and requests the post-stage circuit block. Calculate the value.

後段回路ブロック変更手段24は、該算出によって得られた駆動能力値に基づいて該後段回路ブロックで使用される該素子の指定の変更を行なう。
この第二の構成によれば、駆動能力値分配手段22が、各回路ブロックのスラック値に基づき、タイミングの余裕が少ない後段回路ブロックには駆動能力値を多めに分配し、タイミングの余裕が多い後段回路ブロックには駆動能力値を少なめに分配することで、信号遅延量が大きくなっている信号パスを優先する最適化が可能となり、駆動能力のバランスの良好な遅延最適化が可能となる。
The post-stage circuit block changing means 24 changes the designation of the element used in the post-stage circuit block based on the driving ability value obtained by the calculation.
According to this second configuration, the driving capability value distribution means 22 distributes a larger amount of driving capability to the subsequent circuit block with a small timing margin based on the slack value of each circuit block, and the timing margin is large. By distributing the drive capability value to the subsequent circuit block in a small amount, optimization that gives priority to a signal path having a large signal delay amount is possible, and delay optimization with a good balance of drive capability becomes possible.

なお、上述した第二の構成において、該論理回路の実装設計が行なわれることによって得られる該回路ブロック間の配線によって生じる配線容量を取得する配線容量取得手段を更に有し、後段回路ブロック駆動能力値算出手段23は、該配線容量取得手段によって取得された配線容量を加味して前記算出を行なうように構成してもよい。   In the second configuration described above, the circuit further has wiring capacity acquisition means for acquiring wiring capacity generated by wiring between the circuit blocks obtained by designing the mounting of the logic circuit. The value calculation unit 23 may be configured to perform the calculation in consideration of the wiring capacity acquired by the wiring capacity acquisition unit.

この構成によれば、実装設計によってより正確に求められる配線容量を論理回路の遅延最適化に反映できるようになる。
次に図1の(c)に示す第三の構成を説明する。これは、本発明に係る論理回路遅延最適化システム第三の原理構成を示している。
According to this configuration, it is possible to reflect the wiring capacity that is more accurately obtained by mounting design in the delay optimization of the logic circuit.
Next, the third configuration shown in FIG. This shows the third principle configuration of the logic circuit delay optimization system according to the present invention.

スラック値算出手段31は、該回路ブロックのスラック値の算出を行なう。
駆動能力比率算出手段32は、該論理回路中の回路ブロックの有するひとつの出力が該回路ブロックの後段の複数の回路ブロックである後段回路ブロックに接続されているときに、該後段回路ブロックに指定がされている該素子によって定まる該指定変更前の該後段回路ブロック毎の駆動能力値の合計と、該後段回路ブロックのうちスラック値によって最もタイミングの余裕が少ないことが示されているものについての該指定変更前における駆動能力値の比率を算出する。
The slack value calculation means 31 calculates the slack value of the circuit block.
The drive capability ratio calculation means 32 is designated as the subsequent circuit block when one output of the circuit block in the logic circuit is connected to the subsequent circuit block that is a plurality of circuit blocks subsequent to the circuit block. The sum of the driving ability values for each subsequent circuit block before the change of designation determined by the element that has been changed, and the slack value of the subsequent circuit block that is shown to have the least timing margin The ratio of the driving ability values before the designation change is calculated.

第一駆動能力値算出手段33は、駆動能力比率算出手段32によって算出された駆動能力値の比率に基づいて、該後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されている該後段回路ブロックに要求する駆動能力値を算出する。   Based on the ratio of the driving ability values calculated by the driving ability ratio calculating means 32, the first driving ability value calculating means 33 is the latter circuit block and the slack value indicates that the timing margin is the smallest. A drive capability value required for the subsequent circuit block is calculated.

第一後段回路ブロック変更手段34は、該算出によって得られた駆動能力値に基づいて該後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されている該後段回路ブロックについての前記指定の変更を行なう。   The first rear-stage circuit block changing unit 34 is the rear-stage circuit block based on the driving ability value obtained by the calculation, and the rear-stage circuit block indicated by the slack value has the least timing margin. The designation is changed.

この第三の構成によれば、後段回路ブロックが複数のファンアウトを構成している場合におけるスラック値によって最もタイミングの余裕が少ないことが示されている後段回路ブロックについての該素子の指定の変更の際に、その後段回路ブロックと同時に駆動される他の後段回路ブロックについての特性値が考慮されるので、該素子の選択が適切に行なえるようになる。   According to the third configuration, the designation of the element for the subsequent circuit block is shown that the slack value has the least timing margin when the subsequent circuit block configures a plurality of fan-outs. At this time, since the characteristic values of the other subsequent circuit blocks that are driven simultaneously with the subsequent circuit blocks are taken into consideration, the elements can be selected appropriately.

なお、上述した第三の構成において、該後段回路ブロックのうちスラック値によって最もタイミングの余裕が少ないことが示されているものについての該指定変更前における駆動能力値と該第一後段回路ブロック変更手段による変更後に指定されている該素子の駆動能力値とよりこれらの駆動能力値の変化率を算出する変化率算出手段と、該後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されているものを除いた他の後段回路ブロックに要求する駆動能力値を、該変化率に基づいて算出する第二駆動能力値算出手段と、該第二駆動能力値算出手段によって算出された駆動能力値に基づいて該後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されているものを除いた他の後段回路ブロックについての該指定の変更を行なう第ニ後段回路ブロック変更手段と、を更に有するように構成してもよい。   In the third configuration described above, the driving capacity value before the change of designation and the change of the first latter circuit block for the latter circuit block whose slack value indicates the least timing margin. Change rate calculation means for calculating the change rate of these drive capacity values from the drive capacity value of the element specified after the change by the means, and the subsequent circuit block having the least timing margin depending on the slack value Is calculated by the second driving capability value calculating means for calculating the driving capability value required for the subsequent circuit block other than those indicated by the second driving capability value calculating means based on the rate of change. Based on the driving capacity value, the latter stage circuit block whose slack value indicates the least timing margin is excluded. And Second subsequent circuit block changing means for performing the specified changes in the subsequent circuit blocks may be configured to further have a.

この構成によれば、後段回路ブロックが複数のファンアウトを構成している場合に、同時に駆動される他の後段回路ブロックの特性値を考慮した該素子の指定の変更が行なわれるので、回路面積の過剰な増大が抑えられる。   According to this configuration, when the subsequent circuit block configures a plurality of fan-outs, the designation of the element is changed in consideration of the characteristic values of the other subsequent circuit blocks that are driven simultaneously. Excessive increase in the amount is suppressed.

また、上述した第三の構成において、該論理回路の実装設計が行なわれることによって得られる該回路ブロック間の配線によって生じる配線容量を取得する配線容量取得手段を更に有し、第一駆動能力値算出手段33は、該後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されている該後段回路ブロックに要求する駆動能力値の算出を、該配線容量取得手段によって取得された配線容量を加味して行なうようにしてもよい。   Further, in the third configuration described above, the circuit further includes wiring capacity acquisition means for acquiring wiring capacity generated by wiring between the circuit blocks obtained by performing the mounting design of the logic circuit, and the first driving capability value The calculation means 33 has acquired the calculation of the drive capacity value required for the subsequent circuit block, which is indicated by the slack value and has the least timing margin, by the wiring capacity acquisition means. You may make it carry out in consideration of wiring capacity.

この構成によれば、実装設計によってより正確に求められる配線容量を論理回路の遅延最適化に反映できるようになる。
なお、前述した本発明に係る論理回路遅延最適化システムを構成する各要素により実現される機能と同様のものをコンピュータに行なわせるためのプログラムを作成し、そのプログラムをコンピュータに実行させることによっても、前述した課題を解決することができる。
According to this configuration, it is possible to reflect the wiring capacity that is more accurately obtained by mounting design in the delay optimization of the logic circuit.
It is also possible to create a program for causing a computer to perform the same functions as those realized by the elements constituting the logic circuit delay optimization system according to the present invention described above, and to cause the computer to execute the program. The above-described problems can be solved.

本発明のいずれの構成によっても、論理回路が有する回路遅延の最適化を行なうことができる。   With any of the configurations of the present invention, the circuit delay of the logic circuit can be optimized.

以下、本発明の実施の形態を図面に基づいて説明する。
図2は、本発明を実施する論理回路遅延最適化装置の構成を示す図である。同図において、CPU101、ROM102、RAM103、I/F部104、入力部105、表示部106、出力部107、記憶部108はいずれもバス109に接続されており、相互にデータの授受が行なえる。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
FIG. 2 is a diagram showing the configuration of a logic circuit delay optimization device for implementing the present invention. In the figure, a CPU 101, a ROM 102, a RAM 103, an I / F unit 104, an input unit 105, a display unit 106, an output unit 107, and a storage unit 108 are all connected to a bus 109 and can exchange data with each other. .

CPU(Central Processing Unit )101はこの論理回路遅延最適化装置(以下、「本装置」という)全体の動作制御を司る中央処理装置である。
ROM(Read Only Memory)102は、CPU101によって実行される制御プログラムが予め格納されているメモリであり、CPU101がこの制御プログラムを実行することによって本装置全体の動作の制御が行なわれる。
A CPU (Central Processing Unit) 101 is a central processing unit that controls the operation of the entire logic circuit delay optimizing device (hereinafter referred to as “this device”).
A ROM (Read Only Memory) 102 is a memory in which a control program executed by the CPU 101 is stored in advance, and the operation of the entire apparatus is controlled by the CPU 101 executing this control program.

RAM(Random Access Memory)103は、各種のデータの一時的な格納領域として、またROM102に格納されている制御プログラムをCPU101が実行するときにワークメモリとして必要に応じて使用されるメモリである。   A RAM (Random Access Memory) 103 is a memory that is used as necessary as a temporary storage area for various data and as a work memory when the CPU 101 executes a control program stored in the ROM 102.

I/F(Interface)部104は他の機器との間で通信ネットワークを介して行なわれる各種データの授受を制御する。
入力部105は外部からの入力を受け取って該入力をCPU101に渡すものであり、例えばキーボードやマウスなどといった本装置のユーザからの指示を受け取る入力装置、あるいはFD(Floppy(登録商標) Disk)、CD−ROM(Compact Disc-ROM)、DVD−ROM(Digital Versatile Disc-ROM)、MO(Magneto-Optics)ディスクなどといった可搬型の記録媒体の読出装置を備えて構成される。
An I / F (Interface) unit 104 controls transmission / reception of various data to / from other devices via a communication network.
The input unit 105 receives an input from the outside and passes the input to the CPU 101. For example, an input device that receives an instruction from the user of the apparatus, such as a keyboard or a mouse, or an FD (Floppy (registered trademark) Disk), A portable recording medium reading device such as a CD-ROM (Compact Disc-ROM), DVD-ROM (Digital Versatile Disc-ROM), or MO (Magneto-Optics) disc is provided.

表示部106はCPU101からの指示に応じた表示を行なうものであり、例えばCRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)からなるディスプレイ装置である。   The display unit 106 performs display in accordance with an instruction from the CPU 101, and is a display device including, for example, a CRT (Cathode Ray Tube) or an LCD (Liquid Crystal Display).

出力部107は、CPU101からの指示に応じた表示を行なうものであり、例えばプリンタ装置や、あるいは上述したFDやMOディスク等の可搬型の記録媒体の書込装置を備えて構成される。勿論、可搬型の記録媒体についての書込機能と読出機能とを兼ね備えている装置を入力部105と出力部107との共用の装置として利用することも可能である。   The output unit 107 performs display in accordance with an instruction from the CPU 101, and includes a printer device or a writing device for a portable recording medium such as the above-described FD or MO disk. Of course, a device having both a writing function and a reading function for a portable recording medium can be used as a device shared by the input unit 105 and the output unit 107.

記憶部108は本装置による評価対象であるパートプログラムを含む各種のプログラムや、評価対象であるそのパートプログラムに対して期待されている測定精度を示す期待精度情報、更に後述するステージ精度情報を含む各種のデータを記憶するものであり、例えばハードディスク装置を備えて構成される。なお、CPU101は、ROM102に格納されている制御プログラムを実行する代わりに、記憶部17に予め記憶されている制御プログラムを読み出してRAM103に一旦格納しておき、その後RAM103からその制御プログラムを読み出して実行するようにして本装置全体の動作の制御を行なうようにしてもよい。   The storage unit 108 includes various programs including a part program to be evaluated by the apparatus, expected accuracy information indicating measurement accuracy expected for the part program to be evaluated, and stage accuracy information to be described later. Various types of data are stored, and for example, a hard disk device is provided. Instead of executing the control program stored in the ROM 102, the CPU 101 reads out the control program stored in advance in the storage unit 17, temporarily stores it in the RAM 103, and then reads out the control program from the RAM 103. It is also possible to control the overall operation of the present apparatus.

本装置は以上の各構成要素を備えて構成される。
なお、図2に示す本装置の構成は多くの標準的なコンピュータが有しているものであるので、このようなコンピュータで本発明を実施することもできる。
This apparatus is configured to include the above-described components.
Since the configuration of the present apparatus shown in FIG. 2 is possessed by many standard computers, the present invention can also be implemented by such a computer.

次に、図2に示されているCPU101によって行なわれる制御処理について説明する。なお、これより説明する各処理は、いずれも本装置を制御するための制御プログラムをCPU101が実行することによって実現される。   Next, control processing performed by the CPU 101 shown in FIG. 2 will be described. Each process described below is realized by the CPU 101 executing a control program for controlling the apparatus.

まず、図3について説明する。図3は、CPU101によって行なわれる回路遅延最適化処理の処理内容を示すフローチャートである。
まず、S101において、記憶部108に予め格納されている回路ブロックのライブラリが参照され、各回路ブロックに使用可能な素子として定義されている各素子の素子面積、素子属性、同一論理素子グループ、素子の入力ピンの駆動能力、寄生容量、及び遅延率の各値が読み出されてRAM103の所定領域に格納される。
First, FIG. 3 will be described. FIG. 3 is a flowchart showing the processing contents of the circuit delay optimization processing performed by the CPU 101.
First, in S101, a library of circuit blocks stored in advance in the storage unit 108 is referred to, and element areas, element attributes, identical logical element groups, elements defined as elements that can be used for each circuit block. Each value of the input pin drive capability, parasitic capacitance, and delay rate is read out and stored in a predetermined area of the RAM 103.

続くS102において、遅延最適化処理の対象である論理回路を示す回路網情報が例えばネット情報の形態で入力部105に入力されて取得され、RAM103の所定領域に格納される。   In subsequent S 102, circuit network information indicating the logic circuit that is the target of the delay optimization processing is input to the input unit 105, for example, in the form of net information, and is acquired and stored in a predetermined area of the RAM 103.

S103では、その論理回路において、回路ブロックの入力ピンが外部入力端子に直接繋げられている回路ブロック、及びフリップフロップである回路ブロック(以下、回路ブロックを単に「ブロック」とも称する)を1段目としたときの、各ブロックの段数が検出される。   In S103, in the logic circuit, a circuit block in which the input pin of the circuit block is directly connected to the external input terminal and a circuit block that is a flip-flop (hereinafter, the circuit block is also simply referred to as “block”) , The number of stages in each block is detected.

S104では、その論理回路において、前ステップで検出された段数に基づき、外部入力端子もしくはフリップフロップのクロックピンから各ブロックまでの最大遅延が計算される。   In S104, the maximum delay from the external input terminal or the clock pin of the flip-flop to each block is calculated in the logic circuit based on the number of stages detected in the previous step.

S105では、その論理回路における各ブロックからその論理回路における外部出力端子もしくはフリップフロップの入力ピンまでの許容到達時間が計算され、その結果得られた許容到達時間と各ブロックまでの最大パス遅延との差分が計算されてスラック値が求められる。   In S105, an allowable arrival time from each block in the logic circuit to the external output terminal or flip-flop input pin in the logic circuit is calculated, and the obtained allowable arrival time and the maximum path delay to each block are calculated. The difference is calculated to obtain the slack value.

その後、S106において、論理回路内に存在する全てのブロックに対して、最適化が行なわれたか否かが判定される。ここで、非最適化の属性を持つ素子が割り付けられているブロックは最適化が既に行なわれたものとみなして判定が行なわれる。この判定処理の結果がYes、すなわち全てのブロックの最適化が行なわれたと判定されたときにはこの回路遅延最適化処理が終了する。   Thereafter, in S106, it is determined whether or not optimization has been performed for all blocks existing in the logic circuit. Here, a block to which an element having a non-optimization attribute is assigned is determined as having been optimized. When the result of this determination process is Yes, that is, when it is determined that all blocks have been optimized, this circuit delay optimization process ends.

一方、このS106の判定処理の結果がNo、すなわち、最適化の行われていないブロックが未だ残っていると判定されたならば、S107へと処理が進んでそれらのうちの段数の小さいブロックからブロック最適化処理が行なわれる。   On the other hand, if the result of the determination process in S106 is No, that is, it is determined that there is still an unoptimized block, the process proceeds to S107, and the block with the smaller number of stages is selected. Block optimization processing is performed.

以下、このブロック最適化処理について説明する。
図4はブロック最適化処理の第一の例の処理内容を示すフローチャートである。
図4において、S111では、最適化処理の対象であるブロック(このブロックを、以下「被最適化ブロック」と称することとする)の前段のブロック(このブロックを、以下「ドライバブロック」と称することとする)について使用することが現在指定されている素子と、前述したライブラリに定義されていたその素子の駆動能力とが照合されて前段ブロックの駆動能力が取得される。ここで、被最適化ブロックにおいて、その入力ピンが外部入力端子に繋げられているものについては、その被最適化ブロックの前段が論理回路中に存在しない為、特に指示がなければ標準的に使用されるインバータによって駆動されているものとして処理が進められる。
Hereinafter, this block optimization process will be described.
FIG. 4 is a flowchart showing the processing contents of the first example of the block optimization processing.
In FIG. 4, in S111, a block (this block is hereinafter referred to as a “driver block”) preceding the block that is the object of the optimization process (this block is hereinafter referred to as a “block to be optimized”). And the drive capability of the device defined in the above-described library are collated to obtain the drive capability of the preceding block. Here, in the optimized block, if the input pin is connected to the external input terminal, the previous stage of the optimized block does not exist in the logic circuit. The processing proceeds as if it is driven by an inverter.

S112では、被最適化ブロックが駆動するこことなる後段の全てのブロックについても、各ブロックについて使用することが現在指定されている素子と、前述したライブラリに定義されていたその素子の駆動能力とが照合されて後段ブロック各々の駆動能力が検出され、それらの駆動能力の総和が計算される。この総和の値は被最適化ブロックにとっての負荷容量とみることができる。ここで、被最適化ブロックのうちその出力ピンが外部出力端子に直接繋げられているものについては、被最適化ブロックによって駆動されるブロックが回路中に存在しない為、特に指示がなければ標準的に使用される1個のインバータを駆動するものとして処理が進められる。   In S112, for all the subsequent blocks that are to be driven by the optimized block, the elements that are currently designated for use in each block and the drive capability of the elements defined in the library described above are used. Are compared to detect the driving ability of each subsequent block, and the sum of those driving ability is calculated. This total value can be regarded as the load capacity for the optimized block. Here, among the blocks to be optimized, those whose output pins are directly connected to the external output terminals are standard unless otherwise specified because there is no block driven by the block to be optimized. The processing proceeds as if one inverter used in the above is driven.

S113では、更に、ドライバブロックと被最適化ブロックとについて、各ブロックについて使用することが現在指定されている各素子と、前述したライブラリに定義されていたこれらの各素子の遅延率及び寄生容量が照合され、各ブロックの遅延率及び寄生容量が取得される。   In S113, for the driver block and the optimization target block, each element currently designated to be used for each block, and the delay rate and parasitic capacitance of each element defined in the above-described library are obtained. By comparing, the delay rate and parasitic capacitance of each block are obtained.

S114では、以上のようにして取得された各ブロックの駆動能力、負荷容量、遅延率より、ドライバブロックから被最適化ブロックにかけての遅延を最小とするような、被最適化ブロックの最適駆動能力が求められる。   In S114, the optimum drive capability of the optimized block that minimizes the delay from the driver block to the optimized block is determined based on the drive capability, load capacity, and delay rate of each block acquired as described above. Desired.

S115では、前ステップで求められた最適駆動能力に基づいて、被最適化ブロックでの使用が現在指定されている素子と同じ論理素子グループに属する素子のうち、被最適化ブロックの最適駆動能力を満たす最適な駆動能力を有するものが選択され、被最適化ブロックについての指定がその素子を使用するように置換される。この処理を終えた後には処理が図3へと戻る。   In S115, based on the optimum drive capability obtained in the previous step, among the elements belonging to the same logical element group as the element currently designated for use in the optimized block, the optimum drive capability of the optimized block is determined. The one with the optimum driving capability to satisfy is selected, and the designation for the block to be optimized is replaced to use the element. After this process is completed, the process returns to FIG.

以上の図3及び図4に示されている処理がCPU101によって行なわれることによって論理回路が最適化される具体例を示す。
図5は素子情報が定義されているライブラリの例を示している。
A specific example in which the logic circuit is optimized by the CPU 101 performing the processes shown in FIGS.
FIG. 5 shows an example of a library in which element information is defined.

ここで、図5に用いられている用語について説明する。
入力ピンの寄生容量とは、素子の入力ピンから見たその素子内部で定常的に有している容量である。
Here, the terms used in FIG. 5 will be described.
The parasitic capacitance of the input pin is a capacitance that is steadily provided in the element as viewed from the input pin of the element.

入力ピンの駆動能力とは、出力ピンに接続される容量であって、その入力ピンに信号が入力されたときに駆動し得る(出力信号の論理の反転を行なわせ得る)容量の最大値であり、これは論理の反転という過渡的な動作を行なわせる能力の高さを示す。   The drive capability of the input pin is a capacitance connected to the output pin, and is the maximum value of the capacitance that can be driven when a signal is input to the input pin (the logic of the output signal can be inverted). Yes, this indicates the high ability to perform a transient operation of logic inversion.

入力ピンの遅延率とは、その入力ピンからその素子の出力ピンへの信号の伝播において、その素子を駆動する(出力信号の論理の反転を行なわせる)と生じる遅延に対し、その入力ピンの駆動能力とその出力ピンについての負荷容量とがその遅延時間にどの程度の影響を及ぼすかを示すものであり、

遅延率=(単位負荷容量で生じる遅延)×(駆動能力)÷
(最適化対象である論理回路における基準クロックの1周期分の時間)

で求められる。なお、負荷容量とは、出力ピンに接続されている後段の全ての素子を駆動する(信号の論理を反転する)過渡的な動作を行なうときに負荷としてその出力ピンにかかり得る容量をいう。
The delay rate of an input pin refers to the delay of the input pin relative to the delay that occurs when the element is driven (the logic of the output signal is inverted) in the signal propagation from the input pin to the output pin of the element. It shows how much the driving capacity and the load capacity of the output pin affect the delay time.

Delay rate = (delay caused by unit load capacity) x (drive capacity) ÷
(Time for one cycle of the reference clock in the logic circuit to be optimized)

Is required. The load capacitance is a capacitance that can be applied to the output pin as a load when performing a transient operation (inverting the logic of the signal) that drives all the subsequent elements connected to the output pin.

また、素子の平均遅延率、平均駆動能力、及び平均寄生容量とは、それぞれその素子の有する各入力ピンの遅延率、駆動能力、寄生容量の平均値である。
図5について説明すると、素子名が「AAA」なる素子は2入力NANDであり、「2NAND」グループなる素子グループに属している。また、この素子に対する最適化は「可」とされており、非最適化の属性は有していない。そして、この素子を実装するには50の面積を要し、その平均遅延率は1.3である。また、この素子はA及びBなる入力ピンとXなる出力ピンとを有しており、入力ピンAについては遅延率が1.2、駆動能力が33.5、寄生容量が9.0と定義され、入力ピンBについては遅延率が1.4、駆動能力が32.0、寄生容量が10.5と定義されている。
The average delay rate, average drive capability, and average parasitic capacitance of an element are the average values of the delay rate, drive capability, and parasitic capacitance of each input pin of the element.
Referring to FIG. 5, an element whose element name is “AAA” is a 2-input NAND, and belongs to an element group “2NAND” group. Further, the optimization for this element is “possible”, and it does not have a non-optimization attribute. And mounting this element requires 50 areas, and the average delay rate is 1.3. This element has input pins A and B and an output pin X, and the input pin A is defined as a delay rate of 1.2, a driving capability of 33.5, and a parasitic capacitance of 9.0. For the input pin B, the delay rate is defined as 1.4, the driving capability is 32.0, and the parasitic capacitance is 10.5.

前述した図3のS101の処理においては、この図5に示したようなライブラリが読み出される。
次に図6について説明する。同図はこれより遅延最適化処理を施す回路網の一例を示している。同図に示す回路網において、ブロックF及びIはフリップフロップである。前述した図3のS102の処理においては、この図6の回路網を示す情報が取得される。
In the process of S101 in FIG. 3 described above, the library as shown in FIG. 5 is read.
Next, FIG. 6 will be described. This figure shows an example of a circuit network to which delay optimization processing is applied. In the circuit network shown in the figure, blocks F and I are flip-flops. In the process of S102 of FIG. 3 described above, information indicating the circuit network of FIG. 6 is acquired.

なお、以降の説明においては、図6に示す回路網を「回路網A」と称することとする。
図7は、前述した図3のS103の処理の実行によって回路網Aの各ブロックに対して行なわれた段数付けの結果を示す図である。同図において、各ブロックに付された数字が、そのブロックの段数を示している。
In the following description, the circuit network shown in FIG. 6 is referred to as “circuit network A”.
FIG. 7 is a diagram showing the result of the numbering performed on each block of the network A by executing the process of S103 of FIG. In the figure, the number given to each block indicates the number of stages of the block.

図7において、例えばブロックDの前段にはブロックA及びブロックCの2つが存在する。この2つのブロックのうち段数の大きいブロックCの段数は2であるから、ブロックCの段数である2段に1段を加えた3段を、ブロックDの段数とする。他のブロックE、H、及びKについても同様に、前段ブロックの段数のうちの最大のものに1段加えた段数をそのブロックの段数とする。   In FIG. 7, for example, there are two blocks A and C before the block D. Of these two blocks, the number of stages of the block C having a large number of stages is 2, so that the number of stages of the block D is 3 stages obtained by adding one stage to the two stages of the block C. Similarly, for the other blocks E, H, and K, the number of stages obtained by adding one stage to the maximum number of stages of the preceding block is set as the number of stages of the block.

図8は、前述した図3のS104の処理の実行によって回路網Aの各ブロックに対して行なわれた遅延計算の結果の例である。同図において、各ブロックに付されている数字が、そのブロックの入力ピンから出力ピンまでのブロック遅延を示す。なお、各ブロックの遅延は次式によって算出される。   FIG. 8 is an example of the result of delay calculation performed on each block of the network A by executing the process of S104 of FIG. In the figure, the number given to each block indicates the block delay from the input pin to the output pin of that block. The delay of each block is calculated by the following equation.

Figure 2007193829
Figure 2007193829

上式において、負荷容量は、自ブロックの出力ピンに接続されている後段の全てのブロックの駆動能力の総和となる。
なお、上式の計算を行なうときには、遅延率、駆動能力、寄生容量として各ブロックの平均遅延率、平均駆動能力、平均寄生容量を用い、また、負荷容量についても、後段の全てのブロックの平均駆動能力の総和を用いる。
In the above equation, the load capacity is the sum of the drive capacities of all the subsequent blocks connected to the output pin of the own block.
When calculating the above formula, the average delay rate, average drive capability, and average parasitic capacitance of each block are used as the delay rate, drive capability, and parasitic capacitance. Also, the load capacitance is the average of all blocks in the subsequent stage. Use the sum of the driving capabilities.

図9は、前述した図3のS104の処理の実行によって図8に示した遅延計算に続いて回路網Aの各ブロックに対して行なわれた最大遅延の計算結果の例である。同図において、各ブロックに付されている数字が、そのブロックの出力ピンまでに生じ得る最大遅延を示している。   FIG. 9 is an example of the calculation result of the maximum delay performed on each block of the network A following the delay calculation shown in FIG. 8 by executing the process of S104 of FIG. In the figure, the number given to each block indicates the maximum delay that can occur until the output pin of that block.

図9において、例えばブロックDでは、前段のブロックであるブロックAとブロックCとのうち、その段までの最大遅延が大きいブロックAの最大遅延30に、ブロックD自身の遅延5を加えた値35が、ブロックDまでの最大遅延となる。なお、ここではブロックの段数は考慮しない。他のブロックE、H、及びKについても同様に、前段ブロックの最大遅延に自身の遅延を加えた値を、そのブロックまでの最大遅延とする。   In FIG. 9, for example, in the block D, a value 35 obtained by adding the delay 5 of the block D itself to the maximum delay 30 of the block A having a large maximum delay up to the previous block A and block C. Is the maximum delay until block D. Note that the number of block stages is not considered here. Similarly, for the other blocks E, H, and K, a value obtained by adding the own delay to the maximum delay of the preceding block is set as the maximum delay until that block.

図10は、回路網Aにおいて外部出力端子もしくはフリップフロップの入力ピンに繋がるブロックまでで許容される到達時間を80とした場合に、前述した図3のS105の処理の実行によって各ブロックに対して行なわれた許容到達時間の計算結果の例である。同図において、各ブロックに付されている括弧付の数字は図7で示していた各ブロックの素子遅延を、また、それらの数字の下に示されている括弧無しの数字は許容到達時間を、それぞれ示している。   FIG. 10 shows that each block is executed by executing the process of S105 of FIG. 3 described above, assuming that the allowable time until the block connected to the external output terminal or the input pin of the flip-flop in the network A is 80. It is an example of the calculation result of the allowable arrival time performed. In the figure, the numbers in parentheses attached to each block indicate the element delay of each block shown in FIG. 7, and the numbers without parentheses shown below the numbers indicate the allowable arrival time. , Respectively.

図10において、例えばブロックJにおいて、その出力ピンは外部出力端子と共にブロックKにも繋げられている。ここで、ブロックKについて、その許容到達時間が80であり、その素子遅延が10であることから、その差分は70となり、この値がブロックJからブロックKへのパスの許容到達時間となる。ここで、ブロックJから外部出力端子へと繋げられているパスの外部出力端子における許容到達時間は本来80であるが、ブロックKへのパスの許容到達時間の制限がより小さいがためにブロックJの許容到達時間は70となる。他のブロックについても同様である。   In FIG. 10, for example, in the block J, the output pin is connected to the block K together with the external output terminal. Here, for block K, its allowable arrival time is 80 and its element delay is 10, so the difference is 70, and this value is the allowable arrival time of the path from block J to block K. Here, the allowable arrival time at the external output terminal of the path connected from the block J to the external output terminal is originally 80, but the limit of the allowable arrival time of the path to the block K is smaller, so the block J The allowable arrival time is 70. The same applies to the other blocks.

図11は、前述した図3のS105の処理の実行によって回路網Aの各ブロックに対して行なわれたスラック値の計算結果の例である。同図において、各ブロックに付されている数字がそのブロックのスラック値を示している。   FIG. 11 is an example of the calculation result of the slack value performed on each block of the circuit network A by executing the process of S105 of FIG. In the figure, the numbers given to each block indicate the slack value of that block.

ブロックのスラック値とは、そのブロックまでで生じ得る最大遅延とそのブロックに許容されている到達時間(許容到達時間)との差であり、そのブロックにおけるタイミングの余裕度を示すものである。なお、本実施例では、そのブロックについての最大遅延からそのブロックについての許容到達時間を減じた値をスラック値とする。従って、スラック値の符号が正であって大きいほど許容到達時間に対する違反の程度が重度であることを示し、一方、スラック値の符号が負であって小さいほど(スラック値の符号が負であってその絶対値が大きいほど)許容到達時間に対する余裕が大きいことを示すこととなる。   The slack value of a block is the difference between the maximum delay that can occur up to that block and the arrival time allowed for that block (allowable arrival time), and indicates the margin of timing in that block. In the present embodiment, a value obtained by subtracting the allowable arrival time for the block from the maximum delay for the block is defined as the slack value. Therefore, the positive sign of the slack value indicates that the degree of violation of the allowable arrival time is severe. On the other hand, the negative sign of the slack value is negative and the sign of the slack value is negative. The larger the absolute value), the larger the margin for the allowable arrival time.

図11において、例えばブロックJにおいては、最大遅延は図9より15であり、許容到達時間は図10より70であることが分かるので、その差である−55がこのブロックのスラック値となる。   In FIG. 11, for example, in block J, the maximum delay is 15 from FIG. 9, and the allowable arrival time is 70 from FIG. 10. Therefore, −55 which is the difference is the slack value of this block.

次に、前述した図3のS107で行なわれる図4に示したブロック最適化処理について説明する。
図4のS114で行なわれる被最適化ブロックの最適駆動能力の算出は次のようにして行なわれる。
Next, the block optimization process shown in FIG. 4 performed in S107 of FIG. 3 will be described.
The calculation of the optimum drive capability of the block to be optimized performed in S114 of FIG. 4 is performed as follows.

ドライバブロックで生じる遅延と被最適化ブロックで生じる遅延との和Dは、前述した[数1]式より、   The sum D of the delay generated in the driver block and the delay generated in the optimized block is obtained from the above-described [Equation 1]:

Figure 2007193829
となる。なお、上式において、
ドライバブロックの遅延+被最適化ブロックの遅延:D
ドライバブロックの駆動能力:C1
ドライバブロックの遅延率:G1
ドライバブロックの寄生容量:P1
被最適化ブロックの駆動能力(=ドライバブロックの負荷容量):c2
被最適化ブロックの遅延率:G2
被最適化ブロックの寄生容量:P2
被最適化ブロックの負荷容量:C3
クロック単位時間:τ
である。
Figure 2007193829
It becomes. In the above formula,
Driver block delay + optimized block delay: D
Driver block drive capacity: C1
Driver block delay rate: G1
Parasitic capacitance of driver block: P1
Drive capacity of the block to be optimized (= load capacity of the driver block): c2
Delay rate of optimized block: G2
Parasitic capacitance of optimized block: P2
Load capacity of optimized block: C3
Clock unit time: τ
It is.

この[数2]式をc2で微分したときの値が0となればこの部分の遅延が最小となる。従って、このようなc2の値が最適な駆動能力となる。すなわち、   If the value obtained by differentiating the equation [2] by c2 is 0, the delay of this portion is minimized. Therefore, such a value of c2 is the optimum driving capability. That is,

Figure 2007193829
となり、このc2を最適駆動能力とする。
次に、図4のS115で行なわれる、前述したようにして求められた最適駆動能力に基づく素子の選択の一例を説明する。
Figure 2007193829
Thus, this c2 is set as the optimum driving capability.
Next, an example of element selection based on the optimum driving ability obtained as described above performed in S115 of FIG. 4 will be described.

ここでは、被最適化ブロックの素子が属する論理素子グループ名を”INVERTER”であったとし、このグループに含まれる素子名とその駆動能力が下記の表のようにライブラリに定義されていたものとする。   Here, it is assumed that the logical element group name to which the element of the block to be optimized belongs is “INVERTER”, and the element name included in this group and its driving capability are defined in the library as shown in the table below. To do.

Figure 2007193829
Figure 2007193829

ここで、例えば、前述した図4のS114の処理によって求められた被最適化ブロックの最適駆動能力が14.0であった場合には、上記の[表1]より、その値に最も近い駆動能力13.0を有している”INV2”が選択される。その結果、S115の処理によって被最適化ブロックの最適素子としてこの選択された素子への置換が行なわれる。   Here, for example, when the optimum drive capability of the optimized block obtained by the process of S114 of FIG. 4 described above is 14.0, the drive closest to the value is calculated from the above [Table 1]. “INV2” having capability 13.0 is selected. As a result, the selected element is replaced as the optimum element of the block to be optimized by the process of S115.

次に図12について説明する。同図はブロック最適化処理の第二の例の処理内容を示すフローチャートである。この第二の処理は、素子の実装面積に制限を付加することによって、最適化による実装面積の過大な増加を抑制するというものである。   Next, FIG. 12 will be described. This figure is a flowchart showing the processing contents of the second example of the block optimization processing. The second process is to suppress an excessive increase in the mounting area due to the optimization by adding a limit to the mounting area of the element.

図12において、図4と同一の処理内容を示すステップには同一の符号を付している。図12を図4に示すブロック最適化処理の第一の例の処理内容を示すフローチャートと比較すると分かるように、この第二の例は、図4のS114の処理とS115の処理との間にS121からS123にかけての処理が追加されたものである。   In FIG. 12, steps showing the same processing contents as those in FIG. 4 are denoted by the same reference numerals. As can be seen by comparing FIG. 12 with the flowchart showing the processing contents of the first example of the block optimization processing shown in FIG. 4, this second example is between the processing of S114 and S115 of FIG. The processing from S121 to S123 is added.

図12において、S115に続くS121では、前述した図3のS102の処理において取得された回路網情報において、この被最適化ブロックに対して回路面積を変更させない指示がなされているか否かが調べられる。   In FIG. 12, in S121 following S115, it is checked whether or not an instruction not to change the circuit area is given to the optimized block in the circuit network information acquired in the processing of S102 of FIG. .

そして、S121の判定結果がYes、すなわち上述した指示がなされているのであれば、S122において、前述したライブラリにおいて定義されているその被最適化ブロックでの使用が現在指定されている素子についての素子面積が取得され、続くS123において、その被最適化ブロックでの使用が現在指定されている素子と同じ論理素子グループに属する素子において、被最適化ブロックの素子面積と同一の面積を持つ素子がその後の素子置換の選択候補とされ、その後はS115に処理が進む。S115では、その選択候補とされた素子がその被最適化ブロックで使用する素子としての指定となるような使用素子の置換が行なわれる。   If the determination result in S121 is Yes, that is, if the above-described instruction is made, in S122, the element for the element that is currently designated for use in the optimized block defined in the library described above. In step S123, an element belonging to the same logical element group as the element that is currently designated for use in the optimized block is an element having the same area as the element area of the optimized block. Then, the process proceeds to S115. In S115, the used elements are replaced such that the element selected as the selection candidate is designated as the element to be used in the optimized block.

一方、S121の判定結果がNo、すなわち上述した指示がなされていないのであれば、処理が直ちにS115へと進み、図4と同様の処理が行なわれる。
以上の図12に示されている処理がCPU101によって行なわれることによって論理回路が最適化される具体例を示す。
On the other hand, if the determination result in S121 is No, that is, if the above-described instruction is not made, the process immediately proceeds to S115, and the same process as in FIG. 4 is performed.
A specific example in which the logic circuit is optimized by performing the processing shown in FIG.

被最適化ブロックの素子が属する論理素子グループ名が”INVERTER”であったとし、このグループに含まれる素子名とその駆動能力及び素子面積とが下記の表のようにライブラリに定義されていたものとする。   The logical element group name to which the element of the optimized block belongs is “INVERTER”, and the element name included in this group and its drive capability and element area are defined in the library as shown in the table below. And

Figure 2007193829
Figure 2007193829

今、被最適化ブロックでの使用が現在指定されている素子が”INV4”であったとき、その素子面積は、上記の表により30であることが分かる。また、”INVERTER”グループの素子のうち素子面積が30のものは、上記の表により”INV3”及び”INV4”の2つであるから、回路面積を変更させない指示がある場合にはこの2つが素子置換の選択候補となる。   When the element currently designated for use in the optimized block is “INV4”, the element area is 30 according to the above table. In addition, in the “INVERTER” group, those with an element area of 30 are “INV3” and “INV4” according to the above table, so if there is an instruction not to change the circuit area, these two are It becomes a selection candidate for element replacement.

ここで、計算によって求められた被最適化ブロックの最適駆動能力が14.0であった場合には、その駆動能力に近い”INV3”が被最適化ブロックの最適素子として選択されて置換される。この結果、被最適化ブロックの回路面積は最適化が行なわれても保持され、実装面積の過大な増加が抑制される。   Here, when the optimum drive capability of the block to be optimized obtained by calculation is 14.0, “INV3” close to the drive capability is selected and replaced as the optimum element of the block to be optimized. . As a result, the circuit area of the block to be optimized is maintained even if optimization is performed, and an excessive increase in the mounting area is suppressed.

次に図13について説明する。同図は代表ピン選択処理の処理内容を示すフローチャートである。この処理は、被最適化ブロックが複数の入力ピンを有しているときの最適化を行なうための処理であり、従来のクリティカルパス上の入力ピンについて行なう手法に代えて、その被最適化ブロックの前段のブロックであって遅延量の最も大きなブロックが接続されている入力ピンについて駆動能力の最適化を行なうようにするものである。   Next, FIG. 13 will be described. This figure is a flowchart showing the processing contents of the representative pin selection processing. This process is a process for performing optimization when the block to be optimized has a plurality of input pins. Instead of the conventional technique for performing input pins on the critical path, the block to be optimized is used. The drive capability is optimized for the input pin to which the block having the largest delay amount is connected.

この図13の処理は、前述した図4若しくは図12のブロック最適化処理におけるS111の処理の際に実行される。
まず、S131において、被最適化ブロックが信号多入力のブロックであるか否か、すなわち入力ピンを複数持つブロックであるか否かが判定される。そして、この判定結果がYesのときにのみ、S132において、各入力ピンがつながっている前段の各ブロックについての最大遅延の値が取得される。
The process of FIG. 13 is executed in the process of S111 in the block optimization process of FIG. 4 or 12 described above.
First, in S131, it is determined whether or not the optimization target block is a multi-signal input block, that is, a block having a plurality of input pins. Only when this determination result is Yes, in S132, the value of the maximum delay for each block in the previous stage to which each input pin is connected is acquired.

続くS133では、それらの値のうちで最大であるもののブロックに繋げられている入力ピンが、その被最適化ブロックの代表ピンとして選択される。なお、S131の判定結果がNo、すなわち被最適化ブロックが入力ピンを1つのみ有している場合は、そのピンが代表ピンとされる。   In subsequent S133, the input pin connected to the block having the largest value among these values is selected as the representative pin of the optimized block. If the determination result in S131 is No, that is, if the optimized block has only one input pin, that pin is used as a representative pin.

以上の代表ピン選択処理がCPU101によって行なわれることによって被最適化ブロックの代表ピンが選択される具体例を示す。
前述した図9において、被最適化ブロックとして例えばブロックDについて注目する。
A specific example in which the representative pin of the block to be optimized is selected by the CPU 101 performing the above representative pin selection processing.
In FIG. 9 described above, attention is focused on, for example, the block D as the optimized block.

ブロックDはa及びbの入力ピンを有している。そして、これらの2つの入力ピンにつながる前段のブロックは、ブロックA及びブロックCである。これらのブロックまでの最大遅延の値はそれぞれ30、25であることが図9には示されており、その値はブロックAの方が大きい。よって、ブロックDにおいては、ブロックAに繋げられているピンaが代表ピンとなる。   Block D has a and b input pins. The preceding blocks connected to these two input pins are the block A and the block C. FIG. 9 shows that the maximum delay values up to these blocks are 30 and 25, respectively, and the value of block A is larger. Therefore, in block D, pin a connected to block A is the representative pin.

次に、例えばブロックCが被最適化ブロックである場合について考える。ブロックCの入力ピンはaのみであるから、このピンaがブロックCの代表ピンとなる。
次に図14について説明する。同図は駆動能力分配処理の処理内容を示すフローチャートである。この処理は、後段に複数のブロックが繋げられている、つまり複数のファンアウトを有する被最適化ブロックの最適化を行なった後に、これらの後段の各ブロックに指定されていた駆動能力の違いをスラック値(タイミングの余裕度)に基づいて平準化させることによって、これらの各ブロックに対して後に行なわれる最適化において要求することとなる駆動能力が過剰に見込まれることを抑制させるものである。
Next, consider the case where, for example, block C is an optimized block. Since the only input pin of block C is a, this pin a becomes the representative pin of block C.
Next, FIG. 14 will be described. This figure is a flowchart showing the processing contents of the driving ability distribution processing. In this process, a plurality of blocks are connected in the subsequent stage, that is, after optimizing the optimized block having a plurality of fan-outs, the difference in driving ability specified for each block in the subsequent stage is determined. By leveling on the basis of the slack value (timing margin), it is possible to suppress an excessive expectation of the driving capability required in the optimization performed later for each of these blocks.

この図14の処理は、前述した図3の回路遅延最適化処理におけるS107のブロック最適化処理の直後に実行される。
図14において、S141では、被最適化ブロックの後段のブロックのうち、その被最適化ブロックの出力ピンに接続されている入力ピンがそのブロックの代表ピンであるものが全て検出される。以下の説明においては、この処理によって検出された後段のブロックを「ブランチブロック」と称することとする。
The process of FIG. 14 is executed immediately after the block optimization process of S107 in the circuit delay optimization process of FIG.
In FIG. 14, in S141, all the blocks subsequent to the block to be optimized whose input pins connected to the output pins of the block to be optimized are the representative pins of the block are detected. In the following description, the subsequent block detected by this processing is referred to as a “branch block”.

続くS142において、ブランチブロックが複数検出されたか否かが判定され、この判定結果がYesならばS143に処理が進む。一方、この判定結果がNoならばブランチブロックの駆動能力の分配は行なわれずにこのままこの駆動能力分配処理が終了する。   In subsequent S142, it is determined whether or not a plurality of branch blocks are detected. If the determination result is Yes, the process proceeds to S143. On the other hand, if the determination result is No, the drive capacity distribution process is terminated as it is without distributing the drive capacity of the branch block.

S143では、各ブランチブロックの代表ピンについて、それらの駆動能力が前述したライブラリでの定義から取得され、それらの合計値が算出される。
S144では、前述した図3のS105の処理によって既に算出されている、各ブランチブロックについてのスラック値が取得され、続くS145において取得されたスラック値の平均値(スラック平均値)が算出される。
In S143, the drive capability of the representative pins of each branch block is acquired from the definition in the library described above, and the total value thereof is calculated.
In S144, the slack value for each branch block that has already been calculated by the process of S105 of FIG. 3 described above is acquired, and the average value (slack average value) of the slack values acquired in subsequent S145 is calculated.

S146では、算出されたスラック平均値と各ブランチブロックのスラック値との差分に基づき、且つブランチブロック全体での駆動能力を保持するような駆動能力が各ブランチブロックについて算出され、各ブランチブロックに分配される。   In S146, based on the difference between the calculated slack average value and the slack value of each branch block, a driving capability that maintains the driving capability of the entire branch block is calculated for each branch block and distributed to each branch block. Is done.

以上の駆動能力分配処理によって求められた駆動能力が各ブランチブロックについての最適化前の駆動能力として設定され、後にこれらのブランチブロックについての最適化処理が行なわれる。   The drive capability obtained by the above drive capability distribution process is set as the drive capability before optimization for each branch block, and the optimization processing for these branch blocks is performed later.

駆動能力分配処理がCPU101によって行なわれることによってブランチブロックに対する駆動能力の分配が行なわれる具体例を示す。
図15はこれより駆動能力分配処理を施す回路網の一例を示している。同図において、各ブロックの入力ピンa及びbのうち黒丸印が付されているものはそのブロックの代表ピンであることを示している。
A specific example will be shown in which drive capability distribution processing is performed by the CPU 101 to distribute drive capability to branch blocks.
FIG. 15 shows an example of a circuit network to which the driving capability distribution process is performed. In the figure, among the input pins a and b of each block, those marked with black circles indicate that they are representative pins of that block.

なお、以降の説明においては、図15に示す回路網を「回路網B」と称することとする。
回路網Bにおいて、被最適化ブロックとしてブロックAが選択されていた場合、そのブロックAの出力ピンxはブロックC、ブロックD、及びブロックEのいずれも入力ピンaに繋げられている。ここで、ブロックC、ブロックD、及びブロックEの入力ピンaはいずれも代表ピンであることが図15に示されている。よって、被最適化ブロックAに対するブランチブロックはブロックC、ブロックD、及びブロックEとなる。
In the following description, the circuit network shown in FIG. 15 is referred to as “circuit network B”.
In the network B, when the block A is selected as the block to be optimized, the output pin x of the block A is connected to the input pin a in all of the block C, the block D, and the block E. Here, FIG. 15 shows that the input pins a of the block C, the block D, and the block E are all representative pins. Therefore, the branch blocks for the optimized block A are the block C, the block D, and the block E.

また、回路網Bにおいて、被最適化ブロックとしてブロックBが選択されていた場合、そのブロックAの出力ピンxは、ブロックD及びブロックEのいずれも入力ピンbとブロックFの入力ピンaとに繋げられている。ここで、ブロックD及びブロックEの入力ピンbはいずれも代表ピンではなく、ブロックFの入力ピンaは代表ピンであることが図15に示されている。よって、被最適化ブロックBに対するブランチブロックはブロックFのみとなる。   Further, in the network B, when the block B is selected as the optimized block, the output pin x of the block A is connected to the input pin b and the input pin a of the block F in both the block D and the block E. It is connected. Here, FIG. 15 shows that the input pins b of the block D and the block E are not representative pins, and the input pin a of the block F is a representative pin. Therefore, the branch block for the optimized block B is only the block F.

被最適化ブロックAに対するブランチブロックC、D、及びEについての説明を続ける。これらのブランチブロックの素子名、代表ピンの駆動能力、スラック値はそれぞれ下記の表に示すものであったとする。   The description of the branch blocks C, D, and E for the optimized block A will be continued. Assume that the element names, representative pin drive capacities, and slack values of these branch blocks are as shown in the following table.

Figure 2007193829
Figure 2007193829

上記の表において、これらのブランチブロックの駆動能力の合計値は48.0であり、スラック平均値は−40.0である。   In the above table, the total value of the drive capability of these branch blocks is 48.0, and the slack average value is −40.0.

ここで、スラック値が平均値以上、すなわちタイミングの余裕の少ないブランチブロックについてはその駆動能力を次のように計算する。   Here, for the branch block whose slack value is equal to or greater than the average value, that is, with a small timing margin, the drive capability is calculated as follows.

Figure 2007193829
上式において、
駆動能力計算値:C’
そのブランチブロックについて現在指定されている駆動能力:C
そのブランチブロックのスラック値:S
ブランチブロック全体のスラック平均値:Sav
補正係数:k
例えば補正係数kを0.01とすると、[表3]において、スラック値が平均値以上、すなわちタイミングの余裕の少ないブランチブロックであるブロックCについてはC’=15.6となり、ブロックCに対して現在指定されているものよりも高めに駆動能力が分配される。なお、補正係数kは経験や実験での実測結果等に基づいて適切に設定される。
Figure 2007193829
In the above formula,
Driving capacity calculation value: C '
Currently specified drive capacity for the branch block: C
The slack value of the branch block: S
Slack average value of the entire branch block: Sav
Correction factor: k
For example, when the correction coefficient k is 0.01, in [Table 3], C ′ = 15.6 for the block C, which is a branch block with a slack value equal to or greater than the average value, that is, with little timing margin. Drive capacity is distributed higher than what is currently specified. The correction coefficient k is appropriately set based on experience, actual measurement results, and the like.

次に、スラック値が平均値よりも小さい、すなわちタイミングの余裕が多いブランチブロックについてはその駆動能力を次のように計算する。
まず、スラック値が平均値よりも小さいブランチブロックについての駆動能力計算値C’を用いて下記の式を計算する。
Next, for the branch block having a slack value smaller than the average value, that is, having a large timing margin, the drive capability is calculated as follows.
First, the following equation is calculated using the drive capability calculation value C ′ for the branch block whose slack value is smaller than the average value.

Figure 2007193829
上式において、Cdiffは駆動能力差分の和である。
[表3]においては、Cdiffは2.6と算出される。
Figure 2007193829
In the above equation, Cdiff is the sum of the driving ability differences.
In [Table 3], Cdiff is calculated to be 2.6.

次に、スラック値が平均値よりも小さいブランチブロックについて、駆動能力×(スラック平均値−スラック値)の総和Sdiffを次式より算出する。   Next, the sum Sdiff of driving capacity × (slack average value−slack value) is calculated from the following equation for the branch block whose slack value is smaller than the average value.

Figure 2007193829
Figure 2007193829

[表3]において、スラック値が平均値よりも小さいブランチブロックはブロックD及びブロックEであり、このときのSdiffは335.0と算出される。   In [Table 3], the branch blocks whose slack values are smaller than the average value are the block D and the block E, and Sdiff at this time is calculated as 335.0.

以上のようにして取得されたCdiff及びSdiffの値に基づき、スラック値が平均値より大きいブロックの駆動能力を、下記の式に沿って算出する。   Based on the values of Cdiff and Sdiff acquired as described above, the drive capability of the block whose slack value is larger than the average value is calculated according to the following equation.

Figure 2007193829
Figure 2007193829

[表3]において、スラック値が平均値よりも小さい、すなわちタイミングの余裕の多いブランチブロックであるブロックD及びブロックEについて、ブロックDはC’=18.3、ブロックEはC’=14.1となり、ブロックD及びブロックEに対して現在指定されているものよりも低めに駆動能力が分配される。このように、ブロックD及びブロックEについては要求される駆動能力が抑制されたので、実装面積の低減化等が期待できる。   In [Table 3], for block D and block E, which are branch blocks having a slack value smaller than the average value, that is, having a large timing margin, block D is C ′ = 18.3, and block E is C ′ = 14. 1 and the driving capability is distributed to blocks D and E lower than those currently specified. As described above, since the required driving capability of the block D and the block E is suppressed, a reduction in mounting area and the like can be expected.

次に図16について説明する。同図は駆動能力比率計算処理の処理内容を示すフローチャートである。この処理は、被最適化ブロックについてのブランチブロック全体の駆動能力と、そのブランチブロックの各々に指定されているものの中での最小の駆動能力との比率(駆動能力比率)を算出する処理であり、後に説明する処理においてはこの駆動能力比率の値を利用してブランチブロックの最適化を行なう。   Next, FIG. 16 will be described. This figure is a flowchart showing the processing contents of the driving capacity ratio calculation processing. This process is a process of calculating the ratio (drive capacity ratio) between the drive capacity of the entire branch block for the block to be optimized and the minimum drive capacity among those specified for each branch block. In the process described later, the branch block is optimized by using the value of the driving ability ratio.

図16において、図14と同一の処理内容を示すステップには同一の符号を付している。図16を図14に示す駆動能力分配処理の処理内容を示すフローチャートと比較すると分かるように、この図16に示されている処理は、図14のS145及びS146の処理がS151及びS152の処理に置き換えられたものである。   In FIG. 16, steps showing the same processing contents as those in FIG. 14 are denoted by the same reference numerals. As can be seen by comparing FIG. 16 with the flowchart showing the processing contents of the driving ability distribution processing shown in FIG. 14, the processing shown in FIG. 16 is different from the processing of S145 and S146 in FIG. It has been replaced.

なお、この駆動能力比率計算処理は、被最適化ブロックに対するブロック最適化が完了した後に、その被最適化ブロックの後段のブランチブロックに対して行なわれる処理であり、前述した図3の回路遅延最適化処理におけるS107のブロック最適化処理の後であって、前述した図14の駆動能力分配処理の直後に実行される。   This drive capacity ratio calculation process is a process performed on the branch block subsequent to the block to be optimized after the block optimization on the block to be optimized is completed. This process is executed after the block optimization process of S107 in the conversion process and immediately after the drive capacity distribution process of FIG.

図16において、S144の処理に続くS151では、各ブランチブロックのうちからスラック値が最も大きい、すなわちタイミングの余裕が最も少ないブランチブロックが選択される。   In FIG. 16, in S151 following the processing of S144, the branch block having the largest slack value, that is, the smallest timing margin is selected from among the branch blocks.

続くS152では、既に計算されているブランチブロック全体の駆動能力の和と、最大のスラック値を有するブランチブロックの駆動能力との比率、すなわち駆動能力比率が計算される。   In the subsequent S152, the ratio of the sum of the drive capacities of all the branch blocks already calculated and the drive capability of the branch block having the maximum slack value, that is, the drive capability ratio is calculated.

以上の駆動能力比率計算処理がCPU101によって行なわれることによって駆動能力比率が計算される具体例を示す。
前述した図15の回路網B中のブロックAについてのブランチブロックC、D、及びEにおいて、それぞれの素子名、駆動能力、スラック値、駆動能力計算値(前述した駆動能力分配処理によって算出された値)が下記の表の通りであったとする。
A specific example in which the drive capability ratio is calculated by the above-described drive capability ratio calculation processing being performed by the CPU 101 will be described.
In the above-described branch blocks C, D, and E for the block A in the circuit network B of FIG. 15, the respective element names, driving capabilities, slack values, and driving capability calculation values (calculated by the driving capability distribution process described above). Value) is as shown in the table below.

Figure 2007193829
Figure 2007193829

上記の表より、これらブランチブロックの駆動能力の和は48.0であり、また、これらブランチブロックの中でスラック値が最も大きい、すなわちタイミングの余裕が少ないのはスラック値−20.0のブロックCであることは容易に分かる。   From the above table, the sum of the drive capabilities of these branch blocks is 48.0, and the slack value is the largest among these branch blocks, that is, the block with the slack value −20.0 has the least timing margin. It is easy to see that it is C.

[表4]において、ブロックCの駆動能力計算値は15.6である。従ってこのときの駆動能力比率mは、

m=48.0/15.6=3.1

と求められる。
In [Table 4], the drive capacity calculation value of the block C is 15.6. Therefore, the driving capacity ratio m at this time is

m = 48.0 / 15.6 = 3.1

Is required.

次に、この駆動能力比率を用いたブランチブロックの最適化について説明する。図17は、この駆動能力比率を用いて行なわれる駆動能力変化率反映処理の処理内容を示すフローチャートである。   Next, branch block optimization using this drive capability ratio will be described. FIG. 17 is a flowchart showing the processing contents of the driving capability change rate reflection processing performed using this driving capability ratio.

この駆動能力変化率反映処理は、被最適化ブロックに対するブロック最適化が完了した後に、その被最適化ブロックの後段のブランチブロックに対して行なわれる処理であり、前述した図3の回路遅延最適化処理におけるS107のブロック最適化処理の後であって、前述した図14の駆動能力分配処理の直後に実行される。   This drive capability change rate reflection process is a process performed on the branch block subsequent to the block to be optimized after the block optimization on the block to be optimized is completed. The circuit delay optimization of FIG. This process is executed after the block optimization process of S107 in the process and immediately after the drive capacity distribution process of FIG.

図17において、図16と同一の処理内容を示すステップには同一の符号を付している。図17を図16に示す駆動能力比率計算処理の処理内容を示すフローチャートと比較すると分かるように、この図17に示されている処理は、図16のS152の処理に続いてS153からS158にかけての処理が追加されたものである。   In FIG. 17, steps showing the same processing contents as those in FIG. 16 are denoted by the same reference numerals. As can be seen by comparing FIG. 17 with the flowchart showing the processing contents of the driving capability ratio calculation processing shown in FIG. 16, the processing shown in FIG. 17 is performed from S153 to S158 following the processing of S152 in FIG. Processing is added.

S152に続くS153では、同一のドライブブロックに繋げられているブランチブロックのうちスラック値が最大であり、最もタイミングの余裕が少ないものの最適駆動能力が計算される。なお、このときに、S152の処理によって算出された駆動能力比率が利用される。   In S153 following S152, the optimum drive capacity of the branch block connected to the same drive block having the maximum slack value and the smallest timing margin is calculated. At this time, the drive capability ratio calculated by the process of S152 is used.

S154では、前ステップで求められた最適駆動能力に基づいて、そのブランチブロックでの使用が現在指定されている素子と同じ論理素子グループに属する素子のうち、そのブランチブロックの最適駆動能力を満たす最適な駆動能力を有するものが選択され、そのブランチブロックについての指定がその素子を使用するように置換される。   In S154, based on the optimum drive capability obtained in the previous step, among the elements belonging to the same logical element group as the element currently used in the branch block, the optimum satisfying the optimum drive capability of the branch block is obtained. With the correct drive capability is selected and the designation for that branch block is replaced to use that device.

S155では、スラック値が最大のブランチブロックについて、S154の処理において置換された素子の駆動能力と、その置換前に設定されていた駆動能力とからその駆動能力の変化率が計算される。   In S155, for the branch block with the largest slack value, the change rate of the drive capability is calculated from the drive capability of the element replaced in the processing of S154 and the drive capability set before the replacement.

その後、S156において、同一のドライブブロックに繋げられている全てのブランチブロックに対して最適化が行なわれたか否かが判定される。この判定処理の結果がYes、すなわち全てのブランチブロックの最適化が行なわれたと判定されたときにはこの駆動能力最適化反映処理が終了する。   Thereafter, in S156, it is determined whether or not optimization has been performed on all branch blocks connected to the same drive block. When the result of this determination process is Yes, that is, when it is determined that all branch blocks have been optimized, this drive capacity optimization reflection process ends.

一方、このS156の判定処理の結果がNo、すなわち、最適化の行われていないブランチブロックが未だ残っていると判定されたならば、S157へと処理が進む。
S157では、最適化を行なうブランチブロックの駆動能力と、スラック値が最大のブロックについての駆動能力変化率とに基づいてそのブランチブロックについての最適駆動能力が計算される。
On the other hand, if the result of the determination process in S156 is No, that is, it is determined that there are still branch blocks that have not been optimized, the process proceeds to S157.
In S157, the optimum driving capability for the branch block is calculated based on the driving capability of the branch block to be optimized and the driving capability change rate for the block with the largest slack value.

続くS158では、前ステップで求められた最適駆動能力に基づいて、ブランチブロックでの使用が現在指定されている素子と同じ論理素子グループに属する素子のうち、そのブランチブロックの最適駆動能力を満たす最適な駆動能力を有するものが選択され、そのブランチブロックについての指定がその素子を使用するように置換される。この処理を終えた後にはS156へと処理が戻り、上述した処理が繰り返される。   In subsequent S158, based on the optimum drive capability obtained in the previous step, among the elements belonging to the same logical element group as the element currently used in the branch block, the optimum satisfying the optimum drive capability of the branch block is obtained. With the correct drive capability is selected and the designation for that branch block is replaced to use that device. After this process is completed, the process returns to S156, and the above-described process is repeated.

以上の駆動能力最適化反映処理について、更に詳説する。
ます、前述した駆動能力比率、すなわちブランチブロック全体の駆動能力をスラック値が最大のブランチブロックの駆動能力で割った値をmとする。
The above drive capability optimization reflection process will be further described in detail.
First, let m be the drive capacity ratio described above, that is, the value obtained by dividing the drive capacity of the entire branch block by the drive capacity of the branch block having the maximum slack value.

図17のS153の処理においてスラック値が最大のブランチブロックについての最適駆動能力を計算するときには、前述した図4のS114の処理のために用いた[数2]式に代えて下記の式を用いる。   When calculating the optimum driving capability for the branch block with the largest slack value in the processing of S153 in FIG. 17, the following formula is used instead of the formula [2] used for the processing of S114 in FIG. .

Figure 2007193829
なお、上式において、
最適化済ブロックの遅延+被最適化ブランチブロックの遅延:D
最適化済ブロックの駆動能力:C1
最適化済ブロックの遅延率:G1
最適化済ブロックの寄生容量:P1
被最適化ブランチブロックの駆動能力:c2
被最適化ブランチブロックの遅延率:G2
被最適化ブランチブロックの寄生容量: P2
被最適化ブランチブロックの負荷容量: C3
クロック単位時間: τ
被最適化ブランチブロック分を除いた最適化済ブロックの負荷容量の和
(ネットの負荷容量も含む):Cother
である。従って、最適化済ブロックの負荷容量は、c2×m+Cotherで表されることになる。
Figure 2007193829
In the above formula,
Delay of optimized block + delay of optimized branch block: D
Drive capacity of optimized block: C1
Delay rate of optimized block: G1
Parasitic capacitance of optimized block: P1
Drive capability of optimized branch block: c2
Delay rate of optimized branch block: G2
Parasitic capacitance of optimized branch block: P2
Load capacity of optimized branch block: C3
Clock unit time: τ
Sum of load capacity of optimized blocks excluding optimized branch blocks
(Including net load capacity): Cother
It is. Therefore, the load capacity of the optimized block is represented by c2 × m + Cother.

この[数8]式をc2で微分したときの値が0となればこの部分の遅延が最小となる。従って、このようなc2の値が最適な駆動能力となる。すなわち、   If the value obtained by differentiating this [Equation 8] by c2 is 0, the delay of this portion is minimized. Therefore, such a value of c2 is the optimum driving capability. That is,

Figure 2007193829
となり、このc2を被最適化ブランチブロックの最適駆動能力とする。
図17のS155の処理における駆動能力の変化率の計算では、S154の処理において最適化によって置換された素子の駆動能力をその置換前の素子の駆動能力計算値で除算した結果の値を駆動能力変化率とする。なお、ここでは、駆動能力変化率を係数Gとして表すこととする。
Figure 2007193829
Thus, this c2 is set as the optimum drive capability of the branch block to be optimized.
In the calculation of the change rate of the driving capability in the process of S155 of FIG. 17, the value obtained as a result of dividing the driving capability of the element replaced by the optimization in the processing of S154 by the calculated driving capability of the element before the replacement is the driving capability. Change rate. Here, the drive capability change rate is expressed as a coefficient G.

[表4]において、ブロックCは最適化前の駆動能力計算値が15.6である。ここで、ブロックCに対して施された最適化によって置換された素子の駆動能力が16.0であったとすると、係数Gの値は1.026となる。   In [Table 4], the driving ability calculation value before optimization of the block C is 15.6. Here, if the drive capability of the element replaced by the optimization applied to the block C is 16.0, the value of the coefficient G is 1.026.

一方、スラック値が最小ではない他のブランチブロックの最適駆動能力は、駆動能力計算値に係数Gを掛けて求める。例えば、スラック値が最小でないブランチブロックであるブロックDの駆動能力計算値は、[表4]より18.3であることが分かる。ここで、係数Gを1.026とすると、このブロックDの最適駆動能力は18.8となる。よって、ブロックDの最適化では、このブロックDに現在指定されている素子と同一の論理素子グループに属し、前述した計算により求められた最適駆動能力に最も近い駆動能力を持つ素子への置換が行なわれる。   On the other hand, the optimum driving capability of other branch blocks whose slack values are not minimum is obtained by multiplying the driving capability calculation value by the coefficient G. For example, it can be seen from [Table 4] that the drive capacity calculation value of block D, which is a branch block whose slack value is not minimum, is 18.3. Here, when the coefficient G is 1.026, the optimum driving capacity of the block D is 18.8. Therefore, in the optimization of the block D, replacement with an element that belongs to the same logical element group as the element currently specified in the block D and has the driving ability closest to the optimum driving ability obtained by the above-described calculation is performed. Done.

次に図18について説明する。同図はピン駆動能力指示検出処理の処理内容を示すフローチャートである。この処理は、遅延最適化を行なうときに、その対象である論理回路網の入力端子に接続される外部の素子の入力ピンの駆動能力値や論理回路網の出力端子に接続される外部の素子の入力ピンの負荷容量値(すなわち駆動能力値)、あるいは回路内部のブロックの入力ピンについての駆動能力値について、前述したライブラリなどで定義されている所定のものを適用させる代わりに、ユーザが本装置へ任意に指示できるようにするものであり、実際に想定される外部端子への接続の再現や、回路構成の変更が予定される箇所でのその変更を見込んだ上での最適化を可能とするためのものである。   Next, FIG. 18 will be described. This figure is a flowchart showing the processing contents of the pin driving capability instruction detection processing. In this process, when delay optimization is performed, the drive capability value of the input pin of the external element connected to the input terminal of the logic circuit that is the object and the external element connected to the output terminal of the logic circuit network Instead of applying a predetermined value defined in the above-mentioned library or the like for the load capacity value of the input pin (that is, the drive capacity value) or the drive capacity value of the input pin of the block in the circuit, the user can use this It is possible to give instructions to the device arbitrarily, and it is possible to reproduce the connection to the external terminal that is actually assumed, and to optimize it in anticipation of the change at the place where the circuit configuration is scheduled to be changed. It is for.

この図18の処理は、前述した図3の回路遅延最適化処理におけるS101及びS102の処理により最適化の対象である回路網についての情報が読み込まれた直後に実行される。   The processing of FIG. 18 is executed immediately after the information about the circuit network to be optimized is read by the processing of S101 and S102 in the circuit delay optimization processing of FIG.

図18において、まず、S161では、ピンの駆動能力についての外部指示が入力部105になされたか否かが判定され、この判定の結果がYesならばS162に処理が進む。一方、この判定の結果がNoならばこのまま何もせずにこのピン駆動能力指示検出処理を終了する。   In FIG. 18, first, in S161, it is determined whether or not an external instruction for the pin driving capability has been given to the input unit 105. If the result of this determination is Yes, the process proceeds to S162. On the other hand, if the result of this determination is No, nothing is done as it is, and this pin drive capability instruction detection process is terminated.

S162では、入力部105へ指示された駆動能力の読み込みが行なわれる。
S163では、入力部105へ指示された全てのピンについて、後述するS164の検索処理が行なわれたか否かが判定され、この判定の結果がYesならばこのピン駆動能力指示検出処理を終了する。一方この判定の結果がNoならばS164に進む。
In S162, the driving capability instructed to the input unit 105 is read.
In S163, it is determined whether or not the search processing in S164 described later has been performed for all the pins instructed to the input unit 105. If the result of this determination is Yes, the pin driving capability instruction detection processing is terminated. On the other hand, if the result of this determination is No, the process proceeds to S164.

S164では入力部105へ指示されたピンが最適化対象である論理回路網から検索され、続くS165でそのピンがその論理回路網に存在するか否かが判定される。そして、このS165の判定結果がYesのときにのみ、S166において、そのピンの駆動能力値が入力部105へ指示された値に変更されて後に行なわれる最適化の処理に反映される。その後は処理がS163へ戻って上述した処理が繰り返される。   In S164, the pin instructed to the input unit 105 is searched from the logic circuit network to be optimized, and in subsequent S165, it is determined whether or not the pin exists in the logic circuit network. Only when the determination result in S165 is Yes, in S166, the drive capability value of the pin is changed to the value instructed to the input unit 105, and is reflected in the optimization process performed later. Thereafter, the process returns to S163 and the above-described process is repeated.

以上の図18に示されている処理がCPU101によって行なわれることによってピンの駆動能力の指示が反映される具体例を示す。
まず、前述した図15の回路網Bにおいて、各入力ピンの駆動能力がライブラリにおいて下記の表のように定義されていたとする。
A specific example in which an instruction of the pin driving capability is reflected by the CPU 101 performing the processing shown in FIG.
First, in the above-described circuit network B of FIG. 15, it is assumed that the drive capability of each input pin is defined in the library as shown in the following table.

Figure 2007193829
Figure 2007193829

このとき、外部指示で“ブロックC−a=10.0”なる指示がなされた場合、ブロックC−aピンには、ライブラリでは13.0が定義されているが、これに代えて最適化前の駆動能力値として10.0が設定される。同様に“回路網B−a=13.0”なる指示がなされた場合にも、回路網B−aピンには駆動能力値として13.0が設定される。この指示はすなわち、ブロックA−aピンが駆動能力13.0のブロックで駆動されているとみなされることとなる。   At this time, when an instruction “block Ca = 10.0” is given by an external instruction, 13.0 is defined in the library for the block Ca pin, but instead, before the optimization. 10.0 is set as the drive capability value. Similarly, when an instruction “circuit network Ba = 13.0” is issued, 13.0 is set as the drive capability value in the circuit network Ba pin. This instruction means that the block A-a pin is driven by a block having a drive capability of 13.0.

また、もしも“ブロックB−b=16.0”のような指示がなされた場合には、ブロックB−bピンは回路網Bには存在しないので、無視される。
次に図19について説明する。同図はネット負荷容量反映処理の処理内容を示すフローチャートである。この処理は、遅延の最適化を、ネット容量、すなわちブロック間の配線に起因して生じる容量を反映させて行なうことを可能とするための処理である。なお、ネット容量は、例えば論理回路の実装設計をある程度行なった時点で再度回路遅延の最適化を行なうような場合に、その実装設計の情報から部分的に取得することが可能である。
If an instruction such as “Block B−b = 16.0” is given, the block B−b pin does not exist in the network B and is ignored.
Next, FIG. 19 will be described. This figure is a flowchart showing the contents of the net load capacity reflection process. This process is a process for enabling the optimization of the delay to reflect the net capacity, that is, the capacity caused by the wiring between the blocks. It should be noted that the net capacity can be partially obtained from information on the mounting design when, for example, circuit delay optimization is performed again after a certain amount of logic circuit mounting design has been performed.

この図19の処理は、前述した図3の回路遅延最適化処理におけるS101及びS102の処理により最適化の対象である回路網についての情報が読み込まれた直後に実行される。   The processing of FIG. 19 is executed immediately after the information about the circuit network to be optimized is read by the processing of S101 and S102 in the circuit delay optimization processing of FIG.

図19において、まず、S171では、ネットの負荷容量を遅延最適化に反映させる指示が入力部105になされたか否かが判定され、この判定の結果がYesならばS172に処理が進む。一方、この判定の結果がNoならばこのまま何もせずにこのネット負荷容量反映処理を終了する。   In FIG. 19, first, in S171, it is determined whether or not an instruction to reflect the load capacity of the net in the delay optimization is given to the input unit 105. If the result of this determination is Yes, the process proceeds to S172. On the other hand, if the result of this determination is No, the network load capacity reflection process is terminated without doing anything.

S172では実装情報を持つデータベースから最適化の対象である回路網中の各ネットの負荷容量の情報が抽出され、続くS173においてその情報が通信ネットワークを介してI/F部104より読み込まれる。   In S172, the load capacity information of each net in the circuit network to be optimized is extracted from the database having the mounting information, and in S173, the information is read from the I / F unit 104 via the communication network.

S174では、取得された全てのネット容量の情報について、後述するS175の検索処理が行なわれたか否かが判定され、この判定の結果がYesならばこのネット負荷容量反映処理を終了する。一方この判定の結果がNoならばS175に進む。   In S174, it is determined whether or not a search process in S175, which will be described later, has been performed for all acquired net capacity information. If the result of this determination is Yes, the net load capacity reflecting process is terminated. On the other hand, if the result of this determination is No, the process proceeds to S175.

S175では取得されたネット容量の情報に対応するネット(配線)が最適化対象である論理回路網から検索され、続くS176でそのネットがその論理回路網に存在するか否かが判定される。そして、このS176の判定結果がYesのときにのみ、S177において、そのネットの負荷容量が、標準的に用いられている値から取得された情報に示されている値へと変更されて後に行なわれる最適化の処理に反映される。その後は処理がS174へ戻って上述した処理が繰り返される。   In S175, a net (wiring) corresponding to the acquired net capacity information is searched from the logic circuit network to be optimized, and in subsequent S176, it is determined whether or not the net exists in the logic circuit network. Only when the determination result in S176 is Yes, in S177, the load capacity of the net is changed from the value used as standard to the value indicated in the acquired information. Is reflected in the optimization process. Thereafter, the process returns to S174 and the above-described process is repeated.

以上の図19に示されている処理がCPU101によって行なわれることによってネットの負荷容量が反映される具体例を示す。
まず、前述した図15の回路網Bについての実装情報を持つデータベースDB1の存在を想定する。
A specific example in which the load capacity of the net is reflected by the CPU 101 performing the process shown in FIG.
First, it is assumed that there is a database DB1 having mounting information for the circuit network B shown in FIG.

このデータベースDB1は、回路網BにおけるネットNetA及びNetBの実装配線情報を有しており、それと共にそれらのネットの負荷容量情報Cneta及びCnetbをも有している。図19のS172の処理によってこれらの情報が抽出されると、下記のような形式のテキスト情報がデータベースDB1から本装置へと送られてくる。

NetCapacity{
NetA=Cneta;
NetB=Cnetb;
… … …


CPU101では上記の情報が読み込まれて解釈される。そしてNetAには負荷容量Cnetaが、また、NetBには負荷容量Cnetbが設定される。
This database DB1 has the mounting wiring information of the nets NetA and NetB in the circuit network B, and also has the load capacity information Cneta and Cnetb of those nets. When these pieces of information are extracted by the processing of S172 in FIG. 19, text information in the following format is sent from the database DB1 to the present apparatus.

NetCapacity {
NetA = Cneta;
NetB = Cnetb;
………
}

The CPU 101 reads and interprets the above information. A load capacity Cneta is set for NetA, and a load capacity Cnetb is set for NetB.

これらの値が設定されると、例えばブロックAの負荷容量は、ブロックC−a、ブロックD−a、ブロックE−aの各々の駆動能力とネット負荷容量Cnetaとの和となる。
次に図20について説明する。同図はブロック非最適化指示検出処理の処理内容を示すフローチャートである。この処理は、遅延最適化を行なうときに、その対象である論理回路網のうちのブロックについてはユーザの指示に応じて最適化を行なわないようにすることを可能とする処理であり、例えば論理回路の実装面積及び信号遅延に余裕があるときには敢えて新たな実装設計を行なわずに既に設計済みのものをそのまま流用するときなどに有効なものである。
When these values are set, for example, the load capacity of the block A is the sum of the drive capacity of each of the block C-a, the block Da, and the block E-a and the net load capacity Cneta.
Next, FIG. 20 will be described. This figure is a flowchart showing the processing contents of the block non-optimization instruction detection processing. This process is a process that makes it possible not to perform optimization in response to a user instruction for a block in the logical circuit network that is the object of delay optimization. This is effective when, for example, there is a margin in the circuit mounting area and the signal delay, and the already designed one is used as it is without any new mounting design.

この図20の処理は、前述した図3の回路遅延最適化処理におけるS101及びS102の処理により最適化の対象である回路網についての情報が読み込まれた直後に実行される。   The processing of FIG. 20 is executed immediately after the information about the circuit network to be optimized is read by the processing of S101 and S102 in the circuit delay optimization processing of FIG.

図20において、まず、S181では、ブロックの非最適化についての外部指示、すなわち一部の回路ブロックについて最適化を行なわない旨の外部指示が入力部105になされたか否かが判定され、この判定の結果がYesならばS182に処理が進む。一方、この判定の結果がNoならばこのまま何もせずにこのブロック非最適化指示検出処理を終了する。   In FIG. 20, first, in S181, it is determined whether or not an external instruction for non-optimization of a block, that is, an external instruction not to optimize a part of circuit blocks is given to the input unit 105. If the result is Yes, the process proceeds to S182. On the other hand, if the result of this determination is No, this block non-optimization instruction detection process is terminated without doing anything.

S182では、入力部105へ指示された最適化を行なわないブロックを示す情報の読み込みが行なわれる。
S183では、入力部105へ指示された全てのブロックについて、後述するS184の検索処理が行なわれたか否かが判定され、この判定の結果がYesならばこのブロック非最適化指示検出処理を終了する。一方この判定の結果がNoならばS184に進む。
In S <b> 182, information indicating a block that is not subjected to optimization instructed to the input unit 105 is read.
In S183, it is determined whether or not a search process in S184 described later has been performed for all the blocks instructed to the input unit 105. If the result of this determination is Yes, the block non-optimization instruction detection process is terminated. . On the other hand, if the result of this determination is No, the process proceeds to S184.

S184では入力部105へ指示されたブロックが最適化対象である論理回路網から検索され、続くS185でそのブロックがその論理回路網に存在するか否かが判定される。そして、このS185の判定結果がYesのときにのみ、S186において、非最適化を示す属性がそのブロックに設定される。その後は処理がS183へ戻って上述した処理が繰り返される。   In S184, the block instructed to the input unit 105 is retrieved from the logic circuit network to be optimized, and in subsequent S185, it is determined whether or not the block exists in the logic circuit network. Only when the determination result in S185 is Yes, an attribute indicating non-optimization is set in the block in S186. Thereafter, the process returns to S183 and the above-described process is repeated.

以上のブロック非最適化指示検出処理が実行されるときには、前述した図3の回路遅延最適化処理の処理内容が図21に示すように変更される。
図21を参照すると分かるように、この変更は図3のS106の処理とS107の処理との間にS187の処理として、最適化対象のブロックに非最適化の属性が設定されているか否かの判定処理が挿入されるというものである。そして、この変更により、この判定処理の結果がYesのときにのみ、S107のブロック最適化処理が実行されるようになる。
When the above block non-optimization instruction detection process is executed, the processing content of the circuit delay optimization process of FIG. 3 described above is changed as shown in FIG.
As can be seen from FIG. 21, this change is performed as a process of S187 between the process of S106 and the process of S107 in FIG. 3, and whether or not the non-optimization attribute is set in the optimization target block. A determination process is inserted. As a result of this change, the block optimization process of S107 is executed only when the result of this determination process is Yes.

以上の処理がCPU101によって行なわれることによって最適化対象の論理回路の一部のブロックについて最適化が行なわれなくなる具体例を示す。
前述した図15の回路網Bにおいて、例えばブロックDが非最適化ブロックとして外部指示されると、ブロックDには非最適化の属性が付与される。このときには、ブロックAにおける負荷容量としてブロックD−aの駆動能力は加算されるが、ブロックAについてのブランチブロックにはブロックDは含まれず、ブロックC、Eのみとする。つまり、ブロックDについては最適化処理が行なわれない。
A specific example will be shown in which the CPU 101 performs the above processing so that the optimization is not performed for some blocks of the logic circuit to be optimized.
In the network B of FIG. 15 described above, for example, when the block D is externally designated as a non-optimized block, the non-optimized attribute is given to the block D. At this time, the drive capacity of the block Da is added as the load capacity in the block A, but the branch block for the block A does not include the block D, and only the blocks C and E are included. That is, the optimization process is not performed for the block D.

次に図22について説明する。同図は素子変更情報出力処理の処理内容を示すフローチャートである。この処理は、回路の遅延最適化によって使用する素子に変更が生じたときにその変更内容をユーザに提示可能とするものであり、変更内容を明確にユーザに告知できるようにすることで後の実装設計等の作業における作業効率の向上を目指すものである。   Next, FIG. 22 will be described. This figure is a flowchart showing the processing contents of the element change information output processing. This process makes it possible to present the change contents to the user when a change occurs in the element to be used due to the delay optimization of the circuit, and the change contents can be clearly notified to the user later. The aim is to improve work efficiency in work such as mounting design.

なお、この素子変更情報出力処理は、S191の処理として示すように、前述した図3の回路遅延最適化処理に続けて実行される。
S191に続くS192では、使用素子の変更情報が格納される変更情報ファイルの出力指示がユーザによって入力部105になされているか否かが判断され、この判定の結果がYesならばS193に処理が進む。一方、この判定の結果がNoならば直ちにこの素子変更情報出力処理が終了する。
This element change information output process is executed following the circuit delay optimization process of FIG. 3 described above, as shown in the process of S191.
In S192 following S191, it is determined whether or not the user has issued an instruction to output a change information file in which change information of the element to be used is input to the input unit 105. If the result of this determination is Yes, the process proceeds to S193. . On the other hand, if the result of this determination is No, this element change information output process is immediately terminated.

S193では、遅延最適化の対象である論理回路における全てのブロックについて、後述するS194からS196にかけての処理が行なわれたか否かが判定され、この判定の結果がYesならばこの素子変更情報出力処理を終了する。一方この判定の結果がNoならばS194に進む。   In S193, it is determined whether or not the processing from S194 to S196, which will be described later, has been performed for all blocks in the logic circuit that is the target of delay optimization. If the result of this determination is Yes, this element change information output processing is performed. Exit. On the other hand, if the result of this determination is No, the process proceeds to S194.

S194では、処理対象のブロックについてそのブロックに付されている名称(固有名)が取得され、続くS195では、そのブロックで最適化の前に使用することが指定されていた素子の素子名とそのブロックで最適化によって使用することとされた素子の素子名とが取得される。   In S194, the name (unique name) given to the block to be processed is acquired, and in S195, the element name of the element that has been designated to be used before the optimization in the block and its name The element name of the element that is supposed to be used in the block by optimization is acquired.

S196では、上述したS195及びS196の処理によって取得された固有名及び素子名を関連付けて変更情報ファイルに格納する。その後はS193へと処理が戻って上述した処理が繰り返される。   In S196, the unique name and the element name acquired by the processes in S195 and S196 described above are associated and stored in the change information file. Thereafter, the process returns to S193 and the above-described process is repeated.

以上の図22に示されている処理がCPU101によって行なわれることによって使用する素子の変更情報が出力される具体例を示す。
前述した図15の回路網Bについて、前述した回路遅延最適化処理の結果、下記の表のように素子の置換が行なわれたものとする。
A specific example in which the change information of the element to be used is output by the CPU 101 performing the process shown in FIG.
In the circuit network B of FIG. 15 described above, it is assumed that the elements are replaced as shown in the following table as a result of the circuit delay optimization process described above.

Figure 2007193829
Figure 2007193829

図22のS196の処理では、上記の表に示されている情報から、例えば次のような形式で変更情報ファイルに格納して出力する。

Change ブロックA: INV4,INV5;
Change ブロックB: INV1,INV2;
Change ブロックC: INV2,INV3;
Change ブロックD: 2NAND4,2NAND4;
Change ブロックE: 2NOR3,2NOR2;
Change ブロックF: INV3,INV1;

なお、本発明を標準的なコンピュータで実施するには、以上までに説明した本発明の実施形態において本装置の有するCPU101が行なっていたものと同様の処理をそのコンピュータに行なわせるための制御プログラムを作成し、その制御プログラムをコンピュータに読み込ませて実行させることにより可能となる。
In the process of S196 in FIG. 22, the information shown in the above table is stored in a change information file in the following format, for example, and output.

Change Block A: INV4, INV5;
Change Block B: INV1, INV2;
Change block C: INV2, INV3;
Change block D: 2NAND4, 2NAND4;
Change Block E: 2NOR3, 2NOR2;
Change block F: INV3, INV1;

In order to implement the present invention on a standard computer, a control program for causing the computer to perform the same processing as that performed by the CPU 101 of the present apparatus in the embodiment of the present invention described above. Can be made by reading the control program into a computer and executing it.

また、このような制御プログラムをコンピュータで読み取り可能な記録媒体に記録させ、そのプログラムを記録媒体からコンピュータに読み出させて実行させることによって本発明をコンピュータで実施することも可能である。   It is also possible to implement the present invention on a computer by recording such a control program on a computer-readable recording medium, causing the computer to read the program from the recording medium and executing the program.

記録させた制御プログラムをコンピュータで読み取ることの可能な記録媒体の例を図23に示す。同図に示すように、記録媒体としては、例えば、コンピュータ201に内蔵若しくは外付けの付属装置として備えられるROMやハードディスク装置などのメモリ202、あるいはフロッピー(登録商標)ディスク、MO(光磁気ディスク)、CD−ROM、DVD−ROMなどといった可搬型記憶媒体203等が利用できる。また、記録媒体は回線204を介してコンピュータ201と接続される、プログラムサーバ205として機能するコンピュータが備えている記憶装置206であってもよい。この場合には、制御プログラムを表現するデータ信号で搬送波を変調して得られる伝送信号を、プログラムサーバ205から伝送媒体である回線204を通じて伝送するようにし、コンピュータ201では受信した伝送信号を復調して制御プログラムを再生することで当該制御プログラムを実行できるようになる。   An example of a recording medium from which the recorded control program can be read by a computer is shown in FIG. As shown in the figure, as a recording medium, for example, a memory 202 such as a ROM or a hard disk device provided as an internal or external accessory device in the computer 201, a floppy (registered trademark) disk, an MO (magneto-optical disk) A portable storage medium 203 such as a CD-ROM or a DVD-ROM can be used. The recording medium may be a storage device 206 provided in a computer functioning as the program server 205 connected to the computer 201 via the line 204. In this case, a transmission signal obtained by modulating a carrier wave with a data signal representing a control program is transmitted from the program server 205 through a line 204 as a transmission medium, and the computer 201 demodulates the received transmission signal. Then, the control program can be executed by reproducing the control program.

以上詳細に説明したように、複数の回路ブロックを接続してなる論理回路に対し、該回路ブロック毎に指定がされている該回路ブロックを構成するために使用するプリミティブな素子についての該指定を該素子と同一の機能を有し且つ駆動能力値は異なる他のプリミティブな素子へ変更することによって、該論理回路内を伝播する信号の遅延についての最適化を行なうときに、本発明は、回路ブロックに与えられる負荷容量値が該回路ブロック内を伝播する信号を遅延させる割合を示す該回路ブロックの遅延率と、該指定変更の対象である対象回路ブロックの前段として該対象回路ブロックに接続されている該回路ブロックに指定がされている該素子によって定まる該前段回路ブロックの駆動能力値と、該対象回路ブロックの後段に他の回路ブロックが接続されることにより該対象回路ブロックに対して与えられる負荷容量値とに基づいて該対象回路ブロックに要求する駆動能力値の算出を行ない、該算出によって得られた駆動能力値に基づいて該対象回路ブロックで使用される前記素子の指定の変更を行なうようにする。   As described in detail above, for the logic circuit formed by connecting a plurality of circuit blocks, the designation of the primitive elements used to configure the circuit block designated for each circuit block is performed. When optimizing the delay of a signal propagating in the logic circuit by changing to another primitive element having the same function as the element and having a different driving capability value, the present invention The load capacity value given to the block is connected to the target circuit block as the preceding stage of the target circuit block that is the target of the designation change, and the delay rate of the circuit block indicating the rate at which the signal propagating in the circuit block is delayed The driving capability value of the preceding circuit block determined by the element designated for the circuit block, and another circuit in the subsequent stage of the target circuit block The drive capacity value required for the target circuit block is calculated based on the load capacity value given to the target circuit block when the lock is connected, and based on the drive capacity value obtained by the calculation The designation of the element used in the target circuit block is changed.

こうすることにより、対象回路ブロックの前後段として接続されている回路ブロックに関する特性値から対象回路ブロックでの使用に最適な素子の選択が可能となる。その結果、論理回路中の全ての回路ブロックについて最適な素子の選択を行なうことでクリティカルパスの抽出を行なうことなく論理回路に対する遅延最適化が行なえるので、遅延最適化のために必要となる処理量が低減される。   By doing so, it is possible to select an optimum element for use in the target circuit block from the characteristic values relating to the circuit block connected as the preceding and following stages of the target circuit block. As a result, it is possible to perform the delay optimization for the logic circuit without extracting the critical path by selecting the optimum element for all the circuit blocks in the logic circuit, so that the processing necessary for the delay optimization is performed. The amount is reduced.

あるいは、本発明は、該回路ブロックのスラック値の算出を行ない、該論理回路中の回路ブロックの有するひとつの出力が該回路ブロックの後段の複数の回路ブロックである後段回路ブロックに接続されているときに、該後段回路ブロックに指定がされている該素子によって定まる該指定変更前の該後段回路ブロック毎の駆動能力値を、該後段回路ブロック毎の駆動能力値の合計値は維持しつつ且つ該後段回路ブロック毎に算出されたスラック値の差異に基づいて該後段回路ブロックの各々に分配し、該後段回路ブロックの各々に分配された駆動能力値を該後段回路ブロックの前段の回路ブロックの駆動能力値とみなして該後段回路ブロックに要求する駆動能力値の算出を行ない、該算出によって得られた駆動能力値に基づいて該後段回路ブロックで使用される該素子の指定の変更を行なうようにする。   Alternatively, in the present invention, the slack value of the circuit block is calculated, and one output of the circuit block in the logic circuit is connected to a subsequent circuit block that is a plurality of circuit blocks subsequent to the circuit block. Sometimes, the driving ability value for each subsequent stage circuit block before the designation change determined by the element designated for the succeeding stage circuit block is maintained while the total value of the driving ability values for each succeeding stage circuit block is maintained. Based on the difference in the slack value calculated for each subsequent circuit block, it is distributed to each of the subsequent circuit blocks, and the drive capability value distributed to each of the subsequent circuit blocks is assigned to the circuit block in the previous stage of the subsequent circuit block. The driving ability value required for the subsequent circuit block is calculated as a driving ability value, and the latter circuit block is calculated based on the driving ability value obtained by the calculation. Tsu to perform the specified modification of the device used in the click.

こうすることにより、各回路ブロックのスラック値に基づき、タイミングの余裕が少ない後段回路ブロックには駆動能力値を多めに分配し、タイミングの余裕が多い後段回路ブロックには駆動能力値を少なめに分配すると、信号遅延量が大きくなっている信号パスを優先する最適化が可能となり、駆動能力のバランスの良好な遅延最適化が可能となる。   In this way, based on the slack value of each circuit block, a large amount of driving capacity is distributed to the subsequent circuit block with a small timing margin, and a small amount of driving capacity is distributed to the subsequent circuit block with a large timing margin. Then, it is possible to optimize by giving priority to a signal path having a large signal delay amount, and it is possible to perform delay optimization with a good balance of driving ability.

もしくは、本発明は、該回路ブロックのスラック値の算出を行ない、該論理回路中の回路ブロックの有するひとつの出力が該回路ブロックの後段の複数の回路ブロックである後段回路ブロックに接続されているときに、該後段回路ブロックに指定がされている該素子によって定まる該指定変更前の該後段回路ブロック毎の駆動能力値の合計と、該後段回路ブロックのうちスラック値によって最もタイミングの余裕が少ないことが示されているものについての該指定変更前における駆動能力値の比率を算出し、該比率に基づいて、該後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されている該後段回路ブロックに要求する駆動能力値を算出し、該比率に基づいて算出された駆動能力値に基づいて該後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されている該後段回路ブロックについての該指定の変更を行なうようにする。   Alternatively, in the present invention, the slack value of the circuit block is calculated, and one output of the circuit block in the logic circuit is connected to a subsequent circuit block that is a plurality of circuit blocks subsequent to the circuit block. Sometimes, there is the least timing margin depending on the sum of the driving capability values for each subsequent circuit block before the designation change determined by the element specified in the subsequent circuit block and the slack value in the subsequent circuit block. The ratio of the driving capacity value before the change of designation is calculated, and based on the ratio, it is indicated that the circuit block in the subsequent stage has the least timing margin depending on the slack value. The driving ability value required for the subsequent circuit block is calculated, and the subsequent circuit is calculated based on the driving ability value calculated based on the ratio. A block to perform the specified change in the rear stage circuit blocks have been shown to have a decreased margin the most timing by slack value.

こうすることにより、後段回路ブロックが複数のファンアウトを構成している場合におけるスラック値によって最もタイミングの余裕が少ないことが示されている後段回路ブロックについての該素子の指定の変更の際に、その後段回路ブロックと同時に駆動される他の後段回路ブロックについての特性値が考慮されるので、該素子の選択が適切に行なえるようになる。   By doing this, when changing the designation of the element for the subsequent circuit block, which is shown that the slack value has the least timing margin when the subsequent circuit block constitutes a plurality of fan-outs, Since the characteristic values of the other subsequent circuit blocks that are driven simultaneously with the subsequent circuit blocks are taken into account, the elements can be selected appropriately.

以上のように、本発明のいずれの構成によっても、論理回路が有する回路遅延の最適化を行なうことができる。   As described above, the circuit delay of the logic circuit can be optimized by any configuration of the present invention.

(付記1) 複数の回路ブロックを接続してなる論理回路に対し、該回路ブロック毎に指定がされている該回路ブロックを構成するために使用するプリミティブな素子についての該指定を該素子と同一の機能を有し且つ駆動能力値は異なる他のプリミティブな素子へ変更することによって、該論理回路内を伝播する信号の遅延についての最適化を行なうシステムであって、
回路ブロックに与えられる負荷容量値が該回路ブロック内を伝播する信号を遅延させる割合を示す該回路ブロックの遅延率と、前記指定変更の対象である対象回路ブロックの前段として該対象回路ブロックに接続されている前段回路ブロックに指定がされている前記素子によって定まる該前段回路ブロックの駆動能力値と、該対象回路ブロックの後段に他の回路ブロックが接続されることにより該対象回路ブロックに対して与えられる負荷容量値とに基づいて該対象回路ブロックに要求する駆動能力値の算出を行なう駆動能力値算出手段と、
前記算出によって得られた駆動能力値に基づいて前記対象回路ブロックで使用される前記素子の指定の変更を行なう変更手段と、
を有することを特徴とする論理回路遅延最適化システム。
(付記2) 前記変更手段は、前記変更前に選択されていたものと同一の実装回路面積を要する前記素子を選択するように該変更を行なうことを特徴とする付記1に記載の論理回路遅延最適化システム。
(付記3) 前記論理回路に入力された信号若しくは該論理回路内のフリップフロップである回路ブロックから出力された信号が、前記対象回路ブロックについての前段回路ブロックを通過して出力されるまでに生じ得る遅延量を、該前段回路ブロックまでの遅延量として算出する遅延量算出手段と、
前記対象回路ブロックに信号を入力するための複数の入力ピンのうち、該対象回路ブロックについての前段回路ブロックであって該前段回路ブロックまでの前記遅延量が最大であるものが接続されている該入力ピンを該指定変更の対象である回路ブロックの代表ピンとする代表ピン決定手段と、
を更に有し、
前記駆動能力値算出手段は、前記対象回路ブロックについての前段回路ブロックのうち、前記代表ピンに接続されている前段回路ブロックについての駆動能力値に基づいて前記算出を行なう、
ことを特徴とする付記1に記載の論理回路遅延最適化システム。
(付記4) 複数の回路ブロックを接続してなる論理回路に対し、該回路ブロック毎に指定がされている該回路ブロックを構成するために使用するプリミティブな素子についての該指定を該素子と同一の機能を有し且つ駆動能力値は異なる他のプリミティブな素子へ変更することによって、該論理回路内を伝播する信号の遅延についての最適化を行なうシステムであって、
前記回路ブロックのスラック値の算出を行なうスラック値算出手段と、
前記論理回路中の回路ブロックの有するひとつの出力が該回路ブロックの後段の複数の回路ブロックである後段回路ブロックに接続されているときに、該後段回路ブロックに指定がされている前記素子によって定まる前記指定変更前の該後段回路ブロック毎の駆動能力値を、該後段回路ブロック毎の駆動能力値の合計値は維持しつつ且つ該後段回路ブロック毎に算出されたスラック値の差異に基づいて該後段回路ブロックの各々に分配する駆動能力値分配手段と、
前記駆動能力値分配手段によって分配された駆動能力値を前記後段回路ブロックの前段の回路ブロックの駆動能力値とみなして該後段回路ブロックに要求する駆動能力値の算出を行なう後段回路ブロック駆動能力値算出手段と、
前記算出によって得られた駆動能力値に基づいて前記後段回路ブロックで使用される前記素子の指定の変更を行なう後段回路ブロック変更手段と、
を有することを特徴とする論理回路遅延最適化システム。
(付記5) 複数の回路ブロックを接続してなる論理回路に対し、該回路ブロック毎に指定がされている該回路ブロックを構成するために使用するプリミティブな素子についての該指定を該素子と同一の機能を有し且つ駆動能力値は異なる他のプリミティブな素子へ変更することによって、該論理回路内を伝播する信号の遅延についての最適化を行なうシステムであって、
前記回路ブロックのスラック値の算出を行なうスラック値算出手段と、
前記論理回路中の回路ブロックの有するひとつの出力が該回路ブロックの後段の複数の回路ブロックである後段回路ブロックに接続されているときに、該後段回路ブロックに指定がされている前記素子によって定まる前記指定変更前の該後段回路ブロック毎の駆動能力値の合計と、該後段回路ブロックのうちスラック値によって最もタイミングの余裕が少ないことが示されているものについての該指定変更前における駆動能力値の比率を算出する駆動能力比率算出手段と、
前記駆動能力比率算出手段によって算出された駆動能力値の比率に基づいて、前記後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されている該後段回路ブロックに要求する駆動能力値を算出する第一駆動能力値算出手段と、
前記算出によって得られた駆動能力値に基づいて前記後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されている該後段回路ブロックについての前記指定の変更を行なう第一後段回路ブロック変更手段と、
を有することを特徴とする論理回路遅延最適化システム。
(付記6) 前記後段回路ブロックのうちスラック値によって最もタイミングの余裕が少ないことが示されているものについての前記指定変更前における駆動能力値と前記第一後段回路ブロック変更手段による変更後に指定されている前記素子の駆動能力値とよりこれらの駆動能力値の変化率を算出する変化率算出手段と、
前記後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されているものを除いた他の後段回路ブロックに要求する駆動能力値を、前記変化率に基づいて算出する第二駆動能力値算出手段と、
前記第二駆動能力値算出手段によって算出された駆動能力値に基づいて前記後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されているものを除いた他の後段回路ブロックについての前記指定の変更を行なう第二後段回路ブロック変更手段と、
を更に有することを特徴とする付記5に記載の論理回路遅延最適化システム。
(付記7) 前記論理回路の外部入力端子に接続される素子の駆動能力値が入力される外部素子駆動能力値入力手段を更に有し、
前記駆動能力値算出手段は、前記外部入力端子に接続されている前記対象回路ブロックに要求する駆動能力値の算出を、前記外部素子駆動能力値入力手段に入力された駆動能力値が前記前段回路ブロックの駆動能力値であるとみなして行なう、
ことを特徴とする付記1から3までのうちのいずれか一項に記載の論理回路遅延最適化システム。
(付記8) 前記前段回路ブロックの駆動能力値が入力される前段回路ブロック駆動能力値入力手段を更に有し、
前記駆動能力値算出手段は、前記前段回路ブロック駆動能力値入力手段に入力された駆動能力値を前記前段回路ブロックの駆動能力値とみなして前記対象回路ブロックに要求する駆動能力値の算出を行なう、
ことを特徴とする付記1から3までのうちのいずれか一項に記載の論理回路遅延最適化システム。
(付記9) 前記論理回路の外部出力端子に接続される素子によって該論理回路に与えられる負荷容量値が入力される外部素子負荷容量値入力手段を更に有し、
前記駆動能力値算出手段は、前記外部出力端子に接続されている前記対象回路ブロックに要求する駆動能力値の算出を、前記外部素子負荷容量値入力手段に入力された負荷容量値が該対象回路ブロックに対して与えられた負荷容量値であるとみなして行なう、
ことを特徴とする付記1から3までのうちのいずれか一項に記載の論理回路遅延最適化システム。
(付記10) 前記論理回路の実装設計が行なわれることによって得られる前記回路ブロック間の配線によって生じる配線容量を取得する配線容量取得手段を更に有し、
前記駆動能力値算出手段は、前記配線容量取得手段によって取得された配線容量を前記負荷容量値に加味して前記対象回路ブロックに要求する駆動能力値の算出を行なう、
ことを特徴とする付記1から3までのうちのいずれか一項に記載の論理回路遅延最適化システム。
(付記11) 前記論理回路の実装設計が行なわれることによって得られる前記回路ブロック間の配線によって生じる配線容量を取得する配線容量取得手段を更に有し、
前記後段回路ブロック駆動能力値算出手段は、前記配線容量取得手段によって取得された配線容量を加味して前記算出を行なう、
ことを特徴とする付記4に記載の論理回路遅延最適化システム。
(付記12) 前記論理回路の実装設計が行なわれることによって得られる前記回路ブロック間の配線によって生じる配線容量を取得する配線容量取得手段を更に有し、
前記第一駆動能力値算出手段は、前記後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されている該後段回路ブロックに要求する駆動能力値の算出を、前記配線容量取得手段によって取得された配線容量を加味して行なう、
ことを特徴とする付記5に記載の論理回路遅延最適化システム。
(付記13) 前記論理回路の実装設計が行なわれることによって得られる前記回路ブロック間の配線によって生じる配線容量を取得する配線容量取得手段を更に有し、
前記第一駆動能力値算出手段は、前記後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されている該後段回路ブロックに要求する駆動能力値の算出を、前記配線容量取得手段によって取得された配線容量を加味して行ない、
前記第二駆動能力値算出手段は、前記後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されているものを除いた他の後段回路ブロックに要求する駆動能力値の算出を、前記配線容量取得手段によって取得された配線容量を加味して行なう、
ことを特徴とする付記6に記載の論理回路遅延最適化システム。
(付記14) 前記回路ブロックに対して前記指定の変更を行なわないことを示す属性を付与する非最適化属性付与手段を更に有し、
前記変更手段は、前記非最適化属性付与手段によって前記属性が付与されている前記対象回路ブロックについては、前記指定の変更を行なわない、
ことを特徴とする付記1から3までのうちのいずれか一項に記載の論理回路遅延最適化システム。
(付記15) 前記変更手段によって前記指定の変更が行なわれた前記対象回路ブロックにおける該変更の内容を出力する変更内容出力手段を更に有することを特徴とする付記1から3までのうちのいずれか一項に記載の論理回路遅延最適化システム。
(付記16) 複数の回路ブロックを接続してなる論理回路に対し、該回路ブロック毎に指定がされている該回路ブロックを構成するために使用するプリミティブな素子についての該指定を該素子と同一の機能を有し且つ駆動能力値は異なる他のプリミティブな素子へ変更することによって、該論理回路内を伝播する信号の遅延についての最適化を行なう方法であって、
回路ブロックに与えられる負荷容量値が該回路ブロック内を伝播する信号を遅延させる割合を示す該回路ブロックの遅延率と、前記指定変更の対象である対象回路ブロックの前段として該対象回路ブロックに接続されている前段回路ブロックに指定がされている前記素子によって定まる該前段回路ブロックの駆動能力値と、該対象回路ブロックの後段に他の回路ブロックが接続されることにより該対象回路ブロックに対して与えられる負荷容量値とに基づいて該対象回路ブロックに要求する駆動能力値の算出を行ない、
前記算出によって得られた駆動能力値に基づいて前記対象回路ブロックで使用される前記素子の指定の変更を行なう、
ことを特徴とする論理回路遅延最適化方法。
(付記17) 複数の回路ブロックを接続してなる論理回路に対し、該回路ブロック毎に指定がされている該回路ブロックを構成するために使用するプリミティブな素子についての該指定を該素子と同一の機能を有し且つ駆動能力値は異なる他のプリミティブな素子へ変更することによって、該論理回路内を伝播する信号の遅延についての最適化を行なう方法であって、
前記回路ブロックのスラック値の算出を行ない、
前記論理回路中の回路ブロックの有するひとつの出力が該回路ブロックの後段の複数の回路ブロックである後段回路ブロックに接続されているときに、該後段回路ブロックに指定がされている前記素子によって定まる前記指定変更前の該後段回路ブロック毎の駆動能力値を、該後段回路ブロック毎の駆動能力値の合計値は維持しつつ且つ該後段回路ブロック毎に算出されたスラック値の差異に基づいて該後段回路ブロックの各々に分配し、
前記後段回路ブロックの各々に分配された駆動能力値を前記後段回路ブロックの前段の回路ブロックの駆動能力値とみなして該後段回路ブロックに要求する駆動能力値の算出を行ない、
前記算出によって得られた駆動能力値に基づいて前記後段回路ブロックで使用される前記素子の指定の変更を行なう、
ことを特徴とする論理回路遅延最適化方法。
(付記18) 複数の回路ブロックを接続してなる論理回路に対し、該回路ブロック毎に指定がされている該回路ブロックを構成するために使用するプリミティブな素子についての該指定を該素子と同一の機能を有し且つ駆動能力値は異なる他のプリミティブな素子へ変更することによって、該論理回路内を伝播する信号の遅延についての最適化を行なう方法であって、
前記回路ブロックのスラック値の算出を行ない、
前記論理回路中の回路ブロックの有するひとつの出力が該回路ブロックの後段の複数の回路ブロックである後段回路ブロックに接続されているときに、該後段回路ブロックに指定がされている前記素子によって定まる前記指定変更前の該後段回路ブロック毎の駆動能力値の合計と、該後段回路ブロックのうちスラック値によって最もタイミングの余裕が少ないことが示されているものについての該指定変更前における駆動能力値の比率を算出し、
前記比率に基づいて、前記後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されている該後段回路ブロックに要求する駆動能力値を算出し、
前記比率に基づいて算出された駆動能力値に基づいて前記後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されている該後段回路ブロックについての前記指定の変更を行なう、
ことを特徴とする論理回路遅延最適化方法。
(付記19) 複数の回路ブロックを接続してなる論理回路に対し、該回路ブロック毎に指定がされている該回路ブロックを構成するために使用するプリミティブな素子についての該指定を該素子と同一の機能を有し且つ駆動能力値は異なる他のプリミティブな素子へ変更することによって、該論理回路内を伝播する信号の遅延についての最適化を行なう処理をコンピュータに行なわせるためのプログラムであって、
回路ブロックに与えられる負荷容量値が該回路ブロック内を伝播する信号を遅延させる割合を示す該回路ブロックの遅延率と、前記指定変更の対象である対象回路ブロックの前段として該対象回路ブロックに接続されている前段回路ブロックに指定がされている前記素子によって定まる該前段回路ブロックの駆動能力値と、該対象回路ブロックの後段に他の回路ブロックが接続されることにより該対象回路ブロックに対して与えられる負荷容量値とに基づいて該対象回路ブロックに要求する駆動能力値の算出を行なう処理と、
前記算出によって得られた駆動能力値に基づいて前記対象回路ブロックで使用される前記素子の指定の変更を行なう処理と、
を該コンピュータに行なわせるためのプログラム。
(付記20) 複数の回路ブロックを接続してなる論理回路に対し、該回路ブロック毎に指定がされている該回路ブロックを構成するために使用するプリミティブな素子についての該指定を該素子と同一の機能を有し且つ駆動能力値は異なる他のプリミティブな素子へ変更することによって、該論理回路内を伝播する信号の遅延についての最適化を行なう処理をコンピュータに行なわせるためのプログラムであって、
前記回路ブロックのスラック値の算出を行なう処理と、
前記論理回路中の回路ブロックの有するひとつの出力が該回路ブロックの後段の複数の回路ブロックである後段回路ブロックに接続されているときに、該後段回路ブロックに指定がされている前記素子によって定まる前記指定変更前の該後段回路ブロック毎の駆動能力値を、該後段回路ブロック毎の駆動能力値の合計値は維持しつつ且つ該後段回路ブロック毎に算出されたスラック値の差異に基づいて該後段回路ブロックの各々に分配する処理と、
前記後段回路ブロックの各々に分配された駆動能力値を前記後段回路ブロックの前段の回路ブロックの駆動能力値とみなして該後段回路ブロックに要求する駆動能力値の算出を行なう処理と、
前記算出によって得られた駆動能力値に基づいて前記後段回路ブロックで使用される前記素子の指定の変更を行なう処理と、
を該コンピュータに行なわせるためのプログラム。
(付記21) 複数の回路ブロックを接続してなる論理回路に対し、該回路ブロック毎に指定がされている該回路ブロックを構成するために使用するプリミティブな素子についての該指定を該素子と同一の機能を有し且つ駆動能力値は異なる他のプリミティブな素子へ変更することによって、該論理回路内を伝播する信号の遅延についての最適化を行なう処理をコンピュータに行なわせるためのプログラムであって、
前記回路ブロックのスラック値の算出を行なう処理と、
前記論理回路中の回路ブロックの有するひとつの出力が該回路ブロックの後段の複数の回路ブロックである後段回路ブロックに接続されているときに、該後段回路ブロックに指定がされている前記素子によって定まる前記指定変更前の該後段回路ブロック毎の駆動能力値の合計と、該後段回路ブロックのうちスラック値によって最もタイミングの余裕が少ないことが示されているものについての該指定変更前における駆動能力値の比率を算出する処理と、
前記比率に基づいて、前記後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されている該後段回路ブロックに要求する駆動能力値を算出する処理と、
前記比率に基づいて算出された駆動能力値に基づいて前記後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されている該後段回路ブロックについての前記指定の変更を行なう処理と、
を該コンピュータに行なわせるためのプログラム。
(付記22) 複数の回路ブロックを接続してなる論理回路に対し、該回路ブロック毎に指定がされている該回路ブロックを構成するために使用するプリミティブな素子についての該指定を該素子と同一の機能を有し且つ駆動能力値は異なる他のプリミティブな素子へ変更することによって、該論理回路内を伝播する信号の遅延についての最適化を行なう処理をコンピュータに行なわせるためのプログラムを含む搬送波に具現化されたコンピュータ・データ・シグナルであって、該プログラムは以下の処理をコンピュータに行なわせる:
回路ブロックに与えられる負荷容量値が該回路ブロック内を伝播する信号を遅延させる割合を示す該回路ブロックの遅延率と、前記指定変更の対象である対象回路ブロックの前段として該対象回路ブロックに接続されている前段回路ブロックに指定がされている前記素子によって定まる該前段回路ブロックの駆動能力値と、該対象回路ブロックの後段に他の回路ブロックが接続されることにより該対象回路ブロックに対して与えられる負荷容量値とに基づいて該対象回路ブロックに要求する駆動能力値の算出を行なう処理、及び
前記算出によって得られた駆動能力値に基づいて前記対象回路ブロックで使用される前記素子の指定の変更を行なう処理。
(付記23) 複数の回路ブロックを接続してなる論理回路に対し、該回路ブロック毎に指定がされている該回路ブロックを構成するために使用するプリミティブな素子についての該指定を該素子と同一の機能を有し且つ駆動能力値は異なる他のプリミティブな素子へ変更することによって、該論理回路内を伝播する信号の遅延についての最適化を行なう処理をコンピュータに行なわせるためのプログラムを含む搬送波に具現化されたコンピュータ・データ・シグナルであって、該プログラムは以下の処理をコンピュータに行なわせる:
前記回路ブロックのスラック値の算出を行なう処理、
前記論理回路中の回路ブロックの有するひとつの出力が該回路ブロックの後段の複数の回路ブロックである後段回路ブロックに接続されているときに、該後段回路ブロックに指定がされている前記素子によって定まる前記指定変更前の該後段回路ブロック毎の駆動能力値を、該後段回路ブロック毎の駆動能力値の合計値は維持しつつ且つ該後段回路ブロック毎に算出されたスラック値の差異に基づいて該後段回路ブロックの各々に分配する処理、
前記後段回路ブロックの各々に分配された駆動能力値を前記後段回路ブロックの前段の回路ブロックの駆動能力値とみなして該後段回路ブロックに要求する駆動能力値の算出を行なう処理、及び
前記算出によって得られた駆動能力値に基づいて前記後段回路ブロックで使用される前記素子の指定の変更を行なう処理。
(付記24) 複数の回路ブロックを接続してなる論理回路に対し、該回路ブロック毎に指定がされている該回路ブロックを構成するために使用するプリミティブな素子についての該指定を該素子と同一の機能を有し且つ駆動能力値は異なる他のプリミティブな素子へ変更することによって、該論理回路内を伝播する信号の遅延についての最適化を行なう処理をコンピュータに行なわせるためのプログラムを含む搬送波に具現化されたコンピュータ・データ・シグナルであって、該プログラムは以下の処理をコンピュータに行なわせる:
前記回路ブロックのスラック値の算出を行なう処理、
前記論理回路中の回路ブロックの有するひとつの出力が該回路ブロックの後段の複数の回路ブロックである後段回路ブロックに接続されているときに、該後段回路ブロックに指定がされている前記素子によって定まる前記指定変更前の該後段回路ブロック毎の駆動能力値の合計と、該後段回路ブロックのうちスラック値によって最もタイミングの余裕が少ないことが示されているものについての該指定変更前における駆動能力値の比率を算出する処理、
前記比率に基づいて、前記後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されている該後段回路ブロックに要求する駆動能力値を算出する処理、及び
前記比率に基づいて算出された駆動能力値に基づいて前記後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されている該後段回路ブロックについての前記指定の変更を行なう処理。
(Supplementary Note 1) For a logic circuit formed by connecting a plurality of circuit blocks, the designation of primitive elements used to configure the circuit block designated for each circuit block is the same as the element. A system for optimizing a delay of a signal propagating in the logic circuit by changing to another primitive element having a function of
Connected to the target circuit block as a preceding stage of the target circuit block that is the target of the designation change, and a delay rate of the circuit block indicating a rate at which a load capacitance value given to the circuit block delays a signal propagating in the circuit block The driving capability value of the preceding circuit block determined by the element specified for the preceding circuit block being connected to the target circuit block by connecting another circuit block to the subsequent stage of the target circuit block Driving capacity value calculating means for calculating a driving capacity value required for the target circuit block based on a given load capacity value;
Changing means for changing the designation of the element used in the target circuit block based on the driving ability value obtained by the calculation;
A logic circuit delay optimizing system comprising:
(Supplementary note 2) The logic circuit delay according to supplementary note 1, wherein the change unit performs the change so as to select the element that requires the same mounting circuit area as that selected before the change. Optimization system.
(Supplementary Note 3) Occurs until a signal input to the logic circuit or a signal output from a circuit block that is a flip-flop in the logic circuit passes through the previous circuit block of the target circuit block and is output. A delay amount calculating means for calculating a delay amount to be obtained as a delay amount up to the preceding circuit block;
Among a plurality of input pins for inputting a signal to the target circuit block, the previous circuit block for the target circuit block that has the maximum delay amount to the previous circuit block is connected. Representative pin determination means for setting an input pin as a representative pin of a circuit block to be changed,
Further comprising
The drive capability value calculating means performs the calculation based on a drive capability value for a preceding circuit block connected to the representative pin among the preceding circuit blocks for the target circuit block.
The logic circuit delay optimizing system according to appendix 1, wherein
(Supplementary Note 4) For a logic circuit formed by connecting a plurality of circuit blocks, the designation of primitive elements used to configure the circuit block designated for each circuit block is the same as the element. A system for optimizing a delay of a signal propagating in the logic circuit by changing to another primitive element having a function of
Slack value calculating means for calculating the slack value of the circuit block;
When one output of a circuit block in the logic circuit is connected to a subsequent circuit block that is a plurality of circuit blocks subsequent to the circuit block, the output is determined by the element specified for the subsequent circuit block. Based on the difference in the slack value calculated for each subsequent stage circuit block while maintaining the total driving capacity value for each subsequent stage circuit block, the driving capacity value for each subsequent stage circuit block before the designation change. Drivability value distribution means for distributing to each subsequent circuit block;
The driving ability value distributed by the driving ability value distributing means is regarded as the driving ability value of the preceding circuit block of the succeeding circuit block, and the driving ability value required for the succeeding circuit block is calculated. A calculation means;
Subsequent circuit block changing means for changing the designation of the element used in the subsequent circuit block based on the driving ability value obtained by the calculation;
A logic circuit delay optimizing system comprising:
(Supplementary Note 5) For a logic circuit formed by connecting a plurality of circuit blocks, the designation of a primitive element used to configure the circuit block designated for each circuit block is the same as the element. A system for optimizing a delay of a signal propagating in the logic circuit by changing to another primitive element having a function of
Slack value calculating means for calculating the slack value of the circuit block;
When one output of a circuit block in the logic circuit is connected to a subsequent circuit block that is a plurality of circuit blocks subsequent to the circuit block, the output is determined by the element specified for the subsequent circuit block. The driving ability value before the designation change for the sum of the driving ability values for each subsequent stage circuit block before the designation change and the slack value of the latter stage circuit block showing that the timing margin is the smallest. Driving capacity ratio calculating means for calculating the ratio of
Based on the ratio of the driving ability values calculated by the driving ability ratio calculating means, the driving ability required for the succeeding circuit block which is the latter circuit block and has the least timing margin according to the slack value. First driving ability value calculating means for calculating a value;
Based on the driving ability value obtained by the calculation, the first rear stage circuit that performs the designation change for the rear stage circuit block that has the least timing margin according to the slack value. Block changing means;
A logic circuit delay optimizing system comprising:
(Supplementary Note 6) The driving capacity value before the designation change and the designation after the change by the first latter-stage circuit block changing means for the latter-stage circuit block whose slack value indicates that the timing margin is the smallest. A change rate calculating means for calculating a change rate of these drive capability values from the drive capability values of the elements,
Second driving for calculating a driving capability value required for other subsequent circuit blocks excluding the subsequent circuit block whose slack value indicates the least timing margin based on the rate of change Ability value calculation means;
Other subsequent circuit blocks excluding the latter circuit block that is indicated by the slack value to have the least timing margin based on the driving ability value calculated by the second driving ability value calculating means Second post-stage circuit block changing means for changing the designation of
The logic circuit delay optimization system according to appendix 5, further comprising:
(Additional remark 7) It further has an external element drive capability value input means into which the drive capability value of the element connected to the external input terminal of the said logic circuit is input,
The drive capability value calculation means calculates the drive capability value required for the target circuit block connected to the external input terminal, and the drive capability value input to the external element drive capability value input means is the pre-stage circuit. It is performed assuming that it is the drive capacity value of the block.
The logic circuit delay optimizing system according to any one of appendices 1 to 3, characterized in that:
(Additional remark 8) It further has a preceding stage circuit block driving ability value input means for inputting the driving ability value of the preceding stage circuit block,
The driving ability value calculating means regards the driving ability value input to the preceding circuit block driving ability value input means as the driving ability value of the preceding circuit block and calculates a driving ability value required for the target circuit block. ,
The logic circuit delay optimizing system according to any one of appendices 1 to 3, characterized in that:
(Additional remark 9) It further has an external element load capacitance value input means for inputting a load capacitance value given to the logic circuit by an element connected to the external output terminal of the logic circuit,
The drive capacity value calculating means calculates the drive capacity value required for the target circuit block connected to the external output terminal, and the load capacity value input to the external element load capacity value input means is the target circuit. It is assumed that it is the load capacity value given to the block,
The logic circuit delay optimizing system according to any one of appendices 1 to 3, characterized in that:
(Additional remark 10) It further has wiring capacity acquisition means which acquires wiring capacity which arises by wiring between the circuit blocks obtained by mounting design of the logic circuit,
The drive capability value calculation means calculates the drive capability value required for the target circuit block by adding the wiring capacitance acquired by the wiring capacitance acquisition means to the load capacitance value.
The logic circuit delay optimizing system according to any one of appendices 1 to 3, characterized in that:
(Additional remark 11) It further has the wiring capacity acquisition means which acquires the wiring capacity which arises by wiring between the circuit blocks obtained by performing mounting design of the logic circuit,
The latter-stage circuit block drive capability value calculation means performs the calculation in consideration of the wiring capacity acquired by the wiring capacity acquisition means.
The logic circuit delay optimization system according to appendix 4, wherein:
(Additional remark 12) It further has wiring capacity acquisition means for acquiring wiring capacity generated by wiring between the circuit blocks obtained by performing mounting design of the logic circuit,
The first drive capability value calculation means obtains the wiring capacity by calculating the drive capability value required for the subsequent circuit block which is the latter circuit block and has the least timing margin according to the slack value. Take into account the wiring capacity acquired by the means,
The logic circuit delay optimizing system according to appendix 5, characterized in that:
(Additional remark 13) It further has the wiring capacity acquisition means which acquires the wiring capacity which arises by the wiring between the said circuit blocks obtained by mounting design of the said logic circuit,
The first drive capability value calculation means obtains the wiring capacity by calculating the drive capability value required for the subsequent circuit block which is the latter circuit block and has the least timing margin according to the slack value. Take into account the wiring capacity acquired by the means,
The second drive capability value calculation means calculates a drive capability value required for the other subsequent circuit block except for the latter circuit block, which is indicated by the slack value to have the least timing margin. In consideration of the wiring capacity acquired by the wiring capacity acquisition means,
The logic circuit delay optimization system according to appendix 6, wherein:
(Additional remark 14) It further has a non-optimization attribute provision means to provide the attribute which shows not changing the said designation | designated with respect to the said circuit block,
The changing means does not change the designation for the target circuit block to which the attribute is given by the non-optimized attribute giving means,
The logic circuit delay optimizing system according to any one of appendices 1 to 3, characterized in that:
(Supplementary note 15) Any one of Supplementary notes 1 to 3, further comprising change content output means for outputting the content of the change in the target circuit block in which the designated change has been made by the change means. The logic circuit delay optimization system according to one item.
(Supplementary Note 16) For a logic circuit formed by connecting a plurality of circuit blocks, the designation of a primitive element used to configure the circuit block designated for each circuit block is the same as the element. A method for optimizing a delay of a signal propagating in the logic circuit by changing to another primitive element having a function of
Connected to the target circuit block as a preceding stage of the target circuit block that is the target of the designation change, and a delay rate of the circuit block indicating a rate at which a load capacitance value given to the circuit block delays a signal propagating in the circuit block The driving capability value of the preceding circuit block determined by the element specified for the preceding circuit block being connected to the target circuit block by connecting another circuit block to the subsequent stage of the target circuit block Based on the given load capacity value, the drive capacity value required for the target circuit block is calculated,
The designation of the element used in the target circuit block is changed based on the driving capability value obtained by the calculation.
A logic circuit delay optimizing method characterized by the above.
(Supplementary Note 17) For a logic circuit formed by connecting a plurality of circuit blocks, the designation of a primitive element used for configuring the circuit block designated for each circuit block is the same as the element. A method for optimizing a delay of a signal propagating in the logic circuit by changing to another primitive element having a function of
Calculate the slack value of the circuit block,
When one output of a circuit block in the logic circuit is connected to a subsequent circuit block that is a plurality of circuit blocks subsequent to the circuit block, the output is determined by the element specified for the subsequent circuit block. Based on the difference in the slack value calculated for each subsequent stage circuit block while maintaining the total driving capacity value for each subsequent stage circuit block, the driving capacity value for each subsequent stage circuit block before the designation change. Distributed to each of the subsequent circuit blocks,
The driving ability value distributed to each of the subsequent circuit blocks is regarded as the driving ability value of the preceding circuit block of the succeeding circuit block, and the driving ability value required for the succeeding circuit block is calculated.
The designation of the element used in the subsequent circuit block is changed based on the driving ability value obtained by the calculation.
A logic circuit delay optimizing method characterized by the above.
(Supplementary Note 18) For a logic circuit formed by connecting a plurality of circuit blocks, the designation of a primitive element used for configuring the circuit block designated for each circuit block is the same as the element. A method for optimizing a delay of a signal propagating in the logic circuit by changing to another primitive element having a function of
Calculate the slack value of the circuit block,
When one output of a circuit block in the logic circuit is connected to a subsequent circuit block that is a plurality of circuit blocks subsequent to the circuit block, the output is determined by the element specified for the subsequent circuit block. The driving ability value before the designation change for the sum of the driving ability values for each subsequent stage circuit block before the designation change and the slack value of the latter stage circuit block showing that the timing margin is the smallest. The ratio of
Based on the ratio, the driving ability value required for the subsequent circuit block that is the latter circuit block and has the least timing margin indicated by the slack value;
The designation change is made for the subsequent circuit block which is the latter circuit block based on the driving capacity value calculated based on the ratio and whose slack value indicates the least timing margin.
A logic circuit delay optimizing method characterized by the above.
(Supplementary Note 19) For a logic circuit formed by connecting a plurality of circuit blocks, the designation of primitive elements used for configuring the circuit block designated for each circuit block is the same as the element. A program for causing a computer to perform a process of optimizing a delay of a signal propagating in the logic circuit by changing to another primitive element having a function of ,
Connected to the target circuit block as a preceding stage of the target circuit block that is the target of the designation change, and a delay rate of the circuit block indicating a rate at which a load capacitance value given to the circuit block delays a signal propagating in the circuit block The driving capability value of the preceding circuit block determined by the element specified for the preceding circuit block being connected to the target circuit block by connecting another circuit block to the subsequent stage of the target circuit block A process for calculating a drive capacity value required for the target circuit block based on a given load capacity value;
A process of changing the designation of the element used in the target circuit block based on the driving ability value obtained by the calculation;
A program for causing the computer to execute.
(Supplementary Note 20) For a logic circuit formed by connecting a plurality of circuit blocks, the designation of primitive elements used to configure the circuit block designated for each circuit block is the same as the element. A program for causing a computer to perform a process of optimizing a delay of a signal propagating in the logic circuit by changing to another primitive element having a function of ,
Processing for calculating the slack value of the circuit block;
When one output of a circuit block in the logic circuit is connected to a subsequent circuit block that is a plurality of circuit blocks subsequent to the circuit block, the output is determined by the element specified for the subsequent circuit block. Based on the difference in the slack value calculated for each subsequent stage circuit block while maintaining the total driving capacity value for each subsequent stage circuit block, the driving capacity value for each subsequent stage circuit block before the designation change. Processing distributed to each of the subsequent circuit blocks;
A process of calculating a driving capability value required for the subsequent circuit block by regarding the driving capability value distributed to each of the subsequent circuit blocks as the driving capability value of the preceding circuit block of the subsequent circuit block;
A process of changing the designation of the element used in the subsequent circuit block based on the driving ability value obtained by the calculation;
A program for causing the computer to execute.
(Supplementary Note 21) For a logic circuit formed by connecting a plurality of circuit blocks, the designation of a primitive element used for configuring the circuit block designated for each circuit block is the same as the element. A program for causing a computer to perform a process of optimizing a delay of a signal propagating in the logic circuit by changing to another primitive element having a function of ,
Processing for calculating the slack value of the circuit block;
When one output of a circuit block in the logic circuit is connected to a subsequent circuit block that is a plurality of circuit blocks subsequent to the circuit block, the output is determined by the element specified for the subsequent circuit block. The driving ability value before the designation change for the sum of the driving ability values for each subsequent stage circuit block before the designation change and the slack value of the latter stage circuit block showing that the timing margin is the smallest. Processing to calculate the ratio of
Based on the ratio, a process for calculating a driving ability value required for the subsequent circuit block, which is indicated by the slack value and has the least timing margin based on the ratio,
A process of changing the designation of the subsequent circuit block which is the latter circuit block and has the least timing margin based on the slack value based on the drive capacity value calculated based on the ratio; ,
A program for causing the computer to execute.
(Supplementary Note 22) For a logic circuit formed by connecting a plurality of circuit blocks, the designation of primitive elements used to configure the circuit block designated for each circuit block is the same as the element. A carrier including a program for causing a computer to perform a process for optimizing a delay of a signal propagating in the logic circuit by changing to another primitive element having a function of The computer data signal embodied in the program causes the computer to:
Connected to the target circuit block as a preceding stage of the target circuit block that is the target of the designation change, and a delay rate of the circuit block indicating a rate at which a load capacitance value given to the circuit block delays a signal propagating in the circuit block The driving capability value of the preceding circuit block determined by the element specified for the preceding circuit block being connected to the target circuit block by connecting another circuit block to the subsequent stage of the target circuit block A process for calculating a driving capability value required for the target circuit block based on a given load capacitance value, and designation of the element used in the target circuit block based on the driving capability value obtained by the calculation The process of making changes.
(Supplementary Note 23) For a logic circuit formed by connecting a plurality of circuit blocks, the designation of primitive elements used to configure the circuit block designated for each circuit block is the same as the element. A carrier including a program for causing a computer to perform a process for optimizing a delay of a signal propagating in the logic circuit by changing to another primitive element having a function of The computer data signal embodied in the program causes the computer to:
Processing for calculating the slack value of the circuit block;
When one output of a circuit block in the logic circuit is connected to a subsequent circuit block that is a plurality of circuit blocks subsequent to the circuit block, the output is determined by the element specified for the subsequent circuit block. Based on the difference in the slack value calculated for each subsequent stage circuit block while maintaining the total driving capacity value for each subsequent stage circuit block, the driving capacity value for each subsequent stage circuit block before the designation change. Processing to distribute to each of the subsequent circuit blocks,
A process for calculating a driving capability value required for the subsequent circuit block by regarding the driving capability value distributed to each of the subsequent circuit blocks as a driving capability value of a circuit block preceding the subsequent circuit block; and A process of changing the designation of the element used in the subsequent circuit block based on the obtained driving ability value.
(Supplementary Note 24) For a logic circuit formed by connecting a plurality of circuit blocks, the designation of a primitive element used to configure the circuit block designated for each circuit block is the same as the element. A carrier including a program for causing a computer to perform a process for optimizing a delay of a signal propagating in the logic circuit by changing to another primitive element having a function of The computer data signal embodied in the program causes the computer to:
Processing for calculating the slack value of the circuit block;
When one output of a circuit block in the logic circuit is connected to a subsequent circuit block that is a plurality of circuit blocks subsequent to the circuit block, the output is determined by the element specified for the subsequent circuit block. The driving ability value before the designation change for the sum of the driving ability values for each subsequent stage circuit block before the designation change and the slack value of the latter stage circuit block showing that the timing margin is the smallest. Processing to calculate the ratio of
Based on the ratio, a process for calculating a driving capability value required for the subsequent circuit block which is the latter circuit block and has the least timing margin according to the slack value, and calculated based on the ratio A process of changing the designation of the subsequent circuit block that is indicated by the slack value to have the least timing margin based on the driven capacity value.

本発明の原理構成を示す図である。It is a figure which shows the principle structure of this invention. 本発明を実施する論理回路遅延最適化装置の構成を示す図である。It is a figure which shows the structure of the logic circuit delay optimization apparatus which implements this invention. 回路遅延最適化処理の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of a circuit delay optimization process. ブロック最適化処理の第一の例の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of the 1st example of a block optimization process. 素子情報が定義されているライブラリの例を示す図である。It is a figure which shows the example of the library in which element information is defined. 遅延最適化処理を施す回路網の例を示す図である。It is a figure which shows the example of the circuit network which performs a delay optimization process. 回路網Aの各ブロックに対して行なわれた段数検出の結果を示す図である。FIG. 6 is a diagram showing the result of stage number detection performed for each block of circuit network A. 回路網Aの各ブロックに対して行なわれた遅延計算を示す図である。FIG. 6 is a diagram illustrating delay calculation performed on each block of the network A. 回路網Aの各ブロックに対して行なわれた最大遅延の計算結果の例を示す図である。6 is a diagram illustrating an example of a calculation result of a maximum delay performed for each block of the circuit network A. FIG. 回路網Aの各ブロックに対して行なわれた許容到達時間の計算結果の例を示す図である。6 is a diagram illustrating an example of a calculation result of an allowable arrival time performed for each block of the circuit network A. FIG. 回路網Aの各ブロックに対して行なわれたスラック値の計算結果の例を示す図である。6 is a diagram illustrating an example of a result of calculating a slack value performed on each block of the circuit network A. FIG. ブロック最適化処理の第二の例の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of the 2nd example of a block optimization process. 代表ピン選択処理の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of a representative pin selection process. 駆動能力分配処理の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of a driving capability distribution process. 駆動能力分配処理を施す回路網の一例を示す図である。It is a figure which shows an example of the circuit network which performs a driving capability distribution process. 駆動能力比率計算処理の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of a driving capability ratio calculation process. 駆動能力変化率反映処理の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of a driving capability change rate reflection process. ピン駆動能力指示検出処理の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of a pin drive capability instruction | indication detection process. ネット負荷容量指示反映処理の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of a net load capacity instruction | indication reflection process. ブロック非最適化指示検出処理の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of a block non-optimization instruction | indication detection process. 図3に示す回路最適化処理においてブロック非最適化指示が行なわれるときの変更を示す図である。It is a figure which shows a change when a block non-optimization instruction | indication is performed in the circuit optimization process shown in FIG. 素子変更情報出力処理の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of an element change information output process. 記録させた制御プログラムをコンピュータで読み取ることの可能な記録媒体の例を示す図である。It is a figure which shows the example of the recording medium which can read the recorded control program with a computer.

符号の説明Explanation of symbols

11 駆動能力値算出手段
12 変更手段
21、31 スラック値算出手段
22 駆動能力値分配手段
23 後段回路ブロック駆動能力値算出手段
24 後段回路ブロック変更手段
32 駆動能力比率算出手段
33 第一駆動能力値算出手段
34 第一後段回路ブロック変更手段
101 入力部
102 ROM
103 RAM
104 I/F部
105 入力部
106 表示部
107 出力部
108 記憶部
109 バス
201 コンピュータ
202 メモリ
203 可搬型記憶媒体
204 回線
205 プログラムサーバ
206 記憶装置
DESCRIPTION OF SYMBOLS 11 Drive ability value calculation means 12 Change means 21, 31 Slack value calculation means 22 Drive ability value distribution means 23 Subsequent circuit block drive ability value calculation means 24 Subsequent circuit block change means 32 Drive ability ratio calculation means 33 First drive ability value calculation Means 34 First post-stage circuit block changing means 101 Input unit 102 ROM
103 RAM
104 I / F unit 105 Input unit 106 Display unit 107 Output unit 108 Storage unit 109 Bus 201 Computer 202 Memory 203 Portable storage medium 204 Line 205 Program server 206 Storage device

Claims (6)

複数の回路ブロックを接続してなる論理回路に対し、該回路ブロック毎に指定がされている該回路ブロックを構成するために使用するプリミティブな素子についての該指定を該素子と同一の機能を有し且つ駆動能力値は異なる他のプリミティブな素子へ変更することによって、該論理回路内を伝播する信号の遅延についての最適化を行なうシステムであって、
前記回路ブロックのスラック値の算出を行なうスラック値算出手段と、
前記論理回路中の回路ブロックの有するひとつの出力が該回路ブロックの後段の複数の回路ブロックである後段回路ブロックに接続されているときに、該後段回路ブロックに指定がされている前記素子によって定まる前記指定変更前の該後段回路ブロック毎の駆動能力値を、該後段回路ブロック毎の駆動能力値の合計値は維持しつつ、且つ、該後段回路ブロック毎に算出されたスラック値の差異に基づいて、該後段回路ブロックの各々に分配する駆動能力値分配手段と、
前記駆動能力値分配手段によって分配された駆動能力値を前記後段回路ブロックの前段の回路ブロックの駆動能力値とみなして該後段回路ブロックに要求する駆動能力値の算出を行なう後段回路ブロック駆動能力値算出手段と、
前記算出によって得られた駆動能力値に基づいて前記後段回路ブロックで使用される前記素子の指定の変更を行なう後段回路ブロック変更手段と、
を有することを特徴とする論理回路遅延最適化システム。
For a logic circuit formed by connecting a plurality of circuit blocks, the designation of a primitive element used to configure the circuit block designated for each circuit block has the same function as the element. And a system for optimizing the delay of a signal propagating in the logic circuit by changing to another primitive element having a different driving capability value,
Slack value calculating means for calculating the slack value of the circuit block;
When one output of a circuit block in the logic circuit is connected to a subsequent circuit block that is a plurality of circuit blocks subsequent to the circuit block, the output is determined by the element specified for the subsequent circuit block. Based on the difference in the slack value calculated for each subsequent stage circuit block while maintaining the total drive capacity value for each subsequent stage circuit block, the driving capacity value for each subsequent stage circuit block before the designation change Driving capability value distribution means for distributing to each of the subsequent circuit blocks;
The driving ability value distributed by the driving ability value distributing means is regarded as the driving ability value of the preceding circuit block of the succeeding circuit block, and the driving ability value required for the succeeding circuit block is calculated. A calculation means;
Subsequent circuit block changing means for changing the designation of the element used in the subsequent circuit block based on the driving ability value obtained by the calculation;
A logic circuit delay optimizing system comprising:
複数の回路ブロックを接続してなる論理回路に対し、該回路ブロック毎に指定がされている該回路ブロックを構成するために使用するプリミティブな素子についての該指定を該素子と同一の機能を有し且つ駆動能力値は異なる他のプリミティブな素子へ変更することによって、該論理回路内を伝播する信号の遅延についての最適化を行なう論理回路遅延最適化システムにより行なわれる論理回路遅延最適化方法であって、
前記論理回路遅延最適化システムの有するスラック値算出手段が、前記回路ブロックのスラック値の算出を行ない、
前記論理回路中の回路ブロックの有するひとつの出力が該回路ブロックの後段の複数の回路ブロックである後段回路ブロックに接続されているときに、前記論理回路遅延最適化システムの有する駆動能力値分配手段が、該後段回路ブロックに指定がされている前記素子によって定まる前記指定変更前の該後段回路ブロック毎の駆動能力値を、該後段回路ブロック毎の駆動能力値の合計値は維持しつつ、且つ、該後段回路ブロック毎に算出されたスラック値の差異に基づいて、該後段回路ブロックの各々に分配し、
前記論理回路遅延最適化システムの有する後段回路ブロック駆動能力値算出手段が、前記後段回路ブロックの各々に分配された駆動能力値を前記後段回路ブロックの前段の回路ブロックの駆動能力値とみなして該後段回路ブロックに要求する駆動能力値の算出を行ない、
前記論理回路遅延最適化システムの有する後段回路ブロック変更手段が、前記算出によって得られた駆動能力値に基づいて前記後段回路ブロックで使用される前記素子の指定の変更を行なう、
ことを特徴とする論理回路遅延最適化方法。
For a logic circuit formed by connecting a plurality of circuit blocks, the designation of a primitive element used to configure the circuit block designated for each circuit block has the same function as the element. And a logic circuit delay optimization method performed by a logic circuit delay optimization system for optimizing a delay of a signal propagating in the logic circuit by changing to another primitive element having a different driving capability value. There,
The slack value calculating means of the logic circuit delay optimization system calculates the slack value of the circuit block,
Drive capability value distribution means of the logic circuit delay optimization system when one output of a circuit block in the logic circuit is connected to a subsequent circuit block that is a plurality of circuit blocks subsequent to the circuit block However, while maintaining the drive capability value for each subsequent circuit block before the designation change determined by the element specified for the subsequent circuit block, the total value of the drive capability values for each subsequent circuit block is maintained, and , Based on the difference in the slack value calculated for each subsequent circuit block, distributed to each of the subsequent circuit blocks,
The subsequent circuit block drive capability value calculating means of the logic circuit delay optimization system regards the drive capability value distributed to each of the subsequent circuit blocks as the drive capability value of the previous circuit block of the subsequent circuit block. Calculate the drive capability value required for the subsequent circuit block,
The subsequent circuit block changing means of the logic circuit delay optimization system changes the designation of the element used in the subsequent circuit block based on the driving capability value obtained by the calculation.
A logic circuit delay optimizing method characterized by the above.
複数の回路ブロックを接続してなる論理回路に対し、該回路ブロック毎に指定がされている該回路ブロックを構成するために使用するプリミティブな素子についての該指定を該素子と同一の機能を有し且つ駆動能力値は異なる他のプリミティブな素子へ変更することによって、該論理回路内を伝播する信号の遅延についての最適化を行なう処理をコンピュータに行なわせるためのプログラムであって、
前記回路ブロックのスラック値の算出を行なう処理と、
前記論理回路中の回路ブロックの有するひとつの出力が該回路ブロックの後段の複数の回路ブロックである後段回路ブロックに接続されているときに、該後段回路ブロックに指定がされている前記素子によって定まる前記指定変更前の該後段回路ブロック毎の駆動能力値を、該後段回路ブロック毎の駆動能力値の合計値は維持しつつ、且つ、該後段回路ブロック毎に算出されたスラック値の差異に基づいて、該後段回路ブロックの各々に分配する処理と、
前記後段回路ブロックの各々に分配された駆動能力値を前記後段回路ブロックの前段の回路ブロックの駆動能力値とみなして該後段回路ブロックに要求する駆動能力値の算出を行なう処理と、
前記算出によって得られた駆動能力値に基づいて前記後段回路ブロックで使用される前記素子の指定の変更を行なう処理と、
を該コンピュータに行なわせるためのプログラム。
For a logic circuit formed by connecting a plurality of circuit blocks, the designation of a primitive element used to configure the circuit block designated for each circuit block has the same function as the element. And a program for causing a computer to perform a process of optimizing a delay of a signal propagating in the logic circuit by changing to another primitive element having a different driving capability value,
Processing for calculating the slack value of the circuit block;
When one output of a circuit block in the logic circuit is connected to a subsequent circuit block that is a plurality of circuit blocks subsequent to the circuit block, the output is determined by the element specified for the subsequent circuit block. Based on the difference in the slack value calculated for each subsequent stage circuit block while maintaining the total drive capacity value for each subsequent stage circuit block, the driving capacity value for each subsequent stage circuit block before the designation change And distributing to each of the subsequent circuit blocks;
A process of calculating a driving capability value required for the subsequent circuit block by regarding the driving capability value distributed to each of the subsequent circuit blocks as the driving capability value of the preceding circuit block of the subsequent circuit block;
A process of changing the designation of the element used in the subsequent circuit block based on the driving ability value obtained by the calculation;
A program for causing the computer to execute.
複数の回路ブロックを接続してなる論理回路に対し、該回路ブロック毎に指定がされている該回路ブロックを構成するために使用するプリミティブな素子についての該指定を該素子と同一の機能を有し且つ駆動能力値は異なる他のプリミティブな素子へ変更することによって、該論理回路内を伝播する信号の遅延についての最適化を行なうシステムであって、
前記回路ブロックのスラック値の算出を行なうスラック値算出手段と、
前記論理回路中の回路ブロックの有するひとつの出力が該回路ブロックの後段の複数の回路ブロックである後段回路ブロックに接続されているときに、該後段回路ブロックに指定がされている前記素子によって定まる前記指定変更前の該後段回路ブロック毎の駆動能力値の合計と、該後段回路ブロックのうちスラック値によって最もタイミングの余裕が少ないことが示されているものについての該指定変更前における駆動能力値との比率を算出する駆動能力比率算出手段と、
前記駆動能力比率算出手段によって算出された駆動能力値の比率に基づいて、前記後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されている該後段回路ブロックに要求する駆動能力値を算出する駆動能力値算出手段と、
前記算出によって得られた駆動能力値に基づいて前記後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されている該後段回路ブロックについての前記指定の変更を行なう後段回路ブロック変更手段と、
を有することを特徴とする論理回路遅延最適化システム。
For a logic circuit formed by connecting a plurality of circuit blocks, the designation of a primitive element used to configure the circuit block designated for each circuit block has the same function as the element. And a system for optimizing the delay of a signal propagating in the logic circuit by changing to another primitive element having a different driving capability value,
Slack value calculating means for calculating the slack value of the circuit block;
When one output of a circuit block in the logic circuit is connected to a subsequent circuit block that is a plurality of circuit blocks subsequent to the circuit block, the output is determined by the element specified for the subsequent circuit block. The driving ability value before the designation change for the sum of the driving ability values for each subsequent stage circuit block before the designation change and the slack value of the latter stage circuit block showing that the timing margin is the smallest. Driving capacity ratio calculating means for calculating the ratio of
Based on the ratio of the driving ability values calculated by the driving ability ratio calculating means, the driving ability required for the succeeding circuit block which is the latter circuit block and has the least timing margin according to the slack value. Driving ability value calculating means for calculating a value;
Subsequent circuit block change that performs the specified change for the subsequent circuit block that is the latter circuit block and has the least timing margin based on the slack value based on the drive capability value obtained by the calculation Means,
A logic circuit delay optimizing system comprising:
複数の回路ブロックを接続してなる論理回路に対し、該回路ブロック毎に指定がされている該回路ブロックを構成するために使用するプリミティブな素子についての該指定を該素子と同一の機能を有し且つ駆動能力値は異なる他のプリミティブな素子へ変更することによって、該論理回路内を伝播する信号の遅延についての最適化を行なう論理回路遅延最適化システムにより行なわれる論理回路遅延最適化方法であって、
前記論理回路遅延最適化システムの有するスラック値算出手段が、前記回路ブロックのスラック値の算出を行ない、
前記論理回路中の回路ブロックの有するひとつの出力が該回路ブロックの後段の複数の回路ブロックである後段回路ブロックに接続されているときに、前記論理回路遅延最適化システムの有する駆動能力比率算出手段が、該後段回路ブロックに指定がされている前記素子によって定まる前記指定変更前の該後段回路ブロック毎の駆動能力値の合計と、該後段回路ブロックのうちスラック値によって最もタイミングの余裕が少ないことが示されているものについての該指定変更前における駆動能力値との比率を算出し、
前記論理回路遅延最適化システムの有する駆動能力値算出手段が、前記比率に基づいて、前記後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されている該後段回路ブロックに要求する駆動能力値を算出し、
前記論理回路遅延最適化システムの有する後段回路ブロック変更手段が、前記比率に基づいて算出された駆動能力値に基づいて前記後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されている該後段回路ブロックについての前記指定の変更を行なう、
ことを特徴とする論理回路遅延最適化方法。
For a logic circuit formed by connecting a plurality of circuit blocks, the designation of a primitive element used to configure the circuit block designated for each circuit block has the same function as the element. And a logic circuit delay optimization method performed by a logic circuit delay optimization system for optimizing a delay of a signal propagating in the logic circuit by changing to another primitive element having a different driving capability value. There,
The slack value calculating means of the logic circuit delay optimization system calculates the slack value of the circuit block,
Drive capability ratio calculation means of the logic circuit delay optimization system when one output of the circuit block in the logic circuit is connected to a subsequent circuit block that is a plurality of circuit blocks subsequent to the circuit block However, there is a minimum timing margin depending on the sum of the driving capability values for each subsequent circuit block before the designation change determined by the element specified for the subsequent circuit block and the slack value of the subsequent circuit block. Calculate the ratio with the driving ability value before the designated change for those indicated by
The driving capability value calculation means included in the logic circuit delay optimization system is required for the subsequent circuit block that is indicated by the slack value to have the least timing margin based on the ratio. Calculate the driving ability value
It is indicated that the subsequent circuit block changing means of the logic circuit delay optimization system is the latter circuit block based on the driving capability value calculated based on the ratio and has the least timing margin depending on the slack value. Changing the designation for the subsequent circuit block being
A logic circuit delay optimizing method characterized by the above.
複数の回路ブロックを接続してなる論理回路に対し、該回路ブロック毎に指定がされている該回路ブロックを構成するために使用するプリミティブな素子についての該指定を該素子と同一の機能を有し且つ駆動能力値は異なる他のプリミティブな素子へ変更することによって、該論理回路内を伝播する信号の遅延についての最適化を行なう処理をコンピュータに行なわせるためのプログラムであって、
前記回路ブロックのスラック値の算出を行なう処理と、
前記論理回路中の回路ブロックの有するひとつの出力が該回路ブロックの後段の複数の回路ブロックである後段回路ブロックに接続されているときに、該後段回路ブロックに指定がされている前記素子によって定まる前記指定変更前の該後段回路ブロック毎の駆動能力値の合計と、該後段回路ブロックのうちスラック値によって最もタイミングの余裕が少ないことが示されているものについての該指定変更前における駆動能力値との比率を算出する処理と、
前記比率に基づいて、前記後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されている該後段回路ブロックに要求する駆動能力値を算出する処理と、
前記比率に基づいて算出された駆動能力値に基づいて前記後段回路ブロックであってスラック値によって最もタイミングの余裕が少ないことが示されている該後段回路ブロックについての前記指定の変更を行なう処理と、
を該コンピュータに行なわせるためのプログラム。
For a logic circuit formed by connecting a plurality of circuit blocks, the designation of a primitive element used to configure the circuit block designated for each circuit block has the same function as the element. And a program for causing a computer to perform a process of optimizing a delay of a signal propagating in the logic circuit by changing to another primitive element having a different driving capability value,
Processing for calculating the slack value of the circuit block;
When one output of a circuit block in the logic circuit is connected to a subsequent circuit block that is a plurality of circuit blocks subsequent to the circuit block, the output is determined by the element specified for the subsequent circuit block. The driving ability value before the designation change for the sum of the driving ability values for each subsequent stage circuit block before the designation change and the slack value of the latter stage circuit block showing that the timing margin is the smallest. Processing to calculate the ratio of
Based on the ratio, a process for calculating a driving ability value required for the subsequent circuit block, which is indicated by the slack value and has the least timing margin based on the ratio,
A process of changing the designation of the subsequent circuit block which is the latter circuit block and has the least timing margin based on the slack value based on the drive capacity value calculated based on the ratio; ,
A program for causing the computer to execute.
JP2007044172A 2007-02-23 2007-02-23 Logic circuit delay optimization system, logic circuit delay optimization method, and program Expired - Fee Related JP4131871B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007044172A JP4131871B2 (en) 2007-02-23 2007-02-23 Logic circuit delay optimization system, logic circuit delay optimization method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007044172A JP4131871B2 (en) 2007-02-23 2007-02-23 Logic circuit delay optimization system, logic circuit delay optimization method, and program

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2001189533A Division JP3992947B2 (en) 2001-06-22 2001-06-22 Logic circuit delay optimization system, logic circuit delay optimization method, and program

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008106467A Division JP4219969B2 (en) 2008-04-16 2008-04-16 Logic circuit delay optimization system, logic circuit delay optimization method, and program

Publications (2)

Publication Number Publication Date
JP2007193829A true JP2007193829A (en) 2007-08-02
JP4131871B2 JP4131871B2 (en) 2008-08-13

Family

ID=38449418

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007044172A Expired - Fee Related JP4131871B2 (en) 2007-02-23 2007-02-23 Logic circuit delay optimization system, logic circuit delay optimization method, and program

Country Status (1)

Country Link
JP (1) JP4131871B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014142743A (en) * 2013-01-23 2014-08-07 Nec Corp Data processing device, data processing system, data processing method and data processing program
US9900727B2 (en) 2013-01-18 2018-02-20 Lg Electronics Inc. Method and apparatus for controlling access in wireless communication system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0668340U (en) * 1992-03-09 1994-09-22 有限会社エビノパイピング Grounding terminal plug

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9900727B2 (en) 2013-01-18 2018-02-20 Lg Electronics Inc. Method and apparatus for controlling access in wireless communication system
JP2014142743A (en) * 2013-01-23 2014-08-07 Nec Corp Data processing device, data processing system, data processing method and data processing program

Also Published As

Publication number Publication date
JP4131871B2 (en) 2008-08-13

Similar Documents

Publication Publication Date Title
KR101805946B1 (en) Generating text manipulation programs using input-output examples
US10546090B2 (en) Virtual cell model usage
US7949504B2 (en) System and method for optimizing block diagram models
US8799837B2 (en) Optimizing a netlist circuit representation by leveraging binary decision diagrams to perform rewriting
US7707530B2 (en) Incremental timing-driven, physical-synthesis using discrete optimization
US11062066B2 (en) Information processing apparatus, computer-readable recording medium, and information processing method
JP2015143939A (en) Compilation program, compilation method, and compilation device
JP2013109675A (en) Device and method of supporting generation of program
JP5846006B2 (en) Program, code generation method, and information processing apparatus
CN112667024A (en) Time delay calculation circuit, chip operation frequency acquisition method and device and electronic equipment
JP3992947B2 (en) Logic circuit delay optimization system, logic circuit delay optimization method, and program
JP4131871B2 (en) Logic circuit delay optimization system, logic circuit delay optimization method, and program
US8700380B2 (en) Method for generating performance evaluation model
US20130346930A1 (en) Best clock frequency search for fpga-based design
CN116501415B (en) Command execution method and device, electronic equipment and computer readable storage medium
JP5672165B2 (en) Test data generation program, test data generation method, test data generation device
JP4219969B2 (en) Logic circuit delay optimization system, logic circuit delay optimization method, and program
JP2009093491A (en) Verification-scenario generating program, recording medium recording the program, verification-scenario generating apparatus, and verification-scenario generating method
JP6305644B2 (en) Architecture generation apparatus and architecture generation program
JP2006190085A (en) Modeling method and design method for digital circuit
JP2016045676A (en) Debug circuit, debugger device, semiconductor device, and debug method
JP2007011477A (en) Logical circuit operation model generation device and logical circuit operation model generation method
JP5136257B2 (en) Route management method
JP6266183B2 (en) Circuit design support device and circuit design support program
JP2024061205A (en) Machine learning support program, machine learning support method, and information processing device

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080416

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080527

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080528

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110606

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120606

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120606

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130606

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130606

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees