JP2734966B2 - Delay optimization system for sequential circuits - Google Patents
Delay optimization system for sequential circuitsInfo
- Publication number
- JP2734966B2 JP2734966B2 JP5345992A JP34599293A JP2734966B2 JP 2734966 B2 JP2734966 B2 JP 2734966B2 JP 5345992 A JP5345992 A JP 5345992A JP 34599293 A JP34599293 A JP 34599293A JP 2734966 B2 JP2734966 B2 JP 2734966B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- delay
- circuit
- flip
- directed graph
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Description
【0001】[0001]
【産業上の利用分野】本発明は組み合わせ回路とフリッ
プフロップからなる順序回路のクリティカルパスの遅延
値が組み合わせ回路の入力本数と相関があるという性質
をもつ半導体集積回路の順序回路の遅延最適化の方法に
係り、特にクリティカルパスの遅延平均化を実現するた
めの順序回路の遅延最適化システムに関するものであ
る。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a delay optimization of a sequential circuit of a semiconductor integrated circuit having a property that a delay value of a critical path of a sequential circuit composed of a combinational circuit and a flip-flop is correlated with the number of inputs of the combinational circuit. The present invention relates to a method and, more particularly, to a delay optimization system for a sequential circuit for realizing delay averaging of a critical path.
【0002】[0002]
【従来の技術】従来の順序回路の遅延最適化の方法は、
図9に示すように、同じクロックで制御されるフリップ
フロップで回路を分割する回路分割部11とこの回路分
割部11の出力を入力とし組み合わせ論理を抽出する論
理抽出部12と、素子遅延テーブル15から組み合わせ
論理部分の遅延を計算する遅延計算部13と、この遅延
計算部13の出力を入力とし各フリップフロップ間に遅
延値が均等に配分されるようにスケジューリングするス
ケジューリング部14と、このスケジューリング部14
によるスケジューリング結果にしたがって回路を変更す
る回路変更部16を有している。そして、従来の順序回
路の遅延最適化では、組み合わせ回路部分を全て抜き出
して、フリップフロップの再挿入を行なうなど、質はよ
いが処理時間がかかる方法が一般的である。2. Description of the Related Art A conventional method of optimizing delay of a sequential circuit is as follows.
As shown in FIG. 9, a circuit dividing unit 11 that divides a circuit by flip-flops controlled by the same clock, a logic extracting unit 12 that receives an output of the circuit dividing unit 11 as an input and extracts combinational logic, and an element delay table 15 A delay calculating unit 13 for calculating a delay of a combinational logic part from the input unit; a scheduling unit 14 which receives an output of the delay calculating unit 13 as input and performs scheduling so that delay values are equally distributed among the flip-flops; 14
Has a circuit changing unit 16 that changes the circuit according to the scheduling result. In the conventional delay optimization of a sequential circuit, generally, a method that has good quality but requires a long processing time, such as extracting all the combinational circuits and reinserting flip-flops, is generally used.
【0003】また、従来、プリント基板上に搭載された
LSI間のディレイ解析を行うディレイ解析方法として
は、例えば、特開平4−114280号公報に記載され
ているように、複数のLSIが搭載されたプリント基板
の回路データを読み込み、読み込まれた回路データ上の
各LSI内でフリップフロップからLSI入出力端子に
至るパスを全て検索し、検索されたパスのうちパス両端
が同一で信号ディレイが最大となるクリティカルパスを
特定し、パス一端を共有するクリティカルパスで結ばれ
たフリップフロップ対を指定し、指定されたフリップフ
ロップ対の一方から他方へ両者間のクリティカルパスを
介して至る目的のパスについてディレイ解析を行うよう
にしたものがある。[0003] Conventionally, as a delay analysis method for performing delay analysis between LSIs mounted on a printed circuit board, for example, as described in Japanese Patent Application Laid-Open No. 4-114280, a plurality of LSIs are mounted. The circuit data of the printed circuit board is read, and all the paths from the flip-flop to the LSI input / output terminal are searched in each LSI on the read circuit data, and both ends of the searched paths are the same and the signal delay is the maximum. Identify the critical path that is to be used, specify the flip-flop pair connected by the critical path sharing one end of the path, and specify the target path from one of the specified flip-flop pair to the other via the critical path between the two. There is one that performs delay analysis.
【0004】[0004]
【発明が解決しようとする課題】従来の順序回路の遅延
最適化では、同一クロックで制御される順序回路全体の
論理式を求め、その遅延値を計算した上で、遅延値が平
均的になりクリティカルパスが生じないように各フリッ
プフロップ間に組み合わせ回路を分配していたが、回路
全体の論理と遅延を求めるため、計算時間がかかるとい
う問題があった。 SUMMARY OF THE INVENTION Delay of conventional sequential circuit
Optimization optimizes the entire sequential circuit controlled by the same clock.
Obtain the logical expression, calculate the delay value, and calculate the delay value.
Each flip so that the
Combination circuits were distributed between flip-flops.
It takes time to calculate the whole logic and delay.
There was a problem.
【0005】本発明はかかる問題を解決するためになさ
れたもので、クリティカルな部分の遅延を削減し、各フ
リップフロップ間の遅延を平均化することを高速に行う
順序回路の遅延最適化システムを得ることを目的とす
る。 The present invention has been made to solve such a problem.
Reduced delays in critical areas,
Fast averaging of delays between lip flops
The purpose is to obtain a delay optimization system for sequential circuits.
You.
【0006】[0006]
【課題を解決するための手段】本発明の順序回路の遅延
最適化システムは、組み合わせ回路とフリップフロップ
からなる順序回路のクリティカルパスの遅延値が組み合
わせ回路の入力本数と相関があるという性質をもつ半導
体集積回路において、順序回路中のフリップフロップを
同じクロックで制御されるグループで分割する分割手段
と、この分割手段により分割された各々のグループでフ
リップフロップをノード,フリップフロップ間の接続を
グラフの枝,各ノードへの入力枝数を遅延値を表すノー
ドの属性とする有向グラフを作成する有向グラフ作成手
段と、この有向グラフ作成手段によって得られた有向グ
ラフ上で許容遅延値を越える第1のノードを処理対象と
しその入力側に位置するL個の第2のノードを1つに統
合した第3のノードを作成するノード統合手段と、上記
第1のノードと第3のノードの遅延値を付け替える第1
の遅延付け替え手段と、上記第1のノードを処理対象と
しそれをI個に分割した第4のノードを生成するノード
分割手段と、上記第1のノードとその出力側に位置する
第5のノードの遅延値を付け替える第2の遅延付け替え
手段と、上記ノード統合と遅延付け替えの行われた有向
グラフにしたがってフリップフロップの統合と組み合わ
せ回路の移動を行なう第1の回路変更手段と、上記ノー
ド分割と遅延付け替えの行われた有向グラフにしたがっ
てフリップフロップの分割と組み合わせ回路の移動を行
なう第2の回路変更手段とを備え、上記ノード統合手段
と第1の遅延付け替え手段および上記ノード分割手段と
第2の遅延付け替え手段をそれぞれ手段の対象を変えて
繰り返すことによって組み合わせ回路の複雑度を平均化
するようにしたものである。 SUMMARY OF THE INVENTION A delay of a sequential circuit according to the present invention.
Optimization system consists of combinational circuits and flip-flops
The delay value of the critical path of the sequential circuit consisting of
Semiconductor with the property of being correlated with the number of input circuits
Flip-flops in sequential circuits
Division means for dividing into groups controlled by the same clock
And each group divided by this dividing means
Connect the flip-flop to the node and flip-flop
The number of branches input to each node of the graph
Graph creator that creates a directed graph as an attribute of the
And the directed graph obtained by the directed graph creation means.
The first node exceeding the permissible delay value on the rough is the processing target
Then, the L second nodes located on the input side are integrated into one.
A node integrating means for creating a combined third node;
A first node for changing a delay value between a first node and a third node;
And the first node is a processing target.
And generating a fourth node obtained by dividing it into I nodes
Dividing means, located at the first node and its output side
Second delay replacement for changing the delay value of the fifth node
Means and directed where node integration and delay replacement have been performed
Flip-flop integration and combination according to graph
First circuit changing means for moving the shift circuit;
According to a directed graph with
To divide the flip-flop and move the combinational circuit.
A second circuit changing means, and the node integrating means.
And first delay changing means and the node dividing means
Change the target of the second delay replacement means
Average the complexity of combinational circuits by repeating
It is something to do.
【0007】また、本発明の別の発明による順路回路の
遅延最適化システムは、第1の発明における半導体集積
回路において、順序回路中のフリップフロップを同じク
ロックで制御されるグループで分割する分割手段と、こ
の分割手段により分割された各々のグループでフリップ
フロップをノード,フリップフロップ間の接続をグラフ
の枝,各ノードへの入力枝数を遅延値としこの遅延値を
ノードの属性とする有向グラフを作成する有向グラフ作
成手段と、この有向グラフ作成手段によって得られた有
向グラフ上で許容遅延値を越える第1のノードを処理対
象としこの第1のノードを出力側ノードとする第1の枝
L本(Lは2以上の整数)を選び第1の枝の入力側に位
置するL個の第2のノードを1つに統合した第3のノー
ドを作成するノード統合手段、上記第1のノードの遅延
値よりL−1を減じ第3のノードの遅延値を第2のノー
ドの遅延値の和にを付け替える第1の遅延付け替え手段
と、上記第1のノードを処理対象とし第1のノードをI
個(Iは2以上の整数)に分割した第4のノードを生成
するノード分割手段と、上記第1のノードの遅延値をI
個に分割し第4のノードへ付け第1のノードの出力側に
位置する第5のノードの遅延値にI−1を加える第2の
遅延付け替え手段と、上記ノード統合と遅延付け替えの
行われた有向グラフにしたがって処理対象回路中のフリ
ップフロップの統合を行ないフリップフロップ出力側の
組み合わせ回路を分離しフリップフロップの入力側へ移
動させる第1の回路変更手段と、上記ノード分割と遅延
付け替えの行われた有向グラフにしたがって処理対象回
路中のフリップフロップの分割を行ないフリップフロッ
プ入力側の組み合わせ回路を分割しフリップフロップの
出力側へ移動させる第2の回路変更手段を備え、上記ノ
ード統合手段と第1の遅延付け替え手段および上記ノー
ド分割手段と第2の遅延付け替え手段をそれぞれ手段の
対象を変えて繰り返すことによって、組み合わせ回路の
入力数を平均化し、フリップフロップ間の遅延時間を平
均化するようにしたものである。 [0007] In addition, a forward path circuit according to another invention of the present invention.
The delay optimization system is a semiconductor integrated circuit according to the first invention.
In a circuit, flip-flops in a sequential circuit
Division means for dividing into groups controlled by locks,
Flip by each group divided by the dividing means
Graph connections between flops and nodes and flip-flops
And the number of branches input to each node as a delay value, this delay value
Directed graph creation to create a directed graph as an attribute of a node
Generating means and the directional graph
Process the first node exceeding the allowable delay value on the directed graph
Elephant and a first branch having the first node as an output node
L (L is an integer of 2 or more) is selected and placed on the input side of the first branch.
A third node in which L second nodes to be placed are integrated into one
Node integration means for creating a node, delay of the first node
L-1 is subtracted from the delay value of the third node,
Delay changing means for changing the sum of delay values of delay
And the first node is a processing target and the first node is I
Generate the fourth node divided into I (I is an integer of 2 or more)
And a delay value of the first node
Divided into four and attached to the fourth node on the output side of the first node
A second adding I-1 to the delay value of the located fifth node;
Delay replacement means, and the above-mentioned node integration and delay replacement
The free path in the circuit to be processed is
Integration of flip-flops and flip-flop output side
Separate combination circuit and move to input side of flip-flop
First circuit changing means to be operated, and the above-described node division and delay
The number of times to process according to the redirected directed graph
A flip-flop that splits a flip-flop on the road
Split the combinational circuit on the input side of the flip-flop and
A second circuit changing means for moving to the output side;
Code integration means and first delay replacement means, and
Divide means and second delay changing means
By changing the target and repeating, the combination circuit
Averaging the number of inputs and flattening the delay time between flip-flops
It is intended to be equalized.
【0008】[0008]
【作用】本発明においては、組み合わせ回路の入力本数
を減らし、その部分の組み合わせ回路は他のフリップフ
ロップ間へ移動する。また、クリティカルパスの解消の
ための処理範囲を限定する。According to the present invention, the number of inputs of the combinational circuit is reduced, and the combinational circuit of that portion moves between the other flip-flops. Further, the processing range for eliminating the critical path is limited.
【0009】[0009]
【実施例】つぎに本発明について図面を参照して説明す
る。図1は本発明による順序回路の遅延最適化システム
の一実施例を示すブロック図である。この図1におい
て、1は回路分割部で、順序回路中のフリップフロップ
を同じクロックで制御されるグループで分割する分割手
段を構成している。2はこの回路分割部1の出力を入力
とする有向グラフ作成部で、各々のグループでフリップ
フロップをノード,フリップフロップ間の接続をグラフ
の枝,各ノードへの入力枝数を遅延値を表すノードの属
性とする有向グラフを作成する有向グラフ作成手段を構
成している。3はこの有向グラフ作成部2の出力を入力
とする有向グラフのノード統合部で、有向グラフ上で許
容遅延値を越える第1のノードを処理対象としその入力
側に位置するL(L:2以上の整数)個の第2のノード
を1つに統合した第3のノードを作成するノード統合手
段を構成している。DESCRIPTION OF THE PREFERRED EMBODIMENTS Next, the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing one embodiment of a delay optimization system for a sequential circuit according to the present invention. In FIG. 1, reference numeral 1 denotes a circuit dividing unit, which constitutes dividing means for dividing flip-flops in a sequential circuit into groups controlled by the same clock. Reference numeral 2 denotes a directed graph creating unit which receives the output of the circuit dividing unit 1 as an input. In each group, a flip-flop is a node, a connection between the flip-flops is a branch of the graph, and the number of input branches to each node is a node representing a delay value. And constitutes a directed graph creating means for creating a directed graph having the attribute of. Reference numeral 3 denotes a node integration unit of a directed graph which receives the output of the directed graph creation unit 2 as an input, and processes the first node exceeding the allowable delay value on the directed graph and locates L (L: an integer equal to or greater than 2) located on the input side thereof. ) Number of second nodes are integrated into one to form a third node.
【0010】4はこの有向グラフのノード統合部3の出
力を入力とし、また出力をこの有向グラフのノード統合
部3に送出する第1の遅延付け替え部で、第1のノード
と第3のノードの遅延値をつけかえる第1の遅延付け替
え手段を構成している。5はこの第1の遅延付け替え部
4の出力を入力とする有向グラフのノード分割部で、第
1のノードを処理対象とし、それを1個に分割した第4
のノードを生成するノード分割手段を構成している。6
はこの有向グラフのノード分割部5の出力を入力とし、
また出力を有向グラフのノード分割部5に送出する第2
の遅延付け替え部で、第1のノードとその出力側に位置
する第5のノードの遅延量を付け替える第2の遅延付け
替え手段を構成している。Reference numeral 4 denotes a first delay changing unit which receives an output of the node integration unit 3 of the directed graph as an input, and sends an output to the node integration unit 3 of the directed graph. This constitutes a first delay changing means for changing a value. Reference numeral 5 denotes a node division unit of a directed graph which receives the output of the first delay changing unit 4 as an input, and processes the first node into a fourth node.
And a node dividing unit for generating the node. 6
Takes the output of the node division unit 5 of this directed graph as input,
A second method for sending the output to the node division unit 5 of the directed graph
Of the first node and a fifth node located on the output side of the first node constitute second delay changing means.
【0011】7は回路分割部1の出力と第1の遅延付け
替え部4の出力を入力とする第1の回路変更部で、ノー
ド結合と遅延付け替えの行われた有向グラフにしたがっ
て、フリップフロップの統合と組み合わせ回路の移動を
行う第1の回路変更手段を構成している。8はこの第1
の回路変更部7の出力と第2の遅延付け替え部6の出力
を入力とする第2の回路変更部で、ノード分割と遅延の
付け替えの行われた有向グラフにしたがって、フリップ
フロップの分割と組み合わせ回路の移動を行う第2の回
路変更手段を構成している。そして、ノード統合手段と
第1の遅延付け替え手段およびノード分割手段と第2の
遅延付け替え手段をそれぞれの手段の対象を変えて繰り
返すことによって組み合わせ回路の複雑度を平均化する
ように構成されている。Reference numeral 7 denotes a first circuit changing unit which receives the output of the circuit dividing unit 1 and the output of the first delay changing unit 4 as inputs, and integrates flip-flops according to a directed graph in which node coupling and delay changing are performed. And the first circuit changing means for moving the combinational circuit. 8 is the first
A second circuit changing unit which receives the output of the circuit changing unit 7 and the output of the second delay changing unit 6 as inputs, splits the flip-flop and combines the flip-flops in accordance with a directed graph in which node splitting and delay changing are performed. This constitutes a second circuit changing means for performing the movement. Then, the complexity of the combinational circuit is averaged by repeating the node integrating means and the first delay changing means and the node dividing means and the second delay changing means while changing the targets of the respective means. .
【0012】そして、有向グラフ作成部2は各々のグル
ープでフリップフロップをノード,フリップフロップ間
の接続をグラフの枝,各ノードへの入力枝数をもって遅
延値としこの遅延値をノードの属性とする有向グラフを
作成する有向グラフ作成手段を構成し、有向グラフノー
ド結合部3は有向グラフ上で許容遅延値を越える第1の
ノードを処理対象とし、第1のノードを出力側ノードと
する第1の枝L本(L:2以上の整数)を選び、第1の
枝の入力側に位置するL個の第2のノードを1つに統合
した第3のノードを作成するノード統合手段を構成して
いる。第1の遅延付け替え部4は第1のノードの遅延値
よりL−1を減じ、第3のノードの遅延値を第2のノー
ドの遅延値の和につけかえる第1の遅延付け替え手段を
構成し、有向グラフのノード分割部5は第1のノードを
処理対象とし、第1のノードをI個(Iは2以上の整
数)に分割した第4のノードを生成するノード分割手段
を構成している。Then, the directed graph creating unit 2 sets the flip-flop as a node in each group, the connection between the flip-flops as a branch of the graph, a delay value based on the number of branches input to each node, and the delay graph as an attribute of the node. , And the directed graph node connecting unit 3 treats a first node exceeding the allowable delay value on the directed graph as a processing target and sets the first node as an output node to a first L nodes ( L: an integer equal to or greater than 2) to form a third node by integrating L second nodes located on the input side of the first branch into one. The first delay changing unit 4 constitutes a first delay changing unit for subtracting L-1 from the delay value of the first node and replacing the delay value of the third node with the sum of the delay values of the second nodes. , The directed graph node dividing unit 5 constitutes a node dividing means for generating a fourth node obtained by dividing the first node into I (I is an integer of 2 or more) with the first node as a processing target. .
【0013】第2の遅延付け替え部6は第1のノードの
遅延値をI個に分割し第4のノードへ付け、第1のノー
ドの出力側に位置する第5のノードの遅延値にI−1を
加える第2の遅延付け替え手段を構成し、第1の回路変
更部7はノード統合と遅延つけかえの行われた有向グラ
フにしたがって処理対象回路中のフリップフロップの結
合を行ない、フリップフロップ出力側の組み合わせ回路
を分離しフリップフロップの入力側へ移動させる第1の
回路変更手段を構成している。第2の回路変更部8はノ
ード分割と遅延つけかえの行われた有向グラフにしたが
って処理対象回路中のフリップフロップの分割を行な
い、フリップフロップ入力側の組み合わせ回路を分離し
フリップフロップの出力側へ移動させる第2の回路変更
手段を構成している。そして、ノード統合手段と第1の
遅延付け替え手段およびノード分割手段と第2の遅延付
け替え手段をそれぞれ手段の対象を繰り返すことによっ
て、組み合わせ回路の入力数を平均化し、フリップフロ
ップ間の遅延時間を平均化するように構成されている。The second delay changing section 6 divides the delay value of the first node into I pieces, attaches it to the fourth node, and adds the I value to the delay value of the fifth node located at the output side of the first node. The first circuit changing unit 7 connects the flip-flops in the circuit to be processed according to the directed graph in which the node integration and the delay replacement are performed, and outputs the flip-flop output side. A first circuit changing means for separating the combinational circuit and moving it to the input side of the flip-flop is constituted. The second circuit changing unit 8 divides the flip-flop in the circuit to be processed according to the directed graph in which the node division and the delay replacement are performed, separates the combinational circuit on the flip-flop input side and moves the combinational circuit to the flip-flop output side. It constitutes a second circuit changing means. Then, by repeating the objects of the node integrating means and the first delay changing means and the node dividing means and the second delay changing means, the number of inputs of the combinational circuit is averaged, and the delay time between flip-flops is averaged. It is configured to be.
【0014】図2は図1の動作説明に供するフローチャ
ートで、(a)は図1における有向グラフのノード統合
部3と第1の遅延付け替え部4のフローチャートを示
し、(b)は図1における有向グラフのノード分割部4
と第2の遅延付け替え部6のフローチャートを示す。こ
の図2のステップ101〜113およびステップ201
〜211においてはそれぞれ所定の処理を実行する。図
3は本発明における処理の対象となる回路例で、A,B
・・・・Kはフリップフロップを示す。図4は図3から
作成された有向グラフの例を示す説明図で、(A),
(B)・・・(K)はノードを示し、(1),(2)・
・・(5)はノードの属性を示す。図5は図4を変形し
た有向グラフの例を示す説明図、図6は図4から図5へ
の有向グラフの変形に伴う回路の変更を示す説明図、図
7は図5を変形した有向グラフを示す説明図、図8は図
5から図7への有向グラフの変形に伴う回路の変更を示
す説明図である。FIG. 2 is a flowchart for explaining the operation of FIG. 1. FIG. 2A is a flowchart of the directed graph node integration unit 3 and the first delay replacement unit 4 of FIG. 1, and FIG. 2B is a flowchart of the directed graph of FIG. Node division unit 4
3 shows a flowchart of the second delay changing unit 6. Steps 101 to 113 and step 201 in FIG.
At steps 211 to 211, a predetermined process is executed. FIG. 3 shows an example of a circuit to be processed in the present invention.
... K indicates a flip-flop. FIG. 4 is an explanatory diagram showing an example of a directed graph created from FIG.
(B)... (K) indicate nodes, and (1), (2).
.. (5) indicates the attribute of the node. FIG. 5 is an explanatory diagram showing an example of a directed graph obtained by modifying FIG. 4, FIG. 6 is an explanatory diagram showing a change in a circuit accompanying the transformation of the directed graph from FIG. 4 to FIG. 5, and FIG. 7 shows a directed graph obtained by modifying FIG. FIG. 8 is an explanatory diagram showing a change in the circuit accompanying the transformation of the directed graph from FIG. 5 to FIG.
【0015】つぎに図1に示す実施例の動作を図2ない
し図8を参照して説明する。ここでは、図1,図2
(a),(b)の処理の流れにしたがって、図3の回路
と図4の有向グラフがどのように処理されるかを説明す
る。まず、回路分割部1においては、処理対象となる順
序回路について、同じクロックで制御されるフリップフ
ロップで回路を分割する。つぎに、有向グラフ作成部2
においては、各々のグループのフリップフロップをノー
ド,フリップフロップ間の接続をグラフの枝とする有向
グラフを作成する。ここで、各ノードへ入る枝の本数
は、フリップフロップ入力を構成する組み合わせ回路の
入力信号の本数を表わし、そのノードへ至る遅延値を簡
便に表現するために、遅延値を表わすノードの属性とす
る。ここで、処理される回路が図3である場合、図4の
ような有向グラフが作成される。ここで、図3のA,B
・・・Kはフリップフロップを示し、図4の(A),
(B)・・・(K)はノード、(1),(2)・・・5
はノードの属性を示す。Next, the operation of the embodiment shown in FIG. 1 will be described with reference to FIGS. Here, FIGS. 1 and 2
How the circuit of FIG. 3 and the directed graph of FIG. 4 are processed according to the processing flows of (a) and (b) will be described. First, the circuit dividing unit 1 divides a sequential circuit to be processed by a flip-flop controlled by the same clock. Next, the directed graph creation unit 2
, A directed graph is created in which flip-flops of each group are nodes and the connection between the flip-flops is a branch of the graph. Here, the number of branches entering each node represents the number of input signals of the combinational circuit constituting the flip-flop input, and in order to easily represent the delay value reaching that node, the attribute of the node representing the delay value and I do. Here, when the circuit to be processed is FIG. 3, a directed graph as shown in FIG. 4 is created. Here, A and B in FIG.
.. K indicate flip-flops, and FIG.
(B)... (K) are nodes, (1), (2).
Indicates the attribute of the node.
【0016】そして、組み合わせ回路への入力信号数の
数は、回路の複雑度に相関があるため、クリティカルパ
スは、入力信号数の多いノードへ集中することが多い。
このため、作成された有向グラフのノードの遅延値にお
いて、指定した許容値以下にするために以下の処理を行
う。まず、有向グラフのノード統合部3においては、有
向グラフから許容値Nを超える遅延値Mを持つ第1のノ
ードを処理対象とし、第1のノードを出力側ノードとす
る第1の枝L本を選び、第1の枝の入力側に位置するL
個の第2のノードを1つに統合した第3のノードを作成
する。また、第1の遅延付け替え部4においては、第1
のノードの遅延値をL−1減じ、第3のノードの遅延値
を第2のノードの遅延値の和につけかえる。ここで、遅
延値を許容値以下にするために、選ばれる枝の本数Lを
M−N+1としなければならない。この処理によりノー
ドの統合が行われると、第1のノードの遅延値はNとな
る。ただし、統合した第3のノードの新たな遅延値は、
統合される前の第2のノードの遅延値を加算して付ける
ことになるので、統合するノードの遅延値がなるべく小
さいノードを選ぶものとする。これにより、第3のノー
ドが遅延許容値Nを超える場合には、第3のノードを新
たな処理対象として第1のノードに置き換えて上記処理
を行ない、遅延許容値を満足するまでノードの入力側へ
遡り処理を繰り返す。Since the number of input signals to the combinational circuit has a correlation with the complexity of the circuit, the critical path often concentrates on nodes having a large number of input signals.
For this reason, the following processing is performed in order to make the delay value of the node of the created directed graph equal to or less than the specified allowable value. First, the node integration unit 3 of the directed graph selects a first node L having a delay value M exceeding a permissible value N as a processing target from the directed graph, and selecting the first branch L having the first node as an output node. , L located on the input side of the first branch
A third node is created by integrating the second nodes into one. In the first delay changing unit 4, the first
, The delay value of the third node is replaced by the sum of the delay values of the second node. Here, in order to make the delay value equal to or less than the allowable value, the number L of branches to be selected must be M−N + 1. When the nodes are integrated by this process, the delay value of the first node becomes N. However, the new delay value of the integrated third node is
Since the delay value of the second node before integration is added and added, a node having the smallest delay value of the node to be integrated is selected. Accordingly, when the third node exceeds the delay allowable value N, the above processing is performed by replacing the third node with the first node as a new processing target, and inputting the node until the delay allowable value is satisfied. Repeat the process going back to the side.
【0017】そして、有向グラフの入り口まで遡ると、
これ以上ノード統合処理ができないので、ここで遅延が
解消されない場合には、最初の処理に戻り、統合した第
3のノードの遅延値が許容値を超えないように、選ぶ枝
の本数Lを減じて同様の処理を行う。例えば、図4の有
向グラフにおいて、許容値を「3」とし、これを超える
遅延値「5」を持つノードGを処理の対象とする。ここ
で選ばれる枝の数は「3」となるが、統合されるノード
F、I、Kの遅延値の合計は「4」となり、これはノー
ドを遡って処理を繰り返しても解消できないので、選ば
れる枝の本数を減じ、「2」とする。ノードF、IはF
へ統合されノードIは削除される。ノードGの遅延値は
「4」となり許容値を解消できないが、統合されたノー
ドFの遅延値は、許容値を超えない。これにより図4の
有向グラフは図5のように変形される。Then, going back to the entrance of the directed graph,
If the delay cannot be eliminated, the process returns to the initial process, and the number L of branches to be selected is reduced so that the delay value of the integrated third node does not exceed the allowable value. To perform the same processing. For example, in the directed graph of FIG. 4, the allowable value is set to “3”, and the node G having the delay value “5” exceeding the allowable value is set as the processing target. The number of branches selected here is "3", but the sum of the delay values of the nodes F, I, and K to be integrated is "4". The number of selected branches is reduced to “2”. Nodes F and I are F
And the node I is deleted. Although the delay value of the node G is “4” and the allowable value cannot be canceled, the delay value of the integrated node F does not exceed the allowable value. Thereby, the directed graph of FIG. 4 is transformed as shown in FIG.
【0018】第1の回路変換部7においては、上記の処
理により有向グラフにノード統合、遅延値のつけかえが
行われた場合には、有向グラフに対する処理の過程を追
って処理対象回路の変更を行う。図4から図5への有向
グラフの変形によって、図3の処理回路は図6のように
変形される。フリップフロップGへ至る組み合わせ回路
中から、FとIの組み合わせ回路部分を分離し、フリッ
プフロップFとIの入力側へ移動させる。これにより、
フリップフロップFとIは統合されるので、フリップフ
ロップIは削除される。ここで、1相同期回路の場合、
この変更を行っても最終的な論理/タイミングは保証さ
れる。In the first circuit conversion unit 7, when the node integration and the replacement of the delay value are performed on the directed graph by the above-described processing, the circuit to be processed is changed following the process of the directed graph. By modifying the directed graph from FIG. 4 to FIG. 5, the processing circuit of FIG. 3 is modified as shown in FIG. From the combinational circuit reaching the flip-flop G, the combinational circuit portion of F and I is separated and moved to the input side of the flip-flops F and I. This allows
Since the flip-flops F and I are integrated, the flip-flop I is deleted. Here, in the case of a one-phase synchronous circuit,
Even with this change, the final logic / timing is guaranteed.
【0019】そして、有向グラフのノード分割部5にお
いては、上記のノード統合により遅延許容値を満足でき
た場合にはここで処理を終了するが、満足できない場合
には、第1のノードを処理対象とし、第1のノードをI
個に分割した第4のノードを生成する。第2の遅延付け
替え部6においては、第4のノードへ入る第2の枝をI
分割して第4のノードに割り振り、上記分割した枝数を
遅延値として第4のノードへ付け、第1のノードの出力
側に位置する第5のノードの遅延値にI−1加える。こ
こで、分割数Iは分割後の遅延値が許容値を越えない最
低の整数を選ぶ。The node division unit 5 of the directed graph terminates the processing here if the allowable delay value is satisfied by the above-described node integration. If the delay is not satisfied, the first node is processed. And the first node is I
Generate a fourth node divided into individual nodes. In the second delay changing unit 6, the second branch entering the fourth node is
The first node is divided and assigned to the fourth node, and the number of branches is added to the fourth node as a delay value, and I-1 is added to the delay value of the fifth node located on the output side of the first node. Here, as the number of divisions I, a minimum integer whose delay value after division does not exceed an allowable value is selected.
【0020】また、ここで第5のノードのもとの遅延値
がJで、第5のノードの分割後の遅延値J+(I−1)
が許容値Nを越えた場合には、第5のノードを新たな処
理対象として第1のノードへ置き換え、遅延許容値を満
足するまでノードの出力側へ進み処理を繰り返す。そし
て、有向グラフの出口に到達すると、これ以上ノードの
分割はできないので、ここで遅延許容値を満足しない場
合には、ノード分割を行う前の有向グラフの状態に戻
し、処理を終了する。図5の例では、第1のノードGの
遅延値は「4」で、2分割すれば許容値以下にすること
ができる。そこでノードGを分割して第4のノード
「G」を作成し、ノードGからの枝GDの複製「G」D
を生成する。ノードGへの枝は、なるべく等分になるよ
うに2分割し、一方の枝のグループ(BG、FG)はノ
ードを「G」へつけかえる。ノードG、「G」の遅延値
は分割された枝の数となるので、この値に付け替える。
また、この分割により、ノードGの出力側に位置する第
5のノードDには遅延値を「1」加算する。ここでは、
ノードDの遅延値は「3」になり、許容値を満足するの
で、ここで処理を中止する。これにより、図5の有向グ
ラフは図7のように変形される。Here, the original delay value of the fifth node is J, and the divided delay value of the fifth node J + (I-1)
Exceeds the allowable value N, the fifth node is replaced with the first node as a new processing target, and the process proceeds to the output side of the node and repeats the processing until the delay allowable value is satisfied. Then, when reaching the exit of the directed graph, the node cannot be divided any further. If the delay allowable value is not satisfied here, the state of the directed graph before the node division is performed is returned, and the processing is terminated. In the example of FIG. 5, the delay value of the first node G is “4”, which can be made equal to or less than the allowable value by dividing into two. Then, the node G is divided to create a fourth node “G”, and a copy “G” D of the branch GD from the node G
Generate The branch to the node G is divided into two equal parts as much as possible, and one branch group (BG, FG) changes the node to “G”. The delay value of the node G, “G” is the number of divided branches, and is replaced with this value.
By this division, the delay value is added to the fifth node D located on the output side of the node G by "1". here,
Since the delay value of the node D becomes “3” and satisfies the allowable value, the processing is stopped here. Thereby, the directed graph of FIG. 5 is transformed as shown in FIG.
【0021】つぎに、第2の回路変更部8においては、
上記の処理により有向グラフにノード分割、遅延値のつ
けかえが行われた場合には、有向グラフに対する処理の
過程を追って処理対象回路の変更を行う。そして、図5
から図7への有向グラフの変更によって、図6の回路は
図8のように変更される。まずフリップフロップGの複
製「G」を作成する。つぎにフリップフロップGへ至る
組み合わせ回路を、上記の枝の分割にしたがって分割
し、それぞれフリップフロップGと「G」の出力側へ移
動させる。1相同期回路の場合、この変更を行っても最
終的な論理/タイミングは保証される。Next, in the second circuit changing section 8,
When the node division and the replacement of the delay value are performed on the directed graph by the above processing, the circuit to be processed is changed following the process of the processing on the directed graph. And FIG.
The circuit of FIG. 6 is changed as shown in FIG. 8 by changing the directed graph from FIG. First, a copy “G” of the flip-flop G is created. Next, the combinational circuit leading to the flip-flop G is divided according to the branch division described above, and moved to the output side of the flip-flop G and the output of "G", respectively. In the case of a one-phase synchronous circuit, the final logic / timing is guaranteed even if this change is made.
【0022】[0022]
【発明の効果】以上説明したように本発明は、フリップ
フロップ間の組み合わせ回路の複雑度で決定される順序
回路のクリティカルパスを削減するために組み合わせ回
路の入力本数を減らし、その部分の組み合わせ回路は他
のフリップフロップ間へ移動するようにしたので、クリ
ティカルな部分の遅延を削減し、各フリップフロップ間
の遅延を平均化することを高速に行うことができるとい
う効果を有する。また、本発明は、クリティカルの解消
のための処理範囲を限定するようにしたので、クリティ
カルパスの遅延値と遅延の許容値との差が小さい場合に
は、高速に処理を行うことができる効果がある。As described above, the present invention reduces the number of inputs of a combinational circuit in order to reduce the critical path of a sequential circuit determined by the complexity of the combinational circuit between flip-flops, Is moved between the other flip-flops, so that the delay in the critical portion can be reduced and the delay between the flip-flops can be averaged quickly. Also, the present invention limits the processing range for eliminating the criticality, so that when the difference between the critical path delay value and the allowable delay value is small, the processing can be performed at high speed. There is.
【図1】本発明による順序回路の遅延最適化システムの
一実施例を示すブロック図である。FIG. 1 is a block diagram showing an embodiment of a delay optimization system for a sequential circuit according to the present invention.
【図2】図1の動作説明に供するフローチャートであ
る。FIG. 2 is a flowchart for explaining the operation of FIG. 1;
【図3】本発明における処理対象回路例を示す説明図で
ある。FIG. 3 is an explanatory diagram showing an example of a circuit to be processed in the present invention.
【図4】図3から作成された有向グラフの例を示す説明
図である。FIG. 4 is an explanatory diagram showing an example of a directed graph created from FIG. 3;
【図5】図4を変形した有向グラフを示す説明図であ
る。FIG. 5 is an explanatory diagram showing a directed graph obtained by modifying FIG. 4;
【図6】図4から図5への有向グラフの変形に伴う回路
の変更を示す説明図である。FIG. 6 is an explanatory diagram showing a change in a circuit accompanying a transformation of the directed graph from FIG. 4 to FIG. 5;
【図7】図5を変形した有向グラフを示す説明図であ
る。FIG. 7 is an explanatory diagram showing a directed graph obtained by modifying FIG. 5;
【図8】図5から図7への有向グラフの変形に伴う回路
の変更を示す説明図である。FIG. 8 is an explanatory diagram showing a change in a circuit accompanying a transformation of the directed graph from FIG. 5 to FIG. 7;
【図9】従来の順序回路の遅延最適化の方法の一例を示
すブロック図である。FIG. 9 is a block diagram illustrating an example of a conventional method of delay optimization of a sequential circuit.
1 回路分割部 2 有向グラフ作成部 3 有向グラフのノード統合部 4 第1の遅延付け替え部 5 有向グラフのノード分割部 6 第2の遅延付け替え部 7 第1の回路変更部 8 第2の回路変更部 DESCRIPTION OF SYMBOLS 1 Circuit division part 2 Directed graph preparation part 3 Directed graph node integration part 4 First delay replacement part 5 Directed graph node division part 6 Second delay replacement part 7 First circuit change part 8 Second circuit change part
Claims (2)
なる順序回路のクリティカルパスの遅延値が組み合わせ
回路の入力本数と相関があるという性質をもつ半導体集
積回路において、 順序回路中のフリップフロップを同じクロックで制御さ
れるグループで分割する分割手段と、 この分割手段により分割された各々のグループでフリッ
プフロップをノード、フリップフロップ間の接続をグラ
フの枝,各ノードへの入力枝数を遅延値を表すノードの
属性とする有向グラフ作成する有向グプフ作成手段と、 この有向グラフ作成手段によって得られた有向グラフ上
で許容遅延値を越える第1のノードを処理対象としその
入力側に位置するL個(L:2以上の整数)の第2のノ
ードを1つに統合した第3のノードを作成するノード統
合手段と、 前記第1のノードと第3のノードの遅延値を付け替える
第1の遅延付け替え手段と、 前記第1のノードを処理対象としそれをI個に分割した
第4のノードを生成するノード分割手段と、 前記第1のノードとその出力側に位置する第5のノード
の遅延値を付け替える第2の遅延付け替え手段と、 前記ノード統合と遅延付け替えの行われた有向グラフに
したがってフリップフロップの統合と組み合わせ回路の
移動を行なう第1の回路変更手段と、 前記ノード分割と遅延付け替えの行われた有向グラフに
したがってフリップフロップの分割と組み合わせ回路の
移動を行なう第2の回路変更手段とを備え、 前記ノード統合手段と第1の遅延付け替え手段および前
記ノード分割手段と第2の遅延付け替え手段をそれぞれ
手段の対象を変えて繰り返すことによって組み合わせ回
路の複雑度を平均化するようにした ことを特徴とする順
序回路の遅延最適化システム。1. A combination circuit and a flip-flop
Combination of critical path delay values of sequential circuits
A collection of semiconductors that have the property of being correlated with the number of circuit inputs
In an integrated circuit, flip-flops in a sequential circuit are controlled by the same clock.
Dividing means for dividing into groups to be divided , and flipping in each group divided by the dividing means.
Connect the flip-flop to the node and the connection between the flip-flops
Branch, the number of branches input to each node
A directed graph creation means for creating a directed graph as an attribute, and a directed graph obtained by the directed graph creation means
The first node exceeding the allowable delay value in
L (L: an integer of 2 or more) second nodes located on the input side
Node to create a third node that integrates
Combining means for changing the delay values of the first node and the third node
A first delay changing means, and the first node is processed and divided into I pieces
Node dividing means for generating a fourth node, a fifth node located on the output side of the first node and the first node
Second delay changing means for changing the delay value of
Therefore, integration of flip-flops and combinational circuits
A first circuit changing means for performing the movement, and a directed graph in which the node division and the delay replacement are performed;
Therefore, the division of the flip-flop and the combinational circuit
A second circuit changing means for performing a movement, wherein the node integrating means and the first delay changing means and
The node dividing means and the second delay changing means
Combination times by changing the target of the means and repeating
A delay optimization system for a sequential circuit, wherein a complexity of a road is averaged .
なる順序回路のクリティカルパスの遅延値が組み合わせ
回路の入力本数と相関があるという性質をもつ半導体集
積回路において、 前記順序回路中のフリップフロップを同じクロックで制
御されるグループで分割する分割手段と、 この分割手段により分割された各々のグループでフリッ
プフロップをノード、フリップフロップ間の接続をグラ
フの枝.各ノードへの入力枝数をもって遅延値としこの
遅延値をノードの属性とする有向グラフを作成する有向
グラフ作成手段と、 この有向グラフ作成手段によって得られた有向グラフ上
で許容遅延値を越える第1のノードを処理対象としこの
第1のノードを出力側ノードとする第1の枝L本(L:
2以上の整数)を選び第1の枝の入力側に位置するL個
の第2のノードを1つに統合した第3のノードを作成す
るノード統合手段と、 前記第1のノードの遅延値よりL−1を減じ第3のノー
ドの遅延値を第2のノードの遅延値の和に付け替える第
1の遅延付け替え手段と、 前記第1のノードを処理対象とし第1のノードをI個
(I:2以上の整数)に分割した第4のノードを生成す
るノード分割手段と、 前記第1のノードの遅延値をI個に分割し第4のノード
へ付け第1のノードの出力側に位置する第5のノードの
遅延値にI−1を加える第2の遅延付け替え手段と、 前記ノード統合と遅延付け替えの行れれた有向グラフに
したがって処理対象回路中のフリップフロップの統合を
行ないフリップフロップ出力側の組み合わせ回路を分離
しフリップフロップの入力側へ移動させる第1の回路変
更手段と、 前記ノード分割と遅延付け替えの行われた有向グラフに
したがって処理対象回路中のフリップフロップの分割を
行ないフリップフロップ入力側の組み合わせ回路を分離
しフリップフロップの出力側へ移動させる第2の回路変
更手段とを備え、 前記ノード統合手段と第1の遅延付け替え手段および前
記ノード分割手段と第2の遅延付け替え手段とをそれぞ
れ手段の対象を変えて繰り返すことによって組み合わせ
回路の入力数を平均化し、フリップフロップ間の遅延時
間を平均化するようにした ことを特徴とする順序回路の
遅延最適化システム。2. A combination circuit and a flip-flop
Combination of critical path delay values of sequential circuits
A collection of semiconductors that have the property of being correlated with the number of circuit inputs
In the integrated circuit, flip-flops in the sequential circuit are controlled by the same clock.
Dividing means for dividing the data into groups to be controlled , and flickering in each group divided by the dividing means.
Connect the flip-flop to the node and the connection between the flip-flops
Branch The number of branches input to each node is used as the delay value
Create a directed graph with delay values as node attributes
Graph creation means, and on the directed graph obtained by the directed graph creation means
And the first node exceeding the allowable delay value
L first branches (L:
L) that are located on the input side of the first branch
Create a third node by integrating the second node of
A third node by subtracting L-1 from the delay value of the first node.
The delay value of the second node to the sum of the delay values of the second node.
1 delay changing means, and I nodes for the first nodes to be processed.
Generate a fourth node divided into (I: an integer of 2 or more)
And a node dividing means for dividing the delay value of the first node into I
Of the fifth node located on the output side of the first node
A second delay changing means for adding I-1 to the delay value; and a directed graph in which the node integration and the delay changing are performed.
Therefore, integration of flip-flops in the circuit to be processed
Separate the combinational circuit on the flip-flop output side
The first circuit change to move to the input side of the flip-flop
And a directed graph in which the node division and the delay replacement are performed.
Therefore, the division of the flip-flop in the circuit to be processed
Separate the combinational circuit on the flip-flop input side
The second circuit change to the flip-flop output side.
And a further unit, said node integration means and the first delay replacement means and before
The node dividing means and the second delay changing means
Combine by changing the target of the means and repeating
Averaging the number of circuit inputs and delaying between flip-flops
A delay optimization system for a sequential circuit, characterized in that intervals are averaged .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5345992A JP2734966B2 (en) | 1993-12-24 | 1993-12-24 | Delay optimization system for sequential circuits |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5345992A JP2734966B2 (en) | 1993-12-24 | 1993-12-24 | Delay optimization system for sequential circuits |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07182394A JPH07182394A (en) | 1995-07-21 |
JP2734966B2 true JP2734966B2 (en) | 1998-04-02 |
Family
ID=18380405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5345992A Expired - Lifetime JP2734966B2 (en) | 1993-12-24 | 1993-12-24 | Delay optimization system for sequential circuits |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2734966B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101877014B (en) * | 2009-04-30 | 2012-07-25 | 国际商业机器公司 | Method and device for detecting temporal constraint conflict |
JP2011238163A (en) | 2010-05-13 | 2011-11-24 | Renesas Electronics Corp | Layout method, layout system, and layout program for semiconductor integrated circuit |
CN117521567B (en) * | 2024-01-05 | 2024-04-26 | 深圳鸿芯微纳技术有限公司 | Mixed logic comprehensive optimization method and device of circuit and electronic equipment |
-
1993
- 1993-12-24 JP JP5345992A patent/JP2734966B2/en not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
情報処理学会第42回全国大会講演論文集 第6分冊 142−143頁 1J−6 平塚憲晴ほか 「順序回路のラッチ再割当て手法」 |
Also Published As
Publication number | Publication date |
---|---|
JPH07182394A (en) | 1995-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5734917A (en) | System for producing combination circuit to satisfy prescribed delay time by deleting selected path gate and allowing to perform the permissible function for initial circuit | |
Krstić et al. | Vector generation for maximum instantaneous current through supply lines for CMOS circuits | |
US4873456A (en) | High speed state machine | |
JPH04216173A (en) | Automatic delay adjusting system for analyzing static timing | |
JPH01286080A (en) | Method for automatic wiring for semiconductor integrated circuit and semiconductor integrated circuit | |
US6292915B1 (en) | Method of design for testability and method of test sequence generation | |
JP2734966B2 (en) | Delay optimization system for sequential circuits | |
US5502647A (en) | Resynthesis and retiming for optimum partial scan testing | |
JPH07112146B2 (en) | Variable delay circuit | |
JP3320469B2 (en) | Data processing circuit layout | |
JP2000276504A (en) | Device for converting logical connection information | |
JP2877023B2 (en) | Logic circuit division method | |
US20020138780A1 (en) | Clock generator for generating a frequency-jittered system clock | |
JP3080037B2 (en) | How to create a logic simulation model | |
US7143020B1 (en) | Method and system for generic inference of sequential elements | |
Borriello | Synthesis of mixed synchronous/asynchronous control logic | |
JP3251250B2 (en) | Clock skew reduction method and computer-readable recording medium recording clock skew reduction method | |
JPH03131976A (en) | Production of logical circuit | |
Gopalakrishnan et al. | A modified line expansion algorithm for device-level routing of analog integrated circuits | |
JPH044631A (en) | Pn pattern detector | |
Pan et al. | GRASS: An efficient gate re-assignment algorithm for inverter minimisation in post technology mapping | |
JPH07113934B2 (en) | Logic circuit delay time optimization method | |
JPH0756972A (en) | Logic circuit minimizing device | |
JP3923568B2 (en) | Function extraction method for combinational circuits | |
JP2005107575A (en) | Design method foe large-scale integrated circuit |